[
  {
    "path": ".gitignore",
    "content": ".idea/\n.DS_Store\n\nruntime/*\n!runtime/qrcode/bg.jpg\n!runtime/fonts"
  },
  {
    "path": "Dockerfile",
    "content": "FROM golang:latest\n\nENV GOPROXY https://goproxy.cn,direct\nWORKDIR $GOPATH/src/github.com/EDDYCJY/go-gin-example\nCOPY . $GOPATH/src/github.com/EDDYCJY/go-gin-example\nRUN go build .\n\nEXPOSE 8000\nENTRYPOINT [\"./go-gin-example\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) The go-gin-example Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": ".PHONY: build clean tool lint help\n\nall: build\n\nbuild:\n\t@go build -v .\n\ntool:\n\tgo vet ./...; true\n\tgofmt -w .\n\nlint:\n\tgolint ./...\n\nclean:\n\trm -rf go-gin-example\n\tgo clean -i .\n\nhelp:\n\t@echo \"make: compile packages and dependencies\"\n\t@echo \"make tool: run specified go tool\"\n\t@echo \"make lint: golint ./...\"\n\t@echo \"make clean: remove object files and cached files\"\n"
  },
  {
    "path": "README.md",
    "content": "# Go Gin Example - Blog API[![rcard](https://goreportcard.com/badge/github.com/EDDYCJY/go-gin-example)](https://goreportcard.com/report/github.com/EDDYCJY/go-gin-example) [![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/EDDYCJY/go-gin-example) [![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/EDDYCJY/go-gin-example/master/LICENSE)\n\nA production-ready RESTful blog API example built with Go and Gin framework, demonstrating real-world patterns and best practices.\n\n[简体中文](https://github.com/EDDYCJY/go-gin-example/blob/master/README_ZH.md)\n\n## Project Overview\n\nThis project is a comprehensive blog backend API system that provides complete article and tag management functionalities, along with features like JWT authentication, image upload, QR code generation, and Excel import/export.\n\n## Tech Stack\n\n| Category | Technology |\n|----------|------------|\n| Language | Go |\n| Web Framework | [Gin](https://github.com/gin-gonic/gin) |\n| ORM | [GORM](https://github.com/jinzhu/gorm) |\n| Database | MySQL |\n| Cache | Redis (via [Redigo](https://github.com/gomodule/redigo)) |\n| Authentication | JWT ([jwt-go](https://github.com/dgrijalva/jwt-go)) |\n| Configuration | [go-ini](https://github.com/go-ini/ini) |\n| API Documentation | [Swagger](https://github.com/swaggo/gin-swagger) |\n| Excel Processing | [excelize](https://github.com/360EntSecGroup-Skylar/excelize), [xlsx](https://github.com/tealeg/xlsx) |\n| Image Processing | [freetype](https://github.com/golang/freetype), [barcode](https://github.com/boombuler/barcode) |\n| Validation | [beego/validation](https://github.com/astaxie/beego/validation) |\n\n## Project Structure\n\n```\ngo-gin-example/\n├── conf/                       # Configuration files\n│   └── app.ini                 # Application configuration\n├── docs/                       # Documentation\n│   ├── sql/                    # Database scripts\n│   │   └── blog.sql            # Database schema\n│   └── swagger/                # Swagger documentation\n├── middleware/                 # Middleware\n│   └── jwt/                    # JWT authentication middleware\n│       └── jwt.go\n├── models/                     # Data models (ORM)\n│   ├── article.go              # Article model\n│   ├── auth.go                 # Auth model\n│   ├── models.go               # Database initialization\n│   └── tag.go                  # Tag model\n├── pkg/                        # Shared packages\n│   ├── app/                    # Application utilities\n│   │   ├── form.go             # Form binding\n│   │   ├── request.go          # Request handling\n│   │   └── response.go         # Response formatting\n│   ├── e/                      # Error codes\n│   │   ├── cache.go            # Cache key constants\n│   │   ├── code.go             # Error code definitions\n│   │   └── msg.go              # Error messages\n│   ├── export/                 # Excel export utilities\n│   │   └── excel.go\n│   ├── file/                   # File utilities\n│   │   └── file.go\n│   ├── gredis/                 # Redis client\n│   │   └── redis.go\n│   ├── logging/                # Logging utilities\n│   │   ├── file.go\n│   │   └── log.go\n│   ├── qrcode/                 # QR code generation\n│   │   └── qrcode.go\n│   ├── setting/                # Configuration management\n│   │   └── setting.go\n│   ├── upload/                 # Image upload utilities\n│   │   └── image.go\n│   └── util/                   # Common utilities\n│       ├── jwt.go              # JWT utilities\n│       ├── md5.go              # MD5 hashing\n│       ├── pagination.go       # Pagination helper\n│       └── util.go\n├── routers/                    # Route definitions\n│   ├── api/                    # API handlers\n│   │   ├── v1/                 # API v1 handlers\n│   │   │   ├── article.go      # Article endpoints\n│   │   │   └── tag.go          # Tag endpoints\n│   │   ├── auth.go             # Authentication endpoint\n│   │   └── upload.go           # Image upload endpoint\n│   └── router.go               # Route initialization\n├── runtime/                    # Runtime resources\n│   ├── fonts/                  # Font files\n│   └── qrcode/                 # QR code resources\n├── service/                    # Business logic layer\n│   ├── article_service/        # Article services\n│   │   ├── article.go          # Article CRUD operations\n│   │   └── article_poster.go   # Poster generation\n│   ├── auth_service/           # Auth services\n│   │   └── auth.go\n│   ├── cache_service/          # Cache key generation\n│   │   ├── article.go\n│   │   └── tag.go\n│   └── tag_service/            # Tag services\n│       └── tag.go\n├── Dockerfile                  # Docker build file\n├── Makefile                    # Build automation\n├── go.mod                      # Go module definition\n├── go.sum                      # Dependency checksums\n└── main.go                     # Application entry point\n```\n\n## Architecture\n\nThe project follows a layered architecture pattern:\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                      HTTP Requests                          │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                    Middleware Layer                         │\n│                   (JWT Authentication)                      │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                     Router Layer                            │\n│                (routers/api/v1/*.go)                        │\n│        - Request validation                                 │\n│        - Parameter binding                                  │\n│        - Response formatting                                │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                    Service Layer                            │\n│                   (service/*/*.go)                          │\n│        - Business logic                                     │\n│        - Cache management                                   │\n│        - Cross-model operations                             │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                     Model Layer                             │\n│                    (models/*.go)                            │\n│        - Database operations                                │\n│        - CRUD methods                                       │\n│        - Data structures                                    │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                    Storage Layer                            │\n│              MySQL (Primary) + Redis (Cache)                │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## Feature Tree\n\n```\nGo Gin Blog API\n├── Authentication\n│   └── JWT Login Validation\n│       ├── Token Generation (3-hour expiry)\n│       ├── Token Validation\n│       └── Token Refresh\n├── Article Management\n│   ├── Create Article\n│   ├── Read Article (with Redis caching)\n│   ├── Update Article\n│   ├── Delete Article (soft delete)\n│   ├── List Articles (paginated)\n│   ├── Count Articles\n│   └── Generate Article Poster\n│       ├── Embed QR Code\n│       ├── Apply Background Image\n│       ├── Render Text Overlay\n│       └── Save Merged Image\n├── Tag Management\n│   ├── CRUD Operations\n│   │   ├── Create Tag\n│   │   ├── Read Tags (paginated, cached)\n│   │   ├── Update Tag\n│   │   └── Delete Tag (soft delete)\n│   ├── Export Tags to Excel\n│   └── Import Tags from Excel\n├── File Upload\n│   └── Image Upload\n│       ├── Format validation (.jpg, .jpeg, .png)\n│       ├── Size validation (max 5MB)\n│       └── MD5-based naming\n├── API Documentation\n│   └── Swagger UI (/swagger/*any)\n└── Static File Serving\n    ├── Exported Excel files (/export)\n    ├── Uploaded images (/upload/images)\n    └── Generated QR codes (/qrcode)\n```\n\n## API Endpoints\n\n### Public Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| POST | `/auth` | User authentication, returns JWT token |\n| GET | `/swagger/*any` | Swagger API documentation |\n| POST | `/upload` | Image upload |\n| POST | `/tags/export` | Export tags to Excel |\n| POST | `/tags/import` | Import tags from Excel |\n\n### Protected Endpoints (Require JWT Token)\n\n#### Tags\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `/api/v1/tags` | Get tag list (paginated) |\n| POST | `/api/v1/tags` | Create new tag |\n| PUT | `/api/v1/tags/:id` | Update tag by ID |\n| DELETE | `/api/v1/tags/:id` | Delete tag by ID |\n\n#### Articles\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `/api/v1/articles` | Get article list (paginated) |\n| GET | `/api/v1/articles/:id` | Get article by ID |\n| POST | `/api/v1/articles` | Create new article |\n| PUT | `/api/v1/articles/:id` | Update article by ID |\n| DELETE | `/api/v1/articles/:id` | Delete article by ID |\n| POST | `/api/v1/articles/poster/generate` | Generate article poster with QR code |\n\n## Database Schema\n\n### Tables\n\n**blog_auth** - User authentication\n```sql\n- id: INT (PK, AUTO_INCREMENT)\n- username: VARCHAR(50)\n- password: VARCHAR(50)\n```\n\n**blog_tag** - Article tags\n```sql\n- id: INT (PK, AUTO_INCREMENT)\n- name: VARCHAR(100) - Tag name\n- created_on: INT - Creation timestamp\n- created_by: VARCHAR(100) - Creator\n- modified_on: INT - Modification timestamp\n- modified_by: VARCHAR(100) - Modifier\n- deleted_on: INT - Deletion timestamp (soft delete)\n- state: TINYINT - Status (0: disabled, 1: enabled)\n```\n\n**blog_article** - Articles\n```sql\n- id: INT (PK, AUTO_INCREMENT)\n- tag_id: INT (FK) - Associated tag ID\n- title: VARCHAR(100) - Article title\n- desc: VARCHAR(255) - Description\n- content: TEXT - Article content\n- cover_image_url: VARCHAR(255) - Cover image URL\n- created_on: INT - Creation timestamp\n- created_by: VARCHAR(100) - Creator\n- modified_on: INT - Modification timestamp\n- modified_by: VARCHAR(255) - Modifier\n- deleted_on: INT - Deletion timestamp (soft delete)\n- state: TINYINT - Status\n```\n\n## Configuration\n\nConfiguration is managed through `conf/app.ini`:\n\n```ini\n[app]\nPageSize = 10                    # Pagination page size\nJwtSecret = 233                  # JWT signing secret\nPrefixUrl = http://127.0.0.1:8000\nRuntimeRootPath = runtime/\nImageSavePath = upload/images/\nImageMaxSize = 5                 # Max image size in MB\nImageAllowExts = .jpg,.jpeg,.png\nExportSavePath = export/\nQrCodeSavePath = qrcode/\nFontSavePath = fonts/\nLogSavePath = logs/\n\n[server]\nRunMode = debug                  # debug or release\nHttpPort = 8000\nReadTimeout = 60                 # seconds\nWriteTimeout = 60                # seconds\n\n[database]\nType = mysql\nUser = root\nPassword = rootroot\nHost = 127.0.0.1:3306\nName = blog\nTablePrefix = blog_\n\n[redis]\nHost = 127.0.0.1:6379\nPassword =\nMaxIdle = 30\nMaxActive = 30\nIdleTimeout = 200\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Go 1.13+\n- MySQL 5.6+\n- Redis\n\n### Database Setup\n\n1. Create a MySQL database named `blog`\n2. Execute the SQL script:\n```bash\nmysql -u root -p blog < docs/sql/blog.sql\n```\n\n### Configuration\n\n1. Edit `conf/app.ini` to match your environment\n2. Update database credentials\n3. Update Redis connection settings\n\n### Running the Application\n\n```bash\n# Build\nmake build\n\n# Run\n./go-gin-example\n\n# Or run directly\ngo run main.go\n```\n\nThe server will start at `http://localhost:8000`\n\n### Using Docker\n\n```bash\n# Build image\ndocker build -t go-gin-example .\n\n# Run container\ndocker run -p 8000:8000 go-gin-example\n```\n\n## API Usage Examples\n\n### 1. Get Authentication Token\n\n```bash\ncurl -X POST http://localhost:8000/auth \\\n  -d \"username=test&password=test123\"\n```\n\nResponse:\n```json\n{\n  \"code\": 200,\n  \"msg\": \"ok\",\n  \"data\": {\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n  }\n}\n```\n\n### 2. Create a Tag\n\n```bash\ncurl -X POST \"http://localhost:8000/api/v1/tags?token=YOUR_TOKEN\" \\\n  -d \"name=Go&created_by=admin&state=1\"\n```\n\n### 3. Get Tags List\n\n```bash\ncurl \"http://localhost:8000/api/v1/tags?token=YOUR_TOKEN\"\n```\n\n### 4. Create an Article\n\n```bash\ncurl -X POST \"http://localhost:8000/api/v1/articles?token=YOUR_TOKEN\" \\\n  -d \"tag_id=1&title=Hello Gin&desc=Introduction to Gin&content=Article content...&created_by=admin&cover_image_url=http://example.com/image.jpg&state=1\"\n```\n\n### 5. Upload an Image\n\n```bash\ncurl -X POST http://localhost:8000/upload \\\n  -F \"image=@/path/to/image.jpg\"\n```\n\n### 6. Export Tags to Excel\n\n```bash\ncurl -X POST http://localhost:8000/tags/export\n```\n\n## Key Design Patterns\n\n### 1. Soft Delete\nAll models use soft delete by setting `deleted_on` timestamp instead of actual deletion.\n\n### 2. Redis Caching\nArticles and tags are cached in Redis with 1-hour TTL to reduce database load.\n\n### 3. Service Layer Pattern\nBusiness logic is separated into service layer, keeping handlers thin and focused on request/response handling.\n\n### 4. Unified Response Format\nAll API responses follow consistent format:\n```json\n{\n  \"code\": 200,\n  \"msg\": \"ok\",\n  \"data\": {}\n}\n```\n\n### 5. Custom GORM Callbacks\nCustom callbacks for automatic timestamp management:\n- `CreatedOn` set on create\n- `ModifiedOn` updated on modifications\n- `DeletedOn` set on soft delete\n\n## Error Codes\n\n| Code | Description |\n|------|-------------|\n| 200 | Success |\n| 400 | Invalid parameters |\n| 500 | Internal server error |\n| 10001 | Tag already exists |\n| 10003 | Tag not found |\n| 10011 | Article not found |\n| 20001 | Token validation failed |\n| 20002 | Token expired |\n| 20003 | Token generation error |\n| 20004 | Authentication failed |\n| 30001 | Image save failed |\n| 30002 | Image check failed |\n| 30003 | Invalid image format |\n\n## Development Commands\n\n```bash\n# Build\nmake build\n\n# Run code analysis\nmake tool\n\n# Run linter\nmake lint\n\n# Clean build artifacts\nmake clean\n```\n\n## License\n\nMIT License - See [LICENSE](LICENSE) for details.\n\n## Credits\n\nProject by [EDDYCJY](https://github.com/EDDYCJY/go-gin-example)\n"
  },
  {
    "path": "README_ZH.md",
    "content": "# Go Gin Example - 博客 API [![rcard](https://goreportcard.com/badge/github.com/EDDYCJY/go-gin-example)](https://goreportcard.com/report/github.com/EDDYCJY/go-gin-example) [![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/EDDYCJY/go-gin-example) [![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/EDDYCJY/go-gin-example/master/LICENSE)\n\n一个基于 Go 和 Gin 框架构建的生产级 RESTful 博客 API 示例，展示了真实项目的设计模式和最佳实践。\n\n\n## 目录\n\n本项目提供 [Gin实践](https://segmentfault.com/a/1190000013297625) 的连载示例代码\n\n1. [Gin实践 连载一 Golang介绍与环境安装](https://book.eddycjy.com/golang/gin/install.html)\n2. [Gin实践 连载二 搭建Blog API's（一）](https://book.eddycjy.com/golang/gin/api-01.html)\n3. [Gin实践 连载三 搭建Blog API's（二）](https://book.eddycjy.com/golang/gin/api-02.html)\n4. [Gin实践 连载四 搭建Blog API's（三）](https://book.eddycjy.com/golang/gin/api-03.html)\n5. [Gin实践 连载五 使用JWT进行身份校验](https://book.eddycjy.com/golang/gin/jwt.html)\n6. [Gin实践 连载六 编写一个简单的文件日志](https://book.eddycjy.com/golang/gin/log.html)\n7. [Gin实践 连载七 Golang优雅重启HTTP服务](https://book.eddycjy.com/golang/gin/reload-http.html)\n8. [Gin实践 连载八 为它加上Swagger](https://book.eddycjy.com/golang/gin/swagger.html)\n9. [Gin实践 连载九 将Golang应用部署到Docker](https://book.eddycjy.com/golang/gin/golang-docker.html)\n10. [Gin实践 连载十 定制 GORM Callbacks](https://book.eddycjy.com/golang/gin/gorm-callback.html)\n11. [Gin实践 连载十一 Cron定时任务](https://book.eddycjy.com/golang/gin/cron.html)\n12. [Gin实践 连载十二 优化配置结构及实现图片上传](https://book.eddycjy.com/golang/gin/config-upload.html)\n13. [Gin实践 连载十三 优化你的应用结构和实现Redis缓存](https://book.eddycjy.com/golang/gin/application-redis.html)\n14. [Gin实践 连载十四 实现导出、导入 Excel](https://book.eddycjy.com/golang/gin/excel.html)\n15. [Gin实践 连载十五 生成二维码、合并海报](https://book.eddycjy.com/golang/gin/image.html)\n16. [Gin实践 连载十六 在图片上绘制文字](https://book.eddycjy.com/golang/gin/font.html)\n17. [Gin实践 连载十七 用 Nginx 部署 Go 应用](https://book.eddycjy.com/golang/gin/nginx.html)\n18. [Gin实践 番外 Golang交叉编译](https://book.eddycjy.com/golang/gin/cgo.html)\n19. [Gin实践 番外 请入门 Makefile](https://book.eddycjy.com/golang/gin/makefile.html)\n\n\n## 技术栈\n\n| 分类 | 技术 |\n|------|------|\n| 编程语言 | Go |\n| Web 框架 | [Gin](https://github.com/gin-gonic/gin) |\n| ORM | [GORM](https://github.com/jinzhu/gorm) |\n| 数据库 | MySQL |\n| 缓存 | Redis (通过 [Redigo](https://github.com/gomodule/redigo)) |\n| 认证 | JWT ([jwt-go](https://github.com/dgrijalva/jwt-go)) |\n| 配置管理 | [go-ini](https://github.com/go-ini/ini) |\n| API 文档 | [Swagger](https://github.com/swaggo/gin-swagger) |\n| Excel 处理 | [excelize](https://github.com/360EntSecGroup-Skylar/excelize), [xlsx](https://github.com/tealeg/xlsx) |\n| 图片处理 | [freetype](https://github.com/golang/freetype), [barcode](https://github.com/boombuler/barcode) |\n| 参数校验 | [beego/validation](https://github.com/astaxie/beego/validation) |\n\n## 项目结构\n\n```\ngo-gin-example/\n├── conf/                       # 配置文件目录\n│   └── app.ini                 # 应用配置文件\n├── docs/                       # 文档目录\n│   ├── sql/                    # 数据库脚本\n│   │   └── blog.sql            # 数据库表结构\n│   └── swagger/                # Swagger 文档\n├── middleware/                 # 中间件\n│   └── jwt/                    # JWT 认证中间件\n│       └── jwt.go\n├── models/                     # 数据模型层 (ORM)\n│   ├── article.go              # 文章模型\n│   ├── auth.go                 # 认证模型\n│   ├── models.go               # 数据库初始化\n│   └── tag.go                  # 标签模型\n├── pkg/                        # 公共包\n│   ├── app/                    # 应用工具\n│   │   ├── form.go             # 表单绑定\n│   │   ├── request.go          # 请求处理\n│   │   └── response.go         # 响应格式化\n│   ├── e/                      # 错误码\n│   │   ├── cache.go            # 缓存键常量\n│   │   ├── code.go             # 错误码定义\n│   │   └── msg.go              # 错误信息\n│   ├── export/                 # Excel 导出工具\n│   │   └── excel.go\n│   ├── file/                   # 文件工具\n│   │   └── file.go\n│   ├── gredis/                 # Redis 客户端\n│   │   └── redis.go\n│   ├── logging/                # 日志工具\n│   │   ├── file.go\n│   │   └── log.go\n│   ├── qrcode/                 # 二维码生成\n│   │   └── qrcode.go\n│   ├── setting/                # 配置管理\n│   │   └── setting.go\n│   ├── upload/                 # 图片上传工具\n│   │   └── image.go\n│   └── util/                   # 通用工具\n│       ├── jwt.go              # JWT 工具\n│       ├── md5.go              # MD5 哈希\n│       ├── pagination.go       # 分页助手\n│       └── util.go\n├── routers/                    # 路由定义\n│   ├── api/                    # API 处理器\n│   │   ├── v1/                 # API v1 处理器\n│   │   │   ├── article.go      # 文章接口\n│   │   │   └── tag.go          # 标签接口\n│   │   ├── auth.go             # 认证接口\n│   │   └── upload.go           # 图片上传接口\n│   └── router.go               # 路由初始化\n├── runtime/                    # 运行时资源\n│   ├── fonts/                  # 字体文件\n│   └── qrcode/                 # 二维码资源\n├── service/                    # 业务逻辑层\n│   ├── article_service/        # 文章服务\n│   │   ├── article.go          # 文章 CRUD 操作\n│   │   └── article_poster.go   # 海报生成\n│   ├── auth_service/           # 认证服务\n│   │   └── auth.go\n│   ├── cache_service/          # 缓存键生成\n│   │   ├── article.go\n│   │   └── tag.go\n│   └── tag_service/            # 标签服务\n│       └── tag.go\n├── Dockerfile                  # Docker 构建文件\n├── Makefile                    # 构建自动化\n├── go.mod                      # Go 模块定义\n├── go.sum                      # 依赖校验\n└── main.go                     # 应用入口\n```\n\n## 架构设计\n\n项目采用分层架构模式：\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                        HTTP 请求                            │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                       中间件层                               │\n│                    (JWT 认证)                               │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                       路由层                                 │\n│                (routers/api/v1/*.go)                        │\n│        - 请求校验                                           │\n│        - 参数绑定                                           │\n│        - 响应格式化                                         │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                       服务层                                 │\n│                   (service/*/*.go)                          │\n│        - 业务逻辑                                           │\n│        - 缓存管理                                           │\n│        - 跨模型操作                                         │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                       模型层                                 │\n│                    (models/*.go)                            │\n│        - 数据库操作                                         │\n│        - CRUD 方法                                          │\n│        - 数据结构                                           │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                       存储层                                 │\n│              MySQL (主存储) + Redis (缓存)                   │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## 功能树\n\n```\nGo Gin 博客 API\n├── 认证模块\n│   └── JWT 登录验证\n│       ├── Token 生成（3小时有效期）\n│       ├── Token 验证\n│       └── Token 刷新\n├── 文章管理\n│   ├── 创建文章\n│   ├── 查询文章（带 Redis 缓存）\n│   ├── 更新文章\n│   ├── 删除文章（软删除）\n│   ├── 文章列表（分页）\n│   ├── 文章统计\n│   └── 生成文章海报\n│       ├── 嵌入二维码\n│       ├── 应用背景图\n│       ├── 渲染文字叠加\n│       └── 保存合成图片\n├── 标签管理\n│   ├── CRUD 操作\n│   │   ├── 创建标签\n│   │   ├── 查询标签（分页，带缓存）\n│   │   ├── 更新标签\n│   │   └── 删除标签（软删除）\n│   ├── 导出标签到 Excel\n│   └── 从 Excel 导入标签\n├── 文件上传\n│   └── 图片上传\n│       ├── 格式校验 (.jpg, .jpeg, .png)\n│       ├── 大小校验（最大 5MB）\n│       └── MD5 命名\n├── API 文档\n│   └── Swagger UI (/swagger/*any)\n└── 静态文件服务\n    ├── 导出的 Excel 文件 (/export)\n    ├── 上传的图片 (/upload/images)\n    └── 生成的二维码 (/qrcode)\n```\n\n## API 接口\n\n### 公开接口\n\n| 方法 | 接口 | 描述 |\n|------|------|------|\n| POST | `/auth` | 用户认证，返回 JWT Token |\n| GET | `/swagger/*any` | Swagger API 文档 |\n| POST | `/upload` | 图片上传 |\n| POST | `/tags/export` | 导出标签到 Excel |\n| POST | `/tags/import` | 从 Excel 导入标签 |\n\n### 受保护接口（需要 JWT Token）\n\n#### 标签接口\n\n| 方法 | 接口 | 描述 |\n|------|------|------|\n| GET | `/api/v1/tags` | 获取标签列表（分页） |\n| POST | `/api/v1/tags` | 创建新标签 |\n| PUT | `/api/v1/tags/:id` | 根据 ID 更新标签 |\n| DELETE | `/api/v1/tags/:id` | 根据 ID 删除标签 |\n\n#### 文章接口\n\n| 方法 | 接口 | 描述 |\n|------|------|------|\n| GET | `/api/v1/articles` | 获取文章列表（分页） |\n| GET | `/api/v1/articles/:id` | 根据 ID 获取文章 |\n| POST | `/api/v1/articles` | 创建新文章 |\n| PUT | `/api/v1/articles/:id` | 根据 ID 更新文章 |\n| DELETE | `/api/v1/articles/:id` | 根据 ID 删除文章 |\n| POST | `/api/v1/articles/poster/generate` | 生成带二维码的文章海报 |\n\n## 数据库设计\n\n### 数据表\n\n**blog_auth** - 用户认证表\n```sql\n- id: INT (主键, 自增)\n- username: VARCHAR(50) - 用户名\n- password: VARCHAR(50) - 密码\n```\n\n**blog_tag** - 文章标签表\n```sql\n- id: INT (主键, 自增)\n- name: VARCHAR(100) - 标签名称\n- created_on: INT - 创建时间戳\n- created_by: VARCHAR(100) - 创建人\n- modified_on: INT - 修改时间戳\n- modified_by: VARCHAR(100) - 修改人\n- deleted_on: INT - 删除时间戳（软删除）\n- state: TINYINT - 状态 (0: 禁用, 1: 启用)\n```\n\n**blog_article** - 文章表\n```sql\n- id: INT (主键, 自增)\n- tag_id: INT (外键) - 关联标签 ID\n- title: VARCHAR(100) - 文章标题\n- desc: VARCHAR(255) - 文章简述\n- content: TEXT - 文章内容\n- cover_image_url: VARCHAR(255) - 封面图片地址\n- created_on: INT - 创建时间戳\n- created_by: VARCHAR(100) - 创建人\n- modified_on: INT - 修改时间戳\n- modified_by: VARCHAR(255) - 修改人\n- deleted_on: INT - 删除时间戳（软删除）\n- state: TINYINT - 状态\n```\n\n## 配置说明\n\n配置文件位于 `conf/app.ini`：\n\n```ini\n[app]\nPageSize = 10                    # 分页大小\nJwtSecret = 233                  # JWT 签名密钥\nPrefixUrl = http://127.0.0.1:8000\nRuntimeRootPath = runtime/\nImageSavePath = upload/images/\nImageMaxSize = 5                 # 图片最大大小（MB）\nImageAllowExts = .jpg,.jpeg,.png\nExportSavePath = export/\nQrCodeSavePath = qrcode/\nFontSavePath = fonts/\nLogSavePath = logs/\n\n[server]\nRunMode = debug                  # debug 或 release\nHttpPort = 8000\nReadTimeout = 60                 # 秒\nWriteTimeout = 60                # 秒\n\n[database]\nType = mysql\nUser = root\nPassword = rootroot\nHost = 127.0.0.1:3306\nName = blog\nTablePrefix = blog_\n\n[redis]\nHost = 127.0.0.1:6379\nPassword =\nMaxIdle = 30\nMaxActive = 30\nIdleTimeout = 200\n```\n\n## 快速开始\n\n### 环境要求\n\n- Go 1.13+\n- MySQL 5.6+\n- Redis\n\n### 数据库初始化\n\n1. 创建名为 `blog` 的 MySQL 数据库\n2. 执行 SQL 脚本：\n```bash\nmysql -u root -p blog < docs/sql/blog.sql\n```\n\n### 配置修改\n\n1. 编辑 `conf/app.ini` 以匹配您的环境\n2. 更新数据库连接信息\n3. 更新 Redis 连接配置\n\n### 运行应用\n\n```bash\n# 构建\nmake build\n\n# 运行\n./go-gin-example\n\n# 或直接运行\ngo run main.go\n```\n\n服务将启动在 `http://localhost:8000`\n\n### 使用 Docker\n\n```bash\n# 构建镜像\ndocker build -t go-gin-example .\n\n# 运行容器\ndocker run -p 8000:8000 go-gin-example\n```\n\n## API 使用示例\n\n### 1. 获取认证 Token\n\n```bash\ncurl -X POST http://localhost:8000/auth \\\n  -d \"username=test&password=test123\"\n```\n\n响应：\n```json\n{\n  \"code\": 200,\n  \"msg\": \"ok\",\n  \"data\": {\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n  }\n}\n```\n\n### 2. 创建标签\n\n```bash\ncurl -X POST \"http://localhost:8000/api/v1/tags?token=YOUR_TOKEN\" \\\n  -d \"name=Go&created_by=admin&state=1\"\n```\n\n### 3. 获取标签列表\n\n```bash\ncurl \"http://localhost:8000/api/v1/tags?token=YOUR_TOKEN\"\n```\n\n### 4. 创建文章\n\n```bash\ncurl -X POST \"http://localhost:8000/api/v1/articles?token=YOUR_TOKEN\" \\\n  -d \"tag_id=1&title=Hello Gin&desc=Gin 入门介绍&content=文章内容...&created_by=admin&cover_image_url=http://example.com/image.jpg&state=1\"\n```\n\n### 5. 上传图片\n\n```bash\ncurl -X POST http://localhost:8000/upload \\\n  -F \"image=@/path/to/image.jpg\"\n```\n\n### 6. 导出标签到 Excel\n\n```bash\ncurl -X POST http://localhost:8000/tags/export\n```\n\n## 核心设计模式\n\n### 1. 软删除\n所有模型使用软删除，通过设置 `deleted_on` 时间戳而非实际删除数据。\n\n### 2. Redis 缓存\n文章和标签数据缓存在 Redis 中，TTL 为 1 小时，以减少数据库负载。\n\n### 3. 服务层模式\n业务逻辑分离到服务层，保持处理器精简，专注于请求/响应处理。\n\n### 4. 统一响应格式\n所有 API 响应遵循统一格式：\n```json\n{\n  \"code\": 200,\n  \"msg\": \"ok\",\n  \"data\": {}\n}\n```\n\n### 5. 自定义 GORM 回调\n自定义回调实现自动时间戳管理：\n- `CreatedOn` 在创建时设置\n- `ModifiedOn` 在修改时更新\n- `DeletedOn` 在软删除时设置\n\n## 错误码说明\n\n| 错误码 | 描述 |\n|--------|------|\n| 200 | 成功 |\n| 400 | 请求参数无效 |\n| 500 | 服务器内部错误 |\n| 10001 | 标签已存在 |\n| 10003 | 标签不存在 |\n| 10011 | 文章不存在 |\n| 20001 | Token 验证失败 |\n| 20002 | Token 已过期 |\n| 20003 | Token 生成错误 |\n| 20004 | 认证失败 |\n| 30001 | 图片保存失败 |\n| 30002 | 图片检查失败 |\n| 30003 | 图片格式无效 |\n\n## 开发命令\n\n```bash\n# 构建\nmake build\n\n# 运行代码分析\nmake tool\n\n# 运行代码检查\nmake lint\n\n# 清理构建产物\nmake clean\n```\n\n## 许可证\n\nMIT License - 详见 [LICENSE](LICENSE) 文件。\n\n## 联系我\n\n![image](https://image.eddycjy.com/7074be90379a121746146bc4229819f8.jpg)\n"
  },
  {
    "path": "conf/app.ini",
    "content": "[app]\r\nPageSize = 10\r\nJwtSecret = 233\r\nPrefixUrl = http://127.0.0.1:8000\r\n\r\nRuntimeRootPath = runtime/\r\n\r\nImageSavePath = upload/images/\r\n# MB\r\nImageMaxSize = 5\r\nImageAllowExts = .jpg,.jpeg,.png\r\n\r\nExportSavePath = export/\r\nQrCodeSavePath = qrcode/\r\nFontSavePath = fonts/\r\n\r\nLogSavePath = logs/\r\nLogSaveName = log\r\nLogFileExt = log\r\nTimeFormat = 20060102\r\n\r\n[server]\r\n#debug or release\r\nRunMode = debug\r\nHttpPort = 8000\r\nReadTimeout = 60\r\nWriteTimeout = 60\r\n\r\n[database]\r\nType = mysql\r\nUser = root\r\nPassword = rootroot\r\nHost = 127.0.0.1:3306\r\nName = blog\r\nTablePrefix = blog_\r\n\r\n[redis]\r\nHost = 127.0.0.1:6379\r\nPassword =\r\nMaxIdle = 30\r\nMaxActive = 30\r\nIdleTimeout = 200"
  },
  {
    "path": "docs/docs.go",
    "content": "// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n// This file was generated by swaggo/swag at\n// 2020-03-22 15:19:36.759704 +0800 CST m=+0.052176208\n\npackage docs\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/alecthomas/template\"\n\t\"github.com/swaggo/swag\"\n)\n\nvar doc = `{\n    \"schemes\": {{ marshal .Schemes }},\n    \"swagger\": \"2.0\",\n    \"info\": {\n        \"description\": \"{{.Description}}\",\n        \"title\": \"{{.Title}}\",\n        \"termsOfService\": \"https://github.com/EDDYCJY/go-gin-example\",\n        \"contact\": {},\n        \"license\": {\n            \"name\": \"MIT\",\n            \"url\": \"https://github.com/EDDYCJY/go-gin-example/blob/master/LICENSE\"\n        },\n        \"version\": \"{{.Version}}\"\n    },\n    \"host\": \"{{.Host}}\",\n    \"basePath\": \"{{.BasePath}}\",\n    \"paths\": {\n        \"/api/v1/articles\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get multiple articles\",\n                \"parameters\": [\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Add article\",\n                \"parameters\": [\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"Title\",\n                        \"name\": \"title\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Desc\",\n                        \"name\": \"desc\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Content\",\n                        \"name\": \"content\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/articles/{id}\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get a single article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"put\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Update article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    },\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Title\",\n                        \"name\": \"title\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Desc\",\n                        \"name\": \"desc\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Content\",\n                        \"name\": \"content\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"ModifiedBy\",\n                        \"name\": \"modified_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"delete\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Delete article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get multiple article tags\",\n                \"parameters\": [\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"query\"\n                    },\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"query\"\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Add article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/export\": {\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Export article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/import\": {\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Import Image\",\n                \"parameters\": [\n                    {\n                        \"type\": \"file\",\n                        \"description\": \"Image File\",\n                        \"name\": \"image\",\n                        \"in\": \"formData\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/{id}\": {\n            \"put\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Update article tag\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    },\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"ModifiedBy\",\n                        \"name\": \"modified_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"delete\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Delete article tag\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/auth\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get Auth\",\n                \"parameters\": [\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"userName\",\n                        \"name\": \"username\",\n                        \"in\": \"query\",\n                        \"required\": true\n                    },\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"password\",\n                        \"name\": \"password\",\n                        \"in\": \"query\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        }\n    },\n    \"definitions\": {\n        \"app.Response\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"code\": {\n                    \"type\": \"integer\"\n                },\n                \"data\": {\n                    \"type\": \"object\"\n                },\n                \"msg\": {\n                    \"type\": \"string\"\n                }\n            }\n        }\n    }\n}`\n\ntype swaggerInfo struct {\n\tVersion     string\n\tHost        string\n\tBasePath    string\n\tSchemes     []string\n\tTitle       string\n\tDescription string\n}\n\n// SwaggerInfo holds exported Swagger Info so clients can modify it\nvar SwaggerInfo = swaggerInfo{\n\tVersion:     \"1.0\",\n\tHost:        \"\",\n\tBasePath:    \"\",\n\tSchemes:     []string{},\n\tTitle:       \"Golang Gin API\",\n\tDescription: \"An example of gin\",\n}\n\ntype s struct{}\n\nfunc (s *s) ReadDoc() string {\n\tsInfo := SwaggerInfo\n\tsInfo.Description = strings.Replace(sInfo.Description, \"\\n\", \"\\\\n\", -1)\n\n\tt, err := template.New(\"swagger_info\").Funcs(template.FuncMap{\n\t\t\"marshal\": func(v interface{}) string {\n\t\t\ta, _ := json.Marshal(v)\n\t\t\treturn string(a)\n\t\t},\n\t}).Parse(doc)\n\tif err != nil {\n\t\treturn doc\n\t}\n\n\tvar tpl bytes.Buffer\n\tif err := t.Execute(&tpl, sInfo); err != nil {\n\t\treturn doc\n\t}\n\n\treturn tpl.String()\n}\n\nfunc init() {\n\tswag.Register(swag.Name, &s{})\n}\n"
  },
  {
    "path": "docs/sql/blog.sql",
    "content": "/*\r\nNavicat MySQL Data Transfer\r\n\r\nSource Database       : blog\r\n\r\nTarget Server Type    : MYSQL\r\nTarget Server Version : 50639\r\nFile Encoding         : 65001\r\n\r\nDate: 2018-03-18 16:52:35\r\n*/\r\n\r\nSET FOREIGN_KEY_CHECKS=0;\r\n\r\n-- ----------------------------\r\n-- Table structure for blog_article\r\n-- ----------------------------\r\nDROP TABLE IF EXISTS `blog_article`;\r\nCREATE TABLE `blog_article` (\r\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n  `tag_id` int(10) unsigned DEFAULT '0' COMMENT '标签ID',\r\n  `title` varchar(100) DEFAULT '' COMMENT '文章标题',\r\n  `desc` varchar(255) DEFAULT '' COMMENT '简述',\r\n  `content` text COMMENT '内容',\r\n  `cover_image_url` varchar(255) DEFAULT '' COMMENT '封面图片地址',\r\n  `created_on` int(10) unsigned DEFAULT '0' COMMENT '新建时间',\r\n  `created_by` varchar(100) DEFAULT '' COMMENT '创建人',\r\n  `modified_on` int(10) unsigned DEFAULT '0' COMMENT '修改时间',\r\n  `modified_by` varchar(255) DEFAULT '' COMMENT '修改人',\r\n  `deleted_on` int(10) unsigned DEFAULT '0',\r\n  `state` tinyint(3) unsigned DEFAULT '1' COMMENT '删除时间',\r\n  PRIMARY KEY (`id`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文章管理';\r\n\r\n-- ----------------------------\r\n-- Table structure for blog_auth\r\n-- ----------------------------\r\nDROP TABLE IF EXISTS `blog_auth`;\r\nCREATE TABLE `blog_auth` (\r\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n  `username` varchar(50) DEFAULT '' COMMENT '账号',\r\n  `password` varchar(50) DEFAULT '' COMMENT '密码',\r\n  PRIMARY KEY (`id`)\r\n) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;\r\n\r\nINSERT INTO `blog_auth` (`id`, `username`, `password`) VALUES ('1', 'test', 'test123');\r\n\r\n-- ----------------------------\r\n-- Table structure for blog_tag\r\n-- ----------------------------\r\nDROP TABLE IF EXISTS `blog_tag`;\r\nCREATE TABLE `blog_tag` (\r\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n  `name` varchar(100) DEFAULT '' COMMENT '标签名称',\r\n  `created_on` int(10) unsigned DEFAULT '0' COMMENT '创建时间',\r\n  `created_by` varchar(100) DEFAULT '' COMMENT '创建人',\r\n  `modified_on` int(10) unsigned DEFAULT '0' COMMENT '修改时间',\r\n  `modified_by` varchar(100) DEFAULT '' COMMENT '修改人',\r\n  `deleted_on` int(10) unsigned DEFAULT '0' COMMENT '删除时间',\r\n  `state` tinyint(3) unsigned DEFAULT '1' COMMENT '状态 0为禁用、1为启用',\r\n  PRIMARY KEY (`id`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文章标签管理';\r\n\r\n"
  },
  {
    "path": "docs/swagger/swagger.json",
    "content": "{\n    \"swagger\": \"2.0\",\n    \"info\": {\n        \"description\": \"An example of gin\",\n        \"title\": \"Golang Gin API\",\n        \"termsOfService\": \"https://github.com/EDDYCJY/go-gin-example\",\n        \"contact\": {},\n        \"license\": {\n            \"name\": \"MIT\",\n            \"url\": \"https://github.com/EDDYCJY/go-gin-example/blob/master/LICENSE\"\n        },\n        \"version\": \"1.0\"\n    },\n    \"host\": \"{{.Host}}\",\n    \"basePath\": \"{{.BasePath}}\",\n    \"paths\": {\n        \"/api/v1/articles\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get multiple articles\",\n                \"parameters\": [\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Add article\",\n                \"parameters\": [\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"Title\",\n                        \"name\": \"title\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"Desc\",\n                        \"name\": \"desc\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"Content\",\n                        \"name\": \"content\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/articles/{id}\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get a single article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"put\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Update article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    },\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"Title\",\n                        \"name\": \"title\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"Desc\",\n                        \"name\": \"desc\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"Content\",\n                        \"name\": \"content\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"ModifiedBy\",\n                        \"name\": \"modified_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"delete\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Delete article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get multiple article tags\",\n                \"parameters\": [\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"query\"\n                    },\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"query\"\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Add article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/export\": {\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Export article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/import\": {\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Import article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Excel File\",\n                        \"name\": \"file\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/{id}\": {\n            \"put\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Update article tag\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    },\n                    {\n                        \"description\": \"ID\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    },\n                    {\n                        \"description\": \"ModifiedBy\",\n                        \"name\": \"modified_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"object\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"delete\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Delete article tag\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"type\": \"object\",\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        }\n    },\n    \"definitions\": {\n        \"app.Response\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"code\": {\n                    \"type\": \"integer\"\n                },\n                \"data\": {\n                    \"type\": \"object\"\n                },\n                \"msg\": {\n                    \"type\": \"string\"\n                }\n            }\n        }\n    }\n}"
  },
  {
    "path": "docs/swagger/swagger.yaml",
    "content": "basePath: '{{.BasePath}}'\ndefinitions:\n  app.Response:\n    properties:\n      code:\n        type: integer\n      data:\n        type: object\n      msg:\n        type: string\n    type: object\nhost: '{{.Host}}'\ninfo:\n  contact: {}\n  description: An example of gin\n  license:\n    name: MIT\n    url: https://github.com/EDDYCJY/go-gin-example/blob/master/LICENSE\n  termsOfService: https://github.com/EDDYCJY/go-gin-example\n  title: Golang Gin API\n  version: \"1.0\"\npaths:\n  /api/v1/articles:\n    get:\n      parameters:\n      - description: TagID\n        in: body\n        name: tag_id\n        schema:\n          type: object\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: object\n      - description: CreatedBy\n        in: body\n        name: created_by\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Get multiple articles\n    post:\n      parameters:\n      - description: TagID\n        in: body\n        name: tag_id\n        required: true\n        schema:\n          type: object\n      - description: Title\n        in: body\n        name: title\n        required: true\n        schema:\n          type: object\n      - description: Desc\n        in: body\n        name: desc\n        required: true\n        schema:\n          type: object\n      - description: Content\n        in: body\n        name: content\n        required: true\n        schema:\n          type: object\n      - description: CreatedBy\n        in: body\n        name: created_by\n        required: true\n        schema:\n          type: object\n      - description: State\n        in: body\n        name: state\n        required: true\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Add article\n  /api/v1/articles/{id}:\n    delete:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Delete article\n    get:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Get a single article\n    put:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      - description: TagID\n        in: body\n        name: tag_id\n        schema:\n          type: object\n      - description: Title\n        in: body\n        name: title\n        schema:\n          type: object\n      - description: Desc\n        in: body\n        name: desc\n        schema:\n          type: object\n      - description: Content\n        in: body\n        name: content\n        schema:\n          type: object\n      - description: ModifiedBy\n        in: body\n        name: modified_by\n        required: true\n        schema:\n          type: object\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Update article\n  /api/v1/tags:\n    get:\n      parameters:\n      - description: Name\n        in: query\n        name: name\n        type: string\n      - description: State\n        in: query\n        name: state\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Get multiple article tags\n    post:\n      parameters:\n      - description: Name\n        in: body\n        name: name\n        required: true\n        schema:\n          type: object\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: object\n      - description: CreatedBy\n        in: body\n        name: created_by\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Add article tag\n  /api/v1/tags/{id}:\n    delete:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Delete article tag\n    put:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      - description: ID\n        in: body\n        name: name\n        required: true\n        schema:\n          type: object\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: object\n      - description: ModifiedBy\n        in: body\n        name: modified_by\n        required: true\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Update article tag\n  /api/v1/tags/export:\n    post:\n      parameters:\n      - description: Name\n        in: body\n        name: name\n        schema:\n          type: object\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Export article tag\n  /api/v1/tags/import:\n    post:\n      parameters:\n      - description: Excel File\n        in: body\n        name: file\n        required: true\n        schema:\n          type: object\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n            type: object\n      summary: Import article tag\nswagger: \"2.0\"\n"
  },
  {
    "path": "docs/swagger.json",
    "content": "{\n    \"swagger\": \"2.0\",\n    \"info\": {\n        \"description\": \"An example of gin\",\n        \"title\": \"Golang Gin API\",\n        \"termsOfService\": \"https://github.com/EDDYCJY/go-gin-example\",\n        \"contact\": {},\n        \"license\": {\n            \"name\": \"MIT\",\n            \"url\": \"https://github.com/EDDYCJY/go-gin-example/blob/master/LICENSE\"\n        },\n        \"version\": \"1.0\"\n    },\n    \"paths\": {\n        \"/api/v1/articles\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get multiple articles\",\n                \"parameters\": [\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Add article\",\n                \"parameters\": [\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"Title\",\n                        \"name\": \"title\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Desc\",\n                        \"name\": \"desc\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Content\",\n                        \"name\": \"content\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/articles/{id}\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get a single article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"put\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Update article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    },\n                    {\n                        \"description\": \"TagID\",\n                        \"name\": \"tag_id\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Title\",\n                        \"name\": \"title\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Desc\",\n                        \"name\": \"desc\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"Content\",\n                        \"name\": \"content\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"ModifiedBy\",\n                        \"name\": \"modified_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"delete\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Delete article\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get multiple article tags\",\n                \"parameters\": [\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"query\"\n                    },\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"query\"\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Add article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"CreatedBy\",\n                        \"name\": \"created_by\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/export\": {\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Export article tag\",\n                \"parameters\": [\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/import\": {\n            \"post\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Import Image\",\n                \"parameters\": [\n                    {\n                        \"type\": \"file\",\n                        \"description\": \"Image File\",\n                        \"name\": \"image\",\n                        \"in\": \"formData\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/api/v1/tags/{id}\": {\n            \"put\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Update article tag\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    },\n                    {\n                        \"description\": \"Name\",\n                        \"name\": \"name\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    },\n                    {\n                        \"description\": \"State\",\n                        \"name\": \"state\",\n                        \"in\": \"body\",\n                        \"schema\": {\n                            \"type\": \"integer\"\n                        }\n                    },\n                    {\n                        \"description\": \"ModifiedBy\",\n                        \"name\": \"modified_by\",\n                        \"in\": \"body\",\n                        \"required\": true,\n                        \"schema\": {\n                            \"type\": \"string\"\n                        }\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            },\n            \"delete\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Delete article tag\",\n                \"parameters\": [\n                    {\n                        \"type\": \"integer\",\n                        \"description\": \"ID\",\n                        \"name\": \"id\",\n                        \"in\": \"path\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        },\n        \"/auth\": {\n            \"get\": {\n                \"produces\": [\n                    \"application/json\"\n                ],\n                \"summary\": \"Get Auth\",\n                \"parameters\": [\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"userName\",\n                        \"name\": \"username\",\n                        \"in\": \"query\",\n                        \"required\": true\n                    },\n                    {\n                        \"type\": \"string\",\n                        \"description\": \"password\",\n                        \"name\": \"password\",\n                        \"in\": \"query\",\n                        \"required\": true\n                    }\n                ],\n                \"responses\": {\n                    \"200\": {\n                        \"description\": \"OK\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    },\n                    \"500\": {\n                        \"description\": \"Internal Server Error\",\n                        \"schema\": {\n                            \"$ref\": \"#/definitions/app.Response\"\n                        }\n                    }\n                }\n            }\n        }\n    },\n    \"definitions\": {\n        \"app.Response\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"code\": {\n                    \"type\": \"integer\"\n                },\n                \"data\": {\n                    \"type\": \"object\"\n                },\n                \"msg\": {\n                    \"type\": \"string\"\n                }\n            }\n        }\n    }\n}"
  },
  {
    "path": "docs/swagger.yaml",
    "content": "definitions:\n  app.Response:\n    properties:\n      code:\n        type: integer\n      data:\n        type: object\n      msg:\n        type: string\n    type: object\ninfo:\n  contact: {}\n  description: An example of gin\n  license:\n    name: MIT\n    url: https://github.com/EDDYCJY/go-gin-example/blob/master/LICENSE\n  termsOfService: https://github.com/EDDYCJY/go-gin-example\n  title: Golang Gin API\n  version: \"1.0\"\npaths:\n  /api/v1/articles:\n    get:\n      parameters:\n      - description: TagID\n        in: body\n        name: tag_id\n        schema:\n          type: integer\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: integer\n      - description: CreatedBy\n        in: body\n        name: created_by\n        schema:\n          type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Get multiple articles\n    post:\n      parameters:\n      - description: TagID\n        in: body\n        name: tag_id\n        required: true\n        schema:\n          type: integer\n      - description: Title\n        in: body\n        name: title\n        required: true\n        schema:\n          type: string\n      - description: Desc\n        in: body\n        name: desc\n        required: true\n        schema:\n          type: string\n      - description: Content\n        in: body\n        name: content\n        required: true\n        schema:\n          type: string\n      - description: CreatedBy\n        in: body\n        name: created_by\n        required: true\n        schema:\n          type: string\n      - description: State\n        in: body\n        name: state\n        required: true\n        schema:\n          type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Add article\n  /api/v1/articles/{id}:\n    delete:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Delete article\n    get:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Get a single article\n    put:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      - description: TagID\n        in: body\n        name: tag_id\n        schema:\n          type: string\n      - description: Title\n        in: body\n        name: title\n        schema:\n          type: string\n      - description: Desc\n        in: body\n        name: desc\n        schema:\n          type: string\n      - description: Content\n        in: body\n        name: content\n        schema:\n          type: string\n      - description: ModifiedBy\n        in: body\n        name: modified_by\n        required: true\n        schema:\n          type: string\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Update article\n  /api/v1/tags:\n    get:\n      parameters:\n      - description: Name\n        in: query\n        name: name\n        type: string\n      - description: State\n        in: query\n        name: state\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Get multiple article tags\n    post:\n      parameters:\n      - description: Name\n        in: body\n        name: name\n        required: true\n        schema:\n          type: string\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: integer\n      - description: CreatedBy\n        in: body\n        name: created_by\n        schema:\n          type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Add article tag\n  /api/v1/tags/{id}:\n    delete:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Delete article tag\n    put:\n      parameters:\n      - description: ID\n        in: path\n        name: id\n        required: true\n        type: integer\n      - description: Name\n        in: body\n        name: name\n        required: true\n        schema:\n          type: string\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: integer\n      - description: ModifiedBy\n        in: body\n        name: modified_by\n        required: true\n        schema:\n          type: string\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Update article tag\n  /api/v1/tags/export:\n    post:\n      parameters:\n      - description: Name\n        in: body\n        name: name\n        schema:\n          type: string\n      - description: State\n        in: body\n        name: state\n        schema:\n          type: integer\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Export article tag\n  /api/v1/tags/import:\n    post:\n      parameters:\n      - description: Image File\n        in: formData\n        name: image\n        required: true\n        type: file\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Import Image\n  /auth:\n    get:\n      parameters:\n      - description: userName\n        in: query\n        name: username\n        required: true\n        type: string\n      - description: password\n        in: query\n        name: password\n        required: true\n        type: string\n      produces:\n      - application/json\n      responses:\n        \"200\":\n          description: OK\n          schema:\n            $ref: '#/definitions/app.Response'\n        \"500\":\n          description: Internal Server Error\n          schema:\n            $ref: '#/definitions/app.Response'\n      summary: Get Auth\nswagger: \"2.0\"\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/EDDYCJY/go-gin-example\n\ngo 1.13\n\nrequire (\n\tgithub.com/360EntSecGroup-Skylar/excelize v1.3.1-0.20180527032555-9e463b461434\n\tgithub.com/PuerkitoBio/purell v1.1.1-0.20180310210909-975f53781597 // indirect\n\tgithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751\n\tgithub.com/astaxie/beego v1.9.3-0.20171218111859-f16688817aa4\n\tgithub.com/boombuler/barcode v1.0.1-0.20180315051053-3c06908149f7\n\tgithub.com/denisenkom/go-mssqldb v0.0.0-20190920000552-128d9f4ae1cd // indirect\n\tgithub.com/dgrijalva/jwt-go v3.1.0+incompatible\n\tgithub.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 // indirect\n\tgithub.com/gin-gonic/gin v1.4.0\n\tgithub.com/go-ini/ini v1.32.1-0.20180214101753-32e4be5f41bb\n\tgithub.com/go-sql-driver/mysql v1.4.1-0.20190510102335-877a9775f068 // indirect\n\tgithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0\n\tgithub.com/gomodule/redigo v2.0.1-0.20180401191855-9352ab68be13+incompatible\n\tgithub.com/jinzhu/gorm v0.0.0-20180213101209-6e1387b44c64\n\tgithub.com/jinzhu/inflection v0.0.0-20170102125226-1c35d901db3d // indirect\n\tgithub.com/jinzhu/now v1.0.1 // indirect\n\tgithub.com/json-iterator/go v1.1.7 // indirect\n\tgithub.com/lib/pq v1.2.0 // indirect\n\tgithub.com/mattn/go-sqlite3 v1.11.0 // indirect\n\tgithub.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect\n\tgithub.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 // indirect\n\tgithub.com/swaggo/gin-swagger v1.2.0\n\tgithub.com/swaggo/swag v1.5.1\n\tgithub.com/tealeg/xlsx v1.0.4-0.20180419195153-f36fa3be8893\n\tgithub.com/unknwon/com v1.0.1\n\tgolang.org/x/image v0.0.0-20180628062038-cc896f830ced // indirect\n\tgolang.org/x/sys v0.0.0-20190921204832-2dccfee4fd3e // indirect\n\tgoogle.golang.org/appengine v1.6.3 // indirect\n\tgopkg.in/ini.v1 v1.47.0 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/360EntSecGroup-Skylar/excelize v1.3.1-0.20180527032555-9e463b461434 h1:sJVNhDPQ1uL3izsJQGWFQb3lUvFloaTIgqz0ClEp6aQ=\ngithub.com/360EntSecGroup-Skylar/excelize v1.3.1-0.20180527032555-9e463b461434/go.mod h1:R8KYLmGns0vDPe6/HyphW0mzW+MFexlGDafU0ykVEnU=\ngithub.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/purell v1.1.1-0.20180310210909-975f53781597 h1:8+pMa56PPVkN6NbWGZbNIWLVIitrF8AQZ95d4UAhqmE=\ngithub.com/PuerkitoBio/purell v1.1.1-0.20180310210909-975f53781597/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=\ngithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/astaxie/beego v1.9.3-0.20171218111859-f16688817aa4 h1:dNIynF6ICiq1NghlpIBxljb2JbyC61/JqWB5A9cfUfo=\ngithub.com/astaxie/beego v1.9.3-0.20171218111859-f16688817aa4/go.mod h1:0R4++1tUqERR0WYFWdfkcrsyoVBCG4DgpDGokT3yb+U=\ngithub.com/boombuler/barcode v1.0.1-0.20180315051053-3c06908149f7 h1:s7NuEzhW8Z2v7X7lUwHMqXt8HKYYd5YwtEt0CCMff3Q=\ngithub.com/boombuler/barcode v1.0.1-0.20180315051053-3c06908149f7/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/denisenkom/go-mssqldb v0.0.0-20190920000552-128d9f4ae1cd h1:tXCgEGHPT4XELDS7nB0OBb9968yCOd+MnyNf+6m1u40=\ngithub.com/denisenkom/go-mssqldb v0.0.0-20190920000552-128d9f4ae1cd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=\ngithub.com/dgrijalva/jwt-go v3.1.0+incompatible h1:FFziAwDQQ2dz1XClWMkwvukur3evtZx7x/wMHKM1i20=\ngithub.com/dgrijalva/jwt-go v3.1.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y=\ngithub.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/gin-contrib/gzip v0.0.1 h1:ezvKOL6jH+jlzdHNE4h9h8q8uMpDQjyl0NN0Jd7jozc=\ngithub.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w=\ngithub.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 h1:AzN37oI0cOS+cougNAV9szl6CVoj2RYwzS3DpUQNtlY=\ngithub.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=\ngithub.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=\ngithub.com/gin-gonic/gin v1.3.0 h1:kCmZyPklC0gVdL728E6Aj20uYBJV93nj/TkwBTKhFbs=\ngithub.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y=\ngithub.com/gin-gonic/gin v1.4.0 h1:3tMoCCfM7ppqsR0ptz/wi1impNpT7/9wQtMZ8lr1mCQ=\ngithub.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=\ngithub.com/go-ini/ini v1.32.1-0.20180214101753-32e4be5f41bb h1:v+YnQ81wH+hTjaP5nFSpqASFbe9UETYm1vG65qp7Zc0=\ngithub.com/go-ini/ini v1.32.1-0.20180214101753-32e4be5f41bb/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-openapi/jsonpointer v0.17.0 h1:nH6xp8XdXHx8dqveo0ZuJBluCO2qGrPbDNZ0dwoRHP0=\ngithub.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=\ngithub.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=\ngithub.com/go-openapi/jsonreference v0.19.0 h1:BqWKpV1dFd+AuiKlgtddwVIFQsuMpxfBDBHGfM2yNpk=\ngithub.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=\ngithub.com/go-openapi/spec v0.19.0 h1:A4SZ6IWh3lnjH0rG0Z5lkxazMGBECtrZcbyYQi+64k4=\ngithub.com/go-openapi/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=\ngithub.com/go-openapi/swag v0.17.0 h1:iqrgMg7Q7SvtbWLlltPrkMs0UBJI6oTSs79JFRUi880=\ngithub.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=\ngithub.com/go-sql-driver/mysql v1.4.1-0.20190510102335-877a9775f068 h1:q2kwd9Bcgl2QpSi/Wjcx9jzwyICt3EWTP5to43QhwaA=\ngithub.com/go-sql-driver/mysql v1.4.1-0.20190510102335-877a9775f068/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=\ngithub.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=\ngithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=\ngithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=\ngithub.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/gomodule/redigo v2.0.1-0.20180401191855-9352ab68be13+incompatible h1:cQom4uMS2ufhGPAJgSa67FXfrHg6ytNKmWtKN/l/n+I=\ngithub.com/gomodule/redigo v2.0.1-0.20180401191855-9352ab68be13+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=\ngithub.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/jinzhu/gorm v0.0.0-20180213101209-6e1387b44c64 h1:8I4kQ5M5OjZKNsgRUs20soTdIoo1GbiGApV31kJ9e6Y=\ngithub.com/jinzhu/gorm v0.0.0-20180213101209-6e1387b44c64/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo=\ngithub.com/jinzhu/inflection v0.0.0-20170102125226-1c35d901db3d h1:jRQLvyVGL+iVtDElaEIDdKwpPqUIZJfzkNLV34htpEc=\ngithub.com/jinzhu/inflection v0.0.0-20170102125226-1c35d901db3d/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=\ngithub.com/jinzhu/now v1.0.1 h1:HjfetcXq097iXP0uoPCdnM4Efp5/9MsM0/M+XOTeR3M=\ngithub.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=\ngithub.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=\ngithub.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=\ngithub.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=\ngithub.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=\ngithub.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=\ngithub.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q=\ngithub.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg=\ngithub.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=\ngithub.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=\ngithub.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=\ngithub.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=\ngithub.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304 h1:Jpy1PXuP99tXNrhbq2BaPz9B+jNAvH1JPQQpG/9GCXY=\ngithub.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=\ngithub.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 h1:WN9BUFbdyOsSH/XohnWpXOlq9NBD5sGAB2FciQMUEe8=\ngithub.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/swaggo/gin-swagger v1.2.0 h1:YskZXEiv51fjOMTsXrOetAjrMDfFaXD79PEoQBOe2W0=\ngithub.com/swaggo/gin-swagger v1.2.0/go.mod h1:qlH2+W7zXGZkczuL+r2nEBR2JTT+/lX05Nn6vPhc7OI=\ngithub.com/swaggo/swag v1.5.1 h1:2Agm8I4K5qb00620mHq0VJ05/KT4FtmALPIcQR9lEZM=\ngithub.com/swaggo/swag v1.5.1/go.mod h1:1Bl9F/ZBpVWh22nY0zmYyASPO1lI/zIwRDrpZU+tv8Y=\ngithub.com/tealeg/xlsx v1.0.4-0.20180419195153-f36fa3be8893 h1:x+HNL/+eUTIzieDdCKbl6QjneUXKuiiTBvC9s5USpT0=\ngithub.com/tealeg/xlsx v1.0.4-0.20180419195153-f36fa3be8893/go.mod h1:uxu5UY2ovkuRPWKQ8Q7JG0JbSivrISjdPzZQKeo74mA=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngithub.com/ugorji/go v1.1.5-pre h1:jyJKFOSEbdOc2HODrf2qcCkYOdq7zzXqA9bhW5oV4fM=\ngithub.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0=\ngithub.com/ugorji/go/codec v0.0.0-20181022190402-e5e69e061d4f/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/ugorji/go/codec v1.1.5-pre h1:5YV9PsFAN+ndcCtTM7s60no7nY7eTG3LPtxhSwuxzCs=\ngithub.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI=\ngithub.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=\ngithub.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=\ngithub.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU=\ngolang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/image v0.0.0-20180628062038-cc896f830ced h1:2QsAEqOy4Mp+V4HL2Wr1iBNpZWaL72EvTO4oj5bmr5w=\ngolang.org/x/image v0.0.0-20180628062038-cc896f830ced/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ=\ngolang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190611141213-3f473d35a33a h1:+KkCgOMgnKSgenxTBoiwkMqTiouMIy/3o8RLdmSbGoY=\ngolang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190921204832-2dccfee4fd3e h1:9ZBATxGrhPGloVV3LDg+OqDyEtcYRtQ9eIVlIjan6+M=\ngolang.org/x/sys v0.0.0-20190921204832-2dccfee4fd3e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190606124116-d0a3d012864b h1:mSUCVIwDx4hfXJfWsOPfdzEHxzb2Xjl6BQ8YgPnazQA=\ngolang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b h1:/mJ+GKieZA6hFDQGdWZrjj4AXPl5ylY+5HusG80roy0=\ngolang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngoogle.golang.org/appengine v1.6.3 h1:hvZejVcIxAKHR8Pq2gXaDggf6CWT1QEqO+JEBeOKCG8=\ngoogle.golang.org/appengine v1.6.3/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=\ngopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=\ngopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ=\ngopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=\ngopkg.in/ini.v1 v1.47.0 h1:XAVsOWcIxjm6JVEbCbSZgSBZIF0BrCzXs4orAQr6uc8=\ngopkg.in/ini.v1 v1.47.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"
  },
  {
    "path": "main.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/models\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/gredis\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\t\"github.com/EDDYCJY/go-gin-example/routers\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n)\n\nfunc init() {\n\tsetting.Setup()\n\tmodels.Setup()\n\tlogging.Setup()\n\tgredis.Setup()\n\tutil.Setup()\n}\n\n// @title Golang Gin API\n// @version 1.0\n// @description An example of gin\n// @termsOfService https://github.com/EDDYCJY/go-gin-example\n// @license.name MIT\n// @license.url https://github.com/EDDYCJY/go-gin-example/blob/master/LICENSE\nfunc main() {\n\tgin.SetMode(setting.ServerSetting.RunMode)\n\n\troutersInit := routers.InitRouter()\n\treadTimeout := setting.ServerSetting.ReadTimeout\n\twriteTimeout := setting.ServerSetting.WriteTimeout\n\tendPoint := fmt.Sprintf(\":%d\", setting.ServerSetting.HttpPort)\n\tmaxHeaderBytes := 1 << 20\n\n\tserver := &http.Server{\n\t\tAddr:           endPoint,\n\t\tHandler:        routersInit,\n\t\tReadTimeout:    readTimeout,\n\t\tWriteTimeout:   writeTimeout,\n\t\tMaxHeaderBytes: maxHeaderBytes,\n\t}\n\n\tlog.Printf(\"[info] start http server listening %s\", endPoint)\n\n\tserver.ListenAndServe()\n\n\t// If you want Graceful Restart, you need a Unix system and download github.com/fvbock/endless\n\t//endless.DefaultReadTimeOut = readTimeout\n\t//endless.DefaultWriteTimeOut = writeTimeout\n\t//endless.DefaultMaxHeaderBytes = maxHeaderBytes\n\t//server := endless.NewServer(endPoint, routersInit)\n\t//server.BeforeBegin = func(add string) {\n\t//\tlog.Printf(\"Actual pid is %d\", syscall.Getpid())\n\t//}\n\t//\n\t//err := server.ListenAndServe()\n\t//if err != nil {\n\t//\tlog.Printf(\"Server err: %v\", err)\n\t//}\n}\n"
  },
  {
    "path": "middleware/jwt/jwt.go",
    "content": "package jwt\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/dgrijalva/jwt-go\"\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n)\n\n// JWT is jwt middleware\nfunc JWT() gin.HandlerFunc {\n\treturn func(c *gin.Context) {\n\t\tvar code int\n\t\tvar data interface{}\n\n\t\tcode = e.SUCCESS\n\t\ttoken := c.Query(\"token\")\n\t\tif token == \"\" {\n\t\t\tcode = e.INVALID_PARAMS\n\t\t} else {\n\t\t\t_, err := util.ParseToken(token)\n\t\t\tif err != nil {\n\t\t\t\tswitch err.(*jwt.ValidationError).Errors {\n\t\t\t\tcase jwt.ValidationErrorExpired:\n\t\t\t\t\tcode = e.ERROR_AUTH_CHECK_TOKEN_TIMEOUT\n\t\t\t\tdefault:\n\t\t\t\t\tcode = e.ERROR_AUTH_CHECK_TOKEN_FAIL\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif code != e.SUCCESS {\n\t\t\tc.JSON(http.StatusUnauthorized, gin.H{\n\t\t\t\t\"code\": code,\n\t\t\t\t\"msg\":  e.GetMsg(code),\n\t\t\t\t\"data\": data,\n\t\t\t})\n\n\t\t\tc.Abort()\n\t\t\treturn\n\t\t}\n\n\t\tc.Next()\n\t}\n}\n"
  },
  {
    "path": "models/article.go",
    "content": "package models\n\nimport (\n\t\"github.com/jinzhu/gorm\"\n)\n\ntype Article struct {\n\tModel\n\n\tTagID int `json:\"tag_id\" gorm:\"index\"`\n\tTag   Tag `json:\"tag\"`\n\n\tTitle         string `json:\"title\"`\n\tDesc          string `json:\"desc\"`\n\tContent       string `json:\"content\"`\n\tCoverImageUrl string `json:\"cover_image_url\"`\n\tCreatedBy     string `json:\"created_by\"`\n\tModifiedBy    string `json:\"modified_by\"`\n\tState         int    `json:\"state\"`\n}\n\n// ExistArticleByID checks if an article exists based on ID\nfunc ExistArticleByID(id int) (bool, error) {\n\tvar article Article\n\terr := db.Select(\"id\").Where(\"id = ? AND deleted_on = ? \", id, 0).First(&article).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn false, err\n\t}\n\n\tif article.ID > 0 {\n\t\treturn true, nil\n\t}\n\n\treturn false, nil\n}\n\n// GetArticleTotal gets the total number of articles based on the constraints\nfunc GetArticleTotal(maps interface{}) (int, error) {\n\tvar count int\n\tif err := db.Model(&Article{}).Where(maps).Count(&count).Error; err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn count, nil\n}\n\n// GetArticles gets a list of articles based on paging constraints\nfunc GetArticles(pageNum int, pageSize int, maps interface{}) ([]*Article, error) {\n\tvar articles []*Article\n\terr := db.Preload(\"Tag\").Where(maps).Offset(pageNum).Limit(pageSize).Find(&articles).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn nil, err\n\t}\n\n\treturn articles, nil\n}\n\n// GetArticle Get a single article based on ID\nfunc GetArticle(id int) (*Article, error) {\n\tvar article Article\n\terr := db.Where(\"id = ? AND deleted_on = ? \", id, 0).First(&article).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn nil, err\n\t}\n\n\terr = db.Model(&article).Related(&article.Tag).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn nil, err\n\t}\n\n\treturn &article, nil\n}\n\n// EditArticle modify a single article\nfunc EditArticle(id int, data interface{}) error {\n\tif err := db.Model(&Article{}).Where(\"id = ? AND deleted_on = ? \", id, 0).Updates(data).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// AddArticle add a single article\nfunc AddArticle(data map[string]interface{}) error {\n\tarticle := Article{\n\t\tTagID:         data[\"tag_id\"].(int),\n\t\tTitle:         data[\"title\"].(string),\n\t\tDesc:          data[\"desc\"].(string),\n\t\tContent:       data[\"content\"].(string),\n\t\tCreatedBy:     data[\"created_by\"].(string),\n\t\tState:         data[\"state\"].(int),\n\t\tCoverImageUrl: data[\"cover_image_url\"].(string),\n\t}\n\tif err := db.Create(&article).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// DeleteArticle delete a single article\nfunc DeleteArticle(id int) error {\n\tif err := db.Where(\"id = ?\", id).Delete(Article{}).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// CleanAllArticle clear all article\nfunc CleanAllArticle() error {\n\tif err := db.Unscoped().Where(\"deleted_on != ? \", 0).Delete(&Article{}).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "models/auth.go",
    "content": "package models\n\nimport \"github.com/jinzhu/gorm\"\n\ntype Auth struct {\n\tID       int    `gorm:\"primary_key\" json:\"id\"`\n\tUsername string `json:\"username\"`\n\tPassword string `json:\"password\"`\n}\n\n// CheckAuth checks if authentication information exists\nfunc CheckAuth(username, password string) (bool, error) {\n\tvar auth Auth\n\terr := db.Select(\"id\").Where(Auth{Username: username, Password: password}).First(&auth).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn false, err\n\t}\n\n\tif auth.ID > 0 {\n\t\treturn true, nil\n\t}\n\n\treturn false, nil\n}\n"
  },
  {
    "path": "models/models.go",
    "content": "package models\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/jinzhu/gorm\"\n\t_ \"github.com/jinzhu/gorm/dialects/mysql\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\t\"time\"\n)\n\nvar db *gorm.DB\n\ntype Model struct {\n\tID         int `gorm:\"primary_key\" json:\"id\"`\n\tCreatedOn  int `json:\"created_on\"`\n\tModifiedOn int `json:\"modified_on\"`\n\tDeletedOn  int `json:\"deleted_on\"`\n}\n\n// Setup initializes the database instance\nfunc Setup() {\n\tvar err error\n\tdb, err = gorm.Open(setting.DatabaseSetting.Type, fmt.Sprintf(\"%s:%s@tcp(%s)/%s?charset=utf8&parseTime=True&loc=Local\",\n\t\tsetting.DatabaseSetting.User,\n\t\tsetting.DatabaseSetting.Password,\n\t\tsetting.DatabaseSetting.Host,\n\t\tsetting.DatabaseSetting.Name))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"models.Setup err: %v\", err)\n\t}\n\n\tgorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {\n\t\treturn setting.DatabaseSetting.TablePrefix + defaultTableName\n\t}\n\n\tdb.SingularTable(true)\n\tdb.Callback().Create().Replace(\"gorm:update_time_stamp\", updateTimeStampForCreateCallback)\n\tdb.Callback().Update().Replace(\"gorm:update_time_stamp\", updateTimeStampForUpdateCallback)\n\tdb.Callback().Delete().Replace(\"gorm:delete\", deleteCallback)\n\tdb.DB().SetMaxIdleConns(10)\n\tdb.DB().SetMaxOpenConns(100)\n}\n\n// CloseDB closes database connection (unnecessary)\nfunc CloseDB() {\n\tdefer db.Close()\n}\n\n// updateTimeStampForCreateCallback will set `CreatedOn`, `ModifiedOn` when creating\nfunc updateTimeStampForCreateCallback(scope *gorm.Scope) {\n\tif !scope.HasError() {\n\t\tnowTime := time.Now().Unix()\n\t\tif createTimeField, ok := scope.FieldByName(\"CreatedOn\"); ok {\n\t\t\tif createTimeField.IsBlank {\n\t\t\t\tcreateTimeField.Set(nowTime)\n\t\t\t}\n\t\t}\n\n\t\tif modifyTimeField, ok := scope.FieldByName(\"ModifiedOn\"); ok {\n\t\t\tif modifyTimeField.IsBlank {\n\t\t\t\tmodifyTimeField.Set(nowTime)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// updateTimeStampForUpdateCallback will set `ModifiedOn` when updating\nfunc updateTimeStampForUpdateCallback(scope *gorm.Scope) {\n\tif _, ok := scope.Get(\"gorm:update_column\"); !ok {\n\t\tscope.SetColumn(\"ModifiedOn\", time.Now().Unix())\n\t}\n}\n\n// deleteCallback will set `DeletedOn` where deleting\nfunc deleteCallback(scope *gorm.Scope) {\n\tif !scope.HasError() {\n\t\tvar extraOption string\n\t\tif str, ok := scope.Get(\"gorm:delete_option\"); ok {\n\t\t\textraOption = fmt.Sprint(str)\n\t\t}\n\n\t\tdeletedOnField, hasDeletedOnField := scope.FieldByName(\"DeletedOn\")\n\n\t\tif !scope.Search.Unscoped && hasDeletedOnField {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"UPDATE %v SET %v=%v%v%v\",\n\t\t\t\tscope.QuotedTableName(),\n\t\t\t\tscope.Quote(deletedOnField.DBName),\n\t\t\t\tscope.AddToVars(time.Now().Unix()),\n\t\t\t\taddExtraSpaceIfExist(scope.CombinedConditionSql()),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t)).Exec()\n\t\t} else {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"DELETE FROM %v%v%v\",\n\t\t\t\tscope.QuotedTableName(),\n\t\t\t\taddExtraSpaceIfExist(scope.CombinedConditionSql()),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t)).Exec()\n\t\t}\n\t}\n}\n\n// addExtraSpaceIfExist adds a separator\nfunc addExtraSpaceIfExist(str string) string {\n\tif str != \"\" {\n\t\treturn \" \" + str\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "models/tag.go",
    "content": "package models\n\nimport (\n\t\"github.com/jinzhu/gorm\"\n)\n\ntype Tag struct {\n\tModel\n\n\tName       string `json:\"name\"`\n\tCreatedBy  string `json:\"created_by\"`\n\tModifiedBy string `json:\"modified_by\"`\n\tState      int    `json:\"state\"`\n}\n\n// ExistTagByName checks if there is a tag with the same name\nfunc ExistTagByName(name string) (bool, error) {\n\tvar tag Tag\n\terr := db.Select(\"id\").Where(\"name = ? AND deleted_on = ? \", name, 0).First(&tag).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn false, err\n\t}\n\n\tif tag.ID > 0 {\n\t\treturn true, nil\n\t}\n\n\treturn false, nil\n}\n\n// AddTag Add a Tag\nfunc AddTag(name string, state int, createdBy string) error {\n\ttag := Tag{\n\t\tName:      name,\n\t\tState:     state,\n\t\tCreatedBy: createdBy,\n\t}\n\tif err := db.Create(&tag).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// GetTags gets a list of tags based on paging and constraints\nfunc GetTags(pageNum int, pageSize int, maps interface{}) ([]Tag, error) {\n\tvar (\n\t\ttags []Tag\n\t\terr  error\n\t)\n\n\tif pageSize > 0 && pageNum > 0 {\n\t\terr = db.Where(maps).Find(&tags).Offset(pageNum).Limit(pageSize).Error\n\t} else {\n\t\terr = db.Where(maps).Find(&tags).Error\n\t}\n\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn nil, err\n\t}\n\n\treturn tags, nil\n}\n\n// GetTagTotal counts the total number of tags based on the constraint\nfunc GetTagTotal(maps interface{}) (int, error) {\n\tvar count int\n\tif err := db.Model(&Tag{}).Where(maps).Count(&count).Error; err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn count, nil\n}\n\n// ExistTagByID determines whether a Tag exists based on the ID\nfunc ExistTagByID(id int) (bool, error) {\n\tvar tag Tag\n\terr := db.Select(\"id\").Where(\"id = ? AND deleted_on = ? \", id, 0).First(&tag).Error\n\tif err != nil && err != gorm.ErrRecordNotFound {\n\t\treturn false, err\n\t}\n\tif tag.ID > 0 {\n\t\treturn true, nil\n\t}\n\n\treturn false, nil\n}\n\n// DeleteTag delete a tag\nfunc DeleteTag(id int) error {\n\tif err := db.Where(\"id = ?\", id).Delete(&Tag{}).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// EditTag modify a single tag\nfunc EditTag(id int, data interface{}) error {\n\tif err := db.Model(&Tag{}).Where(\"id = ? AND deleted_on = ? \", id, 0).Updates(data).Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// CleanAllTag clear all tag\nfunc CleanAllTag() (bool, error) {\n\tif err := db.Unscoped().Where(\"deleted_on != ? \", 0).Delete(&Tag{}).Error; err != nil {\n\t\treturn false, err\n\t}\n\n\treturn true, nil\n}\n"
  },
  {
    "path": "pkg/app/form.go",
    "content": "package app\n\nimport (\n\t\"github.com/astaxie/beego/validation\"\n\t\"github.com/gin-gonic/gin\"\n\t\"net/http\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n)\n\n// BindAndValid binds and validates data\nfunc BindAndValid(c *gin.Context, form interface{}) (int, int) {\n\terr := c.Bind(form)\n\tif err != nil {\n\t\treturn http.StatusBadRequest, e.INVALID_PARAMS\n\t}\n\n\tvalid := validation.Validation{}\n\tcheck, err := valid.Valid(form)\n\tif err != nil {\n\t\treturn http.StatusInternalServerError, e.ERROR\n\t}\n\tif !check {\n\t\tMarkErrors(valid.Errors)\n\t\treturn http.StatusBadRequest, e.INVALID_PARAMS\n\t}\n\n\treturn http.StatusOK, e.SUCCESS\n}\n"
  },
  {
    "path": "pkg/app/request.go",
    "content": "package app\n\nimport (\n\t\"github.com/astaxie/beego/validation\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n)\n\n// MarkErrors logs error logs\nfunc MarkErrors(errors []*validation.Error) {\n\tfor _, err := range errors {\n\t\tlogging.Info(err.Key, err.Message)\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "pkg/app/response.go",
    "content": "package app\n\nimport (\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n)\n\ntype Gin struct {\n\tC *gin.Context\n}\n\ntype Response struct {\n\tCode int         `json:\"code\"`\n\tMsg  string      `json:\"msg\"`\n\tData interface{} `json:\"data\"`\n}\n\n// Response setting gin.JSON\nfunc (g *Gin) Response(httpCode, errCode int, data interface{}) {\n\tg.C.JSON(httpCode, Response{\n\t\tCode: errCode,\n\t\tMsg:  e.GetMsg(errCode),\n\t\tData: data,\n\t})\n\treturn\n}\n"
  },
  {
    "path": "pkg/e/cache.go",
    "content": "package e\n\nconst (\n\tCACHE_ARTICLE = \"ARTICLE\"\n\tCACHE_TAG     = \"TAG\"\n)\n"
  },
  {
    "path": "pkg/e/code.go",
    "content": "package e\n\nconst (\n\tSUCCESS        = 200\n\tERROR          = 500\n\tINVALID_PARAMS = 400\n\n\tERROR_EXIST_TAG       = 10001\n\tERROR_EXIST_TAG_FAIL  = 10002\n\tERROR_NOT_EXIST_TAG   = 10003\n\tERROR_GET_TAGS_FAIL   = 10004\n\tERROR_COUNT_TAG_FAIL  = 10005\n\tERROR_ADD_TAG_FAIL    = 10006\n\tERROR_EDIT_TAG_FAIL   = 10007\n\tERROR_DELETE_TAG_FAIL = 10008\n\tERROR_EXPORT_TAG_FAIL = 10009\n\tERROR_IMPORT_TAG_FAIL = 10010\n\n\tERROR_NOT_EXIST_ARTICLE        = 10011\n\tERROR_CHECK_EXIST_ARTICLE_FAIL = 10012\n\tERROR_ADD_ARTICLE_FAIL         = 10013\n\tERROR_DELETE_ARTICLE_FAIL      = 10014\n\tERROR_EDIT_ARTICLE_FAIL        = 10015\n\tERROR_COUNT_ARTICLE_FAIL       = 10016\n\tERROR_GET_ARTICLES_FAIL        = 10017\n\tERROR_GET_ARTICLE_FAIL         = 10018\n\tERROR_GEN_ARTICLE_POSTER_FAIL  = 10019\n\n\tERROR_AUTH_CHECK_TOKEN_FAIL    = 20001\n\tERROR_AUTH_CHECK_TOKEN_TIMEOUT = 20002\n\tERROR_AUTH_TOKEN               = 20003\n\tERROR_AUTH                     = 20004\n\n\tERROR_UPLOAD_SAVE_IMAGE_FAIL    = 30001\n\tERROR_UPLOAD_CHECK_IMAGE_FAIL   = 30002\n\tERROR_UPLOAD_CHECK_IMAGE_FORMAT = 30003\n)\n"
  },
  {
    "path": "pkg/e/msg.go",
    "content": "package e\n\nvar MsgFlags = map[int]string{\n\tSUCCESS:                         \"ok\",\n\tERROR:                           \"fail\",\n\tINVALID_PARAMS:                  \"请求参数错误\",\n\tERROR_EXIST_TAG:                 \"已存在该标签名称\",\n\tERROR_EXIST_TAG_FAIL:            \"获取已存在标签失败\",\n\tERROR_NOT_EXIST_TAG:             \"该标签不存在\",\n\tERROR_GET_TAGS_FAIL:             \"获取所有标签失败\",\n\tERROR_COUNT_TAG_FAIL:            \"统计标签失败\",\n\tERROR_ADD_TAG_FAIL:              \"新增标签失败\",\n\tERROR_EDIT_TAG_FAIL:             \"修改标签失败\",\n\tERROR_DELETE_TAG_FAIL:           \"删除标签失败\",\n\tERROR_EXPORT_TAG_FAIL:           \"导出标签失败\",\n\tERROR_IMPORT_TAG_FAIL:           \"导入标签失败\",\n\tERROR_NOT_EXIST_ARTICLE:         \"该文章不存在\",\n\tERROR_ADD_ARTICLE_FAIL:          \"新增文章失败\",\n\tERROR_DELETE_ARTICLE_FAIL:       \"删除文章失败\",\n\tERROR_CHECK_EXIST_ARTICLE_FAIL:  \"检查文章是否存在失败\",\n\tERROR_EDIT_ARTICLE_FAIL:         \"修改文章失败\",\n\tERROR_COUNT_ARTICLE_FAIL:        \"统计文章失败\",\n\tERROR_GET_ARTICLES_FAIL:         \"获取多个文章失败\",\n\tERROR_GET_ARTICLE_FAIL:          \"获取单个文章失败\",\n\tERROR_GEN_ARTICLE_POSTER_FAIL:   \"生成文章海报失败\",\n\tERROR_AUTH_CHECK_TOKEN_FAIL:     \"Token鉴权失败\",\n\tERROR_AUTH_CHECK_TOKEN_TIMEOUT:  \"Token已超时\",\n\tERROR_AUTH_TOKEN:                \"Token生成失败\",\n\tERROR_AUTH:                      \"Token错误\",\n\tERROR_UPLOAD_SAVE_IMAGE_FAIL:    \"保存图片失败\",\n\tERROR_UPLOAD_CHECK_IMAGE_FAIL:   \"检查图片失败\",\n\tERROR_UPLOAD_CHECK_IMAGE_FORMAT: \"校验图片错误，图片格式或大小有问题\",\n}\n\n// GetMsg get error information based on Code\nfunc GetMsg(code int) string {\n\tmsg, ok := MsgFlags[code]\n\tif ok {\n\t\treturn msg\n\t}\n\n\treturn MsgFlags[ERROR]\n}\n"
  },
  {
    "path": "pkg/export/excel.go",
    "content": "package export\n\nimport \"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\nconst EXT = \".xlsx\"\n\n// GetExcelFullUrl get the full access path of the Excel file\nfunc GetExcelFullUrl(name string) string {\n\treturn setting.AppSetting.PrefixUrl + \"/\" + GetExcelPath() + name\n}\n\n// GetExcelPath get the relative save path of the Excel file\nfunc GetExcelPath() string {\n\treturn setting.AppSetting.ExportSavePath\n}\n\n// GetExcelFullPath Get the full save path of the Excel file\nfunc GetExcelFullPath() string {\n\treturn setting.AppSetting.RuntimeRootPath + GetExcelPath()\n}\n"
  },
  {
    "path": "pkg/file/file.go",
    "content": "package file\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"mime/multipart\"\n\t\"os\"\n\t\"path\"\n)\n\n// GetSize get the file size\nfunc GetSize(f multipart.File) (int, error) {\n\tcontent, err := ioutil.ReadAll(f)\n\n\treturn len(content), err\n}\n\n// GetExt get the file ext\nfunc GetExt(fileName string) string {\n\treturn path.Ext(fileName)\n}\n\n// CheckNotExist check if the file exists\nfunc CheckNotExist(src string) bool {\n\t_, err := os.Stat(src)\n\n\treturn os.IsNotExist(err)\n}\n\n// CheckPermission check if the file has permission\nfunc CheckPermission(src string) bool {\n\t_, err := os.Stat(src)\n\n\treturn os.IsPermission(err)\n}\n\n// IsNotExistMkDir create a directory if it does not exist\nfunc IsNotExistMkDir(src string) error {\n\tif notExist := CheckNotExist(src); notExist == true {\n\t\tif err := MkDir(src); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// MkDir create a directory\nfunc MkDir(src string) error {\n\terr := os.MkdirAll(src, os.ModePerm)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Open a file according to a specific mode\nfunc Open(name string, flag int, perm os.FileMode) (*os.File, error) {\n\tf, err := os.OpenFile(name, flag, perm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn f, nil\n}\n\n// MustOpen maximize trying to open the file\nfunc MustOpen(fileName, filePath string) (*os.File, error) {\n\tdir, err := os.Getwd()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"os.Getwd err: %v\", err)\n\t}\n\n\tsrc := dir + \"/\" + filePath\n\tperm := CheckPermission(src)\n\tif perm == true {\n\t\treturn nil, fmt.Errorf(\"file.CheckPermission Permission denied src: %s\", src)\n\t}\n\n\terr = IsNotExistMkDir(src)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"file.IsNotExistMkDir src: %s, err: %v\", src, err)\n\t}\n\n\tf, err := Open(src+fileName, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0644)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Fail to OpenFile :%v\", err)\n\t}\n\n\treturn f, nil\n}\n"
  },
  {
    "path": "pkg/gredis/redis.go",
    "content": "package gredis\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n\n\t\"github.com/gomodule/redigo/redis\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n)\n\nvar RedisConn *redis.Pool\n\n// Setup Initialize the Redis instance\nfunc Setup() error {\n\tRedisConn = &redis.Pool{\n\t\tMaxIdle:     setting.RedisSetting.MaxIdle,\n\t\tMaxActive:   setting.RedisSetting.MaxActive,\n\t\tIdleTimeout: setting.RedisSetting.IdleTimeout,\n\t\tDial: func() (redis.Conn, error) {\n\t\t\tc, err := redis.Dial(\"tcp\", setting.RedisSetting.Host)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif setting.RedisSetting.Password != \"\" {\n\t\t\t\tif _, err := c.Do(\"AUTH\", setting.RedisSetting.Password); err != nil {\n\t\t\t\t\tc.Close()\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn c, err\n\t\t},\n\t\tTestOnBorrow: func(c redis.Conn, t time.Time) error {\n\t\t\t_, err := c.Do(\"PING\")\n\t\t\treturn err\n\t\t},\n\t}\n\n\treturn nil\n}\n\n// Set a key/value\nfunc Set(key string, data interface{}, time int) error {\n\tconn := RedisConn.Get()\n\tdefer conn.Close()\n\n\tvalue, err := json.Marshal(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = conn.Do(\"SET\", key, value)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = conn.Do(\"EXPIRE\", key, time)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Exists check a key\nfunc Exists(key string) bool {\n\tconn := RedisConn.Get()\n\tdefer conn.Close()\n\n\texists, err := redis.Bool(conn.Do(\"EXISTS\", key))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn exists\n}\n\n// Get get a key\nfunc Get(key string) ([]byte, error) {\n\tconn := RedisConn.Get()\n\tdefer conn.Close()\n\n\treply, err := redis.Bytes(conn.Do(\"GET\", key))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn reply, nil\n}\n\n// Delete delete a kye\nfunc Delete(key string) (bool, error) {\n\tconn := RedisConn.Get()\n\tdefer conn.Close()\n\n\treturn redis.Bool(conn.Do(\"DEL\", key))\n}\n\n// LikeDeletes batch delete\nfunc LikeDeletes(key string) error {\n\tconn := RedisConn.Get()\n\tdefer conn.Close()\n\n\tkeys, err := redis.Strings(conn.Do(\"KEYS\", \"*\"+key+\"*\"))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, key := range keys {\n\t\t_, err = Delete(key)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/logging/file.go",
    "content": "package logging\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n)\n\n// getLogFilePath get the log file save path\nfunc getLogFilePath() string {\n\treturn fmt.Sprintf(\"%s%s\", setting.AppSetting.RuntimeRootPath, setting.AppSetting.LogSavePath)\n}\n\n// getLogFileName get the save name of the log file\nfunc getLogFileName() string {\n\treturn fmt.Sprintf(\"%s%s.%s\",\n\t\tsetting.AppSetting.LogSaveName,\n\t\ttime.Now().Format(setting.AppSetting.TimeFormat),\n\t\tsetting.AppSetting.LogFileExt,\n\t)\n}\n"
  },
  {
    "path": "pkg/logging/log.go",
    "content": "package logging\n\nimport (\n\t\"fmt\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/file\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n)\n\ntype Level int\n\nvar (\n\tF *os.File\n\n\tDefaultPrefix      = \"\"\n\tDefaultCallerDepth = 2\n\n\tlogger     *log.Logger\n\tlogPrefix  = \"\"\n\tlevelFlags = []string{\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\", \"FATAL\"}\n)\n\nconst (\n\tDEBUG Level = iota\n\tINFO\n\tWARNING\n\tERROR\n\tFATAL\n)\n\n// Setup initialize the log instance\nfunc Setup() {\n\tvar err error\n\tfilePath := getLogFilePath()\n\tfileName := getLogFileName()\n\tF, err = file.MustOpen(fileName, filePath)\n\tif err != nil {\n\t\tlog.Fatalf(\"logging.Setup err: %v\", err)\n\t}\n\n\tlogger = log.New(F, DefaultPrefix, log.LstdFlags)\n}\n\n// Debug output logs at debug level\nfunc Debug(v ...interface{}) {\n\tsetPrefix(DEBUG)\n\tlogger.Println(v)\n}\n\n// Info output logs at info level\nfunc Info(v ...interface{}) {\n\tsetPrefix(INFO)\n\tlogger.Println(v)\n}\n\n// Warn output logs at warn level\nfunc Warn(v ...interface{}) {\n\tsetPrefix(WARNING)\n\tlogger.Println(v)\n}\n\n// Error output logs at error level\nfunc Error(v ...interface{}) {\n\tsetPrefix(ERROR)\n\tlogger.Println(v)\n}\n\n// Fatal output logs at fatal level\nfunc Fatal(v ...interface{}) {\n\tsetPrefix(FATAL)\n\tlogger.Fatalln(v)\n}\n\n// setPrefix set the prefix of the log output\nfunc setPrefix(level Level) {\n\t_, file, line, ok := runtime.Caller(DefaultCallerDepth)\n\tif ok {\n\t\tlogPrefix = fmt.Sprintf(\"[%s][%s:%d]\", levelFlags[level], filepath.Base(file), line)\n\t} else {\n\t\tlogPrefix = fmt.Sprintf(\"[%s]\", levelFlags[level])\n\t}\n\n\tlogger.SetPrefix(logPrefix)\n}\n"
  },
  {
    "path": "pkg/qrcode/qrcode.go",
    "content": "package qrcode\n\nimport (\n\t\"image/jpeg\"\n\n\t\"github.com/boombuler/barcode\"\n\t\"github.com/boombuler/barcode/qr\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/file\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n)\n\ntype QrCode struct {\n\tURL    string\n\tWidth  int\n\tHeight int\n\tExt    string\n\tLevel  qr.ErrorCorrectionLevel\n\tMode   qr.Encoding\n}\n\nconst (\n\tEXT_JPG = \".jpg\"\n)\n\n// NewQrCode initialize instance\nfunc NewQrCode(url string, width, height int, level qr.ErrorCorrectionLevel, mode qr.Encoding) *QrCode {\n\treturn &QrCode{\n\t\tURL:    url,\n\t\tWidth:  width,\n\t\tHeight: height,\n\t\tLevel:  level,\n\t\tMode:   mode,\n\t\tExt:    EXT_JPG,\n\t}\n}\n\n// GetQrCodePath get save path\nfunc GetQrCodePath() string {\n\treturn setting.AppSetting.QrCodeSavePath\n}\n\n// GetQrCodeFullPath get full save path\nfunc GetQrCodeFullPath() string {\n\treturn setting.AppSetting.RuntimeRootPath + setting.AppSetting.QrCodeSavePath\n}\n\n// GetQrCodeFullUrl get the full access path\nfunc GetQrCodeFullUrl(name string) string {\n\treturn setting.AppSetting.PrefixUrl + \"/\" + GetQrCodePath() + name\n}\n\n// GetQrCodeFileName get qr file name\nfunc GetQrCodeFileName(value string) string {\n\treturn util.EncodeMD5(value)\n}\n\n// GetQrCodeExt get qr file ext\nfunc (q *QrCode) GetQrCodeExt() string {\n\treturn q.Ext\n}\n\n// Encode generate QR code\nfunc (q *QrCode) Encode(path string) (string, string, error) {\n\tname := GetQrCodeFileName(q.URL) + q.GetQrCodeExt()\n\tsrc := path + name\n\tif file.CheckNotExist(src) == true {\n\t\tcode, err := qr.Encode(q.URL, q.Level, q.Mode)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\n\t\tcode, err = barcode.Scale(code, q.Width, q.Height)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\n\t\tf, err := file.MustOpen(name, path)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t\tdefer f.Close()\n\n\t\terr = jpeg.Encode(f, code, nil)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t}\n\n\treturn name, path, nil\n}\n"
  },
  {
    "path": "pkg/setting/setting.go",
    "content": "package setting\n\nimport (\n\t\"log\"\n\t\"time\"\n\n\t\"github.com/go-ini/ini\"\n)\n\ntype App struct {\n\tJwtSecret string\n\tPageSize  int\n\tPrefixUrl string\n\n\tRuntimeRootPath string\n\n\tImageSavePath  string\n\tImageMaxSize   int\n\tImageAllowExts []string\n\n\tExportSavePath string\n\tQrCodeSavePath string\n\tFontSavePath   string\n\n\tLogSavePath string\n\tLogSaveName string\n\tLogFileExt  string\n\tTimeFormat  string\n}\n\nvar AppSetting = &App{}\n\ntype Server struct {\n\tRunMode      string\n\tHttpPort     int\n\tReadTimeout  time.Duration\n\tWriteTimeout time.Duration\n}\n\nvar ServerSetting = &Server{}\n\ntype Database struct {\n\tType        string\n\tUser        string\n\tPassword    string\n\tHost        string\n\tName        string\n\tTablePrefix string\n}\n\nvar DatabaseSetting = &Database{}\n\ntype Redis struct {\n\tHost        string\n\tPassword    string\n\tMaxIdle     int\n\tMaxActive   int\n\tIdleTimeout time.Duration\n}\n\nvar RedisSetting = &Redis{}\n\nvar cfg *ini.File\n\n// Setup initialize the configuration instance\nfunc Setup() {\n\tvar err error\n\tcfg, err = ini.Load(\"conf/app.ini\")\n\tif err != nil {\n\t\tlog.Fatalf(\"setting.Setup, fail to parse 'conf/app.ini': %v\", err)\n\t}\n\n\tmapTo(\"app\", AppSetting)\n\tmapTo(\"server\", ServerSetting)\n\tmapTo(\"database\", DatabaseSetting)\n\tmapTo(\"redis\", RedisSetting)\n\n\tAppSetting.ImageMaxSize = AppSetting.ImageMaxSize * 1024 * 1024\n\tServerSetting.ReadTimeout = ServerSetting.ReadTimeout * time.Second\n\tServerSetting.WriteTimeout = ServerSetting.WriteTimeout * time.Second\n\tRedisSetting.IdleTimeout = RedisSetting.IdleTimeout * time.Second\n}\n\n// mapTo map section\nfunc mapTo(section string, v interface{}) {\n\terr := cfg.Section(section).MapTo(v)\n\tif err != nil {\n\t\tlog.Fatalf(\"Cfg.MapTo %s err: %v\", section, err)\n\t}\n}\n"
  },
  {
    "path": "pkg/upload/image.go",
    "content": "package upload\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"mime/multipart\"\n\t\"os\"\n\t\"path\"\n\t\"strings\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/file\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n)\n\n// GetImageFullUrl get the full access path\nfunc GetImageFullUrl(name string) string {\n\treturn setting.AppSetting.PrefixUrl + \"/\" + GetImagePath() + name\n}\n\n// GetImageName get image name\nfunc GetImageName(name string) string {\n\text := path.Ext(name)\n\tfileName := strings.TrimSuffix(name, ext)\n\tfileName = util.EncodeMD5(fileName)\n\n\treturn fileName + ext\n}\n\n// GetImagePath get save path\nfunc GetImagePath() string {\n\treturn setting.AppSetting.ImageSavePath\n}\n\n// GetImageFullPath get full save path\nfunc GetImageFullPath() string {\n\treturn setting.AppSetting.RuntimeRootPath + GetImagePath()\n}\n\n// CheckImageExt check image file ext\nfunc CheckImageExt(fileName string) bool {\n\text := file.GetExt(fileName)\n\tfor _, allowExt := range setting.AppSetting.ImageAllowExts {\n\t\tif strings.ToUpper(allowExt) == strings.ToUpper(ext) {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// CheckImageSize check image size\nfunc CheckImageSize(f multipart.File) bool {\n\tsize, err := file.GetSize(f)\n\tif err != nil {\n\t\tlog.Println(err)\n\t\tlogging.Warn(err)\n\t\treturn false\n\t}\n\n\treturn size <= setting.AppSetting.ImageMaxSize\n}\n\n// CheckImage check if the file exists\nfunc CheckImage(src string) error {\n\tdir, err := os.Getwd()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"os.Getwd err: %v\", err)\n\t}\n\n\terr = file.IsNotExistMkDir(dir + \"/\" + src)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"file.IsNotExistMkDir err: %v\", err)\n\t}\n\n\tperm := file.CheckPermission(src)\n\tif perm == true {\n\t\treturn fmt.Errorf(\"file.CheckPermission Permission denied src: %s\", src)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/util/jwt.go",
    "content": "package util\n\nimport (\n\t\"time\"\n\n\t\"github.com/dgrijalva/jwt-go\"\n)\n\nvar jwtSecret []byte\n\ntype Claims struct {\n\tUsername string `json:\"username\"`\n\tPassword string `json:\"password\"`\n\tjwt.StandardClaims\n}\n\n// GenerateToken generate tokens used for auth\nfunc GenerateToken(username, password string) (string, error) {\n\tnowTime := time.Now()\n\texpireTime := nowTime.Add(3 * time.Hour)\n\n\tclaims := Claims{\n\t\tEncodeMD5(username),\n\t\tEncodeMD5(password),\n\t\tjwt.StandardClaims{\n\t\t\tExpiresAt: expireTime.Unix(),\n\t\t\tIssuer:    \"gin-blog\",\n\t\t},\n\t}\n\n\ttokenClaims := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)\n\ttoken, err := tokenClaims.SignedString(jwtSecret)\n\n\treturn token, err\n}\n\n// ParseToken parsing token\nfunc ParseToken(token string) (*Claims, error) {\n\ttokenClaims, err := jwt.ParseWithClaims(token, &Claims{}, func(token *jwt.Token) (interface{}, error) {\n\t\treturn jwtSecret, nil\n\t})\n\n\tif tokenClaims != nil {\n\t\tif claims, ok := tokenClaims.Claims.(*Claims); ok && tokenClaims.Valid {\n\t\t\treturn claims, nil\n\t\t}\n\t}\n\n\treturn nil, err\n}\n"
  },
  {
    "path": "pkg/util/md5.go",
    "content": "package util\n\nimport (\n\t\"crypto/md5\"\n\t\"encoding/hex\"\n)\n\n// EncodeMD5 md5 encryption\nfunc EncodeMD5(value string) string {\n\tm := md5.New()\n\tm.Write([]byte(value))\n\n\treturn hex.EncodeToString(m.Sum(nil))\n}\n"
  },
  {
    "path": "pkg/util/pagination.go",
    "content": "package util\n\nimport (\n\t\"github.com/unknwon/com\"\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n)\n\n// GetPage get page parameters\nfunc GetPage(c *gin.Context) int {\n\tresult := 0\n\tpage := com.StrTo(c.Query(\"page\")).MustInt()\n\tif page > 0 {\n\t\tresult = (page - 1) * setting.AppSetting.PageSize\n\t}\n\n\treturn result\n}\n"
  },
  {
    "path": "pkg/util/util.go",
    "content": "package util\n\nimport \"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\n// Setup Initialize the util\nfunc Setup() {\n\tjwtSecret = []byte(setting.AppSetting.JwtSecret)\n}"
  },
  {
    "path": "routers/api/auth.go",
    "content": "package api\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/astaxie/beego/validation\"\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/app\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n\t\"github.com/EDDYCJY/go-gin-example/service/auth_service\"\n)\n\ntype auth struct {\n\tUsername string `valid:\"Required; MaxSize(50)\"`\n\tPassword string `valid:\"Required; MaxSize(50)\"`\n}\n\n// @Summary Get Auth\n// @Produce  json\n// @Param username query string true \"userName\"\n// @Param password query string true \"password\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /auth [get]\nfunc GetAuth(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tvalid := validation.Validation{}\n\n\tusername := c.PostForm(\"username\")\n\tpassword := c.PostForm(\"password\")\n\n\ta := auth{Username: username, Password: password}\n\tok, _ := valid.Valid(&a)\n\n\tif !ok {\n\t\tapp.MarkErrors(valid.Errors)\n\t\tappG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)\n\t\treturn\n\t}\n\n\tauthService := auth_service.Auth{Username: username, Password: password}\n\tisExist, err := authService.Check()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_AUTH_CHECK_TOKEN_FAIL, nil)\n\t\treturn\n\t}\n\n\tif !isExist {\n\t\tappG.Response(http.StatusUnauthorized, e.ERROR_AUTH, nil)\n\t\treturn\n\t}\n\n\ttoken, err := util.GenerateToken(username, password)\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_AUTH_TOKEN, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, map[string]string{\n\t\t\"token\": token,\n\t})\n}\n"
  },
  {
    "path": "routers/api/upload.go",
    "content": "package api\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/app\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/upload\"\n)\n\n// @Summary Import Image\n// @Produce  json\n// @Param image formData file true \"Image File\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags/import [post]\nfunc UploadImage(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tfile, image, err := c.Request.FormFile(\"image\")\n\tif err != nil {\n\t\tlogging.Warn(err)\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR, nil)\n\t\treturn\n\t}\n\n\tif image == nil {\n\t\tappG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)\n\t\treturn\n\t}\n\n\timageName := upload.GetImageName(image.Filename)\n\tfullPath := upload.GetImageFullPath()\n\tsavePath := upload.GetImagePath()\n\tsrc := fullPath + imageName\n\n\tif !upload.CheckImageExt(imageName) || !upload.CheckImageSize(file) {\n\t\tappG.Response(http.StatusBadRequest, e.ERROR_UPLOAD_CHECK_IMAGE_FORMAT, nil)\n\t\treturn\n\t}\n\n\terr = upload.CheckImage(fullPath)\n\tif err != nil {\n\t\tlogging.Warn(err)\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_UPLOAD_CHECK_IMAGE_FAIL, nil)\n\t\treturn\n\t}\n\n\tif err := c.SaveUploadedFile(image, src); err != nil {\n\t\tlogging.Warn(err)\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_UPLOAD_SAVE_IMAGE_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, map[string]string{\n\t\t\"image_url\":      upload.GetImageFullUrl(imageName),\n\t\t\"image_save_url\": savePath + imageName,\n\t})\n}\n"
  },
  {
    "path": "routers/api/v1/article.go",
    "content": "package v1\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/unknwon/com\"\n\t\"github.com/astaxie/beego/validation\"\n\t\"github.com/boombuler/barcode/qr\"\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/app\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/qrcode\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n\t\"github.com/EDDYCJY/go-gin-example/service/article_service\"\n\t\"github.com/EDDYCJY/go-gin-example/service/tag_service\"\n)\n\n// @Summary Get a single article\n// @Produce  json\n// @Param id path int true \"ID\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/articles/{id} [get]\nfunc GetArticle(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tid := com.StrTo(c.Param(\"id\")).MustInt()\n\tvalid := validation.Validation{}\n\tvalid.Min(id, 1, \"id\")\n\n\tif valid.HasErrors() {\n\t\tapp.MarkErrors(valid.Errors)\n\t\tappG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)\n\t\treturn\n\t}\n\n\tarticleService := article_service.Article{ID: id}\n\texists, err := articleService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_CHECK_EXIST_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_ARTICLE, nil)\n\t\treturn\n\t}\n\n\tarticle, err := articleService.Get()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_GET_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, article)\n}\n\n// @Summary Get multiple articles\n// @Produce  json\n// @Param tag_id body int false \"TagID\"\n// @Param state body int false \"State\"\n// @Param created_by body int false \"CreatedBy\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/articles [get]\nfunc GetArticles(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tvalid := validation.Validation{}\n\n\tstate := -1\n\tif arg := c.PostForm(\"state\"); arg != \"\" {\n\t\tstate = com.StrTo(arg).MustInt()\n\t\tvalid.Range(state, 0, 1, \"state\")\n\t}\n\n\ttagId := -1\n\tif arg := c.PostForm(\"tag_id\"); arg != \"\" {\n\t\ttagId = com.StrTo(arg).MustInt()\n\t\tvalid.Min(tagId, 1, \"tag_id\")\n\t}\n\n\tif valid.HasErrors() {\n\t\tapp.MarkErrors(valid.Errors)\n\t\tappG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)\n\t\treturn\n\t}\n\n\tarticleService := article_service.Article{\n\t\tTagID:    tagId,\n\t\tState:    state,\n\t\tPageNum:  util.GetPage(c),\n\t\tPageSize: setting.AppSetting.PageSize,\n\t}\n\n\ttotal, err := articleService.Count()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_COUNT_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\n\tarticles, err := articleService.GetAll()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_GET_ARTICLES_FAIL, nil)\n\t\treturn\n\t}\n\n\tdata := make(map[string]interface{})\n\tdata[\"lists\"] = articles\n\tdata[\"total\"] = total\n\n\tappG.Response(http.StatusOK, e.SUCCESS, data)\n}\n\ntype AddArticleForm struct {\n\tTagID         int    `form:\"tag_id\" valid:\"Required;Min(1)\"`\n\tTitle         string `form:\"title\" valid:\"Required;MaxSize(100)\"`\n\tDesc          string `form:\"desc\" valid:\"Required;MaxSize(255)\"`\n\tContent       string `form:\"content\" valid:\"Required;MaxSize(65535)\"`\n\tCreatedBy     string `form:\"created_by\" valid:\"Required;MaxSize(100)\"`\n\tCoverImageUrl string `form:\"cover_image_url\" valid:\"Required;MaxSize(255)\"`\n\tState         int    `form:\"state\" valid:\"Range(0,1)\"`\n}\n\n// @Summary Add article\n// @Produce  json\n// @Param tag_id body int true \"TagID\"\n// @Param title body string true \"Title\"\n// @Param desc body string true \"Desc\"\n// @Param content body string true \"Content\"\n// @Param created_by body string true \"CreatedBy\"\n// @Param state body int true \"State\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/articles [post]\nfunc AddArticle(c *gin.Context) {\n\tvar (\n\t\tappG = app.Gin{C: c}\n\t\tform AddArticleForm\n\t)\n\n\thttpCode, errCode := app.BindAndValid(c, &form)\n\tif errCode != e.SUCCESS {\n\t\tappG.Response(httpCode, errCode, nil)\n\t\treturn\n\t}\n\n\ttagService := tag_service.Tag{ID: form.TagID}\n\texists, err := tagService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EXIST_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_TAG, nil)\n\t\treturn\n\t}\n\n\tarticleService := article_service.Article{\n\t\tTagID:         form.TagID,\n\t\tTitle:         form.Title,\n\t\tDesc:          form.Desc,\n\t\tContent:       form.Content,\n\t\tCoverImageUrl: form.CoverImageUrl,\n\t\tState:         form.State,\n\t\tCreatedBy:     form.CreatedBy,\n\t}\n\tif err := articleService.Add(); err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_ADD_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n\ntype EditArticleForm struct {\n\tID            int    `form:\"id\" valid:\"Required;Min(1)\"`\n\tTagID         int    `form:\"tag_id\" valid:\"Required;Min(1)\"`\n\tTitle         string `form:\"title\" valid:\"Required;MaxSize(100)\"`\n\tDesc          string `form:\"desc\" valid:\"Required;MaxSize(255)\"`\n\tContent       string `form:\"content\" valid:\"Required;MaxSize(65535)\"`\n\tModifiedBy    string `form:\"modified_by\" valid:\"Required;MaxSize(100)\"`\n\tCoverImageUrl string `form:\"cover_image_url\" valid:\"Required;MaxSize(255)\"`\n\tState         int    `form:\"state\" valid:\"Range(0,1)\"`\n}\n\n// @Summary Update article\n// @Produce  json\n// @Param id path int true \"ID\"\n// @Param tag_id body string false \"TagID\"\n// @Param title body string false \"Title\"\n// @Param desc body string false \"Desc\"\n// @Param content body string false \"Content\"\n// @Param modified_by body string true \"ModifiedBy\"\n// @Param state body int false \"State\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/articles/{id} [put]\nfunc EditArticle(c *gin.Context) {\n\tvar (\n\t\tappG = app.Gin{C: c}\n\t\tform = EditArticleForm{ID: com.StrTo(c.Param(\"id\")).MustInt()}\n\t)\n\n\thttpCode, errCode := app.BindAndValid(c, &form)\n\tif errCode != e.SUCCESS {\n\t\tappG.Response(httpCode, errCode, nil)\n\t\treturn\n\t}\n\n\tarticleService := article_service.Article{\n\t\tID:            form.ID,\n\t\tTagID:         form.TagID,\n\t\tTitle:         form.Title,\n\t\tDesc:          form.Desc,\n\t\tContent:       form.Content,\n\t\tCoverImageUrl: form.CoverImageUrl,\n\t\tModifiedBy:    form.ModifiedBy,\n\t\tState:         form.State,\n\t}\n\texists, err := articleService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_CHECK_EXIST_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_ARTICLE, nil)\n\t\treturn\n\t}\n\n\ttagService := tag_service.Tag{ID: form.TagID}\n\texists, err = tagService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EXIST_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_TAG, nil)\n\t\treturn\n\t}\n\n\terr = articleService.Edit()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EDIT_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n\n// @Summary Delete article\n// @Produce  json\n// @Param id path int true \"ID\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/articles/{id} [delete]\nfunc DeleteArticle(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tvalid := validation.Validation{}\n\tid := com.StrTo(c.Param(\"id\")).MustInt()\n\tvalid.Min(id, 1, \"id\").Message(\"ID必须大于0\")\n\n\tif valid.HasErrors() {\n\t\tapp.MarkErrors(valid.Errors)\n\t\tappG.Response(http.StatusOK, e.INVALID_PARAMS, nil)\n\t\treturn\n\t}\n\n\tarticleService := article_service.Article{ID: id}\n\texists, err := articleService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_CHECK_EXIST_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_ARTICLE, nil)\n\t\treturn\n\t}\n\n\terr = articleService.Delete()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_DELETE_ARTICLE_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n\nconst (\n\tQRCODE_URL = \"https://github.com/EDDYCJY/blog#gin%E7%B3%BB%E5%88%97%E7%9B%AE%E5%BD%95\"\n)\n\nfunc GenerateArticlePoster(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tarticle := &article_service.Article{}\n\tqr := qrcode.NewQrCode(QRCODE_URL, 300, 300, qr.M, qr.Auto)\n\tposterName := article_service.GetPosterFlag() + \"-\" + qrcode.GetQrCodeFileName(qr.URL) + qr.GetQrCodeExt()\n\tarticlePoster := article_service.NewArticlePoster(posterName, article, qr)\n\tarticlePosterBgService := article_service.NewArticlePosterBg(\n\t\t\"bg.jpg\",\n\t\tarticlePoster,\n\t\t&article_service.Rect{\n\t\t\tX0: 0,\n\t\t\tY0: 0,\n\t\t\tX1: 550,\n\t\t\tY1: 700,\n\t\t},\n\t\t&article_service.Pt{\n\t\t\tX: 125,\n\t\t\tY: 298,\n\t\t},\n\t)\n\n\t_, filePath, err := articlePosterBgService.Generate()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_GEN_ARTICLE_POSTER_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, map[string]string{\n\t\t\"poster_url\":      qrcode.GetQrCodeFullUrl(posterName),\n\t\t\"poster_save_url\": filePath + posterName,\n\t})\n}\n"
  },
  {
    "path": "routers/api/v1/tag.go",
    "content": "package v1\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/unknwon/com\"\n\t\"github.com/astaxie/beego/validation\"\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/app\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/export\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/util\"\n\t\"github.com/EDDYCJY/go-gin-example/service/tag_service\"\n)\n\n// @Summary Get multiple article tags\n// @Produce  json\n// @Param name query string false \"Name\"\n// @Param state query int false \"State\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags [get]\nfunc GetTags(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tname := c.Query(\"name\")\n\tstate := -1\n\tif arg := c.Query(\"state\"); arg != \"\" {\n\t\tstate = com.StrTo(arg).MustInt()\n\t}\n\n\ttagService := tag_service.Tag{\n\t\tName:     name,\n\t\tState:    state,\n\t\tPageNum:  util.GetPage(c),\n\t\tPageSize: setting.AppSetting.PageSize,\n\t}\n\ttags, err := tagService.GetAll()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_GET_TAGS_FAIL, nil)\n\t\treturn\n\t}\n\n\tcount, err := tagService.Count()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_COUNT_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, map[string]interface{}{\n\t\t\"lists\": tags,\n\t\t\"total\": count,\n\t})\n}\n\ntype AddTagForm struct {\n\tName      string `form:\"name\" valid:\"Required;MaxSize(100)\"`\n\tCreatedBy string `form:\"created_by\" valid:\"Required;MaxSize(100)\"`\n\tState     int    `form:\"state\" valid:\"Range(0,1)\"`\n}\n\n// @Summary Add article tag\n// @Produce  json\n// @Param name body string true \"Name\"\n// @Param state body int false \"State\"\n// @Param created_by body int false \"CreatedBy\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags [post]\nfunc AddTag(c *gin.Context) {\n\tvar (\n\t\tappG = app.Gin{C: c}\n\t\tform AddTagForm\n\t)\n\n\thttpCode, errCode := app.BindAndValid(c, &form)\n\tif errCode != e.SUCCESS {\n\t\tappG.Response(httpCode, errCode, nil)\n\t\treturn\n\t}\n\n\ttagService := tag_service.Tag{\n\t\tName:      form.Name,\n\t\tCreatedBy: form.CreatedBy,\n\t\tState:     form.State,\n\t}\n\texists, err := tagService.ExistByName()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EXIST_TAG_FAIL, nil)\n\t\treturn\n\t}\n\tif exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_EXIST_TAG, nil)\n\t\treturn\n\t}\n\n\terr = tagService.Add()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_ADD_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n\ntype EditTagForm struct {\n\tID         int    `form:\"id\" valid:\"Required;Min(1)\"`\n\tName       string `form:\"name\" valid:\"Required;MaxSize(100)\"`\n\tModifiedBy string `form:\"modified_by\" valid:\"Required;MaxSize(100)\"`\n\tState      int    `form:\"state\" valid:\"Range(0,1)\"`\n}\n\n// @Summary Update article tag\n// @Produce  json\n// @Param id path int true \"ID\"\n// @Param name body string true \"Name\"\n// @Param state body int false \"State\"\n// @Param modified_by body string true \"ModifiedBy\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags/{id} [put]\nfunc EditTag(c *gin.Context) {\n\tvar (\n\t\tappG = app.Gin{C: c}\n\t\tform = EditTagForm{ID: com.StrTo(c.Param(\"id\")).MustInt()}\n\t)\n\n\thttpCode, errCode := app.BindAndValid(c, &form)\n\tif errCode != e.SUCCESS {\n\t\tappG.Response(httpCode, errCode, nil)\n\t\treturn\n\t}\n\n\ttagService := tag_service.Tag{\n\t\tID:         form.ID,\n\t\tName:       form.Name,\n\t\tModifiedBy: form.ModifiedBy,\n\t\tState:      form.State,\n\t}\n\n\texists, err := tagService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EXIST_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_TAG, nil)\n\t\treturn\n\t}\n\n\terr = tagService.Edit()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EDIT_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n\n// @Summary Delete article tag\n// @Produce  json\n// @Param id path int true \"ID\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags/{id} [delete]\nfunc DeleteTag(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tvalid := validation.Validation{}\n\tid := com.StrTo(c.Param(\"id\")).MustInt()\n\tvalid.Min(id, 1, \"id\").Message(\"ID必须大于0\")\n\n\tif valid.HasErrors() {\n\t\tapp.MarkErrors(valid.Errors)\n\t\tappG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)\n\t}\n\n\ttagService := tag_service.Tag{ID: id}\n\texists, err := tagService.ExistByID()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EXIST_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tif !exists {\n\t\tappG.Response(http.StatusOK, e.ERROR_NOT_EXIST_TAG, nil)\n\t\treturn\n\t}\n\n\tif err := tagService.Delete(); err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_DELETE_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n\n// @Summary Export article tag\n// @Produce  json\n// @Param name body string false \"Name\"\n// @Param state body int false \"State\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags/export [post]\nfunc ExportTag(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\tname := c.PostForm(\"name\")\n\tstate := -1\n\tif arg := c.PostForm(\"state\"); arg != \"\" {\n\t\tstate = com.StrTo(arg).MustInt()\n\t}\n\n\ttagService := tag_service.Tag{\n\t\tName:  name,\n\t\tState: state,\n\t}\n\n\tfilename, err := tagService.Export()\n\tif err != nil {\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_EXPORT_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, map[string]string{\n\t\t\"export_url\":      export.GetExcelFullUrl(filename),\n\t\t\"export_save_url\": export.GetExcelPath() + filename,\n\t})\n}\n\n// @Summary Import article tag\n// @Produce  json\n// @Param file body file true \"Excel File\"\n// @Success 200 {object} app.Response\n// @Failure 500 {object} app.Response\n// @Router /api/v1/tags/import [post]\nfunc ImportTag(c *gin.Context) {\n\tappG := app.Gin{C: c}\n\n\tfile, _, err := c.Request.FormFile(\"file\")\n\tif err != nil {\n\t\tlogging.Warn(err)\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR, nil)\n\t\treturn\n\t}\n\n\ttagService := tag_service.Tag{}\n\terr = tagService.Import(file)\n\tif err != nil {\n\t\tlogging.Warn(err)\n\t\tappG.Response(http.StatusInternalServerError, e.ERROR_IMPORT_TAG_FAIL, nil)\n\t\treturn\n\t}\n\n\tappG.Response(http.StatusOK, e.SUCCESS, nil)\n}\n"
  },
  {
    "path": "routers/router.go",
    "content": "package routers\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin\"\n\n\t_ \"github.com/EDDYCJY/go-gin-example/docs\"\n\t\"github.com/swaggo/gin-swagger\"\n\t\"github.com/swaggo/gin-swagger/swaggerFiles\"\n\n\t\"github.com/EDDYCJY/go-gin-example/middleware/jwt\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/export\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/qrcode\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/upload\"\n\t\"github.com/EDDYCJY/go-gin-example/routers/api\"\n\t\"github.com/EDDYCJY/go-gin-example/routers/api/v1\"\n)\n\n// InitRouter initialize routing information\nfunc InitRouter() *gin.Engine {\n\tr := gin.New()\n\tr.Use(gin.Logger())\n\tr.Use(gin.Recovery())\n\n\tr.StaticFS(\"/export\", http.Dir(export.GetExcelFullPath()))\n\tr.StaticFS(\"/upload/images\", http.Dir(upload.GetImageFullPath()))\n\tr.StaticFS(\"/qrcode\", http.Dir(qrcode.GetQrCodeFullPath()))\n\n\tr.POST(\"/auth\", api.GetAuth)\n\tr.GET(\"/swagger/*any\", ginSwagger.WrapHandler(swaggerFiles.Handler))\n\tr.POST(\"/upload\", api.UploadImage)\n\n\tapiv1 := r.Group(\"/api/v1\")\n\tapiv1.Use(jwt.JWT())\n\t{\n\t\t//获取标签列表\n\t\tapiv1.GET(\"/tags\", v1.GetTags)\n\t\t//新建标签\n\t\tapiv1.POST(\"/tags\", v1.AddTag)\n\t\t//更新指定标签\n\t\tapiv1.PUT(\"/tags/:id\", v1.EditTag)\n\t\t//删除指定标签\n\t\tapiv1.DELETE(\"/tags/:id\", v1.DeleteTag)\n\t\t//导出标签\n\t\tr.POST(\"/tags/export\", v1.ExportTag)\n\t\t//导入标签\n\t\tr.POST(\"/tags/import\", v1.ImportTag)\n\n\t\t//获取文章列表\n\t\tapiv1.GET(\"/articles\", v1.GetArticles)\n\t\t//获取指定文章\n\t\tapiv1.GET(\"/articles/:id\", v1.GetArticle)\n\t\t//新建文章\n\t\tapiv1.POST(\"/articles\", v1.AddArticle)\n\t\t//更新指定文章\n\t\tapiv1.PUT(\"/articles/:id\", v1.EditArticle)\n\t\t//删除指定文章\n\t\tapiv1.DELETE(\"/articles/:id\", v1.DeleteArticle)\n\t\t//生成文章海报\n\t\tapiv1.POST(\"/articles/poster/generate\", v1.GenerateArticlePoster)\n\t}\n\n\treturn r\n}\n"
  },
  {
    "path": "service/article_service/article.go",
    "content": "package article_service\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/EDDYCJY/go-gin-example/models\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/gredis\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n\t\"github.com/EDDYCJY/go-gin-example/service/cache_service\"\n)\n\ntype Article struct {\n\tID            int\n\tTagID         int\n\tTitle         string\n\tDesc          string\n\tContent       string\n\tCoverImageUrl string\n\tState         int\n\tCreatedBy     string\n\tModifiedBy    string\n\n\tPageNum  int\n\tPageSize int\n}\n\nfunc (a *Article) Add() error {\n\tarticle := map[string]interface{}{\n\t\t\"tag_id\":          a.TagID,\n\t\t\"title\":           a.Title,\n\t\t\"desc\":            a.Desc,\n\t\t\"content\":         a.Content,\n\t\t\"created_by\":      a.CreatedBy,\n\t\t\"cover_image_url\": a.CoverImageUrl,\n\t\t\"state\":           a.State,\n\t}\n\n\tif err := models.AddArticle(article); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (a *Article) Edit() error {\n\treturn models.EditArticle(a.ID, map[string]interface{}{\n\t\t\"tag_id\":          a.TagID,\n\t\t\"title\":           a.Title,\n\t\t\"desc\":            a.Desc,\n\t\t\"content\":         a.Content,\n\t\t\"cover_image_url\": a.CoverImageUrl,\n\t\t\"state\":           a.State,\n\t\t\"modified_by\":     a.ModifiedBy,\n\t})\n}\n\nfunc (a *Article) Get() (*models.Article, error) {\n\tvar cacheArticle *models.Article\n\n\tcache := cache_service.Article{ID: a.ID}\n\tkey := cache.GetArticleKey()\n\tif gredis.Exists(key) {\n\t\tdata, err := gredis.Get(key)\n\t\tif err != nil {\n\t\t\tlogging.Info(err)\n\t\t} else {\n\t\t\tjson.Unmarshal(data, &cacheArticle)\n\t\t\treturn cacheArticle, nil\n\t\t}\n\t}\n\n\tarticle, err := models.GetArticle(a.ID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgredis.Set(key, article, 3600)\n\treturn article, nil\n}\n\nfunc (a *Article) GetAll() ([]*models.Article, error) {\n\tvar (\n\t\tarticles, cacheArticles []*models.Article\n\t)\n\n\tcache := cache_service.Article{\n\t\tTagID: a.TagID,\n\t\tState: a.State,\n\n\t\tPageNum:  a.PageNum,\n\t\tPageSize: a.PageSize,\n\t}\n\tkey := cache.GetArticlesKey()\n\tif gredis.Exists(key) {\n\t\tdata, err := gredis.Get(key)\n\t\tif err != nil {\n\t\t\tlogging.Info(err)\n\t\t} else {\n\t\t\tjson.Unmarshal(data, &cacheArticles)\n\t\t\treturn cacheArticles, nil\n\t\t}\n\t}\n\n\tarticles, err := models.GetArticles(a.PageNum, a.PageSize, a.getMaps())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgredis.Set(key, articles, 3600)\n\treturn articles, nil\n}\n\nfunc (a *Article) Delete() error {\n\treturn models.DeleteArticle(a.ID)\n}\n\nfunc (a *Article) ExistByID() (bool, error) {\n\treturn models.ExistArticleByID(a.ID)\n}\n\nfunc (a *Article) Count() (int, error) {\n\treturn models.GetArticleTotal(a.getMaps())\n}\n\nfunc (a *Article) getMaps() map[string]interface{} {\n\tmaps := make(map[string]interface{})\n\tmaps[\"deleted_on\"] = 0\n\tif a.State != -1 {\n\t\tmaps[\"state\"] = a.State\n\t}\n\tif a.TagID != -1 {\n\t\tmaps[\"tag_id\"] = a.TagID\n\t}\n\n\treturn maps\n}\n"
  },
  {
    "path": "service/article_service/article_poster.go",
    "content": "package article_service\n\nimport (\n\t\"image\"\n\t\"image/draw\"\n\t\"image/jpeg\"\n\t\"io/ioutil\"\n\t\"os\"\n\n\t\"github.com/golang/freetype\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/file\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/qrcode\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/setting\"\n)\n\ntype ArticlePoster struct {\n\tPosterName string\n\t*Article\n\tQr *qrcode.QrCode\n}\n\nfunc NewArticlePoster(posterName string, article *Article, qr *qrcode.QrCode) *ArticlePoster {\n\treturn &ArticlePoster{\n\t\tPosterName: posterName,\n\t\tArticle:    article,\n\t\tQr:         qr,\n\t}\n}\n\nfunc GetPosterFlag() string {\n\treturn \"poster\"\n}\n\nfunc (a *ArticlePoster) CheckMergedImage(path string) bool {\n\tif file.CheckNotExist(path+a.PosterName) == true {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc (a *ArticlePoster) OpenMergedImage(path string) (*os.File, error) {\n\tf, err := file.MustOpen(a.PosterName, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn f, nil\n}\n\ntype ArticlePosterBg struct {\n\tName string\n\t*ArticlePoster\n\t*Rect\n\t*Pt\n}\n\ntype Rect struct {\n\tName string\n\tX0   int\n\tY0   int\n\tX1   int\n\tY1   int\n}\n\ntype Pt struct {\n\tX int\n\tY int\n}\n\nfunc NewArticlePosterBg(name string, ap *ArticlePoster, rect *Rect, pt *Pt) *ArticlePosterBg {\n\treturn &ArticlePosterBg{\n\t\tName:          name,\n\t\tArticlePoster: ap,\n\t\tRect:          rect,\n\t\tPt:            pt,\n\t}\n}\n\ntype DrawText struct {\n\tJPG    draw.Image\n\tMerged *os.File\n\n\tTitle string\n\tX0    int\n\tY0    int\n\tSize0 float64\n\n\tSubTitle string\n\tX1       int\n\tY1       int\n\tSize1    float64\n}\n\nfunc (a *ArticlePosterBg) DrawPoster(d *DrawText, fontName string) error {\n\tfontSource := setting.AppSetting.RuntimeRootPath + setting.AppSetting.FontSavePath + fontName\n\tfontSourceBytes, err := ioutil.ReadFile(fontSource)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttrueTypeFont, err := freetype.ParseFont(fontSourceBytes)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfc := freetype.NewContext()\n\tfc.SetDPI(72)\n\tfc.SetFont(trueTypeFont)\n\tfc.SetFontSize(d.Size0)\n\tfc.SetClip(d.JPG.Bounds())\n\tfc.SetDst(d.JPG)\n\tfc.SetSrc(image.Black)\n\n\tpt := freetype.Pt(d.X0, d.Y0)\n\t_, err = fc.DrawString(d.Title, pt)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfc.SetFontSize(d.Size1)\n\t_, err = fc.DrawString(d.SubTitle, freetype.Pt(d.X1, d.Y1))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = jpeg.Encode(d.Merged, d.JPG, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (a *ArticlePosterBg) Generate() (string, string, error) {\n\tfullPath := qrcode.GetQrCodeFullPath()\n\tfileName, path, err := a.Qr.Encode(fullPath)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tif !a.CheckMergedImage(path) {\n\t\tmergedF, err := a.OpenMergedImage(path)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t\tdefer mergedF.Close()\n\n\t\tbgF, err := file.MustOpen(a.Name, path)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t\tdefer bgF.Close()\n\n\t\tqrF, err := file.MustOpen(fileName, path)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t\tdefer qrF.Close()\n\n\t\tbgImage, err := jpeg.Decode(bgF)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t\tqrImage, err := jpeg.Decode(qrF)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\n\t\tjpg := image.NewRGBA(image.Rect(a.Rect.X0, a.Rect.Y0, a.Rect.X1, a.Rect.Y1))\n\n\t\tdraw.Draw(jpg, jpg.Bounds(), bgImage, bgImage.Bounds().Min, draw.Over)\n\t\tdraw.Draw(jpg, jpg.Bounds(), qrImage, qrImage.Bounds().Min.Sub(image.Pt(a.Pt.X, a.Pt.Y)), draw.Over)\n\n\t\terr = a.DrawPoster(&DrawText{\n\t\t\tJPG:    jpg,\n\t\t\tMerged: mergedF,\n\n\t\t\tTitle: \"Golang Gin 系列文章\",\n\t\t\tX0:    80,\n\t\t\tY0:    160,\n\t\t\tSize0: 42,\n\n\t\t\tSubTitle: \"---煎鱼\",\n\t\t\tX1:       320,\n\t\t\tY1:       220,\n\t\t\tSize1:    36,\n\t\t}, \"msyhbd.ttc\")\n\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", err\n\t\t}\n\t}\n\n\treturn fileName, path, nil\n}\n"
  },
  {
    "path": "service/auth_service/auth.go",
    "content": "package auth_service\n\nimport \"github.com/EDDYCJY/go-gin-example/models\"\n\ntype Auth struct {\n\tUsername string\n\tPassword string\n}\n\nfunc (a *Auth) Check() (bool, error) {\n\treturn models.CheckAuth(a.Username, a.Password)\n}\n"
  },
  {
    "path": "service/cache_service/article.go",
    "content": "package cache_service\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n)\n\ntype Article struct {\n\tID    int\n\tTagID int\n\tState int\n\n\tPageNum  int\n\tPageSize int\n}\n\nfunc (a *Article) GetArticleKey() string {\n\treturn e.CACHE_ARTICLE + \"_\" + strconv.Itoa(a.ID)\n}\n\nfunc (a *Article) GetArticlesKey() string {\n\tkeys := []string{\n\t\te.CACHE_ARTICLE,\n\t\t\"LIST\",\n\t}\n\n\tif a.ID > 0 {\n\t\tkeys = append(keys, strconv.Itoa(a.ID))\n\t}\n\tif a.TagID > 0 {\n\t\tkeys = append(keys, strconv.Itoa(a.TagID))\n\t}\n\tif a.State >= 0 {\n\t\tkeys = append(keys, strconv.Itoa(a.State))\n\t}\n\tif a.PageNum > 0 {\n\t\tkeys = append(keys, strconv.Itoa(a.PageNum))\n\t}\n\tif a.PageSize > 0 {\n\t\tkeys = append(keys, strconv.Itoa(a.PageSize))\n\t}\n\n\treturn strings.Join(keys, \"_\")\n}\n"
  },
  {
    "path": "service/cache_service/tag.go",
    "content": "package cache_service\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/EDDYCJY/go-gin-example/pkg/e\"\n)\n\ntype Tag struct {\n\tID    int\n\tName  string\n\tState int\n\n\tPageNum  int\n\tPageSize int\n}\n\nfunc (t *Tag) GetTagsKey() string {\n\tkeys := []string{\n\t\te.CACHE_TAG,\n\t\t\"LIST\",\n\t}\n\n\tif t.Name != \"\" {\n\t\tkeys = append(keys, t.Name)\n\t}\n\tif t.State >= 0 {\n\t\tkeys = append(keys, strconv.Itoa(t.State))\n\t}\n\tif t.PageNum > 0 {\n\t\tkeys = append(keys, strconv.Itoa(t.PageNum))\n\t}\n\tif t.PageSize > 0 {\n\t\tkeys = append(keys, strconv.Itoa(t.PageSize))\n\t}\n\n\treturn strings.Join(keys, \"_\")\n}\n"
  },
  {
    "path": "service/tag_service/tag.go",
    "content": "package tag_service\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/360EntSecGroup-Skylar/excelize\"\n\t\"github.com/tealeg/xlsx\"\n\n\t\"github.com/EDDYCJY/go-gin-example/models\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/export\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/file\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/gredis\"\n\t\"github.com/EDDYCJY/go-gin-example/pkg/logging\"\n\t\"github.com/EDDYCJY/go-gin-example/service/cache_service\"\n)\n\ntype Tag struct {\n\tID         int\n\tName       string\n\tCreatedBy  string\n\tModifiedBy string\n\tState      int\n\n\tPageNum  int\n\tPageSize int\n}\n\nfunc (t *Tag) ExistByName() (bool, error) {\n\treturn models.ExistTagByName(t.Name)\n}\n\nfunc (t *Tag) ExistByID() (bool, error) {\n\treturn models.ExistTagByID(t.ID)\n}\n\nfunc (t *Tag) Add() error {\n\treturn models.AddTag(t.Name, t.State, t.CreatedBy)\n}\n\nfunc (t *Tag) Edit() error {\n\tdata := make(map[string]interface{})\n\tdata[\"modified_by\"] = t.ModifiedBy\n\tdata[\"name\"] = t.Name\n\tif t.State >= 0 {\n\t\tdata[\"state\"] = t.State\n\t}\n\n\treturn models.EditTag(t.ID, data)\n}\n\nfunc (t *Tag) Delete() error {\n\treturn models.DeleteTag(t.ID)\n}\n\nfunc (t *Tag) Count() (int, error) {\n\treturn models.GetTagTotal(t.getMaps())\n}\n\nfunc (t *Tag) GetAll() ([]models.Tag, error) {\n\tvar (\n\t\ttags, cacheTags []models.Tag\n\t)\n\n\tcache := cache_service.Tag{\n\t\tState: t.State,\n\n\t\tPageNum:  t.PageNum,\n\t\tPageSize: t.PageSize,\n\t}\n\tkey := cache.GetTagsKey()\n\tif gredis.Exists(key) {\n\t\tdata, err := gredis.Get(key)\n\t\tif err != nil {\n\t\t\tlogging.Info(err)\n\t\t} else {\n\t\t\tjson.Unmarshal(data, &cacheTags)\n\t\t\treturn cacheTags, nil\n\t\t}\n\t}\n\n\ttags, err := models.GetTags(t.PageNum, t.PageSize, t.getMaps())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgredis.Set(key, tags, 3600)\n\treturn tags, nil\n}\n\nfunc (t *Tag) Export() (string, error) {\n\ttags, err := t.GetAll()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\txlsFile := xlsx.NewFile()\n\tsheet, err := xlsFile.AddSheet(\"标签信息\")\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\ttitles := []string{\"ID\", \"名称\", \"创建人\", \"创建时间\", \"修改人\", \"修改时间\"}\n\trow := sheet.AddRow()\n\n\tvar cell *xlsx.Cell\n\tfor _, title := range titles {\n\t\tcell = row.AddCell()\n\t\tcell.Value = title\n\t}\n\n\tfor _, v := range tags {\n\t\tvalues := []string{\n\t\t\tstrconv.Itoa(v.ID),\n\t\t\tv.Name,\n\t\t\tv.CreatedBy,\n\t\t\tstrconv.Itoa(v.CreatedOn),\n\t\t\tv.ModifiedBy,\n\t\t\tstrconv.Itoa(v.ModifiedOn),\n\t\t}\n\n\t\trow = sheet.AddRow()\n\t\tfor _, value := range values {\n\t\t\tcell = row.AddCell()\n\t\t\tcell.Value = value\n\t\t}\n\t}\n\n\ttime := strconv.Itoa(int(time.Now().Unix()))\n\tfilename := \"tags-\" + time + export.EXT\n\n\tdirFullPath := export.GetExcelFullPath()\n\terr = file.IsNotExistMkDir(dirFullPath)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\terr = xlsFile.Save(dirFullPath + filename)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn filename, nil\n}\n\nfunc (t *Tag) Import(r io.Reader) error {\n\txlsx, err := excelize.OpenReader(r)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trows := xlsx.GetRows(\"标签信息\")\n\tfor irow, row := range rows {\n\t\tif irow > 0 {\n\t\t\tvar data []string\n\t\t\tfor _, cell := range row {\n\t\t\t\tdata = append(data, cell)\n\t\t\t}\n\n\t\t\tmodels.AddTag(data[1], 1, data[2])\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (t *Tag) getMaps() map[string]interface{} {\n\tmaps := make(map[string]interface{})\n\tmaps[\"deleted_on\"] = 0\n\n\tif t.Name != \"\" {\n\t\tmaps[\"name\"] = t.Name\n\t}\n\tif t.State >= 0 {\n\t\tmaps[\"state\"] = t.State\n\t}\n\n\treturn maps\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/.travis.yml",
    "content": "language: go\n\ninstall:\n  - go get -d -t -v ./... && go build -v ./...\n\ngo:\n  - 1.8.x\n  - 1.9.x\n\nscript:\n  - go vet ./...\n  - go test ./... -v -coverprofile=coverage.txt -covermode=atomic\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [xuri.me](https://xuri.me). The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/CONTRIBUTING.md",
    "content": "# Contributing to excelize\n\nWant to hack on excelize? Awesome! This page contains information about reporting issues as well as some tips and\nguidelines useful to experienced open source contributors. Finally, make sure\nyou read our [community guidelines](#community-guidelines) before you\nstart participating.\n\n## Topics\n\n* [Reporting Security Issues](#reporting-security-issues)\n* [Design and Cleanup Proposals](#design-and-cleanup-proposals)\n* [Reporting Issues](#reporting-other-issues)\n* [Quick Contribution Tips and Guidelines](#quick-contribution-tips-and-guidelines)\n* [Community Guidelines](#community-guidelines)\n\n## Reporting security issues\n\nThe excelize maintainers take security seriously. If you discover a security\nissue, please bring it to their attention right away!\n\nPlease **DO NOT** file a public issue, instead send your report privately to\n[xuri.me](https://xuri.me).\n\nSecurity reports are greatly appreciated and we will publicly thank you for it.\nWe currently do not offer a paid security bounty program, but are not\nruling it out in the future.\n\n## Reporting other issues\n\nA great way to contribute to the project is to send a detailed report when you\nencounter an issue. We always appreciate a well-written, thorough bug report,\nand will thank you for it!\n\nCheck that [our issue database](https://github.com/360EntSecGroup-Skylar/excelize/issues)\ndoesn't already include that problem or suggestion before submitting an issue.\nIf you find a match, you can use the \"subscribe\" button to get notified on\nupdates. Do *not* leave random \"+1\" or \"I have this too\" comments, as they\nonly clutter the discussion, and don't help resolving it. However, if you\nhave ways to reproduce the issue or have additional information that may help\nresolving the issue, please leave a comment.\n\nWhen reporting issues, always include the output of `go env`.\n\nAlso include the steps required to reproduce the problem if possible and\napplicable. This information will help us review and fix your issue faster.\nWhen sending lengthy log-files, consider posting them as a gist [https://gist.github.com](https://gist.github.com).\nDon't forget to remove sensitive data from your logfiles before posting (you can\nreplace those parts with \"REDACTED\").\n\n## Quick contribution tips and guidelines\n\nThis section gives the experienced contributor some tips and guidelines.\n\n### Pull requests are always welcome\n\nNot sure if that typo is worth a pull request? Found a bug and know how to fix\nit? Do it! We will appreciate it. Any significant improvement should be\ndocumented as [a GitHub issue](https://github.com/360EntSecGroup-Skylar/excelize/issues) before\nanybody starts working on it.\n\nWe are always thrilled to receive pull requests. We do our best to process them\nquickly. If your pull request is not accepted on the first try,\ndon't get discouraged!\n\n### Design and cleanup proposals\n\nYou can propose new designs for existing excelize features. You can also design\nentirely new features. We really appreciate contributors who want to refactor or\notherwise cleanup our project.\n\nWe try hard to keep excelize lean and focused. Excelize can't do everything for\neverybody. This means that we might decide against incorporating a new feature.\nHowever, there might be a way to implement that feature *on top of* excelize.\n\n### Conventions\n\nFork the repository and make changes on your fork in a feature branch:\n\n* If it's a bug fix branch, name it XXXX-something where XXXX is the number of\n    the issue.\n* If it's a feature branch, create an enhancement issue to announce\n    your intentions, and name it XXXX-something where XXXX is the number of the\n    issue.\n\nSubmit unit tests for your changes. Go has a great test framework built in; use\nit! Take a look at existing tests for inspiration. Run the full test on your branch before\nsubmitting a pull request.\n\nUpdate the documentation when creating or modifying features. Test your\ndocumentation changes for clarity, concision, and correctness, as well as a\nclean documentation build.\n\nWrite clean code. Universally formatted code promotes ease of writing, reading,\nand maintenance. Always run `gofmt -s -w file.go` on each changed file before\ncommitting your changes. Most editors have plug-ins that do this automatically.\n\nPull request descriptions should be as clear as possible and include a reference\nto all the issues that they address.\n\n### Successful Changes\n\nBefore contributing large or high impact changes, make the effort to coordinate\nwith the maintainers of the project before submitting a pull request. This\nprevents you from doing extra work that may or may not be merged.\n\nLarge PRs that are just submitted without any prior communication are unlikely\nto be successful.\n\nWhile pull requests are the methodology for submitting changes to code, changes\nare much more likely to be accepted if they are accompanied by additional\nengineering work. While we don't define this explicitly, most of these goals\nare accomplished through communication of the design goals and subsequent\nsolutions. Often times, it helps to first state the problem before presenting\nsolutions.\n\nTypically, the best methods of accomplishing this are to submit an issue,\nstating the problem. This issue can include a problem statement and a\nchecklist with requirements. If solutions are proposed, alternatives should be\nlisted and eliminated. Even if the criteria for elimination of a solution is\nfrivolous, say so.\n\nLarger changes typically work best with design documents. These are focused on\nproviding context to the design at the time the feature was conceived and can\ninform future documentation contributions.\n\n### Commit Messages\n\nCommit messages must start with a capitalized and short summary\nwritten in the imperative, followed by an optional, more detailed explanatory\ntext which is separated from the summary by an empty line.\n\nCommit messages should follow best practices, including explaining the context\nof the problem and how it was solved, including in caveats or follow up changes\nrequired. They should tell the story of the change and provide readers\nunderstanding of what led to it.\n\nIn practice, the best approach to maintaining a nice commit message is to\nleverage a `git add -p` and `git commit --amend` to formulate a solid\nchangeset. This allows one to piece together a change, as information becomes\navailable.\n\nIf you squash a series of commits, don't just submit that. Re-write the commit\nmessage, as if the series of commits was a single stroke of brilliance.\n\nThat said, there is no requirement to have a single commit for a PR, as long as\neach commit tells the story. For example, if there is a feature that requires a\npackage, it might make sense to have the package in a separate commit then have\na subsequent commit that uses it.\n\nRemember, you're telling part of the story with the commit message. Don't make\nyour chapter weird.\n\n### Review\n\nCode review comments may be added to your pull request. Discuss, then make the\nsuggested modifications and push additional commits to your feature branch. Post\na comment after pushing. New commits show up in the pull request automatically,\nbut the reviewers are notified only when you comment.\n\nPull requests must be cleanly rebased on top of master without multiple branches\nmixed into the PR.\n\n**Git tip**: If your PR no longer merges cleanly, use `rebase master` in your\nfeature branch to update your pull request rather than `merge master`.\n\nBefore you make a pull request, squash your commits into logical units of work\nusing `git rebase -i` and `git push -f`. A logical unit of work is a consistent\nset of patches that should be reviewed together: for example, upgrading the\nversion of a vendored dependency and taking advantage of its now available new\nfeature constitute two separate units of work. Implementing a new function and\ncalling it in another file constitute a single logical unit of work. The very\nhigh majority of submissions should have a single commit, so if in doubt: squash\ndown to one.\n\nAfter every commit, make sure the test passes. Include documentation\nchanges in the same pull request so that a revert would remove all traces of\nthe feature or fix.\n\nInclude an issue reference like `Closes #XXXX` or `Fixes #XXXX` in commits that\nclose an issue. Including references automatically closes the issue on a merge.\n\nPlease see the [Coding Style](#coding-style) for further guidelines.\n\n### Merge approval\n\nThe excelize maintainers use LGTM (Looks Good To Me) in comments on the code review to\nindicate acceptance.\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the patch. Your\nsignature certifies that you wrote the patch or otherwise have the right to pass\nit on as an open-source patch. The rules are pretty simple: if you can certify\nthe below (from [developercertificate.org](http://developercertificate.org/)):\n\n```text\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n1 Letterman Drive\nSuite D4700\nSan Francisco, CA, 94129\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nThen you just add a line to every git commit message:\n\n    Signed-off-by: Ri Xu https://xuri.me\n\nUse your real name (sorry, no pseudonyms or anonymous contributions.)\n\nIf you set your `user.name` and `user.email` git configs, you can sign your\ncommit automatically with `git commit -s`.\n\n### How can I become a maintainer\n\nFirst, all maintainers have 3 things\n\n* They share responsibility in the project's success.\n* They have made a long-term, recurring time investment to improve the project.\n* They spend that time doing whatever needs to be done, not necessarily what\n is the most interesting or fun.\n\nMaintainers are often under-appreciated, because their work is harder to appreciate.\nIt's easy to appreciate a really cool and technically advanced feature. It's harder\nto appreciate the absence of bugs, the slow but steady improvement in stability,\nor the reliability of a release process. But those things distinguish a good\nproject from a great one.\n\nDon't forget: being a maintainer is a time investment. Make sure you\nwill have time to make yourself available. You don't have to be a\nmaintainer to make a difference on the project!\n\nIf you want to become a meintainer, contact [xuri.me](https://xuri.me) and given a introduction of you.\n\n## Community guidelines\n\nWe want to keep the community awesome, growing and collaborative. We need\nyour help to keep it that way. To help with this we've come up with some general\nguidelines for the community as a whole:\n\n* Be nice: Be courteous, respectful and polite to fellow community members:\n  no regional, racial, gender, or other abuse will be tolerated. We like\n  nice people way better than mean ones!\n\n* Encourage diversity and participation: Make everyone in our community feel\n  welcome, regardless of their background and the extent of their\n  contributions, and do everything possible to encourage participation in\n  our community.\n\n* Keep it legal: Basically, don't get us in trouble. Share only content that\n  you own, do not share private or sensitive information, and don't break\n  the law.\n\n* Stay on topic: Make sure that you are posting to the correct channel and\n  avoid off-topic discussions. Remember when you update an issue or respond\n  to an email you are potentially sending to a large number of people. Please\n  consider this before you update. Also remember that nobody likes spam.\n\n* Don't send email to the maintainers: There's no need to send email to the\n  maintainers to ask them to investigate an issue or to take a look at a\n  pull request. Instead of sending an email, GitHub mentions should be\n  used to ping maintainers to review a pull request, a proposal or an\n  issue.\n\n### Guideline violations — 3 strikes method\n\nThe point of this section is not to find opportunities to punish people, but we\ndo need a fair way to deal with people who are making our community suck.\n\n1. First occurrence: We'll give you a friendly, but public reminder that the\n   behavior is inappropriate according to our guidelines.\n\n2. Second occurrence: We will send you a private message with a warning that\n   any additional violations will result in removal from the community.\n\n3. Third occurrence: Depending on the violation, we may need to delete or ban\n   your account.\n\n**Notes:**\n\n* Obvious spammers are banned on first occurrence. If we don't do this, we'll\n  have spam all over the place.\n\n* Violations are forgiven after 6 months of good behavior, and we won't hold a\n  grudge.\n\n* People who commit minor infractions will get some education, rather than\n  hammering them in the 3 strikes process.\n\n* The rules apply equally to everyone in the community, no matter how much\n    you've contributed.\n\n* Extreme violations of a threatening, abusive, destructive or illegal nature\n    will be addressed immediately and are not subject to 3 strikes or forgiveness.\n\n* Contact [xuri.me](https://xuri.me) to report abuse or appeal violations. In the case of\n    appeals, we know that mistakes happen, and we'll work with you to come up with a\n    fair solution if there has been a misunderstanding.\n\n## Coding Style\n\nUnless explicitly stated, we follow all coding guidelines from the Go\ncommunity. While some of these standards may seem arbitrary, they somehow seem\nto result in a solid, consistent codebase.\n\nIt is possible that the code base does not currently comply with these\nguidelines. We are not looking for a massive PR that fixes this, since that\ngoes against the spirit of the guidelines. All new contributions should make a\nbest effort to clean up and make the code base better than they left it.\nObviously, apply your best judgement. Remember, the goal here is to make the\ncode base easier for humans to navigate and understand. Always keep that in\nmind when nudging others to comply.\n\nThe rules:\n\n1. All code should be formatted with `gofmt -s`.\n2. All code should pass the default levels of\n   [`golint`](https://github.com/golang/lint).\n3. All code should follow the guidelines covered in [Effective\n   Go](http://golang.org/doc/effective_go.html) and [Go Code Review\n   Comments](https://github.com/golang/go/wiki/CodeReviewComments).\n4. Comment the code. Tell us the why, the history and the context.\n5. Document _all_ declarations and methods, even private ones. Declare\n   expectations, caveats and anything else that may be important. If a type\n   gets exported, having the comments already there will ensure it's ready.\n6. Variable name length should be proportional to its context and no longer.\n   `noCommaALongVariableNameLikeThisIsNotMoreClearWhenASimpleCommentWouldDo`.\n   In practice, short methods will have short variable names and globals will\n   have longer names.\n7. No underscores in package names. If you need a compound name, step back,\n   and re-examine why you need a compound name. If you still think you need a\n   compound name, lose the underscore.\n8. No utils or helpers packages. If a function is not general enough to\n   warrant its own package, it has not been written generally enough to be a\n   part of a util package. Just leave it unexported and well-documented.\n9. All tests should run with `go test` and outside tooling should not be\n   required. No, we don't need another unit testing framework. Assertion\n   packages are acceptable if they provide _real_ incremental value.\n10. Even though we call these \"rules\" above, they are actually just\n    guidelines. Since you've read all the rules, you now know that.\n\nIf you are having trouble getting into the mood of idiomatic Go, we recommend\nreading through [Effective Go](https://golang.org/doc/effective_go.html). The\n[Go Blog](https://blog.golang.org) is also a great resource. Drinking the\nkool-aid is a lot easier than going thirsty.\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2016 - 2018 360 Enterprise Security Group, Endpoint Security,\ninc. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of Excelize nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/README.md",
    "content": "![Excelize](./excelize.png \"Excelize\")\n\n# Excelize\n\n[![Build Status](https://travis-ci.org/360EntSecGroup-Skylar/excelize.svg?branch=master)](https://travis-ci.org/360EntSecGroup-Skylar/excelize)\n[![Code Coverage](https://codecov.io/gh/360EntSecGroup-Skylar/excelize/branch/master/graph/badge.svg)](https://codecov.io/gh/360EntSecGroup-Skylar/excelize)\n[![Go Report Card](https://goreportcard.com/badge/github.com/360EntSecGroup-Skylar/excelize)](https://goreportcard.com/report/github.com/360EntSecGroup-Skylar/excelize)\n[![GoDoc](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize?status.svg)](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize)\n[![Licenses](https://img.shields.io/badge/license-bsd-orange.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/xuri)\n\n## Introduction\n\nExcelize is a library written in pure Go and providing a set of functions that allow you to write to and read from XLSX files. Support reads and writes XLSX file generated by Microsoft Excel™ 2007 and later. Support save file without losing original charts of XLSX. This library needs Go version 1.8 or later. The full API docs can be seen using go's built-in documentation tool, or online at [godoc.org](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize) and [Chinese translation](https://xuri.me/excelize/zh_cn).\n\n## Basic Usage\n\n### Installation\n\n```go\ngo get github.com/360EntSecGroup-Skylar/excelize\n```\n\n### Create XLSX file\n\nHere is a minimal example usage that will create XLSX file.\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    xlsx := excelize.NewFile()\n    // Create a new sheet.\n    index := xlsx.NewSheet(\"Sheet2\")\n    // Set value of a cell.\n    xlsx.SetCellValue(\"Sheet2\", \"A2\", \"Hello world.\")\n    xlsx.SetCellValue(\"Sheet1\", \"B2\", 100)\n    // Set active sheet of the workbook.\n    xlsx.SetActiveSheet(index)\n    // Save xlsx file by the given path.\n    err := xlsx.SaveAs(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n    }\n}\n```\n\n### Reading XLSX file\n\nThe following constitutes the bare to read a XLSX document.\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    xlsx, err := excelize.OpenFile(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n        return\n    }\n    // Get value from cell by given worksheet name and axis.\n    cell := xlsx.GetCellValue(\"Sheet1\", \"B2\")\n    fmt.Println(cell)\n    // Get all the rows in the Sheet1.\n    rows := xlsx.GetRows(\"Sheet1\")\n    for _, row := range rows {\n        for _, colCell := range row {\n            fmt.Print(colCell, \"\\t\")\n        }\n        fmt.Println()\n    }\n}\n```\n\n### Add chart to XLSX file\n\nWith Excelize chart generation and management is as easy as a few lines of code. You can build charts based off data in your worksheet or generate charts without any data in your worksheet at all.\n\n![Excelize](./test/images/chart.png \"Excelize\")\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    categories := map[string]string{\"A2\": \"Small\", \"A3\": \"Normal\", \"A4\": \"Large\", \"B1\": \"Apple\", \"C1\": \"Orange\", \"D1\": \"Pear\"}\n    values := map[string]int{\"B2\": 2, \"C2\": 3, \"D2\": 3, \"B3\": 5, \"C3\": 2, \"D3\": 4, \"B4\": 6, \"C4\": 7, \"D4\": 8}\n    xlsx := excelize.NewFile()\n    for k, v := range categories {\n        xlsx.SetCellValue(\"Sheet1\", k, v)\n    }\n    for k, v := range values {\n        xlsx.SetCellValue(\"Sheet1\", k, v)\n    }\n    xlsx.AddChart(\"Sheet1\", \"E1\", `{\"type\":\"col3DClustered\",\"series\":[{\"name\":\"Sheet1!$A$2\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$2:$D$2\"},{\"name\":\"Sheet1!$A$3\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$3:$D$3\"},{\"name\":\"Sheet1!$A$4\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$4:$D$4\"}],\"title\":{\"name\":\"Fruit 3D Clustered Column Chart\"}}`)\n    // Save xlsx file by the given path.\n    err := xlsx.SaveAs(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n    }\n}\n\n```\n\n### Add picture to XLSX file\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    _ \"image/gif\"\n    _ \"image/jpeg\"\n    _ \"image/png\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    xlsx, err := excelize.OpenFile(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n        return\n    }\n    // Insert a picture.\n    err = xlsx.AddPicture(\"Sheet1\", \"A2\", \"./image1.png\", \"\")\n    if err != nil {\n        fmt.Println(err)\n    }\n    // Insert a picture to worksheet with scaling.\n    err = xlsx.AddPicture(\"Sheet1\", \"D2\", \"./image2.jpg\", `{\"x_scale\": 0.5, \"y_scale\": 0.5}`)\n    if err != nil {\n        fmt.Println(err)\n    }\n    // Insert a picture offset in the cell with printing support.\n    err = xlsx.AddPicture(\"Sheet1\", \"H2\", \"./image3.gif\", `{\"x_offset\": 15, \"y_offset\": 10, \"print_obj\": true, \"lock_aspect_ratio\": false, \"locked\": false}`)\n    if err != nil {\n        fmt.Println(err)\n    }\n    // Save the xlsx file with the origin path.\n    err = xlsx.Save()\n    if err != nil {\n        fmt.Println(err)\n    }\n}\n```\n\n## Contributing\n\nContributions are welcome! Open a pull request to fix a bug, or open an issue to discuss a new feature or change. XML is compliant with [part 1 of the 5th edition of the ECMA-376 Standard for Office Open XML](http://www.ecma-international.org/publications/standards/Ecma-376.htm).\n\n## Credits\n\nSome struct of XML originally by [tealeg/xlsx](https://github.com/tealeg/xlsx).\n\n## Licenses\n\nThis program is under the terms of the BSD 3-Clause License. See [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause).\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/README_zh.md",
    "content": "![Excelize](./excelize.png \"Excelize\")\n\n# Excelize\n\n[![Build Status](https://travis-ci.org/360EntSecGroup-Skylar/excelize.svg?branch=master)](https://travis-ci.org/360EntSecGroup-Skylar/excelize)\n[![Code Coverage](https://codecov.io/gh/360EntSecGroup-Skylar/excelize/branch/master/graph/badge.svg)](https://codecov.io/gh/360EntSecGroup-Skylar/excelize)\n[![Go Report Card](https://goreportcard.com/badge/github.com/360EntSecGroup-Skylar/excelize)](https://goreportcard.com/report/github.com/360EntSecGroup-Skylar/excelize)\n[![GoDoc](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize?status.svg)](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize)\n[![Licenses](https://img.shields.io/badge/license-bsd-orange.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/xuri)\n\n## 简介\n\nExcelize 是 Go 语言编写的用于操作 Office Excel 文档类库，基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档。相比较其他的开源类库，Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档，还支持向 Excel 文档中插入图片与图表，并且在保存后不会丢失文档原有样式，可以应用于各类报表系统中。使用本类库要求使用的 Go 语言为 1.8 或更高版本，完整的 API 使用文档请访问 [godoc.org](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize) 或查看 [中文翻译](https://xuri.me/excelize/zh_cn)。\n\n## 快速上手\n\n### 安装\n\n```go\ngo get github.com/360EntSecGroup-Skylar/excelize\n```\n\n### 创建 Excel 文档\n\n下面是一个创建 Excel 文档的简单例子：\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    xlsx := excelize.NewFile()\n    // 创建一个工作表\n    index := xlsx.NewSheet(\"Sheet2\")\n    // 设置单元格的值\n    xlsx.SetCellValue(\"Sheet2\", \"A2\", \"Hello world.\")\n    xlsx.SetCellValue(\"Sheet1\", \"B2\", 100)\n    // 设置工作簿的默认工作表\n    xlsx.SetActiveSheet(index)\n    // 根据指定路径保存文件\n    err := xlsx.SaveAs(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n    }\n}\n```\n\n### 读取 Excel 文档\n\n下面是读取 Excel 文档的例子：\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    xlsx, err := excelize.OpenFile(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n        return\n    }\n    // 获取工作表中指定单元格的值\n    cell := xlsx.GetCellValue(\"Sheet1\", \"B2\")\n    fmt.Println(cell)\n    // 获取 Sheet1 上所有单元格\n    rows := xlsx.GetRows(\"Sheet1\")\n    for _, row := range rows {\n        for _, colCell := range row {\n            fmt.Print(colCell, \"\\t\")\n        }\n        fmt.Println()\n    }\n}\n```\n\n### 在 Excel 文档中创建图表\n\n使用 Excelize 生成图表十分简单，仅需几行代码。您可以根据工作表中的已有数据构建图表，或向工作表中添加数据并创建图表。\n\n![Excelize](./test/images/chart.png \"Excelize\")\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    categories := map[string]string{\"A2\": \"Small\", \"A3\": \"Normal\", \"A4\": \"Large\", \"B1\": \"Apple\", \"C1\": \"Orange\", \"D1\": \"Pear\"}\n    values := map[string]int{\"B2\": 2, \"C2\": 3, \"D2\": 3, \"B3\": 5, \"C3\": 2, \"D3\": 4, \"B4\": 6, \"C4\": 7, \"D4\": 8}\n    xlsx := excelize.NewFile()\n    for k, v := range categories {\n        xlsx.SetCellValue(\"Sheet1\", k, v)\n    }\n    for k, v := range values {\n        xlsx.SetCellValue(\"Sheet1\", k, v)\n    }\n    xlsx.AddChart(\"Sheet1\", \"E1\", `{\"type\":\"col3DClustered\",\"series\":[{\"name\":\"Sheet1!$A$2\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$2:$D$2\"},{\"name\":\"Sheet1!$A$3\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$3:$D$3\"},{\"name\":\"Sheet1!$A$4\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$4:$D$4\"}],\"title\":{\"name\":\"Fruit 3D Clustered Column Chart\"}}`)\n    // 根据指定路径保存文件\n    err := xlsx.SaveAs(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n    }\n}\n\n```\n\n### 向 Excel 文档中插入图片\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    _ \"image/gif\"\n    _ \"image/jpeg\"\n    _ \"image/png\"\n\n    \"github.com/360EntSecGroup-Skylar/excelize\"\n)\n\nfunc main() {\n    xlsx, err := excelize.OpenFile(\"./Book1.xlsx\")\n    if err != nil {\n        fmt.Println(err)\n        return\n    }\n    // 插入图片\n    err = xlsx.AddPicture(\"Sheet1\", \"A2\", \"./image1.png\", \"\")\n    if err != nil {\n        fmt.Println(err)\n    }\n    // 在工作表中插入图片，并设置图片的缩放比例\n    err = xlsx.AddPicture(\"Sheet1\", \"D2\", \"./image2.jpg\", `{\"x_scale\": 0.5, \"y_scale\": 0.5}`)\n    if err != nil {\n        fmt.Println(err)\n    }\n    // 在工作表中插入图片，并设置图片的打印属性\n    err = xlsx.AddPicture(\"Sheet1\", \"H2\", \"./image3.gif\", `{\"x_offset\": 15, \"y_offset\": 10, \"print_obj\": true, \"lock_aspect_ratio\": false, \"locked\": false}`)\n    if err != nil {\n        fmt.Println(err)\n    }\n    // 保存文件\n    err = xlsx.Save()\n    if err != nil {\n        fmt.Println(err)\n    }\n}\n```\n\n## 社区合作\n\n欢迎您为此项目贡献代码，提出建议或问题、修复 Bug 以及参与讨论对新功能的想法。 XML 符合标准： [part 1 of the 5th edition of the ECMA-376 Standard for Office Open XML](http://www.ecma-international.org/publications/standards/Ecma-376.htm)。\n\n## 致谢\n\n本类库中部分 XML 结构体的定义参考了开源项目：[tealeg/xlsx](https://github.com/tealeg/xlsx).\n\n## 开源许可\n\n本项目遵循 BSD 3-Clause 开源许可协议，访问 [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) 查看许可协议文件。\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/cell.go",
    "content": "package excelize\n\nimport (\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\t// STCellFormulaTypeArray defined the formula is an array formula.\n\tSTCellFormulaTypeArray = \"array\"\n\t// STCellFormulaTypeDataTable defined the formula is a data table formula.\n\tSTCellFormulaTypeDataTable = \"dataTable\"\n\t// STCellFormulaTypeNormal defined the formula is a regular cell formula.\n\tSTCellFormulaTypeNormal = \"normal\"\n\t// STCellFormulaTypeShared defined the formula is part of a shared formula.\n\tSTCellFormulaTypeShared = \"shared\"\n)\n\n// mergeCellsParser provides function to check merged cells in worksheet by\n// given axis.\nfunc (f *File) mergeCellsParser(xlsx *xlsxWorksheet, axis string) string {\n\taxis = strings.ToUpper(axis)\n\tif xlsx.MergeCells != nil {\n\t\tfor i := 0; i < len(xlsx.MergeCells.Cells); i++ {\n\t\t\tif checkCellInArea(axis, xlsx.MergeCells.Cells[i].Ref) {\n\t\t\t\taxis = strings.Split(xlsx.MergeCells.Cells[i].Ref, \":\")[0]\n\t\t\t}\n\t\t}\n\t}\n\treturn axis\n}\n\n// SetCellValue provides function to set value of a cell. The following shows\n// the supported data types:\n//\n//    int\n//    int8\n//    int16\n//    int32\n//    int64\n//    uint\n//    uint8\n//    uint16\n//    uint32\n//    uint64\n//    float32\n//    float64\n//    string\n//    []byte\n//    time.Duration\n//    time.Time\n//    bool\n//    nil\n//\n// Note that default date format is m/d/yy h:mm of time.Time type value. You can\n// set numbers format by SetCellStyle() method.\nfunc (f *File) SetCellValue(sheet, axis string, value interface{}) {\n\tswitch t := value.(type) {\n\tcase float32:\n\t\tf.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(float32)), 'f', -1, 32))\n\tcase float64:\n\t\tf.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(float64)), 'f', -1, 64))\n\tcase string:\n\t\tf.SetCellStr(sheet, axis, t)\n\tcase []byte:\n\t\tf.SetCellStr(sheet, axis, string(t))\n\tcase time.Duration:\n\t\tf.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(time.Duration).Seconds()/86400), 'f', -1, 32))\n\t\tf.setDefaultTimeStyle(sheet, axis, 21)\n\tcase time.Time:\n\t\tf.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(timeToExcelTime(timeToUTCTime(value.(time.Time)))), 'f', -1, 64))\n\t\tf.setDefaultTimeStyle(sheet, axis, 22)\n\tcase nil:\n\t\tf.SetCellStr(sheet, axis, \"\")\n\tcase bool:\n\t\tf.SetCellBool(sheet, axis, bool(value.(bool)))\n\tdefault:\n\t\tf.setCellIntValue(sheet, axis, value)\n\t}\n}\n\n// setCellIntValue provides function to set int value of a cell.\nfunc (f *File) setCellIntValue(sheet, axis string, value interface{}) {\n\tswitch value.(type) {\n\tcase int:\n\t\tf.SetCellInt(sheet, axis, value.(int))\n\tcase int8:\n\t\tf.SetCellInt(sheet, axis, int(value.(int8)))\n\tcase int16:\n\t\tf.SetCellInt(sheet, axis, int(value.(int16)))\n\tcase int32:\n\t\tf.SetCellInt(sheet, axis, int(value.(int32)))\n\tcase int64:\n\t\tf.SetCellInt(sheet, axis, int(value.(int64)))\n\tcase uint:\n\t\tf.SetCellInt(sheet, axis, int(value.(uint)))\n\tcase uint8:\n\t\tf.SetCellInt(sheet, axis, int(value.(uint8)))\n\tcase uint16:\n\t\tf.SetCellInt(sheet, axis, int(value.(uint16)))\n\tcase uint32:\n\t\tf.SetCellInt(sheet, axis, int(value.(uint32)))\n\tcase uint64:\n\t\tf.SetCellInt(sheet, axis, int(value.(uint64)))\n\tdefault:\n\t\tf.SetCellStr(sheet, axis, fmt.Sprintf(\"%v\", value))\n\t}\n}\n\n// SetCellBool provides function to set bool type value of a cell by given\n// worksheet name, cell coordinates and cell value.\nfunc (f *File) SetCellBool(sheet, axis string, value bool) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn\n\t}\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\txlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S)\n\txlsx.SheetData.Row[xAxis].C[yAxis].T = \"b\"\n\tif value {\n\t\txlsx.SheetData.Row[xAxis].C[yAxis].V = \"1\"\n\t} else {\n\t\txlsx.SheetData.Row[xAxis].C[yAxis].V = \"0\"\n\t}\n}\n\n// GetCellValue provides function to get formatted value from cell by given\n// worksheet name and axis in XLSX file. If it is possible to apply a format to\n// the cell value, it will do so, if not then an error will be returned, along\n// with the raw value of the cell.\nfunc (f *File) GetCellValue(sheet, axis string) string {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\txAxis := row - 1\n\trows := len(xlsx.SheetData.Row)\n\tif rows > 1 {\n\t\tlastRow := xlsx.SheetData.Row[rows-1].R\n\t\tif lastRow >= rows {\n\t\t\trows = lastRow\n\t\t}\n\t}\n\tif rows < xAxis {\n\t\treturn \"\"\n\t}\n\tfor k := range xlsx.SheetData.Row {\n\t\tif xlsx.SheetData.Row[k].R == row {\n\t\t\tfor i := range xlsx.SheetData.Row[k].C {\n\t\t\t\tif axis == xlsx.SheetData.Row[k].C[i].R {\n\t\t\t\t\tval, _ := xlsx.SheetData.Row[k].C[i].getValueFrom(f, f.sharedStringsReader())\n\t\t\t\t\treturn val\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// formattedValue provides function to returns a value after formatted. If it is\n// possible to apply a format to the cell value, it will do so, if not then an\n// error will be returned, along with the raw value of the cell.\nfunc (f *File) formattedValue(s int, v string) string {\n\tif s == 0 {\n\t\treturn v\n\t}\n\tstyleSheet := f.stylesReader()\n\tok := builtInNumFmtFunc[styleSheet.CellXfs.Xf[s].NumFmtID]\n\tif ok != nil {\n\t\treturn ok(styleSheet.CellXfs.Xf[s].NumFmtID, v)\n\t}\n\treturn v\n}\n\n// GetCellStyle provides function to get cell style index by given worksheet\n// name and cell coordinates.\nfunc (f *File) GetCellStyle(sheet, axis string) int {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn 0\n\t}\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\treturn f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S)\n}\n\n// GetCellFormula provides function to get formula from cell by given worksheet\n// name and axis in XLSX file.\nfunc (f *File) GetCellFormula(sheet, axis string) string {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\txAxis := row - 1\n\trows := len(xlsx.SheetData.Row)\n\tif rows > 1 {\n\t\tlastRow := xlsx.SheetData.Row[rows-1].R\n\t\tif lastRow >= rows {\n\t\t\trows = lastRow\n\t\t}\n\t}\n\tif rows < xAxis {\n\t\treturn \"\"\n\t}\n\tfor k := range xlsx.SheetData.Row {\n\t\tif xlsx.SheetData.Row[k].R == row {\n\t\t\tfor i := range xlsx.SheetData.Row[k].C {\n\t\t\t\tif axis == xlsx.SheetData.Row[k].C[i].R {\n\t\t\t\t\tif xlsx.SheetData.Row[k].C[i].F.T == STCellFormulaTypeShared {\n\t\t\t\t\t\treturn getSharedForumula(xlsx, xlsx.SheetData.Row[k].C[i].F.Si)\n\t\t\t\t\t}\n\t\t\t\t\tif xlsx.SheetData.Row[k].C[i].F != nil {\n\t\t\t\t\t\treturn xlsx.SheetData.Row[k].C[i].F.Content\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// getSharedForumula find a cell contains the same formula as another cell,\n// the \"shared\" value can be used for the t attribute and the si attribute can\n// be used to refer to the cell containing the formula. Two formulas are\n// considered to be the same when their respective representations in\n// R1C1-reference notation, are the same.\n//\n// Note that this function not validate ref tag to check the cell if or not in\n// allow area, and always return origin shared formula.\nfunc getSharedForumula(xlsx *xlsxWorksheet, si string) string {\n\tfor k := range xlsx.SheetData.Row {\n\t\tfor i := range xlsx.SheetData.Row[k].C {\n\t\t\tif xlsx.SheetData.Row[k].C[i].F == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif xlsx.SheetData.Row[k].C[i].F.T != STCellFormulaTypeShared {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif xlsx.SheetData.Row[k].C[i].F.Si != si {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif xlsx.SheetData.Row[k].C[i].F.Ref != \"\" {\n\t\t\t\treturn xlsx.SheetData.Row[k].C[i].F.Content\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// SetCellFormula provides function to set cell formula by given string and\n// worksheet name.\nfunc (f *File) SetCellFormula(sheet, axis, formula string) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn\n\t}\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\tif xlsx.SheetData.Row[xAxis].C[yAxis].F != nil {\n\t\txlsx.SheetData.Row[xAxis].C[yAxis].F.Content = formula\n\t} else {\n\t\tf := xlsxF{\n\t\t\tContent: formula,\n\t\t}\n\t\txlsx.SheetData.Row[xAxis].C[yAxis].F = &f\n\t}\n}\n\n// SetCellHyperLink provides function to set cell hyperlink by given worksheet\n// name and link URL address. LinkType defines two types of hyperlink \"External\"\n// for web site or \"Location\" for moving to one of cell in this workbook. The\n// below is example for external link.\n//\n//    xlsx.SetCellHyperLink(\"Sheet1\", \"A3\", \"https://github.com/360EntSecGroup-Skylar/excelize\", \"External\")\n//    // Set underline and font color style for the cell.\n//    style, _ := xlsx.NewStyle(`{\"font\":{\"color\":\"#1265BE\",\"underline\":\"single\"}}`)\n//    xlsx.SetCellStyle(\"Sheet1\", \"A3\", \"A3\", style)\n//\n// A this is another example for \"Location\":\n//\n//    xlsx.SetCellHyperLink(\"Sheet1\", \"A3\", \"Sheet1!A40\", \"Location\")\n//\nfunc (f *File) SetCellHyperLink(sheet, axis, link, linkType string) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tlinkTypes := map[string]xlsxHyperlink{\n\t\t\"External\": {},\n\t\t\"Location\": {Location: link},\n\t}\n\thyperlink, ok := linkTypes[linkType]\n\tif !ok || axis == \"\" {\n\t\treturn\n\t}\n\thyperlink.Ref = axis\n\tif linkType == \"External\" {\n\t\trID := f.addSheetRelationships(sheet, SourceRelationshipHyperLink, link, linkType)\n\t\thyperlink.RID = \"rId\" + strconv.Itoa(rID)\n\t}\n\tif xlsx.Hyperlinks == nil {\n\t\txlsx.Hyperlinks = &xlsxHyperlinks{}\n\t}\n\txlsx.Hyperlinks.Hyperlink = append(xlsx.Hyperlinks.Hyperlink, hyperlink)\n}\n\n// GetCellHyperLink provides function to get cell hyperlink by given worksheet\n// name and axis. Boolean type value link will be ture if the cell has a\n// hyperlink and the target is the address of the hyperlink. Otherwise, the\n// value of link will be false and the value of the target will be a blank\n// string. For example get hyperlink of Sheet1!H6:\n//\n//    link, target := xlsx.GetCellHyperLink(\"Sheet1\", \"H6\")\n//\nfunc (f *File) GetCellHyperLink(sheet, axis string) (bool, string) {\n\tvar link bool\n\tvar target string\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tif xlsx.Hyperlinks == nil || axis == \"\" {\n\t\treturn link, target\n\t}\n\tfor h := range xlsx.Hyperlinks.Hyperlink {\n\t\tif xlsx.Hyperlinks.Hyperlink[h].Ref == axis {\n\t\t\tlink = true\n\t\t\ttarget = xlsx.Hyperlinks.Hyperlink[h].Location\n\t\t\tif xlsx.Hyperlinks.Hyperlink[h].RID != \"\" {\n\t\t\t\ttarget = f.getSheetRelationshipsTargetByID(sheet, xlsx.Hyperlinks.Hyperlink[h].RID)\n\t\t\t}\n\t\t}\n\t}\n\treturn link, target\n}\n\n// MergeCell provides function to merge cells by given coordinate area and sheet\n// name. For example create a merged cell of D3:E9 on Sheet1:\n//\n//    xlsx.MergeCell(\"Sheet1\", \"D3\", \"E9\")\n//\n// If you create a merged cell that overlaps with another existing merged cell,\n// those merged cells that already exist will be removed.\nfunc (f *File) MergeCell(sheet, hcell, vcell string) {\n\tif hcell == vcell {\n\t\treturn\n\t}\n\n\thcell = strings.ToUpper(hcell)\n\tvcell = strings.ToUpper(vcell)\n\n\t// Coordinate conversion, convert C1:B3 to 2,0,1,2.\n\thcol := string(strings.Map(letterOnlyMapF, hcell))\n\throw, _ := strconv.Atoi(strings.Map(intOnlyMapF, hcell))\n\thyAxis := hrow - 1\n\thxAxis := TitleToNumber(hcol)\n\n\tvcol := string(strings.Map(letterOnlyMapF, vcell))\n\tvrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, vcell))\n\tvyAxis := vrow - 1\n\tvxAxis := TitleToNumber(vcol)\n\n\tif vxAxis < hxAxis {\n\t\thcell, vcell = vcell, hcell\n\t\tvxAxis, hxAxis = hxAxis, vxAxis\n\t}\n\n\tif vyAxis < hyAxis {\n\t\thcell, vcell = vcell, hcell\n\t\tvyAxis, hyAxis = hyAxis, vyAxis\n\t}\n\n\txlsx := f.workSheetReader(sheet)\n\tif xlsx.MergeCells != nil {\n\t\tmergeCell := xlsxMergeCell{}\n\t\t// Correct the coordinate area, such correct C1:B3 to B1:C3.\n\t\tmergeCell.Ref = ToAlphaString(hxAxis) + strconv.Itoa(hyAxis+1) + \":\" + ToAlphaString(vxAxis) + strconv.Itoa(vyAxis+1)\n\t\t// Delete the merged cells of the overlapping area.\n\t\tfor i := 0; i < len(xlsx.MergeCells.Cells); i++ {\n\t\t\tif checkCellInArea(hcell, xlsx.MergeCells.Cells[i].Ref) || checkCellInArea(strings.Split(xlsx.MergeCells.Cells[i].Ref, \":\")[0], mergeCell.Ref) {\n\t\t\t\txlsx.MergeCells.Cells = append(xlsx.MergeCells.Cells[:i], xlsx.MergeCells.Cells[i+1:]...)\n\t\t\t} else if checkCellInArea(vcell, xlsx.MergeCells.Cells[i].Ref) || checkCellInArea(strings.Split(xlsx.MergeCells.Cells[i].Ref, \":\")[1], mergeCell.Ref) {\n\t\t\t\txlsx.MergeCells.Cells = append(xlsx.MergeCells.Cells[:i], xlsx.MergeCells.Cells[i+1:]...)\n\t\t\t}\n\t\t}\n\t\txlsx.MergeCells.Cells = append(xlsx.MergeCells.Cells, &mergeCell)\n\t} else {\n\t\tmergeCell := xlsxMergeCell{}\n\t\t// Correct the coordinate area, such correct C1:B3 to B1:C3.\n\t\tmergeCell.Ref = ToAlphaString(hxAxis) + strconv.Itoa(hyAxis+1) + \":\" + ToAlphaString(vxAxis) + strconv.Itoa(vyAxis+1)\n\t\tmergeCells := xlsxMergeCells{}\n\t\tmergeCells.Cells = append(mergeCells.Cells, &mergeCell)\n\t\txlsx.MergeCells = &mergeCells\n\t}\n}\n\n// SetCellInt provides function to set int type value of a cell by given\n// worksheet name, cell coordinates and cell value.\nfunc (f *File) SetCellInt(sheet, axis string, value int) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn\n\t}\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\txlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S)\n\txlsx.SheetData.Row[xAxis].C[yAxis].T = \"\"\n\txlsx.SheetData.Row[xAxis].C[yAxis].V = strconv.Itoa(value)\n}\n\n// prepareCellStyle provides function to prepare style index of cell in\n// worksheet by given column index and style index.\nfunc (f *File) prepareCellStyle(xlsx *xlsxWorksheet, col, style int) int {\n\tif xlsx.Cols != nil && style == 0 {\n\t\tfor _, v := range xlsx.Cols.Col {\n\t\t\tif v.Min <= col && col <= v.Max {\n\t\t\t\tstyle = v.Style\n\t\t\t}\n\t\t}\n\t}\n\treturn style\n}\n\n// SetCellStr provides function to set string type value of a cell. Total number\n// of characters that a cell can contain 32767 characters.\nfunc (f *File) SetCellStr(sheet, axis, value string) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tif len(value) > 32767 {\n\t\tvalue = value[0:32767]\n\t}\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn\n\t}\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\t// Leading space(s) character detection.\n\tif len(value) > 0 {\n\t\tif value[0] == 32 {\n\t\t\txlsx.SheetData.Row[xAxis].C[yAxis].XMLSpace = xml.Attr{\n\t\t\t\tName:  xml.Name{Space: NameSpaceXML, Local: \"space\"},\n\t\t\t\tValue: \"preserve\",\n\t\t\t}\n\t\t}\n\t}\n\txlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S)\n\txlsx.SheetData.Row[xAxis].C[yAxis].T = \"str\"\n\txlsx.SheetData.Row[xAxis].C[yAxis].V = value\n}\n\n// SetCellDefault provides function to set string type value of a cell as\n// default format without escaping the cell.\nfunc (f *File) SetCellDefault(sheet, axis, value string) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn\n\t}\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\txlsx.SheetData.Row[xAxis].C[yAxis].S = f.prepareCellStyle(xlsx, cell, xlsx.SheetData.Row[xAxis].C[yAxis].S)\n\txlsx.SheetData.Row[xAxis].C[yAxis].T = \"\"\n\txlsx.SheetData.Row[xAxis].C[yAxis].V = value\n}\n\n// SetSheetRow writes an array to row by given worksheet name, starting\n// coordinate and a pointer to array type 'slice'. For example, writes an\n// array to row 6 start with the cell B6 on Sheet1:\n//\n//     xlsx.SetSheetRow(\"Sheet1\", \"B6\", &[]interface{}{\"1\", nil, 2})\n//\nfunc (f *File) SetSheetRow(sheet, axis string, slice interface{}) {\n\txlsx := f.workSheetReader(sheet)\n\taxis = f.mergeCellsParser(xlsx, axis)\n\tcol := string(strings.Map(letterOnlyMapF, axis))\n\trow, err := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\tif err != nil {\n\t\treturn\n\t}\n\t// Make sure 'slice' is a Ptr to Slice\n\tv := reflect.ValueOf(slice)\n\tif v.Kind() != reflect.Ptr {\n\t\treturn\n\t}\n\tv = v.Elem()\n\tif v.Kind() != reflect.Slice {\n\t\treturn\n\t}\n\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\n\trows := xAxis + 1\n\tcell := yAxis + 1\n\n\tcompleteRow(xlsx, rows, cell)\n\tcompleteCol(xlsx, rows, cell)\n\n\tidx := 0\n\tfor i := cell - 1; i < v.Len()+cell-1; i++ {\n\t\tc := ToAlphaString(i) + strconv.Itoa(row)\n\t\tf.SetCellValue(sheet, c, v.Index(idx).Interface())\n\t\tidx++\n\t}\n}\n\n// checkCellInArea provides function to determine if a given coordinate is\n// within an area.\nfunc checkCellInArea(cell, area string) bool {\n\tcell = strings.ToUpper(cell)\n\tarea = strings.ToUpper(area)\n\n\tref := strings.Split(area, \":\")\n\tif len(ref) < 2 {\n\t\treturn false\n\t}\n\n\tfrom := ref[0]\n\tto := ref[1]\n\n\tcol, row := getCellColRow(cell)\n\tfromCol, fromRow := getCellColRow(from)\n\ttoCol, toRow := getCellColRow(to)\n\n\treturn axisLowerOrEqualThan(fromCol, col) && axisLowerOrEqualThan(col, toCol) && axisLowerOrEqualThan(fromRow, row) && axisLowerOrEqualThan(row, toRow)\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/chart.go",
    "content": "package excelize\n\nimport (\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// This section defines the currently supported chart types.\nconst (\n\tBar                 = \"bar\"\n\tBarStacked          = \"barStacked\"\n\tBarPercentStacked   = \"barPercentStacked\"\n\tBar3DClustered      = \"bar3DClustered\"\n\tBar3DStacked        = \"bar3DStacked\"\n\tBar3DPercentStacked = \"bar3DPercentStacked\"\n\tCol                 = \"col\"\n\tColStacked          = \"colStacked\"\n\tColPercentStacked   = \"colPercentStacked\"\n\tCol3DClustered      = \"col3DClustered\"\n\tCol3D               = \"col3D\"\n\tCol3DStacked        = \"col3DStacked\"\n\tCol3DPercentStacked = \"col3DPercentStacked\"\n\tDoughnut            = \"doughnut\"\n\tLine                = \"line\"\n\tPie                 = \"pie\"\n\tPie3D               = \"pie3D\"\n\tRadar               = \"radar\"\n\tScatter             = \"scatter\"\n)\n\n// This section defines the default value of chart properties.\nvar (\n\tchartView3DRotX = map[string]int{\n\t\tBar:                 0,\n\t\tBarStacked:          0,\n\t\tBarPercentStacked:   0,\n\t\tBar3DClustered:      15,\n\t\tBar3DStacked:        15,\n\t\tBar3DPercentStacked: 15,\n\t\tCol:                 0,\n\t\tColStacked:          0,\n\t\tColPercentStacked:   0,\n\t\tCol3DClustered:      15,\n\t\tCol3D:               15,\n\t\tCol3DStacked:        15,\n\t\tCol3DPercentStacked: 15,\n\t\tDoughnut:            0,\n\t\tLine:                0,\n\t\tPie:                 0,\n\t\tPie3D:               30,\n\t\tRadar:               0,\n\t\tScatter:             0,\n\t}\n\tchartView3DRotY = map[string]int{\n\t\tBar:                 0,\n\t\tBarStacked:          0,\n\t\tBarPercentStacked:   0,\n\t\tBar3DClustered:      20,\n\t\tBar3DStacked:        20,\n\t\tBar3DPercentStacked: 20,\n\t\tCol:                 0,\n\t\tColStacked:          0,\n\t\tColPercentStacked:   0,\n\t\tCol3DClustered:      20,\n\t\tCol3D:               20,\n\t\tCol3DStacked:        20,\n\t\tCol3DPercentStacked: 20,\n\t\tDoughnut:            0,\n\t\tLine:                0,\n\t\tPie:                 0,\n\t\tPie3D:               0,\n\t\tRadar:               0,\n\t\tScatter:             0,\n\t}\n\tchartView3DDepthPercent = map[string]int{\n\t\tBar:                 100,\n\t\tBarStacked:          100,\n\t\tBarPercentStacked:   100,\n\t\tBar3DClustered:      100,\n\t\tBar3DStacked:        100,\n\t\tBar3DPercentStacked: 100,\n\t\tCol:                 100,\n\t\tColStacked:          100,\n\t\tColPercentStacked:   100,\n\t\tCol3DClustered:      100,\n\t\tCol3D:               100,\n\t\tCol3DStacked:        100,\n\t\tCol3DPercentStacked: 100,\n\t\tDoughnut:            100,\n\t\tLine:                100,\n\t\tPie:                 100,\n\t\tPie3D:               100,\n\t\tRadar:               100,\n\t\tScatter:             100,\n\t}\n\tchartView3DRAngAx = map[string]int{\n\t\tBar:                 0,\n\t\tBarStacked:          0,\n\t\tBarPercentStacked:   0,\n\t\tBar3DClustered:      1,\n\t\tBar3DStacked:        1,\n\t\tBar3DPercentStacked: 1,\n\t\tCol:                 0,\n\t\tColStacked:          0,\n\t\tColPercentStacked:   0,\n\t\tCol3DClustered:      1,\n\t\tCol3D:               1,\n\t\tCol3DStacked:        1,\n\t\tCol3DPercentStacked: 1,\n\t\tDoughnut:            0,\n\t\tLine:                0,\n\t\tPie:                 0,\n\t\tPie3D:               0,\n\t\tRadar:               0,\n\t\tScatter:             0,\n\t}\n\tchartLegendPosition = map[string]string{\n\t\t\"bottom\":    \"b\",\n\t\t\"left\":      \"l\",\n\t\t\"right\":     \"r\",\n\t\t\"top\":       \"t\",\n\t\t\"top_right\": \"tr\",\n\t}\n\tchartValAxNumFmtFormatCode = map[string]string{\n\t\tBar:                 \"General\",\n\t\tBarStacked:          \"General\",\n\t\tBarPercentStacked:   \"0%\",\n\t\tBar3DClustered:      \"General\",\n\t\tBar3DStacked:        \"General\",\n\t\tBar3DPercentStacked: \"0%\",\n\t\tCol:                 \"General\",\n\t\tColStacked:          \"General\",\n\t\tColPercentStacked:   \"0%\",\n\t\tCol3DClustered:      \"General\",\n\t\tCol3D:               \"General\",\n\t\tCol3DStacked:        \"General\",\n\t\tCol3DPercentStacked: \"0%\",\n\t\tDoughnut:            \"General\",\n\t\tLine:                \"General\",\n\t\tPie:                 \"General\",\n\t\tPie3D:               \"General\",\n\t\tRadar:               \"General\",\n\t\tScatter:             \"General\",\n\t}\n\tplotAreaChartGrouping = map[string]string{\n\t\tBar:                 \"clustered\",\n\t\tBarStacked:          \"stacked\",\n\t\tBarPercentStacked:   \"percentStacked\",\n\t\tBar3DClustered:      \"clustered\",\n\t\tBar3DStacked:        \"stacked\",\n\t\tBar3DPercentStacked: \"percentStacked\",\n\t\tCol:                 \"clustered\",\n\t\tColStacked:          \"stacked\",\n\t\tColPercentStacked:   \"percentStacked\",\n\t\tCol3DClustered:      \"clustered\",\n\t\tCol3D:               \"standard\",\n\t\tCol3DStacked:        \"stacked\",\n\t\tCol3DPercentStacked: \"percentStacked\",\n\t\tLine:                \"standard\",\n\t}\n\tplotAreaChartBarDir = map[string]string{\n\t\tBar:                 \"bar\",\n\t\tBarStacked:          \"bar\",\n\t\tBarPercentStacked:   \"bar\",\n\t\tBar3DClustered:      \"bar\",\n\t\tBar3DStacked:        \"bar\",\n\t\tBar3DPercentStacked: \"bar\",\n\t\tCol:                 \"col\",\n\t\tColStacked:          \"col\",\n\t\tColPercentStacked:   \"col\",\n\t\tCol3DClustered:      \"col\",\n\t\tCol3D:               \"col\",\n\t\tCol3DStacked:        \"col\",\n\t\tCol3DPercentStacked: \"col\",\n\t\tLine:                \"standard\",\n\t}\n\torientation = map[bool]string{\n\t\ttrue:  \"maxMin\",\n\t\tfalse: \"minMax\",\n\t}\n\tcatAxPos = map[bool]string{\n\t\ttrue:  \"t\",\n\t\tfalse: \"b\",\n\t}\n\tvalAxPos = map[bool]string{\n\t\ttrue:  \"r\",\n\t\tfalse: \"l\",\n\t}\n)\n\n// parseFormatChartSet provides function to parse the format settings of the\n// chart with default value.\nfunc parseFormatChartSet(formatSet string) (*formatChart, error) {\n\tformat := formatChart{\n\t\tDimension: formatChartDimension{\n\t\t\tWidth:  480,\n\t\t\tHeight: 290,\n\t\t},\n\t\tFormat: formatPicture{\n\t\t\tFPrintsWithSheet: true,\n\t\t\tFLocksWithSheet:  false,\n\t\t\tNoChangeAspect:   false,\n\t\t\tOffsetX:          0,\n\t\t\tOffsetY:          0,\n\t\t\tXScale:           1.0,\n\t\t\tYScale:           1.0,\n\t\t},\n\t\tLegend: formatChartLegend{\n\t\t\tPosition:      \"bottom\",\n\t\t\tShowLegendKey: false,\n\t\t},\n\t\tTitle: formatChartTitle{\n\t\t\tName: \" \",\n\t\t},\n\t\tShowBlanksAs: \"gap\",\n\t}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// AddChart provides the method to add chart in a sheet by given chart format\n// set (such as offset, scale, aspect ratio setting and print settings) and\n// properties set. For example, create 3D clustered column chart with data\n// Sheet1!$A$29:$D$32:\n//\n//    package main\n//\n//    import (\n//        \"fmt\"\n//\n//        \"github.com/360EntSecGroup-Skylar/excelize\"\n//    )\n//\n//    func main() {\n//        categories := map[string]string{\"A2\": \"Small\", \"A3\": \"Normal\", \"A4\": \"Large\", \"B1\": \"Apple\", \"C1\": \"Orange\", \"D1\": \"Pear\"}\n//        values := map[string]int{\"B2\": 2, \"C2\": 3, \"D2\": 3, \"B3\": 5, \"C3\": 2, \"D3\": 4, \"B4\": 6, \"C4\": 7, \"D4\": 8}\n//        xlsx := excelize.NewFile()\n//        for k, v := range categories {\n//            xlsx.SetCellValue(\"Sheet1\", k, v)\n//        }\n//        for k, v := range values {\n//            xlsx.SetCellValue(\"Sheet1\", k, v)\n//        }\n//        xlsx.AddChart(\"Sheet1\", \"E1\", `{\"type\":\"col3DClustered\",\"dimension\":{\"width\":640,\"height\":480},\"series\":[{\"name\":\"Sheet1!$A$2\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$2:$D$2\"},{\"name\":\"Sheet1!$A$3\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$3:$D$3\"},{\"name\":\"Sheet1!$A$4\",\"categories\":\"Sheet1!$B$1:$D$1\",\"values\":\"Sheet1!$B$4:$D$4\"}],\"format\":{\"x_scale\":1.0,\"y_scale\":1.0,\"x_offset\":15,\"y_offset\":10,\"print_obj\":true,\"lock_aspect_ratio\":false,\"locked\":false},\"legend\":{\"position\":\"bottom\",\"show_legend_key\":false},\"title\":{\"name\":\"Fruit 3D Clustered Column Chart\"},\"plotarea\":{\"show_bubble_size\":true,\"show_cat_name\":false,\"show_leader_lines\":false,\"show_percent\":true,\"show_series_name\":true,\"show_val\":true},\"show_blanks_as\":\"zero\",\"x_axis\":{\"reverse_order\":true},\"y_axis\":{\"maximum\":7.5,\"minimum\":0.5}}`)\n//        // Save xlsx file by the given path.\n//        err := xlsx.SaveAs(\"./Book1.xlsx\")\n//        if err != nil {\n//            fmt.Println(err)\n//        }\n//    }\n//\n// The following shows the type of chart supported by excelize:\n//\n//     Type                | Chart\n//    ---------------------+------------------------------\n//     bar                 | 2D clustered bar chart\n//     barStacked          | 2D stacked bar chart\n//     barPercentStacked   | 2D 100% stacked bar chart\n//     bar3DClustered      | 3D clustered bar chart\n//     bar3DStacked        | 3D stacked bar chart\n//     bar3DPercentStacked | 3D 100% stacked bar chart\n//     col                 | 2D clustered column chart\n//     colStacked          | 2D stacked column chart\n//     colPercentStacked   | 2D 100% stacked column chart\n//     col3DClustered      | 3D clustered column chart\n//     col3D               | 3D column chart\n//     col3DStacked        | 3D stacked column chart\n//     col3DPercentStacked | 3D 100% stacked column chart\n//     doughnut            | doughnut chart\n//     line                | line chart\n//     pie                 | pie chart\n//     pie3D               | 3D pie chart\n//     radar               | radar chart\n//     scatter             | scatter chart\n//\n// In Excel a chart series is a collection of information that defines which data is plotted such as values, axis labels and formatting.\n//\n// The series options that can be set are:\n//\n//    name\n//    categories\n//    values\n//\n// name: Set the name for the series. The name is displayed in the chart legend and in the formula bar. The name property is optional and if it isn't supplied it will default to Series 1..n. The name can also be a formula such as Sheet1!$A$1\n//\n// categories: This sets the chart category labels. The category is more or less the same as the X axis. In most chart types the categories property is optional and the chart will just assume a sequential series from 1..n.\n//\n// values: This is the most important property of a series and is the only mandatory option for every chart object. This option links the chart with the worksheet data that it displays.\n//\n// Set properties of the chart legend. The options that can be set are:\n//\n//    position\n//    show_legend_key\n//\n// position: Set the position of the chart legend. The default legend position is right. The available positions are:\n//\n//    top\n//    bottom\n//    left\n//    right\n//    top_right\n//\n// show_legend_key: Set the legend keys shall be shown in data labels. The default value is false.\n//\n// Set properties of the chart title. The properties that can be set are:\n//\n//    title\n//\n// name: Set the name (title) for the chart. The name is displayed above the chart. The name can also be a formula such as Sheet1!$A$1 or a list with a sheetname. The name property is optional. The default is to have no chart title.\n//\n// Specifies how blank cells are plotted on the chart by show_blanks_as. The default value is gap. The options that can be set are:\n//\n//    gap\n//    span\n//    zero\n//\n// gap: Specifies that blank values shall be left as a gap.\n//\n// sapn: Specifies that blank values shall be spanned with a line.\n//\n// zero: Specifies that blank values shall be treated as zero.\n//\n// Set chart offset, scale, aspect ratio setting and print settings by format, same as function AddPicture.\n//\n// Set the position of the chart plot area by plotarea. The properties that can be set are:\n//\n//    show_bubble_size\n//    show_cat_name\n//    show_leader_lines\n//    show_percent\n//    show_series_name\n//    show_val\n//\n// show_bubble_size: Specifies the bubble size shall be shown in a data label. The show_bubble_size property is optional. The default value is false.\n//\n// show_cat_name: Specifies that the category name shall be shown in the data label. The show_cat_name property is optional. The default value is true.\n//\n// show_leader_lines: Specifies leader lines shall be shown for data labels. The show_leader_lines property is optional. The default value is false.\n//\n// show_percent: Specifies that the percentage shall be shown in a data label. The show_percent property is optional. The default value is false.\n//\n// show_series_name: Specifies that the series name shall be shown in a data label. The show_series_name property is optional. The default value is false.\n//\n// show_val: Specifies that the value shall be shown in a data label. The show_val property is optional. The default value is false.\n//\n// Set the primary horizontal and vertical axis options by x_axis and y_axis. The properties that can be set are:\n//\n//    reverse_order\n//    maximum\n//    minimum\n//\n// reverse_order: Specifies that the categories or values on reverse order (orientation of the chart). The reverse_order property is optional. The default value is false.\n// maximum: Specifies that the fixed maximum, 0 is auto. The maximum property is optional. The default value is auto.\n// minimum: Specifies that the fixed minimum, 0 is auto. The minimum property is optional. The default value is auto.\n//\n// Set chart size by dimension property. The dimension property is optional. The default width is 480, and height is 290.\n//\nfunc (f *File) AddChart(sheet, cell, format string) error {\n\tformatSet, err := parseFormatChartSet(format)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Read sheet data.\n\txlsx := f.workSheetReader(sheet)\n\t// Add first picture for given sheet, create xl/drawings/ and xl/drawings/_rels/ folder.\n\tdrawingID := f.countDrawings() + 1\n\tchartID := f.countCharts() + 1\n\tdrawingXML := \"xl/drawings/drawing\" + strconv.Itoa(drawingID) + \".xml\"\n\tdrawingID, drawingXML = f.prepareDrawing(xlsx, drawingID, sheet, drawingXML)\n\tdrawingRID := f.addDrawingRelationships(drawingID, SourceRelationshipChart, \"../charts/chart\"+strconv.Itoa(chartID)+\".xml\", \"\")\n\tf.addDrawingChart(sheet, drawingXML, cell, formatSet.Dimension.Width, formatSet.Dimension.Height, drawingRID, &formatSet.Format)\n\tf.addChart(formatSet)\n\tf.addContentTypePart(chartID, \"chart\")\n\tf.addContentTypePart(drawingID, \"drawings\")\n\treturn err\n}\n\n// countCharts provides function to get chart files count storage in the\n// folder xl/charts.\nfunc (f *File) countCharts() int {\n\tcount := 0\n\tfor k := range f.XLSX {\n\t\tif strings.Contains(k, \"xl/charts/chart\") {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n// prepareDrawing provides function to prepare drawing ID and XML by given\n// drawingID, worksheet name and default drawingXML.\nfunc (f *File) prepareDrawing(xlsx *xlsxWorksheet, drawingID int, sheet, drawingXML string) (int, string) {\n\tsheetRelationshipsDrawingXML := \"../drawings/drawing\" + strconv.Itoa(drawingID) + \".xml\"\n\tif xlsx.Drawing != nil {\n\t\t// The worksheet already has a picture or chart relationships, use the relationships drawing ../drawings/drawing%d.xml.\n\t\tsheetRelationshipsDrawingXML = f.getSheetRelationshipsTargetByID(sheet, xlsx.Drawing.RID)\n\t\tdrawingID, _ = strconv.Atoi(strings.TrimSuffix(strings.TrimPrefix(sheetRelationshipsDrawingXML, \"../drawings/drawing\"), \".xml\"))\n\t\tdrawingXML = strings.Replace(sheetRelationshipsDrawingXML, \"..\", \"xl\", -1)\n\t} else {\n\t\t// Add first picture for given sheet.\n\t\trID := f.addSheetRelationships(sheet, SourceRelationshipDrawingML, sheetRelationshipsDrawingXML, \"\")\n\t\tf.addSheetDrawing(sheet, rID)\n\t}\n\treturn drawingID, drawingXML\n}\n\n// addChart provides function to create chart as xl/charts/chart%d.xml by given\n// format sets.\nfunc (f *File) addChart(formatSet *formatChart) {\n\tcount := f.countCharts()\n\txlsxChartSpace := xlsxChartSpace{\n\t\tXMLNSc:         NameSpaceDrawingMLChart,\n\t\tXMLNSa:         NameSpaceDrawingML,\n\t\tXMLNSr:         SourceRelationship,\n\t\tXMLNSc16r2:     SourceRelationshipChart201506,\n\t\tDate1904:       &attrValBool{Val: false},\n\t\tLang:           &attrValString{Val: \"en-US\"},\n\t\tRoundedCorners: &attrValBool{Val: false},\n\t\tChart: cChart{\n\t\t\tTitle: &cTitle{\n\t\t\t\tTx: cTx{\n\t\t\t\t\tRich: &cRich{\n\t\t\t\t\t\tP: aP{\n\t\t\t\t\t\t\tPPr: &aPPr{\n\t\t\t\t\t\t\t\tDefRPr: aRPr{\n\t\t\t\t\t\t\t\t\tKern:   1200,\n\t\t\t\t\t\t\t\t\tStrike: \"noStrike\",\n\t\t\t\t\t\t\t\t\tU:      \"none\",\n\t\t\t\t\t\t\t\t\tSz:     1400,\n\t\t\t\t\t\t\t\t\tSolidFill: &aSolidFill{\n\t\t\t\t\t\t\t\t\t\tSchemeClr: &aSchemeClr{\n\t\t\t\t\t\t\t\t\t\t\tVal: \"tx1\",\n\t\t\t\t\t\t\t\t\t\t\tLumMod: &attrValInt{\n\t\t\t\t\t\t\t\t\t\t\t\tVal: 65000,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tLumOff: &attrValInt{\n\t\t\t\t\t\t\t\t\t\t\t\tVal: 35000,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tEa: &aEa{\n\t\t\t\t\t\t\t\t\t\tTypeface: \"+mn-ea\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tCs: &aCs{\n\t\t\t\t\t\t\t\t\t\tTypeface: \"+mn-cs\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tLatin: &aLatin{\n\t\t\t\t\t\t\t\t\t\tTypeface: \"+mn-lt\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tR: &aR{\n\t\t\t\t\t\t\t\tRPr: aRPr{\n\t\t\t\t\t\t\t\t\tLang:    \"en-US\",\n\t\t\t\t\t\t\t\t\tAltLang: \"en-US\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tT: formatSet.Title.Name,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTxPr: cTxPr{\n\t\t\t\t\tP: aP{\n\t\t\t\t\t\tPPr: &aPPr{\n\t\t\t\t\t\t\tDefRPr: aRPr{\n\t\t\t\t\t\t\t\tKern:   1200,\n\t\t\t\t\t\t\t\tU:      \"none\",\n\t\t\t\t\t\t\t\tSz:     14000,\n\t\t\t\t\t\t\t\tStrike: \"noStrike\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tEndParaRPr: &aEndParaRPr{\n\t\t\t\t\t\t\tLang: \"en-US\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tView3D: &cView3D{\n\t\t\t\tRotX:         &attrValInt{Val: chartView3DRotX[formatSet.Type]},\n\t\t\t\tRotY:         &attrValInt{Val: chartView3DRotY[formatSet.Type]},\n\t\t\t\tDepthPercent: &attrValInt{Val: chartView3DDepthPercent[formatSet.Type]},\n\t\t\t\tRAngAx:       &attrValInt{Val: chartView3DRAngAx[formatSet.Type]},\n\t\t\t},\n\t\t\tFloor: &cThicknessSpPr{\n\t\t\t\tThickness: &attrValInt{Val: 0},\n\t\t\t},\n\t\t\tSideWall: &cThicknessSpPr{\n\t\t\t\tThickness: &attrValInt{Val: 0},\n\t\t\t},\n\t\t\tBackWall: &cThicknessSpPr{\n\t\t\t\tThickness: &attrValInt{Val: 0},\n\t\t\t},\n\t\t\tPlotArea: &cPlotArea{},\n\t\t\tLegend: &cLegend{\n\t\t\t\tLegendPos: &attrValString{Val: chartLegendPosition[formatSet.Legend.Position]},\n\t\t\t\tOverlay:   &attrValBool{Val: false},\n\t\t\t},\n\n\t\t\tPlotVisOnly:      &attrValBool{Val: false},\n\t\t\tDispBlanksAs:     &attrValString{Val: formatSet.ShowBlanksAs},\n\t\t\tShowDLblsOverMax: &attrValBool{Val: false},\n\t\t},\n\t\tSpPr: &cSpPr{\n\t\t\tSolidFill: &aSolidFill{\n\t\t\t\tSchemeClr: &aSchemeClr{Val: \"bg1\"},\n\t\t\t},\n\t\t\tLn: &aLn{\n\t\t\t\tW:    9525,\n\t\t\t\tCap:  \"flat\",\n\t\t\t\tCmpd: \"sng\",\n\t\t\t\tAlgn: \"ctr\",\n\t\t\t\tSolidFill: &aSolidFill{\n\t\t\t\t\tSchemeClr: &aSchemeClr{Val: \"tx1\",\n\t\t\t\t\t\tLumMod: &attrValInt{\n\t\t\t\t\t\t\tVal: 15000,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLumOff: &attrValInt{\n\t\t\t\t\t\t\tVal: 85000,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tPrintSettings: &cPrintSettings{\n\t\t\tPageMargins: &cPageMargins{\n\t\t\t\tB:      0.75,\n\t\t\t\tL:      0.7,\n\t\t\t\tR:      0.7,\n\t\t\t\tT:      0.7,\n\t\t\t\tHeader: 0.3,\n\t\t\t\tFooter: 0.3,\n\t\t\t},\n\t\t},\n\t}\n\tplotAreaFunc := map[string]func(*formatChart) *cPlotArea{\n\t\tBar:                 f.drawBaseChart,\n\t\tBarStacked:          f.drawBaseChart,\n\t\tBarPercentStacked:   f.drawBaseChart,\n\t\tBar3DClustered:      f.drawBaseChart,\n\t\tBar3DStacked:        f.drawBaseChart,\n\t\tBar3DPercentStacked: f.drawBaseChart,\n\t\tCol:                 f.drawBaseChart,\n\t\tColStacked:          f.drawBaseChart,\n\t\tColPercentStacked:   f.drawBaseChart,\n\t\tCol3DClustered:      f.drawBaseChart,\n\t\tCol3D:               f.drawBaseChart,\n\t\tCol3DStacked:        f.drawBaseChart,\n\t\tCol3DPercentStacked: f.drawBaseChart,\n\t\tDoughnut:            f.drawDoughnutChart,\n\t\tLine:                f.drawLineChart,\n\t\tPie3D:               f.drawPie3DChart,\n\t\tPie:                 f.drawPieChart,\n\t\tRadar:               f.drawRadarChart,\n\t\tScatter:             f.drawScatterChart,\n\t}\n\txlsxChartSpace.Chart.PlotArea = plotAreaFunc[formatSet.Type](formatSet)\n\n\tchart, _ := xml.Marshal(xlsxChartSpace)\n\tmedia := \"xl/charts/chart\" + strconv.Itoa(count+1) + \".xml\"\n\tf.saveFileList(media, chart)\n}\n\n// drawBaseChart provides function to draw the c:plotArea element for bar,\n// and column series charts by given format sets.\nfunc (f *File) drawBaseChart(formatSet *formatChart) *cPlotArea {\n\tc := cCharts{\n\t\tBarDir: &attrValString{\n\t\t\tVal: \"col\",\n\t\t},\n\t\tGrouping: &attrValString{\n\t\t\tVal: \"clustered\",\n\t\t},\n\t\tVaryColors: &attrValBool{\n\t\t\tVal: true,\n\t\t},\n\t\tSer:   f.drawChartSeries(formatSet),\n\t\tDLbls: f.drawChartDLbls(formatSet),\n\t\tAxID: []*attrValInt{\n\t\t\t{Val: 754001152},\n\t\t\t{Val: 753999904},\n\t\t},\n\t}\n\tc.BarDir.Val = plotAreaChartBarDir[formatSet.Type]\n\tc.Grouping.Val = plotAreaChartGrouping[formatSet.Type]\n\tif formatSet.Type == \"colStacked\" || formatSet.Type == \"barStacked\" || formatSet.Type == \"barPercentStacked\" || formatSet.Type == \"colPercentStacked\" {\n\t\tc.Overlap = &attrValInt{Val: 100}\n\t}\n\tcatAx := f.drawPlotAreaCatAx(formatSet)\n\tvalAx := f.drawPlotAreaValAx(formatSet)\n\tcharts := map[string]*cPlotArea{\n\t\t\"bar\": {\n\t\t\tBarChart: &c,\n\t\t\tCatAx:    catAx,\n\t\t\tValAx:    valAx,\n\t\t},\n\t\t\"barStacked\": {\n\t\t\tBarChart: &c,\n\t\t\tCatAx:    catAx,\n\t\t\tValAx:    valAx,\n\t\t},\n\t\t\"barPercentStacked\": {\n\t\t\tBarChart: &c,\n\t\t\tCatAx:    catAx,\n\t\t\tValAx:    valAx,\n\t\t},\n\t\t\"bar3DClustered\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t\t\"bar3DStacked\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t\t\"bar3DPercentStacked\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t\t\"col\": {\n\t\t\tBarChart: &c,\n\t\t\tCatAx:    catAx,\n\t\t\tValAx:    valAx,\n\t\t},\n\t\t\"colStacked\": {\n\t\t\tBarChart: &c,\n\t\t\tCatAx:    catAx,\n\t\t\tValAx:    valAx,\n\t\t},\n\t\t\"colPercentStacked\": {\n\t\t\tBarChart: &c,\n\t\t\tCatAx:    catAx,\n\t\t\tValAx:    valAx,\n\t\t},\n\t\t\"col3DClustered\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t\t\"col3D\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t\t\"col3DStacked\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t\t\"col3DPercentStacked\": {\n\t\t\tBar3DChart: &c,\n\t\t\tCatAx:      catAx,\n\t\t\tValAx:      valAx,\n\t\t},\n\t}\n\treturn charts[formatSet.Type]\n}\n\n// drawDoughnutChart provides function to draw the c:plotArea element for\n// doughnut chart by given format sets.\nfunc (f *File) drawDoughnutChart(formatSet *formatChart) *cPlotArea {\n\treturn &cPlotArea{\n\t\tDoughnutChart: &cCharts{\n\t\t\tVaryColors: &attrValBool{\n\t\t\t\tVal: true,\n\t\t\t},\n\t\t\tSer:      f.drawChartSeries(formatSet),\n\t\t\tHoleSize: &attrValInt{Val: 75},\n\t\t},\n\t}\n}\n\n// drawLineChart provides function to draw the c:plotArea element for line chart\n// by given format sets.\nfunc (f *File) drawLineChart(formatSet *formatChart) *cPlotArea {\n\treturn &cPlotArea{\n\t\tLineChart: &cCharts{\n\t\t\tGrouping: &attrValString{\n\t\t\t\tVal: plotAreaChartGrouping[formatSet.Type],\n\t\t\t},\n\t\t\tVaryColors: &attrValBool{\n\t\t\t\tVal: false,\n\t\t\t},\n\t\t\tSer:   f.drawChartSeries(formatSet),\n\t\t\tDLbls: f.drawChartDLbls(formatSet),\n\t\t\tSmooth: &attrValBool{\n\t\t\t\tVal: false,\n\t\t\t},\n\t\t\tAxID: []*attrValInt{\n\t\t\t\t{Val: 754001152},\n\t\t\t\t{Val: 753999904},\n\t\t\t},\n\t\t},\n\t\tCatAx: f.drawPlotAreaCatAx(formatSet),\n\t\tValAx: f.drawPlotAreaValAx(formatSet),\n\t}\n}\n\n// drawPieChart provides function to draw the c:plotArea element for pie chart\n// by given format sets.\nfunc (f *File) drawPieChart(formatSet *formatChart) *cPlotArea {\n\treturn &cPlotArea{\n\t\tPieChart: &cCharts{\n\t\t\tVaryColors: &attrValBool{\n\t\t\t\tVal: true,\n\t\t\t},\n\t\t\tSer: f.drawChartSeries(formatSet),\n\t\t},\n\t}\n}\n\n// drawPie3DChart provides function to draw the c:plotArea element for 3D pie\n// chart by given format sets.\nfunc (f *File) drawPie3DChart(formatSet *formatChart) *cPlotArea {\n\treturn &cPlotArea{\n\t\tPie3DChart: &cCharts{\n\t\t\tVaryColors: &attrValBool{\n\t\t\t\tVal: true,\n\t\t\t},\n\t\t\tSer: f.drawChartSeries(formatSet),\n\t\t},\n\t}\n}\n\n// drawRadarChart provides function to draw the c:plotArea element for radar\n// chart by given format sets.\nfunc (f *File) drawRadarChart(formatSet *formatChart) *cPlotArea {\n\treturn &cPlotArea{\n\t\tRadarChart: &cCharts{\n\t\t\tRadarStyle: &attrValString{\n\t\t\t\tVal: \"marker\",\n\t\t\t},\n\t\t\tVaryColors: &attrValBool{\n\t\t\t\tVal: false,\n\t\t\t},\n\t\t\tSer:   f.drawChartSeries(formatSet),\n\t\t\tDLbls: f.drawChartDLbls(formatSet),\n\t\t\tAxID: []*attrValInt{\n\t\t\t\t{Val: 754001152},\n\t\t\t\t{Val: 753999904},\n\t\t\t},\n\t\t},\n\t\tCatAx: f.drawPlotAreaCatAx(formatSet),\n\t\tValAx: f.drawPlotAreaValAx(formatSet),\n\t}\n}\n\n// drawScatterChart provides function to draw the c:plotArea element for scatter\n// chart by given format sets.\nfunc (f *File) drawScatterChart(formatSet *formatChart) *cPlotArea {\n\treturn &cPlotArea{\n\t\tScatterChart: &cCharts{\n\t\t\tScatterStyle: &attrValString{\n\t\t\t\tVal: \"smoothMarker\", // line,lineMarker,marker,none,smooth,smoothMarker\n\t\t\t},\n\t\t\tVaryColors: &attrValBool{\n\t\t\t\tVal: false,\n\t\t\t},\n\t\t\tSer:   f.drawChartSeries(formatSet),\n\t\t\tDLbls: f.drawChartDLbls(formatSet),\n\t\t\tAxID: []*attrValInt{\n\t\t\t\t{Val: 754001152},\n\t\t\t\t{Val: 753999904},\n\t\t\t},\n\t\t},\n\t\tCatAx: f.drawPlotAreaCatAx(formatSet),\n\t\tValAx: f.drawPlotAreaValAx(formatSet),\n\t}\n}\n\n// drawChartSeries provides function to draw the c:ser element by given format\n// sets.\nfunc (f *File) drawChartSeries(formatSet *formatChart) *[]cSer {\n\tser := []cSer{}\n\tfor k := range formatSet.Series {\n\t\tser = append(ser, cSer{\n\t\t\tIDx:   &attrValInt{Val: k},\n\t\t\tOrder: &attrValInt{Val: k},\n\t\t\tTx: &cTx{\n\t\t\t\tStrRef: &cStrRef{\n\t\t\t\t\tF: formatSet.Series[k].Name,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSpPr:   f.drawChartSeriesSpPr(k, formatSet),\n\t\t\tMarker: f.drawChartSeriesMarker(k, formatSet),\n\t\t\tDPt:    f.drawChartSeriesDPt(k, formatSet),\n\t\t\tDLbls:  f.drawChartSeriesDLbls(formatSet),\n\t\t\tCat:    f.drawChartSeriesCat(formatSet.Series[k], formatSet),\n\t\t\tVal:    f.drawChartSeriesVal(formatSet.Series[k], formatSet),\n\t\t\tXVal:   f.drawChartSeriesXVal(formatSet.Series[k], formatSet),\n\t\t\tYVal:   f.drawChartSeriesYVal(formatSet.Series[k], formatSet),\n\t\t})\n\t}\n\treturn &ser\n}\n\n// drawChartSeriesSpPr provides function to draw the c:spPr element by given\n// format sets.\nfunc (f *File) drawChartSeriesSpPr(i int, formatSet *formatChart) *cSpPr {\n\tspPrScatter := &cSpPr{\n\t\tLn: &aLn{\n\t\t\tW:      25400,\n\t\t\tNoFill: \" \",\n\t\t},\n\t}\n\tspPrLine := &cSpPr{\n\t\tLn: &aLn{\n\t\t\tW:   25400,\n\t\t\tCap: \"rnd\", // rnd, sq, flat\n\t\t\tSolidFill: &aSolidFill{\n\t\t\t\tSchemeClr: &aSchemeClr{Val: \"accent\" + strconv.Itoa(i+1)},\n\t\t\t},\n\t\t},\n\t}\n\tchartSeriesSpPr := map[string]*cSpPr{Bar: nil, BarStacked: nil, BarPercentStacked: nil, Bar3DClustered: nil, Bar3DStacked: nil, Bar3DPercentStacked: nil, Col: nil, ColStacked: nil, ColPercentStacked: nil, Col3DClustered: nil, Col3D: nil, Col3DStacked: nil, Col3DPercentStacked: nil, Doughnut: nil, Line: spPrLine, Pie: nil, Pie3D: nil, Radar: nil, Scatter: spPrScatter}\n\treturn chartSeriesSpPr[formatSet.Type]\n}\n\n// drawChartSeriesDPt provides function to draw the c:dPt element by given data\n// index and format sets.\nfunc (f *File) drawChartSeriesDPt(i int, formatSet *formatChart) []*cDPt {\n\tdpt := []*cDPt{{\n\t\tIDx:      &attrValInt{Val: i},\n\t\tBubble3D: &attrValBool{Val: false},\n\t\tSpPr: &cSpPr{\n\t\t\tSolidFill: &aSolidFill{\n\t\t\t\tSchemeClr: &aSchemeClr{Val: \"accent\" + strconv.Itoa(i+1)},\n\t\t\t},\n\t\t\tLn: &aLn{\n\t\t\t\tW:   25400,\n\t\t\t\tCap: \"rnd\",\n\t\t\t\tSolidFill: &aSolidFill{\n\t\t\t\t\tSchemeClr: &aSchemeClr{Val: \"lt\" + strconv.Itoa(i+1)},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSp3D: &aSp3D{\n\t\t\t\tContourW: 25400,\n\t\t\t\tContourClr: &aContourClr{\n\t\t\t\t\tSchemeClr: &aSchemeClr{Val: \"lt\" + strconv.Itoa(i+1)},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}}\n\tchartSeriesDPt := map[string][]*cDPt{Bar: nil, BarStacked: nil, BarPercentStacked: nil, Bar3DClustered: nil, Bar3DStacked: nil, Bar3DPercentStacked: nil, Col: nil, ColStacked: nil, ColPercentStacked: nil, Col3DClustered: nil, Col3D: nil, Col3DStacked: nil, Col3DPercentStacked: nil, Doughnut: nil, Line: nil, Pie: dpt, Pie3D: dpt, Radar: nil, Scatter: nil}\n\treturn chartSeriesDPt[formatSet.Type]\n}\n\n// drawChartSeriesCat provides function to draw the c:cat element by given chart\n// series and format sets.\nfunc (f *File) drawChartSeriesCat(v formatChartSeries, formatSet *formatChart) *cCat {\n\tcat := &cCat{\n\t\tStrRef: &cStrRef{\n\t\t\tF: v.Categories,\n\t\t},\n\t}\n\tchartSeriesCat := map[string]*cCat{Bar: cat, BarStacked: cat, BarPercentStacked: cat, Bar3DClustered: cat, Bar3DStacked: cat, Bar3DPercentStacked: cat, Col: cat, ColStacked: cat, ColPercentStacked: cat, Col3DClustered: cat, Col3D: cat, Col3DStacked: cat, Col3DPercentStacked: cat, Doughnut: cat, Line: cat, Pie: cat, Pie3D: cat, Radar: cat, Scatter: nil}\n\treturn chartSeriesCat[formatSet.Type]\n}\n\n// drawChartSeriesVal provides function to draw the c:val element by given chart\n// series and format sets.\nfunc (f *File) drawChartSeriesVal(v formatChartSeries, formatSet *formatChart) *cVal {\n\tval := &cVal{\n\t\tNumRef: &cNumRef{\n\t\t\tF: v.Values,\n\t\t},\n\t}\n\tchartSeriesVal := map[string]*cVal{Bar: val, BarStacked: val, BarPercentStacked: val, Bar3DClustered: val, Bar3DStacked: val, Bar3DPercentStacked: val, Col: val, ColStacked: val, ColPercentStacked: val, Col3DClustered: val, Col3D: val, Col3DStacked: val, Col3DPercentStacked: val, Doughnut: val, Line: val, Pie: val, Pie3D: val, Radar: val, Scatter: nil}\n\treturn chartSeriesVal[formatSet.Type]\n}\n\n// drawChartSeriesMarker provides function to draw the c:marker element by given\n// data index and format sets.\nfunc (f *File) drawChartSeriesMarker(i int, formatSet *formatChart) *cMarker {\n\tmarker := &cMarker{\n\t\tSymbol: &attrValString{Val: \"circle\"},\n\t\tSize:   &attrValInt{Val: 5},\n\t\tSpPr: &cSpPr{\n\t\t\tSolidFill: &aSolidFill{\n\t\t\t\tSchemeClr: &aSchemeClr{\n\t\t\t\t\tVal: \"accent\" + strconv.Itoa(i+1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLn: &aLn{\n\t\t\t\tW: 9252,\n\t\t\t\tSolidFill: &aSolidFill{\n\t\t\t\t\tSchemeClr: &aSchemeClr{\n\t\t\t\t\t\tVal: \"accent\" + strconv.Itoa(i+1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tchartSeriesMarker := map[string]*cMarker{Bar: nil, BarStacked: nil, BarPercentStacked: nil, Bar3DClustered: nil, Bar3DStacked: nil, Bar3DPercentStacked: nil, Col: nil, ColStacked: nil, ColPercentStacked: nil, Col3DClustered: nil, Col3D: nil, Col3DStacked: nil, Col3DPercentStacked: nil, Doughnut: nil, Line: nil, Pie: nil, Pie3D: nil, Radar: nil, Scatter: marker}\n\treturn chartSeriesMarker[formatSet.Type]\n}\n\n// drawChartSeriesXVal provides function to draw the c:xVal element by given\n// chart series and format sets.\nfunc (f *File) drawChartSeriesXVal(v formatChartSeries, formatSet *formatChart) *cCat {\n\tcat := &cCat{\n\t\tStrRef: &cStrRef{\n\t\t\tF: v.Categories,\n\t\t},\n\t}\n\tchartSeriesXVal := map[string]*cCat{Bar: nil, BarStacked: nil, BarPercentStacked: nil, Bar3DClustered: nil, Bar3DStacked: nil, Bar3DPercentStacked: nil, Col: nil, ColStacked: nil, ColPercentStacked: nil, Col3DClustered: nil, Col3D: nil, Col3DStacked: nil, Col3DPercentStacked: nil, Doughnut: nil, Line: nil, Pie: nil, Pie3D: nil, Radar: nil, Scatter: cat}\n\treturn chartSeriesXVal[formatSet.Type]\n}\n\n// drawChartSeriesYVal provides function to draw the c:yVal element by given\n// chart series and format sets.\nfunc (f *File) drawChartSeriesYVal(v formatChartSeries, formatSet *formatChart) *cVal {\n\tval := &cVal{\n\t\tNumRef: &cNumRef{\n\t\t\tF: v.Values,\n\t\t},\n\t}\n\tchartSeriesYVal := map[string]*cVal{Bar: nil, BarStacked: nil, BarPercentStacked: nil, Bar3DClustered: nil, Bar3DStacked: nil, Bar3DPercentStacked: nil, Col: nil, ColStacked: nil, ColPercentStacked: nil, Col3DClustered: nil, Col3D: nil, Col3DStacked: nil, Col3DPercentStacked: nil, Doughnut: nil, Line: nil, Pie: nil, Pie3D: nil, Radar: nil, Scatter: val}\n\treturn chartSeriesYVal[formatSet.Type]\n}\n\n// drawChartDLbls provides function to draw the c:dLbls element by given format\n// sets.\nfunc (f *File) drawChartDLbls(formatSet *formatChart) *cDLbls {\n\treturn &cDLbls{\n\t\tShowLegendKey:   &attrValBool{Val: formatSet.Legend.ShowLegendKey},\n\t\tShowVal:         &attrValBool{Val: formatSet.Plotarea.ShowVal},\n\t\tShowCatName:     &attrValBool{Val: formatSet.Plotarea.ShowCatName},\n\t\tShowSerName:     &attrValBool{Val: formatSet.Plotarea.ShowSerName},\n\t\tShowBubbleSize:  &attrValBool{Val: formatSet.Plotarea.ShowBubbleSize},\n\t\tShowPercent:     &attrValBool{Val: formatSet.Plotarea.ShowPercent},\n\t\tShowLeaderLines: &attrValBool{Val: formatSet.Plotarea.ShowLeaderLines},\n\t}\n}\n\n// drawChartSeriesDLbls provides function to draw the c:dLbls element by given\n// format sets.\nfunc (f *File) drawChartSeriesDLbls(formatSet *formatChart) *cDLbls {\n\tdLbls := f.drawChartDLbls(formatSet)\n\tchartSeriesDLbls := map[string]*cDLbls{Bar: dLbls, BarStacked: dLbls, BarPercentStacked: dLbls, Bar3DClustered: dLbls, Bar3DStacked: dLbls, Bar3DPercentStacked: dLbls, Col: dLbls, ColStacked: dLbls, ColPercentStacked: dLbls, Col3DClustered: dLbls, Col3D: dLbls, Col3DStacked: dLbls, Col3DPercentStacked: dLbls, Doughnut: dLbls, Line: dLbls, Pie: dLbls, Pie3D: dLbls, Radar: dLbls, Scatter: nil}\n\treturn chartSeriesDLbls[formatSet.Type]\n}\n\n// drawPlotAreaCatAx provides function to draw the c:catAx element.\nfunc (f *File) drawPlotAreaCatAx(formatSet *formatChart) []*cAxs {\n\tmin := &attrValFloat{Val: formatSet.XAxis.Minimum}\n\tmax := &attrValFloat{Val: formatSet.XAxis.Maximum}\n\tif formatSet.XAxis.Minimum == 0 {\n\t\tmin = nil\n\t}\n\tif formatSet.XAxis.Maximum == 0 {\n\t\tmax = nil\n\t}\n\treturn []*cAxs{\n\t\t{\n\t\t\tAxID: &attrValInt{Val: 754001152},\n\t\t\tScaling: &cScaling{\n\t\t\t\tOrientation: &attrValString{Val: orientation[formatSet.XAxis.ReverseOrder]},\n\t\t\t\tMax:         max,\n\t\t\t\tMin:         min,\n\t\t\t},\n\t\t\tDelete: &attrValBool{Val: false},\n\t\t\tAxPos:  &attrValString{Val: catAxPos[formatSet.XAxis.ReverseOrder]},\n\t\t\tNumFmt: &cNumFmt{\n\t\t\t\tFormatCode:   \"General\",\n\t\t\t\tSourceLinked: true,\n\t\t\t},\n\t\t\tMajorTickMark: &attrValString{Val: \"none\"},\n\t\t\tMinorTickMark: &attrValString{Val: \"none\"},\n\t\t\tTickLblPos:    &attrValString{Val: \"nextTo\"},\n\t\t\tSpPr:          f.drawPlotAreaSpPr(),\n\t\t\tTxPr:          f.drawPlotAreaTxPr(),\n\t\t\tCrossAx:       &attrValInt{Val: 753999904},\n\t\t\tCrosses:       &attrValString{Val: \"autoZero\"},\n\t\t\tAuto:          &attrValBool{Val: true},\n\t\t\tLblAlgn:       &attrValString{Val: \"ctr\"},\n\t\t\tLblOffset:     &attrValInt{Val: 100},\n\t\t\tNoMultiLvlLbl: &attrValBool{Val: false},\n\t\t},\n\t}\n}\n\n// drawPlotAreaValAx provides function to draw the c:valAx element.\nfunc (f *File) drawPlotAreaValAx(formatSet *formatChart) []*cAxs {\n\tmin := &attrValFloat{Val: formatSet.YAxis.Minimum}\n\tmax := &attrValFloat{Val: formatSet.YAxis.Maximum}\n\tif formatSet.YAxis.Minimum == 0 {\n\t\tmin = nil\n\t}\n\tif formatSet.YAxis.Maximum == 0 {\n\t\tmax = nil\n\t}\n\treturn []*cAxs{\n\t\t{\n\t\t\tAxID: &attrValInt{Val: 753999904},\n\t\t\tScaling: &cScaling{\n\t\t\t\tOrientation: &attrValString{Val: orientation[formatSet.YAxis.ReverseOrder]},\n\t\t\t\tMax:         max,\n\t\t\t\tMin:         min,\n\t\t\t},\n\t\t\tDelete: &attrValBool{Val: false},\n\t\t\tAxPos:  &attrValString{Val: valAxPos[formatSet.YAxis.ReverseOrder]},\n\t\t\tNumFmt: &cNumFmt{\n\t\t\t\tFormatCode:   chartValAxNumFmtFormatCode[formatSet.Type],\n\t\t\t\tSourceLinked: true,\n\t\t\t},\n\t\t\tMajorTickMark: &attrValString{Val: \"none\"},\n\t\t\tMinorTickMark: &attrValString{Val: \"none\"},\n\t\t\tTickLblPos:    &attrValString{Val: \"nextTo\"},\n\t\t\tSpPr:          f.drawPlotAreaSpPr(),\n\t\t\tTxPr:          f.drawPlotAreaTxPr(),\n\t\t\tCrossAx:       &attrValInt{Val: 754001152},\n\t\t\tCrosses:       &attrValString{Val: \"autoZero\"},\n\t\t\tCrossBetween:  &attrValString{Val: \"between\"},\n\t\t},\n\t}\n}\n\n// drawPlotAreaSpPr provides function to draw the c:spPr element.\nfunc (f *File) drawPlotAreaSpPr() *cSpPr {\n\treturn &cSpPr{\n\t\tLn: &aLn{\n\t\t\tW:    9525,\n\t\t\tCap:  \"flat\",\n\t\t\tCmpd: \"sng\",\n\t\t\tAlgn: \"ctr\",\n\t\t\tSolidFill: &aSolidFill{\n\t\t\t\tSchemeClr: &aSchemeClr{\n\t\t\t\t\tVal:    \"tx1\",\n\t\t\t\t\tLumMod: &attrValInt{Val: 15000},\n\t\t\t\t\tLumOff: &attrValInt{Val: 85000},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\n// drawPlotAreaTxPr provides function to draw the c:txPr element.\nfunc (f *File) drawPlotAreaTxPr() *cTxPr {\n\treturn &cTxPr{\n\t\tBodyPr: aBodyPr{\n\t\t\tRot:              -60000000,\n\t\t\tSpcFirstLastPara: true,\n\t\t\tVertOverflow:     \"ellipsis\",\n\t\t\tVert:             \"horz\",\n\t\t\tWrap:             \"square\",\n\t\t\tAnchor:           \"ctr\",\n\t\t\tAnchorCtr:        true,\n\t\t},\n\t\tP: aP{\n\t\t\tPPr: &aPPr{\n\t\t\t\tDefRPr: aRPr{\n\t\t\t\t\tSz:       900,\n\t\t\t\t\tB:        false,\n\t\t\t\t\tI:        false,\n\t\t\t\t\tU:        \"none\",\n\t\t\t\t\tStrike:   \"noStrike\",\n\t\t\t\t\tKern:     1200,\n\t\t\t\t\tBaseline: 0,\n\t\t\t\t\tSolidFill: &aSolidFill{\n\t\t\t\t\t\tSchemeClr: &aSchemeClr{\n\t\t\t\t\t\t\tVal:    \"tx1\",\n\t\t\t\t\t\t\tLumMod: &attrValInt{Val: 15000},\n\t\t\t\t\t\t\tLumOff: &attrValInt{Val: 85000},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLatin: &aLatin{Typeface: \"+mn-lt\"},\n\t\t\t\t\tEa:    &aEa{Typeface: \"+mn-ea\"},\n\t\t\t\t\tCs:    &aCs{Typeface: \"+mn-cs\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEndParaRPr: &aEndParaRPr{Lang: \"en-US\"},\n\t\t},\n\t}\n}\n\n// drawingParser provides function to parse drawingXML. In order to solve the\n// problem that the label structure is changed after serialization and\n// deserialization, two different structures: decodeWsDr and encodeWsDr are\n// defined.\nfunc (f *File) drawingParser(drawingXML string, content *xlsxWsDr) int {\n\tcNvPrID := 1\n\t_, ok := f.XLSX[drawingXML]\n\tif ok { // Append Model\n\t\tdecodeWsDr := decodeWsDr{}\n\t\t_ = xml.Unmarshal([]byte(f.readXML(drawingXML)), &decodeWsDr)\n\t\tcontent.R = decodeWsDr.R\n\t\tcNvPrID = len(decodeWsDr.OneCellAnchor) + len(decodeWsDr.TwoCellAnchor) + 1\n\t\tfor _, v := range decodeWsDr.OneCellAnchor {\n\t\t\tcontent.OneCellAnchor = append(content.OneCellAnchor, &xdrCellAnchor{\n\t\t\t\tEditAs:       v.EditAs,\n\t\t\t\tGraphicFrame: v.Content,\n\t\t\t})\n\t\t}\n\t\tfor _, v := range decodeWsDr.TwoCellAnchor {\n\t\t\tcontent.TwoCellAnchor = append(content.TwoCellAnchor, &xdrCellAnchor{\n\t\t\t\tEditAs:       v.EditAs,\n\t\t\t\tGraphicFrame: v.Content,\n\t\t\t})\n\t\t}\n\t}\n\treturn cNvPrID\n}\n\n// addDrawingChart provides function to add chart graphic frame by given sheet,\n// drawingXML, cell, width, height, relationship index and format sets.\nfunc (f *File) addDrawingChart(sheet, drawingXML, cell string, width, height, rID int, formatSet *formatPicture) {\n\tcell = strings.ToUpper(cell)\n\tfromCol := string(strings.Map(letterOnlyMapF, cell))\n\tfromRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, cell))\n\trow := fromRow - 1\n\tcol := TitleToNumber(fromCol)\n\twidth = int(float64(width) * formatSet.XScale)\n\theight = int(float64(height) * formatSet.YScale)\n\tcolStart, rowStart, _, _, colEnd, rowEnd, x2, y2 := f.positionObjectPixels(sheet, col, row, formatSet.OffsetX, formatSet.OffsetY, width, height)\n\tcontent := xlsxWsDr{}\n\tcontent.A = NameSpaceDrawingML\n\tcontent.Xdr = NameSpaceDrawingMLSpreadSheet\n\tcNvPrID := f.drawingParser(drawingXML, &content)\n\ttwoCellAnchor := xdrCellAnchor{}\n\ttwoCellAnchor.EditAs = formatSet.Positioning\n\tfrom := xlsxFrom{}\n\tfrom.Col = colStart\n\tfrom.ColOff = formatSet.OffsetX * EMU\n\tfrom.Row = rowStart\n\tfrom.RowOff = formatSet.OffsetY * EMU\n\tto := xlsxTo{}\n\tto.Col = colEnd\n\tto.ColOff = x2 * EMU\n\tto.Row = rowEnd\n\tto.RowOff = y2 * EMU\n\ttwoCellAnchor.From = &from\n\ttwoCellAnchor.To = &to\n\n\tgraphicFrame := xlsxGraphicFrame{\n\t\tNvGraphicFramePr: xlsxNvGraphicFramePr{\n\t\t\tCNvPr: &xlsxCNvPr{\n\t\t\t\tID:   f.countCharts() + f.countMedia() + 1,\n\t\t\t\tName: \"Chart \" + strconv.Itoa(cNvPrID),\n\t\t\t},\n\t\t},\n\t\tGraphic: &xlsxGraphic{\n\t\t\tGraphicData: &xlsxGraphicData{\n\t\t\t\tURI: NameSpaceDrawingMLChart,\n\t\t\t\tChart: &xlsxChart{\n\t\t\t\t\tC:   NameSpaceDrawingMLChart,\n\t\t\t\t\tR:   SourceRelationship,\n\t\t\t\t\tRID: \"rId\" + strconv.Itoa(rID),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tgraphic, _ := xml.Marshal(graphicFrame)\n\ttwoCellAnchor.GraphicFrame = string(graphic)\n\ttwoCellAnchor.ClientData = &xdrClientData{\n\t\tFLocksWithSheet:  formatSet.FLocksWithSheet,\n\t\tFPrintsWithSheet: formatSet.FPrintsWithSheet,\n\t}\n\tcontent.TwoCellAnchor = append(content.TwoCellAnchor, &twoCellAnchor)\n\toutput, _ := xml.Marshal(content)\n\tf.saveFileList(drawingXML, output)\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/col.go",
    "content": "package excelize\n\nimport (\n\t\"bytes\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Define the default cell size and EMU unit of measurement.\nconst (\n\tdefaultColWidthPixels  float64 = 64\n\tdefaultRowHeightPixels float64 = 20\n\tEMU                    int     = 9525\n)\n\n// GetColVisible provides a function to get visible of a single column by given\n// worksheet name and column name. For example, get visible state of column D\n// in Sheet1:\n//\n//    xlsx.GetColVisible(\"Sheet1\", \"D\")\n//\nfunc (f *File) GetColVisible(sheet, column string) bool {\n\txlsx := f.workSheetReader(sheet)\n\tcol := TitleToNumber(strings.ToUpper(column)) + 1\n\tvisible := true\n\tif xlsx.Cols == nil {\n\t\treturn visible\n\t}\n\tfor c := range xlsx.Cols.Col {\n\t\tif xlsx.Cols.Col[c].Min <= col && col <= xlsx.Cols.Col[c].Max {\n\t\t\tvisible = !xlsx.Cols.Col[c].Hidden\n\t\t}\n\t}\n\treturn visible\n}\n\n// SetColVisible provides a function to set visible of a single column by given\n// worksheet name and column name. For example, hide column D in Sheet1:\n//\n//    xlsx.SetColVisible(\"Sheet1\", \"D\", false)\n//\nfunc (f *File) SetColVisible(sheet, column string, visible bool) {\n\txlsx := f.workSheetReader(sheet)\n\tc := TitleToNumber(strings.ToUpper(column)) + 1\n\tcol := xlsxCol{\n\t\tMin:         c,\n\t\tMax:         c,\n\t\tHidden:      !visible,\n\t\tCustomWidth: true,\n\t}\n\tif xlsx.Cols == nil {\n\t\tcols := xlsxCols{}\n\t\tcols.Col = append(cols.Col, col)\n\t\txlsx.Cols = &cols\n\t\treturn\n\t}\n\tfor v := range xlsx.Cols.Col {\n\t\tif xlsx.Cols.Col[v].Min <= c && c <= xlsx.Cols.Col[v].Max {\n\t\t\tcol = xlsx.Cols.Col[v]\n\t\t}\n\t}\n\tcol.Min = c\n\tcol.Max = c\n\tcol.Hidden = !visible\n\tcol.CustomWidth = true\n\txlsx.Cols.Col = append(xlsx.Cols.Col, col)\n}\n\n// GetColOutlineLevel provides a function to get outline level of a single\n// column by given worksheet name and column name. For example, get outline\n// level of column D in Sheet1:\n//\n//    xlsx.GetColOutlineLevel(\"Sheet1\", \"D\")\n//\nfunc (f *File) GetColOutlineLevel(sheet, column string) uint8 {\n\txlsx := f.workSheetReader(sheet)\n\tcol := TitleToNumber(strings.ToUpper(column)) + 1\n\tlevel := uint8(0)\n\tif xlsx.Cols == nil {\n\t\treturn level\n\t}\n\tfor c := range xlsx.Cols.Col {\n\t\tif xlsx.Cols.Col[c].Min <= col && col <= xlsx.Cols.Col[c].Max {\n\t\t\tlevel = xlsx.Cols.Col[c].OutlineLevel\n\t\t}\n\t}\n\treturn level\n}\n\n// SetColOutlineLevel provides a function to set outline level of a single\n// column by given worksheet name and column name. For example, set outline\n// level of column D in Sheet1 to 2:\n//\n//    xlsx.SetColOutlineLevel(\"Sheet1\", \"D\", 2)\n//\nfunc (f *File) SetColOutlineLevel(sheet, column string, level uint8) {\n\txlsx := f.workSheetReader(sheet)\n\tc := TitleToNumber(strings.ToUpper(column)) + 1\n\tcol := xlsxCol{\n\t\tMin:          c,\n\t\tMax:          c,\n\t\tOutlineLevel: level,\n\t\tCustomWidth:  true,\n\t}\n\tif xlsx.Cols == nil {\n\t\tcols := xlsxCols{}\n\t\tcols.Col = append(cols.Col, col)\n\t\txlsx.Cols = &cols\n\t\treturn\n\t}\n\tfor v := range xlsx.Cols.Col {\n\t\tif xlsx.Cols.Col[v].Min <= c && c <= xlsx.Cols.Col[v].Max {\n\t\t\tcol = xlsx.Cols.Col[v]\n\t\t}\n\t}\n\tcol.Min = c\n\tcol.Max = c\n\tcol.OutlineLevel = level\n\tcol.CustomWidth = true\n\txlsx.Cols.Col = append(xlsx.Cols.Col, col)\n}\n\n// SetColWidth provides function to set the width of a single column or multiple\n// columns. For example:\n//\n//    xlsx := excelize.NewFile()\n//    xlsx.SetColWidth(\"Sheet1\", \"A\", \"H\", 20)\n//    err := xlsx.Save()\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//\nfunc (f *File) SetColWidth(sheet, startcol, endcol string, width float64) {\n\tmin := TitleToNumber(strings.ToUpper(startcol)) + 1\n\tmax := TitleToNumber(strings.ToUpper(endcol)) + 1\n\tif min > max {\n\t\tmin, max = max, min\n\t}\n\txlsx := f.workSheetReader(sheet)\n\tcol := xlsxCol{\n\t\tMin:         min,\n\t\tMax:         max,\n\t\tWidth:       width,\n\t\tCustomWidth: true,\n\t}\n\tif xlsx.Cols != nil {\n\t\txlsx.Cols.Col = append(xlsx.Cols.Col, col)\n\t} else {\n\t\tcols := xlsxCols{}\n\t\tcols.Col = append(cols.Col, col)\n\t\txlsx.Cols = &cols\n\t}\n}\n\n// positionObjectPixels calculate the vertices that define the position of a\n// graphical object within the worksheet in pixels.\n//\n//          +------------+------------+\n//          |     A      |      B     |\n//    +-----+------------+------------+\n//    |     |(x1,y1)     |            |\n//    |  1  |(A1)._______|______      |\n//    |     |    |              |     |\n//    |     |    |              |     |\n//    +-----+----|    OBJECT    |-----+\n//    |     |    |              |     |\n//    |  2  |    |______________.     |\n//    |     |            |        (B2)|\n//    |     |            |     (x2,y2)|\n//    +-----+------------+------------+\n//\n// Example of an object that covers some of the area from cell A1 to B2.\n//\n// Based on the width and height of the object we need to calculate 8 vars:\n//\n//    colStart, rowStart, colEnd, rowEnd, x1, y1, x2, y2.\n//\n// We also calculate the absolute x and y position of the top left vertex of\n// the object. This is required for images.\n//\n// The width and height of the cells that the object occupies can be\n// variable and have to be taken into account.\n//\n// The values of col_start and row_start are passed in from the calling\n// function. The values of col_end and row_end are calculated by\n// subtracting the width and height of the object from the width and\n// height of the underlying cells.\n//\n//    colStart        # Col containing upper left corner of object.\n//    x1              # Distance to left side of object.\n//\n//    rowStart        # Row containing top left corner of object.\n//    y1              # Distance to top of object.\n//\n//    colEnd          # Col containing lower right corner of object.\n//    x2              # Distance to right side of object.\n//\n//    rowEnd          # Row containing bottom right corner of object.\n//    y2              # Distance to bottom of object.\n//\n//    width           # Width of object frame.\n//    height          # Height of object frame.\n//\n//    xAbs            # Absolute distance to left side of object.\n//    yAbs            # Absolute distance to top side of object.\n//\nfunc (f *File) positionObjectPixels(sheet string, colStart, rowStart, x1, y1, width, height int) (int, int, int, int, int, int, int, int) {\n\txAbs := 0\n\tyAbs := 0\n\n\t// Calculate the absolute x offset of the top-left vertex.\n\tfor colID := 1; colID <= colStart; colID++ {\n\t\txAbs += f.getColWidth(sheet, colID)\n\t}\n\txAbs += x1\n\n\t// Calculate the absolute y offset of the top-left vertex.\n\t// Store the column change to allow optimisations.\n\tfor rowID := 1; rowID <= rowStart; rowID++ {\n\t\tyAbs += f.getRowHeight(sheet, rowID)\n\t}\n\tyAbs += y1\n\n\t// Adjust start column for offsets that are greater than the col width.\n\tfor x1 >= f.getColWidth(sheet, colStart) {\n\t\tx1 -= f.getColWidth(sheet, colStart)\n\t\tcolStart++\n\t}\n\n\t// Adjust start row for offsets that are greater than the row height.\n\tfor y1 >= f.getRowHeight(sheet, rowStart) {\n\t\ty1 -= f.getRowHeight(sheet, rowStart)\n\t\trowStart++\n\t}\n\n\t// Initialise end cell to the same as the start cell.\n\tcolEnd := colStart\n\trowEnd := rowStart\n\n\twidth += x1\n\theight += y1\n\n\t// Subtract the underlying cell widths to find end cell of the object.\n\tfor width >= f.getColWidth(sheet, colEnd) {\n\t\tcolEnd++\n\t\twidth -= f.getColWidth(sheet, colEnd)\n\t}\n\n\t// Subtract the underlying cell heights to find end cell of the object.\n\tfor height >= f.getRowHeight(sheet, rowEnd) {\n\t\trowEnd++\n\t\theight -= f.getRowHeight(sheet, rowEnd)\n\t}\n\n\t// The end vertices are whatever is left from the width and height.\n\tx2 := width\n\ty2 := height\n\treturn colStart, rowStart, xAbs, yAbs, colEnd, rowEnd, x2, y2\n}\n\n// getColWidth provides function to get column width in pixels by given sheet\n// name and column index.\nfunc (f *File) getColWidth(sheet string, col int) int {\n\txlsx := f.workSheetReader(sheet)\n\tif xlsx.Cols != nil {\n\t\tvar width float64\n\t\tfor _, v := range xlsx.Cols.Col {\n\t\t\tif v.Min <= col && col <= v.Max {\n\t\t\t\twidth = v.Width\n\t\t\t}\n\t\t}\n\t\tif width != 0 {\n\t\t\treturn int(convertColWidthToPixels(width))\n\t\t}\n\t}\n\t// Optimisation for when the column widths haven't changed.\n\treturn int(defaultColWidthPixels)\n}\n\n// GetColWidth provides function to get column width by given worksheet name and\n// column index.\nfunc (f *File) GetColWidth(sheet, column string) float64 {\n\tcol := TitleToNumber(strings.ToUpper(column)) + 1\n\txlsx := f.workSheetReader(sheet)\n\tif xlsx.Cols != nil {\n\t\tvar width float64\n\t\tfor _, v := range xlsx.Cols.Col {\n\t\t\tif v.Min <= col && col <= v.Max {\n\t\t\t\twidth = v.Width\n\t\t\t}\n\t\t}\n\t\tif width != 0 {\n\t\t\treturn width\n\t\t}\n\t}\n\t// Optimisation for when the column widths haven't changed.\n\treturn defaultColWidthPixels\n}\n\n// InsertCol provides function to insert a new column before given column index.\n// For example, create a new column before column C in Sheet1:\n//\n//    xlsx.InsertCol(\"Sheet1\", \"C\")\n//\nfunc (f *File) InsertCol(sheet, column string) {\n\tcol := TitleToNumber(strings.ToUpper(column))\n\tf.adjustHelper(sheet, col, -1, 1)\n}\n\n// RemoveCol provides function to remove single column by given worksheet name\n// and column index. For example, remove column C in Sheet1:\n//\n//    xlsx.RemoveCol(\"Sheet1\", \"C\")\n//\nfunc (f *File) RemoveCol(sheet, column string) {\n\txlsx := f.workSheetReader(sheet)\n\tfor r := range xlsx.SheetData.Row {\n\t\tfor k, v := range xlsx.SheetData.Row[r].C {\n\t\t\taxis := v.R\n\t\t\tcol := string(strings.Map(letterOnlyMapF, axis))\n\t\t\tif col == column {\n\t\t\t\txlsx.SheetData.Row[r].C = append(xlsx.SheetData.Row[r].C[:k], xlsx.SheetData.Row[r].C[k+1:]...)\n\t\t\t}\n\t\t}\n\t}\n\tcol := TitleToNumber(strings.ToUpper(column))\n\tf.adjustHelper(sheet, col, -1, -1)\n}\n\n// Completion column element tags of XML in a sheet.\nfunc completeCol(xlsx *xlsxWorksheet, row, cell int) {\n\tbuffer := bytes.Buffer{}\n\tfor r := range xlsx.SheetData.Row {\n\t\tif len(xlsx.SheetData.Row[r].C) < cell {\n\t\t\tstart := len(xlsx.SheetData.Row[r].C)\n\t\t\tfor iii := start; iii < cell; iii++ {\n\t\t\t\tbuffer.WriteString(ToAlphaString(iii))\n\t\t\t\tbuffer.WriteString(strconv.Itoa(r + 1))\n\t\t\t\txlsx.SheetData.Row[r].C = append(xlsx.SheetData.Row[r].C, xlsxC{\n\t\t\t\t\tR: buffer.String(),\n\t\t\t\t})\n\t\t\t\tbuffer.Reset()\n\t\t\t}\n\t\t}\n\t}\n}\n\n// convertColWidthToPixels provieds function to convert the width of a cell from\n// user's units to pixels. Excel rounds the column width to the nearest pixel.\n// If the width hasn't been set by the user we use the default value. If the\n// column is hidden it has a value of zero.\nfunc convertColWidthToPixels(width float64) float64 {\n\tvar padding float64 = 5\n\tvar pixels float64\n\tvar maxDigitWidth float64 = 7\n\tif width == 0 {\n\t\treturn pixels\n\t}\n\tif width < 1 {\n\t\tpixels = (width * 12) + 0.5\n\t\treturn math.Ceil(pixels)\n\t}\n\tpixels = (width*maxDigitWidth + 0.5) + padding\n\treturn math.Ceil(pixels)\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/comment.go",
    "content": "package excelize\n\nimport (\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// parseFormatCommentsSet provides function to parse the format settings of the\n// comment with default value.\nfunc parseFormatCommentsSet(formatSet string) (*formatComment, error) {\n\tformat := formatComment{\n\t\tAuthor: \"Author:\",\n\t\tText:   \" \",\n\t}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// AddComment provides the method to add comment in a sheet by given worksheet\n// index, cell and format set (such as author and text). Note that the max\n// author length is 255 and the max text length is 32512. For example, add a\n// comment in Sheet1!$A$30:\n//\n//    xlsx.AddComment(\"Sheet1\", \"A30\", `{\"author\":\"Excelize: \",\"text\":\"This is a comment.\"}`)\n//\nfunc (f *File) AddComment(sheet, cell, format string) error {\n\tformatSet, err := parseFormatCommentsSet(format)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Read sheet data.\n\txlsx := f.workSheetReader(sheet)\n\tcommentID := f.countComments() + 1\n\tdrawingVML := \"xl/drawings/vmlDrawing\" + strconv.Itoa(commentID) + \".vml\"\n\tsheetRelationshipsComments := \"../comments\" + strconv.Itoa(commentID) + \".xml\"\n\tsheetRelationshipsDrawingVML := \"../drawings/vmlDrawing\" + strconv.Itoa(commentID) + \".vml\"\n\tif xlsx.LegacyDrawing != nil {\n\t\t// The worksheet already has a comments relationships, use the relationships drawing ../drawings/vmlDrawing%d.vml.\n\t\tsheetRelationshipsDrawingVML = f.getSheetRelationshipsTargetByID(sheet, xlsx.LegacyDrawing.RID)\n\t\tcommentID, _ = strconv.Atoi(strings.TrimSuffix(strings.TrimPrefix(sheetRelationshipsDrawingVML, \"../drawings/vmlDrawing\"), \".vml\"))\n\t\tdrawingVML = strings.Replace(sheetRelationshipsDrawingVML, \"..\", \"xl\", -1)\n\t} else {\n\t\t// Add first comment for given sheet.\n\t\trID := f.addSheetRelationships(sheet, SourceRelationshipDrawingVML, sheetRelationshipsDrawingVML, \"\")\n\t\tf.addSheetRelationships(sheet, SourceRelationshipComments, sheetRelationshipsComments, \"\")\n\t\tf.addSheetLegacyDrawing(sheet, rID)\n\t}\n\tcommentsXML := \"xl/comments\" + strconv.Itoa(commentID) + \".xml\"\n\tf.addComment(commentsXML, cell, formatSet)\n\tf.addDrawingVML(commentID, drawingVML, cell)\n\tf.addContentTypePart(commentID, \"comments\")\n\treturn err\n}\n\n// addDrawingVML provides function to create comment as\n// xl/drawings/vmlDrawing%d.vml by given commit ID and cell.\nfunc (f *File) addDrawingVML(commentID int, drawingVML, cell string) {\n\tcol := string(strings.Map(letterOnlyMapF, cell))\n\trow, _ := strconv.Atoi(strings.Map(intOnlyMapF, cell))\n\txAxis := row - 1\n\tyAxis := TitleToNumber(col)\n\tvml := vmlDrawing{\n\t\tXMLNSv:  \"urn:schemas-microsoft-com:vml\",\n\t\tXMLNSo:  \"urn:schemas-microsoft-com:office:office\",\n\t\tXMLNSx:  \"urn:schemas-microsoft-com:office:excel\",\n\t\tXMLNSmv: \"http://macVmlSchemaUri\",\n\t\tShapelayout: &xlsxShapelayout{\n\t\t\tExt: \"edit\",\n\t\t\tIDmap: &xlsxIDmap{\n\t\t\t\tExt:  \"edit\",\n\t\t\t\tData: commentID,\n\t\t\t},\n\t\t},\n\t\tShapetype: &xlsxShapetype{\n\t\t\tID:        \"_x0000_t202\",\n\t\t\tCoordsize: \"21600,21600\",\n\t\t\tSpt:       202,\n\t\t\tPath:      \"m0,0l0,21600,21600,21600,21600,0xe\",\n\t\t\tStroke: &xlsxStroke{\n\t\t\t\tJoinstyle: \"miter\",\n\t\t\t},\n\t\t\tVPath: &vPath{\n\t\t\t\tGradientshapeok: \"t\",\n\t\t\t\tConnecttype:     \"rect\",\n\t\t\t},\n\t\t},\n\t}\n\tsp := encodeShape{\n\t\tFill: &vFill{\n\t\t\tColor2: \"#fbfe82\",\n\t\t\tAngle:  -180,\n\t\t\tType:   \"gradient\",\n\t\t\tFill: &oFill{\n\t\t\t\tExt:  \"view\",\n\t\t\t\tType: \"gradientUnscaled\",\n\t\t\t},\n\t\t},\n\t\tShadow: &vShadow{\n\t\t\tOn:       \"t\",\n\t\t\tColor:    \"black\",\n\t\t\tObscured: \"t\",\n\t\t},\n\t\tPath: &vPath{\n\t\t\tConnecttype: \"none\",\n\t\t},\n\t\tTextbox: &vTextbox{\n\t\t\tStyle: \"mso-direction-alt:auto\",\n\t\t\tDiv: &xlsxDiv{\n\t\t\t\tStyle: \"text-align:left\",\n\t\t\t},\n\t\t},\n\t\tClientData: &xClientData{\n\t\t\tObjectType: \"Note\",\n\t\t\tAnchor:     \"3, 15, 8, 6, 4, 54, 13, 2\",\n\t\t\tAutoFill:   \"False\",\n\t\t\tRow:        xAxis,\n\t\t\tColumn:     yAxis,\n\t\t},\n\t}\n\ts, _ := xml.Marshal(sp)\n\tshape := xlsxShape{\n\t\tID:          \"_x0000_s1025\",\n\t\tType:        \"#_x0000_t202\",\n\t\tStyle:       \"position:absolute;73.5pt;width:108pt;height:59.25pt;z-index:1;visibility:hidden\",\n\t\tFillcolor:   \"#fbf6d6\",\n\t\tStrokecolor: \"#edeaa1\",\n\t\tVal:         string(s[13 : len(s)-14]),\n\t}\n\tc, ok := f.XLSX[drawingVML]\n\tif ok {\n\t\td := decodeVmlDrawing{}\n\t\t_ = xml.Unmarshal([]byte(c), &d)\n\t\tfor _, v := range d.Shape {\n\t\t\ts := xlsxShape{\n\t\t\t\tID:          \"_x0000_s1025\",\n\t\t\t\tType:        \"#_x0000_t202\",\n\t\t\t\tStyle:       \"position:absolute;73.5pt;width:108pt;height:59.25pt;z-index:1;visibility:hidden\",\n\t\t\t\tFillcolor:   \"#fbf6d6\",\n\t\t\t\tStrokecolor: \"#edeaa1\",\n\t\t\t\tVal:         v.Val,\n\t\t\t}\n\t\t\tvml.Shape = append(vml.Shape, s)\n\t\t}\n\t}\n\tvml.Shape = append(vml.Shape, shape)\n\tv, _ := xml.Marshal(vml)\n\tf.XLSX[drawingVML] = v\n}\n\n// addComment provides function to create chart as xl/comments%d.xml by given\n// cell and format sets.\nfunc (f *File) addComment(commentsXML, cell string, formatSet *formatComment) {\n\ta := formatSet.Author\n\tt := formatSet.Text\n\tif len(a) > 255 {\n\t\ta = a[0:255]\n\t}\n\tif len(t) > 32512 {\n\t\tt = t[0:32512]\n\t}\n\tcomments := xlsxComments{\n\t\tAuthors: []xlsxAuthor{\n\t\t\t{\n\t\t\t\tAuthor: formatSet.Author,\n\t\t\t},\n\t\t},\n\t}\n\tcmt := xlsxComment{\n\t\tRef:      cell,\n\t\tAuthorID: 0,\n\t\tText: xlsxText{\n\t\t\tR: []xlsxR{\n\t\t\t\t{\n\t\t\t\t\tRPr: &xlsxRPr{\n\t\t\t\t\t\tB:  \" \",\n\t\t\t\t\t\tSz: &attrValFloat{Val: 9},\n\t\t\t\t\t\tColor: &xlsxColor{\n\t\t\t\t\t\t\tIndexed: 81,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRFont:  &attrValString{Val: \"Calibri\"},\n\t\t\t\t\t\tFamily: &attrValInt{Val: 2},\n\t\t\t\t\t},\n\t\t\t\t\tT: a,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tRPr: &xlsxRPr{\n\t\t\t\t\t\tSz: &attrValFloat{Val: 9},\n\t\t\t\t\t\tColor: &xlsxColor{\n\t\t\t\t\t\t\tIndexed: 81,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRFont:  &attrValString{Val: \"Calibri\"},\n\t\t\t\t\t\tFamily: &attrValInt{Val: 2},\n\t\t\t\t\t},\n\t\t\t\t\tT: t,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tc, ok := f.XLSX[commentsXML]\n\tif ok {\n\t\td := xlsxComments{}\n\t\t_ = xml.Unmarshal([]byte(c), &d)\n\t\tcomments.CommentList.Comment = append(comments.CommentList.Comment, d.CommentList.Comment...)\n\t}\n\tcomments.CommentList.Comment = append(comments.CommentList.Comment, cmt)\n\tv, _ := xml.Marshal(comments)\n\tf.saveFileList(commentsXML, v)\n}\n\n// countComments provides function to get comments files count storage in the\n// folder xl.\nfunc (f *File) countComments() int {\n\tcount := 0\n\tfor k := range f.XLSX {\n\t\tif strings.Contains(k, \"xl/comments\") {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/date.go",
    "content": "package excelize\n\nimport (\n\t\"math\"\n\t\"time\"\n)\n\n// timeLocationUTC defined the UTC time location.\nvar timeLocationUTC, _ = time.LoadLocation(\"UTC\")\n\n// timeToUTCTime provides function to convert time to UTC time.\nfunc timeToUTCTime(t time.Time) time.Time {\n\treturn time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), timeLocationUTC)\n}\n\n// timeToExcelTime provides function to convert time to Excel time.\nfunc timeToExcelTime(t time.Time) float64 {\n\treturn float64(t.UnixNano())/8.64e13 + 25569.0\n}\n\n// shiftJulianToNoon provides function to process julian date to noon.\nfunc shiftJulianToNoon(julianDays, julianFraction float64) (float64, float64) {\n\tswitch {\n\tcase -0.5 < julianFraction && julianFraction < 0.5:\n\t\tjulianFraction += 0.5\n\tcase julianFraction >= 0.5:\n\t\tjulianDays++\n\t\tjulianFraction -= 0.5\n\tcase julianFraction <= -0.5:\n\t\tjulianDays--\n\t\tjulianFraction += 1.5\n\t}\n\treturn julianDays, julianFraction\n}\n\n// fractionOfADay provides function to return the integer values for hour,\n// minutes, seconds and nanoseconds that comprised a given fraction of a day.\n// values would round to 1 us.\nfunc fractionOfADay(fraction float64) (hours, minutes, seconds, nanoseconds int) {\n\n\tconst (\n\t\tc1us  = 1e3\n\t\tc1s   = 1e9\n\t\tc1day = 24 * 60 * 60 * c1s\n\t)\n\n\tfrac := int64(c1day*fraction + c1us/2)\n\tnanoseconds = int((frac%c1s)/c1us) * c1us\n\tfrac /= c1s\n\tseconds = int(frac % 60)\n\tfrac /= 60\n\tminutes = int(frac % 60)\n\thours = int(frac / 60)\n\treturn\n}\n\n// julianDateToGregorianTime provides function to convert julian date to\n// gregorian time.\nfunc julianDateToGregorianTime(part1, part2 float64) time.Time {\n\tpart1I, part1F := math.Modf(part1)\n\tpart2I, part2F := math.Modf(part2)\n\tjulianDays := part1I + part2I\n\tjulianFraction := part1F + part2F\n\tjulianDays, julianFraction = shiftJulianToNoon(julianDays, julianFraction)\n\tday, month, year := doTheFliegelAndVanFlandernAlgorithm(int(julianDays))\n\thours, minutes, seconds, nanoseconds := fractionOfADay(julianFraction)\n\treturn time.Date(year, time.Month(month), day, hours, minutes, seconds, nanoseconds, time.UTC)\n}\n\n// By this point generations of programmers have repeated the algorithm sent to\n// the editor of \"Communications of the ACM\" in 1968 (published in CACM, volume\n// 11, number 10, October 1968, p.657). None of those programmers seems to have\n// found it necessary to explain the constants or variable names set out by\n// Henry F. Fliegel and Thomas C. Van Flandern.  Maybe one day I'll buy that\n// jounal and expand an explanation here - that day is not today.\nfunc doTheFliegelAndVanFlandernAlgorithm(jd int) (day, month, year int) {\n\tl := jd + 68569\n\tn := (4 * l) / 146097\n\tl = l - (146097*n+3)/4\n\ti := (4000 * (l + 1)) / 1461001\n\tl = l - (1461*i)/4 + 31\n\tj := (80 * l) / 2447\n\td := l - (2447*j)/80\n\tl = j / 11\n\tm := j + 2 - (12 * l)\n\ty := 100*(n-49) + i + l\n\treturn d, m, y\n}\n\n// timeFromExcelTime provides function to convert an excelTime representation\n// (stored as a floating point number) to a time.Time.\nfunc timeFromExcelTime(excelTime float64, date1904 bool) time.Time {\n\tvar date time.Time\n\tvar intPart = int64(excelTime)\n\t// Excel uses Julian dates prior to March 1st 1900, and Gregorian\n\t// thereafter.\n\tif intPart <= 61 {\n\t\tconst OFFSET1900 = 15018.0\n\t\tconst OFFSET1904 = 16480.0\n\t\tconst MJD0 float64 = 2400000.5\n\t\tvar date time.Time\n\t\tif date1904 {\n\t\t\tdate = julianDateToGregorianTime(MJD0, excelTime+OFFSET1904)\n\t\t} else {\n\t\t\tdate = julianDateToGregorianTime(MJD0, excelTime+OFFSET1900)\n\t\t}\n\t\treturn date\n\t}\n\tvar floatPart = excelTime - float64(intPart)\n\tvar dayNanoSeconds float64 = 24 * 60 * 60 * 1000 * 1000 * 1000\n\tif date1904 {\n\t\tdate = time.Date(1904, 1, 1, 0, 0, 0, 0, time.UTC)\n\t} else {\n\t\tdate = time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC)\n\t}\n\tdurationDays := time.Duration(intPart) * time.Hour * 24\n\tdurationPart := time.Duration(dayNanoSeconds * floatPart)\n\treturn date.Add(durationDays).Add(durationPart)\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/excelize.go",
    "content": "package excelize\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// File define a populated XLSX file struct.\ntype File struct {\n\tchecked       map[string]bool\n\tsheetMap      map[string]string\n\tContentTypes  *xlsxTypes\n\tPath          string\n\tSharedStrings *xlsxSST\n\tSheet         map[string]*xlsxWorksheet\n\tSheetCount    int\n\tStyles        *xlsxStyleSheet\n\tWorkBook      *xlsxWorkbook\n\tWorkBookRels  *xlsxWorkbookRels\n\tXLSX          map[string][]byte\n}\n\n// OpenFile take the name of an XLSX file and returns a populated XLSX file\n// struct for it.\nfunc OpenFile(filename string) (*File, error) {\n\tfile, err := os.Open(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\tf, err := OpenReader(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tf.Path = filename\n\treturn f, nil\n}\n\n// OpenReader take an io.Reader and return a populated XLSX file.\nfunc OpenReader(r io.Reader) (*File, error) {\n\tb, err := ioutil.ReadAll(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tzr, err := zip.NewReader(bytes.NewReader(b), int64(len(b)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfile, sheetCount, err := ReadZipReader(zr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tf := &File{\n\t\tchecked:    make(map[string]bool),\n\t\tSheet:      make(map[string]*xlsxWorksheet),\n\t\tSheetCount: sheetCount,\n\t\tXLSX:       file,\n\t}\n\tf.sheetMap = f.getSheetMap()\n\tf.Styles = f.stylesReader()\n\treturn f, nil\n}\n\n// setDefaultTimeStyle provides function to set default numbers format for\n// time.Time type cell value by given worksheet name, cell coordinates and\n// number format code.\nfunc (f *File) setDefaultTimeStyle(sheet, axis string, format int) {\n\tif f.GetCellStyle(sheet, axis) == 0 {\n\t\tstyle, _ := f.NewStyle(`{\"number_format\": ` + strconv.Itoa(format) + `}`)\n\t\tf.SetCellStyle(sheet, axis, axis, style)\n\t}\n}\n\n// workSheetReader provides function to get the pointer to the structure after\n// deserialization by given worksheet name.\nfunc (f *File) workSheetReader(sheet string) *xlsxWorksheet {\n\tname, ok := f.sheetMap[trimSheetName(sheet)]\n\tif !ok {\n\t\tname = \"xl/worksheets/\" + strings.ToLower(sheet) + \".xml\"\n\t}\n\tif f.Sheet[name] == nil {\n\t\tvar xlsx xlsxWorksheet\n\t\t_ = xml.Unmarshal(f.readXML(name), &xlsx)\n\t\tif f.checked == nil {\n\t\t\tf.checked = make(map[string]bool)\n\t\t}\n\t\tok := f.checked[name]\n\t\tif !ok {\n\t\t\tcheckSheet(&xlsx)\n\t\t\tcheckRow(&xlsx)\n\t\t\tf.checked[name] = true\n\t\t}\n\t\tf.Sheet[name] = &xlsx\n\t}\n\treturn f.Sheet[name]\n}\n\n// checkSheet provides function to fill each row element and make that is\n// continuous in a worksheet of XML.\nfunc checkSheet(xlsx *xlsxWorksheet) {\n\trow := len(xlsx.SheetData.Row)\n\tif row >= 1 {\n\t\tlastRow := xlsx.SheetData.Row[row-1].R\n\t\tif lastRow >= row {\n\t\t\trow = lastRow\n\t\t}\n\t}\n\tsheetData := xlsxSheetData{}\n\texistsRows := map[int]int{}\n\tfor k := range xlsx.SheetData.Row {\n\t\texistsRows[xlsx.SheetData.Row[k].R] = k\n\t}\n\tfor i := 0; i < row; i++ {\n\t\t_, ok := existsRows[i+1]\n\t\tif ok {\n\t\t\tsheetData.Row = append(sheetData.Row, xlsx.SheetData.Row[existsRows[i+1]])\n\t\t} else {\n\t\t\tsheetData.Row = append(sheetData.Row, xlsxRow{\n\t\t\t\tR: i + 1,\n\t\t\t})\n\t\t}\n\t}\n\txlsx.SheetData = sheetData\n}\n\n// replaceWorkSheetsRelationshipsNameSpaceBytes provides function to replace\n// xl/worksheets/sheet%d.xml XML tags to self-closing for compatible Microsoft\n// Office Excel 2007.\nfunc replaceWorkSheetsRelationshipsNameSpaceBytes(workbookMarshal []byte) []byte {\n\tvar oldXmlns = []byte(`<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">`)\n\tvar newXmlns = []byte(`<worksheet xr:uid=\"{00000000-0001-0000-0000-000000000000}\" xmlns:xr3=\"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3\" xmlns:xr2=\"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2\" xmlns:xr=\"http://schemas.microsoft.com/office/spreadsheetml/2014/revision\" xmlns:x14=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\" mc:Ignorable=\"x14ac xr xr2 xr3\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:mx=\"http://schemas.microsoft.com/office/mac/excel/2008/main\" xmlns:mv=\"urn:schemas-microsoft-com:mac:vml\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">`)\n\tworkbookMarshal = bytes.Replace(workbookMarshal, oldXmlns, newXmlns, -1)\n\treturn workbookMarshal\n}\n\n// UpdateLinkedValue fix linked values within a spreadsheet are not updating in\n// Office Excel 2007 and 2010. This function will be remove value tag when met a\n// cell have a linked value. Reference\n// https://social.technet.microsoft.com/Forums/office/en-US/e16bae1f-6a2c-4325-8013-e989a3479066/excel-2010-linked-cells-not-updating?forum=excel\n//\n// Notice: after open XLSX file Excel will be update linked value and generate\n// new value and will prompt save file or not.\n//\n// For example:\n//\n//    <row r=\"19\" spans=\"2:2\">\n//        <c r=\"B19\">\n//            <f>SUM(Sheet2!D2,Sheet2!D11)</f>\n//            <v>100</v>\n//         </c>\n//    </row>\n//\n// to\n//\n//    <row r=\"19\" spans=\"2:2\">\n//        <c r=\"B19\">\n//            <f>SUM(Sheet2!D2,Sheet2!D11)</f>\n//        </c>\n//    </row>\n//\nfunc (f *File) UpdateLinkedValue() {\n\tfor _, name := range f.GetSheetMap() {\n\t\txlsx := f.workSheetReader(name)\n\t\tfor indexR := range xlsx.SheetData.Row {\n\t\t\tfor indexC, col := range xlsx.SheetData.Row[indexR].C {\n\t\t\t\tif col.F != nil && col.V != \"\" {\n\t\t\t\t\txlsx.SheetData.Row[indexR].C[indexC].V = \"\"\n\t\t\t\t\txlsx.SheetData.Row[indexR].C[indexC].T = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// adjustHelper provides function to adjust rows and columns dimensions,\n// hyperlinks, merged cells and auto filter when inserting or deleting rows or\n// columns.\n//\n// sheet: Worksheet name that we're editing\n// column: Index number of the column we're inserting/deleting before\n// row: Index number of the row we're inserting/deleting before\n// offset: Number of rows/column to insert/delete negative values indicate deletion\n//\n// TODO: adjustPageBreaks, adjustComments, adjustDataValidations, adjustProtectedCells\n//\nfunc (f *File) adjustHelper(sheet string, column, row, offset int) {\n\txlsx := f.workSheetReader(sheet)\n\tf.adjustRowDimensions(xlsx, row, offset)\n\tf.adjustColDimensions(xlsx, column, offset)\n\tf.adjustHyperlinks(sheet, column, row, offset)\n\tf.adjustMergeCells(xlsx, column, row, offset)\n\tf.adjustAutoFilter(xlsx, column, row, offset)\n\tcheckSheet(xlsx)\n\tcheckRow(xlsx)\n}\n\n// adjustColDimensions provides function to update column dimensions when\n// inserting or deleting rows or columns.\nfunc (f *File) adjustColDimensions(xlsx *xlsxWorksheet, column, offset int) {\n\tfor i, r := range xlsx.SheetData.Row {\n\t\tfor k, v := range r.C {\n\t\t\taxis := v.R\n\t\t\tcol := string(strings.Map(letterOnlyMapF, axis))\n\t\t\trow, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\t\t\tyAxis := TitleToNumber(col)\n\t\t\tif yAxis >= column && column != -1 {\n\t\t\t\txlsx.SheetData.Row[i].C[k].R = ToAlphaString(yAxis+offset) + strconv.Itoa(row)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// adjustRowDimensions provides function to update row dimensions when inserting\n// or deleting rows or columns.\nfunc (f *File) adjustRowDimensions(xlsx *xlsxWorksheet, rowIndex, offset int) {\n\tif rowIndex == -1 {\n\t\treturn\n\t}\n\tfor i, r := range xlsx.SheetData.Row {\n\t\tif r.R >= rowIndex {\n\t\t\txlsx.SheetData.Row[i].R += offset\n\t\t\tfor k, v := range xlsx.SheetData.Row[i].C {\n\t\t\t\taxis := v.R\n\t\t\t\tcol := string(strings.Map(letterOnlyMapF, axis))\n\t\t\t\trow, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\t\t\t\txAxis := row + offset\n\t\t\t\txlsx.SheetData.Row[i].C[k].R = col + strconv.Itoa(xAxis)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// adjustHyperlinks provides function to update hyperlinks when inserting or\n// deleting rows or columns.\nfunc (f *File) adjustHyperlinks(sheet string, column, rowIndex, offset int) {\n\txlsx := f.workSheetReader(sheet)\n\n\t// order is important\n\tif xlsx.Hyperlinks != nil && offset < 0 {\n\t\tfor i, v := range xlsx.Hyperlinks.Hyperlink {\n\t\t\taxis := v.Ref\n\t\t\tcol := string(strings.Map(letterOnlyMapF, axis))\n\t\t\trow, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\t\t\tyAxis := TitleToNumber(col)\n\t\t\tif row == rowIndex || yAxis == column {\n\t\t\t\tf.deleteSheetRelationships(sheet, v.RID)\n\t\t\t\tif len(xlsx.Hyperlinks.Hyperlink) > 1 {\n\t\t\t\t\txlsx.Hyperlinks.Hyperlink = append(xlsx.Hyperlinks.Hyperlink[:i], xlsx.Hyperlinks.Hyperlink[i+1:]...)\n\t\t\t\t} else {\n\t\t\t\t\txlsx.Hyperlinks = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif xlsx.Hyperlinks != nil {\n\t\tfor i, v := range xlsx.Hyperlinks.Hyperlink {\n\t\t\taxis := v.Ref\n\t\t\tcol := string(strings.Map(letterOnlyMapF, axis))\n\t\t\trow, _ := strconv.Atoi(strings.Map(intOnlyMapF, axis))\n\t\t\txAxis := row + offset\n\t\t\tyAxis := TitleToNumber(col)\n\t\t\tif rowIndex != -1 && row >= rowIndex {\n\t\t\t\txlsx.Hyperlinks.Hyperlink[i].Ref = col + strconv.Itoa(xAxis)\n\t\t\t}\n\t\t\tif column != -1 && yAxis >= column {\n\t\t\t\txlsx.Hyperlinks.Hyperlink[i].Ref = ToAlphaString(yAxis+offset) + strconv.Itoa(row)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// adjustMergeCellsHelper provides function to update merged cells when inserting or\n// deleting rows or columns.\nfunc (f *File) adjustMergeCellsHelper(xlsx *xlsxWorksheet, column, rowIndex, offset int) {\n\tif xlsx.MergeCells != nil {\n\t\tfor k, v := range xlsx.MergeCells.Cells {\n\t\t\tbeg := strings.Split(v.Ref, \":\")[0]\n\t\t\tend := strings.Split(v.Ref, \":\")[1]\n\n\t\t\tbegcol := string(strings.Map(letterOnlyMapF, beg))\n\t\t\tbegrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, beg))\n\t\t\tbegxAxis := begrow + offset\n\t\t\tbegyAxis := TitleToNumber(begcol)\n\n\t\t\tendcol := string(strings.Map(letterOnlyMapF, end))\n\t\t\tendrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, end))\n\t\t\tendxAxis := endrow + offset\n\t\t\tendyAxis := TitleToNumber(endcol)\n\n\t\t\tif rowIndex != -1 {\n\t\t\t\tif begrow > 1 && begrow >= rowIndex {\n\t\t\t\t\tbeg = begcol + strconv.Itoa(begxAxis)\n\t\t\t\t}\n\t\t\t\tif endrow > 1 && endrow >= rowIndex {\n\t\t\t\t\tend = endcol + strconv.Itoa(endxAxis)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif column != -1 {\n\t\t\t\tif begyAxis >= column {\n\t\t\t\t\tbeg = ToAlphaString(begyAxis+offset) + strconv.Itoa(endrow)\n\t\t\t\t}\n\t\t\t\tif endyAxis >= column {\n\t\t\t\t\tend = ToAlphaString(endyAxis+offset) + strconv.Itoa(endrow)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\txlsx.MergeCells.Cells[k].Ref = beg + \":\" + end\n\t\t}\n\t}\n}\n\n// adjustMergeCells provides function to update merged cells when inserting or\n// deleting rows or columns.\nfunc (f *File) adjustMergeCells(xlsx *xlsxWorksheet, column, rowIndex, offset int) {\n\tf.adjustMergeCellsHelper(xlsx, column, rowIndex, offset)\n\n\tif xlsx.MergeCells != nil && offset < 0 {\n\t\tfor k, v := range xlsx.MergeCells.Cells {\n\t\t\tbeg := strings.Split(v.Ref, \":\")[0]\n\t\t\tend := strings.Split(v.Ref, \":\")[1]\n\t\t\tif beg == end {\n\t\t\t\txlsx.MergeCells.Count += offset\n\t\t\t\tif len(xlsx.MergeCells.Cells) > 1 {\n\t\t\t\t\txlsx.MergeCells.Cells = append(xlsx.MergeCells.Cells[:k], xlsx.MergeCells.Cells[k+1:]...)\n\t\t\t\t} else {\n\t\t\t\t\txlsx.MergeCells = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// adjustAutoFilter provides function to update the auto filter when inserting\n// or deleting rows or columns.\nfunc (f *File) adjustAutoFilter(xlsx *xlsxWorksheet, column, rowIndex, offset int) {\n\tf.adjustAutoFilterHelper(xlsx, column, rowIndex, offset)\n\n\tif xlsx.AutoFilter != nil {\n\t\tbeg := strings.Split(xlsx.AutoFilter.Ref, \":\")[0]\n\t\tend := strings.Split(xlsx.AutoFilter.Ref, \":\")[1]\n\n\t\tbegcol := string(strings.Map(letterOnlyMapF, beg))\n\t\tbegrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, beg))\n\t\tbegxAxis := begrow + offset\n\n\t\tendcol := string(strings.Map(letterOnlyMapF, end))\n\t\tendrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, end))\n\t\tendxAxis := endrow + offset\n\t\tendyAxis := TitleToNumber(endcol)\n\n\t\tif rowIndex != -1 {\n\t\t\tif begrow >= rowIndex {\n\t\t\t\tbeg = begcol + strconv.Itoa(begxAxis)\n\t\t\t}\n\t\t\tif endrow >= rowIndex {\n\t\t\t\tend = endcol + strconv.Itoa(endxAxis)\n\t\t\t}\n\t\t}\n\n\t\tif column != -1 && endyAxis >= column {\n\t\t\tend = ToAlphaString(endyAxis+offset) + strconv.Itoa(endrow)\n\t\t}\n\t\txlsx.AutoFilter.Ref = beg + \":\" + end\n\t}\n}\n\n// adjustAutoFilterHelper provides function to update the auto filter when\n// inserting or deleting rows or columns.\nfunc (f *File) adjustAutoFilterHelper(xlsx *xlsxWorksheet, column, rowIndex, offset int) {\n\tif xlsx.AutoFilter != nil {\n\t\tbeg := strings.Split(xlsx.AutoFilter.Ref, \":\")[0]\n\t\tend := strings.Split(xlsx.AutoFilter.Ref, \":\")[1]\n\n\t\tbegcol := string(strings.Map(letterOnlyMapF, beg))\n\t\tbegrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, beg))\n\t\tbegyAxis := TitleToNumber(begcol)\n\n\t\tendcol := string(strings.Map(letterOnlyMapF, end))\n\t\tendyAxis := TitleToNumber(endcol)\n\t\tendrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, end))\n\n\t\tif (begrow == rowIndex && offset < 0) || (column == begyAxis && column == endyAxis) {\n\t\t\txlsx.AutoFilter = nil\n\t\t\tfor i, r := range xlsx.SheetData.Row {\n\t\t\t\tif begrow < r.R && r.R <= endrow {\n\t\t\t\t\txlsx.SheetData.Row[i].Hidden = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/file.go",
    "content": "package excelize\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// NewFile provides function to create new file by default template. For\n// example:\n//\n//    xlsx := NewFile()\n//\nfunc NewFile() *File {\n\tfile := make(map[string][]byte)\n\tfile[\"_rels/.rels\"] = []byte(XMLHeader + templateRels)\n\tfile[\"docProps/app.xml\"] = []byte(XMLHeader + templateDocpropsApp)\n\tfile[\"docProps/core.xml\"] = []byte(XMLHeader + templateDocpropsCore)\n\tfile[\"xl/_rels/workbook.xml.rels\"] = []byte(XMLHeader + templateWorkbookRels)\n\tfile[\"xl/theme/theme1.xml\"] = []byte(XMLHeader + templateTheme)\n\tfile[\"xl/worksheets/sheet1.xml\"] = []byte(XMLHeader + templateSheet)\n\tfile[\"xl/styles.xml\"] = []byte(XMLHeader + templateStyles)\n\tfile[\"xl/workbook.xml\"] = []byte(XMLHeader + templateWorkbook)\n\tfile[\"[Content_Types].xml\"] = []byte(XMLHeader + templateContentTypes)\n\tf := &File{\n\t\tsheetMap:   make(map[string]string),\n\t\tSheet:      make(map[string]*xlsxWorksheet),\n\t\tSheetCount: 1,\n\t\tXLSX:       file,\n\t}\n\tf.ContentTypes = f.contentTypesReader()\n\tf.Styles = f.stylesReader()\n\tf.WorkBook = f.workbookReader()\n\tf.WorkBookRels = f.workbookRelsReader()\n\tf.Sheet[\"xl/worksheets/sheet1.xml\"] = f.workSheetReader(\"Sheet1\")\n\tf.sheetMap[\"Sheet1\"] = \"xl/worksheets/sheet1.xml\"\n\treturn f\n}\n\n// Save provides function to override the xlsx file with origin path.\nfunc (f *File) Save() error {\n\tif f.Path == \"\" {\n\t\treturn fmt.Errorf(\"No path defined for file, consider File.WriteTo or File.Write\")\n\t}\n\treturn f.SaveAs(f.Path)\n}\n\n// SaveAs provides function to create or update to an xlsx file at the provided\n// path.\nfunc (f *File) SaveAs(name string) error {\n\tfile, err := os.OpenFile(name, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0666)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer file.Close()\n\treturn f.Write(file)\n}\n\n// Write provides function to write to an io.Writer.\nfunc (f *File) Write(w io.Writer) error {\n\tbuf := new(bytes.Buffer)\n\tzw := zip.NewWriter(buf)\n\tf.contentTypesWriter()\n\tf.workbookWriter()\n\tf.workbookRelsWriter()\n\tf.worksheetWriter()\n\tf.styleSheetWriter()\n\tfor path, content := range f.XLSX {\n\t\tfi, err := zw.Create(path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fi.Write(content)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\terr := zw.Close()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif _, err := buf.WriteTo(w); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/lib.go",
    "content": "package excelize\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"encoding/gob\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"unicode\"\n)\n\n// ReadZipReader can be used to read an XLSX in memory without touching the\n// filesystem.\nfunc ReadZipReader(r *zip.Reader) (map[string][]byte, int, error) {\n\tfileList := make(map[string][]byte)\n\tworksheets := 0\n\tfor _, v := range r.File {\n\t\tfileList[v.Name] = readFile(v)\n\t\tif len(v.Name) > 18 {\n\t\t\tif v.Name[0:19] == \"xl/worksheets/sheet\" {\n\t\t\t\tworksheets++\n\t\t\t}\n\t\t}\n\t}\n\treturn fileList, worksheets, nil\n}\n\n// readXML provides function to read XML content as string.\nfunc (f *File) readXML(name string) []byte {\n\tif content, ok := f.XLSX[name]; ok {\n\t\treturn content\n\t}\n\treturn []byte{}\n}\n\n// saveFileList provides function to update given file content in file list of\n// XLSX.\nfunc (f *File) saveFileList(name string, content []byte) {\n\tnewContent := make([]byte, 0, len(XMLHeader)+len(content))\n\tnewContent = append(newContent, []byte(XMLHeader)...)\n\tnewContent = append(newContent, content...)\n\tf.XLSX[name] = newContent\n}\n\n// Read file content as string in a archive file.\nfunc readFile(file *zip.File) []byte {\n\trc, err := file.Open()\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tbuff := bytes.NewBuffer(nil)\n\t_, _ = io.Copy(buff, rc)\n\trc.Close()\n\treturn buff.Bytes()\n}\n\n// ToAlphaString provides function to convert integer to Excel sheet column\n// title. For example convert 36 to column title AK:\n//\n//     excelize.ToAlphaString(36)\n//\nfunc ToAlphaString(value int) string {\n\tif value < 0 {\n\t\treturn \"\"\n\t}\n\tvar ans string\n\ti := value + 1\n\tfor i > 0 {\n\t\tans = string((i-1)%26+65) + ans\n\t\ti = (i - 1) / 26\n\t}\n\treturn ans\n}\n\n// TitleToNumber provides function to convert Excel sheet column title to int\n// (this function doesn't do value check currently). For example convert AK\n// and ak to column title 36:\n//\n//    excelize.TitleToNumber(\"AK\")\n//    excelize.TitleToNumber(\"ak\")\n//\nfunc TitleToNumber(s string) int {\n\tweight := 0.0\n\tsum := 0\n\tfor i := len(s) - 1; i >= 0; i-- {\n\t\tch := int(s[i])\n\t\tif int(s[i]) >= int('a') && int(s[i]) <= int('z') {\n\t\t\tch = int(s[i]) - 32\n\t\t}\n\t\tsum = sum + (ch-int('A')+1)*int(math.Pow(26, weight))\n\t\tweight++\n\t}\n\treturn sum - 1\n}\n\n// letterOnlyMapF is used in conjunction with strings.Map to return only the\n// characters A-Z and a-z in a string.\nfunc letterOnlyMapF(rune rune) rune {\n\tswitch {\n\tcase 'A' <= rune && rune <= 'Z':\n\t\treturn rune\n\tcase 'a' <= rune && rune <= 'z':\n\t\treturn rune - 32\n\t}\n\treturn -1\n}\n\n// intOnlyMapF is used in conjunction with strings.Map to return only the\n// numeric portions of a string.\nfunc intOnlyMapF(rune rune) rune {\n\tif rune >= 48 && rune < 58 {\n\t\treturn rune\n\t}\n\treturn -1\n}\n\n// deepCopy provides method to creates a deep copy of whatever is passed to it\n// and returns the copy in an interface. The returned value will need to be\n// asserted to the correct type.\nfunc deepCopy(dst, src interface{}) error {\n\tvar buf bytes.Buffer\n\tif err := gob.NewEncoder(&buf).Encode(src); err != nil {\n\t\treturn err\n\t}\n\treturn gob.NewDecoder(bytes.NewBuffer(buf.Bytes())).Decode(dst)\n}\n\n// boolPtr returns a pointer to a bool with the given value.\nfunc boolPtr(b bool) *bool { return &b }\n\n// defaultTrue returns true if b is nil, or the pointed value.\nfunc defaultTrue(b *bool) bool {\n\tif b == nil {\n\t\treturn true\n\t}\n\treturn *b\n}\n\n// axisLowerOrEqualThan returns true if axis1 <= axis2\n// axis1/axis2 can be either a column or a row axis, e.g. \"A\", \"AAE\", \"42\", \"1\", etc.\n//\n// For instance, the following comparisons are all true:\n//\n// \"A\" <= \"B\"\n// \"A\" <= \"AA\"\n// \"B\" <= \"AA\"\n// \"BC\" <= \"ABCD\" (in a XLSX sheet, the BC col comes before the ABCD col)\n// \"1\" <= \"2\"\n// \"2\" <= \"11\" (in a XLSX sheet, the row 2 comes before the row 11)\n// and so on\nfunc axisLowerOrEqualThan(axis1, axis2 string) bool {\n\tif len(axis1) < len(axis2) {\n\t\treturn true\n\t} else if len(axis1) > len(axis2) {\n\t\treturn false\n\t} else {\n\t\treturn axis1 <= axis2\n\t}\n}\n\n// getCellColRow returns the two parts of a cell identifier (its col and row) as strings\n//\n// For instance:\n//\n// \"C220\" => \"C\", \"220\"\n// \"aaef42\" => \"aaef\", \"42\"\n// \"\" => \"\", \"\"\nfunc getCellColRow(cell string) (col, row string) {\n\tfor index, rune := range cell {\n\t\tif unicode.IsDigit(rune) {\n\t\t\treturn cell[:index], cell[index:]\n\t\t}\n\n\t}\n\n\treturn cell, \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/picture.go",
    "content": "package excelize\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"image\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// parseFormatPictureSet provides function to parse the format settings of the\n// picture with default value.\nfunc parseFormatPictureSet(formatSet string) (*formatPicture, error) {\n\tformat := formatPicture{\n\t\tFPrintsWithSheet: true,\n\t\tFLocksWithSheet:  false,\n\t\tNoChangeAspect:   false,\n\t\tOffsetX:          0,\n\t\tOffsetY:          0,\n\t\tXScale:           1.0,\n\t\tYScale:           1.0,\n\t}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// AddPicture provides the method to add picture in a sheet by given picture\n// format set (such as offset, scale, aspect ratio setting and print settings)\n// and file path. For example:\n//\n//    package main\n//\n//    import (\n//        \"fmt\"\n//        _ \"image/gif\"\n//        _ \"image/jpeg\"\n//        _ \"image/png\"\n//\n//        \"github.com/360EntSecGroup-Skylar/excelize\"\n//    )\n//\n//    func main() {\n//        xlsx := excelize.NewFile()\n//        // Insert a picture.\n//        err := xlsx.AddPicture(\"Sheet1\", \"A2\", \"./image1.jpg\", \"\")\n//        if err != nil {\n//            fmt.Println(err)\n//        }\n//        // Insert a picture scaling in the cell with location hyperlink.\n//        err = xlsx.AddPicture(\"Sheet1\", \"D2\", \"./image1.png\", `{\"x_scale\": 0.5, \"y_scale\": 0.5, \"hyperlink\": \"#Sheet2!D8\", \"hyperlink_type\": \"Location\"}`)\n//        if err != nil {\n//            fmt.Println(err)\n//        }\n//        // Insert a picture offset in the cell with external hyperlink, printing and positioning support.\n//        err = xlsx.AddPicture(\"Sheet1\", \"H2\", \"./image3.gif\", `{\"x_offset\": 15, \"y_offset\": 10, \"hyperlink\": \"https://github.com/360EntSecGroup-Skylar/excelize\", \"hyperlink_type\": \"External\", \"print_obj\": true, \"lock_aspect_ratio\": false, \"locked\": false, \"positioning\": \"oneCell\"}`)\n//        if err != nil {\n//            fmt.Println(err)\n//        }\n//        err = xlsx.SaveAs(\"./Book1.xlsx\")\n//        if err != nil {\n//            fmt.Println(err)\n//        }\n//    }\n//\n// LinkType defines two types of hyperlink \"External\" for web site or\n// \"Location\" for moving to one of cell in this workbook. When the\n// \"hyperlink_type\" is \"Location\", coordinates need to start with \"#\".\n//\n// Positioning defines two types of the position of a picture in an Excel\n// spreadsheet, \"oneCell\" (Move but don't size with cells) or \"absolute\"\n// (Don't move or size with cells). If you don't set this parameter, default\n// positioning is move and size with cells.\nfunc (f *File) AddPicture(sheet, cell, picture, format string) error {\n\tvar err error\n\tvar drawingHyperlinkRID int\n\tvar hyperlinkType string\n\t// Check picture exists first.\n\tif _, err = os.Stat(picture); os.IsNotExist(err) {\n\t\treturn err\n\t}\n\text, ok := supportImageTypes[path.Ext(picture)]\n\tif !ok {\n\t\treturn errors.New(\"Unsupported image extension\")\n\t}\n\treadFile, _ := os.Open(picture)\n\timage, _, _ := image.DecodeConfig(readFile)\n\t_, file := filepath.Split(picture)\n\tformatSet, err := parseFormatPictureSet(format)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Read sheet data.\n\txlsx := f.workSheetReader(sheet)\n\t// Add first picture for given sheet, create xl/drawings/ and xl/drawings/_rels/ folder.\n\tdrawingID := f.countDrawings() + 1\n\tpictureID := f.countMedia() + 1\n\tdrawingXML := \"xl/drawings/drawing\" + strconv.Itoa(drawingID) + \".xml\"\n\tdrawingID, drawingXML = f.prepareDrawing(xlsx, drawingID, sheet, drawingXML)\n\tdrawingRID := f.addDrawingRelationships(drawingID, SourceRelationshipImage, \"../media/image\"+strconv.Itoa(pictureID)+ext, hyperlinkType)\n\t// Add picture with hyperlink.\n\tif formatSet.Hyperlink != \"\" && formatSet.HyperlinkType != \"\" {\n\t\tif formatSet.HyperlinkType == \"External\" {\n\t\t\thyperlinkType = formatSet.HyperlinkType\n\t\t}\n\t\tdrawingHyperlinkRID = f.addDrawingRelationships(drawingID, SourceRelationshipHyperLink, formatSet.Hyperlink, hyperlinkType)\n\t}\n\tf.addDrawingPicture(sheet, drawingXML, cell, file, image.Width, image.Height, drawingRID, drawingHyperlinkRID, formatSet)\n\tf.addMedia(picture, ext)\n\tf.addContentTypePart(drawingID, \"drawings\")\n\treturn err\n}\n\n// addSheetRelationships provides function to add\n// xl/worksheets/_rels/sheet%d.xml.rels by given worksheet name, relationship\n// type and target.\nfunc (f *File) addSheetRelationships(sheet, relType, target, targetMode string) int {\n\tname, ok := f.sheetMap[trimSheetName(sheet)]\n\tif !ok {\n\t\tname = strings.ToLower(sheet) + \".xml\"\n\t}\n\tvar rels = \"xl/worksheets/_rels/\" + strings.TrimPrefix(name, \"xl/worksheets/\") + \".rels\"\n\tvar sheetRels xlsxWorkbookRels\n\tvar rID = 1\n\tvar ID bytes.Buffer\n\tID.WriteString(\"rId\")\n\tID.WriteString(strconv.Itoa(rID))\n\t_, ok = f.XLSX[rels]\n\tif ok {\n\t\tID.Reset()\n\t\t_ = xml.Unmarshal([]byte(f.readXML(rels)), &sheetRels)\n\t\trID = len(sheetRels.Relationships) + 1\n\t\tID.WriteString(\"rId\")\n\t\tID.WriteString(strconv.Itoa(rID))\n\t}\n\tsheetRels.Relationships = append(sheetRels.Relationships, xlsxWorkbookRelation{\n\t\tID:         ID.String(),\n\t\tType:       relType,\n\t\tTarget:     target,\n\t\tTargetMode: targetMode,\n\t})\n\toutput, _ := xml.Marshal(sheetRels)\n\tf.saveFileList(rels, output)\n\treturn rID\n}\n\n// deleteSheetRelationships provides function to delete relationships in\n// xl/worksheets/_rels/sheet%d.xml.rels by given worksheet name and relationship\n// index.\nfunc (f *File) deleteSheetRelationships(sheet, rID string) {\n\tname, ok := f.sheetMap[trimSheetName(sheet)]\n\tif !ok {\n\t\tname = strings.ToLower(sheet) + \".xml\"\n\t}\n\tvar rels = \"xl/worksheets/_rels/\" + strings.TrimPrefix(name, \"xl/worksheets/\") + \".rels\"\n\tvar sheetRels xlsxWorkbookRels\n\t_ = xml.Unmarshal([]byte(f.readXML(rels)), &sheetRels)\n\tfor k, v := range sheetRels.Relationships {\n\t\tif v.ID == rID {\n\t\t\tsheetRels.Relationships = append(sheetRels.Relationships[:k], sheetRels.Relationships[k+1:]...)\n\t\t}\n\t}\n\toutput, _ := xml.Marshal(sheetRels)\n\tf.saveFileList(rels, output)\n}\n\n// addSheetLegacyDrawing provides function to add legacy drawing element to\n// xl/worksheets/sheet%d.xml by given worksheet name and relationship index.\nfunc (f *File) addSheetLegacyDrawing(sheet string, rID int) {\n\txlsx := f.workSheetReader(sheet)\n\txlsx.LegacyDrawing = &xlsxLegacyDrawing{\n\t\tRID: \"rId\" + strconv.Itoa(rID),\n\t}\n}\n\n// addSheetDrawing provides function to add drawing element to\n// xl/worksheets/sheet%d.xml by given worksheet name and relationship index.\nfunc (f *File) addSheetDrawing(sheet string, rID int) {\n\txlsx := f.workSheetReader(sheet)\n\txlsx.Drawing = &xlsxDrawing{\n\t\tRID: \"rId\" + strconv.Itoa(rID),\n\t}\n}\n\n// addSheetPicture provides function to add picture element to\n// xl/worksheets/sheet%d.xml by given worksheet name and relationship index.\nfunc (f *File) addSheetPicture(sheet string, rID int) {\n\txlsx := f.workSheetReader(sheet)\n\txlsx.Picture = &xlsxPicture{\n\t\tRID: \"rId\" + strconv.Itoa(rID),\n\t}\n}\n\n// countDrawings provides function to get drawing files count storage in the\n// folder xl/drawings.\nfunc (f *File) countDrawings() int {\n\tcount := 0\n\tfor k := range f.XLSX {\n\t\tif strings.Contains(k, \"xl/drawings/drawing\") {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n// addDrawingPicture provides function to add picture by given sheet,\n// drawingXML, cell, file name, width, height relationship index and format\n// sets.\nfunc (f *File) addDrawingPicture(sheet, drawingXML, cell, file string, width, height, rID, hyperlinkRID int, formatSet *formatPicture) {\n\tcell = strings.ToUpper(cell)\n\tfromCol := string(strings.Map(letterOnlyMapF, cell))\n\tfromRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, cell))\n\trow := fromRow - 1\n\tcol := TitleToNumber(fromCol)\n\twidth = int(float64(width) * formatSet.XScale)\n\theight = int(float64(height) * formatSet.YScale)\n\tcolStart, rowStart, _, _, colEnd, rowEnd, x2, y2 := f.positionObjectPixels(sheet, col, row, formatSet.OffsetX, formatSet.OffsetY, width, height)\n\tcontent := xlsxWsDr{}\n\tcontent.A = NameSpaceDrawingML\n\tcontent.Xdr = NameSpaceDrawingMLSpreadSheet\n\tcNvPrID := f.drawingParser(drawingXML, &content)\n\ttwoCellAnchor := xdrCellAnchor{}\n\ttwoCellAnchor.EditAs = formatSet.Positioning\n\tfrom := xlsxFrom{}\n\tfrom.Col = colStart\n\tfrom.ColOff = formatSet.OffsetX * EMU\n\tfrom.Row = rowStart\n\tfrom.RowOff = formatSet.OffsetY * EMU\n\tto := xlsxTo{}\n\tto.Col = colEnd\n\tto.ColOff = x2 * EMU\n\tto.Row = rowEnd\n\tto.RowOff = y2 * EMU\n\ttwoCellAnchor.From = &from\n\ttwoCellAnchor.To = &to\n\tpic := xlsxPic{}\n\tpic.NvPicPr.CNvPicPr.PicLocks.NoChangeAspect = formatSet.NoChangeAspect\n\tpic.NvPicPr.CNvPr.ID = f.countCharts() + f.countMedia() + 1\n\tpic.NvPicPr.CNvPr.Descr = file\n\tpic.NvPicPr.CNvPr.Name = \"Picture \" + strconv.Itoa(cNvPrID)\n\tif hyperlinkRID != 0 {\n\t\tpic.NvPicPr.CNvPr.HlinkClick = &xlsxHlinkClick{\n\t\t\tR:   SourceRelationship,\n\t\t\tRID: \"rId\" + strconv.Itoa(hyperlinkRID),\n\t\t}\n\t}\n\tpic.BlipFill.Blip.R = SourceRelationship\n\tpic.BlipFill.Blip.Embed = \"rId\" + strconv.Itoa(rID)\n\tpic.SpPr.PrstGeom.Prst = \"rect\"\n\n\ttwoCellAnchor.Pic = &pic\n\ttwoCellAnchor.ClientData = &xdrClientData{\n\t\tFLocksWithSheet:  formatSet.FLocksWithSheet,\n\t\tFPrintsWithSheet: formatSet.FPrintsWithSheet,\n\t}\n\tcontent.TwoCellAnchor = append(content.TwoCellAnchor, &twoCellAnchor)\n\toutput, _ := xml.Marshal(content)\n\tf.saveFileList(drawingXML, output)\n}\n\n// addDrawingRelationships provides function to add image part relationships in\n// the file xl/drawings/_rels/drawing%d.xml.rels by given drawing index,\n// relationship type and target.\nfunc (f *File) addDrawingRelationships(index int, relType, target, targetMode string) int {\n\tvar rels = \"xl/drawings/_rels/drawing\" + strconv.Itoa(index) + \".xml.rels\"\n\tvar drawingRels xlsxWorkbookRels\n\tvar rID = 1\n\tvar ID bytes.Buffer\n\tID.WriteString(\"rId\")\n\tID.WriteString(strconv.Itoa(rID))\n\t_, ok := f.XLSX[rels]\n\tif ok {\n\t\tID.Reset()\n\t\t_ = xml.Unmarshal([]byte(f.readXML(rels)), &drawingRels)\n\t\trID = len(drawingRels.Relationships) + 1\n\t\tID.WriteString(\"rId\")\n\t\tID.WriteString(strconv.Itoa(rID))\n\t}\n\tdrawingRels.Relationships = append(drawingRels.Relationships, xlsxWorkbookRelation{\n\t\tID:         ID.String(),\n\t\tType:       relType,\n\t\tTarget:     target,\n\t\tTargetMode: targetMode,\n\t})\n\toutput, _ := xml.Marshal(drawingRels)\n\tf.saveFileList(rels, output)\n\treturn rID\n}\n\n// countMedia provides function to get media files count storage in the folder\n// xl/media/image.\nfunc (f *File) countMedia() int {\n\tcount := 0\n\tfor k := range f.XLSX {\n\t\tif strings.Contains(k, \"xl/media/image\") {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n// addMedia provides function to add picture into folder xl/media/image by given\n// file name and extension name.\nfunc (f *File) addMedia(file, ext string) {\n\tcount := f.countMedia()\n\tdat, _ := ioutil.ReadFile(file)\n\tmedia := \"xl/media/image\" + strconv.Itoa(count+1) + ext\n\tf.XLSX[media] = dat\n}\n\n// setContentTypePartImageExtensions provides function to set the content type\n// for relationship parts and the Main Document part.\nfunc (f *File) setContentTypePartImageExtensions() {\n\tvar imageTypes = map[string]bool{\"jpeg\": false, \"png\": false, \"gif\": false}\n\tcontent := f.contentTypesReader()\n\tfor _, v := range content.Defaults {\n\t\t_, ok := imageTypes[v.Extension]\n\t\tif ok {\n\t\t\timageTypes[v.Extension] = true\n\t\t}\n\t}\n\tfor k, v := range imageTypes {\n\t\tif !v {\n\t\t\tcontent.Defaults = append(content.Defaults, xlsxDefault{\n\t\t\t\tExtension:   k,\n\t\t\t\tContentType: \"image/\" + k,\n\t\t\t})\n\t\t}\n\t}\n}\n\n// setContentTypePartVMLExtensions provides function to set the content type\n// for relationship parts and the Main Document part.\nfunc (f *File) setContentTypePartVMLExtensions() {\n\tvml := false\n\tcontent := f.contentTypesReader()\n\tfor _, v := range content.Defaults {\n\t\tif v.Extension == \"vml\" {\n\t\t\tvml = true\n\t\t}\n\t}\n\tif !vml {\n\t\tcontent.Defaults = append(content.Defaults, xlsxDefault{\n\t\t\tExtension:   \"vml\",\n\t\t\tContentType: \"application/vnd.openxmlformats-officedocument.vmlDrawing\",\n\t\t})\n\t}\n}\n\n// addContentTypePart provides function to add content type part relationships\n// in the file [Content_Types].xml by given index.\nfunc (f *File) addContentTypePart(index int, contentType string) {\n\tsetContentType := map[string]func(){\n\t\t\"comments\": f.setContentTypePartVMLExtensions,\n\t\t\"drawings\": f.setContentTypePartImageExtensions,\n\t}\n\tpartNames := map[string]string{\n\t\t\"chart\":    \"/xl/charts/chart\" + strconv.Itoa(index) + \".xml\",\n\t\t\"comments\": \"/xl/comments\" + strconv.Itoa(index) + \".xml\",\n\t\t\"drawings\": \"/xl/drawings/drawing\" + strconv.Itoa(index) + \".xml\",\n\t\t\"table\":    \"/xl/tables/table\" + strconv.Itoa(index) + \".xml\",\n\t}\n\tcontentTypes := map[string]string{\n\t\t\"chart\":    \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\",\n\t\t\"comments\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\"drawings\": \"application/vnd.openxmlformats-officedocument.drawing+xml\",\n\t\t\"table\":    \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\",\n\t}\n\ts, ok := setContentType[contentType]\n\tif ok {\n\t\ts()\n\t}\n\tcontent := f.contentTypesReader()\n\tfor _, v := range content.Overrides {\n\t\tif v.PartName == partNames[contentType] {\n\t\t\treturn\n\t\t}\n\t}\n\tcontent.Overrides = append(content.Overrides, xlsxOverride{\n\t\tPartName:    partNames[contentType],\n\t\tContentType: contentTypes[contentType],\n\t})\n}\n\n// getSheetRelationshipsTargetByID provides function to get Target attribute\n// value in xl/worksheets/_rels/sheet%d.xml.rels by given worksheet name and\n// relationship index.\nfunc (f *File) getSheetRelationshipsTargetByID(sheet, rID string) string {\n\tname, ok := f.sheetMap[trimSheetName(sheet)]\n\tif !ok {\n\t\tname = strings.ToLower(sheet) + \".xml\"\n\t}\n\tvar rels = \"xl/worksheets/_rels/\" + strings.TrimPrefix(name, \"xl/worksheets/\") + \".rels\"\n\tvar sheetRels xlsxWorkbookRels\n\t_ = xml.Unmarshal([]byte(f.readXML(rels)), &sheetRels)\n\tfor _, v := range sheetRels.Relationships {\n\t\tif v.ID == rID {\n\t\t\treturn v.Target\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// GetPicture provides function to get picture base name and raw content embed\n// in XLSX by given worksheet and cell name. This function returns the file name\n// in XLSX and file contents as []byte data types. For example:\n//\n//    xlsx, err := excelize.OpenFile(\"./Book1.xlsx\")\n//    if err != nil {\n//        fmt.Println(err)\n//        return\n//    }\n//    file, raw := xlsx.GetPicture(\"Sheet1\", \"A2\")\n//    if file == \"\" {\n//        return\n//    }\n//    err := ioutil.WriteFile(file, raw, 0644)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//\nfunc (f *File) GetPicture(sheet, cell string) (string, []byte) {\n\txlsx := f.workSheetReader(sheet)\n\tif xlsx.Drawing == nil {\n\t\treturn \"\", []byte{}\n\t}\n\ttarget := f.getSheetRelationshipsTargetByID(sheet, xlsx.Drawing.RID)\n\tdrawingXML := strings.Replace(target, \"..\", \"xl\", -1)\n\n\t_, ok := f.XLSX[drawingXML]\n\tif !ok {\n\t\treturn \"\", nil\n\t}\n\tdecodeWsDr := decodeWsDr{}\n\t_ = xml.Unmarshal([]byte(f.readXML(drawingXML)), &decodeWsDr)\n\n\tcell = strings.ToUpper(cell)\n\tfromCol := string(strings.Map(letterOnlyMapF, cell))\n\tfromRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, cell))\n\trow := fromRow - 1\n\tcol := TitleToNumber(fromCol)\n\n\tdrawingRelationships := strings.Replace(strings.Replace(target, \"../drawings\", \"xl/drawings/_rels\", -1), \".xml\", \".xml.rels\", -1)\n\n\tfor _, anchor := range decodeWsDr.TwoCellAnchor {\n\t\tdecodeTwoCellAnchor := decodeTwoCellAnchor{}\n\t\t_ = xml.Unmarshal([]byte(\"<decodeTwoCellAnchor>\"+anchor.Content+\"</decodeTwoCellAnchor>\"), &decodeTwoCellAnchor)\n\t\tif decodeTwoCellAnchor.From != nil && decodeTwoCellAnchor.Pic != nil {\n\t\t\tif decodeTwoCellAnchor.From.Col == col && decodeTwoCellAnchor.From.Row == row {\n\t\t\t\txlsxWorkbookRelation := f.getDrawingRelationships(drawingRelationships, decodeTwoCellAnchor.Pic.BlipFill.Blip.Embed)\n\t\t\t\t_, ok := supportImageTypes[filepath.Ext(xlsxWorkbookRelation.Target)]\n\t\t\t\tif ok {\n\t\t\t\t\treturn filepath.Base(xlsxWorkbookRelation.Target), []byte(f.XLSX[strings.Replace(xlsxWorkbookRelation.Target, \"..\", \"xl\", -1)])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", []byte{}\n}\n\n// getDrawingRelationships provides function to get drawing relationships from\n// xl/drawings/_rels/drawing%s.xml.rels by given file name and relationship ID.\nfunc (f *File) getDrawingRelationships(rels, rID string) *xlsxWorkbookRelation {\n\t_, ok := f.XLSX[rels]\n\tif !ok {\n\t\treturn nil\n\t}\n\tvar drawingRels xlsxWorkbookRels\n\t_ = xml.Unmarshal([]byte(f.readXML(rels)), &drawingRels)\n\tfor _, v := range drawingRels.Relationships {\n\t\tif v.ID == rID {\n\t\t\treturn &v\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/rows.go",
    "content": "package excelize\n\nimport (\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// GetRows return all the rows in a sheet by given worksheet name (case\n// sensitive). For example:\n//\n//    for _, row := range xlsx.GetRows(\"Sheet1\") {\n//        for _, colCell := range row {\n//            fmt.Print(colCell, \"\\t\")\n//        }\n//        fmt.Println()\n//    }\n//\nfunc (f *File) GetRows(sheet string) [][]string {\n\txlsx := f.workSheetReader(sheet)\n\trows := [][]string{}\n\tname, ok := f.sheetMap[trimSheetName(sheet)]\n\tif !ok {\n\t\treturn rows\n\t}\n\tif xlsx != nil {\n\t\toutput, _ := xml.Marshal(f.Sheet[name])\n\t\tf.saveFileList(name, replaceWorkSheetsRelationshipsNameSpaceBytes(output))\n\t}\n\txml.NewDecoder(bytes.NewReader(f.readXML(name)))\n\td := f.sharedStringsReader()\n\tvar inElement string\n\tvar r xlsxRow\n\tvar row []string\n\ttr, tc := f.getTotalRowsCols(name)\n\tfor i := 0; i < tr; i++ {\n\t\trow = []string{}\n\t\tfor j := 0; j <= tc; j++ {\n\t\t\trow = append(row, \"\")\n\t\t}\n\t\trows = append(rows, row)\n\t}\n\tdecoder := xml.NewDecoder(bytes.NewReader(f.readXML(name)))\n\tfor {\n\t\ttoken, _ := decoder.Token()\n\t\tif token == nil {\n\t\t\tbreak\n\t\t}\n\t\tswitch startElement := token.(type) {\n\t\tcase xml.StartElement:\n\t\t\tinElement = startElement.Name.Local\n\t\t\tif inElement == \"row\" {\n\t\t\t\tr = xlsxRow{}\n\t\t\t\t_ = decoder.DecodeElement(&r, &startElement)\n\t\t\t\tcr := r.R - 1\n\t\t\t\tfor _, colCell := range r.C {\n\t\t\t\t\tc := TitleToNumber(strings.Map(letterOnlyMapF, colCell.R))\n\t\t\t\t\tval, _ := colCell.getValueFrom(f, d)\n\t\t\t\t\trows[cr][c] = val\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t}\n\t}\n\treturn rows\n}\n\n// Rows defines an iterator to a sheet\ntype Rows struct {\n\tdecoder *xml.Decoder\n\ttoken   xml.Token\n\terr     error\n\tf       *File\n}\n\n// Next will return true if find the next row element.\nfunc (rows *Rows) Next() bool {\n\tfor {\n\t\trows.token, rows.err = rows.decoder.Token()\n\t\tif rows.err == io.EOF {\n\t\t\trows.err = nil\n\t\t}\n\t\tif rows.token == nil {\n\t\t\treturn false\n\t\t}\n\n\t\tswitch startElement := rows.token.(type) {\n\t\tcase xml.StartElement:\n\t\t\tinElement := startElement.Name.Local\n\t\t\tif inElement == \"row\" {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Error will return the error when the find next row element\nfunc (rows *Rows) Error() error {\n\treturn rows.err\n}\n\n// Columns return the current row's column values\nfunc (rows *Rows) Columns() []string {\n\tif rows.token == nil {\n\t\treturn []string{}\n\t}\n\tstartElement := rows.token.(xml.StartElement)\n\tr := xlsxRow{}\n\t_ = rows.decoder.DecodeElement(&r, &startElement)\n\td := rows.f.sharedStringsReader()\n\trow := make([]string, len(r.C))\n\tfor _, colCell := range r.C {\n\t\tc := TitleToNumber(strings.Map(letterOnlyMapF, colCell.R))\n\t\tval, _ := colCell.getValueFrom(rows.f, d)\n\t\trow[c] = val\n\t}\n\treturn row\n}\n\n// ErrSheetNotExist defines an error of sheet is not exist\ntype ErrSheetNotExist struct {\n\tSheetName string\n}\n\nfunc (err ErrSheetNotExist) Error() string {\n\treturn fmt.Sprintf(\"Sheet %s is not exist\", string(err.SheetName))\n}\n\n// Rows return a rows iterator. For example:\n//\n//    rows, err := xlsx.GetRows(\"Sheet1\")\n//    for rows.Next() {\n//        for _, colCell := range rows.Columns() {\n//            fmt.Print(colCell, \"\\t\")\n//        }\n//        fmt.Println()\n//    }\n//\nfunc (f *File) Rows(sheet string) (*Rows, error) {\n\txlsx := f.workSheetReader(sheet)\n\tname, ok := f.sheetMap[trimSheetName(sheet)]\n\tif !ok {\n\t\treturn nil, ErrSheetNotExist{sheet}\n\t}\n\tif xlsx != nil {\n\t\toutput, _ := xml.Marshal(f.Sheet[name])\n\t\tf.saveFileList(name, replaceWorkSheetsRelationshipsNameSpaceBytes(output))\n\t}\n\treturn &Rows{\n\t\tf:       f,\n\t\tdecoder: xml.NewDecoder(bytes.NewReader(f.readXML(name))),\n\t}, nil\n}\n\n// getTotalRowsCols provides a function to get total columns and rows in a\n// worksheet.\nfunc (f *File) getTotalRowsCols(name string) (int, int) {\n\tdecoder := xml.NewDecoder(bytes.NewReader(f.readXML(name)))\n\tvar inElement string\n\tvar r xlsxRow\n\tvar tr, tc int\n\tfor {\n\t\ttoken, _ := decoder.Token()\n\t\tif token == nil {\n\t\t\tbreak\n\t\t}\n\t\tswitch startElement := token.(type) {\n\t\tcase xml.StartElement:\n\t\t\tinElement = startElement.Name.Local\n\t\t\tif inElement == \"row\" {\n\t\t\t\tr = xlsxRow{}\n\t\t\t\t_ = decoder.DecodeElement(&r, &startElement)\n\t\t\t\ttr = r.R\n\t\t\t\tfor _, colCell := range r.C {\n\t\t\t\t\tcol := TitleToNumber(strings.Map(letterOnlyMapF, colCell.R))\n\t\t\t\t\tif col > tc {\n\t\t\t\t\t\ttc = col\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t}\n\t}\n\treturn tr, tc\n}\n\n// SetRowHeight provides a function to set the height of a single row. For\n// example, set the height of the first row in Sheet1:\n//\n//    xlsx.SetRowHeight(\"Sheet1\", 1, 50)\n//\nfunc (f *File) SetRowHeight(sheet string, row int, height float64) {\n\txlsx := f.workSheetReader(sheet)\n\tcells := 0\n\trowIdx := row - 1\n\tcompleteRow(xlsx, row, cells)\n\txlsx.SheetData.Row[rowIdx].Ht = height\n\txlsx.SheetData.Row[rowIdx].CustomHeight = true\n}\n\n// getRowHeight provides function to get row height in pixels by given sheet\n// name and row index.\nfunc (f *File) getRowHeight(sheet string, row int) int {\n\txlsx := f.workSheetReader(sheet)\n\tfor _, v := range xlsx.SheetData.Row {\n\t\tif v.R == row+1 && v.Ht != 0 {\n\t\t\treturn int(convertRowHeightToPixels(v.Ht))\n\t\t}\n\t}\n\t// Optimisation for when the row heights haven't changed.\n\treturn int(defaultRowHeightPixels)\n}\n\n// GetRowHeight provides function to get row height by given worksheet name\n// and row index. For example, get the height of the first row in Sheet1:\n//\n//    xlsx.GetRowHeight(\"Sheet1\", 1)\n//\nfunc (f *File) GetRowHeight(sheet string, row int) float64 {\n\txlsx := f.workSheetReader(sheet)\n\tfor _, v := range xlsx.SheetData.Row {\n\t\tif v.R == row && v.Ht != 0 {\n\t\t\treturn v.Ht\n\t\t}\n\t}\n\t// Optimisation for when the row heights haven't changed.\n\treturn defaultRowHeightPixels\n}\n\n// sharedStringsReader provides function to get the pointer to the structure\n// after deserialization of xl/sharedStrings.xml.\nfunc (f *File) sharedStringsReader() *xlsxSST {\n\tif f.SharedStrings == nil {\n\t\tvar sharedStrings xlsxSST\n\t\tss := f.readXML(\"xl/sharedStrings.xml\")\n\t\tif len(ss) == 0 {\n\t\t\tss = f.readXML(\"xl/SharedStrings.xml\")\n\t\t}\n\t\t_ = xml.Unmarshal([]byte(ss), &sharedStrings)\n\t\tf.SharedStrings = &sharedStrings\n\t}\n\treturn f.SharedStrings\n}\n\n// getValueFrom return a value from a column/row cell, this function is inteded\n// to be used with for range on rows an argument with the xlsx opened file.\nfunc (xlsx *xlsxC) getValueFrom(f *File, d *xlsxSST) (string, error) {\n\tswitch xlsx.T {\n\tcase \"s\":\n\t\txlsxSI := 0\n\t\txlsxSI, _ = strconv.Atoi(xlsx.V)\n\t\tif len(d.SI[xlsxSI].R) > 0 {\n\t\t\tvalue := \"\"\n\t\t\tfor _, v := range d.SI[xlsxSI].R {\n\t\t\t\tvalue += v.T\n\t\t\t}\n\t\t\treturn value, nil\n\t\t}\n\t\treturn f.formattedValue(xlsx.S, d.SI[xlsxSI].T), nil\n\tcase \"str\":\n\t\treturn f.formattedValue(xlsx.S, xlsx.V), nil\n\tcase \"inlineStr\":\n\t\treturn f.formattedValue(xlsx.S, xlsx.IS.T), nil\n\tdefault:\n\t\treturn f.formattedValue(xlsx.S, xlsx.V), nil\n\t}\n}\n\n// SetRowVisible provides a function to set visible of a single row by given\n// worksheet name and row index. For example, hide row 2 in Sheet1:\n//\n//    xlsx.SetRowVisible(\"Sheet1\", 2, false)\n//\nfunc (f *File) SetRowVisible(sheet string, rowIndex int, visible bool) {\n\txlsx := f.workSheetReader(sheet)\n\trows := rowIndex + 1\n\tcells := 0\n\tcompleteRow(xlsx, rows, cells)\n\tif visible {\n\t\txlsx.SheetData.Row[rowIndex].Hidden = false\n\t\treturn\n\t}\n\txlsx.SheetData.Row[rowIndex].Hidden = true\n}\n\n// GetRowVisible provides a function to get visible of a single row by given\n// worksheet name and row index. For example, get visible state of row 2 in\n// Sheet1:\n//\n//    xlsx.GetRowVisible(\"Sheet1\", 2)\n//\nfunc (f *File) GetRowVisible(sheet string, rowIndex int) bool {\n\txlsx := f.workSheetReader(sheet)\n\trows := rowIndex + 1\n\tcells := 0\n\tcompleteRow(xlsx, rows, cells)\n\treturn !xlsx.SheetData.Row[rowIndex].Hidden\n}\n\n// SetRowOutlineLevel provides a function to set outline level number of a\n// single row by given worksheet name and row index. For example, outline row\n// 2 in Sheet1 to level 1:\n//\n//    xlsx.SetRowOutlineLevel(\"Sheet1\", 2, 1)\n//\nfunc (f *File) SetRowOutlineLevel(sheet string, rowIndex int, level uint8) {\n\txlsx := f.workSheetReader(sheet)\n\trows := rowIndex + 1\n\tcells := 0\n\tcompleteRow(xlsx, rows, cells)\n\txlsx.SheetData.Row[rowIndex].OutlineLevel = level\n}\n\n// GetRowOutlineLevel provides a function to get outline level number of a single row by given\n// worksheet name and row index. For example, get outline number of row 2 in\n// Sheet1:\n//\n//    xlsx.GetRowOutlineLevel(\"Sheet1\", 2)\n//\nfunc (f *File) GetRowOutlineLevel(sheet string, rowIndex int) uint8 {\n\txlsx := f.workSheetReader(sheet)\n\trows := rowIndex + 1\n\tcells := 0\n\tcompleteRow(xlsx, rows, cells)\n\treturn xlsx.SheetData.Row[rowIndex].OutlineLevel\n}\n\n// RemoveRow provides function to remove single row by given worksheet name and\n// row index. For example, remove row 3 in Sheet1:\n//\n//    xlsx.RemoveRow(\"Sheet1\", 2)\n//\nfunc (f *File) RemoveRow(sheet string, row int) {\n\tif row < 0 {\n\t\treturn\n\t}\n\txlsx := f.workSheetReader(sheet)\n\trow++\n\tfor i, r := range xlsx.SheetData.Row {\n\t\tif r.R == row {\n\t\t\txlsx.SheetData.Row = append(xlsx.SheetData.Row[:i], xlsx.SheetData.Row[i+1:]...)\n\t\t\tf.adjustHelper(sheet, -1, row, -1)\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// InsertRow provides function to insert a new row before given row index. For\n// example, create a new row before row 3 in Sheet1:\n//\n//    xlsx.InsertRow(\"Sheet1\", 2)\n//\nfunc (f *File) InsertRow(sheet string, row int) {\n\tif row < 0 {\n\t\treturn\n\t}\n\trow++\n\tf.adjustHelper(sheet, -1, row, 1)\n}\n\n// checkRow provides function to check and fill each column element for all rows\n// and make that is continuous in a worksheet of XML. For example:\n//\n//    <row r=\"15\" spans=\"1:22\" x14ac:dyDescent=\"0.2\">\n//        <c r=\"A15\" s=\"2\" />\n//        <c r=\"B15\" s=\"2\" />\n//        <c r=\"F15\" s=\"1\" />\n//        <c r=\"G15\" s=\"1\" />\n//    </row>\n//\n// in this case, we should to change it to\n//\n//    <row r=\"15\" spans=\"1:22\" x14ac:dyDescent=\"0.2\">\n//        <c r=\"A15\" s=\"2\" />\n//        <c r=\"B15\" s=\"2\" />\n//        <c r=\"C15\" s=\"2\" />\n//        <c r=\"D15\" s=\"2\" />\n//        <c r=\"E15\" s=\"2\" />\n//        <c r=\"F15\" s=\"1\" />\n//        <c r=\"G15\" s=\"1\" />\n//    </row>\n//\n// Noteice: this method could be very slow for large spreadsheets (more than\n// 3000 rows one sheet).\nfunc checkRow(xlsx *xlsxWorksheet) {\n\tbuffer := bytes.Buffer{}\n\tfor k := range xlsx.SheetData.Row {\n\t\tlenCol := len(xlsx.SheetData.Row[k].C)\n\t\tif lenCol > 0 {\n\t\t\tendR := string(strings.Map(letterOnlyMapF, xlsx.SheetData.Row[k].C[lenCol-1].R))\n\t\t\tendRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, xlsx.SheetData.Row[k].C[lenCol-1].R))\n\t\t\tendCol := TitleToNumber(endR) + 1\n\t\t\tif lenCol < endCol {\n\t\t\t\toldRow := xlsx.SheetData.Row[k].C\n\t\t\t\txlsx.SheetData.Row[k].C = xlsx.SheetData.Row[k].C[:0]\n\t\t\t\ttmp := []xlsxC{}\n\t\t\t\tfor i := 0; i < endCol; i++ {\n\t\t\t\t\tbuffer.WriteString(ToAlphaString(i))\n\t\t\t\t\tbuffer.WriteString(strconv.Itoa(endRow))\n\t\t\t\t\ttmp = append(tmp, xlsxC{\n\t\t\t\t\t\tR: buffer.String(),\n\t\t\t\t\t})\n\t\t\t\t\tbuffer.Reset()\n\t\t\t\t}\n\t\t\t\txlsx.SheetData.Row[k].C = tmp\n\t\t\t\tfor _, y := range oldRow {\n\t\t\t\t\tcolAxis := TitleToNumber(string(strings.Map(letterOnlyMapF, y.R)))\n\t\t\t\t\txlsx.SheetData.Row[k].C[colAxis] = y\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// completeRow provides function to check and fill each column element for a\n// single row and make that is continuous in a worksheet of XML by given row\n// index and axis.\nfunc completeRow(xlsx *xlsxWorksheet, row, cell int) {\n\tcurrentRows := len(xlsx.SheetData.Row)\n\tif currentRows > 1 {\n\t\tlastRow := xlsx.SheetData.Row[currentRows-1].R\n\t\tif lastRow >= row {\n\t\t\trow = lastRow\n\t\t}\n\t}\n\tfor i := currentRows; i < row; i++ {\n\t\txlsx.SheetData.Row = append(xlsx.SheetData.Row, xlsxRow{\n\t\t\tR: i + 1,\n\t\t})\n\t}\n\tbuffer := bytes.Buffer{}\n\tfor ii := currentRows; ii < row; ii++ {\n\t\tstart := len(xlsx.SheetData.Row[ii].C)\n\t\tif start == 0 {\n\t\t\tfor iii := start; iii < cell; iii++ {\n\t\t\t\tbuffer.WriteString(ToAlphaString(iii))\n\t\t\t\tbuffer.WriteString(strconv.Itoa(ii + 1))\n\t\t\t\txlsx.SheetData.Row[ii].C = append(xlsx.SheetData.Row[ii].C, xlsxC{\n\t\t\t\t\tR: buffer.String(),\n\t\t\t\t})\n\t\t\t\tbuffer.Reset()\n\t\t\t}\n\t\t}\n\t}\n}\n\n// convertRowHeightToPixels provides function to convert the height of a cell\n// from user's units to pixels. If the height hasn't been set by the user we use\n// the default value. If the row is hidden it has a value of zero.\nfunc convertRowHeightToPixels(height float64) float64 {\n\tvar pixels float64\n\tif height == 0 {\n\t\treturn pixels\n\t}\n\tpixels = math.Ceil(4.0 / 3.0 * height)\n\treturn pixels\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/shape.go",
    "content": "package excelize\n\nimport (\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// parseFormatShapeSet provides function to parse the format settings of the\n// shape with default value.\nfunc parseFormatShapeSet(formatSet string) (*formatShape, error) {\n\tformat := formatShape{\n\t\tWidth:  160,\n\t\tHeight: 160,\n\t\tFormat: formatPicture{\n\t\t\tFPrintsWithSheet: true,\n\t\t\tFLocksWithSheet:  false,\n\t\t\tNoChangeAspect:   false,\n\t\t\tOffsetX:          0,\n\t\t\tOffsetY:          0,\n\t\t\tXScale:           1.0,\n\t\t\tYScale:           1.0,\n\t\t},\n\t}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// AddShape provides the method to add shape in a sheet by given worksheet\n// index, shape format set (such as offset, scale, aspect ratio setting and\n// print settings) and properties set. For example, add text box (rect shape) in\n// Sheet1:\n//\n//    xlsx.AddShape(\"Sheet1\", \"G6\", `{\"type\":\"rect\",\"color\":{\"line\":\"#4286F4\",\"fill\":\"#8eb9ff\"},\"paragraph\":[{\"text\":\"Rectangle Shape\",\"font\":{\"bold\":true,\"italic\":true,\"family\":\"Berlin Sans FB Demi\",\"size\":36,\"color\":\"#777777\",\"underline\":\"sng\"}}],\"width\":180,\"height\": 90}`)\n//\n// The following shows the type of shape supported by excelize:\n//\n//    accentBorderCallout1 (Callout 1 with Border and Accent Shape)\n//    accentBorderCallout2 (Callout 2 with Border and Accent Shape)\n//    accentBorderCallout3 (Callout 3 with Border and Accent Shape)\n//    accentCallout1 (Callout 1 Shape)\n//    accentCallout2 (Callout 2 Shape)\n//    accentCallout3 (Callout 3 Shape)\n//    actionButtonBackPrevious (Back or Previous Button Shape)\n//    actionButtonBeginning (Beginning Button Shape)\n//    actionButtonBlank (Blank Button Shape)\n//    actionButtonDocument (Document Button Shape)\n//    actionButtonEnd (End Button Shape)\n//    actionButtonForwardNext (Forward or Next Button Shape)\n//    actionButtonHelp (Help Button Shape)\n//    actionButtonHome (Home Button Shape)\n//    actionButtonInformation (Information Button Shape)\n//    actionButtonMovie (Movie Button Shape)\n//    actionButtonReturn (Return Button Shape)\n//    actionButtonSound (Sound Button Shape)\n//    arc (Curved Arc Shape)\n//    bentArrow (Bent Arrow Shape)\n//    bentConnector2 (Bent Connector 2 Shape)\n//    bentConnector3 (Bent Connector 3 Shape)\n//    bentConnector4 (Bent Connector 4 Shape)\n//    bentConnector5 (Bent Connector 5 Shape)\n//    bentUpArrow (Bent Up Arrow Shape)\n//    bevel (Bevel Shape)\n//    blockArc (Block Arc Shape)\n//    borderCallout1 (Callout 1 with Border Shape)\n//    borderCallout2 (Callout 2 with Border Shape)\n//    borderCallout3 (Callout 3 with Border Shape)\n//    bracePair (Brace Pair Shape)\n//    bracketPair (Bracket Pair Shape)\n//    callout1 (Callout 1 Shape)\n//    callout2 (Callout 2 Shape)\n//    callout3 (Callout 3 Shape)\n//    can (Can Shape)\n//    chartPlus (Chart Plus Shape)\n//    chartStar (Chart Star Shape)\n//    chartX (Chart X Shape)\n//    chevron (Chevron Shape)\n//    chord (Chord Shape)\n//    circularArrow (Circular Arrow Shape)\n//    cloud (Cloud Shape)\n//    cloudCallout (Callout Cloud Shape)\n//    corner (Corner Shape)\n//    cornerTabs (Corner Tabs Shape)\n//    cube (Cube Shape)\n//    curvedConnector2 (Curved Connector 2 Shape)\n//    curvedConnector3 (Curved Connector 3 Shape)\n//    curvedConnector4 (Curved Connector 4 Shape)\n//    curvedConnector5 (Curved Connector 5 Shape)\n//    curvedDownArrow (Curved Down Arrow Shape)\n//    curvedLeftArrow (Curved Left Arrow Shape)\n//    curvedRightArrow (Curved Right Arrow Shape)\n//    curvedUpArrow (Curved Up Arrow Shape)\n//    decagon (Decagon Shape)\n//    diagStripe (Diagonal Stripe Shape)\n//    diamond (Diamond Shape)\n//    dodecagon (Dodecagon Shape)\n//    donut (Donut Shape)\n//    doubleWave (Double Wave Shape)\n//    downArrow (Down Arrow Shape)\n//    downArrowCallout (Callout Down Arrow Shape)\n//    ellipse (Ellipse Shape)\n//    ellipseRibbon (Ellipse Ribbon Shape)\n//    ellipseRibbon2 (Ellipse Ribbon 2 Shape)\n//    flowChartAlternateProcess (Alternate Process Flow Shape)\n//    flowChartCollate (Collate Flow Shape)\n//    flowChartConnector (Connector Flow Shape)\n//    flowChartDecision (Decision Flow Shape)\n//    flowChartDelay (Delay Flow Shape)\n//    flowChartDisplay (Display Flow Shape)\n//    flowChartDocument (Document Flow Shape)\n//    flowChartExtract (Extract Flow Shape)\n//    flowChartInputOutput (Input Output Flow Shape)\n//    flowChartInternalStorage (Internal Storage Flow Shape)\n//    flowChartMagneticDisk (Magnetic Disk Flow Shape)\n//    flowChartMagneticDrum (Magnetic Drum Flow Shape)\n//    flowChartMagneticTape (Magnetic Tape Flow Shape)\n//    flowChartManualInput (Manual Input Flow Shape)\n//    flowChartManualOperation (Manual Operation Flow Shape)\n//    flowChartMerge (Merge Flow Shape)\n//    flowChartMultidocument (Multi-Document Flow Shape)\n//    flowChartOfflineStorage (Offline Storage Flow Shape)\n//    flowChartOffpageConnector (Off-Page Connector Flow Shape)\n//    flowChartOnlineStorage (Online Storage Flow Shape)\n//    flowChartOr (Or Flow Shape)\n//    flowChartPredefinedProcess (Predefined Process Flow Shape)\n//    flowChartPreparation (Preparation Flow Shape)\n//    flowChartProcess (Process Flow Shape)\n//    flowChartPunchedCard (Punched Card Flow Shape)\n//    flowChartPunchedTape (Punched Tape Flow Shape)\n//    flowChartSort (Sort Flow Shape)\n//    flowChartSummingJunction (Summing Junction Flow Shape)\n//    flowChartTerminator (Terminator Flow Shape)\n//    foldedCorner (Folded Corner Shape)\n//    frame (Frame Shape)\n//    funnel (Funnel Shape)\n//    gear6 (Gear 6 Shape)\n//    gear9 (Gear 9 Shape)\n//    halfFrame (Half Frame Shape)\n//    heart (Heart Shape)\n//    heptagon (Heptagon Shape)\n//    hexagon (Hexagon Shape)\n//    homePlate (Home Plate Shape)\n//    horizontalScroll (Horizontal Scroll Shape)\n//    irregularSeal1 (Irregular Seal 1 Shape)\n//    irregularSeal2 (Irregular Seal 2 Shape)\n//    leftArrow (Left Arrow Shape)\n//    leftArrowCallout (Callout Left Arrow Shape)\n//    leftBrace (Left Brace Shape)\n//    leftBracket (Left Bracket Shape)\n//    leftCircularArrow (Left Circular Arrow Shape)\n//    leftRightArrow (Left Right Arrow Shape)\n//    leftRightArrowCallout (Callout Left Right Arrow Shape)\n//    leftRightCircularArrow (Left Right Circular Arrow Shape)\n//    leftRightRibbon (Left Right Ribbon Shape)\n//    leftRightUpArrow (Left Right Up Arrow Shape)\n//    leftUpArrow (Left Up Arrow Shape)\n//    lightningBolt (Lightning Bolt Shape)\n//    line (Line Shape)\n//    lineInv (Line Inverse Shape)\n//    mathDivide (Divide Math Shape)\n//    mathEqual (Equal Math Shape)\n//    mathMinus (Minus Math Shape)\n//    mathMultiply (Multiply Math Shape)\n//    mathNotEqual (Not Equal Math Shape)\n//    mathPlus (Plus Math Shape)\n//    moon (Moon Shape)\n//    nonIsoscelesTrapezoid (Non-Isosceles Trapezoid Shape)\n//    noSmoking (No Smoking Shape)\n//    notchedRightArrow (Notched Right Arrow Shape)\n//    octagon (Octagon Shape)\n//    parallelogram (Parallelogram Shape)\n//    pentagon (Pentagon Shape)\n//    pie (Pie Shape)\n//    pieWedge (Pie Wedge Shape)\n//    plaque (Plaque Shape)\n//    plaqueTabs (Plaque Tabs Shape)\n//    plus (Plus Shape)\n//    quadArrow (Quad-Arrow Shape)\n//    quadArrowCallout (Callout Quad-Arrow Shape)\n//    rect (Rectangle Shape)\n//    ribbon (Ribbon Shape)\n//    ribbon2 (Ribbon 2 Shape)\n//    rightArrow (Right Arrow Shape)\n//    rightArrowCallout (Callout Right Arrow Shape)\n//    rightBrace (Right Brace Shape)\n//    rightBracket (Right Bracket Shape)\n//    round1Rect (One Round Corner Rectangle Shape)\n//    round2DiagRect (Two Diagonal Round Corner Rectangle Shape)\n//    round2SameRect (Two Same-side Round Corner Rectangle Shape)\n//    roundRect (Round Corner Rectangle Shape)\n//    rtTriangle (Right Triangle Shape)\n//    smileyFace (Smiley Face Shape)\n//    snip1Rect (One Snip Corner Rectangle Shape)\n//    snip2DiagRect (Two Diagonal Snip Corner Rectangle Shape)\n//    snip2SameRect (Two Same-side Snip Corner Rectangle Shape)\n//    snipRoundRect (One Snip One Round Corner Rectangle Shape)\n//    squareTabs (Square Tabs Shape)\n//    star10 (Ten Pointed Star Shape)\n//    star12 (Twelve Pointed Star Shape)\n//    star16 (Sixteen Pointed Star Shape)\n//    star24 (Twenty Four Pointed Star Shape)\n//    star32 (Thirty Two Pointed Star Shape)\n//    star4 (Four Pointed Star Shape)\n//    star5 (Five Pointed Star Shape)\n//    star6 (Six Pointed Star Shape)\n//    star7 (Seven Pointed Star Shape)\n//    star8 (Eight Pointed Star Shape)\n//    straightConnector1 (Straight Connector 1 Shape)\n//    stripedRightArrow (Striped Right Arrow Shape)\n//    sun (Sun Shape)\n//    swooshArrow (Swoosh Arrow Shape)\n//    teardrop (Teardrop Shape)\n//    trapezoid (Trapezoid Shape)\n//    triangle (Triangle Shape)\n//    upArrow (Up Arrow Shape)\n//    upArrowCallout (Callout Up Arrow Shape)\n//    upDownArrow (Up Down Arrow Shape)\n//    upDownArrowCallout (Callout Up Down Arrow Shape)\n//    uturnArrow (U-Turn Arrow Shape)\n//    verticalScroll (Vertical Scroll Shape)\n//    wave (Wave Shape)\n//    wedgeEllipseCallout (Callout Wedge Ellipse Shape)\n//    wedgeRectCallout (Callout Wedge Rectangle Shape)\n//    wedgeRoundRectCallout (Callout Wedge Round Rectangle Shape)\n//\n// The following shows the type of text underline supported by excelize:\n//\n//    none\n//    words\n//    sng\n//    dbl\n//    heavy\n//    dotted\n//    dottedHeavy\n//    dash\n//    dashHeavy\n//    dashLong\n//    dashLongHeavy\n//    dotDash\n//    dotDashHeavy\n//    dotDotDash\n//    dotDotDashHeavy\n//    wavy\n//    wavyHeavy\n//    wavyDbl\n//\nfunc (f *File) AddShape(sheet, cell, format string) error {\n\tformatSet, err := parseFormatShapeSet(format)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Read sheet data.\n\txlsx := f.workSheetReader(sheet)\n\t// Add first shape for given sheet, create xl/drawings/ and xl/drawings/_rels/ folder.\n\tdrawingID := f.countDrawings() + 1\n\tdrawingXML := \"xl/drawings/drawing\" + strconv.Itoa(drawingID) + \".xml\"\n\tsheetRelationshipsDrawingXML := \"../drawings/drawing\" + strconv.Itoa(drawingID) + \".xml\"\n\n\tif xlsx.Drawing != nil {\n\t\t// The worksheet already has a shape or chart relationships, use the relationships drawing ../drawings/drawing%d.xml.\n\t\tsheetRelationshipsDrawingXML = f.getSheetRelationshipsTargetByID(sheet, xlsx.Drawing.RID)\n\t\tdrawingID, _ = strconv.Atoi(strings.TrimSuffix(strings.TrimPrefix(sheetRelationshipsDrawingXML, \"../drawings/drawing\"), \".xml\"))\n\t\tdrawingXML = strings.Replace(sheetRelationshipsDrawingXML, \"..\", \"xl\", -1)\n\t} else {\n\t\t// Add first shape for given sheet.\n\t\trID := f.addSheetRelationships(sheet, SourceRelationshipDrawingML, sheetRelationshipsDrawingXML, \"\")\n\t\tf.addSheetDrawing(sheet, rID)\n\t}\n\tf.addDrawingShape(sheet, drawingXML, cell, formatSet)\n\tf.addContentTypePart(drawingID, \"drawings\")\n\treturn err\n}\n\n// addDrawingShape provides function to add preset geometry by given sheet,\n// drawingXMLand format sets.\nfunc (f *File) addDrawingShape(sheet, drawingXML, cell string, formatSet *formatShape) {\n\ttextUnderlineType := map[string]bool{\"none\": true, \"words\": true, \"sng\": true, \"dbl\": true, \"heavy\": true, \"dotted\": true, \"dottedHeavy\": true, \"dash\": true, \"dashHeavy\": true, \"dashLong\": true, \"dashLongHeavy\": true, \"dotDash\": true, \"dotDashHeavy\": true, \"dotDotDash\": true, \"dotDotDashHeavy\": true, \"wavy\": true, \"wavyHeavy\": true, \"wavyDbl\": true}\n\tcell = strings.ToUpper(cell)\n\tfromCol := string(strings.Map(letterOnlyMapF, cell))\n\tfromRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, cell))\n\trow := fromRow - 1\n\tcol := TitleToNumber(fromCol)\n\twidth := int(float64(formatSet.Width) * formatSet.Format.XScale)\n\theight := int(float64(formatSet.Height) * formatSet.Format.YScale)\n\tcolStart, rowStart, _, _, colEnd, rowEnd, x2, y2 := f.positionObjectPixels(sheet, col, row, formatSet.Format.OffsetX, formatSet.Format.OffsetY, width, height)\n\tcontent := xlsxWsDr{}\n\tcontent.A = NameSpaceDrawingML\n\tcontent.Xdr = NameSpaceDrawingMLSpreadSheet\n\tcNvPrID := f.drawingParser(drawingXML, &content)\n\ttwoCellAnchor := xdrCellAnchor{}\n\ttwoCellAnchor.EditAs = formatSet.Format.Positioning\n\tfrom := xlsxFrom{}\n\tfrom.Col = colStart\n\tfrom.ColOff = formatSet.Format.OffsetX * EMU\n\tfrom.Row = rowStart\n\tfrom.RowOff = formatSet.Format.OffsetY * EMU\n\tto := xlsxTo{}\n\tto.Col = colEnd\n\tto.ColOff = x2 * EMU\n\tto.Row = rowEnd\n\tto.RowOff = y2 * EMU\n\ttwoCellAnchor.From = &from\n\ttwoCellAnchor.To = &to\n\tshape := xdrSp{\n\t\tNvSpPr: &xdrNvSpPr{\n\t\t\tCNvPr: &xlsxCNvPr{\n\t\t\t\tID:   cNvPrID,\n\t\t\t\tName: \"Shape \" + strconv.Itoa(cNvPrID),\n\t\t\t},\n\t\t\tCNvSpPr: &xdrCNvSpPr{\n\t\t\t\tTxBox: true,\n\t\t\t},\n\t\t},\n\t\tSpPr: &xlsxSpPr{\n\t\t\tPrstGeom: xlsxPrstGeom{\n\t\t\t\tPrst: formatSet.Type,\n\t\t\t},\n\t\t},\n\t\tStyle: &xdrStyle{\n\t\t\tLnRef:     setShapeRef(formatSet.Color.Line, 2),\n\t\t\tFillRef:   setShapeRef(formatSet.Color.Fill, 1),\n\t\t\tEffectRef: setShapeRef(formatSet.Color.Effect, 0),\n\t\t\tFontRef: &aFontRef{\n\t\t\t\tIdx: \"minor\",\n\t\t\t\tSchemeClr: &attrValString{\n\t\t\t\t\tVal: \"tx1\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tTxBody: &xdrTxBody{\n\t\t\tBodyPr: &aBodyPr{\n\t\t\t\tVertOverflow: \"clip\",\n\t\t\t\tHorzOverflow: \"clip\",\n\t\t\t\tWrap:         \"none\",\n\t\t\t\tRtlCol:       false,\n\t\t\t\tAnchor:       \"t\",\n\t\t\t},\n\t\t},\n\t}\n\tif len(formatSet.Paragraph) < 1 {\n\t\tformatSet.Paragraph = []formatShapeParagraph{\n\t\t\t{\n\t\t\t\tFont: formatFont{\n\t\t\t\t\tBold:      false,\n\t\t\t\t\tItalic:    false,\n\t\t\t\t\tUnderline: \"none\",\n\t\t\t\t\tFamily:    \"Calibri\",\n\t\t\t\t\tSize:      11,\n\t\t\t\t\tColor:     \"#000000\",\n\t\t\t\t},\n\t\t\t\tText: \" \",\n\t\t\t},\n\t\t}\n\t}\n\tfor _, p := range formatSet.Paragraph {\n\t\tu := p.Font.Underline\n\t\t_, ok := textUnderlineType[u]\n\t\tif !ok {\n\t\t\tu = \"none\"\n\t\t}\n\t\ttext := p.Text\n\t\tif text == \"\" {\n\t\t\ttext = \" \"\n\t\t}\n\t\tparagraph := &aP{\n\t\t\tR: &aR{\n\t\t\t\tRPr: aRPr{\n\t\t\t\t\tI:       p.Font.Italic,\n\t\t\t\t\tB:       p.Font.Bold,\n\t\t\t\t\tLang:    \"en-US\",\n\t\t\t\t\tAltLang: \"en-US\",\n\t\t\t\t\tU:       u,\n\t\t\t\t\tSz:      p.Font.Size * 100,\n\t\t\t\t\tLatin:   &aLatin{Typeface: p.Font.Family},\n\t\t\t\t\tSolidFill: &aSolidFill{\n\t\t\t\t\t\tSrgbClr: &attrValString{\n\t\t\t\t\t\t\tVal: strings.Replace(strings.ToUpper(p.Font.Color), \"#\", \"\", -1),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tT: text,\n\t\t\t},\n\t\t\tEndParaRPr: &aEndParaRPr{\n\t\t\t\tLang: \"en-US\",\n\t\t\t},\n\t\t}\n\t\tshape.TxBody.P = append(shape.TxBody.P, paragraph)\n\t}\n\ttwoCellAnchor.Sp = &shape\n\ttwoCellAnchor.ClientData = &xdrClientData{\n\t\tFLocksWithSheet:  formatSet.Format.FLocksWithSheet,\n\t\tFPrintsWithSheet: formatSet.Format.FPrintsWithSheet,\n\t}\n\tcontent.TwoCellAnchor = append(content.TwoCellAnchor, &twoCellAnchor)\n\toutput, _ := xml.Marshal(content)\n\tf.saveFileList(drawingXML, output)\n}\n\n// setShapeRef provides function to set color with hex model by given actual\n// color value.\nfunc setShapeRef(color string, i int) *aRef {\n\tif color == \"\" {\n\t\treturn &aRef{\n\t\t\tIdx: 0,\n\t\t\tScrgbClr: &aScrgbClr{\n\t\t\t\tR: 0,\n\t\t\t\tG: 0,\n\t\t\t\tB: 0,\n\t\t\t},\n\t\t}\n\t}\n\treturn &aRef{\n\t\tIdx: i,\n\t\tSrgbClr: &attrValString{\n\t\t\tVal: strings.Replace(strings.ToUpper(color), \"#\", \"\", -1),\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/sheet.go",
    "content": "package excelize\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"os\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// NewSheet provides function to create a new sheet by given worksheet name,\n// when creating a new XLSX file, the default sheet will be create, when you\n// create a new file.\nfunc (f *File) NewSheet(name string) int {\n\t// Check if the worksheet already exists\n\tif f.GetSheetIndex(name) != 0 {\n\t\treturn f.SheetCount\n\t}\n\tf.SheetCount++\n\t// Update docProps/app.xml\n\tf.setAppXML()\n\t// Update [Content_Types].xml\n\tf.setContentTypes(f.SheetCount)\n\t// Create new sheet /xl/worksheets/sheet%d.xml\n\tf.setSheet(f.SheetCount, name)\n\t// Update xl/_rels/workbook.xml.rels\n\trID := f.addXlsxWorkbookRels(f.SheetCount)\n\t// Update xl/workbook.xml\n\tf.setWorkbook(name, rID)\n\treturn f.SheetCount\n}\n\n// contentTypesReader provides function to get the pointer to the\n// [Content_Types].xml structure after deserialization.\nfunc (f *File) contentTypesReader() *xlsxTypes {\n\tif f.ContentTypes == nil {\n\t\tvar content xlsxTypes\n\t\t_ = xml.Unmarshal([]byte(f.readXML(\"[Content_Types].xml\")), &content)\n\t\tf.ContentTypes = &content\n\t}\n\treturn f.ContentTypes\n}\n\n// contentTypesWriter provides function to save [Content_Types].xml after\n// serialize structure.\nfunc (f *File) contentTypesWriter() {\n\tif f.ContentTypes != nil {\n\t\toutput, _ := xml.Marshal(f.ContentTypes)\n\t\tf.saveFileList(\"[Content_Types].xml\", output)\n\t}\n}\n\n// workbookReader provides function to get the pointer to the xl/workbook.xml\n// structure after deserialization.\nfunc (f *File) workbookReader() *xlsxWorkbook {\n\tif f.WorkBook == nil {\n\t\tvar content xlsxWorkbook\n\t\t_ = xml.Unmarshal([]byte(f.readXML(\"xl/workbook.xml\")), &content)\n\t\tf.WorkBook = &content\n\t}\n\treturn f.WorkBook\n}\n\n// workbookWriter provides function to save xl/workbook.xml after serialize\n// structure.\nfunc (f *File) workbookWriter() {\n\tif f.WorkBook != nil {\n\t\toutput, _ := xml.Marshal(f.WorkBook)\n\t\tf.saveFileList(\"xl/workbook.xml\", replaceRelationshipsNameSpaceBytes(output))\n\t}\n}\n\n// worksheetWriter provides function to save xl/worksheets/sheet%d.xml after\n// serialize structure.\nfunc (f *File) worksheetWriter() {\n\tfor path, sheet := range f.Sheet {\n\t\tif sheet != nil {\n\t\t\tfor k, v := range sheet.SheetData.Row {\n\t\t\t\tf.Sheet[path].SheetData.Row[k].C = trimCell(v.C)\n\t\t\t}\n\t\t\toutput, _ := xml.Marshal(sheet)\n\t\t\tf.saveFileList(path, replaceWorkSheetsRelationshipsNameSpaceBytes(output))\n\t\t\tok := f.checked[path]\n\t\t\tif ok {\n\t\t\t\tf.checked[path] = false\n\t\t\t}\n\t\t}\n\t}\n}\n\n// trimCell provides function to trim blank cells which created by completeCol.\nfunc trimCell(column []xlsxC) []xlsxC {\n\tcol := make([]xlsxC, len(column))\n\ti := 0\n\tfor _, c := range column {\n\t\tif c.S != 0 || c.V != \"\" || c.F != nil || c.T != \"\" {\n\t\t\tcol[i] = c\n\t\t\ti++\n\t\t}\n\t}\n\treturn col[0:i]\n}\n\n// Read and update property of contents type of XLSX.\nfunc (f *File) setContentTypes(index int) {\n\tcontent := f.contentTypesReader()\n\tcontent.Overrides = append(content.Overrides, xlsxOverride{\n\t\tPartName:    \"/xl/worksheets/sheet\" + strconv.Itoa(index) + \".xml\",\n\t\tContentType: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t})\n}\n\n// Update sheet property by given index.\nfunc (f *File) setSheet(index int, name string) {\n\tvar xlsx xlsxWorksheet\n\txlsx.Dimension.Ref = \"A1\"\n\txlsx.SheetViews.SheetView = append(xlsx.SheetViews.SheetView, xlsxSheetView{\n\t\tWorkbookViewID: 0,\n\t})\n\tpath := \"xl/worksheets/sheet\" + strconv.Itoa(index) + \".xml\"\n\tf.sheetMap[trimSheetName(name)] = path\n\tf.Sheet[path] = &xlsx\n}\n\n// setWorkbook update workbook property of XLSX. Maximum 31 characters are\n// allowed in sheet title.\nfunc (f *File) setWorkbook(name string, rid int) {\n\tcontent := f.workbookReader()\n\tcontent.Sheets.Sheet = append(content.Sheets.Sheet, xlsxSheet{\n\t\tName:    trimSheetName(name),\n\t\tSheetID: strconv.Itoa(rid),\n\t\tID:      \"rId\" + strconv.Itoa(rid),\n\t})\n}\n\n// workbookRelsReader provides function to read and unmarshal workbook\n// relationships of XLSX file.\nfunc (f *File) workbookRelsReader() *xlsxWorkbookRels {\n\tif f.WorkBookRels == nil {\n\t\tvar content xlsxWorkbookRels\n\t\t_ = xml.Unmarshal([]byte(f.readXML(\"xl/_rels/workbook.xml.rels\")), &content)\n\t\tf.WorkBookRels = &content\n\t}\n\treturn f.WorkBookRels\n}\n\n// workbookRelsWriter provides function to save xl/_rels/workbook.xml.rels after\n// serialize structure.\nfunc (f *File) workbookRelsWriter() {\n\tif f.WorkBookRels != nil {\n\t\toutput, _ := xml.Marshal(f.WorkBookRels)\n\t\tf.saveFileList(\"xl/_rels/workbook.xml.rels\", output)\n\t}\n}\n\n// addXlsxWorkbookRels update workbook relationships property of XLSX.\nfunc (f *File) addXlsxWorkbookRels(sheet int) int {\n\tcontent := f.workbookRelsReader()\n\trID := 0\n\tfor _, v := range content.Relationships {\n\t\tt, _ := strconv.Atoi(strings.TrimPrefix(v.ID, \"rId\"))\n\t\tif t > rID {\n\t\t\trID = t\n\t\t}\n\t}\n\trID++\n\tID := bytes.Buffer{}\n\tID.WriteString(\"rId\")\n\tID.WriteString(strconv.Itoa(rID))\n\ttarget := bytes.Buffer{}\n\ttarget.WriteString(\"worksheets/sheet\")\n\ttarget.WriteString(strconv.Itoa(sheet))\n\ttarget.WriteString(\".xml\")\n\tcontent.Relationships = append(content.Relationships, xlsxWorkbookRelation{\n\t\tID:     ID.String(),\n\t\tTarget: target.String(),\n\t\tType:   SourceRelationshipWorkSheet,\n\t})\n\treturn rID\n}\n\n// setAppXML update docProps/app.xml file of XML.\nfunc (f *File) setAppXML() {\n\tf.saveFileList(\"docProps/app.xml\", []byte(templateDocpropsApp))\n}\n\n// Some tools that read XLSX files have very strict requirements about the\n// structure of the input XML. In particular both Numbers on the Mac and SAS\n// dislike inline XML namespace declarations, or namespace prefixes that don't\n// match the ones that Excel itself uses. This is a problem because the Go XML\n// library doesn't multiple namespace declarations in a single element of a\n// document. This function is a horrible hack to fix that after the XML\n// marshalling is completed.\nfunc replaceRelationshipsNameSpaceBytes(workbookMarshal []byte) []byte {\n\toldXmlns := []byte(`<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">`)\n\tnewXmlns := []byte(`<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x15\" xmlns:x15=\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\">`)\n\treturn bytes.Replace(workbookMarshal, oldXmlns, newXmlns, -1)\n}\n\n// SetActiveSheet provides function to set default active worksheet of XLSX by\n// given index. Note that active index is different with the index that got by\n// function GetSheetMap, and it should be greater than 0 and less than total\n// worksheet numbers.\nfunc (f *File) SetActiveSheet(index int) {\n\tif index < 1 {\n\t\tindex = 1\n\t}\n\tindex--\n\tcontent := f.workbookReader()\n\tif len(content.BookViews.WorkBookView) > 0 {\n\t\tcontent.BookViews.WorkBookView[0].ActiveTab = index\n\t} else {\n\t\tcontent.BookViews.WorkBookView = append(content.BookViews.WorkBookView, xlsxWorkBookView{\n\t\t\tActiveTab: index,\n\t\t})\n\t}\n\tindex++\n\tfor idx, name := range f.GetSheetMap() {\n\t\txlsx := f.workSheetReader(name)\n\t\tif index == idx {\n\t\t\tif len(xlsx.SheetViews.SheetView) > 0 {\n\t\t\t\txlsx.SheetViews.SheetView[0].TabSelected = true\n\t\t\t} else {\n\t\t\t\txlsx.SheetViews.SheetView = append(xlsx.SheetViews.SheetView, xlsxSheetView{\n\t\t\t\t\tTabSelected: true,\n\t\t\t\t})\n\t\t\t}\n\t\t} else {\n\t\t\tif len(xlsx.SheetViews.SheetView) > 0 {\n\t\t\t\txlsx.SheetViews.SheetView[0].TabSelected = false\n\t\t\t}\n\t\t}\n\t}\n}\n\n// GetActiveSheetIndex provides function to get active sheet of XLSX. If not\n// found the active sheet will be return integer 0.\nfunc (f *File) GetActiveSheetIndex() int {\n\tbuffer := bytes.Buffer{}\n\tcontent := f.workbookReader()\n\tfor _, v := range content.Sheets.Sheet {\n\t\txlsx := xlsxWorksheet{}\n\t\tbuffer.WriteString(\"xl/worksheets/sheet\")\n\t\tbuffer.WriteString(strings.TrimPrefix(v.ID, \"rId\"))\n\t\tbuffer.WriteString(\".xml\")\n\t\t_ = xml.Unmarshal([]byte(f.readXML(buffer.String())), &xlsx)\n\t\tfor _, sheetView := range xlsx.SheetViews.SheetView {\n\t\t\tif sheetView.TabSelected {\n\t\t\t\tID, _ := strconv.Atoi(strings.TrimPrefix(v.ID, \"rId\"))\n\t\t\t\treturn ID\n\t\t\t}\n\t\t}\n\t\tbuffer.Reset()\n\t}\n\treturn 0\n}\n\n// SetSheetName provides function to set the worksheet name be given old and new\n// worksheet name. Maximum 31 characters are allowed in sheet title and this\n// function only changes the name of the sheet and will not update the sheet\n// name in the formula or reference associated with the cell. So there may be\n// problem formula error or reference missing.\nfunc (f *File) SetSheetName(oldName, newName string) {\n\toldName = trimSheetName(oldName)\n\tnewName = trimSheetName(newName)\n\tcontent := f.workbookReader()\n\tfor k, v := range content.Sheets.Sheet {\n\t\tif v.Name == oldName {\n\t\t\tcontent.Sheets.Sheet[k].Name = newName\n\t\t\tf.sheetMap[newName] = f.sheetMap[oldName]\n\t\t\tdelete(f.sheetMap, oldName)\n\t\t}\n\t}\n}\n\n// GetSheetName provides function to get worksheet name of XLSX by given\n// worksheet index. If given sheet index is invalid, will return an empty\n// string.\nfunc (f *File) GetSheetName(index int) string {\n\tcontent := f.workbookReader()\n\trels := f.workbookRelsReader()\n\tfor _, rel := range rels.Relationships {\n\t\trID, _ := strconv.Atoi(strings.TrimSuffix(strings.TrimPrefix(rel.Target, \"worksheets/sheet\"), \".xml\"))\n\t\tif rID == index {\n\t\t\tfor _, v := range content.Sheets.Sheet {\n\t\t\t\tif v.ID == rel.ID {\n\t\t\t\t\treturn v.Name\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// GetSheetIndex provides function to get worksheet index of XLSX by given sheet\n// name. If given worksheet name is invalid, will return an integer type value\n// 0.\nfunc (f *File) GetSheetIndex(name string) int {\n\tcontent := f.workbookReader()\n\trels := f.workbookRelsReader()\n\tfor _, v := range content.Sheets.Sheet {\n\t\tif v.Name == name {\n\t\t\tfor _, rel := range rels.Relationships {\n\t\t\t\tif v.ID == rel.ID {\n\t\t\t\t\trID, _ := strconv.Atoi(strings.TrimSuffix(strings.TrimPrefix(rel.Target, \"worksheets/sheet\"), \".xml\"))\n\t\t\t\t\treturn rID\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn 0\n}\n\n// GetSheetMap provides function to get worksheet name and index map of XLSX.\n// For example:\n//\n//    xlsx, err := excelize.OpenFile(\"./Book1.xlsx\")\n//    if err != nil {\n//        return\n//    }\n//    for index, name := range xlsx.GetSheetMap() {\n//        fmt.Println(index, name)\n//    }\n//\nfunc (f *File) GetSheetMap() map[int]string {\n\tcontent := f.workbookReader()\n\trels := f.workbookRelsReader()\n\tsheetMap := map[int]string{}\n\tfor _, v := range content.Sheets.Sheet {\n\t\tfor _, rel := range rels.Relationships {\n\t\t\tif rel.ID == v.ID {\n\t\t\t\trID, _ := strconv.Atoi(strings.TrimSuffix(strings.TrimPrefix(rel.Target, \"worksheets/sheet\"), \".xml\"))\n\t\t\t\tsheetMap[rID] = v.Name\n\t\t\t}\n\t\t}\n\t}\n\treturn sheetMap\n}\n\n// getSheetMap provides function to get worksheet name and XML file path map of\n// XLSX.\nfunc (f *File) getSheetMap() map[string]string {\n\tmaps := make(map[string]string)\n\tfor idx, name := range f.GetSheetMap() {\n\t\tmaps[name] = \"xl/worksheets/sheet\" + strconv.Itoa(idx) + \".xml\"\n\t}\n\treturn maps\n}\n\n// SetSheetBackground provides function to set background picture by given\n// worksheet name.\nfunc (f *File) SetSheetBackground(sheet, picture string) error {\n\tvar err error\n\t// Check picture exists first.\n\tif _, err = os.Stat(picture); os.IsNotExist(err) {\n\t\treturn err\n\t}\n\text, ok := supportImageTypes[path.Ext(picture)]\n\tif !ok {\n\t\treturn errors.New(\"Unsupported image extension\")\n\t}\n\tpictureID := f.countMedia() + 1\n\trID := f.addSheetRelationships(sheet, SourceRelationshipImage, \"../media/image\"+strconv.Itoa(pictureID)+ext, \"\")\n\tf.addSheetPicture(sheet, rID)\n\tf.addMedia(picture, ext)\n\tf.setContentTypePartImageExtensions()\n\treturn err\n}\n\n// DeleteSheet provides function to delete worksheet in a workbook by given\n// worksheet name. Use this method with caution, which will affect changes in\n// references such as formulas, charts, and so on. If there is any referenced\n// value of the deleted worksheet, it will cause a file error when you open it.\n// This function will be invalid when only the one worksheet is left.\nfunc (f *File) DeleteSheet(name string) {\n\tcontent := f.workbookReader()\n\tfor k, v := range content.Sheets.Sheet {\n\t\tif v.Name == trimSheetName(name) && len(content.Sheets.Sheet) > 1 {\n\t\t\tcontent.Sheets.Sheet = append(content.Sheets.Sheet[:k], content.Sheets.Sheet[k+1:]...)\n\t\t\tsheet := \"xl/worksheets/sheet\" + strings.TrimPrefix(v.ID, \"rId\") + \".xml\"\n\t\t\trels := \"xl/worksheets/_rels/sheet\" + strings.TrimPrefix(v.ID, \"rId\") + \".xml.rels\"\n\t\t\ttarget := f.deleteSheetFromWorkbookRels(v.ID)\n\t\t\tf.deleteSheetFromContentTypes(target)\n\t\t\tdelete(f.sheetMap, name)\n\t\t\tdelete(f.XLSX, sheet)\n\t\t\tdelete(f.XLSX, rels)\n\t\t\tdelete(f.Sheet, sheet)\n\t\t\tf.SheetCount--\n\t\t}\n\t}\n\tf.SetActiveSheet(len(f.GetSheetMap()))\n}\n\n// deleteSheetFromWorkbookRels provides function to remove worksheet\n// relationships by given relationships ID in the file\n// xl/_rels/workbook.xml.rels.\nfunc (f *File) deleteSheetFromWorkbookRels(rID string) string {\n\tcontent := f.workbookRelsReader()\n\tfor k, v := range content.Relationships {\n\t\tif v.ID == rID {\n\t\t\tcontent.Relationships = append(content.Relationships[:k], content.Relationships[k+1:]...)\n\t\t\treturn v.Target\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// deleteSheetFromContentTypes provides function to remove worksheet\n// relationships by given target name in the file [Content_Types].xml.\nfunc (f *File) deleteSheetFromContentTypes(target string) {\n\tcontent := f.contentTypesReader()\n\tfor k, v := range content.Overrides {\n\t\tif v.PartName == \"/xl/\"+target {\n\t\t\tcontent.Overrides = append(content.Overrides[:k], content.Overrides[k+1:]...)\n\t\t}\n\t}\n}\n\n// CopySheet provides function to duplicate a worksheet by gave source and\n// target worksheet index. Note that currently doesn't support duplicate\n// workbooks that contain tables, charts or pictures. For Example:\n//\n//    // Sheet1 already exists...\n//    index := xlsx.NewSheet(\"Sheet2\")\n//    err := xlsx.CopySheet(1, index)\n//    return err\n//\nfunc (f *File) CopySheet(from, to int) error {\n\tif from < 1 || to < 1 || from == to || f.GetSheetName(from) == \"\" || f.GetSheetName(to) == \"\" {\n\t\treturn errors.New(\"Invalid worksheet index\")\n\t}\n\treturn f.copySheet(from, to)\n}\n\n// copySheet provides function to duplicate a worksheet by gave source and\n// target worksheet name.\nfunc (f *File) copySheet(from, to int) error {\n\tsheet := f.workSheetReader(\"sheet\" + strconv.Itoa(from))\n\tworksheet := xlsxWorksheet{}\n\terr := deepCopy(&worksheet, &sheet)\n\tif err != nil {\n\t\treturn err\n\t}\n\tpath := \"xl/worksheets/sheet\" + strconv.Itoa(to) + \".xml\"\n\tif len(worksheet.SheetViews.SheetView) > 0 {\n\t\tworksheet.SheetViews.SheetView[0].TabSelected = false\n\t}\n\tworksheet.Drawing = nil\n\tworksheet.TableParts = nil\n\tworksheet.PageSetUp = nil\n\tf.Sheet[path] = &worksheet\n\ttoRels := \"xl/worksheets/_rels/sheet\" + strconv.Itoa(to) + \".xml.rels\"\n\tfromRels := \"xl/worksheets/_rels/sheet\" + strconv.Itoa(from) + \".xml.rels\"\n\t_, ok := f.XLSX[fromRels]\n\tif ok {\n\t\tf.XLSX[toRels] = f.XLSX[fromRels]\n\t}\n\treturn err\n}\n\n// SetSheetVisible provides function to set worksheet visible by given worksheet\n// name. A workbook must contain at least one visible worksheet. If the given\n// worksheet has been activated, this setting will be invalidated. Sheet state\n// values as defined by http://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.sheetstatevalues.aspx\n//\n//    visible\n//    hidden\n//    veryHidden\n//\n// For example, hide Sheet1:\n//\n//    xlsx.SetSheetVisible(\"Sheet1\", false)\n//\nfunc (f *File) SetSheetVisible(name string, visible bool) {\n\tname = trimSheetName(name)\n\tcontent := f.workbookReader()\n\tif visible {\n\t\tfor k, v := range content.Sheets.Sheet {\n\t\t\tif v.Name == name {\n\t\t\t\tcontent.Sheets.Sheet[k].State = \"\"\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\tcount := 0\n\tfor _, v := range content.Sheets.Sheet {\n\t\tif v.State != \"hidden\" {\n\t\t\tcount++\n\t\t}\n\t}\n\tfor k, v := range content.Sheets.Sheet {\n\t\txlsx := f.workSheetReader(f.GetSheetMap()[k])\n\t\ttabSelected := false\n\t\tif len(xlsx.SheetViews.SheetView) > 0 {\n\t\t\ttabSelected = xlsx.SheetViews.SheetView[0].TabSelected\n\t\t}\n\t\tif v.Name == name && count > 1 && !tabSelected {\n\t\t\tcontent.Sheets.Sheet[k].State = \"hidden\"\n\t\t}\n\t}\n}\n\n// parseFormatPanesSet provides function to parse the panes settings.\nfunc parseFormatPanesSet(formatSet string) (*formatPanes, error) {\n\tformat := formatPanes{}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// SetPanes provides function to create and remove freeze panes and split panes\n// by given worksheet name and panes format set.\n//\n// activePane defines the pane that is active. The possible values for this\n// attribute are defined in the following table:\n//\n//     Enumeration Value              | Description\n//    --------------------------------+-------------------------------------------------------------\n//     bottomLeft (Bottom Left Pane)  | Bottom left pane, when both vertical and horizontal\n//                                    | splits are applied.\n//                                    |\n//                                    | This value is also used when only a horizontal split has\n//                                    | been applied, dividing the pane into upper and lower\n//                                    | regions. In that case, this value specifies the bottom\n//                                    | pane.\n//                                    |\n//    bottomRight (Bottom Right Pane) | Bottom right pane, when both vertical and horizontal\n//                                    | splits are applied.\n//                                    |\n//    topLeft (Top Left Pane)         | Top left pane, when both vertical and horizontal splits\n//                                    | are applied.\n//                                    |\n//                                    | This value is also used when only a horizontal split has\n//                                    | been applied, dividing the pane into upper and lower\n//                                    | regions. In that case, this value specifies the top pane.\n//                                    |\n//                                    | This value is also used when only a vertical split has\n//                                    | been applied, dividing the pane into right and left\n//                                    | regions. In that case, this value specifies the left pane\n//                                    |\n//    topRight (Top Right Pane)       | Top right pane, when both vertical and horizontal\n//                                    | splits are applied.\n//                                    |\n//                                    | This value is also used when only a vertical split has\n//                                    | been applied, dividing the pane into right and left\n//                                    | regions. In that case, this value specifies the right\n//                                    | pane.\n//\n// Pane state type is restricted to the values supported currently listed in the following table:\n//\n//     Enumeration Value              | Description\n//    --------------------------------+-------------------------------------------------------------\n//     frozen (Frozen)                | Panes are frozen, but were not split being frozen. In\n//                                    | this state, when the panes are unfrozen again, a single\n//                                    | pane results, with no split.\n//                                    |\n//                                    | In this state, the split bars are not adjustable.\n//                                    |\n//     split (Split)                  | Panes are split, but not frozen. In this state, the split\n//                                    | bars are adjustable by the user.\n//\n// x_split (Horizontal Split Position): Horizontal position of the split, in\n// 1/20th of a point; 0 (zero) if none. If the pane is frozen, this value\n// indicates the number of columns visible in the top pane.\n//\n// y_split (Vertical Split Position): Vertical position of the split, in 1/20th\n// of a point; 0 (zero) if none. If the pane is frozen, this value indicates the\n// number of rows visible in the left pane. The possible values for this\n// attribute are defined by the W3C XML Schema double datatype.\n//\n// top_left_cell: Location of the top left visible cell in the bottom right pane\n// (when in Left-To-Right mode).\n//\n// sqref (Sequence of References): Range of the selection. Can be non-contiguous\n// set of ranges.\n//\n// An example of how to freeze column A in the Sheet1 and set the active cell on\n// Sheet1!K16:\n//\n//    xlsx.SetPanes(\"Sheet1\", `{\"freeze\":true,\"split\":false,\"x_split\":1,\"y_split\":0,\"top_left_cell\":\"B1\",\"active_pane\":\"topRight\",\"panes\":[{\"sqref\":\"K16\",\"active_cell\":\"K16\",\"pane\":\"topRight\"}]}`)\n//\n// An example of how to freeze rows 1 to 9 in the Sheet1 and set the active cell\n// ranges on Sheet1!A11:XFD11:\n//\n//    xlsx.SetPanes(\"Sheet1\", `{\"freeze\":true,\"split\":false,\"x_split\":0,\"y_split\":9,\"top_left_cell\":\"A34\",\"active_pane\":\"bottomLeft\",\"panes\":[{\"sqref\":\"A11:XFD11\",\"active_cell\":\"A11\",\"pane\":\"bottomLeft\"}]}`)\n//\n// An example of how to create split panes in the Sheet1 and set the active cell\n// on Sheet1!J60:\n//\n//    xlsx.SetPanes(\"Sheet1\", `{\"freeze\":false,\"split\":true,\"x_split\":3270,\"y_split\":1800,\"top_left_cell\":\"N57\",\"active_pane\":\"bottomLeft\",\"panes\":[{\"sqref\":\"I36\",\"active_cell\":\"I36\"},{\"sqref\":\"G33\",\"active_cell\":\"G33\",\"pane\":\"topRight\"},{\"sqref\":\"J60\",\"active_cell\":\"J60\",\"pane\":\"bottomLeft\"},{\"sqref\":\"O60\",\"active_cell\":\"O60\",\"pane\":\"bottomRight\"}]}`)\n//\n// An example of how to unfreeze and remove all panes on Sheet1:\n//\n//    xlsx.SetPanes(\"Sheet1\", `{\"freeze\":false,\"split\":false}`)\n//\nfunc (f *File) SetPanes(sheet, panes string) {\n\tfs, _ := parseFormatPanesSet(panes)\n\txlsx := f.workSheetReader(sheet)\n\tp := &xlsxPane{\n\t\tActivePane:  fs.ActivePane,\n\t\tTopLeftCell: fs.TopLeftCell,\n\t\tXSplit:      float64(fs.XSplit),\n\t\tYSplit:      float64(fs.YSplit),\n\t}\n\tif fs.Freeze {\n\t\tp.State = \"frozen\"\n\t}\n\txlsx.SheetViews.SheetView[len(xlsx.SheetViews.SheetView)-1].Pane = p\n\tif !(fs.Freeze) && !(fs.Split) {\n\t\tif len(xlsx.SheetViews.SheetView) > 0 {\n\t\t\txlsx.SheetViews.SheetView[len(xlsx.SheetViews.SheetView)-1].Pane = nil\n\t\t}\n\t}\n\ts := []*xlsxSelection{}\n\tfor _, p := range fs.Panes {\n\t\ts = append(s, &xlsxSelection{\n\t\t\tActiveCell: p.ActiveCell,\n\t\t\tPane:       p.Pane,\n\t\t\tSQRef:      p.SQRef,\n\t\t})\n\t}\n\txlsx.SheetViews.SheetView[len(xlsx.SheetViews.SheetView)-1].Selection = s\n}\n\n// GetSheetVisible provides function to get worksheet visible by given worksheet\n// name. For example, get visible state of Sheet1:\n//\n//    xlsx.GetSheetVisible(\"Sheet1\")\n//\nfunc (f *File) GetSheetVisible(name string) bool {\n\tcontent := f.workbookReader()\n\tvisible := false\n\tfor k, v := range content.Sheets.Sheet {\n\t\tif v.Name == trimSheetName(name) {\n\t\t\tif content.Sheets.Sheet[k].State == \"\" || content.Sheets.Sheet[k].State == \"visible\" {\n\t\t\t\tvisible = true\n\t\t\t}\n\t\t}\n\t}\n\treturn visible\n}\n\n// trimSheetName provides function to trim invaild characters by given worksheet\n// name.\nfunc trimSheetName(name string) string {\n\tr := []rune{}\n\tfor _, v := range name {\n\t\tswitch v {\n\t\tcase 58, 92, 47, 63, 42, 91, 93: // replace :\\/?*[]\n\t\t\tcontinue\n\t\tdefault:\n\t\t\tr = append(r, v)\n\t\t}\n\t}\n\tname = string(r)\n\tif utf8.RuneCountInString(name) > 31 {\n\t\tname = string([]rune(name)[0:31])\n\t}\n\treturn name\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/sheetpr.go",
    "content": "package excelize\n\n// SheetPrOption is an option of a view of a worksheet. See SetSheetPrOptions().\ntype SheetPrOption interface {\n\tsetSheetPrOption(view *xlsxSheetPr)\n}\n\n// SheetPrOptionPtr is a writable SheetPrOption. See GetSheetPrOptions().\ntype SheetPrOptionPtr interface {\n\tSheetPrOption\n\tgetSheetPrOption(view *xlsxSheetPr)\n}\n\ntype (\n\t// CodeName is a SheetPrOption\n\tCodeName string\n\t// EnableFormatConditionsCalculation is a SheetPrOption\n\tEnableFormatConditionsCalculation bool\n\t// Published is a SheetPrOption\n\tPublished bool\n\t// FitToPage is a SheetPrOption\n\tFitToPage bool\n\t// AutoPageBreaks is a SheetPrOption\n\tAutoPageBreaks bool\n)\n\nfunc (o CodeName) setSheetPrOption(pr *xlsxSheetPr) {\n\tpr.CodeName = string(o)\n}\n\nfunc (o *CodeName) getSheetPrOption(pr *xlsxSheetPr) {\n\tif pr == nil {\n\t\t*o = \"\"\n\t\treturn\n\t}\n\t*o = CodeName(pr.CodeName)\n}\n\nfunc (o EnableFormatConditionsCalculation) setSheetPrOption(pr *xlsxSheetPr) {\n\tpr.EnableFormatConditionsCalculation = boolPtr(bool(o))\n}\n\nfunc (o *EnableFormatConditionsCalculation) getSheetPrOption(pr *xlsxSheetPr) {\n\tif pr == nil {\n\t\t*o = true\n\t\treturn\n\t}\n\t*o = EnableFormatConditionsCalculation(defaultTrue(pr.EnableFormatConditionsCalculation))\n}\n\nfunc (o Published) setSheetPrOption(pr *xlsxSheetPr) {\n\tpr.Published = boolPtr(bool(o))\n}\n\nfunc (o *Published) getSheetPrOption(pr *xlsxSheetPr) {\n\tif pr == nil {\n\t\t*o = true\n\t\treturn\n\t}\n\t*o = Published(defaultTrue(pr.Published))\n}\n\nfunc (o FitToPage) setSheetPrOption(pr *xlsxSheetPr) {\n\tif pr.PageSetUpPr == nil {\n\t\tif !o {\n\t\t\treturn\n\t\t}\n\t\tpr.PageSetUpPr = new(xlsxPageSetUpPr)\n\t}\n\tpr.PageSetUpPr.FitToPage = bool(o)\n}\n\nfunc (o *FitToPage) getSheetPrOption(pr *xlsxSheetPr) {\n\t// Excel default: false\n\tif pr == nil || pr.PageSetUpPr == nil {\n\t\t*o = false\n\t\treturn\n\t}\n\t*o = FitToPage(pr.PageSetUpPr.FitToPage)\n}\n\nfunc (o AutoPageBreaks) setSheetPrOption(pr *xlsxSheetPr) {\n\tif pr.PageSetUpPr == nil {\n\t\tif !o {\n\t\t\treturn\n\t\t}\n\t\tpr.PageSetUpPr = new(xlsxPageSetUpPr)\n\t}\n\tpr.PageSetUpPr.AutoPageBreaks = bool(o)\n}\n\nfunc (o *AutoPageBreaks) getSheetPrOption(pr *xlsxSheetPr) {\n\t// Excel default: false\n\tif pr == nil || pr.PageSetUpPr == nil {\n\t\t*o = false\n\t\treturn\n\t}\n\t*o = AutoPageBreaks(pr.PageSetUpPr.AutoPageBreaks)\n}\n\n// SetSheetPrOptions provides function to sets worksheet properties.\n//\n// Available options:\n//   CodeName(string)\n//   EnableFormatConditionsCalculation(bool)\n//   Published(bool)\n//   FitToPage(bool)\n//   AutoPageBreaks(bool)\nfunc (f *File) SetSheetPrOptions(name string, opts ...SheetPrOption) error {\n\tsheet := f.workSheetReader(name)\n\tpr := sheet.SheetPr\n\tif pr == nil {\n\t\tpr = new(xlsxSheetPr)\n\t\tsheet.SheetPr = pr\n\t}\n\n\tfor _, opt := range opts {\n\t\topt.setSheetPrOption(pr)\n\t}\n\treturn nil\n}\n\n// GetSheetPrOptions provides function to gets worksheet properties.\n//\n// Available options:\n//   CodeName(string)\n//   EnableFormatConditionsCalculation(bool)\n//   Published(bool)\n//   FitToPage(bool)\n//   AutoPageBreaks(bool)\nfunc (f *File) GetSheetPrOptions(name string, opts ...SheetPrOptionPtr) error {\n\tsheet := f.workSheetReader(name)\n\tpr := sheet.SheetPr\n\n\tfor _, opt := range opts {\n\t\topt.getSheetPrOption(pr)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/sheetview.go",
    "content": "package excelize\n\nimport \"fmt\"\n\n// SheetViewOption is an option of a view of a worksheet. See SetSheetViewOptions().\ntype SheetViewOption interface {\n\tsetSheetViewOption(view *xlsxSheetView)\n}\n\n// SheetViewOptionPtr is a writable SheetViewOption. See GetSheetViewOptions().\ntype SheetViewOptionPtr interface {\n\tSheetViewOption\n\tgetSheetViewOption(view *xlsxSheetView)\n}\n\ntype (\n\t// DefaultGridColor is a SheetViewOption.\n\tDefaultGridColor bool\n\t// RightToLeft is a SheetViewOption.\n\tRightToLeft bool\n\t// ShowFormulas is a SheetViewOption.\n\tShowFormulas bool\n\t// ShowGridLines is a SheetViewOption.\n\tShowGridLines bool\n\t// ShowRowColHeaders is a SheetViewOption.\n\tShowRowColHeaders bool\n\t// ZoomScale is a SheetViewOption.\n\tZoomScale float64\n\t/* TODO\n\t// ShowWhiteSpace is a SheetViewOption.\n\tShowWhiteSpace bool\n\t// ShowZeros is a SheetViewOption.\n\tShowZeros bool\n\t// WindowProtection is a SheetViewOption.\n\tWindowProtection bool\n\t*/\n)\n\n// Defaults for each option are described in XML schema for CT_SheetView\n\nfunc (o DefaultGridColor) setSheetViewOption(view *xlsxSheetView) {\n\tview.DefaultGridColor = boolPtr(bool(o))\n}\n\nfunc (o *DefaultGridColor) getSheetViewOption(view *xlsxSheetView) {\n\t*o = DefaultGridColor(defaultTrue(view.DefaultGridColor)) // Excel default: true\n}\n\nfunc (o RightToLeft) setSheetViewOption(view *xlsxSheetView) {\n\tview.RightToLeft = bool(o) // Excel default: false\n}\n\nfunc (o *RightToLeft) getSheetViewOption(view *xlsxSheetView) {\n\t*o = RightToLeft(view.RightToLeft)\n}\n\nfunc (o ShowFormulas) setSheetViewOption(view *xlsxSheetView) {\n\tview.ShowFormulas = bool(o) // Excel default: false\n}\n\nfunc (o *ShowFormulas) getSheetViewOption(view *xlsxSheetView) {\n\t*o = ShowFormulas(view.ShowFormulas) // Excel default: false\n}\n\nfunc (o ShowGridLines) setSheetViewOption(view *xlsxSheetView) {\n\tview.ShowGridLines = boolPtr(bool(o))\n}\n\nfunc (o *ShowGridLines) getSheetViewOption(view *xlsxSheetView) {\n\t*o = ShowGridLines(defaultTrue(view.ShowGridLines)) // Excel default: true\n}\n\nfunc (o ShowRowColHeaders) setSheetViewOption(view *xlsxSheetView) {\n\tview.ShowRowColHeaders = boolPtr(bool(o))\n}\n\nfunc (o *ShowRowColHeaders) getSheetViewOption(view *xlsxSheetView) {\n\t*o = ShowRowColHeaders(defaultTrue(view.ShowRowColHeaders)) // Excel default: true\n}\n\nfunc (o ZoomScale) setSheetViewOption(view *xlsxSheetView) {\n\t//This attribute is restricted to values ranging from 10 to 400.\n\tif float64(o) >= 10 && float64(o) <= 400 {\n\t\tview.ZoomScale = float64(o)\n\t}\n}\n\nfunc (o *ZoomScale) getSheetViewOption(view *xlsxSheetView) {\n\t*o = ZoomScale(view.ZoomScale)\n}\n\n// getSheetView returns the SheetView object\nfunc (f *File) getSheetView(sheetName string, viewIndex int) (*xlsxSheetView, error) {\n\txlsx := f.workSheetReader(sheetName)\n\tif viewIndex < 0 {\n\t\tif viewIndex < -len(xlsx.SheetViews.SheetView) {\n\t\t\treturn nil, fmt.Errorf(\"view index %d out of range\", viewIndex)\n\t\t}\n\t\tviewIndex = len(xlsx.SheetViews.SheetView) + viewIndex\n\t} else if viewIndex >= len(xlsx.SheetViews.SheetView) {\n\t\treturn nil, fmt.Errorf(\"view index %d out of range\", viewIndex)\n\t}\n\n\treturn &(xlsx.SheetViews.SheetView[viewIndex]), nil\n}\n\n// SetSheetViewOptions sets sheet view options.\n// The viewIndex may be negative and if so is counted backward (-1 is the last view).\n//\n// Available options:\n//    DefaultGridColor(bool)\n//    RightToLeft(bool)\n//    ShowFormulas(bool)\n//    ShowGridLines(bool)\n//    ShowRowColHeaders(bool)\n// Example:\n//    err = f.SetSheetViewOptions(\"Sheet1\", -1, ShowGridLines(false))\nfunc (f *File) SetSheetViewOptions(name string, viewIndex int, opts ...SheetViewOption) error {\n\tview, err := f.getSheetView(name, viewIndex)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, opt := range opts {\n\t\topt.setSheetViewOption(view)\n\t}\n\treturn nil\n}\n\n// GetSheetViewOptions gets the value of sheet view options.\n// The viewIndex may be negative and if so is counted backward (-1 is the last view).\n//\n// Available options:\n//    DefaultGridColor(bool)\n//    RightToLeft(bool)\n//    ShowFormulas(bool)\n//    ShowGridLines(bool)\n//    ShowRowColHeaders(bool)\n// Example:\n//    var showGridLines excelize.ShowGridLines\n//    err = f.GetSheetViewOptions(\"Sheet1\", -1, &showGridLines)\nfunc (f *File) GetSheetViewOptions(name string, viewIndex int, opts ...SheetViewOptionPtr) error {\n\tview, err := f.getSheetView(name, viewIndex)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, opt := range opts {\n\t\topt.getSheetViewOption(view)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/styles.go",
    "content": "package excelize\n\nimport (\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Excel styles can reference number formats that are built-in, all of which\n// have an id less than 164. This is a possibly incomplete list comprised of as\n// many of them as I could find.\nvar builtInNumFmt = map[int]string{\n\t0:  \"general\",\n\t1:  \"0\",\n\t2:  \"0.00\",\n\t3:  \"#,##0\",\n\t4:  \"#,##0.00\",\n\t9:  \"0%\",\n\t10: \"0.00%\",\n\t11: \"0.00e+00\",\n\t12: \"# ?/?\",\n\t13: \"# ??/??\",\n\t14: \"mm-dd-yy\",\n\t15: \"d-mmm-yy\",\n\t16: \"d-mmm\",\n\t17: \"mmm-yy\",\n\t18: \"h:mm am/pm\",\n\t19: \"h:mm:ss am/pm\",\n\t20: \"h:mm\",\n\t21: \"h:mm:ss\",\n\t22: \"m/d/yy h:mm\",\n\t37: \"#,##0 ;(#,##0)\",\n\t38: \"#,##0 ;[red](#,##0)\",\n\t39: \"#,##0.00;(#,##0.00)\",\n\t40: \"#,##0.00;[red](#,##0.00)\",\n\t41: `_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)`,\n\t42: `_(\"$\"* #,##0_);_(\"$* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)`,\n\t43: `_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)`,\n\t44: `_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)`,\n\t45: \"mm:ss\",\n\t46: \"[h]:mm:ss\",\n\t47: \"mmss.0\",\n\t48: \"##0.0e+0\",\n\t49: \"@\",\n}\n\n// langNumFmt defined number format code (with unicode values provided for\n// language glyphs where they occur) in different language.\nvar langNumFmt = map[string]map[int]string{\n\t\"zh-tw\": {\n\t\t27: \"[$-404]e/m/d\",\n\t\t28: `[$-404]e\"年\"m\"月\"d\"日\"`,\n\t\t29: `[$-404]e\"年\"m\"月\"d\"日\"`,\n\t\t30: \"m/d/yy\",\n\t\t31: `yyyy\"年\"m\"月\"d\"日\"`,\n\t\t32: `hh\"時\"mm\"分\"`,\n\t\t33: `hh\"時\"mm\"分\"ss\"秒\"`,\n\t\t34: `上午/下午 hh\"時\"mm\"分\"`,\n\t\t35: `上午/下午 hh\"時\"mm\"分\"ss\"秒\"`,\n\t\t36: \"[$-404]e/m/d\",\n\t\t50: \"[$-404]e/m/d\",\n\t\t51: `[$-404]e\"年\"m\"月\"d\"日\"`,\n\t\t52: `上午/下午 hh\"時\"mm\"分\"`,\n\t\t53: `上午/下午 hh\"時\"mm\"分\"ss\"秒\"`,\n\t\t54: `[$-404]e\"年\"m\"月\"d\"日\"`,\n\t\t55: `上午/下午 hh\"時\"mm\"分\"`,\n\t\t56: `上午/下午 hh\"時\"mm\"分\"ss\"秒\"`,\n\t\t57: \"[$-404]e/m/d\",\n\t\t58: `[$-404]e\"年\"m\"月\"d\"日\"`,\n\t},\n\t\"zh-cn\": {\n\t\t27: `yyyy\"年\"m\"月\"`,\n\t\t28: `m\"月\"d\"日\"`,\n\t\t29: `m\"月\"d\"日\"`,\n\t\t30: \"m-d-yy\",\n\t\t31: `yyyy\"年\"m\"月\"d\"日\"`,\n\t\t32: `h\"时\"mm\"分\"`,\n\t\t33: `h\"时\"mm\"分\"ss\"秒\"`,\n\t\t34: `上午/下午 h\"时\"mm\"分\"`,\n\t\t35: `上午/下午 h\"时\"mm\"分\"ss\"秒\"`,\n\t\t36: `yyyy\"年\"m\"月\"`,\n\t\t50: `yyyy\"年\"m\"月\"`,\n\t\t51: `m\"月\"d\"日\"`,\n\t\t52: `yyyy\"年\"m\"月\"`,\n\t\t53: `m\"月\"d\"日\"`,\n\t\t54: `m\"月\"d\"日\"`,\n\t\t55: `上午/下午 h\"时\"mm\"分\"`,\n\t\t56: `上午/下午 h\"时\"mm\"分\"ss\"秒\"`,\n\t\t57: `yyyy\"年\"m\"月\"`,\n\t\t58: `m\"月\"d\"日\"`,\n\t},\n\t\"zh-tw_unicode\": {\n\t\t27: \"[$-404]e/m/d\",\n\t\t28: `[$-404]e\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t29: `[$-404]e\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t30: \"m/d/yy\",\n\t\t31: `yyyy\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t32: `hh\"6642\"mm\"5206\"`,\n\t\t33: `hh\"6642\"mm\"5206\"ss\"79D2\"`,\n\t\t34: `4E0A5348/4E0B5348hh\"6642\"mm\"5206\"`,\n\t\t35: `4E0A5348/4E0B5348hh\"6642\"mm\"5206\"ss\"79D2\"`,\n\t\t36: \"[$-404]e/m/d\",\n\t\t50: \"[$-404]e/m/d\",\n\t\t51: `[$-404]e\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t52: `4E0A5348/4E0B5348hh\"6642\"mm\"5206\"`,\n\t\t53: `4E0A5348/4E0B5348hh\"6642\"mm\"5206\"ss\"79D2\"`,\n\t\t54: `[$-404]e\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t55: `4E0A5348/4E0B5348hh\"6642\"mm\"5206\"`,\n\t\t56: `4E0A5348/4E0B5348hh\"6642\"mm\"5206\"ss\"79D2\"`,\n\t\t57: \"[$-404]e/m/d\",\n\t\t58: `[$-404]e\"5E74\"m\"6708\"d\"65E5\"`,\n\t},\n\t\"zh-cn_unicode\": {\n\t\t27: `yyyy\"5E74\"m\"6708\"`,\n\t\t28: `m\"6708\"d\"65E5\"`,\n\t\t29: `m\"6708\"d\"65E5\"`,\n\t\t30: \"m-d-yy\",\n\t\t31: `yyyy\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t32: `h\"65F6\"mm\"5206\"`,\n\t\t33: `h\"65F6\"mm\"5206\"ss\"79D2\"`,\n\t\t34: `4E0A5348/4E0B5348h\"65F6\"mm\"5206\"`,\n\t\t35: `4E0A5348/4E0B5348h\"65F6\"mm\"5206\"ss\"79D2\"`,\n\t\t36: `yyyy\"5E74\"m\"6708\"`,\n\t\t50: `yyyy\"5E74\"m\"6708\"`,\n\t\t51: `m\"6708\"d\"65E5\"`,\n\t\t52: `yyyy\"5E74\"m\"6708\"`,\n\t\t53: `m\"6708\"d\"65E5\"`,\n\t\t54: `m\"6708\"d\"65E5\"`,\n\t\t55: `4E0A5348/4E0B5348h\"65F6\"mm\"5206\"`,\n\t\t56: `4E0A5348/4E0B5348h\"65F6\"mm\"5206\"ss\"79D2\"`,\n\t\t57: `yyyy\"5E74\"m\"6708\"`,\n\t\t58: `m\"6708\"d\"65E5\"`,\n\t},\n\t\"ja-jp\": {\n\t\t27: \"[$-411]ge.m.d\",\n\t\t28: `[$-411]ggge\"年\"m\"月\"d\"日\"`,\n\t\t29: `[$-411]ggge\"年\"m\"月\"d\"日\"`,\n\t\t30: \"m/d/yy\",\n\t\t31: `yyyy\"年\"m\"月\"d\"日\"`,\n\t\t32: `h\"時\"mm\"分\"`,\n\t\t33: `h\"時\"mm\"分\"ss\"秒\"`,\n\t\t34: `yyyy\"年\"m\"月\"`,\n\t\t35: `m\"月\"d\"日\"`,\n\t\t36: \"[$-411]ge.m.d\",\n\t\t50: \"[$-411]ge.m.d\",\n\t\t51: `[$-411]ggge\"年\"m\"月\"d\"日\"`,\n\t\t52: `yyyy\"年\"m\"月\"`,\n\t\t53: `m\"月\"d\"日\"`,\n\t\t54: `[$-411]ggge\"年\"m\"月\"d\"日\"`,\n\t\t55: `yyyy\"年\"m\"月\"`,\n\t\t56: `m\"月\"d\"日\"`,\n\t\t57: \"[$-411]ge.m.d\",\n\t\t58: `[$-411]ggge\"年\"m\"月\"d\"日\"`,\n\t},\n\t\"ko-kr\": {\n\t\t27: `yyyy\"年\" mm\"月\" dd\"日\"`,\n\t\t28: \"mm-dd\",\n\t\t29: \"mm-dd\",\n\t\t30: \"mm-dd-yy\",\n\t\t31: `yyyy\"년\" mm\"월\" dd\"일\"`,\n\t\t32: `h\"시\" mm\"분\"`,\n\t\t33: `h\"시\" mm\"분\" ss\"초\"`,\n\t\t34: `yyyy-mm-dd`,\n\t\t35: `yyyy-mm-dd`,\n\t\t36: `yyyy\"年\" mm\"月\" dd\"日\"`,\n\t\t50: `yyyy\"年\" mm\"月\" dd\"日\"`,\n\t\t51: \"mm-dd\",\n\t\t52: \"yyyy-mm-dd\",\n\t\t53: \"yyyy-mm-dd\",\n\t\t54: \"mm-dd\",\n\t\t55: \"yyyy-mm-dd\",\n\t\t56: \"yyyy-mm-dd\",\n\t\t57: `yyyy\"年\" mm\"月\" dd\"日\"`,\n\t\t58: \"mm-dd\",\n\t},\n\t\"ja-jp_unicode\": {\n\t\t27: \"[$-411]ge.m.d\",\n\t\t28: `[$-411]ggge\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t29: `[$-411]ggge\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t30: \"m/d/yy\",\n\t\t31: `yyyy\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t32: `h\"6642\"mm\"5206\"`,\n\t\t33: `h\"6642\"mm\"5206\"ss\"79D2\"`,\n\t\t34: `yyyy\"5E74\"m\"6708\"`,\n\t\t35: `m\"6708\"d\"65E5\"`,\n\t\t36: \"[$-411]ge.m.d\",\n\t\t50: \"[$-411]ge.m.d\",\n\t\t51: `[$-411]ggge\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t52: `yyyy\"5E74\"m\"6708\"`,\n\t\t53: `m\"6708\"d\"65E5\"`,\n\t\t54: `[$-411]ggge\"5E74\"m\"6708\"d\"65E5\"`,\n\t\t55: `yyyy\"5E74\"m\"6708\"`,\n\t\t56: `m\"6708\"d\"65E5\"`,\n\t\t57: \"[$-411]ge.m.d\",\n\t\t58: `[$-411]ggge\"5E74\"m\"6708\"d\"65E5\"`,\n\t},\n\t\"ko-kr_unicode\": {\n\t\t27: `yyyy\"5E74\" mm\"6708\" dd\"65E5\"`,\n\t\t28: \"mm-dd\",\n\t\t29: \"mm-dd\",\n\t\t30: \"mm-dd-yy\",\n\t\t31: `yyyy\"B144\" mm\"C6D4\" dd\"C77C\"`,\n\t\t32: `h\"C2DC\" mm\"BD84\"`,\n\t\t33: `h\"C2DC\" mm\"BD84\" ss\"CD08\"`,\n\t\t34: \"yyyy-mm-dd\",\n\t\t35: \"yyyy-mm-dd\",\n\t\t36: `yyyy\"5E74\" mm\"6708\" dd\"65E5\"`,\n\t\t50: `yyyy\"5E74\" mm\"6708\" dd\"65E5\"`,\n\t\t51: \"mm-dd\",\n\t\t52: \"yyyy-mm-dd\",\n\t\t53: \"yyyy-mm-dd\",\n\t\t54: \"mm-dd\",\n\t\t55: \"yyyy-mm-dd\",\n\t\t56: \"yyyy-mm-dd\",\n\t\t57: `yyyy\"5E74\" mm\"6708\" dd\"65E5\"`,\n\t\t58: \"mm-dd\",\n\t},\n\t\"th-th\": {\n\t\t59: \"t0\",\n\t\t60: \"t0.00\",\n\t\t61: \"t#,##0\",\n\t\t62: \"t#,##0.00\",\n\t\t67: \"t0%\",\n\t\t68: \"t0.00%\",\n\t\t69: \"t# ?/?\",\n\t\t70: \"t# ??/??\",\n\t\t71: \"ว/ด/ปปปป\",\n\t\t72: \"ว-ดดด-ปป\",\n\t\t73: \"ว-ดดด\",\n\t\t74: \"ดดด-ปป\",\n\t\t75: \"ช:นน\",\n\t\t76: \"ช:นน:ทท\",\n\t\t77: \"ว/ด/ปปปป ช:นน\",\n\t\t78: \"นน:ทท\",\n\t\t79: \"[ช]:นน:ทท\",\n\t\t80: \"นน:ทท.0\",\n\t\t81: \"d/m/bb\",\n\t},\n\t\"th-th_unicode\": {\n\t\t59: \"t0\",\n\t\t60: \"t0.00\",\n\t\t61: \"t#,##0\",\n\t\t62: \"t#,##0.00\",\n\t\t67: \"t0%\",\n\t\t68: \"t0.00%\",\n\t\t69: \"t# ?/?\",\n\t\t70: \"t# ??/??\",\n\t\t71: \"0E27/0E14/0E1B0E1B0E1B0E1B\",\n\t\t72: \"0E27-0E140E140E14-0E1B0E1B\",\n\t\t73: \"0E27-0E140E140E14\",\n\t\t74: \"0E140E140E14-0E1B0E1B\",\n\t\t75: \"0E0A:0E190E19\",\n\t\t76: \"0E0A:0E190E19:0E170E17\",\n\t\t77: \"0E27/0E14/0E1B0E1B0E1B0E1B 0E0A:0E190E19\",\n\t\t78: \"0E190E19:0E170E17\",\n\t\t79: \"[0E0A]:0E190E19:0E170E17\",\n\t\t80: \"0E190E19:0E170E17.0\",\n\t\t81: \"d/m/bb\",\n\t},\n}\n\n// currencyNumFmt defined the currency number format map.\nvar currencyNumFmt = map[int]string{\n\t164: `\"CN¥\",##0.00`,\n\t165: \"[$$-409]#,##0.00\",\n\t166: \"[$$-45C]#,##0.00\",\n\t167: \"[$$-1004]#,##0.00\",\n\t168: \"[$$-404]#,##0.00\",\n\t169: \"[$$-C09]#,##0.00\",\n\t170: \"[$$-2809]#,##0.00\",\n\t171: \"[$$-1009]#,##0.00\",\n\t172: \"[$$-2009]#,##0.00\",\n\t173: \"[$$-1409]#,##0.00\",\n\t174: \"[$$-4809]#,##0.00\",\n\t175: \"[$$-2C09]#,##0.00\",\n\t176: \"[$$-2409]#,##0.00\",\n\t177: \"[$$-1000]#,##0.00\",\n\t178: `#,##0.00\\ [$$-C0C]`,\n\t179: \"[$$-475]#,##0.00\",\n\t180: \"[$$-83E]#,##0.00\",\n\t181: `[$$-86B]\\ #,##0.00`,\n\t182: `[$$-340A]\\ #,##0.00`,\n\t183: \"[$$-240A]#,##0.00\",\n\t184: `[$$-300A]\\ #,##0.00`,\n\t185: \"[$$-440A]#,##0.00\",\n\t186: \"[$$-80A]#,##0.00\",\n\t187: \"[$$-500A]#,##0.00\",\n\t188: \"[$$-540A]#,##0.00\",\n\t189: `[$$-380A]\\ #,##0.00`,\n\t190: \"[$£-809]#,##0.00\",\n\t191: \"[$£-491]#,##0.00\",\n\t192: \"[$£-452]#,##0.00\",\n\t193: \"[$¥-804]#,##0.00\",\n\t194: \"[$¥-411]#,##0.00\",\n\t195: \"[$¥-478]#,##0.00\",\n\t196: \"[$¥-451]#,##0.00\",\n\t197: \"[$¥-480]#,##0.00\",\n\t198: \"#,##0.00\\\\ [$\\u058F-42B]\",\n\t199: \"[$\\u060B-463]#,##0.00\",\n\t200: \"[$\\u060B-48C]#,##0.00\",\n\t201: \"[$\\u09F3-845]\\\\ #,##0.00\",\n\t202: \"#,##0.00[$\\u17DB-453]\",\n\t203: \"[$\\u20A1-140A]#,##0.00\",\n\t204: \"[$\\u20A6-468]\\\\ #,##0.00\",\n\t205: \"[$\\u20A6-470]\\\\ #,##0.00\",\n\t206: \"[$\\u20A9-412]#,##0.00\",\n\t207: \"[$\\u20AA-40D]\\\\ #,##0.00\",\n\t208: \"#,##0.00\\\\ [$\\u20AB-42A]\",\n\t209: \"#,##0.00\\\\ [$\\u20AC-42D]\",\n\t210: \"#,##0.00\\\\ [$\\u20AC-47E]\",\n\t211: \"#,##0.00\\\\ [$\\u20AC-403]\",\n\t212: \"#,##0.00\\\\ [$\\u20AC-483]\",\n\t213: \"[$\\u20AC-813]\\\\ #,##0.00\",\n\t214: \"[$\\u20AC-413]\\\\ #,##0.00\",\n\t215: \"[$\\u20AC-1809]#,##0.00\",\n\t216: \"#,##0.00\\\\ [$\\u20AC-425]\",\n\t217: \"[$\\u20AC-2]\\\\ #,##0.00\",\n\t218: \"#,##0.00\\\\ [$\\u20AC-1]\",\n\t219: \"#,##0.00\\\\ [$\\u20AC-40B]\",\n\t220: \"#,##0.00\\\\ [$\\u20AC-80C]\",\n\t221: \"#,##0.00\\\\ [$\\u20AC-40C]\",\n\t222: \"#,##0.00\\\\ [$\\u20AC-140C]\",\n\t223: \"#,##0.00\\\\ [$\\u20AC-180C]\",\n\t224: \"[$\\u20AC-200C]#,##0.00\",\n\t225: \"#,##0.00\\\\ [$\\u20AC-456]\",\n\t226: \"#,##0.00\\\\ [$\\u20AC-C07]\",\n\t227: \"#,##0.00\\\\ [$\\u20AC-407]\",\n\t228: \"#,##0.00\\\\ [$\\u20AC-1007]\",\n\t229: \"#,##0.00\\\\ [$\\u20AC-408]\",\n\t230: \"#,##0.00\\\\ [$\\u20AC-243B]\",\n\t231: \"[$\\u20AC-83C]#,##0.00\",\n\t232: \"[$\\u20AC-410]\\\\ #,##0.00\",\n\t233: \"[$\\u20AC-476]#,##0.00\",\n\t234: \"#,##0.00\\\\ [$\\u20AC-2C1A]\",\n\t235: \"[$\\u20AC-426]\\\\ #,##0.00\",\n\t236: \"#,##0.00\\\\ [$\\u20AC-427]\",\n\t237: \"#,##0.00\\\\ [$\\u20AC-82E]\",\n\t238: \"#,##0.00\\\\ [$\\u20AC-46E]\",\n\t239: \"[$\\u20AC-43A]#,##0.00\",\n\t240: \"#,##0.00\\\\ [$\\u20AC-C3B]\",\n\t241: \"#,##0.00\\\\ [$\\u20AC-482]\",\n\t242: \"#,##0.00\\\\ [$\\u20AC-816]\",\n\t243: \"#,##0.00\\\\ [$\\u20AC-301A]\",\n\t244: \"#,##0.00\\\\ [$\\u20AC-203B]\",\n\t245: \"#,##0.00\\\\ [$\\u20AC-41B]\",\n\t246: \"#,##0.00\\\\ [$\\u20AC-424]\",\n\t247: \"#,##0.00\\\\ [$\\u20AC-C0A]\",\n\t248: \"#,##0.00\\\\ [$\\u20AC-81D]\",\n\t249: \"#,##0.00\\\\ [$\\u20AC-484]\",\n\t250: \"#,##0.00\\\\ [$\\u20AC-42E]\",\n\t251: \"[$\\u20AC-462]\\\\ #,##0.00\",\n\t252: \"#,##0.00\\\\ [$₭-454]\",\n\t253: \"#,##0.00\\\\ [$₮-450]\",\n\t254: \"[$\\u20AE-C50]#,##0.00\",\n\t255: \"[$\\u20B1-3409]#,##0.00\",\n\t256: \"[$\\u20B1-464]#,##0.00\",\n\t257: \"#,##0.00[$\\u20B4-422]\",\n\t258: \"[$\\u20B8-43F]#,##0.00\",\n\t259: \"[$\\u20B9-460]#,##0.00\",\n\t260: \"[$\\u20B9-4009]\\\\ #,##0.00\",\n\t261: \"[$\\u20B9-447]\\\\ #,##0.00\",\n\t262: \"[$\\u20B9-439]\\\\ #,##0.00\",\n\t263: \"[$\\u20B9-44B]\\\\ #,##0.00\",\n\t264: \"[$\\u20B9-860]#,##0.00\",\n\t265: \"[$\\u20B9-457]\\\\ #,##0.00\",\n\t266: \"[$\\u20B9-458]#,##0.00\",\n\t267: \"[$\\u20B9-44E]\\\\ #,##0.00\",\n\t268: \"[$\\u20B9-861]#,##0.00\",\n\t269: \"[$\\u20B9-448]\\\\ #,##0.00\",\n\t270: \"[$\\u20B9-446]\\\\ #,##0.00\",\n\t271: \"[$\\u20B9-44F]\\\\ #,##0.00\",\n\t272: \"[$\\u20B9-459]#,##0.00\",\n\t273: \"[$\\u20B9-449]\\\\ #,##0.00\",\n\t274: \"[$\\u20B9-820]#,##0.00\",\n\t275: \"#,##0.00\\\\ [$\\u20BA-41F]\",\n\t276: \"#,##0.00\\\\ [$\\u20BC-42C]\",\n\t277: \"#,##0.00\\\\ [$\\u20BC-82C]\",\n\t278: \"#,##0.00\\\\ [$\\u20BD-419]\",\n\t279: \"#,##0.00[$\\u20BD-485]\",\n\t280: \"#,##0.00\\\\ [$\\u20BE-437]\",\n\t281: \"[$B/.-180A]\\\\ #,##0.00\",\n\t282: \"[$Br-472]#,##0.00\",\n\t283: \"[$Br-477]#,##0.00\",\n\t284: \"#,##0.00[$Br-473]\",\n\t285: \"[$Bs-46B]\\\\ #,##0.00\",\n\t286: \"[$Bs-400A]\\\\ #,##0.00\",\n\t287: \"[$Bs.-200A]\\\\ #,##0.00\",\n\t288: \"[$BWP-832]\\\\ #,##0.00\",\n\t289: \"[$C$-4C0A]#,##0.00\",\n\t290: \"[$CA$-85D]#,##0.00\",\n\t291: \"[$CA$-47C]#,##0.00\",\n\t292: \"[$CA$-45D]#,##0.00\",\n\t293: \"[$CFA-340C]#,##0.00\",\n\t294: \"[$CFA-280C]#,##0.00\",\n\t295: \"#,##0.00\\\\ [$CFA-867]\",\n\t296: \"#,##0.00\\\\ [$CFA-488]\",\n\t297: \"#,##0.00\\\\ [$CHF-100C]\",\n\t298: \"[$CHF-1407]\\\\ #,##0.00\",\n\t299: \"[$CHF-807]\\\\ #,##0.00\",\n\t300: \"[$CHF-810]\\\\ #,##0.00\",\n\t301: \"[$CHF-417]\\\\ #,##0.00\",\n\t302: \"[$CLP-47A]\\\\ #,##0.00\",\n\t303: \"[$CN¥-850]#,##0.00\",\n\t304: \"#,##0.00\\\\ [$DZD-85F]\",\n\t305: \"[$FCFA-2C0C]#,##0.00\",\n\t306: \"#,##0.00\\\\ [$Ft-40E]\",\n\t307: \"[$G-3C0C]#,##0.00\",\n\t308: \"[$Gs.-3C0A]\\\\ #,##0.00\",\n\t309: \"[$GTQ-486]#,##0.00\",\n\t310: \"[$HK$-C04]#,##0.00\",\n\t311: \"[$HK$-3C09]#,##0.00\",\n\t312: \"#,##0.00\\\\ [$HRK-41A]\",\n\t313: \"[$IDR-3809]#,##0.00\",\n\t314: \"[$IQD-492]#,##0.00\",\n\t315: \"#,##0.00\\\\ [$ISK-40F]\",\n\t316: \"[$K-455]#,##0.00\",\n\t317: \"#,##0.00\\\\ [$K\\u010D-405]\",\n\t318: \"#,##0.00\\\\ [$KM-141A]\",\n\t319: \"#,##0.00\\\\ [$KM-101A]\",\n\t320: \"#,##0.00\\\\ [$KM-181A]\",\n\t321: \"[$kr-438]\\\\ #,##0.00\",\n\t322: \"[$kr-43B]\\\\ #,##0.00\",\n\t323: \"#,##0.00\\\\ [$kr-83B]\",\n\t324: \"[$kr-414]\\\\ #,##0.00\",\n\t325: \"[$kr-814]\\\\ #,##0.00\",\n\t326: \"#,##0.00\\\\ [$kr-41D]\",\n\t327: \"[$kr.-406]\\\\ #,##0.00\",\n\t328: \"[$kr.-46F]\\\\ #,##0.00\",\n\t329: \"[$Ksh-441]#,##0.00\",\n\t330: \"[$L-818]#,##0.00\",\n\t331: \"[$L-819]#,##0.00\",\n\t332: \"[$L-480A]\\\\ #,##0.00\",\n\t333: \"#,##0.00\\\\ [$Lek\\u00EB-41C]\",\n\t334: \"[$MAD-45F]#,##0.00\",\n\t335: \"[$MAD-380C]#,##0.00\",\n\t336: \"#,##0.00\\\\ [$MAD-105F]\",\n\t337: \"[$MOP$-1404]#,##0.00\",\n\t338: \"#,##0.00\\\\ [$MVR-465]_-\",\n\t339: \"#,##0.00[$Nfk-873]\",\n\t340: \"[$NGN-466]#,##0.00\",\n\t341: \"[$NGN-467]#,##0.00\",\n\t342: \"[$NGN-469]#,##0.00\",\n\t343: \"[$NGN-471]#,##0.00\",\n\t344: \"[$NOK-103B]\\\\ #,##0.00\",\n\t345: \"[$NOK-183B]\\\\ #,##0.00\",\n\t346: \"[$NZ$-481]#,##0.00\",\n\t347: \"[$PKR-859]\\\\ #,##0.00\",\n\t348: \"[$PYG-474]#,##0.00\",\n\t349: \"[$Q-100A]#,##0.00\",\n\t350: \"[$R-436]\\\\ #,##0.00\",\n\t351: \"[$R-1C09]\\\\ #,##0.00\",\n\t352: \"[$R-435]\\\\ #,##0.00\",\n\t353: \"[$R$-416]\\\\ #,##0.00\",\n\t354: \"[$RD$-1C0A]#,##0.00\",\n\t355: \"#,##0.00\\\\ [$RF-487]\",\n\t356: \"[$RM-4409]#,##0.00\",\n\t357: \"[$RM-43E]#,##0.00\",\n\t358: \"#,##0.00\\\\ [$RON-418]\",\n\t359: \"[$Rp-421]#,##0.00\",\n\t360: \"[$Rs-420]#,##0.00_-\",\n\t361: \"[$Rs.-849]\\\\ #,##0.00\",\n\t362: \"#,##0.00\\\\ [$RSD-81A]\",\n\t363: \"#,##0.00\\\\ [$RSD-C1A]\",\n\t364: \"#,##0.00\\\\ [$RUB-46D]\",\n\t365: \"#,##0.00\\\\ [$RUB-444]\",\n\t366: \"[$S/.-C6B]\\\\ #,##0.00\",\n\t367: \"[$S/.-280A]\\\\ #,##0.00\",\n\t368: \"#,##0.00\\\\ [$SEK-143B]\",\n\t369: \"#,##0.00\\\\ [$SEK-1C3B]\",\n\t370: \"#,##0.00\\\\ [$so\\u02BBm-443]\",\n\t371: \"#,##0.00\\\\ [$so\\u02BBm-843]\",\n\t372: \"#,##0.00\\\\ [$SYP-45A]\",\n\t373: \"[$THB-41E]#,##0.00\",\n\t374: \"#,##0.00[$TMT-442]\",\n\t375: \"[$US$-3009]#,##0.00\",\n\t376: \"[$ZAR-46C]\\\\ #,##0.00\",\n\t377: \"[$ZAR-430]#,##0.00\",\n\t378: \"[$ZAR-431]#,##0.00\",\n\t379: \"[$ZAR-432]\\\\ #,##0.00\",\n\t380: \"[$ZAR-433]#,##0.00\",\n\t381: \"[$ZAR-434]\\\\ #,##0.00\",\n\t382: \"#,##0.00\\\\ [$z\\u0142-415]\",\n\t383: \"#,##0.00\\\\ [$\\u0434\\u0435\\u043D-42F]\",\n\t384: \"#,##0.00\\\\ [$КМ-201A]\",\n\t385: \"#,##0.00\\\\ [$КМ-1C1A]\",\n\t386: \"#,##0.00\\\\ [$\\u043B\\u0432.-402]\",\n\t387: \"#,##0.00\\\\ [$р.-423]\",\n\t388: \"#,##0.00\\\\ [$\\u0441\\u043E\\u043C-440]\",\n\t389: \"#,##0.00\\\\ [$\\u0441\\u043E\\u043C-428]\",\n\t390: \"[$\\u062C.\\u0645.-C01]\\\\ #,##0.00_-\",\n\t391: \"[$\\u062F.\\u0623.-2C01]\\\\ #,##0.00_-\",\n\t392: \"[$\\u062F.\\u0625.-3801]\\\\ #,##0.00_-\",\n\t393: \"[$\\u062F.\\u0628.-3C01]\\\\ #,##0.00_-\",\n\t394: \"[$\\u062F.\\u062A.-1C01]\\\\ #,##0.00_-\",\n\t395: \"[$\\u062F.\\u062C.-1401]\\\\ #,##0.00_-\",\n\t396: \"[$\\u062F.\\u0639.-801]\\\\ #,##0.00_-\",\n\t397: \"[$\\u062F.\\u0643.-3401]\\\\ #,##0.00_-\",\n\t398: \"[$\\u062F.\\u0644.-1001]#,##0.00_-\",\n\t399: \"[$\\u062F.\\u0645.-1801]\\\\ #,##0.00_-\",\n\t400: \"[$\\u0631-846]\\\\ #,##0.00\",\n\t401: \"[$\\u0631.\\u0633.-401]\\\\ #,##0.00_-\",\n\t402: \"[$\\u0631.\\u0639.-2001]\\\\ #,##0.00_-\",\n\t403: \"[$\\u0631.\\u0642.-4001]\\\\ #,##0.00_-\",\n\t404: \"[$\\u0631.\\u064A.-2401]\\\\ #,##0.00_-\",\n\t405: \"[$\\u0631\\u06CC\\u0627\\u0644-429]#,##0.00_-\",\n\t406: \"[$\\u0644.\\u0633.-2801]\\\\ #,##0.00_-\",\n\t407: \"[$\\u0644.\\u0644.-3001]\\\\ #,##0.00_-\",\n\t408: \"[$\\u1265\\u122D-45E]#,##0.00\",\n\t409: \"[$\\u0930\\u0942-461]#,##0.00\",\n\t410: \"[$\\u0DBB\\u0DD4.-45B]\\\\ #,##0.00\",\n\t411: \"[$ADP]\\\\ #,##0.00\",\n\t412: \"[$AED]\\\\ #,##0.00\",\n\t413: \"[$AFA]\\\\ #,##0.00\",\n\t414: \"[$AFN]\\\\ #,##0.00\",\n\t415: \"[$ALL]\\\\ #,##0.00\",\n\t416: \"[$AMD]\\\\ #,##0.00\",\n\t417: \"[$ANG]\\\\ #,##0.00\",\n\t418: \"[$AOA]\\\\ #,##0.00\",\n\t419: \"[$ARS]\\\\ #,##0.00\",\n\t420: \"[$ATS]\\\\ #,##0.00\",\n\t421: \"[$AUD]\\\\ #,##0.00\",\n\t422: \"[$AWG]\\\\ #,##0.00\",\n\t423: \"[$AZM]\\\\ #,##0.00\",\n\t424: \"[$AZN]\\\\ #,##0.00\",\n\t425: \"[$BAM]\\\\ #,##0.00\",\n\t426: \"[$BBD]\\\\ #,##0.00\",\n\t427: \"[$BDT]\\\\ #,##0.00\",\n\t428: \"[$BEF]\\\\ #,##0.00\",\n\t429: \"[$BGL]\\\\ #,##0.00\",\n\t430: \"[$BGN]\\\\ #,##0.00\",\n\t431: \"[$BHD]\\\\ #,##0.00\",\n\t432: \"[$BIF]\\\\ #,##0.00\",\n\t433: \"[$BMD]\\\\ #,##0.00\",\n\t434: \"[$BND]\\\\ #,##0.00\",\n\t435: \"[$BOB]\\\\ #,##0.00\",\n\t436: \"[$BOV]\\\\ #,##0.00\",\n\t437: \"[$BRL]\\\\ #,##0.00\",\n\t438: \"[$BSD]\\\\ #,##0.00\",\n\t439: \"[$BTN]\\\\ #,##0.00\",\n\t440: \"[$BWP]\\\\ #,##0.00\",\n\t441: \"[$BYR]\\\\ #,##0.00\",\n\t442: \"[$BZD]\\\\ #,##0.00\",\n\t443: \"[$CAD]\\\\ #,##0.00\",\n\t444: \"[$CDF]\\\\ #,##0.00\",\n\t445: \"[$CHE]\\\\ #,##0.00\",\n\t446: \"[$CHF]\\\\ #,##0.00\",\n\t447: \"[$CHW]\\\\ #,##0.00\",\n\t448: \"[$CLF]\\\\ #,##0.00\",\n\t449: \"[$CLP]\\\\ #,##0.00\",\n\t450: \"[$CNY]\\\\ #,##0.00\",\n\t451: \"[$COP]\\\\ #,##0.00\",\n\t452: \"[$COU]\\\\ #,##0.00\",\n\t453: \"[$CRC]\\\\ #,##0.00\",\n\t454: \"[$CSD]\\\\ #,##0.00\",\n\t455: \"[$CUC]\\\\ #,##0.00\",\n\t456: \"[$CVE]\\\\ #,##0.00\",\n\t457: \"[$CYP]\\\\ #,##0.00\",\n\t458: \"[$CZK]\\\\ #,##0.00\",\n\t459: \"[$DEM]\\\\ #,##0.00\",\n\t460: \"[$DJF]\\\\ #,##0.00\",\n\t461: \"[$DKK]\\\\ #,##0.00\",\n\t462: \"[$DOP]\\\\ #,##0.00\",\n\t463: \"[$DZD]\\\\ #,##0.00\",\n\t464: \"[$ECS]\\\\ #,##0.00\",\n\t465: \"[$ECV]\\\\ #,##0.00\",\n\t466: \"[$EEK]\\\\ #,##0.00\",\n\t467: \"[$EGP]\\\\ #,##0.00\",\n\t468: \"[$ERN]\\\\ #,##0.00\",\n\t469: \"[$ESP]\\\\ #,##0.00\",\n\t470: \"[$ETB]\\\\ #,##0.00\",\n\t471: \"[$EUR]\\\\ #,##0.00\",\n\t472: \"[$FIM]\\\\ #,##0.00\",\n\t473: \"[$FJD]\\\\ #,##0.00\",\n\t474: \"[$FKP]\\\\ #,##0.00\",\n\t475: \"[$FRF]\\\\ #,##0.00\",\n\t476: \"[$GBP]\\\\ #,##0.00\",\n\t477: \"[$GEL]\\\\ #,##0.00\",\n\t478: \"[$GHC]\\\\ #,##0.00\",\n\t479: \"[$GHS]\\\\ #,##0.00\",\n\t480: \"[$GIP]\\\\ #,##0.00\",\n\t481: \"[$GMD]\\\\ #,##0.00\",\n\t482: \"[$GNF]\\\\ #,##0.00\",\n\t483: \"[$GRD]\\\\ #,##0.00\",\n\t484: \"[$GTQ]\\\\ #,##0.00\",\n\t485: \"[$GYD]\\\\ #,##0.00\",\n\t486: \"[$HKD]\\\\ #,##0.00\",\n\t487: \"[$HNL]\\\\ #,##0.00\",\n\t488: \"[$HRK]\\\\ #,##0.00\",\n\t489: \"[$HTG]\\\\ #,##0.00\",\n\t490: \"[$HUF]\\\\ #,##0.00\",\n\t491: \"[$IDR]\\\\ #,##0.00\",\n\t492: \"[$IEP]\\\\ #,##0.00\",\n\t493: \"[$ILS]\\\\ #,##0.00\",\n\t494: \"[$INR]\\\\ #,##0.00\",\n\t495: \"[$IQD]\\\\ #,##0.00\",\n\t496: \"[$IRR]\\\\ #,##0.00\",\n\t497: \"[$ISK]\\\\ #,##0.00\",\n\t498: \"[$ITL]\\\\ #,##0.00\",\n\t499: \"[$JMD]\\\\ #,##0.00\",\n\t500: \"[$JOD]\\\\ #,##0.00\",\n\t501: \"[$JPY]\\\\ #,##0.00\",\n\t502: \"[$KAF]\\\\ #,##0.00\",\n\t503: \"[$KES]\\\\ #,##0.00\",\n\t504: \"[$KGS]\\\\ #,##0.00\",\n\t505: \"[$KHR]\\\\ #,##0.00\",\n\t506: \"[$KMF]\\\\ #,##0.00\",\n\t507: \"[$KPW]\\\\ #,##0.00\",\n\t508: \"[$KRW]\\\\ #,##0.00\",\n\t509: \"[$KWD]\\\\ #,##0.00\",\n\t510: \"[$KYD]\\\\ #,##0.00\",\n\t511: \"[$KZT]\\\\ #,##0.00\",\n\t512: \"[$LAK]\\\\ #,##0.00\",\n\t513: \"[$LBP]\\\\ #,##0.00\",\n\t514: \"[$LKR]\\\\ #,##0.00\",\n\t515: \"[$LRD]\\\\ #,##0.00\",\n\t516: \"[$LSL]\\\\ #,##0.00\",\n\t517: \"[$LTL]\\\\ #,##0.00\",\n\t518: \"[$LUF]\\\\ #,##0.00\",\n\t519: \"[$LVL]\\\\ #,##0.00\",\n\t520: \"[$LYD]\\\\ #,##0.00\",\n\t521: \"[$MAD]\\\\ #,##0.00\",\n\t522: \"[$MDL]\\\\ #,##0.00\",\n\t523: \"[$MGA]\\\\ #,##0.00\",\n\t524: \"[$MGF]\\\\ #,##0.00\",\n\t525: \"[$MKD]\\\\ #,##0.00\",\n\t526: \"[$MMK]\\\\ #,##0.00\",\n\t527: \"[$MNT]\\\\ #,##0.00\",\n\t528: \"[$MOP]\\\\ #,##0.00\",\n\t529: \"[$MRO]\\\\ #,##0.00\",\n\t530: \"[$MTL]\\\\ #,##0.00\",\n\t531: \"[$MUR]\\\\ #,##0.00\",\n\t532: \"[$MVR]\\\\ #,##0.00\",\n\t533: \"[$MWK]\\\\ #,##0.00\",\n\t534: \"[$MXN]\\\\ #,##0.00\",\n\t535: \"[$MXV]\\\\ #,##0.00\",\n\t536: \"[$MYR]\\\\ #,##0.00\",\n\t537: \"[$MZM]\\\\ #,##0.00\",\n\t538: \"[$MZN]\\\\ #,##0.00\",\n\t539: \"[$NAD]\\\\ #,##0.00\",\n\t540: \"[$NGN]\\\\ #,##0.00\",\n\t541: \"[$NIO]\\\\ #,##0.00\",\n\t542: \"[$NLG]\\\\ #,##0.00\",\n\t543: \"[$NOK]\\\\ #,##0.00\",\n\t544: \"[$NPR]\\\\ #,##0.00\",\n\t545: \"[$NTD]\\\\ #,##0.00\",\n\t546: \"[$NZD]\\\\ #,##0.00\",\n\t547: \"[$OMR]\\\\ #,##0.00\",\n\t548: \"[$PAB]\\\\ #,##0.00\",\n\t549: \"[$PEN]\\\\ #,##0.00\",\n\t550: \"[$PGK]\\\\ #,##0.00\",\n\t551: \"[$PHP]\\\\ #,##0.00\",\n\t552: \"[$PKR]\\\\ #,##0.00\",\n\t553: \"[$PLN]\\\\ #,##0.00\",\n\t554: \"[$PTE]\\\\ #,##0.00\",\n\t555: \"[$PYG]\\\\ #,##0.00\",\n\t556: \"[$QAR]\\\\ #,##0.00\",\n\t557: \"[$ROL]\\\\ #,##0.00\",\n\t558: \"[$RON]\\\\ #,##0.00\",\n\t559: \"[$RSD]\\\\ #,##0.00\",\n\t560: \"[$RUB]\\\\ #,##0.00\",\n\t561: \"[$RUR]\\\\ #,##0.00\",\n\t562: \"[$RWF]\\\\ #,##0.00\",\n\t563: \"[$SAR]\\\\ #,##0.00\",\n\t564: \"[$SBD]\\\\ #,##0.00\",\n\t565: \"[$SCR]\\\\ #,##0.00\",\n\t566: \"[$SDD]\\\\ #,##0.00\",\n\t567: \"[$SDG]\\\\ #,##0.00\",\n\t568: \"[$SDP]\\\\ #,##0.00\",\n\t569: \"[$SEK]\\\\ #,##0.00\",\n\t570: \"[$SGD]\\\\ #,##0.00\",\n\t571: \"[$SHP]\\\\ #,##0.00\",\n\t572: \"[$SIT]\\\\ #,##0.00\",\n\t573: \"[$SKK]\\\\ #,##0.00\",\n\t574: \"[$SLL]\\\\ #,##0.00\",\n\t575: \"[$SOS]\\\\ #,##0.00\",\n\t576: \"[$SPL]\\\\ #,##0.00\",\n\t577: \"[$SRD]\\\\ #,##0.00\",\n\t578: \"[$SRG]\\\\ #,##0.00\",\n\t579: \"[$STD]\\\\ #,##0.00\",\n\t580: \"[$SVC]\\\\ #,##0.00\",\n\t581: \"[$SYP]\\\\ #,##0.00\",\n\t582: \"[$SZL]\\\\ #,##0.00\",\n\t583: \"[$THB]\\\\ #,##0.00\",\n\t584: \"[$TJR]\\\\ #,##0.00\",\n\t585: \"[$TJS]\\\\ #,##0.00\",\n\t586: \"[$TMM]\\\\ #,##0.00\",\n\t587: \"[$TMT]\\\\ #,##0.00\",\n\t588: \"[$TND]\\\\ #,##0.00\",\n\t589: \"[$TOP]\\\\ #,##0.00\",\n\t590: \"[$TRL]\\\\ #,##0.00\",\n\t591: \"[$TRY]\\\\ #,##0.00\",\n\t592: \"[$TTD]\\\\ #,##0.00\",\n\t593: \"[$TWD]\\\\ #,##0.00\",\n\t594: \"[$TZS]\\\\ #,##0.00\",\n\t595: \"[$UAH]\\\\ #,##0.00\",\n\t596: \"[$UGX]\\\\ #,##0.00\",\n\t597: \"[$USD]\\\\ #,##0.00\",\n\t598: \"[$USN]\\\\ #,##0.00\",\n\t599: \"[$USS]\\\\ #,##0.00\",\n\t600: \"[$UYI]\\\\ #,##0.00\",\n\t601: \"[$UYU]\\\\ #,##0.00\",\n\t602: \"[$UZS]\\\\ #,##0.00\",\n\t603: \"[$VEB]\\\\ #,##0.00\",\n\t604: \"[$VEF]\\\\ #,##0.00\",\n\t605: \"[$VND]\\\\ #,##0.00\",\n\t606: \"[$VUV]\\\\ #,##0.00\",\n\t607: \"[$WST]\\\\ #,##0.00\",\n\t608: \"[$XAF]\\\\ #,##0.00\",\n\t609: \"[$XAG]\\\\ #,##0.00\",\n\t610: \"[$XAU]\\\\ #,##0.00\",\n\t611: \"[$XB5]\\\\ #,##0.00\",\n\t612: \"[$XBA]\\\\ #,##0.00\",\n\t613: \"[$XBB]\\\\ #,##0.00\",\n\t614: \"[$XBC]\\\\ #,##0.00\",\n\t615: \"[$XBD]\\\\ #,##0.00\",\n\t616: \"[$XCD]\\\\ #,##0.00\",\n\t617: \"[$XDR]\\\\ #,##0.00\",\n\t618: \"[$XFO]\\\\ #,##0.00\",\n\t619: \"[$XFU]\\\\ #,##0.00\",\n\t620: \"[$XOF]\\\\ #,##0.00\",\n\t621: \"[$XPD]\\\\ #,##0.00\",\n\t622: \"[$XPF]\\\\ #,##0.00\",\n\t623: \"[$XPT]\\\\ #,##0.00\",\n\t624: \"[$XTS]\\\\ #,##0.00\",\n\t625: \"[$XXX]\\\\ #,##0.00\",\n\t626: \"[$YER]\\\\ #,##0.00\",\n\t627: \"[$YUM]\\\\ #,##0.00\",\n\t628: \"[$ZAR]\\\\ #,##0.00\",\n\t629: \"[$ZMK]\\\\ #,##0.00\",\n\t630: \"[$ZMW]\\\\ #,##0.00\",\n\t631: \"[$ZWD]\\\\ #,##0.00\",\n\t632: \"[$ZWL]\\\\ #,##0.00\",\n\t633: \"[$ZWN]\\\\ #,##0.00\",\n\t634: \"[$ZWR]\\\\ #,##0.00\",\n}\n\n// builtInNumFmtFunc defined the format conversion functions map. Partial format\n// code doesn't support currently and will return original string.\nvar builtInNumFmtFunc = map[int]func(i int, v string) string{\n\t0:  formatToString,\n\t1:  formatToInt,\n\t2:  formatToFloat,\n\t3:  formatToInt,\n\t4:  formatToFloat,\n\t9:  formatToC,\n\t10: formatToD,\n\t11: formatToE,\n\t12: formatToString, // Doesn't support currently\n\t13: formatToString, // Doesn't support currently\n\t14: parseTime,\n\t15: parseTime,\n\t16: parseTime,\n\t17: parseTime,\n\t18: parseTime,\n\t19: parseTime,\n\t20: parseTime,\n\t21: parseTime,\n\t22: parseTime,\n\t37: formatToA,\n\t38: formatToA,\n\t39: formatToB,\n\t40: formatToB,\n\t41: formatToString, // Doesn't support currently\n\t42: formatToString, // Doesn't support currently\n\t43: formatToString, // Doesn't support currently\n\t44: formatToString, // Doesn't support currently\n\t45: parseTime,\n\t46: parseTime,\n\t47: parseTime,\n\t48: formatToE,\n\t49: formatToString,\n}\n\n// validType defined the list of valid validation types.\nvar validType = map[string]string{\n\t\"cell\":          \"cellIs\",\n\t\"date\":          \"date\", // Doesn't support currently\n\t\"time\":          \"time\", // Doesn't support currently\n\t\"average\":       \"aboveAverage\",\n\t\"duplicate\":     \"duplicateValues\",\n\t\"unique\":        \"uniqueValues\",\n\t\"top\":           \"top10\",\n\t\"bottom\":        \"top10\",\n\t\"text\":          \"text\",              // Doesn't support currently\n\t\"time_period\":   \"timePeriod\",        // Doesn't support currently\n\t\"blanks\":        \"containsBlanks\",    // Doesn't support currently\n\t\"no_blanks\":     \"notContainsBlanks\", // Doesn't support currently\n\t\"errors\":        \"containsErrors\",    // Doesn't support currently\n\t\"no_errors\":     \"notContainsErrors\", // Doesn't support currently\n\t\"2_color_scale\": \"2_color_scale\",\n\t\"3_color_scale\": \"3_color_scale\",\n\t\"data_bar\":      \"dataBar\",\n\t\"formula\":       \"expression\",\n}\n\n// criteriaType defined the list of valid criteria types.\nvar criteriaType = map[string]string{\n\t\"between\":      \"between\",\n\t\"not between\":  \"notBetween\",\n\t\"equal to\":     \"equal\",\n\t\"=\":            \"equal\",\n\t\"==\":           \"equal\",\n\t\"not equal to\": \"notEqual\",\n\t\"!=\":           \"notEqual\",\n\t\"<>\":           \"notEqual\",\n\t\"greater than\": \"greaterThan\",\n\t\">\":            \"greaterThan\",\n\t\"less than\":    \"lessThan\",\n\t\"<\":            \"lessThan\",\n\t\"greater than or equal to\": \"greaterThanOrEqual\",\n\t\">=\": \"greaterThanOrEqual\",\n\t\"less than or equal to\": \"lessThanOrEqual\",\n\t\"<=\":             \"lessThanOrEqual\",\n\t\"containing\":     \"containsText\",\n\t\"not containing\": \"notContains\",\n\t\"begins with\":    \"beginsWith\",\n\t\"ends with\":      \"endsWith\",\n\t\"yesterday\":      \"yesterday\",\n\t\"today\":          \"today\",\n\t\"last 7 days\":    \"last7Days\",\n\t\"last week\":      \"lastWeek\",\n\t\"this week\":      \"thisWeek\",\n\t\"continue week\":  \"continueWeek\",\n\t\"last month\":     \"lastMonth\",\n\t\"this month\":     \"thisMonth\",\n\t\"continue month\": \"continueMonth\",\n}\n\n// formatToString provides function to return original string by given built-in\n// number formats code and cell string.\nfunc formatToString(i int, v string) string {\n\treturn v\n}\n\n// formatToInt provides function to convert original string to integer format as\n// string type by given built-in number formats code and cell string.\nfunc formatToInt(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\treturn fmt.Sprintf(\"%d\", int(f))\n}\n\n// formatToFloat provides function to convert original string to float format as\n// string type by given built-in number formats code and cell string.\nfunc formatToFloat(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\treturn fmt.Sprintf(\"%.2f\", f)\n}\n\n// formatToA provides function to convert original string to special format as\n// string type by given built-in number formats code and cell string.\nfunc formatToA(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\tif f < 0 {\n\t\tt := int(math.Abs(f))\n\t\treturn fmt.Sprintf(\"(%d)\", t)\n\t}\n\tt := int(f)\n\treturn fmt.Sprintf(\"%d\", t)\n}\n\n// formatToB provides function to convert original string to special format as\n// string type by given built-in number formats code and cell string.\nfunc formatToB(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\tif f < 0 {\n\t\treturn fmt.Sprintf(\"(%.2f)\", f)\n\t}\n\treturn fmt.Sprintf(\"%.2f\", f)\n}\n\n// formatToC provides function to convert original string to special format as\n// string type by given built-in number formats code and cell string.\nfunc formatToC(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\tf = f * 100\n\treturn fmt.Sprintf(\"%d%%\", int(f))\n}\n\n// formatToD provides function to convert original string to special format as\n// string type by given built-in number formats code and cell string.\nfunc formatToD(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\tf = f * 100\n\treturn fmt.Sprintf(\"%.2f%%\", f)\n}\n\n// formatToE provides function to convert original string to special format as\n// string type by given built-in number formats code and cell string.\nfunc formatToE(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\treturn fmt.Sprintf(\"%.e\", f)\n}\n\n// parseTime provides function to returns a string parsed using time.Time.\n// Replace Excel placeholders with Go time placeholders. For example, replace\n// yyyy with 2006. These are in a specific order, due to the fact that m is used\n// in month, minute, and am/pm. It would be easier to fix that with regular\n// expressions, but if it's possible to keep this simple it would be easier to\n// maintain. Full-length month and days (e.g. March, Tuesday) have letters in\n// them that would be replaced by other characters below (such as the 'h' in\n// March, or the 'd' in Tuesday) below. First we convert them to arbitrary\n// characters unused in Excel Date formats, and then at the end, turn them to\n// what they should actually be.\n// Based off: http://www.ozgrid.com/Excel/CustomFormats.htm\nfunc parseTime(i int, v string) string {\n\tf, err := strconv.ParseFloat(v, 64)\n\tif err != nil {\n\t\treturn v\n\t}\n\tval := timeFromExcelTime(f, false)\n\tformat := builtInNumFmt[i]\n\n\treplacements := []struct{ xltime, gotime string }{\n\t\t{\"yyyy\", \"2006\"},\n\t\t{\"yy\", \"06\"},\n\t\t{\"mmmm\", \"%%%%\"},\n\t\t{\"dddd\", \"&&&&\"},\n\t\t{\"dd\", \"02\"},\n\t\t{\"d\", \"2\"},\n\t\t{\"mmm\", \"Jan\"},\n\t\t{\"mmss\", \"0405\"},\n\t\t{\"ss\", \"05\"},\n\t\t{\"mm:\", \"04:\"},\n\t\t{\":mm\", \":04\"},\n\t\t{\"mm\", \"01\"},\n\t\t{\"am/pm\", \"pm\"},\n\t\t{\"m/\", \"1/\"},\n\t\t{\"%%%%\", \"January\"},\n\t\t{\"&&&&\", \"Monday\"},\n\t}\n\t// It is the presence of the \"am/pm\" indicator that determines if this is\n\t// a 12 hour or 24 hours time format, not the number of 'h' characters.\n\tif is12HourTime(format) {\n\t\tformat = strings.Replace(format, \"hh\", \"03\", 1)\n\t\tformat = strings.Replace(format, \"h\", \"3\", 1)\n\t} else {\n\t\tformat = strings.Replace(format, \"hh\", \"15\", 1)\n\t\tformat = strings.Replace(format, \"h\", \"15\", 1)\n\t}\n\tfor _, repl := range replacements {\n\t\tformat = strings.Replace(format, repl.xltime, repl.gotime, 1)\n\t}\n\t// If the hour is optional, strip it out, along with the possible dangling\n\t// colon that would remain.\n\tif val.Hour() < 1 {\n\t\tformat = strings.Replace(format, \"]:\", \"]\", 1)\n\t\tformat = strings.Replace(format, \"[03]\", \"\", 1)\n\t\tformat = strings.Replace(format, \"[3]\", \"\", 1)\n\t\tformat = strings.Replace(format, \"[15]\", \"\", 1)\n\t} else {\n\t\tformat = strings.Replace(format, \"[3]\", \"3\", 1)\n\t\tformat = strings.Replace(format, \"[15]\", \"15\", 1)\n\t}\n\treturn val.Format(format)\n}\n\n// is12HourTime checks whether an Excel time format string is a 12 hours form.\nfunc is12HourTime(format string) bool {\n\treturn strings.Contains(format, \"am/pm\") || strings.Contains(format, \"AM/PM\") || strings.Contains(format, \"a/p\") || strings.Contains(format, \"A/P\")\n}\n\n// stylesReader provides function to get the pointer to the structure after\n// deserialization of xl/styles.xml.\nfunc (f *File) stylesReader() *xlsxStyleSheet {\n\tif f.Styles == nil {\n\t\tvar styleSheet xlsxStyleSheet\n\t\t_ = xml.Unmarshal([]byte(f.readXML(\"xl/styles.xml\")), &styleSheet)\n\t\tf.Styles = &styleSheet\n\t}\n\treturn f.Styles\n}\n\n// styleSheetWriter provides function to save xl/styles.xml after serialize\n// structure.\nfunc (f *File) styleSheetWriter() {\n\tif f.Styles != nil {\n\t\toutput, _ := xml.Marshal(f.Styles)\n\t\tf.saveFileList(\"xl/styles.xml\", replaceWorkSheetsRelationshipsNameSpaceBytes(output))\n\t}\n}\n\n// parseFormatStyleSet provides function to parse the format settings of the\n// cells and conditional formats.\nfunc parseFormatStyleSet(style string) (*formatStyle, error) {\n\tformat := formatStyle{\n\t\tDecimalPlaces: 2,\n\t}\n\terr := json.Unmarshal([]byte(style), &format)\n\treturn &format, err\n}\n\n// NewStyle provides function to create style for cells by given style format.\n// Note that the color field uses RGB color code.\n//\n// The following shows the border styles sorted by excelize index number:\n//\n//     Index | Name          | Weight | Style\n//    -------+---------------+--------+-------------\n//     0     | None          | 0      |\n//     1     | Continuous    | 1      | -----------\n//     2     | Continuous    | 2      | -----------\n//     3     | Dash          | 1      | - - - - - -\n//     4     | Dot           | 1      | . . . . . .\n//     5     | Continuous    | 3      | -----------\n//     6     | Double        | 3      | ===========\n//     7     | Continuous    | 0      | -----------\n//     8     | Dash          | 2      | - - - - - -\n//     9     | Dash Dot      | 1      | - . - . - .\n//     10    | Dash Dot      | 2      | - . - . - .\n//     11    | Dash Dot Dot  | 1      | - . . - . .\n//     12    | Dash Dot Dot  | 2      | - . . - . .\n//     13    | SlantDash Dot | 2      | / - . / - .\n//\n// The following shows the borders in the order shown in the Excel dialog:\n//\n//     Index | Style       | Index | Style\n//    -------+-------------+-------+-------------\n//     0     | None        | 12    | - . . - . .\n//     7     | ----------- | 13    | / - . / - .\n//     4     | . . . . . . | 10    | - . - . - .\n//     11    | - . . - . . | 8     | - - - - - -\n//     9     | - . - . - . | 2     | -----------\n//     3     | - - - - - - | 5     | -----------\n//     1     | ----------- | 6     | ===========\n//\n// The following shows the shading styles sorted by excelize index number:\n//\n//     Index | Style           | Index | Style\n//    -------+-----------------+-------+-----------------\n//     0     | Horizontal      | 3     | Diagonal down\n//     1     | Vertical        | 4     | From corner\n//     2     | Diagonal Up     | 5     | From center\n//\n// The following shows the patterns styles sorted by excelize index number:\n//\n//     Index | Style           | Index | Style\n//    -------+-----------------+-------+-----------------\n//     0     | None            | 10    | darkTrellis\n//     1     | solid           | 11    | lightHorizontal\n//     2     | mediumGray      | 12    | lightVertical\n//     3     | darkGray        | 13    | lightDown\n//     4     | lightGray       | 14    | lightUp\n//     5     | darkHorizontal  | 15    | lightGrid\n//     6     | darkVertical    | 16    | lightTrellis\n//     7     | darkDown        | 17    | gray125\n//     8     | darkUp          | 18    | gray0625\n//     9     | darkGrid        |       |\n//\n// The following the type of horizontal alignment in cells:\n//\n//     Style\n//    ------------------\n//     left\n//     center\n//     right\n//     fill\n//     justify\n//     centerContinuous\n//     distributed\n//\n// The following the type of vertical alignment in cells:\n//\n//     Style\n//    ------------------\n//     top\n//     center\n//     justify\n//     distributed\n//\n// The following the type of font underline style:\n//\n//     Style\n//    ------------------\n//     single\n//     double\n//\n// Excel's built-in all languages formats are shown in the following table:\n//\n//     Index | Format String\n//    -------+----------------------------------------------------\n//     0     | General\n//     1     | 0\n//     2     | 0.00\n//     3     | #,##0\n//     4     | #,##0.00\n//     5     | ($#,##0_);($#,##0)\n//     6     | ($#,##0_);[Red]($#,##0)\n//     7     | ($#,##0.00_);($#,##0.00)\n//     8     | ($#,##0.00_);[Red]($#,##0.00)\n//     9     | 0%\n//     10    | 0.00%\n//     11    | 0.00E+00\n//     12    | # ?/?\n//     13    | # ??/??\n//     14    | m/d/yy\n//     15    | d-mmm-yy\n//     16    | d-mmm\n//     17    | mmm-yy\n//     18    | h:mm AM/PM\n//     19    | h:mm:ss AM/PM\n//     20    | h:mm\n//     21    | h:mm:ss\n//     22    | m/d/yy h:mm\n//     ...   | ...\n//     37    | (#,##0_);(#,##0)\n//     38    | (#,##0_);[Red](#,##0)\n//     39    | (#,##0.00_);(#,##0.00)\n//     40    | (#,##0.00_);[Red](#,##0.00)\n//     41    | _(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)\n//     42    | _($* #,##0_);_($* (#,##0);_($* \"-\"_);_(@_)\n//     43    | _(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)\n//     44    | _($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)\n//     45    | mm:ss\n//     46    | [h]:mm:ss\n//     47    | mm:ss.0\n//     48    | ##0.0E+0\n//     49    | @\n//\n// Number format code in zh-tw language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | [$-404]e/m/d\n//     28    | [$-404]e\"年\"m\"月\"d\"日\"\n//     29    | [$-404]e\"年\"m\"月\"d\"日\"\n//     30    | m/d/yy\n//     31    | yyyy\"年\"m\"月\"d\"日\"\n//     32    | hh\"時\"mm\"分\"\n//     33    | hh\"時\"mm\"分\"ss\"秒\"\n//     34    | 上午/下午 hh\"時\"mm\"分\"\n//     35    | 上午/下午 hh\"時\"mm\"分\"ss\"秒\"\n//     36    | [$-404]e/m/d\n//     50    | [$-404]e/m/d\n//     51    | [$-404]e\"年\"m\"月\"d\"日\"\n//     52    | 上午/下午 hh\"時\"mm\"分\"\n//     53    | 上午/下午 hh\"時\"mm\"分\"ss\"秒\"\n//     54    | [$-404]e\"年\"m\"月\"d\"日\"\n//     55    | 上午/下午 hh\"時\"mm\"分\"\n//     56    | 上午/下午 hh\"時\"mm\"分\"ss\"秒\"\n//     57    | [$-404]e/m/d\n//     58    | [$-404]e\"年\"m\"月\"d\"日\"\n//\n// Number format code in zh-cn language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | yyyy\"年\"m\"月\"\n//     28    | m\"月\"d\"日\"\n//     29    | m\"月\"d\"日\"\n//     30    | m-d-yy\n//     31    | yyyy\"年\"m\"月\"d\"日\"\n//     32    | h\"时\"mm\"分\"\n//     33    | h\"时\"mm\"分\"ss\"秒\"\n//     34    | 上午/下午 h\"时\"mm\"分\"\n//     35    | 上午/下午 h\"时\"mm\"分\"ss\"秒\n//     36    | yyyy\"年\"m\"月\n//     50    | yyyy\"年\"m\"月\n//     51    | m\"月\"d\"日\n//     52    | yyyy\"年\"m\"月\n//     53    | m\"月\"d\"日\n//     54    | m\"月\"d\"日\n//     55    | 上午/下午 h\"时\"mm\"分\n//     56    | 上午/下午 h\"时\"mm\"分\"ss\"秒\n//     57    | yyyy\"年\"m\"月\n//     58    | m\"月\"d\"日\"\n//\n// Number format code with unicode values provided for language glyphs where\n// they occur in zh-tw language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | [$-404]e/m/\n//     28    | [$-404]e\"5E74\"m\"6708\"d\"65E5\n//     29    | [$-404]e\"5E74\"m\"6708\"d\"65E5\n//     30    | m/d/y\n//     31    | yyyy\"5E74\"m\"6708\"d\"65E5\n//     32    | hh\"6642\"mm\"5206\n//     33    | hh\"6642\"mm\"5206\"ss\"79D2\n//     34    | 4E0A5348/4E0B5348hh\"6642\"mm\"5206\n//     35    | 4E0A5348/4E0B5348hh\"6642\"mm\"5206\"ss\"79D2\n//     36    | [$-404]e/m/\n//     50    | [$-404]e/m/\n//     51    | [$-404]e\"5E74\"m\"6708\"d\"65E5\n//     52    | 4E0A5348/4E0B5348hh\"6642\"mm\"5206\n//     53    | 4E0A5348/4E0B5348hh\"6642\"mm\"5206\"ss\"79D2\n//     54    | [$-404]e\"5E74\"m\"6708\"d\"65E5\n//     55    | 4E0A5348/4E0B5348hh\"6642\"mm\"5206\n//     56    | 4E0A5348/4E0B5348hh\"6642\"mm\"5206\"ss\"79D2\n//     57    | [$-404]e/m/\n//     58    | [$-404]e\"5E74\"m\"6708\"d\"65E5\"\n//\n// Number format code with unicode values provided for language glyphs where\n// they occur in zh-cn language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | yyyy\"5E74\"m\"6708\n//     28    | m\"6708\"d\"65E5\n//     29    | m\"6708\"d\"65E5\n//     30    | m-d-y\n//     31    | yyyy\"5E74\"m\"6708\"d\"65E5\n//     32    | h\"65F6\"mm\"5206\n//     33    | h\"65F6\"mm\"5206\"ss\"79D2\n//     34    | 4E0A5348/4E0B5348h\"65F6\"mm\"5206\n//     35    | 4E0A5348/4E0B5348h\"65F6\"mm\"5206\"ss\"79D2\n//     36    | yyyy\"5E74\"m\"6708\n//     50    | yyyy\"5E74\"m\"6708\n//     51    | m\"6708\"d\"65E5\n//     52    | yyyy\"5E74\"m\"6708\n//     53    | m\"6708\"d\"65E5\n//     54    | m\"6708\"d\"65E5\n//     55    | 4E0A5348/4E0B5348h\"65F6\"mm\"5206\n//     56    | 4E0A5348/4E0B5348h\"65F6\"mm\"5206\"ss\"79D2\n//     57    | yyyy\"5E74\"m\"6708\n//     58    | m\"6708\"d\"65E5\"\n//\n// Number format code in ja-jp language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | [$-411]ge.m.d\n//     28    | [$-411]ggge\"年\"m\"月\"d\"日\n//     29    | [$-411]ggge\"年\"m\"月\"d\"日\n//     30    | m/d/y\n//     31    | yyyy\"年\"m\"月\"d\"日\n//     32    | h\"時\"mm\"分\n//     33    | h\"時\"mm\"分\"ss\"秒\n//     34    | yyyy\"年\"m\"月\n//     35    | m\"月\"d\"日\n//     36    | [$-411]ge.m.d\n//     50    | [$-411]ge.m.d\n//     51    | [$-411]ggge\"年\"m\"月\"d\"日\n//     52    | yyyy\"年\"m\"月\n//     53    | m\"月\"d\"日\n//     54    | [$-411]ggge\"年\"m\"月\"d\"日\n//     55    | yyyy\"年\"m\"月\n//     56    | m\"月\"d\"日\n//     57    | [$-411]ge.m.d\n//     58    | [$-411]ggge\"年\"m\"月\"d\"日\"\n//\n// Number format code in ko-kr language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | yyyy\"年\" mm\"月\" dd\"日\n//     28    | mm-d\n//     29    | mm-d\n//     30    | mm-dd-y\n//     31    | yyyy\"년\" mm\"월\" dd\"일\n//     32    | h\"시\" mm\"분\n//     33    | h\"시\" mm\"분\" ss\"초\n//     34    | yyyy-mm-d\n//     35    | yyyy-mm-d\n//     36    | yyyy\"年\" mm\"月\" dd\"日\n//     50    | yyyy\"年\" mm\"月\" dd\"日\n//     51    | mm-d\n//     52    | yyyy-mm-d\n//     53    | yyyy-mm-d\n//     54    | mm-d\n//     55    | yyyy-mm-d\n//     56    | yyyy-mm-d\n//     57    | yyyy\"年\" mm\"月\" dd\"日\n//     58    | mm-dd\n//\n// Number format code with unicode values provided for language glyphs where\n// they occur in ja-jp language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | [$-411]ge.m.d\n//     28    | [$-411]ggge\"5E74\"m\"6708\"d\"65E5\n//     29    | [$-411]ggge\"5E74\"m\"6708\"d\"65E5\n//     30    | m/d/y\n//     31    | yyyy\"5E74\"m\"6708\"d\"65E5\n//     32    | h\"6642\"mm\"5206\n//     33    | h\"6642\"mm\"5206\"ss\"79D2\n//     34    | yyyy\"5E74\"m\"6708\n//     35    | m\"6708\"d\"65E5\n//     36    | [$-411]ge.m.d\n//     50    | [$-411]ge.m.d\n//     51    | [$-411]ggge\"5E74\"m\"6708\"d\"65E5\n//     52    | yyyy\"5E74\"m\"6708\n//     53    | m\"6708\"d\"65E5\n//     54    | [$-411]ggge\"5E74\"m\"6708\"d\"65E5\n//     55    | yyyy\"5E74\"m\"6708\n//     56    | m\"6708\"d\"65E5\n//     57    | [$-411]ge.m.d\n//     58    | [$-411]ggge\"5E74\"m\"6708\"d\"65E5\"\n//\n// Number format code with unicode values provided for language glyphs where\n// they occur in ko-kr language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     27    | yyyy\"5E74\" mm\"6708\" dd\"65E5\n//     28    | mm-d\n//     29    | mm-d\n//     30    | mm-dd-y\n//     31    | yyyy\"B144\" mm\"C6D4\" dd\"C77C\n//     32    | h\"C2DC\" mm\"BD84\n//     33    | h\"C2DC\" mm\"BD84\" ss\"CD08\n//     34    | yyyy-mm-d\n//     35    | yyyy-mm-d\n//     36    | yyyy\"5E74\" mm\"6708\" dd\"65E5\n//     50    | yyyy\"5E74\" mm\"6708\" dd\"65E5\n//     51    | mm-d\n//     52    | yyyy-mm-d\n//     53    | yyyy-mm-d\n//     54    | mm-d\n//     55    | yyyy-mm-d\n//     56    | yyyy-mm-d\n//     57    | yyyy\"5E74\" mm\"6708\" dd\"65E5\n//     58    | mm-dd\n//\n// Number format code in th-th language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     59    | t\n//     60    | t0.0\n//     61    | t#,##\n//     62    | t#,##0.0\n//     67    | t0\n//     68    | t0.00\n//     69    | t# ?/\n//     70    | t# ??/?\n//     71    | ว/ด/ปปป\n//     72    | ว-ดดด-ป\n//     73    | ว-ดด\n//     74    | ดดด-ป\n//     75    | ช:น\n//     76    | ช:นน:ท\n//     77    | ว/ด/ปปปป ช:น\n//     78    | นน:ท\n//     79    | [ช]:นน:ท\n//     80    | นน:ทท.\n//     81    | d/m/bb\n//\n// Number format code with unicode values provided for language glyphs where\n// they occur in th-th language:\n//\n//     Index | Symbol\n//    -------+-------------------------------------------\n//     59    | t\n//     60    | t0.0\n//     61    | t#,##\n//     62    | t#,##0.0\n//     67    | t0\n//     68    | t0.00\n//     69    | t# ?/\n//     70    | t# ??/?\n//     71    | 0E27/0E14/0E1B0E1B0E1B0E1\n//     72    | 0E27-0E140E140E14-0E1B0E1\n//     73    | 0E27-0E140E140E1\n//     74    | 0E140E140E14-0E1B0E1\n//     75    | 0E0A:0E190E1\n//     76    | 0E0A:0E190E19:0E170E1\n//     77    | 0E27/0E14/0E1B0E1B0E1B0E1B 0E0A:0E190E1\n//     78    | 0E190E19:0E170E1\n//     79    | [0E0A]:0E190E19:0E170E1\n//     80    | 0E190E19:0E170E17.\n//     81    | d/m/bb\n//\n// Excelize built-in currency formats are shown in the following table, only\n// support these types in the following table (Index number is used only for\n// markup and is not used inside an Excel file and you can't get formatted value\n// by the function GetCellValue) currently:\n//\n//     Index | Symbol\n//    -------+---------------------------------------------------------------\n//     164   | CN¥\n//     165   | $ English (China)\n//     166   | $ Cherokee (United States)\n//     167   | $ Chinese (Singapore)\n//     168   | $ Chinese (Taiwan)\n//     169   | $ English (Australia)\n//     170   | $ English (Belize)\n//     171   | $ English (Canada)\n//     172   | $ English (Jamaica)\n//     173   | $ English (New Zealand)\n//     174   | $ English (Singapore)\n//     175   | $ English (Trinidad & Tobago)\n//     176   | $ English (U.S. Vigin Islands)\n//     177   | $ English (United States)\n//     178   | $ French (Canada)\n//     179   | $ Hawaiian (United States)\n//     180   | $ Malay (Brunei)\n//     181   | $ Quechua (Ecuador)\n//     182   | $ Spanish (Chile)\n//     183   | $ Spanish (Colombia)\n//     184   | $ Spanish (Ecuador)\n//     185   | $ Spanish (El Salvador)\n//     186   | $ Spanish (Mexico)\n//     187   | $ Spanish (Puerto Rico)\n//     188   | $ Spanish (United States)\n//     189   | $ Spanish (Uruguay)\n//     190   | £ English (United Kingdom)\n//     191   | £ Scottish Gaelic (United Kingdom)\n//     192   | £ Welsh (United Kindom)\n//     193   | ¥ Chinese (China)\n//     194   | ¥ Japanese (Japan)\n//     195   | ¥ Sichuan Yi (China)\n//     196   | ¥ Tibetan (China)\n//     197   | ¥ Uyghur (China)\n//     198   | ֏ Armenian (Armenia)\n//     199   | ؋ Pashto (Afghanistan)\n//     200   | ؋ Persian (Afghanistan)\n//     201   | ৳ Bengali (Bangladesh)\n//     202   | ៛ Khmer (Cambodia)\n//     203   | ₡ Spanish (Costa Rica)\n//     204   | ₦ Hausa (Nigeria)\n//     205   | ₦ Igbo (Nigeria)\n//     206   | ₦ Yoruba (Nigeria)\n//     207   | ₩ Korean (South Korea)\n//     208   | ₪ Hebrew (Israel)\n//     209   | ₫ Vietnamese (Vietnam)\n//     210   | € Basque (Spain)\n//     211   | € Breton (France)\n//     212   | € Catalan (Spain)\n//     213   | € Corsican (France)\n//     214   | € Dutch (Belgium)\n//     215   | € Dutch (Netherlands)\n//     216   | € English (Ireland)\n//     217   | € Estonian (Estonia)\n//     218   | € Euro (€ 123)\n//     219   | € Euro (123 €)\n//     220   | € Finnish (Finland)\n//     221   | € French (Belgium)\n//     222   | € French (France)\n//     223   | € French (Luxembourg)\n//     224   | € French (Monaco)\n//     225   | € French (Réunion)\n//     226   | € Galician (Spain)\n//     227   | € German (Austria)\n//     228   | € German (Luxembourg)\n//     229   | € Greek (Greece)\n//     230   | € Inari Sami (Finland)\n//     231   | € Irish (Ireland)\n//     232   | € Italian (Italy)\n//     233   | € Latin (Italy)\n//     234   | € Latin, Serbian (Montenegro)\n//     235   | € Larvian (Latvia)\n//     236   | € Lithuanian (Lithuania)\n//     237   | € Lower Sorbian (Germany)\n//     238   | € Luxembourgish (Luxembourg)\n//     239   | € Maltese (Malta)\n//     240   | € Northern Sami (Finland)\n//     241   | € Occitan (France)\n//     242   | € Portuguese (Portugal)\n//     243   | € Serbian (Montenegro)\n//     244   | € Skolt Sami (Finland)\n//     245   | € Slovak (Slovakia)\n//     246   | € Slovenian (Slovenia)\n//     247   | € Spanish (Spain)\n//     248   | € Swedish (Finland)\n//     249   | € Swiss German (France)\n//     250   | € Upper Sorbian (Germany)\n//     251   | € Western Frisian (Netherlands)\n//     252   | ₭ Lao (Laos)\n//     253   | ₮ Mongolian (Mongolia)\n//     254   | ₮ Mongolian, Mongolian (Mongolia)\n//     255   | ₱ English (Philippines)\n//     256   | ₱ Filipino (Philippines)\n//     257   | ₴ Ukrainian (Ukraine)\n//     258   | ₸ Kazakh (Kazakhstan)\n//     259   | ₹ Arabic, Kashmiri (India)\n//     260   | ₹ English (India)\n//     261   | ₹ Gujarati (India)\n//     262   | ₹ Hindi (India)\n//     263   | ₹ Kannada (India)\n//     264   | ₹ Kashmiri (India)\n//     265   | ₹ Konkani (India)\n//     266   | ₹ Manipuri (India)\n//     267   | ₹ Marathi (India)\n//     268   | ₹ Nepali (India)\n//     269   | ₹ Oriya (India)\n//     270   | ₹ Punjabi (India)\n//     271   | ₹ Sanskrit (India)\n//     272   | ₹ Sindhi (India)\n//     273   | ₹ Tamil (India)\n//     274   | ₹ Urdu (India)\n//     275   | ₺ Turkish (Turkey)\n//     276   | ₼ Azerbaijani (Azerbaijan)\n//     277   | ₼ Cyrillic, Azerbaijani (Azerbaijan)\n//     278   | ₽ Russian (Russia)\n//     279   | ₽ Sakha (Russia)\n//     280   | ₾ Georgian (Georgia)\n//     281   | B/. Spanish (Panama)\n//     282   | Br Oromo (Ethiopia)\n//     283   | Br Somali (Ethiopia)\n//     284   | Br Tigrinya (Ethiopia)\n//     285   | Bs Quechua (Bolivia)\n//     286   | Bs Spanish (Bolivia)\n//     287   | BS. Spanish (Venezuela)\n//     288   | BWP Tswana (Botswana)\n//     289   | C$ Spanish (Nicaragua)\n//     290   | CA$ Latin, Inuktitut (Canada)\n//     291   | CA$ Mohawk (Canada)\n//     292   | CA$ Unified Canadian Aboriginal Syllabics, Inuktitut (Canada)\n//     293   | CFA French (Mali)\n//     294   | CFA French (Senegal)\n//     295   | CFA Fulah (Senegal)\n//     296   | CFA Wolof (Senegal)\n//     297   | CHF French (Switzerland)\n//     298   | CHF German (Liechtenstein)\n//     299   | CHF German (Switzerland)\n//     300   | CHF Italian (Switzerland)\n//     301   | CHF Romansh (Switzerland)\n//     302   | CLP Mapuche (Chile)\n//     303   | CN¥ Mongolian, Mongolian (China)\n//     304   | DZD Central Atlas Tamazight (Algeria)\n//     305   | FCFA French (Cameroon)\n//     306   | Ft Hungarian (Hungary)\n//     307   | G French (Haiti)\n//     308   | Gs. Spanish (Paraguay)\n//     309   | GTQ K'iche' (Guatemala)\n//     310   | HK$ Chinese (Hong Kong (China))\n//     311   | HK$ English (Hong Kong (China))\n//     312   | HRK Croatian (Croatia)\n//     313   | IDR English (Indonesia)\n//     314   | IQD Arbic, Central Kurdish (Iraq)\n//     315   | ISK Icelandic (Iceland)\n//     316   | K Burmese (Myanmar (Burma))\n//     317   | Kč Czech (Czech Republic)\n//     318   | KM Bosnian (Bosnia & Herzegovina)\n//     319   | KM Croatian (Bosnia & Herzegovina)\n//     320   | KM Latin, Serbian (Bosnia & Herzegovina)\n//     321   | kr Faroese (Faroe Islands)\n//     322   | kr Northern Sami (Norway)\n//     323   | kr Northern Sami (Sweden)\n//     324   | kr Norwegian Bokmål (Norway)\n//     325   | kr Norwegian Nynorsk (Norway)\n//     326   | kr Swedish (Sweden)\n//     327   | kr. Danish (Denmark)\n//     328   | kr. Kalaallisut (Greenland)\n//     329   | Ksh Swahili (kenya)\n//     330   | L Romanian (Moldova)\n//     331   | L Russian (Moldova)\n//     332   | L Spanish (Honduras)\n//     333   | Lekë Albanian (Albania)\n//     334   | MAD Arabic, Central Atlas Tamazight (Morocco)\n//     335   | MAD French (Morocco)\n//     336   | MAD Tifinagh, Central Atlas Tamazight (Morocco)\n//     337   | MOP$ Chinese (Macau (China))\n//     338   | MVR Divehi (Maldives)\n//     339   | Nfk Tigrinya (Eritrea)\n//     340   | NGN Bini (Nigeria)\n//     341   | NGN Fulah (Nigeria)\n//     342   | NGN Ibibio (Nigeria)\n//     343   | NGN Kanuri (Nigeria)\n//     344   | NOK Lule Sami (Norway)\n//     345   | NOK Southern Sami (Norway)\n//     346   | NZ$ Maori (New Zealand)\n//     347   | PKR Sindhi (Pakistan)\n//     348   | PYG Guarani (Paraguay)\n//     349   | Q Spanish (Guatemala)\n//     350   | R Afrikaans (South Africa)\n//     351   | R English (South Africa)\n//     352   | R Zulu (South Africa)\n//     353   | R$ Portuguese (Brazil)\n//     354   | RD$ Spanish (Dominican Republic)\n//     355   | RF Kinyarwanda (Rwanda)\n//     356   | RM English (Malaysia)\n//     357   | RM Malay (Malaysia)\n//     358   | RON Romanian (Romania)\n//     359   | Rp Indonesoan (Indonesia)\n//     360   | Rs Urdu (Pakistan)\n//     361   | Rs. Tamil (Sri Lanka)\n//     362   | RSD Latin, Serbian (Serbia)\n//     363   | RSD Serbian (Serbia)\n//     364   | RUB Bashkir (Russia)\n//     365   | RUB Tatar (Russia)\n//     366   | S/. Quechua (Peru)\n//     367   | S/. Spanish (Peru)\n//     368   | SEK Lule Sami (Sweden)\n//     369   | SEK Southern Sami (Sweden)\n//     370   | soʻm Latin, Uzbek (Uzbekistan)\n//     371   | soʻm Uzbek (Uzbekistan)\n//     372   | SYP Syriac (Syria)\n//     373   | THB Thai (Thailand)\n//     374   | TMT Turkmen (Turkmenistan)\n//     375   | US$ English (Zimbabwe)\n//     376   | ZAR Northern Sotho (South Africa)\n//     377   | ZAR Southern Sotho (South Africa)\n//     378   | ZAR Tsonga (South Africa)\n//     379   | ZAR Tswana (south Africa)\n//     380   | ZAR Venda (South Africa)\n//     381   | ZAR Xhosa (South Africa)\n//     382   | zł Polish (Poland)\n//     383   | ден Macedonian (Macedonia)\n//     384   | KM Cyrillic, Bosnian (Bosnia & Herzegovina)\n//     385   | KM Serbian (Bosnia & Herzegovina)\n//     386   | лв. Bulgarian (Bulgaria)\n//     387   | p. Belarusian (Belarus)\n//     388   | сом Kyrgyz (Kyrgyzstan)\n//     389   | сом Tajik (Tajikistan)\n//     390   | ج.م. Arabic (Egypt)\n//     391   | د.أ. Arabic (Jordan)\n//     392   | د.أ. Arabic (United Arab Emirates)\n//     393   | د.ب. Arabic (Bahrain)\n//     394   | د.ت. Arabic (Tunisia)\n//     395   | د.ج. Arabic (Algeria)\n//     396   | د.ع. Arabic (Iraq)\n//     397   | د.ك. Arabic (Kuwait)\n//     398   | د.ل. Arabic (Libya)\n//     399   | د.م. Arabic (Morocco)\n//     400   | ر Punjabi (Pakistan)\n//     401   | ر.س. Arabic (Saudi Arabia)\n//     402   | ر.ع. Arabic (Oman)\n//     403   | ر.ق. Arabic (Qatar)\n//     404   | ر.ي. Arabic (Yemen)\n//     405   | ریال Persian (Iran)\n//     406   | ل.س. Arabic (Syria)\n//     407   | ل.ل. Arabic (Lebanon)\n//     408   | ብር Amharic (Ethiopia)\n//     409   | रू Nepaol (Nepal)\n//     410   | රු. Sinhala (Sri Lanka)\n//     411   | ADP\n//     412   | AED\n//     413   | AFA\n//     414   | AFN\n//     415   | ALL\n//     416   | AMD\n//     417   | ANG\n//     418   | AOA\n//     419   | ARS\n//     420   | ATS\n//     421   | AUD\n//     422   | AWG\n//     423   | AZM\n//     424   | AZN\n//     425   | BAM\n//     426   | BBD\n//     427   | BDT\n//     428   | BEF\n//     429   | BGL\n//     430   | BGN\n//     431   | BHD\n//     432   | BIF\n//     433   | BMD\n//     434   | BND\n//     435   | BOB\n//     436   | BOV\n//     437   | BRL\n//     438   | BSD\n//     439   | BTN\n//     440   | BWP\n//     441   | BYR\n//     442   | BZD\n//     443   | CAD\n//     444   | CDF\n//     445   | CHE\n//     446   | CHF\n//     447   | CHW\n//     448   | CLF\n//     449   | CLP\n//     450   | CNY\n//     451   | COP\n//     452   | COU\n//     453   | CRC\n//     454   | CSD\n//     455   | CUC\n//     456   | CVE\n//     457   | CYP\n//     458   | CZK\n//     459   | DEM\n//     460   | DJF\n//     461   | DKK\n//     462   | DOP\n//     463   | DZD\n//     464   | ECS\n//     465   | ECV\n//     466   | EEK\n//     467   | EGP\n//     468   | ERN\n//     469   | ESP\n//     470   | ETB\n//     471   | EUR\n//     472   | FIM\n//     473   | FJD\n//     474   | FKP\n//     475   | FRF\n//     476   | GBP\n//     477   | GEL\n//     478   | GHC\n//     479   | GHS\n//     480   | GIP\n//     481   | GMD\n//     482   | GNF\n//     483   | GRD\n//     484   | GTQ\n//     485   | GYD\n//     486   | HKD\n//     487   | HNL\n//     488   | HRK\n//     489   | HTG\n//     490   | HUF\n//     491   | IDR\n//     492   | IEP\n//     493   | ILS\n//     494   | INR\n//     495   | IQD\n//     496   | IRR\n//     497   | ISK\n//     498   | ITL\n//     499   | JMD\n//     500   | JOD\n//     501   | JPY\n//     502   | KAF\n//     503   | KES\n//     504   | KGS\n//     505   | KHR\n//     506   | KMF\n//     507   | KPW\n//     508   | KRW\n//     509   | KWD\n//     510   | KYD\n//     511   | KZT\n//     512   | LAK\n//     513   | LBP\n//     514   | LKR\n//     515   | LRD\n//     516   | LSL\n//     517   | LTL\n//     518   | LUF\n//     519   | LVL\n//     520   | LYD\n//     521   | MAD\n//     522   | MDL\n//     523   | MGA\n//     524   | MGF\n//     525   | MKD\n//     526   | MMK\n//     527   | MNT\n//     528   | MOP\n//     529   | MRO\n//     530   | MTL\n//     531   | MUR\n//     532   | MVR\n//     533   | MWK\n//     534   | MXN\n//     535   | MXV\n//     536   | MYR\n//     537   | MZM\n//     538   | MZN\n//     539   | NAD\n//     540   | NGN\n//     541   | NIO\n//     542   | NLG\n//     543   | NOK\n//     544   | NPR\n//     545   | NTD\n//     546   | NZD\n//     547   | OMR\n//     548   | PAB\n//     549   | PEN\n//     550   | PGK\n//     551   | PHP\n//     552   | PKR\n//     553   | PLN\n//     554   | PTE\n//     555   | PYG\n//     556   | QAR\n//     557   | ROL\n//     558   | RON\n//     559   | RSD\n//     560   | RUB\n//     561   | RUR\n//     562   | RWF\n//     563   | SAR\n//     564   | SBD\n//     565   | SCR\n//     566   | SDD\n//     567   | SDG\n//     568   | SDP\n//     569   | SEK\n//     570   | SGD\n//     571   | SHP\n//     572   | SIT\n//     573   | SKK\n//     574   | SLL\n//     575   | SOS\n//     576   | SPL\n//     577   | SRD\n//     578   | SRG\n//     579   | STD\n//     580   | SVC\n//     581   | SYP\n//     582   | SZL\n//     583   | THB\n//     584   | TJR\n//     585   | TJS\n//     586   | TMM\n//     587   | TMT\n//     588   | TND\n//     589   | TOP\n//     590   | TRL\n//     591   | TRY\n//     592   | TTD\n//     593   | TWD\n//     594   | TZS\n//     595   | UAH\n//     596   | UGX\n//     597   | USD\n//     598   | USN\n//     599   | USS\n//     600   | UYI\n//     601   | UYU\n//     602   | UZS\n//     603   | VEB\n//     604   | VEF\n//     605   | VND\n//     606   | VUV\n//     607   | WST\n//     608   | XAF\n//     609   | XAG\n//     610   | XAU\n//     611   | XB5\n//     612   | XBA\n//     613   | XBB\n//     614   | XBC\n//     615   | XBD\n//     616   | XCD\n//     617   | XDR\n//     618   | XFO\n//     619   | XFU\n//     620   | XOF\n//     621   | XPD\n//     622   | XPF\n//     623   | XPT\n//     624   | XTS\n//     625   | XXX\n//     626   | YER\n//     627   | YUM\n//     628   | ZAR\n//     629   | ZMK\n//     630   | ZMW\n//     631   | ZWD\n//     632   | ZWL\n//     633   | ZWN\n//     634   | ZWR\n//\n// Excelize support set custom number format for cell. For example, set number\n// as date type in Uruguay (Spanish) format for Sheet1!A6:\n//\n//    xlsx := excelize.NewFile()\n//    xlsx.SetCellValue(\"Sheet1\", \"A6\", 42920.5)\n//    style, _ := xlsx.NewStyle(`{\"custom_number_format\": \"[$-380A]dddd\\\\,\\\\ dd\\\" de \\\"mmmm\\\" de \\\"yyyy;@\"}`)\n//    xlsx.SetCellStyle(\"Sheet1\", \"A6\", \"A6\", style)\n//\n// Cell Sheet1!A6 in the Excel Application: martes, 04 de Julio de 2017\n//\nfunc (f *File) NewStyle(style string) (int, error) {\n\tvar cellXfsID, fontID, borderID, fillID int\n\ts := f.stylesReader()\n\tfs, err := parseFormatStyleSet(style)\n\tif err != nil {\n\t\treturn cellXfsID, err\n\t}\n\tnumFmtID := setNumFmt(s, fs)\n\n\tif fs.Font != nil {\n\t\tfont, _ := xml.Marshal(setFont(fs))\n\t\ts.Fonts.Count++\n\t\ts.Fonts.Font = append(s.Fonts.Font, &xlsxFont{\n\t\t\tFont: string(font[6 : len(font)-7]),\n\t\t})\n\t\tfontID = s.Fonts.Count - 1\n\t}\n\n\ts.Borders.Count++\n\ts.Borders.Border = append(s.Borders.Border, setBorders(fs))\n\tborderID = s.Borders.Count - 1\n\n\ts.Fills.Count++\n\ts.Fills.Fill = append(s.Fills.Fill, setFills(fs, true))\n\tfillID = s.Fills.Count - 1\n\n\tapplyAlignment, alignment := fs.Alignment != nil, setAlignment(fs)\n\tapplyProtection, protection := fs.Protection != nil, setProtection(fs)\n\tcellXfsID = setCellXfs(s, fontID, numFmtID, fillID, borderID, applyAlignment, applyProtection, alignment, protection)\n\treturn cellXfsID, nil\n}\n\n// NewConditionalStyle provides function to create style for conditional format\n// by given style format. The parameters are the same as function NewStyle().\n// Note that the color field uses RGB color code and only support to set font,\n// fills, alignment and borders currently.\nfunc (f *File) NewConditionalStyle(style string) (int, error) {\n\ts := f.stylesReader()\n\tfs, err := parseFormatStyleSet(style)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdxf := dxf{\n\t\tFill:      setFills(fs, false),\n\t\tAlignment: setAlignment(fs),\n\t\tBorder:    setBorders(fs),\n\t}\n\tif fs.Font != nil {\n\t\tdxf.Font = setFont(fs)\n\t}\n\tdxfStr, _ := xml.Marshal(dxf)\n\tif s.Dxfs == nil {\n\t\ts.Dxfs = &xlsxDxfs{}\n\t}\n\ts.Dxfs.Count++\n\ts.Dxfs.Dxfs = append(s.Dxfs.Dxfs, &xlsxDxf{\n\t\tDxf: string(dxfStr[5 : len(dxfStr)-6]),\n\t})\n\treturn s.Dxfs.Count - 1, nil\n}\n\n// setFont provides function to add font style by given cell format settings.\nfunc setFont(formatStyle *formatStyle) *font {\n\tfontUnderlineType := map[string]string{\"single\": \"single\", \"double\": \"double\"}\n\tif formatStyle.Font.Size < 1 {\n\t\tformatStyle.Font.Size = 11\n\t}\n\tif formatStyle.Font.Color == \"\" {\n\t\tformatStyle.Font.Color = \"#000000\"\n\t}\n\tf := font{\n\t\tB:      formatStyle.Font.Bold,\n\t\tI:      formatStyle.Font.Italic,\n\t\tSz:     &attrValInt{Val: formatStyle.Font.Size},\n\t\tColor:  &xlsxColor{RGB: getPaletteColor(formatStyle.Font.Color)},\n\t\tName:   &attrValString{Val: formatStyle.Font.Family},\n\t\tFamily: &attrValInt{Val: 2},\n\t}\n\tif f.Name.Val == \"\" {\n\t\tf.Name.Val = \"Calibri\"\n\t\tf.Scheme = &attrValString{Val: \"minor\"}\n\t}\n\tval, ok := fontUnderlineType[formatStyle.Font.Underline]\n\tif ok {\n\t\tf.U = &attrValString{Val: val}\n\t}\n\treturn &f\n}\n\n// setNumFmt provides function to check if number format code in the range of\n// built-in values.\nfunc setNumFmt(style *xlsxStyleSheet, formatStyle *formatStyle) int {\n\tdp := \"0.\"\n\tnumFmtID := 164 // Default custom number format code from 164.\n\tif formatStyle.DecimalPlaces < 0 || formatStyle.DecimalPlaces > 30 {\n\t\tformatStyle.DecimalPlaces = 2\n\t}\n\tfor i := 0; i < formatStyle.DecimalPlaces; i++ {\n\t\tdp += \"0\"\n\t}\n\tif formatStyle.CustomNumFmt != nil {\n\t\treturn setCustomNumFmt(style, formatStyle)\n\t}\n\t_, ok := builtInNumFmt[formatStyle.NumFmt]\n\tif !ok {\n\t\tfc, currency := currencyNumFmt[formatStyle.NumFmt]\n\t\tif !currency {\n\t\t\treturn setLangNumFmt(style, formatStyle)\n\t\t}\n\t\tfc = strings.Replace(fc, \"0.00\", dp, -1)\n\t\tif formatStyle.NegRed {\n\t\t\tfc = fc + \";[Red]\" + fc\n\t\t}\n\t\tif style.NumFmts != nil {\n\t\t\tnumFmtID = style.NumFmts.NumFmt[len(style.NumFmts.NumFmt)-1].NumFmtID + 1\n\t\t\tnf := xlsxNumFmt{\n\t\t\t\tFormatCode: fc,\n\t\t\t\tNumFmtID:   numFmtID,\n\t\t\t}\n\t\t\tstyle.NumFmts.NumFmt = append(style.NumFmts.NumFmt, &nf)\n\t\t\tstyle.NumFmts.Count++\n\t\t} else {\n\t\t\tnf := xlsxNumFmt{\n\t\t\t\tFormatCode: fc,\n\t\t\t\tNumFmtID:   numFmtID,\n\t\t\t}\n\t\t\tnumFmts := xlsxNumFmts{\n\t\t\t\tNumFmt: []*xlsxNumFmt{&nf},\n\t\t\t\tCount:  1,\n\t\t\t}\n\t\t\tstyle.NumFmts = &numFmts\n\t\t}\n\t\treturn numFmtID\n\t}\n\treturn formatStyle.NumFmt\n}\n\n// setCustomNumFmt provides function to set custom number format code.\nfunc setCustomNumFmt(style *xlsxStyleSheet, formatStyle *formatStyle) int {\n\tnf := xlsxNumFmt{FormatCode: *formatStyle.CustomNumFmt}\n\tif style.NumFmts != nil {\n\t\tnf.NumFmtID = style.NumFmts.NumFmt[len(style.NumFmts.NumFmt)-1].NumFmtID + 1\n\t\tstyle.NumFmts.NumFmt = append(style.NumFmts.NumFmt, &nf)\n\t\tstyle.NumFmts.Count++\n\t} else {\n\t\tnf.NumFmtID = 164\n\t\tnumFmts := xlsxNumFmts{\n\t\t\tNumFmt: []*xlsxNumFmt{&nf},\n\t\t\tCount:  1,\n\t\t}\n\t\tstyle.NumFmts = &numFmts\n\t}\n\treturn nf.NumFmtID\n}\n\n// setLangNumFmt provides function to set number format code with language.\nfunc setLangNumFmt(style *xlsxStyleSheet, formatStyle *formatStyle) int {\n\tnumFmts, ok := langNumFmt[formatStyle.Lang]\n\tif !ok {\n\t\treturn 0\n\t}\n\tvar fc string\n\tfc, ok = numFmts[formatStyle.NumFmt]\n\tif !ok {\n\t\treturn 0\n\t}\n\tnf := xlsxNumFmt{FormatCode: fc}\n\tif style.NumFmts != nil {\n\t\tnf.NumFmtID = style.NumFmts.NumFmt[len(style.NumFmts.NumFmt)-1].NumFmtID + 1\n\t\tstyle.NumFmts.NumFmt = append(style.NumFmts.NumFmt, &nf)\n\t\tstyle.NumFmts.Count++\n\t} else {\n\t\tnf.NumFmtID = formatStyle.NumFmt\n\t\tnumFmts := xlsxNumFmts{\n\t\t\tNumFmt: []*xlsxNumFmt{&nf},\n\t\t\tCount:  1,\n\t\t}\n\t\tstyle.NumFmts = &numFmts\n\t}\n\treturn nf.NumFmtID\n}\n\n// setFills provides function to add fill elements in the styles.xml by given\n// cell format settings.\nfunc setFills(formatStyle *formatStyle, fg bool) *xlsxFill {\n\tvar patterns = []string{\n\t\t\"none\",\n\t\t\"solid\",\n\t\t\"mediumGray\",\n\t\t\"darkGray\",\n\t\t\"lightGray\",\n\t\t\"darkHorizontal\",\n\t\t\"darkVertical\",\n\t\t\"darkDown\",\n\t\t\"darkUp\",\n\t\t\"darkGrid\",\n\t\t\"darkTrellis\",\n\t\t\"lightHorizontal\",\n\t\t\"lightVertical\",\n\t\t\"lightDown\",\n\t\t\"lightUp\",\n\t\t\"lightGrid\",\n\t\t\"lightTrellis\",\n\t\t\"gray125\",\n\t\t\"gray0625\",\n\t}\n\n\tvar variants = []float64{\n\t\t90,\n\t\t0,\n\t\t45,\n\t\t135,\n\t}\n\n\tvar fill xlsxFill\n\tswitch formatStyle.Fill.Type {\n\tcase \"gradient\":\n\t\tif len(formatStyle.Fill.Color) != 2 {\n\t\t\tbreak\n\t\t}\n\t\tvar gradient xlsxGradientFill\n\t\tswitch formatStyle.Fill.Shading {\n\t\tcase 0, 1, 2, 3:\n\t\t\tgradient.Degree = variants[formatStyle.Fill.Shading]\n\t\tcase 4:\n\t\t\tgradient.Type = \"path\"\n\t\tcase 5:\n\t\t\tgradient.Type = \"path\"\n\t\t\tgradient.Bottom = 0.5\n\t\t\tgradient.Left = 0.5\n\t\t\tgradient.Right = 0.5\n\t\t\tgradient.Top = 0.5\n\t\tdefault:\n\t\t\tbreak\n\t\t}\n\t\tvar stops []*xlsxGradientFillStop\n\t\tfor index, color := range formatStyle.Fill.Color {\n\t\t\tvar stop xlsxGradientFillStop\n\t\t\tstop.Position = float64(index)\n\t\t\tstop.Color.RGB = getPaletteColor(color)\n\t\t\tstops = append(stops, &stop)\n\t\t}\n\t\tgradient.Stop = stops\n\t\tfill.GradientFill = &gradient\n\tcase \"pattern\":\n\t\tif formatStyle.Fill.Pattern > 18 || formatStyle.Fill.Pattern < 0 {\n\t\t\tbreak\n\t\t}\n\t\tif len(formatStyle.Fill.Color) < 1 {\n\t\t\tbreak\n\t\t}\n\t\tvar pattern xlsxPatternFill\n\t\tpattern.PatternType = patterns[formatStyle.Fill.Pattern]\n\t\tif fg {\n\t\t\tpattern.FgColor.RGB = getPaletteColor(formatStyle.Fill.Color[0])\n\t\t} else {\n\t\t\tpattern.BgColor.RGB = getPaletteColor(formatStyle.Fill.Color[0])\n\t\t}\n\t\tfill.PatternFill = &pattern\n\t}\n\treturn &fill\n}\n\n// setAlignment provides function to formatting information pertaining to text\n// alignment in cells. There are a variety of choices for how text is aligned\n// both horizontally and vertically, as well as indentation settings, and so on.\nfunc setAlignment(formatStyle *formatStyle) *xlsxAlignment {\n\tvar alignment xlsxAlignment\n\tif formatStyle.Alignment != nil {\n\t\talignment.Horizontal = formatStyle.Alignment.Horizontal\n\t\talignment.Indent = formatStyle.Alignment.Indent\n\t\talignment.JustifyLastLine = formatStyle.Alignment.JustifyLastLine\n\t\talignment.ReadingOrder = formatStyle.Alignment.ReadingOrder\n\t\talignment.RelativeIndent = formatStyle.Alignment.RelativeIndent\n\t\talignment.ShrinkToFit = formatStyle.Alignment.ShrinkToFit\n\t\talignment.TextRotation = formatStyle.Alignment.TextRotation\n\t\talignment.Vertical = formatStyle.Alignment.Vertical\n\t\talignment.WrapText = formatStyle.Alignment.WrapText\n\t}\n\treturn &alignment\n}\n\n// setProtection provides function to set protection properties associated\n// with the cell.\nfunc setProtection(formatStyle *formatStyle) *xlsxProtection {\n\tvar protection xlsxProtection\n\tif formatStyle.Protection != nil {\n\t\tprotection.Hidden = formatStyle.Protection.Hidden\n\t\tprotection.Locked = formatStyle.Protection.Locked\n\t}\n\treturn &protection\n}\n\n// setBorders provides function to add border elements in the styles.xml by\n// given borders format settings.\nfunc setBorders(formatStyle *formatStyle) *xlsxBorder {\n\tvar styles = []string{\n\t\t\"none\",\n\t\t\"thin\",\n\t\t\"medium\",\n\t\t\"dashed\",\n\t\t\"dotted\",\n\t\t\"thick\",\n\t\t\"double\",\n\t\t\"hair\",\n\t\t\"mediumDashed\",\n\t\t\"dashDot\",\n\t\t\"mediumDashDot\",\n\t\t\"dashDotDot\",\n\t\t\"mediumDashDotDot\",\n\t\t\"slantDashDot\",\n\t}\n\n\tvar border xlsxBorder\n\tfor _, v := range formatStyle.Border {\n\t\tif 0 <= v.Style && v.Style < 14 {\n\t\t\tvar color xlsxColor\n\t\t\tcolor.RGB = getPaletteColor(v.Color)\n\t\t\tswitch v.Type {\n\t\t\tcase \"left\":\n\t\t\t\tborder.Left.Style = styles[v.Style]\n\t\t\t\tborder.Left.Color = &color\n\t\t\tcase \"right\":\n\t\t\t\tborder.Right.Style = styles[v.Style]\n\t\t\t\tborder.Right.Color = &color\n\t\t\tcase \"top\":\n\t\t\t\tborder.Top.Style = styles[v.Style]\n\t\t\t\tborder.Top.Color = &color\n\t\t\tcase \"bottom\":\n\t\t\t\tborder.Bottom.Style = styles[v.Style]\n\t\t\t\tborder.Bottom.Color = &color\n\t\t\tcase \"diagonalUp\":\n\t\t\t\tborder.Diagonal.Style = styles[v.Style]\n\t\t\t\tborder.Diagonal.Color = &color\n\t\t\t\tborder.DiagonalUp = true\n\t\t\tcase \"diagonalDown\":\n\t\t\t\tborder.Diagonal.Style = styles[v.Style]\n\t\t\t\tborder.Diagonal.Color = &color\n\t\t\t\tborder.DiagonalDown = true\n\t\t\t}\n\t\t}\n\t}\n\treturn &border\n}\n\n// setCellXfs provides function to set describes all of the formatting for a\n// cell.\nfunc setCellXfs(style *xlsxStyleSheet, fontID, numFmtID, fillID, borderID int, applyAlignment, applyProtection bool, alignment *xlsxAlignment, protection *xlsxProtection) int {\n\tvar xf xlsxXf\n\txf.FontID = fontID\n\tif fontID != 0 {\n\t\txf.ApplyFont = true\n\t}\n\txf.NumFmtID = numFmtID\n\tif numFmtID != 0 {\n\t\txf.ApplyNumberFormat = true\n\t}\n\txf.FillID = fillID\n\txf.BorderID = borderID\n\tstyle.CellXfs.Count++\n\txf.Alignment = alignment\n\txf.ApplyAlignment = applyAlignment\n\tif applyProtection {\n\t\txf.ApplyProtection = applyProtection\n\t\txf.Protection = protection\n\t}\n\txfID := 0\n\txf.XfID = &xfID\n\tstyle.CellXfs.Xf = append(style.CellXfs.Xf, xf)\n\treturn style.CellXfs.Count - 1\n}\n\n// SetCellStyle provides function to add style attribute for cells by given\n// worksheet name, coordinate area and style ID. Note that diagonalDown and\n// diagonalUp type border should be use same color in the same coordinate area.\n//\n// For example create a borders of cell H9 on Sheet1:\n//\n//    style, err := xlsx.NewStyle(`{\"border\":[{\"type\":\"left\",\"color\":\"0000FF\",\"style\":3},{\"type\":\"top\",\"color\":\"00FF00\",\"style\":4},{\"type\":\"bottom\",\"color\":\"FFFF00\",\"style\":5},{\"type\":\"right\",\"color\":\"FF0000\",\"style\":6},{\"type\":\"diagonalDown\",\"color\":\"A020F0\",\"style\":7},{\"type\":\"diagonalUp\",\"color\":\"A020F0\",\"style\":8}]}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\n// Set gradient fill with vertical variants shading styles for cell H9 on\n// Sheet1:\n//\n//    style, err := xlsx.NewStyle(`{\"fill\":{\"type\":\"gradient\",\"color\":[\"#FFFFFF\",\"#E0EBF5\"],\"shading\":1}}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\n// Set solid style pattern fill for cell H9 on Sheet1:\n//\n//    style, err := xlsx.NewStyle(`{\"fill\":{\"type\":\"pattern\",\"color\":[\"#E0EBF5\"],\"pattern\":1}}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\n// Set alignment style for cell H9 on Sheet1:\n//\n//    style, err := xlsx.NewStyle(`{\"alignment\":{\"horizontal\":\"center\",\"ident\":1,\"justify_last_line\":true,\"reading_order\":0,\"relative_indent\":1,\"shrink_to_fit\":true,\"text_rotation\":45,\"vertical\":\"\",\"wrap_text\":true}}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\n// Dates and times in Excel are represented by real numbers, for example \"Apr 7\n// 2017 12:00 PM\" is represented by the number 42920.5. Set date and time format\n// for cell H9 on Sheet1:\n//\n//    xlsx.SetCellValue(\"Sheet1\", \"H9\", 42920.5)\n//    style, err := xlsx.NewStyle(`{\"number_format\": 22}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\n// Set font style for cell H9 on Sheet1:\n//\n//    style, err := xlsx.NewStyle(`{\"font\":{\"bold\":true,\"italic\":true,\"family\":\"Berlin Sans FB Demi\",\"size\":36,\"color\":\"#777777\"}}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\n// Hide and lock for cell H9 on Sheet1:\n//\n//    style, err := xlsx.NewStyle(`{\"protection\":{\"hidden\":true, \"locked\":true}}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetCellStyle(\"Sheet1\", \"H9\", \"H9\", style)\n//\nfunc (f *File) SetCellStyle(sheet, hcell, vcell string, styleID int) {\n\thcell = strings.ToUpper(hcell)\n\tvcell = strings.ToUpper(vcell)\n\n\t// Coordinate conversion, convert C1:B3 to 2,0,1,2.\n\thcol := string(strings.Map(letterOnlyMapF, hcell))\n\throw, err := strconv.Atoi(strings.Map(intOnlyMapF, hcell))\n\tif err != nil {\n\t\treturn\n\t}\n\thyAxis := hrow - 1\n\thxAxis := TitleToNumber(hcol)\n\n\tvcol := string(strings.Map(letterOnlyMapF, vcell))\n\tvrow, err := strconv.Atoi(strings.Map(intOnlyMapF, vcell))\n\tif err != nil {\n\t\treturn\n\t}\n\tvyAxis := vrow - 1\n\tvxAxis := TitleToNumber(vcol)\n\n\t// Correct the coordinate area, such correct C1:B3 to B1:C3.\n\tif vxAxis < hxAxis {\n\t\tvxAxis, hxAxis = hxAxis, vxAxis\n\t}\n\n\tif vyAxis < hyAxis {\n\t\tvyAxis, hyAxis = hyAxis, vyAxis\n\t}\n\n\txlsx := f.workSheetReader(sheet)\n\n\tcompleteRow(xlsx, vyAxis+1, vxAxis+1)\n\tcompleteCol(xlsx, vyAxis+1, vxAxis+1)\n\n\tfor r := hyAxis; r <= vyAxis; r++ {\n\t\tfor k := hxAxis; k <= vxAxis; k++ {\n\t\t\txlsx.SheetData.Row[r].C[k].S = styleID\n\t\t}\n\t}\n}\n\n// SetConditionalFormat provides function to create conditional formatting rule\n// for cell value. Conditional formatting is a feature of Excel which allows you\n// to apply a format to a cell or a range of cells based on certain criteria.\n//\n// The type option is a required parameter and it has no default value.\n// Allowable type values and their associated parameters are:\n//\n//     Type          | Parameters\n//    ---------------+------------------------------------\n//     cell          | criteria\n//                   | value\n//                   | minimum\n//                   | maximum\n//     date          | criteria\n//                   | value\n//                   | minimum\n//                   | maximum\n//     time_period   | criteria\n//     text          | criteria\n//                   | value\n//     average       | criteria\n//     duplicate     | (none)\n//     unique        | (none)\n//     top           | criteria\n//                   | value\n//     bottom        | criteria\n//                   | value\n//     blanks        | (none)\n//     no_blanks     | (none)\n//     errors        | (none)\n//     no_errors     | (none)\n//     2_color_scale | min_type\n//                   | max_type\n//                   | min_value\n//                   | max_value\n//                   | min_color\n//                   | max_color\n//     3_color_scale | min_type\n//                   | mid_type\n//                   | max_type\n//                   | min_value\n//                   | mid_value\n//                   | max_value\n//                   | min_color\n//                   | mid_color\n//                   | max_color\n//     data_bar      | min_type\n//                   | max_type\n//                   | min_value\n//                   | max_value\n//                   | bar_color\n//     formula       | criteria\n//\n// The criteria parameter is used to set the criteria by which the cell data\n// will be evaluated. It has no default value. The most common criteria as\n// applied to {'type': 'cell'} are:\n//\n//    between                  |\n//    not between              |\n//    equal to                 | ==\n//    not equal to             | !=\n//    greater than             | >\n//    less than                | <\n//    greater than or equal to | >=\n//    less than or equal to    | <=\n//\n// You can either use Excel's textual description strings, in the first column\n// above, or the more common symbolic alternatives.\n//\n// Additional criteria which are specific to other conditional format types are\n// shown in the relevant sections below.\n//\n// value: The value is generally used along with the criteria parameter to set\n// the rule by which the cell data will be evaluated:\n//\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"D1:D10\", fmt.Sprintf(`[{\"type\":\"cell\",\"criteria\":\">\",\"format\":%d,\"value\":\"6\"}]`, format))\n//\n// The value property can also be an cell reference:\n//\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"D1:D10\", fmt.Sprintf(`[{\"type\":\"cell\",\"criteria\":\">\",\"format\":%d,\"value\":\"$C$1\"}]`, format))\n//\n// type: format - The format parameter is used to specify the format that will\n// be applied to the cell when the conditional formatting criterion is met. The\n// format is created using the NewConditionalStyle() method in the same way as\n// cell formats:\n//\n//    format, err = xlsx.NewConditionalStyle(`{\"font\":{\"color\":\"#9A0511\"},\"fill\":{\"type\":\"pattern\",\"color\":[\"#FEC7CE\"],\"pattern\":1}}`)\n//    if err != nil {\n//        fmt.Println(err)\n//    }\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", fmt.Sprintf(`[{\"type\":\"cell\",\"criteria\":\">\",\"format\":%d,\"value\":\"6\"}]`, format))\n//\n// Note: In Excel, a conditional format is superimposed over the existing cell\n// format and not all cell format properties can be modified. Properties that\n// cannot be modified in a conditional format are font name, font size,\n// superscript and subscript, diagonal borders, all alignment properties and all\n// protection properties.\n//\n// Excel specifies some default formats to be used with conditional formatting.\n// These can be replicated using the following excelize formats:\n//\n//    // Rose format for bad conditional.\n//    format1, err = xlsx.NewConditionalStyle(`{\"font\":{\"color\":\"#9A0511\"},\"fill\":{\"type\":\"pattern\",\"color\":[\"#FEC7CE\"],\"pattern\":1}}`)\n//\n//    // Light yellow format for neutral conditional.\n//    format2, err = xlsx.NewConditionalStyle(`{\"font\":{\"color\":\"#9B5713\"},\"fill\":{\"type\":\"pattern\",\"color\":[\"#FEEAA0\"],\"pattern\":1}}`)\n//\n//    // Light green format for good conditional.\n//    format3, err = xlsx.NewConditionalStyle(`{\"font\":{\"color\":\"#09600B\"},\"fill\":{\"type\":\"pattern\",\"color\":[\"#C7EECF\"],\"pattern\":1}}`)\n//\n// type: minimum - The minimum parameter is used to set the lower limiting value\n// when the criteria is either \"between\" or \"not between\".\n//\n//    // Hightlight cells rules: between...\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", fmt.Sprintf(`[{\"type\":\"cell\",\"criteria\":\"between\",\"format\":%d,\"minimum\":\"6\",\"maximum\":\"8\"}]`, format))\n//\n// type: maximum - The maximum parameter is used to set the upper limiting value\n// when the criteria is either \"between\" or \"not between\". See the previous\n// example.\n//\n// type: average - The average type is used to specify Excel's \"Average\" style\n// conditional format:\n//\n//    // Top/Bottom rules: Above Average...\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", fmt.Sprintf(`[{\"type\":\"average\",\"criteria\":\"=\",\"format\":%d, \"above_average\": true}]`, format1))\n//\n//    // Top/Bottom rules: Below Average...\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"B1:B10\", fmt.Sprintf(`[{\"type\":\"average\",\"criteria\":\"=\",\"format\":%d, \"above_average\": false}]`, format2))\n//\n// type: duplicate - The duplicate type is used to highlight duplicate cells in a range:\n//\n//    // Hightlight cells rules: Duplicate Values...\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", fmt.Sprintf(`[{\"type\":\"duplicate\",\"criteria\":\"=\",\"format\":%d}]`, format))\n//\n// type: unique - The unique type is used to highlight unique cells in a range:\n//\n//    // Hightlight cells rules: Not Equal To...\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", fmt.Sprintf(`[{\"type\":\"unique\",\"criteria\":\"=\",\"format\":%d}]`, format))\n//\n// type: top - The top type is used to specify the top n values by number or percentage in a range:\n//\n//    // Top/Bottom rules: Top 10.\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"H1:H10\", fmt.Sprintf(`[{\"type\":\"top\",\"criteria\":\"=\",\"format\":%d,\"value\":\"6\"}]`, format))\n//\n// The criteria can be used to indicate that a percentage condition is required:\n//\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", fmt.Sprintf(`[{\"type\":\"top\",\"criteria\":\"=\",\"format\":%d,\"value\":\"6\",\"percent\":true}]`, format))\n//\n// type: 2_color_scale - The 2_color_scale type is used to specify Excel's \"2\n// Color Scale\" style conditional format:\n//\n//    // Color scales: 2 color.\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", `[{\"type\":\"2_color_scale\",\"criteria\":\"=\",\"min_type\":\"min\",\"max_type\":\"max\",\"min_color\":\"#F8696B\",\"max_color\":\"#63BE7B\"}]`)\n//\n// This conditional type can be modified with min_type, max_type, min_value,\n// max_value, min_color and max_color, see below.\n//\n// type: 3_color_scale - The 3_color_scale type is used to specify Excel's \"3\n// Color Scale\" style conditional format:\n//\n//    // Color scales: 3 color.\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"A1:A10\", `[{\"type\":\"3_color_scale\",\"criteria\":\"=\",\"min_type\":\"min\",\"mid_type\":\"percentile\",\"max_type\":\"max\",\"min_color\":\"#F8696B\",\"mid_color\":\"#FFEB84\",\"max_color\":\"#63BE7B\"}]`)\n//\n// This conditional type can be modified with min_type, mid_type, max_type,\n// min_value, mid_value, max_value, min_color, mid_color and max_color, see\n// below.\n//\n// type: data_bar - The data_bar type is used to specify Excel's \"Data Bar\"\n// style conditional format.\n//\n// min_type - The min_type and max_type properties are available when the conditional formatting type is 2_color_scale, 3_color_scale or data_bar. The mid_type is available for 3_color_scale. The properties are used as follows:\n//\n//    // Data Bars: Gradient Fill.\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"K1:K10\", `[{\"type\":\"data_bar\", \"criteria\":\"=\", \"min_type\":\"min\",\"max_type\":\"max\",\"bar_color\":\"#638EC6\"}]`)\n//\n// The available min/mid/max types are:\n//\n//    min        (for min_type only)\n//    num\n//    percent\n//    percentile\n//    formula\n//    max        (for max_type only)\n//\n// mid_type - Used for 3_color_scale. Same as min_type, see above.\n//\n// max_type - Same as min_type, see above.\n//\n// min_value - The min_value and max_value properties are available when the\n// conditional formatting type is 2_color_scale, 3_color_scale or data_bar. The\n// mid_value is available for 3_color_scale.\n//\n// mid_value - Used for 3_color_scale. Same as min_value, see above.\n//\n// max_value - Same as min_value, see above.\n//\n// min_color - The min_color and max_color properties are available when the\n// conditional formatting type is 2_color_scale, 3_color_scale or data_bar.\n// The mid_color is available for 3_color_scale. The properties are used as\n// follows:\n//\n//    // Color scales: 3 color.\n//    xlsx.SetConditionalFormat(\"Sheet1\", \"B1:B10\", `[{\"type\":\"3_color_scale\",\"criteria\":\"=\",\"min_type\":\"min\",\"mid_type\":\"percentile\",\"max_type\":\"max\",\"min_color\":\"#F8696B\",\"mid_color\":\"#FFEB84\",\"max_color\":\"#63BE7B\"}]`)\n//\n// mid_color - Used for 3_color_scale. Same as min_color, see above.\n//\n// max_color - Same as min_color, see above.\n//\n// bar_color - Used for data_bar. Same as min_color, see above.\n//\nfunc (f *File) SetConditionalFormat(sheet, area, formatSet string) error {\n\tvar format []*formatConditional\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdrawContFmtFunc := map[string]func(p int, ct string, fmtCond *formatConditional) *xlsxCfRule{\n\t\t\"cellIs\":          drawCondFmtCellIs,\n\t\t\"top10\":           drawCondFmtTop10,\n\t\t\"aboveAverage\":    drawCondFmtAboveAverage,\n\t\t\"duplicateValues\": drawCondFmtDuplicateUniqueValues,\n\t\t\"uniqueValues\":    drawCondFmtDuplicateUniqueValues,\n\t\t\"2_color_scale\":   drawCondFmtColorScale,\n\t\t\"3_color_scale\":   drawCondFmtColorScale,\n\t\t\"dataBar\":         drawCondFmtDataBar,\n\t\t\"expression\":      drawConfFmtExp,\n\t}\n\n\txlsx := f.workSheetReader(sheet)\n\tcfRule := []*xlsxCfRule{}\n\tfor p, v := range format {\n\t\tvar vt, ct string\n\t\tvar ok bool\n\t\t// \"type\" is a required parameter, check for valid validation types.\n\t\tvt, ok = validType[v.Type]\n\t\tif ok {\n\t\t\t// Check for valid criteria types.\n\t\t\tct, ok = criteriaType[v.Criteria]\n\t\t\tif ok || vt == \"expression\" {\n\t\t\t\tdrawfunc, ok := drawContFmtFunc[vt]\n\t\t\t\tif ok {\n\t\t\t\t\tcfRule = append(cfRule, drawfunc(p, ct, v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\txlsx.ConditionalFormatting = append(xlsx.ConditionalFormatting, &xlsxConditionalFormatting{\n\t\tSQRef:  area,\n\t\tCfRule: cfRule,\n\t})\n\treturn err\n}\n\n// drawCondFmtCellIs provides function to create conditional formatting rule for\n// cell value (include between, not between, equal, not equal, greater than and\n// less than) by given priority, criteria type and format settings.\nfunc drawCondFmtCellIs(p int, ct string, format *formatConditional) *xlsxCfRule {\n\tc := &xlsxCfRule{\n\t\tPriority: p + 1,\n\t\tType:     validType[format.Type],\n\t\tOperator: ct,\n\t\tDxfID:    &format.Format,\n\t}\n\t// \"between\" and \"not between\" criteria require 2 values.\n\t_, ok := map[string]bool{\"between\": true, \"notBetween\": true}[ct]\n\tif ok {\n\t\tc.Formula = append(c.Formula, format.Minimum)\n\t\tc.Formula = append(c.Formula, format.Maximum)\n\t}\n\t_, ok = map[string]bool{\"equal\": true, \"notEqual\": true, \"greaterThan\": true, \"lessThan\": true}[ct]\n\tif ok {\n\t\tc.Formula = append(c.Formula, format.Value)\n\t}\n\treturn c\n}\n\n// drawCondFmtTop10 provides function to create conditional formatting rule for\n// top N (default is top 10) by given priority, criteria type and format\n// settings.\nfunc drawCondFmtTop10(p int, ct string, format *formatConditional) *xlsxCfRule {\n\tc := &xlsxCfRule{\n\t\tPriority: p + 1,\n\t\tType:     validType[format.Type],\n\t\tRank:     10,\n\t\tDxfID:    &format.Format,\n\t\tPercent:  format.Percent,\n\t}\n\trank, err := strconv.Atoi(format.Value)\n\tif err == nil {\n\t\tc.Rank = rank\n\t}\n\treturn c\n}\n\n// drawCondFmtAboveAverage provides function to create conditional formatting\n// rule for above average and below average by given priority, criteria type and\n// format settings.\nfunc drawCondFmtAboveAverage(p int, ct string, format *formatConditional) *xlsxCfRule {\n\treturn &xlsxCfRule{\n\t\tPriority:     p + 1,\n\t\tType:         validType[format.Type],\n\t\tAboveAverage: &format.AboveAverage,\n\t\tDxfID:        &format.Format,\n\t}\n}\n\n// drawCondFmtDuplicateUniqueValues provides function to create conditional\n// formatting rule for duplicate and unique values by given priority, criteria\n// type and format settings.\nfunc drawCondFmtDuplicateUniqueValues(p int, ct string, format *formatConditional) *xlsxCfRule {\n\treturn &xlsxCfRule{\n\t\tPriority: p + 1,\n\t\tType:     validType[format.Type],\n\t\tDxfID:    &format.Format,\n\t}\n}\n\n// drawCondFmtColorScale provides function to create conditional formatting rule\n// for color scale (include 2 color scale and 3 color scale) by given priority,\n// criteria type and format settings.\nfunc drawCondFmtColorScale(p int, ct string, format *formatConditional) *xlsxCfRule {\n\tc := &xlsxCfRule{\n\t\tPriority: p + 1,\n\t\tType:     \"colorScale\",\n\t\tColorScale: &xlsxColorScale{\n\t\t\tCfvo: []*xlsxCfvo{\n\t\t\t\t{Type: format.MinType},\n\t\t\t},\n\t\t\tColor: []*xlsxColor{\n\t\t\t\t{RGB: getPaletteColor(format.MinColor)},\n\t\t\t},\n\t\t},\n\t}\n\tif validType[format.Type] == \"3_color_scale\" {\n\t\tc.ColorScale.Cfvo = append(c.ColorScale.Cfvo, &xlsxCfvo{Type: format.MidType, Val: 50})\n\t\tc.ColorScale.Color = append(c.ColorScale.Color, &xlsxColor{RGB: getPaletteColor(format.MidColor)})\n\t}\n\tc.ColorScale.Cfvo = append(c.ColorScale.Cfvo, &xlsxCfvo{Type: format.MaxType})\n\tc.ColorScale.Color = append(c.ColorScale.Color, &xlsxColor{RGB: getPaletteColor(format.MaxColor)})\n\treturn c\n}\n\n// drawCondFmtDataBar provides function to create conditional formatting rule\n// for data bar by given priority, criteria type and format settings.\nfunc drawCondFmtDataBar(p int, ct string, format *formatConditional) *xlsxCfRule {\n\treturn &xlsxCfRule{\n\t\tPriority: p + 1,\n\t\tType:     validType[format.Type],\n\t\tDataBar: &xlsxDataBar{\n\t\t\tCfvo:  []*xlsxCfvo{{Type: format.MinType}, {Type: format.MaxType}},\n\t\t\tColor: []*xlsxColor{{RGB: getPaletteColor(format.BarColor)}},\n\t\t},\n\t}\n}\n\n// drawConfFmtExp provides function to create conditional formatting rule for\n// expression by given priority, criteria type and format settings.\nfunc drawConfFmtExp(p int, ct string, format *formatConditional) *xlsxCfRule {\n\treturn &xlsxCfRule{\n\t\tPriority: p + 1,\n\t\tType:     validType[format.Type],\n\t\tFormula:  []string{format.Criteria},\n\t\tDxfID:    &format.Format,\n\t}\n}\n\n// getPaletteColor provides function to convert the RBG color by given string.\nfunc getPaletteColor(color string) string {\n\treturn \"FF\" + strings.Replace(strings.ToUpper(color), \"#\", \"\", -1)\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/table.go",
    "content": "package excelize\n\nimport (\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// parseFormatTableSet provides function to parse the format settings of the\n// table with default value.\nfunc parseFormatTableSet(formatSet string) (*formatTable, error) {\n\tformat := formatTable{\n\t\tTableStyle:     \"\",\n\t\tShowRowStripes: true,\n\t}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// AddTable provides the method to add table in a worksheet by given worksheet\n// name, coordinate area and format set. For example, create a table of A1:D5\n// on Sheet1:\n//\n//    xlsx.AddTable(\"Sheet1\", \"A1\", \"D5\", ``)\n//\n// Create a table of F2:H6 on Sheet2 with format set:\n//\n//    xlsx.AddTable(\"Sheet2\", \"F2\", \"H6\", `{\"table_name\":\"table\",\"table_style\":\"TableStyleMedium2\", \"show_first_column\":true,\"show_last_column\":true,\"show_row_stripes\":false,\"show_column_stripes\":true}`)\n//\n// Note that the table at least two lines include string type header. Multiple\n// tables coordinate areas can't have an intersection.\n//\n// table_name: The name of the table, in the same worksheet name of the table should be unique\n//\n// table_style: The built-in table style names\n//\n//    TableStyleLight1 - TableStyleLight21\n//    TableStyleMedium1 - TableStyleMedium28\n//    TableStyleDark1 - TableStyleDark11\n//\nfunc (f *File) AddTable(sheet, hcell, vcell, format string) error {\n\tformatSet, err := parseFormatTableSet(format)\n\tif err != nil {\n\t\treturn err\n\t}\n\thcell = strings.ToUpper(hcell)\n\tvcell = strings.ToUpper(vcell)\n\t// Coordinate conversion, convert C1:B3 to 2,0,1,2.\n\thcol := string(strings.Map(letterOnlyMapF, hcell))\n\throw, _ := strconv.Atoi(strings.Map(intOnlyMapF, hcell))\n\thyAxis := hrow - 1\n\thxAxis := TitleToNumber(hcol)\n\n\tvcol := string(strings.Map(letterOnlyMapF, vcell))\n\tvrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, vcell))\n\tvyAxis := vrow - 1\n\tvxAxis := TitleToNumber(vcol)\n\tif vxAxis < hxAxis {\n\t\tvxAxis, hxAxis = hxAxis, vxAxis\n\t}\n\tif vyAxis < hyAxis {\n\t\tvyAxis, hyAxis = hyAxis, vyAxis\n\t}\n\ttableID := f.countTables() + 1\n\tsheetRelationshipsTableXML := \"../tables/table\" + strconv.Itoa(tableID) + \".xml\"\n\ttableXML := strings.Replace(sheetRelationshipsTableXML, \"..\", \"xl\", -1)\n\t// Add first table for given sheet.\n\trID := f.addSheetRelationships(sheet, SourceRelationshipTable, sheetRelationshipsTableXML, \"\")\n\tf.addSheetTable(sheet, rID)\n\tf.addTable(sheet, tableXML, hxAxis, hyAxis, vxAxis, vyAxis, tableID, formatSet)\n\tf.addContentTypePart(tableID, \"table\")\n\treturn err\n}\n\n// countTables provides function to get table files count storage in the folder\n// xl/tables.\nfunc (f *File) countTables() int {\n\tcount := 0\n\tfor k := range f.XLSX {\n\t\tif strings.Contains(k, \"xl/tables/table\") {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n// addSheetTable provides function to add tablePart element to\n// xl/worksheets/sheet%d.xml by given worksheet name and relationship index.\nfunc (f *File) addSheetTable(sheet string, rID int) {\n\txlsx := f.workSheetReader(sheet)\n\ttable := &xlsxTablePart{\n\t\tRID: \"rId\" + strconv.Itoa(rID),\n\t}\n\tif xlsx.TableParts == nil {\n\t\txlsx.TableParts = &xlsxTableParts{}\n\t}\n\txlsx.TableParts.Count++\n\txlsx.TableParts.TableParts = append(xlsx.TableParts.TableParts, table)\n}\n\n// addTable provides function to add table by given worksheet name, coordinate\n// area and format set.\nfunc (f *File) addTable(sheet, tableXML string, hxAxis, hyAxis, vxAxis, vyAxis, i int, formatSet *formatTable) {\n\t// Correct the minimum number of rows, the table at least two lines.\n\tif hyAxis == vyAxis {\n\t\tvyAxis++\n\t}\n\t// Correct table reference coordinate area, such correct C1:B3 to B1:C3.\n\tref := ToAlphaString(hxAxis) + strconv.Itoa(hyAxis+1) + \":\" + ToAlphaString(vxAxis) + strconv.Itoa(vyAxis+1)\n\ttableColumn := []*xlsxTableColumn{}\n\tidx := 0\n\tfor i := hxAxis; i <= vxAxis; i++ {\n\t\tidx++\n\t\tcell := ToAlphaString(i) + strconv.Itoa(hyAxis+1)\n\t\tname := f.GetCellValue(sheet, cell)\n\t\tif _, err := strconv.Atoi(name); err == nil {\n\t\t\tf.SetCellStr(sheet, cell, name)\n\t\t}\n\t\tif name == \"\" {\n\t\t\tname = \"Column\" + strconv.Itoa(idx)\n\t\t\tf.SetCellStr(sheet, cell, name)\n\t\t}\n\t\ttableColumn = append(tableColumn, &xlsxTableColumn{\n\t\t\tID:   idx,\n\t\t\tName: name,\n\t\t})\n\t}\n\tname := formatSet.TableName\n\tif name == \"\" {\n\t\tname = \"Table\" + strconv.Itoa(i)\n\t}\n\tt := xlsxTable{\n\t\tXMLNS:       NameSpaceSpreadSheet,\n\t\tID:          i,\n\t\tName:        name,\n\t\tDisplayName: name,\n\t\tRef:         ref,\n\t\tAutoFilter: &xlsxAutoFilter{\n\t\t\tRef: ref,\n\t\t},\n\t\tTableColumns: &xlsxTableColumns{\n\t\t\tCount:       idx,\n\t\t\tTableColumn: tableColumn,\n\t\t},\n\t\tTableStyleInfo: &xlsxTableStyleInfo{\n\t\t\tName:              formatSet.TableStyle,\n\t\t\tShowFirstColumn:   formatSet.ShowFirstColumn,\n\t\t\tShowLastColumn:    formatSet.ShowLastColumn,\n\t\t\tShowRowStripes:    formatSet.ShowRowStripes,\n\t\t\tShowColumnStripes: formatSet.ShowColumnStripes,\n\t\t},\n\t}\n\ttable, _ := xml.Marshal(t)\n\tf.saveFileList(tableXML, table)\n}\n\n// parseAutoFilterSet provides function to parse the settings of the auto\n// filter.\nfunc parseAutoFilterSet(formatSet string) (*formatAutoFilter, error) {\n\tformat := formatAutoFilter{}\n\terr := json.Unmarshal([]byte(formatSet), &format)\n\treturn &format, err\n}\n\n// AutoFilter provides the method to add auto filter in a worksheet by given\n// worksheet name, coordinate area and settings. An autofilter in Excel is a\n// way of filtering a 2D range of data based on some simple criteria. For\n// example applying an autofilter to a cell range A1:D4 in the Sheet1:\n//\n//    err = xlsx.AutoFilter(\"Sheet1\", \"A1\", \"D4\", \"\")\n//\n// Filter data in an autofilter:\n//\n//    err = xlsx.AutoFilter(\"Sheet1\", \"A1\", \"D4\", `{\"column\":\"B\",\"expression\":\"x != blanks\"}`)\n//\n// column defines the filter columns in a autofilter range based on simple\n// criteria\n//\n// It isn't sufficient to just specify the filter condition. You must also\n// hide any rows that don't match the filter condition. Rows are hidden using\n// the SetRowVisible() method. Excelize can't filter rows automatically since\n// this isn't part of the file format.\n//\n// Setting a filter criteria for a column:\n//\n// expression defines the conditions, the following operators are available\n// for setting the filter criteria:\n//\n//    ==\n//    !=\n//    >\n//    <\n//    >=\n//    <=\n//    and\n//    or\n//\n// An expression can comprise a single statement or two statements separated\n// by the 'and' and 'or' operators. For example:\n//\n//    x <  2000\n//    x >  2000\n//    x == 2000\n//    x >  2000 and x <  5000\n//    x == 2000 or  x == 5000\n//\n// Filtering of blank or non-blank data can be achieved by using a value of\n// Blanks or NonBlanks in the expression:\n//\n//    x == Blanks\n//    x == NonBlanks\n//\n// Excel also allows some simple string matching operations:\n//\n//    x == b*      // begins with b\n//    x != b*      // doesnt begin with b\n//    x == *b      // ends with b\n//    x != *b      // doesnt end with b\n//    x == *b*     // contains b\n//    x != *b*     // doesn't contains b\n//\n// You can also use '*' to match any character or number and '?' to match any\n// single character or number. No other regular expression quantifier is\n// supported by Excel's filters. Excel's regular expression characters can be\n// escaped using '~'.\n//\n// The placeholder variable x in the above examples can be replaced by any\n// simple string. The actual placeholder name is ignored internally so the\n// following are all equivalent:\n//\n//    x     < 2000\n//    col   < 2000\n//    Price < 2000\n//\nfunc (f *File) AutoFilter(sheet, hcell, vcell, format string) error {\n\tformatSet, _ := parseAutoFilterSet(format)\n\n\thcell = strings.ToUpper(hcell)\n\tvcell = strings.ToUpper(vcell)\n\n\t// Coordinate conversion, convert C1:B3 to 2,0,1,2.\n\thcol := string(strings.Map(letterOnlyMapF, hcell))\n\throw, _ := strconv.Atoi(strings.Map(intOnlyMapF, hcell))\n\thyAxis := hrow - 1\n\thxAxis := TitleToNumber(hcol)\n\n\tvcol := string(strings.Map(letterOnlyMapF, vcell))\n\tvrow, _ := strconv.Atoi(strings.Map(intOnlyMapF, vcell))\n\tvyAxis := vrow - 1\n\tvxAxis := TitleToNumber(vcol)\n\n\tif vxAxis < hxAxis {\n\t\tvxAxis, hxAxis = hxAxis, vxAxis\n\t}\n\n\tif vyAxis < hyAxis {\n\t\tvyAxis, hyAxis = hyAxis, vyAxis\n\t}\n\tref := ToAlphaString(hxAxis) + strconv.Itoa(hyAxis+1) + \":\" + ToAlphaString(vxAxis) + strconv.Itoa(vyAxis+1)\n\trefRange := vxAxis - hxAxis\n\treturn f.autoFilter(sheet, ref, refRange, hxAxis, formatSet)\n}\n\n// autoFilter provides function to extract the tokens from the filter\n// expression. The tokens are mainly non-whitespace groups.\nfunc (f *File) autoFilter(sheet, ref string, refRange, hxAxis int, formatSet *formatAutoFilter) error {\n\txlsx := f.workSheetReader(sheet)\n\tif xlsx.SheetPr != nil {\n\t\txlsx.SheetPr.FilterMode = true\n\t}\n\txlsx.SheetPr = &xlsxSheetPr{FilterMode: true}\n\tfilter := &xlsxAutoFilter{\n\t\tRef: ref,\n\t}\n\txlsx.AutoFilter = filter\n\tif formatSet.Column == \"\" || formatSet.Expression == \"\" {\n\t\treturn nil\n\t}\n\tcol := TitleToNumber(formatSet.Column)\n\toffset := col - hxAxis\n\tif offset < 0 || offset > refRange {\n\t\treturn fmt.Errorf(\"Incorrect index of column '%s'\", formatSet.Column)\n\t}\n\tfilter.FilterColumn = &xlsxFilterColumn{\n\t\tColID: offset,\n\t}\n\tre := regexp.MustCompile(`\"(?:[^\"]|\"\")*\"|\\S+`)\n\ttoken := re.FindAllString(formatSet.Expression, -1)\n\tif len(token) != 3 && len(token) != 7 {\n\t\treturn fmt.Errorf(\"Incorrect number of tokens in criteria '%s'\", formatSet.Expression)\n\t}\n\texpressions, tokens, err := f.parseFilterExpression(formatSet.Expression, token)\n\tif err != nil {\n\t\treturn err\n\t}\n\tf.writeAutoFilter(filter, expressions, tokens)\n\txlsx.AutoFilter = filter\n\treturn nil\n}\n\n// writeAutoFilter provides function to check for single or double custom filters\n// as default filters and handle them accordingly.\nfunc (f *File) writeAutoFilter(filter *xlsxAutoFilter, exp []int, tokens []string) {\n\tif len(exp) == 1 && exp[0] == 2 {\n\t\t// Single equality.\n\t\tfilters := []*xlsxFilter{}\n\t\tfilters = append(filters, &xlsxFilter{Val: tokens[0]})\n\t\tfilter.FilterColumn.Filters = &xlsxFilters{Filter: filters}\n\t} else if len(exp) == 3 && exp[0] == 2 && exp[1] == 1 && exp[2] == 2 {\n\t\t// Double equality with \"or\" operator.\n\t\tfilters := []*xlsxFilter{}\n\t\tfor _, v := range tokens {\n\t\t\tfilters = append(filters, &xlsxFilter{Val: v})\n\t\t}\n\t\tfilter.FilterColumn.Filters = &xlsxFilters{Filter: filters}\n\t} else {\n\t\t// Non default custom filter.\n\t\texpRel := map[int]int{0: 0, 1: 2}\n\t\tandRel := map[int]bool{0: true, 1: false}\n\t\tfor k, v := range tokens {\n\t\t\tf.writeCustomFilter(filter, exp[expRel[k]], v)\n\t\t\tif k == 1 {\n\t\t\t\tfilter.FilterColumn.CustomFilters.And = andRel[exp[k]]\n\t\t\t}\n\t\t}\n\t}\n}\n\n// writeCustomFilter provides function to write the <customFilter> element.\nfunc (f *File) writeCustomFilter(filter *xlsxAutoFilter, operator int, val string) {\n\toperators := map[int]string{\n\t\t1:  \"lessThan\",\n\t\t2:  \"equal\",\n\t\t3:  \"lessThanOrEqual\",\n\t\t4:  \"greaterThan\",\n\t\t5:  \"notEqual\",\n\t\t6:  \"greaterThanOrEqual\",\n\t\t22: \"equal\",\n\t}\n\tcustomFilter := xlsxCustomFilter{\n\t\tOperator: operators[operator],\n\t\tVal:      val,\n\t}\n\tif filter.FilterColumn.CustomFilters != nil {\n\t\tfilter.FilterColumn.CustomFilters.CustomFilter = append(filter.FilterColumn.CustomFilters.CustomFilter, &customFilter)\n\t} else {\n\t\tcustomFilters := []*xlsxCustomFilter{}\n\t\tcustomFilters = append(customFilters, &customFilter)\n\t\tfilter.FilterColumn.CustomFilters = &xlsxCustomFilters{CustomFilter: customFilters}\n\t}\n}\n\n// parseFilterExpression provides function to converts the tokens of a possibly\n// conditional expression into 1 or 2 sub expressions for further parsing.\n//\n// Examples:\n//\n//    ('x', '==', 2000) -> exp1\n//    ('x', '>',  2000, 'and', 'x', '<', 5000) -> exp1 and exp2\n//\nfunc (f *File) parseFilterExpression(expression string, tokens []string) ([]int, []string, error) {\n\texpressions := []int{}\n\tt := []string{}\n\tif len(tokens) == 7 {\n\t\t// The number of tokens will be either 3 (for 1 expression) or 7 (for 2\n\t\t// expressions).\n\t\tconditional := 0\n\t\tc := tokens[3]\n\t\tre, _ := regexp.Match(`(or|\\|\\|)`, []byte(c))\n\t\tif re {\n\t\t\tconditional = 1\n\t\t}\n\t\texpression1, token1, err := f.parseFilterTokens(expression, tokens[0:3])\n\t\tif err != nil {\n\t\t\treturn expressions, t, err\n\t\t}\n\t\texpression2, token2, err := f.parseFilterTokens(expression, tokens[4:7])\n\t\tif err != nil {\n\t\t\treturn expressions, t, err\n\t\t}\n\t\texpressions = []int{expression1[0], conditional, expression2[0]}\n\t\tt = []string{token1, token2}\n\t} else {\n\t\texp, token, err := f.parseFilterTokens(expression, tokens)\n\t\tif err != nil {\n\t\t\treturn expressions, t, err\n\t\t}\n\t\texpressions = exp\n\t\tt = []string{token}\n\t}\n\treturn expressions, t, nil\n}\n\n// parseFilterTokens provides function to parse the 3 tokens of a filter\n// expression and return the operator and token.\nfunc (f *File) parseFilterTokens(expression string, tokens []string) ([]int, string, error) {\n\toperators := map[string]int{\n\t\t\"==\": 2,\n\t\t\"=\":  2,\n\t\t\"=~\": 2,\n\t\t\"eq\": 2,\n\t\t\"!=\": 5,\n\t\t\"!~\": 5,\n\t\t\"ne\": 5,\n\t\t\"<>\": 5,\n\t\t\"<\":  1,\n\t\t\"<=\": 3,\n\t\t\">\":  4,\n\t\t\">=\": 6,\n\t}\n\toperator, ok := operators[strings.ToLower(tokens[1])]\n\tif !ok {\n\t\t// Convert the operator from a number to a descriptive string.\n\t\treturn []int{}, \"\", fmt.Errorf(\"Unknown operator: %s\", tokens[1])\n\t}\n\ttoken := tokens[2]\n\t// Special handling for Blanks/NonBlanks.\n\tre, _ := regexp.Match(\"blanks|nonblanks\", []byte(strings.ToLower(token)))\n\tif re {\n\t\t// Only allow Equals or NotEqual in this context.\n\t\tif operator != 2 && operator != 5 {\n\t\t\treturn []int{operator}, token, fmt.Errorf(\"The operator '%s' in expression '%s' is not valid in relation to Blanks/NonBlanks'\", tokens[1], expression)\n\t\t}\n\t\ttoken = strings.ToLower(token)\n\t\t// The operator should always be 2 (=) to flag a \"simple\" equality in\n\t\t// the binary record. Therefore we convert <> to =.\n\t\tif token == \"blanks\" {\n\t\t\tif operator == 5 {\n\t\t\t\ttoken = \" \"\n\t\t\t}\n\t\t} else {\n\t\t\tif operator == 5 {\n\t\t\t\toperator = 2\n\t\t\t\ttoken = \"blanks\"\n\t\t\t} else {\n\t\t\t\toperator = 5\n\t\t\t\ttoken = \" \"\n\t\t\t}\n\t\t}\n\t}\n\t// if the string token contains an Excel match character then change the\n\t// operator type to indicate a non \"simple\" equality.\n\tre, _ = regexp.Match(\"[*?]\", []byte(token))\n\tif operator == 2 && re {\n\t\toperator = 22\n\t}\n\treturn []int{operator}, token, nil\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/templates.go",
    "content": "// This file contains default templates for XML files we don't yet populated\n// based on content.\n\npackage excelize\n\n// XMLHeader define an XML declaration can also contain a standalone declaration.\nconst XMLHeader = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?>\\n\"\n\nvar (\n\t// XMLHeaderByte define an XML declaration can also contain a standalone\n\t// declaration.\n\tXMLHeaderByte = []byte(XMLHeader)\n)\n\nconst templateDocpropsApp = `<Properties xmlns=\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\" xmlns:vt=\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\"><TotalTime>0</TotalTime><Application>Go Excelize</Application></Properties>`\n\nconst templateContentTypes = `<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\"><Override PartName=\"/xl/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/><Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"/><Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/><Default Extension=\"xml\" ContentType=\"application/xml\"/><Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"/><Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"/><Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"/><Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/></Types>`\n\nconst templateWorkbook = `<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x15\" xmlns:x15=\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\"><fileVersion appName=\"xl\" lastEdited=\"6\" lowestEdited=\"6\" rupBuild=\"14420\" /><workbookPr filterPrivacy=\"1\" defaultThemeVersion=\"164011\" /><bookViews><workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"14805\" windowHeight=\"8010\" /></bookViews><sheets><sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\" /></sheets><calcPr calcId=\"122211\" /></workbook>`\n\nconst templateStyles = `<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac x16r2\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\" xmlns:x16r2=\"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main\"><fonts count=\"1\" x14ac:knownFonts=\"1\"><font><sz val=\"11\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts><fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills><borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs><cellXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/></cellXfs><cellStyles count=\"1\"><cellStyle name=\"常规\" xfId=\"0\" builtinId=\"0\"/></cellStyles><dxfs count=\"0\"/><tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium2\" defaultPivotStyle=\"PivotStyleLight16\"/></styleSheet>`\n\nconst templateSheet = `<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"><dimension ref=\"A1\"/><sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"/></sheetViews><sheetFormatPr defaultRowHeight=\"15\"/><sheetData/><pageMargins left=\"0.7\" right=\"0.7\" top=\"0.75\" bottom=\"0.75\" header=\"0.3\" footer=\"0.3\"/></worksheet>`\n\nconst templateWorkbookRels = `<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\"><Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/><Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/><Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\" Target=\"theme/theme1.xml\"/></Relationships>`\n\nconst templateDocpropsCore = `<cp:coreProperties xmlns:cp=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:dcmitype=\"http://purl.org/dc/dcmitype/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><dc:creator>xuri</dc:creator><dcterms:created xsi:type=\"dcterms:W3CDTF\">2006-09-16T00:00:00Z</dcterms:created><dcterms:modified xsi:type=\"dcterms:W3CDTF\">2006-09-16T00:00:00Z</dcterms:modified></cp:coreProperties>`\n\nconst templateRels = `<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\"><Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\"/><Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\" Target=\"docProps/core.xml\"/><Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/></Relationships>`\n\nconst templateTheme = `<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"><a:themeElements><a:clrScheme name=\"Office\"><a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1><a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1><a:dk2><a:srgbClr val=\"44546A\"/></a:dk2><a:lt2><a:srgbClr val=\"E7E6E6\"/></a:lt2><a:accent1><a:srgbClr val=\"5B9BD5\"/></a:accent1><a:accent2><a:srgbClr val=\"ED7D31\"/></a:accent2><a:accent3><a:srgbClr val=\"A5A5A5\"/></a:accent3><a:accent4><a:srgbClr val=\"FFC000\"/></a:accent4><a:accent5><a:srgbClr val=\"4472C4\"/></a:accent5><a:accent6><a:srgbClr val=\"70AD47\"/></a:accent6><a:hlink><a:srgbClr val=\"0563C1\"/></a:hlink><a:folHlink><a:srgbClr val=\"954F72\"/></a:folHlink></a:clrScheme><a:fontScheme name=\"Office\"><a:majorFont><a:latin typeface=\"Calibri Light\" panose=\"020F0302020204030204\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/><a:font script=\"Jpan\" typeface=\"游ゴシック Light\"/><a:font script=\"Hang\" typeface=\"맑은 고딕\"/><a:font script=\"Hans\" typeface=\"等线 Light\"/><a:font script=\"Hant\" typeface=\"新細明體\"/><a:font script=\"Arab\" typeface=\"Times New Roman\"/><a:font script=\"Hebr\" typeface=\"Times New Roman\"/><a:font script=\"Thai\" typeface=\"Tahoma\"/><a:font script=\"Ethi\" typeface=\"Nyala\"/><a:font script=\"Beng\" typeface=\"Vrinda\"/><a:font script=\"Gujr\" typeface=\"Shruti\"/><a:font script=\"Khmr\" typeface=\"MoolBoran\"/><a:font script=\"Knda\" typeface=\"Tunga\"/><a:font script=\"Guru\" typeface=\"Raavi\"/><a:font script=\"Cans\" typeface=\"Euphemia\"/><a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/><a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/><a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/><a:font script=\"Thaa\" typeface=\"MV Boli\"/><a:font script=\"Deva\" typeface=\"Mangal\"/><a:font script=\"Telu\" typeface=\"Gautami\"/><a:font script=\"Taml\" typeface=\"Latha\"/><a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/><a:font script=\"Orya\" typeface=\"Kalinga\"/><a:font script=\"Mlym\" typeface=\"Kartika\"/><a:font script=\"Laoo\" typeface=\"DokChampa\"/><a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/><a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/><a:font script=\"Viet\" typeface=\"Times New Roman\"/><a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/><a:font script=\"Geor\" typeface=\"Sylfaen\"/></a:majorFont><a:minorFont><a:latin typeface=\"Calibri\" panose=\"020F0502020204030204\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/><a:font script=\"Jpan\" typeface=\"游ゴシック\"/><a:font script=\"Hang\" typeface=\"맑은 고딕\"/><a:font script=\"Hans\" typeface=\"等线\"/><a:font script=\"Hant\" typeface=\"新細明體\"/><a:font script=\"Arab\" typeface=\"Arial\"/><a:font script=\"Hebr\" typeface=\"Arial\"/><a:font script=\"Thai\" typeface=\"Tahoma\"/><a:font script=\"Ethi\" typeface=\"Nyala\"/><a:font script=\"Beng\" typeface=\"Vrinda\"/><a:font script=\"Gujr\" typeface=\"Shruti\"/><a:font script=\"Khmr\" typeface=\"DaunPenh\"/><a:font script=\"Knda\" typeface=\"Tunga\"/><a:font script=\"Guru\" typeface=\"Raavi\"/><a:font script=\"Cans\" typeface=\"Euphemia\"/><a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/><a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/><a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/><a:font script=\"Thaa\" typeface=\"MV Boli\"/><a:font script=\"Deva\" typeface=\"Mangal\"/><a:font script=\"Telu\" typeface=\"Gautami\"/><a:font script=\"Taml\" typeface=\"Latha\"/><a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/><a:font script=\"Orya\" typeface=\"Kalinga\"/><a:font script=\"Mlym\" typeface=\"Kartika\"/><a:font script=\"Laoo\" typeface=\"DokChampa\"/><a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/><a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/><a:font script=\"Viet\" typeface=\"Arial\"/><a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/><a:font script=\"Geor\" typeface=\"Sylfaen\"/></a:minorFont></a:fontScheme><a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/><a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:satMod val=\"103000\"/><a:lumMod val=\"102000\"/><a:tint val=\"94000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"110000\"/><a:lumMod val=\"100000\"/><a:shade val=\"100000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/><a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"93000\"/><a:satMod val=\"150000\"/><a:shade val=\"98000\"/><a:lumMod val=\"102000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:tint val=\"98000\"/><a:satMod val=\"130000\"/><a:shade val=\"90000\"/><a:lumMod val=\"103000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"63000\"/><a:satMod val=\"120000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>`\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/vmlDrawing.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// vmlDrawing directly maps the root element in the file\n// xl/drawings/vmlDrawing%d.vml.\ntype vmlDrawing struct {\n\tXMLName     xml.Name         `xml:\"xml\"`\n\tXMLNSv      string           `xml:\"xmlns:v,attr\"`\n\tXMLNSo      string           `xml:\"xmlns:o,attr\"`\n\tXMLNSx      string           `xml:\"xmlns:x,attr\"`\n\tXMLNSmv     string           `xml:\"xmlns:mv,attr\"`\n\tShapelayout *xlsxShapelayout `xml:\"o:shapelayout\"`\n\tShapetype   *xlsxShapetype   `xml:\"v:shapetype\"`\n\tShape       []xlsxShape      `xml:\"v:shape\"`\n}\n\n// xlsxShapelayout directly maps the shapelayout element. This element contains\n// child elements that store information used in the editing and layout of\n// shapes.\ntype xlsxShapelayout struct {\n\tExt   string     `xml:\"v:ext,attr\"`\n\tIDmap *xlsxIDmap `xml:\"o:idmap\"`\n}\n\n// xlsxIDmap directly maps the idmap element.\ntype xlsxIDmap struct {\n\tExt  string `xml:\"v:ext,attr\"`\n\tData int    `xml:\"data,attr\"`\n}\n\n// xlsxShape directly maps the shape element.\ntype xlsxShape struct {\n\tXMLName     xml.Name `xml:\"v:shape\"`\n\tID          string   `xml:\"id,attr\"`\n\tType        string   `xml:\"type,attr\"`\n\tStyle       string   `xml:\"style,attr\"`\n\tFillcolor   string   `xml:\"fillcolor,attr\"`\n\tInsetmode   string   `xml:\"urn:schemas-microsoft-com:office:office insetmode,attr,omitempty\"`\n\tStrokecolor string   `xml:\"strokecolor,attr,omitempty\"`\n\tVal         string   `xml:\",innerxml\"`\n}\n\n// xlsxShapetype directly maps the shapetype element.\ntype xlsxShapetype struct {\n\tID        string      `xml:\"id,attr\"`\n\tCoordsize string      `xml:\"coordsize,attr\"`\n\tSpt       int         `xml:\"o:spt,attr\"`\n\tPath      string      `xml:\"path,attr\"`\n\tStroke    *xlsxStroke `xml:\"v:stroke\"`\n\tVPath     *vPath      `xml:\"v:path\"`\n}\n\n// xlsxStroke directly maps the stroke element.\ntype xlsxStroke struct {\n\tJoinstyle string `xml:\"joinstyle,attr\"`\n}\n\n// vPath directly maps the v:path element.\ntype vPath struct {\n\tGradientshapeok string `xml:\"gradientshapeok,attr,omitempty\"`\n\tConnecttype     string `xml:\"o:connecttype,attr\"`\n}\n\n// vFill directly maps the v:fill element. This element must be defined within a\n// Shape element.\ntype vFill struct {\n\tAngle  int    `xml:\"angle,attr,omitempty\"`\n\tColor2 string `xml:\"color2,attr\"`\n\tType   string `xml:\"type,attr,omitempty\"`\n\tFill   *oFill `xml:\"o:fill\"`\n}\n\n// oFill directly maps the o:fill element.\ntype oFill struct {\n\tExt  string `xml:\"v:ext,attr\"`\n\tType string `xml:\"type,attr,omitempty\"`\n}\n\n// vShadow directly maps the v:shadow element. This element must be defined\n// within a Shape element. In addition, the On attribute must be set to True.\ntype vShadow struct {\n\tOn       string `xml:\"on,attr\"`\n\tColor    string `xml:\"color,attr,omitempty\"`\n\tObscured string `xml:\"obscured,attr\"`\n}\n\n// vTextbox directly maps the v:textbox element. This element must be defined\n// within a Shape element.\ntype vTextbox struct {\n\tStyle string   `xml:\"style,attr\"`\n\tDiv   *xlsxDiv `xml:\"div\"`\n}\n\n// xlsxDiv directly maps the div element.\ntype xlsxDiv struct {\n\tStyle string `xml:\"style,attr\"`\n}\n\n// xClientData (Attached Object Data) directly maps the x:ClientData element.\n// This element specifies data associated with objects attached to a\n// spreadsheet. While this element might contain any of the child elements\n// below, only certain combinations are meaningful. The ObjectType attribute\n// determines the kind of object the element represents and which subset of\n// child elements is appropriate. Relevant groups are identified for each child\n// element.\ntype xClientData struct {\n\tObjectType    string `xml:\"ObjectType,attr\"`\n\tMoveWithCells string `xml:\"x:MoveWithCells,omitempty\"`\n\tSizeWithCells string `xml:\"x:SizeWithCells,omitempty\"`\n\tAnchor        string `xml:\"x:Anchor\"`\n\tAutoFill      string `xml:\"x:AutoFill\"`\n\tRow           int    `xml:\"x:Row\"`\n\tColumn        int    `xml:\"x:Column\"`\n}\n\n// decodeVmlDrawing defines the structure used to parse the file\n// xl/drawings/vmlDrawing%d.vml.\ntype decodeVmlDrawing struct {\n\tShape []decodeShape `xml:\"urn:schemas-microsoft-com:vml shape\"`\n}\n\n// decodeShape defines the structure used to parse the particular shape element.\ntype decodeShape struct {\n\tVal string `xml:\",innerxml\"`\n}\n\n// encodeShape defines the structure used to re-serialization shape element.\ntype encodeShape struct {\n\tFill       *vFill       `xml:\"v:fill\"`\n\tShadow     *vShadow     `xml:\"v:shadow\"`\n\tPath       *vPath       `xml:\"v:path\"`\n\tTextbox    *vTextbox    `xml:\"v:textbox\"`\n\tClientData *xClientData `xml:\"x:ClientData\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlChart.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxChartSpace directly maps the c:chartSpace element. The chart namespace in\n// DrawingML is for representing visualizations of numeric data with column\n// charts, pie charts, scatter charts, or other types of charts.\ntype xlsxChartSpace struct {\n\tXMLName        xml.Name        `xml:\"c:chartSpace\"`\n\tXMLNSc         string          `xml:\"xmlns:c,attr\"`\n\tXMLNSa         string          `xml:\"xmlns:a,attr\"`\n\tXMLNSr         string          `xml:\"xmlns:r,attr\"`\n\tXMLNSc16r2     string          `xml:\"xmlns:c16r2,attr\"`\n\tDate1904       *attrValBool    `xml:\"c:date1904\"`\n\tLang           *attrValString  `xml:\"c:lang\"`\n\tRoundedCorners *attrValBool    `xml:\"c:roundedCorners\"`\n\tChart          cChart          `xml:\"c:chart\"`\n\tSpPr           *cSpPr          `xml:\"c:spPr\"`\n\tTxPr           *cTxPr          `xml:\"c:txPr\"`\n\tPrintSettings  *cPrintSettings `xml:\"c:printSettings\"`\n}\n\n// cThicknessSpPr directly maps the element that specifies the thickness of the\n// walls or floor as a percentage of the largest dimension of the plot volume\n// and SpPr element.\ntype cThicknessSpPr struct {\n\tThickness *attrValInt `xml:\"c:thickness\"`\n\tSpPr      *cSpPr      `xml:\"c:spPr\"`\n}\n\n// cChart (Chart) directly maps the c:chart element. This element specifies a\n// title.\ntype cChart struct {\n\tTitle            *cTitle            `xml:\"c:title\"`\n\tAutoTitleDeleted *cAutoTitleDeleted `xml:\"c:autoTitleDeleted\"`\n\tView3D           *cView3D           `xml:\"c:view3D\"`\n\tFloor            *cThicknessSpPr    `xml:\"c:floor\"`\n\tSideWall         *cThicknessSpPr    `xml:\"c:sideWall\"`\n\tBackWall         *cThicknessSpPr    `xml:\"c:backWall\"`\n\tPlotArea         *cPlotArea         `xml:\"c:plotArea\"`\n\tLegend           *cLegend           `xml:\"c:legend\"`\n\tPlotVisOnly      *attrValBool       `xml:\"c:plotVisOnly\"`\n\tDispBlanksAs     *attrValString     `xml:\"c:dispBlanksAs\"`\n\tShowDLblsOverMax *attrValBool       `xml:\"c:showDLblsOverMax\"`\n}\n\n// cTitle (Title) directly maps the c:title element. This element specifies a\n// title.\ntype cTitle struct {\n\tTx      cTx         `xml:\"c:tx,omitempty\"`\n\tLayout  string      `xml:\"c:layout,omitempty\"`\n\tOverlay attrValBool `xml:\"c:overlay,omitempty\"`\n\tSpPr    cSpPr       `xml:\"c:spPr,omitempty\"`\n\tTxPr    cTxPr       `xml:\"c:txPr,omitempty\"`\n}\n\n// cTx (Chart Text) directly maps the c:tx element. This element specifies text\n// to use on a chart, including rich text formatting.\ntype cTx struct {\n\tStrRef *cStrRef `xml:\"c:strRef\"`\n\tRich   *cRich   `xml:\"c:rich,omitempty\"`\n}\n\n// cRich (Rich Text) directly maps the c:rich element. This element contains a\n// string with rich text formatting.\ntype cRich struct {\n\tBodyPr   aBodyPr `xml:\"a:bodyPr,omitempty\"`\n\tLstStyle string  `xml:\"a:lstStyle,omitempty\"`\n\tP        aP      `xml:\"a:p\"`\n}\n\n// aBodyPr (Body Properties) directly maps the a:bodyPr element. This element\n// defines the body properties for the text body within a shape.\ntype aBodyPr struct {\n\tAnchor           string  `xml:\"anchor,attr,omitempty\"`\n\tAnchorCtr        bool    `xml:\"anchorCtr,attr\"`\n\tRot              int     `xml:\"rot,attr\"`\n\tBIns             float64 `xml:\"bIns,attr,omitempty\"`\n\tCompatLnSpc      bool    `xml:\"compatLnSpc,attr,omitempty\"`\n\tForceAA          bool    `xml:\"forceAA,attr,omitempty\"`\n\tFromWordArt      bool    `xml:\"fromWordArt,attr,omitempty\"`\n\tHorzOverflow     string  `xml:\"horzOverflow,attr,omitempty\"`\n\tLIns             float64 `xml:\"lIns,attr,omitempty\"`\n\tNumCol           int     `xml:\"numCol,attr,omitempty\"`\n\tRIns             float64 `xml:\"rIns,attr,omitempty\"`\n\tRtlCol           bool    `xml:\"rtlCol,attr,omitempty\"`\n\tSpcCol           int     `xml:\"spcCol,attr,omitempty\"`\n\tSpcFirstLastPara bool    `xml:\"spcFirstLastPara,attr\"`\n\tTIns             float64 `xml:\"tIns,attr,omitempty\"`\n\tUpright          bool    `xml:\"upright,attr,omitempty\"`\n\tVert             string  `xml:\"vert,attr,omitempty\"`\n\tVertOverflow     string  `xml:\"vertOverflow,attr,omitempty\"`\n\tWrap             string  `xml:\"wrap,attr,omitempty\"`\n}\n\n// aP (Paragraph) directly maps the a:p element. This element specifies a\n// paragraph of content in the document.\ntype aP struct {\n\tPPr        *aPPr        `xml:\"a:pPr\"`\n\tR          *aR          `xml:\"a:r\"`\n\tEndParaRPr *aEndParaRPr `xml:\"a:endParaRPr\"`\n}\n\n// aPPr (Paragraph Properties) directly maps the a:pPr element. This element\n// specifies a set of paragraph properties which shall be applied to the\n// contents of the parent paragraph after all style/numbering/table properties\n// have been applied to the text. These properties are defined as direct\n// formatting, since they are directly applied to the paragraph and supersede\n// any formatting from styles.\ntype aPPr struct {\n\tDefRPr aRPr `xml:\"a:defRPr\"`\n}\n\n// aSolidFill (Solid Fill) directly maps the solidFill element. This element\n// specifies a solid color fill. The shape is filled entirely with the specified\n// color.\ntype aSolidFill struct {\n\tSchemeClr *aSchemeClr    `xml:\"a:schemeClr\"`\n\tSrgbClr   *attrValString `xml:\"a:srgbClr\"`\n}\n\n// aSchemeClr (Scheme Color) directly maps the a:schemeClr element. This\n// element specifies a color bound to a user's theme. As with all elements which\n// define a color, it is possible to apply a list of color transforms to the\n// base color defined.\ntype aSchemeClr struct {\n\tVal    string      `xml:\"val,attr,omitempty\"`\n\tLumMod *attrValInt `xml:\"a:lumMod\"`\n\tLumOff *attrValInt `xml:\"a:lumOff\"`\n}\n\n// attrValInt directly maps the val element with integer data type as an\n// attribute。\ntype attrValInt struct {\n\tVal int `xml:\"val,attr\"`\n}\n\n// attrValFloat directly maps the val element with float64 data type as an\n// attribute。\ntype attrValFloat struct {\n\tVal float64 `xml:\"val,attr\"`\n}\n\n// attrValBool directly maps the val element with boolean data type as an\n// attribute。\ntype attrValBool struct {\n\tVal bool `xml:\"val,attr\"`\n}\n\n// attrValString directly maps the val element with string data type as an\n// attribute。\ntype attrValString struct {\n\tVal string `xml:\"val,attr\"`\n}\n\n// aCs directly maps the a:cs element.\ntype aCs struct {\n\tTypeface string `xml:\"typeface,attr\"`\n}\n\n// aEa directly maps the a:ea element.\ntype aEa struct {\n\tTypeface string `xml:\"typeface,attr\"`\n}\n\n// aLatin (Latin Font) directly maps the a:latin element. This element\n// specifies that a Latin font be used for a specific run of text. This font is\n// specified with a typeface attribute much like the others but is specifically\n// classified as a Latin font.\ntype aLatin struct {\n\tTypeface string `xml:\"typeface,attr\"`\n}\n\n// aR directly maps the a:r element.\ntype aR struct {\n\tRPr aRPr   `xml:\"a:rPr,omitempty\"`\n\tT   string `xml:\"a:t,omitempty\"`\n}\n\n// aRPr (Run Properties) directly maps the c:rPr element. This element\n// specifies a set of run properties which shall be applied to the contents of\n// the parent run after all style formatting has been applied to the text. These\n// properties are defined as direct formatting, since they are directly applied\n// to the run and supersede any formatting from styles.\ntype aRPr struct {\n\tAltLang    string      `xml:\"altLang,attr,omitempty\"`\n\tB          bool        `xml:\"b,attr\"`\n\tBaseline   int         `xml:\"baseline,attr\"`\n\tBmk        string      `xml:\"bmk,attr,omitempty\"`\n\tCap        string      `xml:\"cap,attr,omitempty\"`\n\tDirty      bool        `xml:\"dirty,attr,omitempty\"`\n\tErr        bool        `xml:\"err,attr,omitempty\"`\n\tI          bool        `xml:\"i,attr\"`\n\tKern       int         `xml:\"kern,attr\"`\n\tKumimoji   bool        `xml:\"kumimoji,attr,omitempty\"`\n\tLang       string      `xml:\"lang,attr,omitempty\"`\n\tNoProof    bool        `xml:\"noProof,attr,omitempty\"`\n\tNormalizeH bool        `xml:\"normalizeH,attr,omitempty\"`\n\tSmtClean   bool        `xml:\"smtClean,attr,omitempty\"`\n\tSmtID      uint64      `xml:\"smtId,attr,omitempty\"`\n\tSpc        int         `xml:\"spc,attr\"`\n\tStrike     string      `xml:\"strike,attr,omitempty\"`\n\tSz         int         `xml:\"sz,attr,omitempty\"`\n\tU          string      `xml:\"u,attr,omitempty\"`\n\tSolidFill  *aSolidFill `xml:\"a:solidFill\"`\n\tLatin      *aLatin     `xml:\"a:latin\"`\n\tEa         *aEa        `xml:\"a:ea\"`\n\tCs         *aCs        `xml:\"a:cs\"`\n}\n\n// cSpPr (Shape Properties) directly maps the c:spPr element. This element\n// specifies the visual shape properties that can be applied to a shape. These\n// properties include the shape fill, outline, geometry, effects, and 3D\n// orientation.\ntype cSpPr struct {\n\tNoFill    *string     `xml:\"a:noFill\"`\n\tSolidFill *aSolidFill `xml:\"a:solidFill\"`\n\tLn        *aLn        `xml:\"a:ln\"`\n\tSp3D      *aSp3D      `xml:\"a:sp3d\"`\n\tEffectLst *string     `xml:\"a:effectLst\"`\n}\n\n// aSp3D (3-D Shape Properties) directly maps the a:sp3d element. This element\n// defines the 3D properties associated with a particular shape in DrawingML.\n// The 3D properties which can be applied to a shape are top and bottom bevels,\n// a contour and an extrusion.\ntype aSp3D struct {\n\tContourW   int          `xml:\"contourW,attr\"`\n\tContourClr *aContourClr `xml:\"a:contourClr\"`\n}\n\n// aContourClr (Contour Color) directly maps the a:contourClr element. This\n// element defines the color for the contour on a shape. The contour of a shape\n// is a solid filled line which surrounds the outer edges of the shape.\ntype aContourClr struct {\n\tSchemeClr *aSchemeClr `xml:\"a:schemeClr\"`\n}\n\n// aLn (Outline) directly maps the a:ln element. This element specifies an\n// outline style that can be applied to a number of different objects such as\n// shapes and text. The line allows for the specifying of many different types\n// of outlines including even line dashes and bevels.\ntype aLn struct {\n\tAlgn      string      `xml:\"algn,attr,omitempty\"`\n\tCap       string      `xml:\"cap,attr,omitempty\"`\n\tCmpd      string      `xml:\"cmpd,attr,omitempty\"`\n\tW         int         `xml:\"w,attr,omitempty\" `\n\tNoFill    string      `xml:\"a:noFill,omitempty\"`\n\tRound     string      `xml:\"a:round,omitempty\"`\n\tSolidFill *aSolidFill `xml:\"a:solidFill\"`\n}\n\n// cTxPr (Text Properties) directly maps the c:txPr element. This element\n// specifies text formatting. The lstStyle element is not supported.\ntype cTxPr struct {\n\tBodyPr   aBodyPr `xml:\"a:bodyPr,omitempty\"`\n\tLstStyle string  `xml:\"a:lstStyle,omitempty\"`\n\tP        aP      `xml:\"a:p,omitempty\"`\n}\n\n// aEndParaRPr (End Paragraph Run Properties) directly maps the a:endParaRPr\n// element. This element specifies the text run properties that are to be used\n// if another run is inserted after the last run specified. This effectively\n// saves the run property state so that it can be applied when the user enters\n// additional text. If this element is omitted, then the application can\n// determine which default properties to apply. It is recommended that this\n// element be specified at the end of the list of text runs within the paragraph\n// so that an orderly list is maintained.\ntype aEndParaRPr struct {\n\tLang    string `xml:\"lang,attr\"`\n\tAltLang string `xml:\"altLang,attr,omitempty\"`\n\tSz      int    `xml:\"sz,attr,omitempty\"`\n}\n\n// cAutoTitleDeleted (Auto Title Is Deleted) directly maps the\n// c:autoTitleDeleted element. This element specifies the title shall not be\n// shown for this chart.\ntype cAutoTitleDeleted struct {\n\tVal bool `xml:\"val,attr\"`\n}\n\n// cView3D (View In 3D) directly maps the c:view3D element. This element\n// specifies the 3-D view of the chart.\ntype cView3D struct {\n\tRotX         *attrValInt `xml:\"c:rotX\"`\n\tRotY         *attrValInt `xml:\"c:rotY\"`\n\tDepthPercent *attrValInt `xml:\"c:depthPercent\"`\n\tRAngAx       *attrValInt `xml:\"c:rAngAx\"`\n}\n\n// cPlotArea directly maps the c:plotArea element. This element specifies the\n// plot area of the chart.\ntype cPlotArea struct {\n\tLayout        *string  `xml:\"c:layout\"`\n\tBarChart      *cCharts `xml:\"c:barChart\"`\n\tBar3DChart    *cCharts `xml:\"c:bar3DChart\"`\n\tDoughnutChart *cCharts `xml:\"c:doughnutChart\"`\n\tLineChart     *cCharts `xml:\"c:lineChart\"`\n\tPieChart      *cCharts `xml:\"c:pieChart\"`\n\tPie3DChart    *cCharts `xml:\"c:pie3DChart\"`\n\tRadarChart    *cCharts `xml:\"c:radarChart\"`\n\tScatterChart  *cCharts `xml:\"c:scatterChart\"`\n\tCatAx         []*cAxs  `xml:\"c:catAx\"`\n\tValAx         []*cAxs  `xml:\"c:valAx\"`\n\tSpPr          *cSpPr   `xml:\"c:spPr\"`\n}\n\n// cCharts specifies the common element of the chart.\ntype cCharts struct {\n\tBarDir       *attrValString `xml:\"c:barDir\"`\n\tGrouping     *attrValString `xml:\"c:grouping\"`\n\tRadarStyle   *attrValString `xml:\"c:radarStyle\"`\n\tScatterStyle *attrValString `xml:\"c:scatterStyle\"`\n\tVaryColors   *attrValBool   `xml:\"c:varyColors\"`\n\tSer          *[]cSer        `xml:\"c:ser\"`\n\tDLbls        *cDLbls        `xml:\"c:dLbls\"`\n\tHoleSize     *attrValInt    `xml:\"c:holeSize\"`\n\tSmooth       *attrValBool   `xml:\"c:smooth\"`\n\tOverlap      *attrValInt    `xml:\"c:overlap\"`\n\tAxID         []*attrValInt  `xml:\"c:axId\"`\n}\n\n// cAxs directly maps the c:catAx and c:valAx element.\ntype cAxs struct {\n\tAxID          *attrValInt    `xml:\"c:axId\"`\n\tScaling       *cScaling      `xml:\"c:scaling\"`\n\tDelete        *attrValBool   `xml:\"c:delete\"`\n\tAxPos         *attrValString `xml:\"c:axPos\"`\n\tNumFmt        *cNumFmt       `xml:\"c:numFmt\"`\n\tMajorTickMark *attrValString `xml:\"c:majorTickMark\"`\n\tMinorTickMark *attrValString `xml:\"c:minorTickMark\"`\n\tTickLblPos    *attrValString `xml:\"c:tickLblPos\"`\n\tSpPr          *cSpPr         `xml:\"c:spPr\"`\n\tTxPr          *cTxPr         `xml:\"c:txPr\"`\n\tCrossAx       *attrValInt    `xml:\"c:crossAx\"`\n\tCrosses       *attrValString `xml:\"c:crosses\"`\n\tCrossBetween  *attrValString `xml:\"c:crossBetween\"`\n\tAuto          *attrValBool   `xml:\"c:auto\"`\n\tLblAlgn       *attrValString `xml:\"c:lblAlgn\"`\n\tLblOffset     *attrValInt    `xml:\"c:lblOffset\"`\n\tNoMultiLvlLbl *attrValBool   `xml:\"c:noMultiLvlLbl\"`\n}\n\n// cScaling directly maps the c:scaling element. This element contains\n// additional axis settings.\ntype cScaling struct {\n\tOrientation *attrValString `xml:\"c:orientation\"`\n\tMax         *attrValFloat  `xml:\"c:max\"`\n\tMin         *attrValFloat  `xml:\"c:min\"`\n}\n\n// cNumFmt (Numbering Format) directly maps the c:numFmt element. This element\n// specifies number formatting for the parent element.\ntype cNumFmt struct {\n\tFormatCode   string `xml:\"formatCode,attr\"`\n\tSourceLinked bool   `xml:\"sourceLinked,attr\"`\n}\n\n// cSer directly maps the c:ser element. This element specifies a series on a\n// chart.\ntype cSer struct {\n\tIDx              *attrValInt  `xml:\"c:idx\"`\n\tOrder            *attrValInt  `xml:\"c:order\"`\n\tTx               *cTx         `xml:\"c:tx\"`\n\tSpPr             *cSpPr       `xml:\"c:spPr\"`\n\tDPt              []*cDPt      `xml:\"c:dPt\"`\n\tDLbls            *cDLbls      `xml:\"c:dLbls\"`\n\tMarker           *cMarker     `xml:\"c:marker\"`\n\tInvertIfNegative *attrValBool `xml:\"c:invertIfNegative\"`\n\tCat              *cCat        `xml:\"c:cat\"`\n\tVal              *cVal        `xml:\"c:val\"`\n\tXVal             *cCat        `xml:\"c:xVal\"`\n\tYVal             *cVal        `xml:\"c:yVal\"`\n\tSmooth           *attrValBool `xml:\"c:smooth\"`\n}\n\n// cMarker (Marker) directly maps the c:marker element. This element specifies a\n// data marker.\ntype cMarker struct {\n\tSymbol *attrValString `xml:\"c:symbol\"`\n\tSize   *attrValInt    `xml:\"c:size\"`\n\tSpPr   *cSpPr         `xml:\"c:spPr\"`\n}\n\n// cDPt (Data Point) directly maps the c:dPt element. This element specifies a\n// single data point.\ntype cDPt struct {\n\tIDx      *attrValInt  `xml:\"c:idx\"`\n\tBubble3D *attrValBool `xml:\"c:bubble3D\"`\n\tSpPr     *cSpPr       `xml:\"c:spPr\"`\n}\n\n// cCat (Category Axis Data) directly maps the c:cat element. This element\n// specifies the data used for the category axis.\ntype cCat struct {\n\tStrRef *cStrRef `xml:\"c:strRef\"`\n}\n\n// cStrRef (String Reference) directly maps the c:strRef element. This element\n// specifies a reference to data for a single data label or title with a cache\n// of the last values used.\ntype cStrRef struct {\n\tF        string     `xml:\"c:f\"`\n\tStrCache *cStrCache `xml:\"c:strCache\"`\n}\n\n// cStrCache (String Cache) directly maps the c:strCache element. This element\n// specifies the last string data used for a chart.\ntype cStrCache struct {\n\tPt      []*cPt      `xml:\"c:pt\"`\n\tPtCount *attrValInt `xml:\"c:ptCount\"`\n}\n\n// cPt directly maps the c:pt element. This element specifies data for a\n// particular data point.\ntype cPt struct {\n\tIDx int     `xml:\"idx,attr\"`\n\tV   *string `xml:\"c:v\"`\n}\n\n// cVal directly maps the c:val element. This element specifies the data values\n// which shall be used to define the location of data markers on a chart.\ntype cVal struct {\n\tNumRef *cNumRef `xml:\"c:numRef\"`\n}\n\n// cNumRef directly maps the c:numRef element. This element specifies a\n// reference to numeric data with a cache of the last values used.\ntype cNumRef struct {\n\tF        string     `xml:\"c:f\"`\n\tNumCache *cNumCache `xml:\"c:numCache\"`\n}\n\n// cNumCache directly maps the c:numCache element. This element specifies the\n// last data shown on the chart for a series.\ntype cNumCache struct {\n\tFormatCode string      `xml:\"c:formatCode\"`\n\tPt         []*cPt      `xml:\"c:pt\"`\n\tPtCount    *attrValInt `xml:\"c:ptCount\"`\n}\n\n// cDLbls (Data Lables) directly maps the c:dLbls element. This element serves\n// as a root element that specifies the settings for the data labels for an\n// entire series or the entire chart. It contains child elements that specify\n// the specific formatting and positioning settings.\ntype cDLbls struct {\n\tShowLegendKey   *attrValBool `xml:\"c:showLegendKey\"`\n\tShowVal         *attrValBool `xml:\"c:showVal\"`\n\tShowCatName     *attrValBool `xml:\"c:showCatName\"`\n\tShowSerName     *attrValBool `xml:\"c:showSerName\"`\n\tShowPercent     *attrValBool `xml:\"c:showPercent\"`\n\tShowBubbleSize  *attrValBool `xml:\"c:showBubbleSize\"`\n\tShowLeaderLines *attrValBool `xml:\"c:showLeaderLines\"`\n}\n\n// cLegend (Legend) directly maps the c:legend element. This element specifies\n// the legend.\ntype cLegend struct {\n\tLayout    *string        `xml:\"c:layout\"`\n\tLegendPos *attrValString `xml:\"c:legendPos\"`\n\tOverlay   *attrValBool   `xml:\"c:overlay\"`\n\tSpPr      *cSpPr         `xml:\"c:spPr\"`\n\tTxPr      *cTxPr         `xml:\"c:txPr\"`\n}\n\n// cPrintSettings directly maps the c:printSettings element. This element\n// specifies the print settings for the chart.\ntype cPrintSettings struct {\n\tHeaderFooter *string       `xml:\"c:headerFooter\"`\n\tPageMargins  *cPageMargins `xml:\"c:pageMargins\"`\n\tPageSetup    *string       `xml:\"c:pageSetup\"`\n}\n\n// cPageMargins directly maps the c:pageMargins element. This element specifies\n// the page margins for a chart.\ntype cPageMargins struct {\n\tB      float64 `xml:\"b,attr\"`\n\tFooter float64 `xml:\"footer,attr\"`\n\tHeader float64 `xml:\"header,attr\"`\n\tL      float64 `xml:\"l,attr\"`\n\tR      float64 `xml:\"r,attr\"`\n\tT      float64 `xml:\"t,attr\"`\n}\n\n// formatChartAxis directly maps the format settings of the chart axis.\ntype formatChartAxis struct {\n\tCrossing            string  `json:\"crossing\"`\n\tMajorTickMark       string  `json:\"major_tick_mark\"`\n\tMinorTickMark       string  `json:\"minor_tick_mark\"`\n\tMinorUnitType       string  `json:\"minor_unit_type\"`\n\tMajorUnit           int     `json:\"major_unit\"`\n\tMajorUnitType       string  `json:\"major_unit_type\"`\n\tDisplayUnits        string  `json:\"display_units\"`\n\tDisplayUnitsVisible bool    `json:\"display_units_visible\"`\n\tDateAxis            bool    `json:\"date_axis\"`\n\tReverseOrder        bool    `json:\"reverse_order\"`\n\tMaximum             float64 `json:\"maximum\"`\n\tMinimum             float64 `json:\"minimum\"`\n\tNumFormat           string  `json:\"num_format\"`\n\tNumFont             struct {\n\t\tColor     string `json:\"color\"`\n\t\tBold      bool   `json:\"bold\"`\n\t\tItalic    bool   `json:\"italic\"`\n\t\tUnderline bool   `json:\"underline\"`\n\t} `json:\"num_font\"`\n\tNameLayout formatLayout `json:\"name_layout\"`\n}\n\ntype formatChartDimension struct {\n\tWidth  int `json:\"width\"`\n\tHeight int `json:\"height\"`\n}\n\n// formatChart directly maps the format settings of the chart.\ntype formatChart struct {\n\tType      string               `json:\"type\"`\n\tSeries    []formatChartSeries  `json:\"series\"`\n\tFormat    formatPicture        `json:\"format\"`\n\tDimension formatChartDimension `json:\"dimension\"`\n\tLegend    formatChartLegend    `json:\"legend\"`\n\tTitle     formatChartTitle     `json:\"title\"`\n\tXAxis     formatChartAxis      `json:\"x_axis\"`\n\tYAxis     formatChartAxis      `json:\"y_axis\"`\n\tChartarea struct {\n\t\tBorder struct {\n\t\t\tNone bool `json:\"none\"`\n\t\t} `json:\"border\"`\n\t\tFill struct {\n\t\t\tColor string `json:\"color\"`\n\t\t} `json:\"fill\"`\n\t\tPattern struct {\n\t\t\tPattern string `json:\"pattern\"`\n\t\t\tFgColor string `json:\"fg_color\"`\n\t\t\tBgColor string `json:\"bg_color\"`\n\t\t} `json:\"pattern\"`\n\t} `json:\"chartarea\"`\n\tPlotarea struct {\n\t\tShowBubbleSize  bool `json:\"show_bubble_size\"`\n\t\tShowCatName     bool `json:\"show_cat_name\"`\n\t\tShowLeaderLines bool `json:\"show_leader_lines\"`\n\t\tShowPercent     bool `json:\"show_percent\"`\n\t\tShowSerName     bool `json:\"show_series_name\"`\n\t\tShowVal         bool `json:\"show_val\"`\n\t\tGradient        struct {\n\t\t\tColors []string `json:\"colors\"`\n\t\t} `json:\"gradient\"`\n\t\tBorder struct {\n\t\t\tColor    string `json:\"color\"`\n\t\t\tWidth    int    `json:\"width\"`\n\t\t\tDashType string `json:\"dash_type\"`\n\t\t} `json:\"border\"`\n\t\tFill struct {\n\t\t\tColor string `json:\"color\"`\n\t\t} `json:\"fill\"`\n\t\tLayout formatLayout `json:\"layout\"`\n\t} `json:\"plotarea\"`\n\tShowBlanksAs   string `json:\"show_blanks_as\"`\n\tShowHiddenData bool   `json:\"show_hidden_data\"`\n\tSetRotation    int    `json:\"set_rotation\"`\n\tSetHoleSize    int    `json:\"set_hole_size\"`\n}\n\n// formatChartLegend directly maps the format settings of the chart legend.\ntype formatChartLegend struct {\n\tNone            bool         `json:\"none\"`\n\tDeleteSeries    []int        `json:\"delete_series\"`\n\tFont            formatFont   `json:\"font\"`\n\tLayout          formatLayout `json:\"layout\"`\n\tPosition        string       `json:\"position\"`\n\tShowLegendEntry bool         `json:\"show_legend_entry\"`\n\tShowLegendKey   bool         `json:\"show_legend_key\"`\n}\n\n// formatChartSeries directly maps the format settings of the chart series.\ntype formatChartSeries struct {\n\tName       string `json:\"name\"`\n\tCategories string `json:\"categories\"`\n\tValues     string `json:\"values\"`\n\tLine       struct {\n\t\tNone  bool   `json:\"none\"`\n\t\tColor string `json:\"color\"`\n\t} `json:\"line\"`\n\tMarker struct {\n\t\tType   string  `json:\"type\"`\n\t\tSize   int     `json:\"size,\"`\n\t\tWidth  float64 `json:\"width\"`\n\t\tBorder struct {\n\t\t\tColor string `json:\"color\"`\n\t\t\tNone  bool   `json:\"none\"`\n\t\t} `json:\"border\"`\n\t\tFill struct {\n\t\t\tColor string `json:\"color\"`\n\t\t\tNone  bool   `json:\"none\"`\n\t\t} `json:\"fill\"`\n\t} `json:\"marker\"`\n}\n\n// formatChartTitle directly maps the format settings of the chart title.\ntype formatChartTitle struct {\n\tNone    bool         `json:\"none\"`\n\tName    string       `json:\"name\"`\n\tOverlay bool         `json:\"overlay\"`\n\tLayout  formatLayout `json:\"layout\"`\n}\n\n// formatLayout directly maps the format settings of the element layout.\ntype formatLayout struct {\n\tX      float64 `json:\"x\"`\n\tY      float64 `json:\"y\"`\n\tWidth  float64 `json:\"width\"`\n\tHeight float64 `json:\"height\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlComments.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxComments directly maps the comments element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main. A comment is a\n// rich text note that is attached to and associated with a cell, separate from\n// other cell content. Comment content is stored separate from the cell, and is\n// displayed in a drawing object (like a text box) that is separate from, but\n// associated with, a cell. Comments are used as reminders, such as noting how a\n// complex formula works, or to provide feedback to other users. Comments can\n// also be used to explain assumptions made in a formula or to call out\n// something special about the cell.\ntype xlsxComments struct {\n\tXMLName     xml.Name        `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main comments\"`\n\tAuthors     []xlsxAuthor    `xml:\"authors\"`\n\tCommentList xlsxCommentList `xml:\"commentList\"`\n}\n\n// xlsxAuthor directly maps the author element. This element holds a string\n// representing the name of a single author of comments. Every comment shall\n// have an author. The maximum length of the author string is an implementation\n// detail, but a good guideline is 255 chars.\ntype xlsxAuthor struct {\n\tAuthor string `xml:\"author\"`\n}\n\n// xlsxCommentList (List of Comments) directly maps the xlsxCommentList element.\n// This element is a container that holds a list of comments for the sheet.\ntype xlsxCommentList struct {\n\tComment []xlsxComment `xml:\"comment\"`\n}\n\n// xlsxComment directly maps the comment element. This element represents a\n// single user entered comment. Each comment shall have an author and can\n// optionally contain richly formatted text.\ntype xlsxComment struct {\n\tRef      string   `xml:\"ref,attr\"`\n\tAuthorID int      `xml:\"authorId,attr\"`\n\tText     xlsxText `xml:\"text\"`\n}\n\n// xlsxText directly maps the text element. This element contains rich text\n// which represents the text of a comment. The maximum length for this text is a\n// spreadsheet application implementation detail. A recommended guideline is\n// 32767 chars.\ntype xlsxText struct {\n\tR []xlsxR `xml:\"r\"`\n}\n\n// formatComment directly maps the format settings of the comment.\ntype formatComment struct {\n\tAuthor string `json:\"author\"`\n\tText   string `json:\"text\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlContentTypes.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxTypes directly maps the types element of content types for relationship\n// parts, it takes a Multipurpose Internet Mail Extension (MIME) media type as a\n// value.\ntype xlsxTypes struct {\n\tXMLName   xml.Name       `xml:\"http://schemas.openxmlformats.org/package/2006/content-types Types\"`\n\tOverrides []xlsxOverride `xml:\"Override\"`\n\tDefaults  []xlsxDefault  `xml:\"Default\"`\n}\n\n// xlsxOverride directly maps the override element in the namespace\n// http://schemas.openxmlformats.org/package/2006/content-types\ntype xlsxOverride struct {\n\tPartName    string `xml:\",attr\"`\n\tContentType string `xml:\",attr\"`\n}\n\n// xlsxDefault directly maps the default element in the namespace\n// http://schemas.openxmlformats.org/package/2006/content-types\ntype xlsxDefault struct {\n\tExtension   string `xml:\",attr\"`\n\tContentType string `xml:\",attr\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlDecodeDrawing.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// decodeCellAnchor directly maps the oneCellAnchor (One Cell Anchor Shape Size)\n// and twoCellAnchor (Two Cell Anchor Shape Size). This element specifies a two\n// cell anchor placeholder for a group, a shape, or a drawing element. It moves\n// with cells and its extents are in EMU units.\ntype decodeCellAnchor struct {\n\tEditAs  string `xml:\"editAs,attr,omitempty\"`\n\tContent string `xml:\",innerxml\"`\n}\n\n// decodeWsDr directly maps the root element for a part of this content type\n// shall wsDr. In order to solve the problem that the label structure is changed\n// after serialization and deserialization, two different structures are\n// defined. decodeWsDr just for deserialization.\ntype decodeWsDr struct {\n\tA             string              `xml:\"xmlns a,attr\"`\n\tXdr           string              `xml:\"xmlns xdr,attr\"`\n\tR             string              `xml:\"xmlns r,attr\"`\n\tOneCellAnchor []*decodeCellAnchor `xml:\"oneCellAnchor,omitempty\"`\n\tTwoCellAnchor []*decodeCellAnchor `xml:\"twoCellAnchor,omitempty\"`\n\tXMLName       xml.Name            `xml:\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing wsDr,omitempty\"`\n}\n\n// decodeTwoCellAnchor directly maps the oneCellAnchor (One Cell Anchor Shape\n// Size) and twoCellAnchor (Two Cell Anchor Shape Size). This element specifies\n// a two cell anchor placeholder for a group, a shape, or a drawing element. It\n// moves with cells and its extents are in EMU units.\ntype decodeTwoCellAnchor struct {\n\tFrom       *decodeFrom       `xml:\"from\"`\n\tTo         *decodeTo         `xml:\"to\"`\n\tPic        *decodePic        `xml:\"pic,omitempty\"`\n\tClientData *decodeClientData `xml:\"clientData\"`\n}\n\n// decodeCNvPr directly maps the cNvPr (Non-Visual Drawing Properties). This\n// element specifies non-visual canvas properties. This allows for additional\n// information that does not affect the appearance of the picture to be stored.\ntype decodeCNvPr struct {\n\tID    int    `xml:\"id,attr\"`\n\tName  string `xml:\"name,attr\"`\n\tDescr string `xml:\"descr,attr\"`\n\tTitle string `xml:\"title,attr,omitempty\"`\n}\n\n// decodePicLocks directly maps the picLocks (Picture Locks). This element\n// specifies all locking properties for a graphic frame. These properties inform\n// the generating application about specific properties that have been\n// previously locked and thus should not be changed.\ntype decodePicLocks struct {\n\tNoAdjustHandles    bool `xml:\"noAdjustHandles,attr,omitempty\"`\n\tNoChangeArrowheads bool `xml:\"noChangeArrowheads,attr,omitempty\"`\n\tNoChangeAspect     bool `xml:\"noChangeAspect,attr\"`\n\tNoChangeShapeType  bool `xml:\"noChangeShapeType,attr,omitempty\"`\n\tNoCrop             bool `xml:\"noCrop,attr,omitempty\"`\n\tNoEditPoints       bool `xml:\"noEditPoints,attr,omitempty\"`\n\tNoGrp              bool `xml:\"noGrp,attr,omitempty\"`\n\tNoMove             bool `xml:\"noMove,attr,omitempty\"`\n\tNoResize           bool `xml:\"noResize,attr,omitempty\"`\n\tNoRot              bool `xml:\"noRot,attr,omitempty\"`\n\tNoSelect           bool `xml:\"noSelect,attr,omitempty\"`\n}\n\n// decodeBlip directly maps the blip element in the namespace\n// http://purl.oclc.org/ooxml/officeDoc ument/relationships - This element\n// specifies the existence of an image (binary large image or picture) and\n// contains a reference to the image data.\ntype decodeBlip struct {\n\tEmbed  string `xml:\"embed,attr\"`\n\tCstate string `xml:\"cstate,attr,omitempty\"`\n\tR      string `xml:\"r,attr\"`\n}\n\n// decodeStretch directly maps the stretch element. This element specifies that\n// a BLIP should be stretched to fill the target rectangle. The other option is\n// a tile where a BLIP is tiled to fill the available area.\ntype decodeStretch struct {\n\tFillRect string `xml:\"fillRect\"`\n}\n\n// decodeOff directly maps the colOff and rowOff element. This element is used\n// to specify the column offset within a cell.\ntype decodeOff struct {\n\tX int `xml:\"x,attr\"`\n\tY int `xml:\"y,attr\"`\n}\n\n// decodeExt directly maps the ext element.\ntype decodeExt struct {\n\tCx int `xml:\"cx,attr\"`\n\tCy int `xml:\"cy,attr\"`\n}\n\n// decodePrstGeom directly maps the prstGeom (Preset geometry). This element\n// specifies when a preset geometric shape should be used instead of a custom\n// geometric shape. The generating application should be able to render all\n// preset geometries enumerated in the ST_ShapeType list.\ntype decodePrstGeom struct {\n\tPrst string `xml:\"prst,attr\"`\n}\n\n// decodeXfrm directly maps the xfrm (2D Transform for Graphic Frame). This\n// element specifies the transform to be applied to the corresponding graphic\n// frame. This transformation is applied to the graphic frame just as it would\n// be for a shape or group shape.\ntype decodeXfrm struct {\n\tOff decodeOff `xml:\"off\"`\n\tExt decodeExt `xml:\"ext\"`\n}\n\n// decodeCNvPicPr directly maps the cNvPicPr (Non-Visual Picture Drawing\n// Properties). This element specifies the non-visual properties for the picture\n// canvas. These properties are to be used by the generating application to\n// determine how certain properties are to be changed for the picture object in\n// question.\ntype decodeCNvPicPr struct {\n\tPicLocks decodePicLocks `xml:\"picLocks\"`\n}\n\n// directly maps the nvPicPr (Non-Visual Properties for a Picture). This element\n// specifies all non-visual properties for a picture. This element is a\n// container for the non-visual identification properties, shape properties and\n// application properties that are to be associated with a picture. This allows\n// for additional information that does not affect the appearance of the picture\n// to be stored.\ntype decodeNvPicPr struct {\n\tCNvPr    decodeCNvPr    `xml:\"cNvPr\"`\n\tCNvPicPr decodeCNvPicPr `xml:\"cNvPicPr\"`\n}\n\n// decodeBlipFill directly maps the blipFill (Picture Fill). This element\n// specifies the kind of picture fill that the picture object has. Because a\n// picture has a picture fill already by default, it is possible to have two\n// fills specified for a picture object.\ntype decodeBlipFill struct {\n\tBlip    decodeBlip    `xml:\"blip\"`\n\tStretch decodeStretch `xml:\"stretch\"`\n}\n\n// decodeSpPr directly maps the spPr (Shape Properties). This element specifies\n// the visual shape properties that can be applied to a picture. These are the\n// same properties that are allowed to describe the visual properties of a shape\n// but are used here to describe the visual appearance of a picture within a\n// document.\ntype decodeSpPr struct {\n\tXfrm     decodeXfrm     `xml:\"a:xfrm\"`\n\tPrstGeom decodePrstGeom `xml:\"a:prstGeom\"`\n}\n\n// decodePic elements encompass the definition of pictures within the DrawingML\n// framework. While pictures are in many ways very similar to shapes they have\n// specific properties that are unique in order to optimize for picture-\n// specific scenarios.\ntype decodePic struct {\n\tNvPicPr  decodeNvPicPr  `xml:\"nvPicPr\"`\n\tBlipFill decodeBlipFill `xml:\"blipFill\"`\n\tSpPr     decodeSpPr     `xml:\"spPr\"`\n}\n\n// decodeFrom specifies the starting anchor.\ntype decodeFrom struct {\n\tCol    int `xml:\"col\"`\n\tColOff int `xml:\"colOff\"`\n\tRow    int `xml:\"row\"`\n\tRowOff int `xml:\"rowOff\"`\n}\n\n// decodeTo directly specifies the ending anchor.\ntype decodeTo struct {\n\tCol    int `xml:\"col\"`\n\tColOff int `xml:\"colOff\"`\n\tRow    int `xml:\"row\"`\n\tRowOff int `xml:\"rowOff\"`\n}\n\n// decodeClientData directly maps the clientData element. An empty element which\n// specifies (via attributes) certain properties related to printing and\n// selection of the drawing object. The fLocksWithSheet attribute (either true\n// or false) determines whether to disable selection when the sheet is\n// protected, and fPrintsWithSheet attribute (either true or false) determines\n// whether the object is printed when the sheet is printed.\ntype decodeClientData struct {\n\tFLocksWithSheet  bool `xml:\"fLocksWithSheet,attr\"`\n\tFPrintsWithSheet bool `xml:\"fPrintsWithSheet,attr\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlDrawing.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// Source relationship and namespace.\nconst (\n\tSourceRelationship              = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n\tSourceRelationshipChart         = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\"\n\tSourceRelationshipComments      = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\"\n\tSourceRelationshipImage         = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\"\n\tSourceRelationshipTable         = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table\"\n\tSourceRelationshipDrawingML     = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\"\n\tSourceRelationshipDrawingVML    = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\"\n\tSourceRelationshipHyperLink     = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\"\n\tSourceRelationshipWorkSheet     = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\"\n\tSourceRelationshipChart201506   = \"http://schemas.microsoft.com/office/drawing/2015/06/chart\"\n\tSourceRelationshipChart20070802 = \"http://schemas.microsoft.com/office/drawing/2007/8/2/chart\"\n\tSourceRelationshipChart2014     = \"http://schemas.microsoft.com/office/drawing/2014/chart\"\n\tSourceRelationshipCompatibility = \"http://schemas.openxmlformats.org/markup-compatibility/2006\"\n\tNameSpaceDrawingML              = \"http://schemas.openxmlformats.org/drawingml/2006/main\"\n\tNameSpaceDrawingMLChart         = \"http://schemas.openxmlformats.org/drawingml/2006/chart\"\n\tNameSpaceDrawingMLSpreadSheet   = \"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\"\n\tNameSpaceSpreadSheet            = \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n\tNameSpaceXML                    = \"http://www.w3.org/XML/1998/namespace\"\n)\n\nvar supportImageTypes = map[string]string{\".gif\": \".gif\", \".jpg\": \".jpeg\", \".jpeg\": \".jpeg\", \".png\": \".png\"}\n\n// xlsxCNvPr directly maps the cNvPr (Non-Visual Drawing Properties). This\n// element specifies non-visual canvas properties. This allows for additional\n// information that does not affect the appearance of the picture to be stored.\ntype xlsxCNvPr struct {\n\tID         int             `xml:\"id,attr\"`\n\tName       string          `xml:\"name,attr\"`\n\tDescr      string          `xml:\"descr,attr\"`\n\tTitle      string          `xml:\"title,attr,omitempty\"`\n\tHlinkClick *xlsxHlinkClick `xml:\"a:hlinkClick\"`\n}\n\n// xlsxHlinkClick (Click Hyperlink) Specifies the on-click hyperlink\n// information to be applied to a run of text. When the hyperlink text is\n// clicked the link is fetched.\ntype xlsxHlinkClick struct {\n\tR              string `xml:\"xmlns:r,attr,omitempty\"`\n\tRID            string `xml:\"r:id,attr,omitempty\"`\n\tInvalidURL     string `xml:\"invalidUrl,attr,omitempty\"`\n\tAction         string `xml:\"action,attr,omitempty\"`\n\tTgtFrame       string `xml:\"tgtFrame,attr,omitempty\"`\n\tTooltip        string `xml:\"tooltip,attr,omitempty\"`\n\tHistory        bool   `xml:\"history,attr,omitempty\"`\n\tHighlightClick bool   `xml:\"highlightClick,attr,omitempty\"`\n\tEndSnd         bool   `xml:\"endSnd,attr,omitempty\"`\n}\n\n// xlsxPicLocks directly maps the picLocks (Picture Locks). This element\n// specifies all locking properties for a graphic frame. These properties inform\n// the generating application about specific properties that have been\n// previously locked and thus should not be changed.\ntype xlsxPicLocks struct {\n\tNoAdjustHandles    bool `xml:\"noAdjustHandles,attr,omitempty\"`\n\tNoChangeArrowheads bool `xml:\"noChangeArrowheads,attr,omitempty\"`\n\tNoChangeAspect     bool `xml:\"noChangeAspect,attr\"`\n\tNoChangeShapeType  bool `xml:\"noChangeShapeType,attr,omitempty\"`\n\tNoCrop             bool `xml:\"noCrop,attr,omitempty\"`\n\tNoEditPoints       bool `xml:\"noEditPoints,attr,omitempty\"`\n\tNoGrp              bool `xml:\"noGrp,attr,omitempty\"`\n\tNoMove             bool `xml:\"noMove,attr,omitempty\"`\n\tNoResize           bool `xml:\"noResize,attr,omitempty\"`\n\tNoRot              bool `xml:\"noRot,attr,omitempty\"`\n\tNoSelect           bool `xml:\"noSelect,attr,omitempty\"`\n}\n\n// xlsxBlip directly maps the blip element in the namespace\n// http://purl.oclc.org/ooxml/officeDoc ument/relationships - This element\n// specifies the existence of an image (binary large image or picture) and\n// contains a reference to the image data.\ntype xlsxBlip struct {\n\tEmbed  string `xml:\"r:embed,attr\"`\n\tCstate string `xml:\"cstate,attr,omitempty\"`\n\tR      string `xml:\"xmlns:r,attr\"`\n}\n\n// xlsxStretch directly maps the stretch element. This element specifies that a\n// BLIP should be stretched to fill the target rectangle. The other option is a\n// tile where a BLIP is tiled to fill the available area.\ntype xlsxStretch struct {\n\tFillRect string `xml:\"a:fillRect\"`\n}\n\n// xlsxOff directly maps the colOff and rowOff element. This element is used to\n// specify the column offset within a cell.\ntype xlsxOff struct {\n\tX int `xml:\"x,attr\"`\n\tY int `xml:\"y,attr\"`\n}\n\n// xlsxExt directly maps the ext element.\ntype xlsxExt struct {\n\tCx int `xml:\"cx,attr\"`\n\tCy int `xml:\"cy,attr\"`\n}\n\n// xlsxPrstGeom directly maps the prstGeom (Preset geometry). This element\n// specifies when a preset geometric shape should be used instead of a custom\n// geometric shape. The generating application should be able to render all\n// preset geometries enumerated in the ST_ShapeType list.\ntype xlsxPrstGeom struct {\n\tPrst string `xml:\"prst,attr\"`\n}\n\n// xlsxXfrm directly maps the xfrm (2D Transform for Graphic Frame). This\n// element specifies the transform to be applied to the corresponding graphic\n// frame. This transformation is applied to the graphic frame just as it would\n// be for a shape or group shape.\ntype xlsxXfrm struct {\n\tOff xlsxOff `xml:\"a:off\"`\n\tExt xlsxExt `xml:\"a:ext\"`\n}\n\n// xlsxCNvPicPr directly maps the cNvPicPr (Non-Visual Picture Drawing\n// Properties). This element specifies the non-visual properties for the picture\n// canvas. These properties are to be used by the generating application to\n// determine how certain properties are to be changed for the picture object in\n// question.\ntype xlsxCNvPicPr struct {\n\tPicLocks xlsxPicLocks `xml:\"a:picLocks\"`\n}\n\n// directly maps the nvPicPr (Non-Visual Properties for a Picture). This element\n// specifies all non-visual properties for a picture. This element is a\n// container for the non-visual identification properties, shape properties and\n// application properties that are to be associated with a picture. This allows\n// for additional information that does not affect the appearance of the picture\n// to be stored.\ntype xlsxNvPicPr struct {\n\tCNvPr    xlsxCNvPr    `xml:\"xdr:cNvPr\"`\n\tCNvPicPr xlsxCNvPicPr `xml:\"xdr:cNvPicPr\"`\n}\n\n// xlsxBlipFill directly maps the blipFill (Picture Fill). This element\n// specifies the kind of picture fill that the picture object has. Because a\n// picture has a picture fill already by default, it is possible to have two\n// fills specified for a picture object.\ntype xlsxBlipFill struct {\n\tBlip    xlsxBlip    `xml:\"a:blip\"`\n\tStretch xlsxStretch `xml:\"a:stretch\"`\n}\n\n// xlsxSpPr directly maps the spPr (Shape Properties). This element specifies\n// the visual shape properties that can be applied to a picture. These are the\n// same properties that are allowed to describe the visual properties of a shape\n// but are used here to describe the visual appearance of a picture within a\n// document.\ntype xlsxSpPr struct {\n\tXfrm     xlsxXfrm     `xml:\"a:xfrm\"`\n\tPrstGeom xlsxPrstGeom `xml:\"a:prstGeom\"`\n}\n\n// xlsxPic elements encompass the definition of pictures within the DrawingML\n// framework. While pictures are in many ways very similar to shapes they have\n// specific properties that are unique in order to optimize for picture-\n// specific scenarios.\ntype xlsxPic struct {\n\tNvPicPr  xlsxNvPicPr  `xml:\"xdr:nvPicPr\"`\n\tBlipFill xlsxBlipFill `xml:\"xdr:blipFill\"`\n\tSpPr     xlsxSpPr     `xml:\"xdr:spPr\"`\n}\n\n// xlsxFrom specifies the starting anchor.\ntype xlsxFrom struct {\n\tCol    int `xml:\"xdr:col\"`\n\tColOff int `xml:\"xdr:colOff\"`\n\tRow    int `xml:\"xdr:row\"`\n\tRowOff int `xml:\"xdr:rowOff\"`\n}\n\n// xlsxTo directly specifies the ending anchor.\ntype xlsxTo struct {\n\tCol    int `xml:\"xdr:col\"`\n\tColOff int `xml:\"xdr:colOff\"`\n\tRow    int `xml:\"xdr:row\"`\n\tRowOff int `xml:\"xdr:rowOff\"`\n}\n\n// xdrClientData directly maps the clientData element. An empty element which\n// specifies (via attributes) certain properties related to printing and\n// selection of the drawing object. The fLocksWithSheet attribute (either true\n// or false) determines whether to disable selection when the sheet is\n// protected, and fPrintsWithSheet attribute (either true or false) determines\n// whether the object is printed when the sheet is printed.\ntype xdrClientData struct {\n\tFLocksWithSheet  bool `xml:\"fLocksWithSheet,attr\"`\n\tFPrintsWithSheet bool `xml:\"fPrintsWithSheet,attr\"`\n}\n\n// xdrCellAnchor directly maps the oneCellAnchor (One Cell Anchor Shape Size)\n// and twoCellAnchor (Two Cell Anchor Shape Size). This element specifies a two\n// cell anchor placeholder for a group, a shape, or a drawing element. It moves\n// with cells and its extents are in EMU units.\ntype xdrCellAnchor struct {\n\tEditAs       string         `xml:\"editAs,attr,omitempty\"`\n\tFrom         *xlsxFrom      `xml:\"xdr:from\"`\n\tTo           *xlsxTo        `xml:\"xdr:to\"`\n\tExt          *xlsxExt       `xml:\"xdr:ext\"`\n\tSp           *xdrSp         `xml:\"xdr:sp\"`\n\tPic          *xlsxPic       `xml:\"xdr:pic,omitempty\"`\n\tGraphicFrame string         `xml:\",innerxml\"`\n\tClientData   *xdrClientData `xml:\"xdr:clientData\"`\n}\n\n// xlsxWsDr directly maps the root element for a part of this content type shall\n// wsDr.\ntype xlsxWsDr struct {\n\tXMLName       xml.Name         `xml:\"xdr:wsDr\"`\n\tOneCellAnchor []*xdrCellAnchor `xml:\"xdr:oneCellAnchor\"`\n\tTwoCellAnchor []*xdrCellAnchor `xml:\"xdr:twoCellAnchor\"`\n\tA             string           `xml:\"xmlns:a,attr,omitempty\"`\n\tXdr           string           `xml:\"xmlns:xdr,attr,omitempty\"`\n\tR             string           `xml:\"xmlns:r,attr,omitempty\"`\n}\n\n// xlsxGraphicFrame (Graphic Frame) directly maps the xdr:graphicFrame element.\n// This element specifies the existence of a graphics frame. This frame contains\n// a graphic that was generated by an external source and needs a container in\n// which to be displayed on the slide surface.\ntype xlsxGraphicFrame struct {\n\tXMLName          xml.Name             `xml:\"xdr:graphicFrame\"`\n\tMacro            string               `xml:\"macro,attr\"`\n\tNvGraphicFramePr xlsxNvGraphicFramePr `xml:\"xdr:nvGraphicFramePr\"`\n\tXfrm             xlsxXfrm             `xml:\"xdr:xfrm\"`\n\tGraphic          *xlsxGraphic         `xml:\"a:graphic\"`\n}\n\n// xlsxNvGraphicFramePr (Non-Visual Properties for a Graphic Frame) directly\n// maps the xdr:nvGraphicFramePr element. This element specifies all non-visual\n// properties for a graphic frame. This element is a container for the non-\n// visual identification properties, shape properties and application properties\n// that are to be associated with a graphic frame. This allows for additional\n// information that does not affect the appearance of the graphic frame to be\n// stored.\ntype xlsxNvGraphicFramePr struct {\n\tCNvPr                *xlsxCNvPr `xml:\"xdr:cNvPr\"`\n\tChicNvGraphicFramePr string     `xml:\"xdr:cNvGraphicFramePr\"`\n}\n\n// xlsxGraphic (Graphic Object) directly maps the a:graphic element. This\n// element specifies the existence of a single graphic object. Document authors\n// should refer to this element when they wish to persist a graphical object of\n// some kind. The specification for this graphical object is provided entirely\n// by the document author and referenced within the graphicData child element.\ntype xlsxGraphic struct {\n\tGraphicData *xlsxGraphicData `xml:\"a:graphicData\"`\n}\n\n// xlsxGraphicData (Graphic Object Data) directly maps the a:graphicData\n// element. This element specifies the reference to a graphic object within the\n// document. This graphic object is provided entirely by the document authors\n// who choose to persist this data within the document.\ntype xlsxGraphicData struct {\n\tURI   string     `xml:\"uri,attr\"`\n\tChart *xlsxChart `xml:\"c:chart,omitempty\"`\n}\n\n// xlsxChart (Chart) directly maps the c:chart element.\ntype xlsxChart struct {\n\tC   string `xml:\"xmlns:c,attr\"`\n\tRID string `xml:\"r:id,attr\"`\n\tR   string `xml:\"xmlns:r,attr\"`\n}\n\n// xdrSp (Shape) directly maps the xdr:sp element. This element specifies the\n// existence of a single shape. A shape can either be a preset or a custom\n// geometry, defined using the SpreadsheetDrawingML framework. In addition to a\n// geometry each shape can have both visual and non-visual properties attached.\n// Text and corresponding styling information can also be attached to a shape.\n// This shape is specified along with all other shapes within either the shape\n// tree or group shape elements.\ntype xdrSp struct {\n\tMacro    string     `xml:\"macro,attr\"`\n\tTextlink string     `xml:\"textlink,attr\"`\n\tNvSpPr   *xdrNvSpPr `xml:\"xdr:nvSpPr\"`\n\tSpPr     *xlsxSpPr  `xml:\"xdr:spPr\"`\n\tStyle    *xdrStyle  `xml:\"xdr:style\"`\n\tTxBody   *xdrTxBody `xml:\"xdr:txBody\"`\n}\n\n// xdrNvSpPr (Non-Visual Properties for a Shape) directly maps the xdr:nvSpPr\n// element. This element specifies all non-visual properties for a shape. This\n// element is a container for the non-visual identification properties, shape\n// properties and application properties that are to be associated with a shape.\n// This allows for additional information that does not affect the appearance of\n// the shape to be stored.\ntype xdrNvSpPr struct {\n\tCNvPr   *xlsxCNvPr  `xml:\"xdr:cNvPr\"`\n\tCNvSpPr *xdrCNvSpPr `xml:\"xdr:cNvSpPr\"`\n}\n\n// xdrCNvSpPr (Connection Non-Visual Shape Properties) directly maps the\n// xdr:cNvSpPr element. This element specifies the set of non-visual properties\n// for a connection shape. These properties specify all data about the\n// connection shape which do not affect its display within a spreadsheet.\ntype xdrCNvSpPr struct {\n\tTxBox bool `xml:\"txBox,attr\"`\n}\n\n// xdrStyle (Shape Style) directly maps the xdr:style element. The element\n// specifies the style that is applied to a shape and the corresponding\n// references for each of the style components such as lines and fills.\ntype xdrStyle struct {\n\tLnRef     *aRef     `xml:\"a:lnRef\"`\n\tFillRef   *aRef     `xml:\"a:fillRef\"`\n\tEffectRef *aRef     `xml:\"a:effectRef\"`\n\tFontRef   *aFontRef `xml:\"a:fontRef\"`\n}\n\n// aRef directly maps the a:lnRef, a:fillRef and a:effectRef element.\ntype aRef struct {\n\tIdx       int            `xml:\"idx,attr\"`\n\tScrgbClr  *aScrgbClr     `xml:\"a:scrgbClr\"`\n\tSchemeClr *attrValString `xml:\"a:schemeClr\"`\n\tSrgbClr   *attrValString `xml:\"a:srgbClr\"`\n}\n\n// aScrgbClr (RGB Color Model - Percentage Variant) directly maps the a:scrgbClr\n// element. This element specifies a color using the red, green, blue RGB color\n// model. Each component, red, green, and blue is expressed as a percentage from\n// 0% to 100%. A linear gamma of 1.0 is assumed.\ntype aScrgbClr struct {\n\tR float64 `xml:\"r,attr\"`\n\tG float64 `xml:\"g,attr\"`\n\tB float64 `xml:\"b,attr\"`\n}\n\n// aFontRef (Font Reference) directly maps the a:fontRef element. This element\n// represents a reference to a themed font. When used it specifies which themed\n// font to use along with a choice of color.\ntype aFontRef struct {\n\tIdx       string         `xml:\"idx,attr\"`\n\tSchemeClr *attrValString `xml:\"a:schemeClr\"`\n}\n\n// xdrTxBody (Shape Text Body) directly maps the xdr:txBody element. This\n// element specifies the existence of text to be contained within the\n// corresponding shape. All visible text and visible text related properties are\n// contained within this element. There can be multiple paragraphs and within\n// paragraphs multiple runs of text.\ntype xdrTxBody struct {\n\tBodyPr *aBodyPr `xml:\"a:bodyPr\"`\n\tP      []*aP    `xml:\"a:p\"`\n}\n\n// formatPicture directly maps the format settings of the picture.\ntype formatPicture struct {\n\tFPrintsWithSheet bool    `json:\"print_obj\"`\n\tFLocksWithSheet  bool    `json:\"locked\"`\n\tNoChangeAspect   bool    `json:\"lock_aspect_ratio\"`\n\tOffsetX          int     `json:\"x_offset\"`\n\tOffsetY          int     `json:\"y_offset\"`\n\tXScale           float64 `json:\"x_scale\"`\n\tYScale           float64 `json:\"y_scale\"`\n\tHyperlink        string  `json:\"hyperlink\"`\n\tHyperlinkType    string  `json:\"hyperlink_type\"`\n\tPositioning      string  `json:\"positioning\"`\n}\n\n// formatShape directly maps the format settings of the shape.\ntype formatShape struct {\n\tType      string                 `json:\"type\"`\n\tWidth     int                    `json:\"width\"`\n\tHeight    int                    `json:\"height\"`\n\tFormat    formatPicture          `json:\"format\"`\n\tColor     formatShapeColor       `json:\"color\"`\n\tParagraph []formatShapeParagraph `json:\"paragraph\"`\n}\n\n// formatShapeParagraph directly maps the format settings of the paragraph in\n// the shape.\ntype formatShapeParagraph struct {\n\tFont formatFont `json:\"font\"`\n\tText string     `json:\"text\"`\n}\n\n// formatShapeColor directly maps the color settings of the shape.\ntype formatShapeColor struct {\n\tLine   string `json:\"line\"`\n\tFill   string `json:\"fill\"`\n\tEffect string `json:\"effect\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlSharedStrings.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxSST directly maps the sst element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main. String values may\n// be stored directly inside spreadsheet cell elements; however, storing the\n// same value inside multiple cell elements can result in very large worksheet\n// Parts, possibly resulting in performance degradation. The Shared String Table\n// is an indexed list of string values, shared across the workbook, which allows\n// implementations to store values only once.\ntype xlsxSST struct {\n\tXMLName     xml.Name `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main sst\"`\n\tCount       int      `xml:\"count,attr\"`\n\tUniqueCount int      `xml:\"uniqueCount,attr\"`\n\tSI          []xlsxSI `xml:\"si\"`\n}\n\n// xlsxSI directly maps the si element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked this for completeness - it does as much as I need.\ntype xlsxSI struct {\n\tT string  `xml:\"t\"`\n\tR []xlsxR `xml:\"r\"`\n}\n\n// xlsxR directly maps the r element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked this for completeness - it does as much as I need.\ntype xlsxR struct {\n\tRPr *xlsxRPr `xml:\"rPr\"`\n\tT   string   `xml:\"t\"`\n}\n\n// xlsxRPr (Run Properties) specifies a set of run properties which shall be\n// applied to the contents of the parent run after all style formatting has been\n// applied to the text. These properties are defined as direct formatting, since\n// they are directly applied to the run and supersede any formatting from\n// styles.\ntype xlsxRPr struct {\n\tB      string         `xml:\"b,omitempty\"`\n\tSz     *attrValFloat  `xml:\"sz\"`\n\tColor  *xlsxColor     `xml:\"color\"`\n\tRFont  *attrValString `xml:\"rFont\"`\n\tFamily *attrValInt    `xml:\"family\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlStyles.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxStyleSheet directly maps the stylesheet element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxStyleSheet struct {\n\tXMLName      xml.Name          `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main styleSheet\"`\n\tNumFmts      *xlsxNumFmts      `xml:\"numFmts,omitempty\"`\n\tFonts        *xlsxFonts        `xml:\"fonts,omitempty\"`\n\tFills        *xlsxFills        `xml:\"fills,omitempty\"`\n\tBorders      *xlsxBorders      `xml:\"borders,omitempty\"`\n\tCellStyleXfs *xlsxCellStyleXfs `xml:\"cellStyleXfs,omitempty\"`\n\tCellXfs      *xlsxCellXfs      `xml:\"cellXfs,omitempty\"`\n\tCellStyles   *xlsxCellStyles   `xml:\"cellStyles,omitempty\"`\n\tDxfs         *xlsxDxfs         `xml:\"dxfs,omitempty\"`\n\tTableStyles  *xlsxTableStyles  `xml:\"tableStyles,omitempty\"`\n\tColors       *xlsxStyleColors  `xml:\"colors,omitempty\"`\n\tExtLst       *xlsxExtLst       `xml:\"extLst\"`\n}\n\n// xlsxAlignment formatting information pertaining to text alignment in cells.\n// There are a variety of choices for how text is aligned both horizontally and\n// vertically, as well as indentation settings, and so on.\ntype xlsxAlignment struct {\n\tHorizontal      string `xml:\"horizontal,attr,omitempty\"`\n\tIndent          int    `xml:\"indent,attr,omitempty\"`\n\tJustifyLastLine bool   `xml:\"justifyLastLine,attr,omitempty\"`\n\tReadingOrder    uint64 `xml:\"readingOrder,attr,omitempty\"`\n\tRelativeIndent  int    `xml:\"relativeIndent,attr,omitempty\"`\n\tShrinkToFit     bool   `xml:\"shrinkToFit,attr,omitempty\"`\n\tTextRotation    int    `xml:\"textRotation,attr,omitempty\"`\n\tVertical        string `xml:\"vertical,attr,omitempty\"`\n\tWrapText        bool   `xml:\"wrapText,attr,omitempty\"`\n}\n\n// xlsxProtection (Protection Properties) contains protection properties\n// associated with the cell. Each cell has protection properties that can be\n// set. The cell protection properties do not take effect unless the sheet has\n// been protected.\ntype xlsxProtection struct {\n\tHidden bool `xml:\"hidden,attr\"`\n\tLocked bool `xml:\"locked,attr\"`\n}\n\n// xlsxLine directly maps the line style element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxLine struct {\n\tStyle string     `xml:\"style,attr,omitempty\"`\n\tColor *xlsxColor `xml:\"color,omitempty\"`\n}\n\n// xlsxColor is a common mapping used for both the fgColor and bgColor elements.\n// Foreground color of the cell fill pattern. Cell fill patterns operate with\n// two colors: a background color and a foreground color. These combine together\n// to make a patterned cell fill. Background color of the cell fill pattern.\n// Cell fill patterns operate with two colors: a background color and a\n// foreground color. These combine together to make a patterned cell fill.\ntype xlsxColor struct {\n\tAuto    bool    `xml:\"auto,attr,omitempty\"`\n\tRGB     string  `xml:\"rgb,attr,omitempty\"`\n\tIndexed int     `xml:\"indexed,attr,omitempty\"`\n\tTheme   *int    `xml:\"theme,attr\"`\n\tTint    float64 `xml:\"tint,attr,omitempty\"`\n}\n\n// xlsxFonts directly maps the font element. This element contains all font\n// definitions for this workbook.\ntype xlsxFonts struct {\n\tCount int         `xml:\"count,attr\"`\n\tFont  []*xlsxFont `xml:\"font\"`\n}\n\n// font directly maps the font element.\ntype font struct {\n\tName     *attrValString `xml:\"name\"`\n\tCharset  *attrValInt    `xml:\"charset\"`\n\tFamily   *attrValInt    `xml:\"family\"`\n\tB        bool           `xml:\"b,omitempty\"`\n\tI        bool           `xml:\"i,omitempty\"`\n\tStrike   bool           `xml:\"strike,omitempty\"`\n\tOutline  bool           `xml:\"outline,omitempty\"`\n\tShadow   bool           `xml:\"shadow,omitempty\"`\n\tCondense bool           `xml:\"condense,omitempty\"`\n\tExtend   bool           `xml:\"extend,omitempty\"`\n\tColor    *xlsxColor     `xml:\"color\"`\n\tSz       *attrValInt    `xml:\"sz\"`\n\tU        *attrValString `xml:\"u\"`\n\tScheme   *attrValString `xml:\"scheme\"`\n}\n\n// xlsxFont directly maps the font element. This element defines the properties\n// for one of the fonts used in this workbook.\ntype xlsxFont struct {\n\tFont string `xml:\",innerxml\"`\n}\n\n// xlsxFills directly maps the fills element. This element defines the cell\n// fills portion of the Styles part, consisting of a sequence of fill records. A\n// cell fill consists of a background color, foreground color, and pattern to be\n// applied across the cell.\ntype xlsxFills struct {\n\tCount int         `xml:\"count,attr\"`\n\tFill  []*xlsxFill `xml:\"fill,omitempty\"`\n}\n\n// xlsxFill directly maps the fill element. This element specifies fill\n// formatting.\ntype xlsxFill struct {\n\tPatternFill  *xlsxPatternFill  `xml:\"patternFill,omitempty\"`\n\tGradientFill *xlsxGradientFill `xml:\"gradientFill,omitempty\"`\n}\n\n// xlsxPatternFill directly maps the patternFill element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need. This element is\n// used to specify cell fill information for pattern and solid color cell fills.\n// For solid cell fills (no pattern), fgColor is used. For cell fills with\n// patterns specified, then the cell fill color is specified by the bgColor\n// element.\ntype xlsxPatternFill struct {\n\tPatternType string    `xml:\"patternType,attr,omitempty\"`\n\tFgColor     xlsxColor `xml:\"fgColor,omitempty\"`\n\tBgColor     xlsxColor `xml:\"bgColor,omitempty\"`\n}\n\n// xlsxGradientFill defines a gradient-style cell fill. Gradient cell fills can\n// use one or two colors as the end points of color interpolation.\ntype xlsxGradientFill struct {\n\tBottom float64                 `xml:\"bottom,attr,omitempty\"`\n\tDegree float64                 `xml:\"degree,attr,omitempty\"`\n\tLeft   float64                 `xml:\"left,attr,omitempty\"`\n\tRight  float64                 `xml:\"right,attr,omitempty\"`\n\tTop    float64                 `xml:\"top,attr,omitempty\"`\n\tType   string                  `xml:\"type,attr,omitempty\"`\n\tStop   []*xlsxGradientFillStop `xml:\"stop,omitempty\"`\n}\n\n// xlsxGradientFillStop directly maps the stop element.\ntype xlsxGradientFillStop struct {\n\tPosition float64   `xml:\"position,attr\"`\n\tColor    xlsxColor `xml:\"color,omitempty\"`\n}\n\n// xlsxBorders directly maps the borders element. This element contains borders\n// formatting information, specifying all border definitions for all cells in\n// the workbook.\ntype xlsxBorders struct {\n\tCount  int           `xml:\"count,attr\"`\n\tBorder []*xlsxBorder `xml:\"border,omitempty\"`\n}\n\n// xlsxBorder directly maps the border element. Expresses a single set of cell\n// border formats (left, right, top, bottom, diagonal). Color is optional. When\n// missing, 'automatic' is implied.\ntype xlsxBorder struct {\n\tDiagonalDown bool     `xml:\"diagonalDown,attr,omitempty\"`\n\tDiagonalUp   bool     `xml:\"diagonalUp,attr,omitempty\"`\n\tOutline      bool     `xml:\"outline,attr,omitempty\"`\n\tLeft         xlsxLine `xml:\"left,omitempty\"`\n\tRight        xlsxLine `xml:\"right,omitempty\"`\n\tTop          xlsxLine `xml:\"top,omitempty\"`\n\tBottom       xlsxLine `xml:\"bottom,omitempty\"`\n\tDiagonal     xlsxLine `xml:\"diagonal,omitempty\"`\n}\n\n// xlsxCellStyles directly maps the cellStyles element. This element contains\n// the named cell styles, consisting of a sequence of named style records. A\n// named cell style is a collection of direct or themed formatting (e.g., cell\n// border, cell fill, and font type/size/style) grouped together into a single\n// named style, and can be applied to a cell.\ntype xlsxCellStyles struct {\n\tXMLName   xml.Name         `xml:\"cellStyles\"`\n\tCount     int              `xml:\"count,attr\"`\n\tCellStyle []*xlsxCellStyle `xml:\"cellStyle,omitempty\"`\n}\n\n// xlsxCellStyle directly maps the cellStyle element. This element represents\n// the name and related formatting records for a named cell style in this\n// workbook.\ntype xlsxCellStyle struct {\n\tXMLName       xml.Name `xml:\"cellStyle\"`\n\tBuiltInID     *int     `xml:\"builtinId,attr,omitempty\"`\n\tCustomBuiltIn *bool    `xml:\"customBuiltin,attr,omitempty\"`\n\tHidden        *bool    `xml:\"hidden,attr,omitempty\"`\n\tILevel        *bool    `xml:\"iLevel,attr,omitempty\"`\n\tName          string   `xml:\"name,attr\"`\n\tXfID          int      `xml:\"xfId,attr\"`\n}\n\n// xlsxCellStyleXfs directly maps the cellStyleXfs element. This element\n// contains the master formatting records (xf's) which define the formatting for\n// all named cell styles in this workbook. Master formatting records reference\n// individual elements of formatting (e.g., number format, font definitions,\n// cell fills, etc) by specifying a zero-based index into those collections.\n// Master formatting records also specify whether to apply or ignore particular\n// aspects of formatting.\ntype xlsxCellStyleXfs struct {\n\tCount int      `xml:\"count,attr\"`\n\tXf    []xlsxXf `xml:\"xf,omitempty\"`\n}\n\n// xlsxXf directly maps the xf element. A single xf element describes all of the\n// formatting for a cell.\ntype xlsxXf struct {\n\tApplyAlignment    bool            `xml:\"applyAlignment,attr\"`\n\tApplyBorder       bool            `xml:\"applyBorder,attr\"`\n\tApplyFill         bool            `xml:\"applyFill,attr\"`\n\tApplyFont         bool            `xml:\"applyFont,attr\"`\n\tApplyNumberFormat bool            `xml:\"applyNumberFormat,attr\"`\n\tApplyProtection   bool            `xml:\"applyProtection,attr\"`\n\tBorderID          int             `xml:\"borderId,attr\"`\n\tFillID            int             `xml:\"fillId,attr\"`\n\tFontID            int             `xml:\"fontId,attr\"`\n\tNumFmtID          int             `xml:\"numFmtId,attr\"`\n\tPivotButton       bool            `xml:\"pivotButton,attr,omitempty\"`\n\tQuotePrefix       bool            `xml:\"quotePrefix,attr,omitempty\"`\n\tXfID              *int            `xml:\"xfId,attr\"`\n\tAlignment         *xlsxAlignment  `xml:\"alignment\"`\n\tProtection        *xlsxProtection `xml:\"protection\"`\n}\n\n// xlsxCellXfs directly maps the cellXfs element. This element contains the\n// master formatting records (xf) which define the formatting applied to cells\n// in this workbook. These records are the starting point for determining the\n// formatting for a cell. Cells in the Sheet Part reference the xf records by\n// zero-based index.\ntype xlsxCellXfs struct {\n\tCount int      `xml:\"count,attr\"`\n\tXf    []xlsxXf `xml:\"xf,omitempty\"`\n}\n\n// xlsxDxfs directly maps the dxfs element. This element contains the master\n// differential formatting records (dxf's) which define formatting for all non-\n// cell formatting in this workbook. Whereas xf records fully specify a\n// particular aspect of formatting (e.g., cell borders) by referencing those\n// formatting definitions elsewhere in the Styles part, dxf records specify\n// incremental (or differential) aspects of formatting directly inline within\n// the dxf element. The dxf formatting is to be applied on top of or in addition\n// to any formatting already present on the object using the dxf record.\ntype xlsxDxfs struct {\n\tCount int        `xml:\"count,attr\"`\n\tDxfs  []*xlsxDxf `xml:\"dxf,omitempty\"`\n}\n\n// xlsxDxf directly maps the dxf element. A single dxf record, expressing\n// incremental formatting to be applied.\ntype xlsxDxf struct {\n\tDxf string `xml:\",innerxml\"`\n}\n\n// dxf directly maps the dxf element.\ntype dxf struct {\n\tFont       *font           `xml:\"font\"`\n\tNumFmt     *xlsxNumFmt     `xml:\"numFmt\"`\n\tFill       *xlsxFill       `xml:\"fill\"`\n\tAlignment  *xlsxAlignment  `xml:\"alignment\"`\n\tBorder     *xlsxBorder     `xml:\"border\"`\n\tProtection *xlsxProtection `xml:\"protection\"`\n\tExtLst     *xlsxExt        `xml:\"extLst\"`\n}\n\n// xlsxTableStyles directly maps the tableStyles element. This element\n// represents a collection of Table style definitions for Table styles and\n// PivotTable styles used in this workbook. It consists of a sequence of\n// tableStyle records, each defining a single Table style.\ntype xlsxTableStyles struct {\n\tCount             int               `xml:\"count,attr\"`\n\tDefaultPivotStyle string            `xml:\"defaultPivotStyle,attr\"`\n\tDefaultTableStyle string            `xml:\"defaultTableStyle,attr\"`\n\tTableStyles       []*xlsxTableStyle `xml:\"tableStyle,omitempty\"`\n}\n\n// xlsxTableStyle directly maps the tableStyle element. This element represents\n// a single table style definition that indicates how a spreadsheet application\n// should format and display a table.\ntype xlsxTableStyle struct {\n\tName              string `xml:\"name,attr,omitempty\"`\n\tPivot             int    `xml:\"pivot,attr\"`\n\tCount             int    `xml:\"count,attr,omitempty\"`\n\tTable             bool   `xml:\"table,attr,omitempty\"`\n\tTableStyleElement string `xml:\",innerxml\"`\n}\n\n// xlsxNumFmts directly maps the numFmts element. This element defines the\n// number formats in this workbook, consisting of a sequence of numFmt records,\n// where each numFmt record defines a particular number format, indicating how\n// to format and render the numeric value of a cell.\ntype xlsxNumFmts struct {\n\tCount  int           `xml:\"count,attr\"`\n\tNumFmt []*xlsxNumFmt `xml:\"numFmt,omitempty\"`\n}\n\n// xlsxNumFmt directly maps the numFmt element. This element specifies number\n// format properties which indicate how to format and render the numeric value\n// of a cell.\ntype xlsxNumFmt struct {\n\tNumFmtID   int    `xml:\"numFmtId,attr,omitempty\"`\n\tFormatCode string `xml:\"formatCode,attr,omitempty\"`\n}\n\n// xlsxStyleColors directly maps the colors element. Color information\n// associated with this stylesheet. This collection is written whenever the\n// legacy color palette has been modified (backwards compatibility settings) or\n// a custom color has been selected while using this workbook.\ntype xlsxStyleColors struct {\n\tColor string `xml:\",innerxml\"`\n}\n\n// formatFont directly maps the styles settings of the fonts.\ntype formatFont struct {\n\tBold      bool   `json:\"bold\"`\n\tItalic    bool   `json:\"italic\"`\n\tUnderline string `json:\"underline\"`\n\tFamily    string `json:\"family\"`\n\tSize      int    `json:\"size\"`\n\tColor     string `json:\"color\"`\n}\n\n// formatStyle directly maps the styles settings of the cells.\ntype formatStyle struct {\n\tBorder []struct {\n\t\tType  string `json:\"type\"`\n\t\tColor string `json:\"color\"`\n\t\tStyle int    `json:\"style\"`\n\t} `json:\"border\"`\n\tFill struct {\n\t\tType    string   `json:\"type\"`\n\t\tPattern int      `json:\"pattern\"`\n\t\tColor   []string `json:\"color\"`\n\t\tShading int      `json:\"shading\"`\n\t} `json:\"fill\"`\n\tFont      *formatFont `json:\"font\"`\n\tAlignment *struct {\n\t\tHorizontal      string `json:\"horizontal\"`\n\t\tIndent          int    `json:\"indent\"`\n\t\tJustifyLastLine bool   `json:\"justify_last_line\"`\n\t\tReadingOrder    uint64 `json:\"reading_order\"`\n\t\tRelativeIndent  int    `json:\"relative_indent\"`\n\t\tShrinkToFit     bool   `json:\"shrink_to_fit\"`\n\t\tTextRotation    int    `json:\"text_rotation\"`\n\t\tVertical        string `json:\"vertical\"`\n\t\tWrapText        bool   `json:\"wrap_text\"`\n\t} `json:\"alignment\"`\n\tProtection *struct {\n\t\tHidden bool `json:\"hidden\"`\n\t\tLocked bool `json:\"locked\"`\n\t} `json:\"protection\"`\n\tNumFmt        int     `json:\"number_format\"`\n\tDecimalPlaces int     `json:\"decimal_places\"`\n\tCustomNumFmt  *string `json:\"custom_number_format\"`\n\tLang          string  `json:\"lang\"`\n\tNegRed        bool    `json:\"negred\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlTable.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxTable directly maps the table element. A table helps organize and provide\n// structure to lists of information in a worksheet. Tables have clearly labeled\n// columns, rows, and data regions. Tables make it easier for users to sort,\n// analyze, format, manage, add, and delete information. This element is the\n// root element for a table that is not a single cell XML table.\ntype xlsxTable struct {\n\tXMLName              xml.Name            `xml:\"table\"`\n\tXMLNS                string              `xml:\"xmlns,attr\"`\n\tDataCellStyle        string              `xml:\"dataCellStyle,attr,omitempty\"`\n\tDataDxfID            int                 `xml:\"dataDxfId,attr,omitempty\"`\n\tDisplayName          string              `xml:\"displayName,attr,omitempty\"`\n\tHeaderRowBorderDxfID int                 `xml:\"headerRowBorderDxfId,attr,omitempty\"`\n\tHeaderRowCellStyle   string              `xml:\"headerRowCellStyle,attr,omitempty\"`\n\tHeaderRowCount       int                 `xml:\"headerRowCount,attr,omitempty\"`\n\tHeaderRowDxfID       int                 `xml:\"headerRowDxfId,attr,omitempty\"`\n\tID                   int                 `xml:\"id,attr\"`\n\tInsertRow            bool                `xml:\"insertRow,attr,omitempty\"`\n\tInsertRowShift       bool                `xml:\"insertRowShift,attr,omitempty\"`\n\tName                 string              `xml:\"name,attr\"`\n\tPublished            bool                `xml:\"published,attr,omitempty\"`\n\tRef                  string              `xml:\"ref,attr\"`\n\tTotalsRowCount       int                 `xml:\"totalsRowCount,attr,omitempty\"`\n\tTotalsRowDxfID       int                 `xml:\"totalsRowDxfId,attr,omitempty\"`\n\tTotalsRowShown       bool                `xml:\"totalsRowShown,attr\"`\n\tAutoFilter           *xlsxAutoFilter     `xml:\"autoFilter\"`\n\tTableColumns         *xlsxTableColumns   `xml:\"tableColumns\"`\n\tTableStyleInfo       *xlsxTableStyleInfo `xml:\"tableStyleInfo\"`\n}\n\n// xlsxAutoFilter temporarily hides rows based on a filter criteria, which is\n// applied column by column to a table of data in the worksheet. This collection\n// expresses AutoFilter settings.\ntype xlsxAutoFilter struct {\n\tRef          string            `xml:\"ref,attr\"`\n\tFilterColumn *xlsxFilterColumn `xml:\"filterColumn\"`\n}\n\n// xlsxFilterColumn directly maps the filterColumn element. The filterColumn\n// collection identifies a particular column in the AutoFilter range and\n// specifies filter information that has been applied to this column. If a\n// column in the AutoFilter range has no criteria specified, then there is no\n// corresponding filterColumn collection expressed for that column.\ntype xlsxFilterColumn struct {\n\tColID         int                `xml:\"colId,attr\"`\n\tHiddenButton  bool               `xml:\"hiddenButton,attr,omitempty\"`\n\tShowButton    bool               `xml:\"showButton,attr,omitempty\"`\n\tCustomFilters *xlsxCustomFilters `xml:\"customFilters\"`\n\tFilters       *xlsxFilters       `xml:\"filters\"`\n\tColorFilter   *xlsxColorFilter   `xml:\"colorFilter\"`\n\tDynamicFilter *xlsxDynamicFilter `xml:\"dynamicFilter\"`\n\tIconFilter    *xlsxIconFilter    `xml:\"iconFilter\"`\n\tTop10         *xlsxTop10         `xml:\"top10\"`\n}\n\n// xlsxCustomFilters directly maps the customFilters element. When there is more\n// than one custom filter criteria to apply (an 'and' or 'or' joining two\n// criteria), then this element groups the customFilter elements together.\ntype xlsxCustomFilters struct {\n\tAnd          bool                `xml:\"and,attr,omitempty\"`\n\tCustomFilter []*xlsxCustomFilter `xml:\"customFilter\"`\n}\n\n// xlsxCustomFilter directly maps the customFilter element. A custom AutoFilter\n// specifies an operator and a value. There can be at most two customFilters\n// specified, and in that case the parent element specifies whether the two\n// conditions are joined by 'and' or 'or'. For any cells whose values do not\n// meet the specified criteria, the corresponding rows shall be hidden from view\n// when the filter is applied.\ntype xlsxCustomFilter struct {\n\tOperator string `xml:\"operator,attr,omitempty\"`\n\tVal      string `xml:\"val,attr,omitempty\"`\n}\n\n// xlsxFilters directly maps the filters (Filter Criteria) element. When\n// multiple values are chosen to filter by, or when a group of date values are\n// chosen to filter by, this element groups those criteria together.\ntype xlsxFilters struct {\n\tBlank         bool                 `xml:\"blank,attr,omitempty\"`\n\tCalendarType  string               `xml:\"calendarType,attr,omitempty\"`\n\tFilter        []*xlsxFilter        `xml:\"filter\"`\n\tDateGroupItem []*xlsxDateGroupItem `xml:\"dateGroupItem\"`\n}\n\n// xlsxFilter directly maps the filter element. This element expresses a filter\n// criteria value.\ntype xlsxFilter struct {\n\tVal string `xml:\"val,attr,omitempty\"`\n}\n\n// xlsxColorFilter directly maps the colorFilter element. This element specifies\n// the color to filter by and whether to use the cell's fill or font color in\n// the filter criteria. If the cell's font or fill color does not match the\n// color specified in the criteria, the rows corresponding to those cells are\n// hidden from view.\ntype xlsxColorFilter struct {\n\tCellColor bool `xml:\"cellColor,attr\"`\n\tDxfID     int  `xml:\"dxfId,attr\"`\n}\n\n// xlsxDynamicFilter directly maps the dynamicFilter element. This collection\n// specifies dynamic filter criteria. These criteria are considered dynamic\n// because they can change, either with the data itself (e.g., \"above average\")\n// or with the current system date (e.g., show values for \"today\"). For any\n// cells whose values do not meet the specified criteria, the corresponding rows\n// shall be hidden from view when the filter is applied.\ntype xlsxDynamicFilter struct {\n\tMaxValISO string  `xml:\"maxValIso,attr,omitempty\"`\n\tType      string  `xml:\"type,attr,omitempty\"`\n\tVal       float64 `xml:\"val,attr,omitempty\"`\n\tValISO    string  `xml:\"valIso,attr,omitempty\"`\n}\n\n// xlsxIconFilter directly maps the iconFilter element. This element specifies\n// the icon set and particular icon within that set to filter by. For any cells\n// whose icon does not match the specified criteria, the corresponding rows\n// shall be hidden from view when the filter is applied.\ntype xlsxIconFilter struct {\n\tIconID  int    `xml:\"iconId,attr\"`\n\tIconSet string `xml:\"iconSet,attr,omitempty\"`\n}\n\n// xlsxTop10 directly maps the top10 element. This element specifies the top N\n// (percent or number of items) to filter by.\ntype xlsxTop10 struct {\n\tFilterVal float64 `xml:\"filterVal,attr,omitempty\"`\n\tPercent   bool    `xml:\"percent,attr,omitempty\"`\n\tTop       bool    `xml:\"top,attr\"`\n\tVal       float64 `xml:\"val,attr,omitempty\"`\n}\n\n// xlsxDateGroupItem directly maps the dateGroupItem element. This collection is\n// used to express a group of dates or times which are used in an AutoFilter\n// criteria. [Note: See parent element for an example. end note] Values are\n// always written in the calendar type of the first date encountered in the\n// filter range, so that all subsequent dates, even when formatted or\n// represented by other calendar types, can be correctly compared for the\n// purposes of filtering.\ntype xlsxDateGroupItem struct {\n\tDateTimeGrouping string `xml:\"dateTimeGrouping,attr,omitempty\"`\n\tDay              int    `xml:\"day,attr,omitempty\"`\n\tHour             int    `xml:\"hour,attr,omitempty\"`\n\tMinute           int    `xml:\"minute,attr,omitempty\"`\n\tMonth            int    `xml:\"month,attr,omitempty\"`\n\tSecond           int    `xml:\"second,attr,omitempty\"`\n\tYear             int    `xml:\"year,attr,omitempty\"`\n}\n\n// xlsxTableColumns directly maps the element representing the collection of all\n// table columns for this table.\ntype xlsxTableColumns struct {\n\tCount       int                `xml:\"count,attr\"`\n\tTableColumn []*xlsxTableColumn `xml:\"tableColumn\"`\n}\n\n// xlsxTableColumn directly maps the element representing a single column for\n// this table.\ntype xlsxTableColumn struct {\n\tDataCellStyle      string `xml:\"dataCellStyle,attr,omitempty\"`\n\tDataDxfID          int    `xml:\"dataDxfId,attr,omitempty\"`\n\tHeaderRowCellStyle string `xml:\"headerRowCellStyle,attr,omitempty\"`\n\tHeaderRowDxfID     int    `xml:\"headerRowDxfId,attr,omitempty\"`\n\tID                 int    `xml:\"id,attr\"`\n\tName               string `xml:\"name,attr\"`\n\tQueryTableFieldID  int    `xml:\"queryTableFieldId,attr,omitempty\"`\n\tTotalsRowCellStyle string `xml:\"totalsRowCellStyle,attr,omitempty\"`\n\tTotalsRowDxfID     int    `xml:\"totalsRowDxfId,attr,omitempty\"`\n\tTotalsRowFunction  string `xml:\"totalsRowFunction,attr,omitempty\"`\n\tTotalsRowLabel     string `xml:\"totalsRowLabel,attr,omitempty\"`\n\tUniqueName         string `xml:\"uniqueName,attr,omitempty\"`\n}\n\n// xlsxTableStyleInfo directly maps the tableStyleInfo element. This element\n// describes which style is used to display this table, and specifies which\n// portions of the table have the style applied.\ntype xlsxTableStyleInfo struct {\n\tName              string `xml:\"name,attr,omitempty\"`\n\tShowFirstColumn   bool   `xml:\"showFirstColumn,attr\"`\n\tShowLastColumn    bool   `xml:\"showLastColumn,attr\"`\n\tShowRowStripes    bool   `xml:\"showRowStripes,attr\"`\n\tShowColumnStripes bool   `xml:\"showColumnStripes,attr\"`\n}\n\n// formatTable directly maps the format settings of the table.\ntype formatTable struct {\n\tTableName         string `json:\"table_name\"`\n\tTableStyle        string `json:\"table_style\"`\n\tShowFirstColumn   bool   `json:\"show_first_column\"`\n\tShowLastColumn    bool   `json:\"show_last_column\"`\n\tShowRowStripes    bool   `json:\"show_row_stripes\"`\n\tShowColumnStripes bool   `json:\"show_column_stripes\"`\n}\n\n// formatAutoFilter directly maps the auto filter settings.\ntype formatAutoFilter struct {\n\tColumn     string `json:\"column\"`\n\tExpression string `json:\"expression\"`\n\tFilterList []struct {\n\t\tColumn string `json:\"column\"`\n\t\tValue  []int  `json:\"value\"`\n\t} `json:\"filter_list\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlWorkbook.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xmlxWorkbookRels contains xmlxWorkbookRelations which maps sheet id and sheet XML.\ntype xlsxWorkbookRels struct {\n\tXMLName       xml.Name               `xml:\"http://schemas.openxmlformats.org/package/2006/relationships Relationships\"`\n\tRelationships []xlsxWorkbookRelation `xml:\"Relationship\"`\n}\n\n// xmlxWorkbookRelation maps sheet id and xl/worksheets/_rels/sheet%d.xml.rels\ntype xlsxWorkbookRelation struct {\n\tID         string `xml:\"Id,attr\"`\n\tTarget     string `xml:\",attr\"`\n\tType       string `xml:\",attr\"`\n\tTargetMode string `xml:\",attr,omitempty\"`\n}\n\n// xlsxWorkbook directly maps the workbook element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxWorkbook struct {\n\tXMLName             xml.Name                 `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main workbook\"`\n\tFileVersion         *xlsxFileVersion         `xml:\"fileVersion\"`\n\tWorkbookPr          *xlsxWorkbookPr          `xml:\"workbookPr\"`\n\tWorkbookProtection  *xlsxWorkbookProtection  `xml:\"workbookProtection\"`\n\tBookViews           xlsxBookViews            `xml:\"bookViews\"`\n\tSheets              xlsxSheets               `xml:\"sheets\"`\n\tExternalReferences  *xlsxExternalReferences  `xml:\"externalReferences\"`\n\tDefinedNames        *xlsxDefinedNames        `xml:\"definedNames\"`\n\tCalcPr              *xlsxCalcPr              `xml:\"calcPr\"`\n\tCustomWorkbookViews *xlsxCustomWorkbookViews `xml:\"customWorkbookViews\"`\n\tPivotCaches         *xlsxPivotCaches         `xml:\"pivotCaches\"`\n\tExtLst              *xlsxExtLst              `xml:\"extLst\"`\n\tFileRecoveryPr      *xlsxFileRecoveryPr      `xml:\"fileRecoveryPr\"`\n}\n\n// xlsxFileRecoveryPr maps sheet recovery information. This element defines\n// properties that track the state of the workbook file, such as whether the\n// file was saved during a crash, or whether it should be opened in auto-recover\n// mode.\ntype xlsxFileRecoveryPr struct {\n\tAutoRecover     bool `xml:\"autoRecover,attr,omitempty\"`\n\tCrashSave       bool `xml:\"crashSave,attr,omitempty\"`\n\tDataExtractLoad bool `xml:\"dataExtractLoad,attr,omitempty\"`\n\tRepairLoad      bool `xml:\"repairLoad,attr,omitempty\"`\n}\n\n// xlsxWorkbookProtection directly maps the workbookProtection element. This\n// element specifies options for protecting data in the workbook. Applications\n// might use workbook protection to prevent anyone from accidentally changing,\n// moving, or deleting important data. This protection can be ignored by\n// applications which choose not to support this optional protection mechanism.\n// When a password is to be hashed and stored in this element, it shall be\n// hashed as defined below, starting from a UTF-16LE encoded string value. If\n// there is a leading BOM character (U+FEFF) in the encoded password it is\n// removed before hash calculation.\ntype xlsxWorkbookProtection struct {\n\tLockRevision           bool   `xml:\"lockRevision,attr,omitempty\"`\n\tLockStructure          bool   `xml:\"lockStructure,attr,omitempty\"`\n\tLockWindows            bool   `xml:\"lockWindows,attr,omitempty\"`\n\tRevisionsAlgorithmName string `xml:\"revisionsAlgorithmName,attr,omitempty\"`\n\tRevisionsHashValue     string `xml:\"revisionsHashValue,attr,omitempty\"`\n\tRevisionsSaltValue     string `xml:\"revisionsSaltValue,attr,omitempty\"`\n\tRevisionsSpinCount     int    `xml:\"revisionsSpinCount,attr,omitempty\"`\n\tWorkbookAlgorithmName  string `xml:\"workbookAlgorithmName,attr,omitempty\"`\n\tWorkbookHashValue      string `xml:\"workbookHashValue,attr,omitempty\"`\n\tWorkbookSaltValue      string `xml:\"workbookSaltValue,attr,omitempty\"`\n\tWorkbookSpinCount      int    `xml:\"workbookSpinCount,attr,omitempty\"`\n}\n\n// xlsxFileVersion directly maps the fileVersion element. This element defines\n// properties that track which version of the application accessed the data and\n// source code contained in the file.\ntype xlsxFileVersion struct {\n\tAppName      string `xml:\"appName,attr,omitempty\"`\n\tCodeName     string `xml:\"codeName,attr,omitempty\"`\n\tLastEdited   string `xml:\"lastEdited,attr,omitempty\"`\n\tLowestEdited string `xml:\"lowestEdited,attr,omitempty\"`\n\tRupBuild     string `xml:\"rupBuild,attr,omitempty\"`\n}\n\n// xlsxWorkbookPr directly maps the workbookPr element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main This element\n// defines a collection of workbook properties.\ntype xlsxWorkbookPr struct {\n\tAllowRefreshQuery          bool   `xml:\"allowRefreshQuery,attr,omitempty\"`\n\tAutoCompressPictures       bool   `xml:\"autoCompressPictures,attr,omitempty\"`\n\tBackupFile                 bool   `xml:\"backupFile,attr,omitempty\"`\n\tCheckCompatibility         bool   `xml:\"checkCompatibility,attr,omitempty\"`\n\tCodeName                   string `xml:\"codeName,attr,omitempty\"`\n\tDate1904                   bool   `xml:\"date1904,attr,omitempty\"`\n\tDefaultThemeVersion        string `xml:\"defaultThemeVersion,attr,omitempty\"`\n\tFilterPrivacy              bool   `xml:\"filterPrivacy,attr,omitempty\"`\n\tHidePivotFieldList         bool   `xml:\"hidePivotFieldList,attr,omitempty\"`\n\tPromptedSolutions          bool   `xml:\"promptedSolutions,attr,omitempty\"`\n\tPublishItems               bool   `xml:\"publishItems,attr,omitempty\"`\n\tRefreshAllConnections      bool   `xml:\"refreshAllConnections,attr,omitempty\"`\n\tSaveExternalLinkValues     bool   `xml:\"saveExternalLinkValues,attr,omitempty\"`\n\tShowBorderUnselectedTables bool   `xml:\"showBorderUnselectedTables,attr,omitempty\"`\n\tShowInkAnnotation          bool   `xml:\"showInkAnnotation,attr,omitempty\"`\n\tShowObjects                string `xml:\"showObjects,attr,omitempty\"`\n\tShowPivotChartFilter       bool   `xml:\"showPivotChartFilter,attr,omitempty\"`\n\tUpdateLinks                string `xml:\"updateLinks,attr,omitempty\"`\n}\n\n// xlsxBookViews directly maps the bookViews element. This element specifies the\n// collection of workbook views of the enclosing workbook. Each view can specify\n// a window position, filter options, and other configurations. There is no\n// limit on the number of workbook views that can be defined for a workbook.\ntype xlsxBookViews struct {\n\tWorkBookView []xlsxWorkBookView `xml:\"workbookView\"`\n}\n\n// xlsxWorkBookView directly maps the workbookView element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main This element\n// specifies a single Workbook view.\ntype xlsxWorkBookView struct {\n\tActiveTab              int    `xml:\"activeTab,attr,omitempty\"`\n\tAutoFilterDateGrouping bool   `xml:\"autoFilterDateGrouping,attr,omitempty\"`\n\tFirstSheet             int    `xml:\"firstSheet,attr,omitempty\"`\n\tMinimized              bool   `xml:\"minimized,attr,omitempty\"`\n\tShowHorizontalScroll   bool   `xml:\"showHorizontalScroll,attr,omitempty\"`\n\tShowSheetTabs          bool   `xml:\"showSheetTabs,attr,omitempty\"`\n\tShowVerticalScroll     bool   `xml:\"showVerticalScroll,attr,omitempty\"`\n\tTabRatio               int    `xml:\"tabRatio,attr,omitempty\"`\n\tVisibility             string `xml:\"visibility,attr,omitempty\"`\n\tWindowHeight           int    `xml:\"windowHeight,attr,omitempty\"`\n\tWindowWidth            int    `xml:\"windowWidth,attr,omitempty\"`\n\tXWindow                string `xml:\"xWindow,attr,omitempty\"`\n\tYWindow                string `xml:\"yWindow,attr,omitempty\"`\n}\n\n// xlsxSheets directly maps the sheets element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main.\ntype xlsxSheets struct {\n\tSheet []xlsxSheet `xml:\"sheet\"`\n}\n\n// xlsxSheet directly maps the sheet element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxSheet struct {\n\tName    string `xml:\"name,attr,omitempty\"`\n\tSheetID string `xml:\"sheetId,attr,omitempty\"`\n\tID      string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n\tState   string `xml:\"state,attr,omitempty\"`\n}\n\n// xlsxExternalReferences directly maps the externalReferences element of the\n// external workbook references part.\ntype xlsxExternalReferences struct {\n\tExternalReference []xlsxExternalReference `xml:\"externalReference\"`\n}\n\n// xlsxExternalReference directly maps the externalReference element of the\n// external workbook references part.\ntype xlsxExternalReference struct {\n\tRID string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// xlsxPivotCaches element enumerates pivot cache definition parts used by pivot\n// tables and formulas in this workbook.\ntype xlsxPivotCaches struct {\n\tPivotCache []xlsxPivotCache `xml:\"pivotCache\"`\n}\n\n// xlsxPivotCache directly maps the pivotCache element.\ntype xlsxPivotCache struct {\n\tCacheID int    `xml:\"cacheId,attr,omitempty\"`\n\tRID     string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// extLst element provides a convention for extending spreadsheetML in\n// predefined locations. The locations shall be denoted with the extLst element,\n// and are called extension lists. Extension list locations within the markup\n// document are specified in the markup specification and can be used to store\n// extensions to the markup specification, whether those are future version\n// extensions of the markup specification or are private extensions implemented\n// independently from the markup specification. Markup within an extension might\n// not be understood by a consumer.\ntype xlsxExtLst struct {\n\tExt string `xml:\",innerxml\"`\n}\n\n// xlsxDefinedNames directly maps the definedNames element. This element defines\n// the collection of defined names for this workbook. Defined names are\n// descriptive names to represent cells, ranges of cells, formulas, or constant\n// values. Defined names can be used to represent a range on any worksheet.\ntype xlsxDefinedNames struct {\n\tDefinedName []xlsxDefinedName `xml:\"definedName\"`\n}\n\n// xlsxDefinedName directly maps the definedName element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main This element\n// defines a defined name within this workbook. A defined name is descriptive\n// text that is used to represents a cell, range of cells, formula, or constant\n// value. For a descriptions of the attributes see https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.definedname.aspx\ntype xlsxDefinedName struct {\n\tComment           string `xml:\"comment,attr,omitempty\"`\n\tCustomMenu        string `xml:\"customMenu,attr,omitempty\"`\n\tDescription       string `xml:\"description,attr,omitempty\"`\n\tFunction          bool   `xml:\"function,attr,omitempty\"`\n\tFunctionGroupID   int    `xml:\"functionGroupId,attr,omitempty\"`\n\tHelp              string `xml:\"help,attr,omitempty\"`\n\tHidden            bool   `xml:\"hidden,attr,omitempty\"`\n\tLocalSheetID      *int   `xml:\"localSheetId,attr\"`\n\tName              string `xml:\"name,attr,omitempty\"`\n\tPublishToServer   bool   `xml:\"publishToServer,attr,omitempty\"`\n\tShortcutKey       string `xml:\"shortcutKey,attr,omitempty\"`\n\tStatusBar         string `xml:\"statusBar,attr,omitempty\"`\n\tVbProcedure       bool   `xml:\"vbProcedure,attr,omitempty\"`\n\tWorkbookParameter bool   `xml:\"workbookParameter,attr,omitempty\"`\n\tXlm               bool   `xml:\"xml,attr,omitempty\"`\n\tData              string `xml:\",chardata\"`\n}\n\n// xlsxCalcPr directly maps the calcPr element. This element defines the\n// collection of properties the application uses to record calculation status\n// and details. Calculation is the process of computing formulas and then\n// displaying the results as values in the cells that contain the formulas.\ntype xlsxCalcPr struct {\n\tCalcCompleted         bool    `xml:\"calcCompleted,attr,omitempty\"`\n\tCalcID                string  `xml:\"calcId,attr,omitempty\"`\n\tCalcMode              string  `xml:\"calcMode,attr,omitempty\"`\n\tCalcOnSave            bool    `xml:\"calcOnSave,attr,omitempty\"`\n\tConcurrentCalc        *bool   `xml:\"concurrentCalc,attr\"`\n\tConcurrentManualCount int     `xml:\"concurrentManualCount,attr,omitempty\"`\n\tForceFullCalc         bool    `xml:\"forceFullCalc,attr,omitempty\"`\n\tFullCalcOnLoad        bool    `xml:\"fullCalcOnLoad,attr,omitempty\"`\n\tFullPrecision         bool    `xml:\"fullPrecision,attr,omitempty\"`\n\tIterate               bool    `xml:\"iterate,attr,omitempty\"`\n\tIterateCount          int     `xml:\"iterateCount,attr,omitempty\"`\n\tIterateDelta          float64 `xml:\"iterateDelta,attr,omitempty\"`\n\tRefMode               string  `xml:\"refMode,attr,omitempty\"`\n}\n\n// xlsxCustomWorkbookViews defines the collection of custom workbook views that\n// are defined for this workbook. A customWorkbookView is similar in concept to\n// a workbookView in that its attributes contain settings related to the way\n// that the workbook should be displayed on a screen by a spreadsheet\n// application.\ntype xlsxCustomWorkbookViews struct {\n\tCustomWorkbookView []xlsxCustomWorkbookView `xml:\"customWorkbookView\"`\n}\n\n// xlsxCustomWorkbookView directly maps the customWorkbookView element. This\n// element specifies a single custom workbook view. A custom workbook view\n// consists of a set of display and print settings that you can name and apply\n// to a workbook. You can create more than one custom workbook view of the same\n// workbook. Custom Workbook Views are not required in order to construct a\n// valid SpreadsheetML document, and are not necessary if the document is never\n// displayed by a spreadsheet application, or if the spreadsheet application has\n// a fixed display for workbooks. However, if a spreadsheet application chooses\n// to implement configurable display modes, the customWorkbookView element\n// should be used to persist the settings for those display modes.\ntype xlsxCustomWorkbookView struct {\n\tActiveSheetID        *int    `xml:\"activeSheetId,attr\"`\n\tAutoUpdate           *bool   `xml:\"autoUpdate,attr\"`\n\tChangesSavedWin      *bool   `xml:\"changesSavedWin,attr\"`\n\tGUID                 *string `xml:\"guid,attr\"`\n\tIncludeHiddenRowCol  *bool   `xml:\"includeHiddenRowCol,attr\"`\n\tIncludePrintSettings *bool   `xml:\"includePrintSettings,attr\"`\n\tMaximized            *bool   `xml:\"maximized,attr\"`\n\tMergeInterval        int     `xml:\"mergeInterval,attr\"`\n\tMinimized            *bool   `xml:\"minimized,attr\"`\n\tName                 *string `xml:\"name,attr\"`\n\tOnlySync             *bool   `xml:\"onlySync,attr\"`\n\tPersonalView         *bool   `xml:\"personalView,attr\"`\n\tShowComments         *string `xml:\"showComments,attr\"`\n\tShowFormulaBar       *bool   `xml:\"showFormulaBar,attr\"`\n\tShowHorizontalScroll *bool   `xml:\"showHorizontalScroll,attr\"`\n\tShowObjects          *string `xml:\"showObjects,attr\"`\n\tShowSheetTabs        *bool   `xml:\"showSheetTabs,attr\"`\n\tShowStatusbar        *bool   `xml:\"showStatusbar,attr\"`\n\tShowVerticalScroll   *bool   `xml:\"showVerticalScroll,attr\"`\n\tTabRatio             *int    `xml:\"tabRatio,attr\"`\n\tWindowHeight         *int    `xml:\"windowHeight,attr\"`\n\tWindowWidth          *int    `xml:\"windowWidth,attr\"`\n\tXWindow              *int    `xml:\"xWindow,attr\"`\n\tYWindow              *int    `xml:\"yWindow,attr\"`\n}\n"
  },
  {
    "path": "vendor/github.com/360EntSecGroup-Skylar/excelize/xmlWorksheet.go",
    "content": "package excelize\n\nimport \"encoding/xml\"\n\n// xlsxWorksheet directly maps the worksheet element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxWorksheet struct {\n\tXMLName               xml.Name                     `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main worksheet\"`\n\tSheetPr               *xlsxSheetPr                 `xml:\"sheetPr\"`\n\tDimension             xlsxDimension                `xml:\"dimension\"`\n\tSheetViews            xlsxSheetViews               `xml:\"sheetViews,omitempty\"`\n\tSheetFormatPr         *xlsxSheetFormatPr           `xml:\"sheetFormatPr\"`\n\tCols                  *xlsxCols                    `xml:\"cols,omitempty\"`\n\tSheetData             xlsxSheetData                `xml:\"sheetData\"`\n\tSheetProtection       *xlsxSheetProtection         `xml:\"sheetProtection\"`\n\tAutoFilter            *xlsxAutoFilter              `xml:\"autoFilter\"`\n\tMergeCells            *xlsxMergeCells              `xml:\"mergeCells\"`\n\tPhoneticPr            *xlsxPhoneticPr              `xml:\"phoneticPr\"`\n\tConditionalFormatting []*xlsxConditionalFormatting `xml:\"conditionalFormatting\"`\n\tDataValidations       *xlsxDataValidations         `xml:\"dataValidations\"`\n\tHyperlinks            *xlsxHyperlinks              `xml:\"hyperlinks\"`\n\tPrintOptions          *xlsxPrintOptions            `xml:\"printOptions\"`\n\tPageMargins           *xlsxPageMargins             `xml:\"pageMargins\"`\n\tPageSetUp             *xlsxPageSetUp               `xml:\"pageSetup\"`\n\tHeaderFooter          *xlsxHeaderFooter            `xml:\"headerFooter\"`\n\tDrawing               *xlsxDrawing                 `xml:\"drawing\"`\n\tLegacyDrawing         *xlsxLegacyDrawing           `xml:\"legacyDrawing\"`\n\tPicture               *xlsxPicture                 `xml:\"picture\"`\n\tTableParts            *xlsxTableParts              `xml:\"tableParts\"`\n\tExtLst                *xlsxExtLst                  `xml:\"extLst\"`\n}\n\n// xlsxDrawing change r:id to rid in the namespace.\ntype xlsxDrawing struct {\n\tRID string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// xlsxHeaderFooter directly maps the headerFooter element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - When printed or\n// viewed in page layout view (§18.18.69), each page of a worksheet can have a\n// page header, a page footer, or both. The headers and footers on odd-numbered\n// pages can differ from those on even-numbered pages, and the headers and\n// footers on the first page can differ from those on odd- and even-numbered\n// pages. In the latter case, the first page is not considered an odd page.\ntype xlsxHeaderFooter struct {\n\tDifferentFirst   bool             `xml:\"differentFirst,attr,omitempty\"`\n\tDifferentOddEven bool             `xml:\"differentOddEven,attr,omitempty\"`\n\tOddHeader        []*xlsxOddHeader `xml:\"oddHeader\"`\n\tOddFooter        []*xlsxOddFooter `xml:\"oddFooter\"`\n}\n\n// xlsxOddHeader directly maps the oddHeader element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxOddHeader struct {\n\tContent string `xml:\",chardata\"`\n}\n\n// xlsxOddFooter directly maps the oddFooter element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxOddFooter struct {\n\tContent string `xml:\",chardata\"`\n}\n\n// xlsxPageSetUp directly maps the pageSetup element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Page setup\n// settings for the worksheet.\ntype xlsxPageSetUp struct {\n\tBlackAndWhite      bool    `xml:\"blackAndWhite,attr,omitempty\"`\n\tCellComments       string  `xml:\"cellComments,attr,omitempty\"`\n\tCopies             int     `xml:\"copies,attr,omitempty\"`\n\tDraft              bool    `xml:\"draft,attr,omitempty\"`\n\tErrors             string  `xml:\"errors,attr,omitempty\"`\n\tFirstPageNumber    int     `xml:\"firstPageNumber,attr,omitempty\"`\n\tFitToHeight        *int    `xml:\"fitToHeight,attr\"`\n\tFitToWidth         int     `xml:\"fitToWidth,attr,omitempty\"`\n\tHorizontalDPI      float32 `xml:\"horizontalDpi,attr,omitempty\"`\n\tRID                string  `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n\tOrientation        string  `xml:\"orientation,attr,omitempty\"`\n\tPageOrder          string  `xml:\"pageOrder,attr,omitempty\"`\n\tPaperHeight        string  `xml:\"paperHeight,attr,omitempty\"`\n\tPaperSize          string  `xml:\"paperSize,attr,omitempty\"`\n\tPaperWidth         string  `xml:\"paperWidth,attr,omitempty\"`\n\tScale              int     `xml:\"scale,attr,omitempty\"`\n\tUseFirstPageNumber bool    `xml:\"useFirstPageNumber,attr,omitempty\"`\n\tUsePrinterDefaults bool    `xml:\"usePrinterDefaults,attr,omitempty\"`\n\tVerticalDPI        float32 `xml:\"verticalDpi,attr,omitempty\"`\n}\n\n// xlsxPrintOptions directly maps the printOptions element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Print options for\n// the sheet. Printer-specific settings are stored separately in the Printer\n// Settings part.\ntype xlsxPrintOptions struct {\n\tGridLines          bool `xml:\"gridLines,attr,omitempty\"`\n\tGridLinesSet       bool `xml:\"gridLinesSet,attr,omitempty\"`\n\tHeadings           bool `xml:\"headings,attr,omitempty\"`\n\tHorizontalCentered bool `xml:\"horizontalCentered,attr,omitempty\"`\n\tVerticalCentered   bool `xml:\"verticalCentered,attr,omitempty\"`\n}\n\n// xlsxPageMargins directly maps the pageMargins element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Page margins for\n// a sheet or a custom sheet view.\ntype xlsxPageMargins struct {\n\tBottom float64 `xml:\"bottom,attr\"`\n\tFooter float64 `xml:\"footer,attr\"`\n\tHeader float64 `xml:\"header,attr\"`\n\tLeft   float64 `xml:\"left,attr\"`\n\tRight  float64 `xml:\"right,attr\"`\n\tTop    float64 `xml:\"top,attr\"`\n}\n\n// xlsxSheetFormatPr directly maps the sheetFormatPr element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main. This element\n// specifies the sheet formatting properties.\ntype xlsxSheetFormatPr struct {\n\tBaseColWidth     uint8   `xml:\"baseColWidth,attr,omitempty\"`\n\tDefaultColWidth  float64 `xml:\"defaultColWidth,attr,omitempty\"`\n\tDefaultRowHeight float64 `xml:\"defaultRowHeight,attr\"`\n\tCustomHeight     bool    `xml:\"customHeight,attr,omitempty\"`\n\tZeroHeight       bool    `xml:\"zeroHeight,attr,omitempty\"`\n\tThickTop         bool    `xml:\"thickTop,attr,omitempty\"`\n\tThickBottom      bool    `xml:\"thickBottom,attr,omitempty\"`\n\tOutlineLevelRow  uint8   `xml:\"outlineLevelRow,attr,omitempty\"`\n\tOutlineLevelCol  uint8   `xml:\"outlineLevelCol,attr,omitempty\"`\n}\n\n// xlsxSheetViews directly maps the sheetViews element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Worksheet views\n// collection.\ntype xlsxSheetViews struct {\n\tSheetView []xlsxSheetView `xml:\"sheetView\"`\n}\n\n// xlsxSheetView directly maps the sheetView element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need. A single sheet\n// view definition. When more than one sheet view is defined in the file, it\n// means that when opening the workbook, each sheet view corresponds to a\n// separate window within the spreadsheet application, where each window is\n// showing the particular sheet containing the same workbookViewId value, the\n// last sheetView definition is loaded, and the others are discarded. When\n// multiple windows are viewing the same sheet, multiple sheetView elements\n// (with corresponding workbookView entries) are saved.\n// See https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.sheetview.aspx\ntype xlsxSheetView struct {\n\tWindowProtection         bool             `xml:\"windowProtection,attr,omitempty\"`\n\tShowFormulas             bool             `xml:\"showFormulas,attr,omitempty\"`\n\tShowGridLines            *bool            `xml:\"showGridLines,attr\"`\n\tShowRowColHeaders        *bool            `xml:\"showRowColHeaders,attr\"`\n\tShowZeros                bool             `xml:\"showZeros,attr,omitempty\"`\n\tRightToLeft              bool             `xml:\"rightToLeft,attr,omitempty\"`\n\tTabSelected              bool             `xml:\"tabSelected,attr,omitempty\"`\n\tShowWhiteSpace           *bool            `xml:\"showWhiteSpace,attr\"`\n\tShowOutlineSymbols       bool             `xml:\"showOutlineSymbols,attr,omitempty\"`\n\tDefaultGridColor         *bool            `xml:\"defaultGridColor,attr\"`\n\tView                     string           `xml:\"view,attr,omitempty\"`\n\tTopLeftCell              string           `xml:\"topLeftCell,attr,omitempty\"`\n\tColorID                  int              `xml:\"colorId,attr,omitempty\"`\n\tZoomScale                float64          `xml:\"zoomScale,attr,omitempty\"`\n\tZoomScaleNormal          float64          `xml:\"zoomScaleNormal,attr,omitempty\"`\n\tZoomScalePageLayoutView  float64          `xml:\"zoomScalePageLayoutView,attr,omitempty\"`\n\tZoomScaleSheetLayoutView float64          `xml:\"zoomScaleSheetLayoutView,attr,omitempty\"`\n\tWorkbookViewID           int              `xml:\"workbookViewId,attr\"`\n\tPane                     *xlsxPane        `xml:\"pane,omitempty\"`\n\tSelection                []*xlsxSelection `xml:\"selection\"`\n}\n\n// xlsxSelection directly maps the selection element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Worksheet view\n// selection.\ntype xlsxSelection struct {\n\tActiveCell   string `xml:\"activeCell,attr,omitempty\"`\n\tActiveCellID *int   `xml:\"activeCellId,attr\"`\n\tPane         string `xml:\"pane,attr,omitempty\"`\n\tSQRef        string `xml:\"sqref,attr,omitempty\"`\n}\n\n// xlsxSelection directly maps the selection element. Worksheet view pane.\ntype xlsxPane struct {\n\tActivePane  string  `xml:\"activePane,attr,omitempty\"`\n\tState       string  `xml:\"state,attr,omitempty\"` // Either \"split\" or \"frozen\"\n\tTopLeftCell string  `xml:\"topLeftCell,attr,omitempty\"`\n\tXSplit      float64 `xml:\"xSplit,attr,omitempty\"`\n\tYSplit      float64 `xml:\"ySplit,attr,omitempty\"`\n}\n\n// xlsxSheetPr directly maps the sheetPr element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Sheet-level\n// properties.\ntype xlsxSheetPr struct {\n\tXMLName                           xml.Name         `xml:\"sheetPr\"`\n\tCodeName                          string           `xml:\"codeName,attr,omitempty\"`\n\tEnableFormatConditionsCalculation *bool            `xml:\"enableFormatConditionsCalculation,attr\"`\n\tFilterMode                        bool             `xml:\"filterMode,attr,omitempty\"`\n\tPublished                         *bool            `xml:\"published,attr\"`\n\tSyncHorizontal                    bool             `xml:\"syncHorizontal,attr,omitempty\"`\n\tSyncVertical                      bool             `xml:\"syncVertical,attr,omitempty\"`\n\tTransitionEntry                   bool             `xml:\"transitionEntry,attr,omitempty\"`\n\tTabColor                          *xlsxTabColor    `xml:\"tabColor,omitempty\"`\n\tPageSetUpPr                       *xlsxPageSetUpPr `xml:\"pageSetUpPr,omitempty\"`\n}\n\n// xlsxPageSetUpPr directly maps the pageSetupPr element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Page setup\n// properties of the worksheet.\ntype xlsxPageSetUpPr struct {\n\tAutoPageBreaks bool `xml:\"autoPageBreaks,attr,omitempty\"`\n\tFitToPage      bool `xml:\"fitToPage,attr,omitempty\"` // Flag indicating whether the Fit to Page print option is enabled.\n}\n\n// xlsxTabColor directly maps the tabColor element in the namespace currently I\n// have not checked it for completeness - it does as much as I need.\ntype xlsxTabColor struct {\n\tTheme int     `xml:\"theme,attr,omitempty\"`\n\tTint  float64 `xml:\"tint,attr,omitempty\"`\n}\n\n// xlsxCols directly maps the cols element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxCols struct {\n\tCol []xlsxCol `xml:\"col\"`\n}\n\n// xlsxCol directly maps the col (Column Width & Formatting). Defines column\n// width and column formatting for one or more columns of the worksheet.\ntype xlsxCol struct {\n\tBestFit      bool    `xml:\"bestFit,attr,omitempty\"`\n\tCollapsed    bool    `xml:\"collapsed,attr\"`\n\tCustomWidth  bool    `xml:\"customWidth,attr,omitempty\"`\n\tHidden       bool    `xml:\"hidden,attr\"`\n\tMax          int     `xml:\"max,attr\"`\n\tMin          int     `xml:\"min,attr\"`\n\tOutlineLevel uint8   `xml:\"outlineLevel,attr,omitempty\"`\n\tPhonetic     bool    `xml:\"phonetic,attr,omitempty\"`\n\tStyle        int     `xml:\"style,attr\"`\n\tWidth        float64 `xml:\"width,attr\"`\n}\n\n// xlsxDimension directly maps the dimension element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - This element\n// specifies the used range of the worksheet. It specifies the row and column\n// bounds of used cells in the worksheet. This is optional and is not required.\n// Used cells include cells with formulas, text content, and cell formatting.\n// When an entire column is formatted, only the first cell in that column is\n// considered used.\ntype xlsxDimension struct {\n\tRef string `xml:\"ref,attr\"`\n}\n\n// xlsxSheetData directly maps the sheetData element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxSheetData struct {\n\tXMLName xml.Name  `xml:\"sheetData\"`\n\tRow     []xlsxRow `xml:\"row\"`\n}\n\n// xlsxRow directly maps the row element. The element expresses information\n// about an entire row of a worksheet, and contains all cell definitions for a\n// particular row in the worksheet.\ntype xlsxRow struct {\n\tCollapsed    bool    `xml:\"collapsed,attr,omitempty\"`\n\tCustomFormat bool    `xml:\"customFormat,attr,omitempty\"`\n\tCustomHeight bool    `xml:\"customHeight,attr,omitempty\"`\n\tHidden       bool    `xml:\"hidden,attr,omitempty\"`\n\tHt           float64 `xml:\"ht,attr,omitempty\"`\n\tOutlineLevel uint8   `xml:\"outlineLevel,attr,omitempty\"`\n\tPh           bool    `xml:\"ph,attr,omitempty\"`\n\tR            int     `xml:\"r,attr,omitempty\"`\n\tS            int     `xml:\"s,attr,omitempty\"`\n\tSpans        string  `xml:\"spans,attr,omitempty\"`\n\tThickBot     bool    `xml:\"thickBot,attr,omitempty\"`\n\tThickTop     bool    `xml:\"thickTop,attr,omitempty\"`\n\tC            []xlsxC `xml:\"c\"`\n}\n\n// xlsxMergeCell directly maps the mergeCell element. A single merged cell.\ntype xlsxMergeCell struct {\n\tRef string `xml:\"ref,attr,omitempty\"`\n}\n\n// xlsxMergeCells directly maps the mergeCells element. This collection\n// expresses all the merged cells in the sheet.\ntype xlsxMergeCells struct {\n\tCount int              `xml:\"count,attr,omitempty\"`\n\tCells []*xlsxMergeCell `xml:\"mergeCell,omitempty\"`\n}\n\n// xlsxDataValidations expresses all data validation information for cells in a\n// sheet which have data validation features applied.\ntype xlsxDataValidations struct {\n\tCount          int    `xml:\"count,attr,omitempty\"`\n\tDisablePrompts bool   `xml:\"disablePrompts,attr,omitempty\"`\n\tXWindow        int    `xml:\"xWindow,attr,omitempty\"`\n\tYWindow        int    `xml:\"yWindow,attr,omitempty\"`\n\tDataValidation string `xml:\",innerxml\"`\n}\n\n// xlsxC directly maps the c element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\n//\n// This simple type is restricted to the values listed in the following table:\n//\n//      Enumeration Value         | Description\n//     ---------------------------+---------------------------------\n//      b (Boolean)               | Cell containing a boolean.\n//      d (Date)                  | Cell contains a date in the ISO 8601 format.\n//      e (Error)                 | Cell containing an error.\n//      inlineStr (Inline String) | Cell containing an (inline) rich string, i.e., one not in the shared string table. If this cell type is used, then the cell value is in the is element rather than the v element in the cell (c element).\n//      n (Number)                | Cell containing a number.\n//      s (Shared String)         | Cell containing a shared string.\n//      str (String)              | Cell containing a formula string.\n//\ntype xlsxC struct {\n\tR string `xml:\"r,attr\"`           // Cell ID, e.g. A1\n\tS int    `xml:\"s,attr,omitempty\"` // Style reference.\n\t// Str string `xml:\"str,attr,omitempty\"` // Style reference.\n\tT        string   `xml:\"t,attr,omitempty\"` // Type.\n\tF        *xlsxF   `xml:\"f,omitempty\"`      // Formula\n\tV        string   `xml:\"v,omitempty\"`      // Value\n\tIS       *xlsxIS  `xml:\"is\"`\n\tXMLSpace xml.Attr `xml:\"space,attr,omitempty\"`\n}\n\n// xlsxIS directly maps the t element. Cell containing an (inline) rich\n// string, i.e., one not in the shared string table. If this cell type is\n// used, then the cell value is in the is element rather than the v element in\n// the cell (c element).\ntype xlsxIS struct {\n\tT string `xml:\"t\"`\n}\n\n// xlsxF directly maps the f element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have\n// not checked it for completeness - it does as much as I need.\ntype xlsxF struct {\n\tContent string `xml:\",chardata\"`\n\tT       string `xml:\"t,attr,omitempty\"`   // Formula type\n\tRef     string `xml:\"ref,attr,omitempty\"` // Shared formula ref\n\tSi      string `xml:\"si,attr,omitempty\"`  // Shared formula index\n}\n\n// xlsxSheetProtection collection expresses the sheet protection options to\n// enforce when the sheet is protected.\ntype xlsxSheetProtection struct {\n\tAlgorithmName      string `xml:\"algorithmName,attr,omitempty\"`\n\tAutoFilter         int    `xml:\"autoFilter,attr,omitempty\"`\n\tDeleteColumns      int    `xml:\"deleteColumns,attr,omitempty\"`\n\tDeleteRows         int    `xml:\"deleteRows,attr,omitempty\"`\n\tFormatCells        int    `xml:\"formatCells,attr,omitempty\"`\n\tFormatColumns      int    `xml:\"formatColumns,attr,omitempty\"`\n\tFormatRows         int    `xml:\"formatRows,attr,omitempty\"`\n\tHashValue          string `xml:\"hashValue,attr,omitempty\"`\n\tInsertColumns      int    `xml:\"insertColumns,attr,omitempty\"`\n\tInsertHyperlinks   int    `xml:\"insertHyperlinks,attr,omitempty\"`\n\tInsertRows         int    `xml:\"insertRows,attr,omitempty\"`\n\tObjects            int    `xml:\"objects,attr,omitempty\"`\n\tPivotTables        int    `xml:\"pivotTables,attr,omitempty\"`\n\tSaltValue          string `xml:\"saltValue,attr,omitempty\"`\n\tScenarios          int    `xml:\"scenarios,attr,omitempty\"`\n\tSelectLockedCells  int    `xml:\"selectLockedCells,attr,omitempty\"`\n\tSelectUnlockedCell int    `xml:\"selectUnlockedCell,attr,omitempty\"`\n\tSheet              int    `xml:\"sheet,attr,omitempty\"`\n\tSort               int    `xml:\"sort,attr,omitempty\"`\n\tSpinCount          int    `xml:\"spinCount,attr,omitempty\"`\n}\n\n// xlsxPhoneticPr (Phonetic Properties) represents a collection of phonetic\n// properties that affect the display of phonetic text for this String Item\n// (si). Phonetic text is used to give hints as to the pronunciation of an East\n// Asian language, and the hints are displayed as text within the spreadsheet\n// cells across the top portion of the cell. Since the phonetic hints are text,\n// every phonetic hint is expressed as a phonetic run (rPh), and these\n// properties specify how to display that phonetic run.\ntype xlsxPhoneticPr struct {\n\tAlignment string `xml:\"alignment,attr,omitempty\"`\n\tFontID    *int   `xml:\"fontId,attr\"`\n\tType      string `xml:\"type,attr,omitempty\"`\n}\n\n// A Conditional Format is a format, such as cell shading or font color, that a\n// spreadsheet application can automatically apply to cells if a specified\n// condition is true. This collection expresses conditional formatting rules\n// applied to a particular cell or range.\ntype xlsxConditionalFormatting struct {\n\tSQRef  string        `xml:\"sqref,attr,omitempty\"`\n\tCfRule []*xlsxCfRule `xml:\"cfRule\"`\n}\n\n// xlsxCfRule (Conditional Formatting Rule) represents a description of a\n// conditional formatting rule.\ntype xlsxCfRule struct {\n\tAboveAverage *bool           `xml:\"aboveAverage,attr\"`\n\tBottom       bool            `xml:\"bottom,attr,omitempty\"`\n\tDxfID        *int            `xml:\"dxfId,attr\"`\n\tEqualAverage bool            `xml:\"equalAverage,attr,omitempty\"`\n\tOperator     string          `xml:\"operator,attr,omitempty\"`\n\tPercent      bool            `xml:\"percent,attr,omitempty\"`\n\tPriority     int             `xml:\"priority,attr,omitempty\"`\n\tRank         int             `xml:\"rank,attr,omitempty\"`\n\tStdDev       int             `xml:\"stdDev,attr,omitempty\"`\n\tStopIfTrue   bool            `xml:\"stopIfTrue,attr,omitempty\"`\n\tText         string          `xml:\"text,attr,omitempty\"`\n\tTimePeriod   string          `xml:\"timePeriod,attr,omitempty\"`\n\tType         string          `xml:\"type,attr,omitempty\"`\n\tFormula      []string        `xml:\"formula,omitempty\"`\n\tColorScale   *xlsxColorScale `xml:\"colorScale\"`\n\tDataBar      *xlsxDataBar    `xml:\"dataBar\"`\n\tIconSet      *xlsxIconSet    `xml:\"iconSet\"`\n\tExtLst       *xlsxExtLst     `xml:\"extLst\"`\n}\n\n// xlsxColorScale (Color Scale) describes a gradated color scale in this\n// conditional formatting rule.\ntype xlsxColorScale struct {\n\tCfvo  []*xlsxCfvo  `xml:\"cfvo\"`\n\tColor []*xlsxColor `xml:\"color\"`\n}\n\n// dataBar (Data Bar) describes a data bar conditional formatting rule.\ntype xlsxDataBar struct {\n\tMaxLength int          `xml:\"maxLength,attr,omitempty\"`\n\tMinLength int          `xml:\"minLength,attr,omitempty\"`\n\tShowValue bool         `xml:\"showValue,attr,omitempty\"`\n\tCfvo      []*xlsxCfvo  `xml:\"cfvo\"`\n\tColor     []*xlsxColor `xml:\"color\"`\n}\n\n// xlsxIconSet (Icon Set) describes an icon set conditional formatting rule.\ntype xlsxIconSet struct {\n\tCfvo      []*xlsxCfvo `xml:\"cfvo\"`\n\tIconSet   string      `xml:\"iconSet,attr,omitempty\"`\n\tShowValue bool        `xml:\"showValue,attr,omitempty\"`\n\tPercent   bool        `xml:\"percent,attr,omitempty\"`\n\tReverse   bool        `xml:\"reverse,attr,omitempty\"`\n}\n\n// cfvo (Conditional Format Value Object) describes the values of the\n// interpolation points in a gradient scale.\ntype xlsxCfvo struct {\n\tGte    bool        `xml:\"gte,attr,omitempty\"`\n\tType   string      `xml:\"type,attr,omitempty\"`\n\tVal    int         `xml:\"val,attr\"`\n\tExtLst *xlsxExtLst `xml:\"extLst\"`\n}\n\n// xlsxHyperlinks directly maps the hyperlinks element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - A hyperlink can\n// be stored in a package as a relationship. Hyperlinks shall be identified by\n// containing a target which specifies the destination of the given hyperlink.\ntype xlsxHyperlinks struct {\n\tHyperlink []xlsxHyperlink `xml:\"hyperlink\"`\n}\n\n// xlsxHyperlink directly maps the hyperlink element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main\ntype xlsxHyperlink struct {\n\tRef      string `xml:\"ref,attr\"`\n\tLocation string `xml:\"location,attr,omitempty\"`\n\tDisplay  string `xml:\"display,attr,omitempty\"`\n\tRID      string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// xlsxTableParts directly maps the tableParts element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - The table element\n// has several attributes applied to identify the table and the data range it\n// covers. The table id attribute needs to be unique across all table parts, the\n// same goes for the name and displayName. The displayName has the further\n// restriction that it must be unique across all defined names in the workbook.\n// Later on we will see that you can define names for many elements, such as\n// cells or formulas. The name value is used for the object model in Microsoft\n// Office Excel. The displayName is used for references in formulas. The ref\n// attribute is used to identify the cell range that the table covers. This\n// includes not only the table data, but also the table header containing column\n// names.\n// To add columns to your table you add new tableColumn elements to the\n// tableColumns container. Similar to the shared string table the collection\n// keeps a count attribute identifying the number of columns. Besides the table\n// definition in the table part there is also the need to identify which tables\n// are displayed in the worksheet. The worksheet part has a separate element\n// tableParts to store this information. Each table part is referenced through\n// the relationship ID and again a count of the number of table parts is\n// maintained. The following markup sample is taken from the documents\n// accompanying this book. The sheet data element has been removed to reduce the\n// size of the sample. To reference the table, just add the tableParts element,\n// of course after having created and stored the table part. For example:\n//\n//    <worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">\n//        ...\n//        <tableParts count=\"1\">\n// \t\t      <tablePart r:id=\"rId1\" />\n//        </tableParts>\n//    </worksheet>\n//\ntype xlsxTableParts struct {\n\tCount      int              `xml:\"count,attr,omitempty\"`\n\tTableParts []*xlsxTablePart `xml:\"tablePart\"`\n}\n\n// xlsxTablePart directly maps the tablePart element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main\ntype xlsxTablePart struct {\n\tRID string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// xlsxPicture directly maps the picture element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - Background sheet\n// image. For example:\n//\n//    <picture r:id=\"rId1\"/>\n//\ntype xlsxPicture struct {\n\tRID string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// xlsxLegacyDrawing directly maps the legacyDrawing element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main - A comment is a\n// rich text note that is attached to, and associated with, a cell, separate\n// from other cell content. Comment content is stored separate from the cell,\n// and is displayed in a drawing object (like a text box) that is separate from,\n// but associated with, a cell. Comments are used as reminders, such as noting\n// how a complex formula works, or to provide feedback to other users. Comments\n// can also be used to explain assumptions made in a formula or to call out\n// something special about the cell.\ntype xlsxLegacyDrawing struct {\n\tRID string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n}\n\n// formatPanes directly maps the settings of the panes.\ntype formatPanes struct {\n\tFreeze      bool   `json:\"freeze\"`\n\tSplit       bool   `json:\"split\"`\n\tXSplit      int    `json:\"x_split\"`\n\tYSplit      int    `json:\"y_split\"`\n\tTopLeftCell string `json:\"top_left_cell\"`\n\tActivePane  string `json:\"active_pane\"`\n\tPanes       []struct {\n\t\tSQRef      string `json:\"sqref\"`\n\t\tActiveCell string `json:\"active_cell\"`\n\t\tPane       string `json:\"pane\"`\n\t} `json:\"panes\"`\n}\n\n// formatConditional directly maps the conditional format settings of the cells.\ntype formatConditional struct {\n\tType         string `json:\"type\"`\n\tAboveAverage bool   `json:\"above_average\"`\n\tPercent      bool   `json:\"percent\"`\n\tFormat       int    `json:\"format\"`\n\tCriteria     string `json:\"criteria\"`\n\tValue        string `json:\"value,omitempty\"`\n\tMinimum      string `json:\"minimum,omitempty\"`\n\tMaximum      string `json:\"maximum,omitempty\"`\n\tMinType      string `json:\"min_type,omitempty\"`\n\tMidType      string `json:\"mid_type,omitempty\"`\n\tMaxType      string `json:\"max_type,omitempty\"`\n\tMinValue     string `json:\"min_value,omitempty\"`\n\tMidValue     string `json:\"mid_value,omitempty\"`\n\tMaxValue     string `json:\"max_value,omitempty\"`\n\tMinColor     string `json:\"min_color,omitempty\"`\n\tMidColor     string `json:\"mid_color,omitempty\"`\n\tMaxColor     string `json:\"max_color,omitempty\"`\n\tMinLength    string `json:\"min_length,omitempty\"`\n\tMaxLength    string `json:\"max_length,omitempty\"`\n\tMultiRange   string `json:\"multi_range,omitempty\"`\n\tBarColor     string `json:\"bar_color,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/purell/.gitignore",
    "content": "*.sublime-*\n.DS_Store\n*.swp\n*.swo\ntags\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/purell/.travis.yml",
    "content": "language: go\n\ngo:\n    - 1.4.x\n    - 1.5.x\n    - 1.6.x\n    - 1.7.x\n    - 1.8.x\n    - 1.9.x\n    - \"1.10.x\"\n    - tip\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/purell/LICENSE",
    "content": "Copyright (c) 2012, Martin Angers\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n* Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/purell/README.md",
    "content": "# Purell\n\nPurell is a tiny Go library to normalize URLs. It returns a pure URL. Pure-ell. Sanitizer and all. Yeah, I know...\n\nBased on the [wikipedia paper][wiki] and the [RFC 3986 document][rfc].\n\n[![build status](https://travis-ci.org/PuerkitoBio/purell.svg?branch=master)](http://travis-ci.org/PuerkitoBio/purell)\n\n## Install\n\n`go get github.com/PuerkitoBio/purell`\n\n## Changelog\n\n*    **2016-11-14 (v1.1.0)** : IDN: Conform to RFC 5895: Fold character width (thanks to @beeker1121).\n*    **2016-07-27 (v1.0.0)** : Normalize IDN to ASCII (thanks to @zenovich).\n*    **2015-02-08** : Add fix for relative paths issue ([PR #5][pr5]) and add fix for unnecessary encoding of reserved characters ([see issue #7][iss7]).\n*    **v0.2.0** : Add benchmarks, Attempt IDN support.\n*    **v0.1.0** : Initial release.\n\n## Examples\n\nFrom `example_test.go` (note that in your code, you would import \"github.com/PuerkitoBio/purell\", and would prefix references to its methods and constants with \"purell.\"):\n\n```go\npackage purell\n\nimport (\n  \"fmt\"\n  \"net/url\"\n)\n\nfunc ExampleNormalizeURLString() {\n  if normalized, err := NormalizeURLString(\"hTTp://someWEBsite.com:80/Amazing%3f/url/\",\n    FlagLowercaseScheme|FlagLowercaseHost|FlagUppercaseEscapes); err != nil {\n    panic(err)\n  } else {\n    fmt.Print(normalized)\n  }\n  // Output: http://somewebsite.com:80/Amazing%3F/url/\n}\n\nfunc ExampleMustNormalizeURLString() {\n  normalized := MustNormalizeURLString(\"hTTpS://someWEBsite.com:443/Amazing%fa/url/\",\n    FlagsUnsafeGreedy)\n  fmt.Print(normalized)\n\n  // Output: http://somewebsite.com/Amazing%FA/url\n}\n\nfunc ExampleNormalizeURL() {\n  if u, err := url.Parse(\"Http://SomeUrl.com:8080/a/b/.././c///g?c=3&a=1&b=9&c=0#target\"); err != nil {\n    panic(err)\n  } else {\n    normalized := NormalizeURL(u, FlagsUsuallySafeGreedy|FlagRemoveDuplicateSlashes|FlagRemoveFragment)\n    fmt.Print(normalized)\n  }\n\n  // Output: http://someurl.com:8080/a/c/g?c=3&a=1&b=9&c=0\n}\n```\n\n## API\n\nAs seen in the examples above, purell offers three methods, `NormalizeURLString(string, NormalizationFlags) (string, error)`, `MustNormalizeURLString(string, NormalizationFlags) (string)` and `NormalizeURL(*url.URL, NormalizationFlags) (string)`. They all normalize the provided URL based on the specified flags. Here are the available flags:\n\n```go\nconst (\n\t// Safe normalizations\n\tFlagLowercaseScheme           NormalizationFlags = 1 << iota // HTTP://host -> http://host, applied by default in Go1.1\n\tFlagLowercaseHost                                            // http://HOST -> http://host\n\tFlagUppercaseEscapes                                         // http://host/t%ef -> http://host/t%EF\n\tFlagDecodeUnnecessaryEscapes                                 // http://host/t%41 -> http://host/tA\n\tFlagEncodeNecessaryEscapes                                   // http://host/!\"#$ -> http://host/%21%22#$\n\tFlagRemoveDefaultPort                                        // http://host:80 -> http://host\n\tFlagRemoveEmptyQuerySeparator                                // http://host/path? -> http://host/path\n\n\t// Usually safe normalizations\n\tFlagRemoveTrailingSlash // http://host/path/ -> http://host/path\n\tFlagAddTrailingSlash    // http://host/path -> http://host/path/ (should choose only one of these add/remove trailing slash flags)\n\tFlagRemoveDotSegments   // http://host/path/./a/b/../c -> http://host/path/a/c\n\n\t// Unsafe normalizations\n\tFlagRemoveDirectoryIndex   // http://host/path/index.html -> http://host/path/\n\tFlagRemoveFragment         // http://host/path#fragment -> http://host/path\n\tFlagForceHTTP              // https://host -> http://host\n\tFlagRemoveDuplicateSlashes // http://host/path//a///b -> http://host/path/a/b\n\tFlagRemoveWWW              // http://www.host/ -> http://host/\n\tFlagAddWWW                 // http://host/ -> http://www.host/ (should choose only one of these add/remove WWW flags)\n\tFlagSortQuery              // http://host/path?c=3&b=2&a=1&b=1 -> http://host/path?a=1&b=1&b=2&c=3\n\n\t// Normalizations not in the wikipedia article, required to cover tests cases\n\t// submitted by jehiah\n\tFlagDecodeDWORDHost           // http://1113982867 -> http://66.102.7.147\n\tFlagDecodeOctalHost           // http://0102.0146.07.0223 -> http://66.102.7.147\n\tFlagDecodeHexHost             // http://0x42660793 -> http://66.102.7.147\n\tFlagRemoveUnnecessaryHostDots // http://.host../path -> http://host/path\n\tFlagRemoveEmptyPortSeparator  // http://host:/path -> http://host/path\n\n\t// Convenience set of safe normalizations\n\tFlagsSafe NormalizationFlags = FlagLowercaseHost | FlagLowercaseScheme | FlagUppercaseEscapes | FlagDecodeUnnecessaryEscapes | FlagEncodeNecessaryEscapes | FlagRemoveDefaultPort | FlagRemoveEmptyQuerySeparator\n\n\t// For convenience sets, \"greedy\" uses the \"remove trailing slash\" and \"remove www. prefix\" flags,\n\t// while \"non-greedy\" uses the \"add (or keep) the trailing slash\" and \"add www. prefix\".\n\n\t// Convenience set of usually safe normalizations (includes FlagsSafe)\n\tFlagsUsuallySafeGreedy    NormalizationFlags = FlagsSafe | FlagRemoveTrailingSlash | FlagRemoveDotSegments\n\tFlagsUsuallySafeNonGreedy NormalizationFlags = FlagsSafe | FlagAddTrailingSlash | FlagRemoveDotSegments\n\n\t// Convenience set of unsafe normalizations (includes FlagsUsuallySafe)\n\tFlagsUnsafeGreedy    NormalizationFlags = FlagsUsuallySafeGreedy | FlagRemoveDirectoryIndex | FlagRemoveFragment | FlagForceHTTP | FlagRemoveDuplicateSlashes | FlagRemoveWWW | FlagSortQuery\n\tFlagsUnsafeNonGreedy NormalizationFlags = FlagsUsuallySafeNonGreedy | FlagRemoveDirectoryIndex | FlagRemoveFragment | FlagForceHTTP | FlagRemoveDuplicateSlashes | FlagAddWWW | FlagSortQuery\n\n\t// Convenience set of all available flags\n\tFlagsAllGreedy    = FlagsUnsafeGreedy | FlagDecodeDWORDHost | FlagDecodeOctalHost | FlagDecodeHexHost | FlagRemoveUnnecessaryHostDots | FlagRemoveEmptyPortSeparator\n\tFlagsAllNonGreedy = FlagsUnsafeNonGreedy | FlagDecodeDWORDHost | FlagDecodeOctalHost | FlagDecodeHexHost | FlagRemoveUnnecessaryHostDots | FlagRemoveEmptyPortSeparator\n)\n```\n\nFor convenience, the set of flags `FlagsSafe`, `FlagsUsuallySafe[Greedy|NonGreedy]`, `FlagsUnsafe[Greedy|NonGreedy]` and `FlagsAll[Greedy|NonGreedy]` are provided for the similarly grouped normalizations on [wikipedia's URL normalization page][wiki]. You can add (using the bitwise OR `|` operator) or remove (using the bitwise AND NOT `&^` operator) individual flags from the sets if required, to build your own custom set.\n\nThe [full godoc reference is available on gopkgdoc][godoc].\n\nSome things to note:\n\n*    `FlagDecodeUnnecessaryEscapes`, `FlagEncodeNecessaryEscapes`, `FlagUppercaseEscapes` and `FlagRemoveEmptyQuerySeparator` are always implicitly set, because internally, the URL string is parsed as an URL object, which automatically decodes unnecessary escapes, uppercases and encodes necessary ones, and removes empty query separators (an unnecessary `?` at the end of the url). So this operation cannot **not** be done. For this reason, `FlagRemoveEmptyQuerySeparator` (as well as the other three) has been included in the `FlagsSafe` convenience set, instead of `FlagsUnsafe`, where Wikipedia puts it.\n\n*    The `FlagDecodeUnnecessaryEscapes` decodes the following escapes (*from -> to*):\n    -    %24 -> $\n    -    %26 -> &\n    -    %2B-%3B -> +,-./0123456789:;\n    -    %3D -> =\n    -    %40-%5A -> @ABCDEFGHIJKLMNOPQRSTUVWXYZ\n    -    %5F -> _\n    -    %61-%7A -> abcdefghijklmnopqrstuvwxyz\n    -    %7E -> ~\n\n\n*    When the `NormalizeURL` function is used (passing an URL object), this source URL object is modified (that is, after the call, the URL object will be modified to reflect the normalization).\n\n*    The *replace IP with domain name* normalization (`http://208.77.188.166/ → http://www.example.com/`) is obviously not possible for a library without making some network requests. This is not implemented in purell.\n\n*    The *remove unused query string parameters* and *remove default query parameters* are also not implemented, since this is a very case-specific normalization, and it is quite trivial to do with an URL object.\n\n### Safe vs Usually Safe vs Unsafe\n\nPurell allows you to control the level of risk you take while normalizing an URL. You can aggressively normalize, play it totally safe, or anything in between.\n\nConsider the following URL:\n\n`HTTPS://www.RooT.com/toto/t%45%1f///a/./b/../c/?z=3&w=2&a=4&w=1#invalid`\n\nNormalizing with the `FlagsSafe` gives:\n\n`https://www.root.com/toto/tE%1F///a/./b/../c/?z=3&w=2&a=4&w=1#invalid`\n\nWith the `FlagsUsuallySafeGreedy`:\n\n`https://www.root.com/toto/tE%1F///a/c?z=3&w=2&a=4&w=1#invalid`\n\nAnd with `FlagsUnsafeGreedy`:\n\n`http://root.com/toto/tE%1F/a/c?a=4&w=1&w=2&z=3`\n\n## TODOs\n\n*    Add a class/default instance to allow specifying custom directory index names? At the moment, removing directory index removes `(^|/)((?:default|index)\\.\\w{1,4})$`.\n\n## Thanks / Contributions\n\n@rogpeppe\n@jehiah\n@opennota\n@pchristopher1275\n@zenovich\n@beeker1121\n\n## License\n\nThe [BSD 3-Clause license][bsd].\n\n[bsd]: http://opensource.org/licenses/BSD-3-Clause\n[wiki]: http://en.wikipedia.org/wiki/URL_normalization\n[rfc]: http://tools.ietf.org/html/rfc3986#section-6\n[godoc]: http://go.pkgdoc.org/github.com/PuerkitoBio/purell\n[pr5]: https://github.com/PuerkitoBio/purell/pull/5\n[iss7]: https://github.com/PuerkitoBio/purell/issues/7\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/purell/purell.go",
    "content": "/*\nPackage purell offers URL normalization as described on the wikipedia page:\nhttp://en.wikipedia.org/wiki/URL_normalization\n*/\npackage purell\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/PuerkitoBio/urlesc\"\n\t\"golang.org/x/net/idna\"\n\t\"golang.org/x/text/unicode/norm\"\n\t\"golang.org/x/text/width\"\n)\n\n// A set of normalization flags determines how a URL will\n// be normalized.\ntype NormalizationFlags uint\n\nconst (\n\t// Safe normalizations\n\tFlagLowercaseScheme           NormalizationFlags = 1 << iota // HTTP://host -> http://host, applied by default in Go1.1\n\tFlagLowercaseHost                                            // http://HOST -> http://host\n\tFlagUppercaseEscapes                                         // http://host/t%ef -> http://host/t%EF\n\tFlagDecodeUnnecessaryEscapes                                 // http://host/t%41 -> http://host/tA\n\tFlagEncodeNecessaryEscapes                                   // http://host/!\"#$ -> http://host/%21%22#$\n\tFlagRemoveDefaultPort                                        // http://host:80 -> http://host\n\tFlagRemoveEmptyQuerySeparator                                // http://host/path? -> http://host/path\n\n\t// Usually safe normalizations\n\tFlagRemoveTrailingSlash // http://host/path/ -> http://host/path\n\tFlagAddTrailingSlash    // http://host/path -> http://host/path/ (should choose only one of these add/remove trailing slash flags)\n\tFlagRemoveDotSegments   // http://host/path/./a/b/../c -> http://host/path/a/c\n\n\t// Unsafe normalizations\n\tFlagRemoveDirectoryIndex   // http://host/path/index.html -> http://host/path/\n\tFlagRemoveFragment         // http://host/path#fragment -> http://host/path\n\tFlagForceHTTP              // https://host -> http://host\n\tFlagRemoveDuplicateSlashes // http://host/path//a///b -> http://host/path/a/b\n\tFlagRemoveWWW              // http://www.host/ -> http://host/\n\tFlagAddWWW                 // http://host/ -> http://www.host/ (should choose only one of these add/remove WWW flags)\n\tFlagSortQuery              // http://host/path?c=3&b=2&a=1&b=1 -> http://host/path?a=1&b=1&b=2&c=3\n\n\t// Normalizations not in the wikipedia article, required to cover tests cases\n\t// submitted by jehiah\n\tFlagDecodeDWORDHost           // http://1113982867 -> http://66.102.7.147\n\tFlagDecodeOctalHost           // http://0102.0146.07.0223 -> http://66.102.7.147\n\tFlagDecodeHexHost             // http://0x42660793 -> http://66.102.7.147\n\tFlagRemoveUnnecessaryHostDots // http://.host../path -> http://host/path\n\tFlagRemoveEmptyPortSeparator  // http://host:/path -> http://host/path\n\n\t// Convenience set of safe normalizations\n\tFlagsSafe NormalizationFlags = FlagLowercaseHost | FlagLowercaseScheme | FlagUppercaseEscapes | FlagDecodeUnnecessaryEscapes | FlagEncodeNecessaryEscapes | FlagRemoveDefaultPort | FlagRemoveEmptyQuerySeparator\n\n\t// For convenience sets, \"greedy\" uses the \"remove trailing slash\" and \"remove www. prefix\" flags,\n\t// while \"non-greedy\" uses the \"add (or keep) the trailing slash\" and \"add www. prefix\".\n\n\t// Convenience set of usually safe normalizations (includes FlagsSafe)\n\tFlagsUsuallySafeGreedy    NormalizationFlags = FlagsSafe | FlagRemoveTrailingSlash | FlagRemoveDotSegments\n\tFlagsUsuallySafeNonGreedy NormalizationFlags = FlagsSafe | FlagAddTrailingSlash | FlagRemoveDotSegments\n\n\t// Convenience set of unsafe normalizations (includes FlagsUsuallySafe)\n\tFlagsUnsafeGreedy    NormalizationFlags = FlagsUsuallySafeGreedy | FlagRemoveDirectoryIndex | FlagRemoveFragment | FlagForceHTTP | FlagRemoveDuplicateSlashes | FlagRemoveWWW | FlagSortQuery\n\tFlagsUnsafeNonGreedy NormalizationFlags = FlagsUsuallySafeNonGreedy | FlagRemoveDirectoryIndex | FlagRemoveFragment | FlagForceHTTP | FlagRemoveDuplicateSlashes | FlagAddWWW | FlagSortQuery\n\n\t// Convenience set of all available flags\n\tFlagsAllGreedy    = FlagsUnsafeGreedy | FlagDecodeDWORDHost | FlagDecodeOctalHost | FlagDecodeHexHost | FlagRemoveUnnecessaryHostDots | FlagRemoveEmptyPortSeparator\n\tFlagsAllNonGreedy = FlagsUnsafeNonGreedy | FlagDecodeDWORDHost | FlagDecodeOctalHost | FlagDecodeHexHost | FlagRemoveUnnecessaryHostDots | FlagRemoveEmptyPortSeparator\n)\n\nconst (\n\tdefaultHttpPort  = \":80\"\n\tdefaultHttpsPort = \":443\"\n)\n\n// Regular expressions used by the normalizations\nvar rxPort = regexp.MustCompile(`(:\\d+)/?$`)\nvar rxDirIndex = regexp.MustCompile(`(^|/)((?:default|index)\\.\\w{1,4})$`)\nvar rxDupSlashes = regexp.MustCompile(`/{2,}`)\nvar rxDWORDHost = regexp.MustCompile(`^(\\d+)((?:\\.+)?(?:\\:\\d*)?)$`)\nvar rxOctalHost = regexp.MustCompile(`^(0\\d*)\\.(0\\d*)\\.(0\\d*)\\.(0\\d*)((?:\\.+)?(?:\\:\\d*)?)$`)\nvar rxHexHost = regexp.MustCompile(`^0x([0-9A-Fa-f]+)((?:\\.+)?(?:\\:\\d*)?)$`)\nvar rxHostDots = regexp.MustCompile(`^(.+?)(:\\d+)?$`)\nvar rxEmptyPort = regexp.MustCompile(`:+$`)\n\n// Map of flags to implementation function.\n// FlagDecodeUnnecessaryEscapes has no action, since it is done automatically\n// by parsing the string as an URL. Same for FlagUppercaseEscapes and FlagRemoveEmptyQuerySeparator.\n\n// Since maps have undefined traversing order, make a slice of ordered keys\nvar flagsOrder = []NormalizationFlags{\n\tFlagLowercaseScheme,\n\tFlagLowercaseHost,\n\tFlagRemoveDefaultPort,\n\tFlagRemoveDirectoryIndex,\n\tFlagRemoveDotSegments,\n\tFlagRemoveFragment,\n\tFlagForceHTTP, // Must be after remove default port (because https=443/http=80)\n\tFlagRemoveDuplicateSlashes,\n\tFlagRemoveWWW,\n\tFlagAddWWW,\n\tFlagSortQuery,\n\tFlagDecodeDWORDHost,\n\tFlagDecodeOctalHost,\n\tFlagDecodeHexHost,\n\tFlagRemoveUnnecessaryHostDots,\n\tFlagRemoveEmptyPortSeparator,\n\tFlagRemoveTrailingSlash, // These two (add/remove trailing slash) must be last\n\tFlagAddTrailingSlash,\n}\n\n// ... and then the map, where order is unimportant\nvar flags = map[NormalizationFlags]func(*url.URL){\n\tFlagLowercaseScheme:           lowercaseScheme,\n\tFlagLowercaseHost:             lowercaseHost,\n\tFlagRemoveDefaultPort:         removeDefaultPort,\n\tFlagRemoveDirectoryIndex:      removeDirectoryIndex,\n\tFlagRemoveDotSegments:         removeDotSegments,\n\tFlagRemoveFragment:            removeFragment,\n\tFlagForceHTTP:                 forceHTTP,\n\tFlagRemoveDuplicateSlashes:    removeDuplicateSlashes,\n\tFlagRemoveWWW:                 removeWWW,\n\tFlagAddWWW:                    addWWW,\n\tFlagSortQuery:                 sortQuery,\n\tFlagDecodeDWORDHost:           decodeDWORDHost,\n\tFlagDecodeOctalHost:           decodeOctalHost,\n\tFlagDecodeHexHost:             decodeHexHost,\n\tFlagRemoveUnnecessaryHostDots: removeUnncessaryHostDots,\n\tFlagRemoveEmptyPortSeparator:  removeEmptyPortSeparator,\n\tFlagRemoveTrailingSlash:       removeTrailingSlash,\n\tFlagAddTrailingSlash:          addTrailingSlash,\n}\n\n// MustNormalizeURLString returns the normalized string, and panics if an error occurs.\n// It takes an URL string as input, as well as the normalization flags.\nfunc MustNormalizeURLString(u string, f NormalizationFlags) string {\n\tresult, e := NormalizeURLString(u, f)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn result\n}\n\n// NormalizeURLString returns the normalized string, or an error if it can't be parsed into an URL object.\n// It takes an URL string as input, as well as the normalization flags.\nfunc NormalizeURLString(u string, f NormalizationFlags) (string, error) {\n\tparsed, err := url.Parse(u)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tif f&FlagLowercaseHost == FlagLowercaseHost {\n\t\tparsed.Host = strings.ToLower(parsed.Host)\n\t}\n\n\t// The idna package doesn't fully conform to RFC 5895\n\t// (https://tools.ietf.org/html/rfc5895), so we do it here.\n\t// Taken from Go 1.8 cycle source, courtesy of bradfitz.\n\t// TODO: Remove when (if?) idna package conforms to RFC 5895.\n\tparsed.Host = width.Fold.String(parsed.Host)\n\tparsed.Host = norm.NFC.String(parsed.Host)\n\tif parsed.Host, err = idna.ToASCII(parsed.Host); err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn NormalizeURL(parsed, f), nil\n}\n\n// NormalizeURL returns the normalized string.\n// It takes a parsed URL object as input, as well as the normalization flags.\nfunc NormalizeURL(u *url.URL, f NormalizationFlags) string {\n\tfor _, k := range flagsOrder {\n\t\tif f&k == k {\n\t\t\tflags[k](u)\n\t\t}\n\t}\n\treturn urlesc.Escape(u)\n}\n\nfunc lowercaseScheme(u *url.URL) {\n\tif len(u.Scheme) > 0 {\n\t\tu.Scheme = strings.ToLower(u.Scheme)\n\t}\n}\n\nfunc lowercaseHost(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tu.Host = strings.ToLower(u.Host)\n\t}\n}\n\nfunc removeDefaultPort(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tscheme := strings.ToLower(u.Scheme)\n\t\tu.Host = rxPort.ReplaceAllStringFunc(u.Host, func(val string) string {\n\t\t\tif (scheme == \"http\" && val == defaultHttpPort) || (scheme == \"https\" && val == defaultHttpsPort) {\n\t\t\t\treturn \"\"\n\t\t\t}\n\t\t\treturn val\n\t\t})\n\t}\n}\n\nfunc removeTrailingSlash(u *url.URL) {\n\tif l := len(u.Path); l > 0 {\n\t\tif strings.HasSuffix(u.Path, \"/\") {\n\t\t\tu.Path = u.Path[:l-1]\n\t\t}\n\t} else if l = len(u.Host); l > 0 {\n\t\tif strings.HasSuffix(u.Host, \"/\") {\n\t\t\tu.Host = u.Host[:l-1]\n\t\t}\n\t}\n}\n\nfunc addTrailingSlash(u *url.URL) {\n\tif l := len(u.Path); l > 0 {\n\t\tif !strings.HasSuffix(u.Path, \"/\") {\n\t\t\tu.Path += \"/\"\n\t\t}\n\t} else if l = len(u.Host); l > 0 {\n\t\tif !strings.HasSuffix(u.Host, \"/\") {\n\t\t\tu.Host += \"/\"\n\t\t}\n\t}\n}\n\nfunc removeDotSegments(u *url.URL) {\n\tif len(u.Path) > 0 {\n\t\tvar dotFree []string\n\t\tvar lastIsDot bool\n\n\t\tsections := strings.Split(u.Path, \"/\")\n\t\tfor _, s := range sections {\n\t\t\tif s == \"..\" {\n\t\t\t\tif len(dotFree) > 0 {\n\t\t\t\t\tdotFree = dotFree[:len(dotFree)-1]\n\t\t\t\t}\n\t\t\t} else if s != \".\" {\n\t\t\t\tdotFree = append(dotFree, s)\n\t\t\t}\n\t\t\tlastIsDot = (s == \".\" || s == \"..\")\n\t\t}\n\t\t// Special case if host does not end with / and new path does not begin with /\n\t\tu.Path = strings.Join(dotFree, \"/\")\n\t\tif u.Host != \"\" && !strings.HasSuffix(u.Host, \"/\") && !strings.HasPrefix(u.Path, \"/\") {\n\t\t\tu.Path = \"/\" + u.Path\n\t\t}\n\t\t// Special case if the last segment was a dot, make sure the path ends with a slash\n\t\tif lastIsDot && !strings.HasSuffix(u.Path, \"/\") {\n\t\t\tu.Path += \"/\"\n\t\t}\n\t}\n}\n\nfunc removeDirectoryIndex(u *url.URL) {\n\tif len(u.Path) > 0 {\n\t\tu.Path = rxDirIndex.ReplaceAllString(u.Path, \"$1\")\n\t}\n}\n\nfunc removeFragment(u *url.URL) {\n\tu.Fragment = \"\"\n}\n\nfunc forceHTTP(u *url.URL) {\n\tif strings.ToLower(u.Scheme) == \"https\" {\n\t\tu.Scheme = \"http\"\n\t}\n}\n\nfunc removeDuplicateSlashes(u *url.URL) {\n\tif len(u.Path) > 0 {\n\t\tu.Path = rxDupSlashes.ReplaceAllString(u.Path, \"/\")\n\t}\n}\n\nfunc removeWWW(u *url.URL) {\n\tif len(u.Host) > 0 && strings.HasPrefix(strings.ToLower(u.Host), \"www.\") {\n\t\tu.Host = u.Host[4:]\n\t}\n}\n\nfunc addWWW(u *url.URL) {\n\tif len(u.Host) > 0 && !strings.HasPrefix(strings.ToLower(u.Host), \"www.\") {\n\t\tu.Host = \"www.\" + u.Host\n\t}\n}\n\nfunc sortQuery(u *url.URL) {\n\tq := u.Query()\n\n\tif len(q) > 0 {\n\t\tarKeys := make([]string, len(q))\n\t\ti := 0\n\t\tfor k := range q {\n\t\t\tarKeys[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Strings(arKeys)\n\t\tbuf := new(bytes.Buffer)\n\t\tfor _, k := range arKeys {\n\t\t\tsort.Strings(q[k])\n\t\t\tfor _, v := range q[k] {\n\t\t\t\tif buf.Len() > 0 {\n\t\t\t\t\tbuf.WriteRune('&')\n\t\t\t\t}\n\t\t\t\tbuf.WriteString(fmt.Sprintf(\"%s=%s\", k, urlesc.QueryEscape(v)))\n\t\t\t}\n\t\t}\n\n\t\t// Rebuild the raw query string\n\t\tu.RawQuery = buf.String()\n\t}\n}\n\nfunc decodeDWORDHost(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tif matches := rxDWORDHost.FindStringSubmatch(u.Host); len(matches) > 2 {\n\t\t\tvar parts [4]int64\n\n\t\t\tdword, _ := strconv.ParseInt(matches[1], 10, 0)\n\t\t\tfor i, shift := range []uint{24, 16, 8, 0} {\n\t\t\t\tparts[i] = dword >> shift & 0xFF\n\t\t\t}\n\t\t\tu.Host = fmt.Sprintf(\"%d.%d.%d.%d%s\", parts[0], parts[1], parts[2], parts[3], matches[2])\n\t\t}\n\t}\n}\n\nfunc decodeOctalHost(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tif matches := rxOctalHost.FindStringSubmatch(u.Host); len(matches) > 5 {\n\t\t\tvar parts [4]int64\n\n\t\t\tfor i := 1; i <= 4; i++ {\n\t\t\t\tparts[i-1], _ = strconv.ParseInt(matches[i], 8, 0)\n\t\t\t}\n\t\t\tu.Host = fmt.Sprintf(\"%d.%d.%d.%d%s\", parts[0], parts[1], parts[2], parts[3], matches[5])\n\t\t}\n\t}\n}\n\nfunc decodeHexHost(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tif matches := rxHexHost.FindStringSubmatch(u.Host); len(matches) > 2 {\n\t\t\t// Conversion is safe because of regex validation\n\t\t\tparsed, _ := strconv.ParseInt(matches[1], 16, 0)\n\t\t\t// Set host as DWORD (base 10) encoded host\n\t\t\tu.Host = fmt.Sprintf(\"%d%s\", parsed, matches[2])\n\t\t\t// The rest is the same as decoding a DWORD host\n\t\t\tdecodeDWORDHost(u)\n\t\t}\n\t}\n}\n\nfunc removeUnncessaryHostDots(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tif matches := rxHostDots.FindStringSubmatch(u.Host); len(matches) > 1 {\n\t\t\t// Trim the leading and trailing dots\n\t\t\tu.Host = strings.Trim(matches[1], \".\")\n\t\t\tif len(matches) > 2 {\n\t\t\t\tu.Host += matches[2]\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc removeEmptyPortSeparator(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tu.Host = rxEmptyPort.ReplaceAllString(u.Host, \"\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/urlesc/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.4.x\n  - 1.5.x\n  - 1.6.x\n  - 1.7.x\n  - 1.8.x\n  - tip\n\ninstall:\n  - go build .\n\nscript:\n  - go test -v\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/urlesc/LICENSE",
    "content": "Copyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/urlesc/README.md",
    "content": "urlesc [![Build Status](https://travis-ci.org/PuerkitoBio/urlesc.svg?branch=master)](https://travis-ci.org/PuerkitoBio/urlesc) [![GoDoc](http://godoc.org/github.com/PuerkitoBio/urlesc?status.svg)](http://godoc.org/github.com/PuerkitoBio/urlesc)\n======\n\nPackage urlesc implements query escaping as per RFC 3986.\n\nIt contains some parts of the net/url package, modified so as to allow\nsome reserved characters incorrectly escaped by net/url (see [issue 5684](https://github.com/golang/go/issues/5684)).\n\n## Install\n\n    go get github.com/PuerkitoBio/urlesc\n\n## License\n\nGo license (BSD-3-Clause)\n\n"
  },
  {
    "path": "vendor/github.com/PuerkitoBio/urlesc/urlesc.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package urlesc implements query escaping as per RFC 3986.\n// It contains some parts of the net/url package, modified so as to allow\n// some reserved characters incorrectly escaped by net/url.\n// See https://github.com/golang/go/issues/5684\npackage urlesc\n\nimport (\n\t\"bytes\"\n\t\"net/url\"\n\t\"strings\"\n)\n\ntype encoding int\n\nconst (\n\tencodePath encoding = 1 + iota\n\tencodeUserPassword\n\tencodeQueryComponent\n\tencodeFragment\n)\n\n// Return true if the specified character should be escaped when\n// appearing in a URL string, according to RFC 3986.\nfunc shouldEscape(c byte, mode encoding) bool {\n\t// §2.3 Unreserved characters (alphanum)\n\tif 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' {\n\t\treturn false\n\t}\n\n\tswitch c {\n\tcase '-', '.', '_', '~': // §2.3 Unreserved characters (mark)\n\t\treturn false\n\n\t// §2.2 Reserved characters (reserved)\n\tcase ':', '/', '?', '#', '[', ']', '@', // gen-delims\n\t\t'!', '$', '&', '\\'', '(', ')', '*', '+', ',', ';', '=': // sub-delims\n\t\t// Different sections of the URL allow a few of\n\t\t// the reserved characters to appear unescaped.\n\t\tswitch mode {\n\t\tcase encodePath: // §3.3\n\t\t\t// The RFC allows sub-delims and : @.\n\t\t\t// '/', '[' and ']' can be used to assign meaning to individual path\n\t\t\t// segments.  This package only manipulates the path as a whole,\n\t\t\t// so we allow those as well.  That leaves only ? and # to escape.\n\t\t\treturn c == '?' || c == '#'\n\n\t\tcase encodeUserPassword: // §3.2.1\n\t\t\t// The RFC allows : and sub-delims in\n\t\t\t// userinfo.  The parsing of userinfo treats ':' as special so we must escape\n\t\t\t// all the gen-delims.\n\t\t\treturn c == ':' || c == '/' || c == '?' || c == '#' || c == '[' || c == ']' || c == '@'\n\n\t\tcase encodeQueryComponent: // §3.4\n\t\t\t// The RFC allows / and ?.\n\t\t\treturn c != '/' && c != '?'\n\n\t\tcase encodeFragment: // §4.1\n\t\t\t// The RFC text is silent but the grammar allows\n\t\t\t// everything, so escape nothing but #\n\t\t\treturn c == '#'\n\t\t}\n\t}\n\n\t// Everything else must be escaped.\n\treturn true\n}\n\n// QueryEscape escapes the string so it can be safely placed\n// inside a URL query.\nfunc QueryEscape(s string) string {\n\treturn escape(s, encodeQueryComponent)\n}\n\nfunc escape(s string, mode encoding) string {\n\tspaceCount, hexCount := 0, 0\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif shouldEscape(c, mode) {\n\t\t\tif c == ' ' && mode == encodeQueryComponent {\n\t\t\t\tspaceCount++\n\t\t\t} else {\n\t\t\t\thexCount++\n\t\t\t}\n\t\t}\n\t}\n\n\tif spaceCount == 0 && hexCount == 0 {\n\t\treturn s\n\t}\n\n\tt := make([]byte, len(s)+2*hexCount)\n\tj := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch c := s[i]; {\n\t\tcase c == ' ' && mode == encodeQueryComponent:\n\t\t\tt[j] = '+'\n\t\t\tj++\n\t\tcase shouldEscape(c, mode):\n\t\t\tt[j] = '%'\n\t\t\tt[j+1] = \"0123456789ABCDEF\"[c>>4]\n\t\t\tt[j+2] = \"0123456789ABCDEF\"[c&15]\n\t\t\tj += 3\n\t\tdefault:\n\t\t\tt[j] = s[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn string(t)\n}\n\nvar uiReplacer = strings.NewReplacer(\n\t\"%21\", \"!\",\n\t\"%27\", \"'\",\n\t\"%28\", \"(\",\n\t\"%29\", \")\",\n\t\"%2A\", \"*\",\n)\n\n// unescapeUserinfo unescapes some characters that need not to be escaped as per RFC3986.\nfunc unescapeUserinfo(s string) string {\n\treturn uiReplacer.Replace(s)\n}\n\n// Escape reassembles the URL into a valid URL string.\n// The general form of the result is one of:\n//\n//\tscheme:opaque\n//\tscheme://userinfo@host/path?query#fragment\n//\n// If u.Opaque is non-empty, String uses the first form;\n// otherwise it uses the second form.\n//\n// In the second form, the following rules apply:\n//\t- if u.Scheme is empty, scheme: is omitted.\n//\t- if u.User is nil, userinfo@ is omitted.\n//\t- if u.Host is empty, host/ is omitted.\n//\t- if u.Scheme and u.Host are empty and u.User is nil,\n//\t   the entire scheme://userinfo@host/ is omitted.\n//\t- if u.Host is non-empty and u.Path begins with a /,\n//\t   the form host/path does not add its own /.\n//\t- if u.RawQuery is empty, ?query is omitted.\n//\t- if u.Fragment is empty, #fragment is omitted.\nfunc Escape(u *url.URL) string {\n\tvar buf bytes.Buffer\n\tif u.Scheme != \"\" {\n\t\tbuf.WriteString(u.Scheme)\n\t\tbuf.WriteByte(':')\n\t}\n\tif u.Opaque != \"\" {\n\t\tbuf.WriteString(u.Opaque)\n\t} else {\n\t\tif u.Scheme != \"\" || u.Host != \"\" || u.User != nil {\n\t\t\tbuf.WriteString(\"//\")\n\t\t\tif ui := u.User; ui != nil {\n\t\t\t\tbuf.WriteString(unescapeUserinfo(ui.String()))\n\t\t\t\tbuf.WriteByte('@')\n\t\t\t}\n\t\t\tif h := u.Host; h != \"\" {\n\t\t\t\tbuf.WriteString(h)\n\t\t\t}\n\t\t}\n\t\tif u.Path != \"\" && u.Path[0] != '/' && u.Host != \"\" {\n\t\t\tbuf.WriteByte('/')\n\t\t}\n\t\tbuf.WriteString(escape(u.Path, encodePath))\n\t}\n\tif u.RawQuery != \"\" {\n\t\tbuf.WriteByte('?')\n\t\tbuf.WriteString(u.RawQuery)\n\t}\n\tif u.Fragment != \"\" {\n\t\tbuf.WriteByte('#')\n\t\tbuf.WriteString(escape(u.Fragment, encodeFragment))\n\t}\n\treturn buf.String()\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n.idea\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.iml\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.3.x\n  - 1.4.x\n  - 1.5.x\n  - 1.6.x\n  - 1.7.x\n  - 1.8.x\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - 1.12.x\n\ninstall: go get -v -t\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License."
  },
  {
    "path": "vendor/github.com/Unknwon/com/README.md",
    "content": "Common Functions\n================\n\n[![Build Status](https://travis-ci.org/unknwon/com.svg)](https://travis-ci.org/unknwon/com) [![Go Walker](http://gowalker.org/api/v1/badge)](http://gowalker.org/github.com/unknwon/com)\n\nThis is an open source project for commonly used functions for the Go programming language.\n\nThis package need >= **go 1.3**\n\nCode Convention: based on [Go Code Convention](https://github.com/unknwon/go-code-convention).\n\n## Contribute\n\nYour contribute is welcome, but you have to check following steps after you added some functions and commit them:\n\n1. Make sure you wrote user-friendly comments for **all functions** .\n2. Make sure you wrote test cases with any possible condition for **all functions** in file `*_test.go`.\n3. Make sure you wrote benchmarks for **all functions** in file `*_test.go`.\n4. Make sure you wrote useful examples for **all functions** in file `example_test.go`.\n5. Make sure you ran `go test` and got **PASS** .\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/cmd.go",
    "content": "// +build go1.3\n\n// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\n// Package com is an open source project for commonly used functions for the Go programming language.\npackage com\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os/exec\"\n\t\"runtime\"\n\t\"strings\"\n)\n\n// ExecCmdDirBytes executes system command in given directory\n// and return stdout, stderr in bytes type, along with possible error.\nfunc ExecCmdDirBytes(dir, cmdName string, args ...string) ([]byte, []byte, error) {\n\tbufOut := new(bytes.Buffer)\n\tbufErr := new(bytes.Buffer)\n\n\tcmd := exec.Command(cmdName, args...)\n\tcmd.Dir = dir\n\tcmd.Stdout = bufOut\n\tcmd.Stderr = bufErr\n\n\terr := cmd.Run()\n\treturn bufOut.Bytes(), bufErr.Bytes(), err\n}\n\n// ExecCmdBytes executes system command\n// and return stdout, stderr in bytes type, along with possible error.\nfunc ExecCmdBytes(cmdName string, args ...string) ([]byte, []byte, error) {\n\treturn ExecCmdDirBytes(\"\", cmdName, args...)\n}\n\n// ExecCmdDir executes system command in given directory\n// and return stdout, stderr in string type, along with possible error.\nfunc ExecCmdDir(dir, cmdName string, args ...string) (string, string, error) {\n\tbufOut, bufErr, err := ExecCmdDirBytes(dir, cmdName, args...)\n\treturn string(bufOut), string(bufErr), err\n}\n\n// ExecCmd executes system command\n// and return stdout, stderr in string type, along with possible error.\nfunc ExecCmd(cmdName string, args ...string) (string, string, error) {\n\treturn ExecCmdDir(\"\", cmdName, args...)\n}\n\n// _________        .__                 .____\n// \\_   ___ \\  ____ |  |   ___________  |    |    ____   ____\n// /    \\  \\/ /  _ \\|  |  /  _ \\_  __ \\ |    |   /  _ \\ / ___\\\n// \\     \\___(  <_> )  |_(  <_> )  | \\/ |    |__(  <_> ) /_/  >\n//  \\______  /\\____/|____/\\____/|__|    |_______ \\____/\\___  /\n//         \\/                                   \\/    /_____/\n\n// Color number constants.\nconst (\n\tGray = uint8(iota + 90)\n\tRed\n\tGreen\n\tYellow\n\tBlue\n\tMagenta\n\t//NRed      = uint8(31) // Normal\n\tEndColor = \"\\033[0m\"\n)\n\n// getColorLevel returns colored level string by given level.\nfunc getColorLevel(level string) string {\n\tlevel = strings.ToUpper(level)\n\tswitch level {\n\tcase \"TRAC\":\n\t\treturn fmt.Sprintf(\"\\033[%dm%s\\033[0m\", Blue, level)\n\tcase \"ERRO\":\n\t\treturn fmt.Sprintf(\"\\033[%dm%s\\033[0m\", Red, level)\n\tcase \"WARN\":\n\t\treturn fmt.Sprintf(\"\\033[%dm%s\\033[0m\", Magenta, level)\n\tcase \"SUCC\":\n\t\treturn fmt.Sprintf(\"\\033[%dm%s\\033[0m\", Green, level)\n\tdefault:\n\t\treturn level\n\t}\n}\n\n// ColorLogS colors log and return colored content.\n// Log format: <level> <content [highlight][path]> [ error ].\n// Level: TRAC -> blue; ERRO -> red; WARN -> Magenta; SUCC -> green; others -> default.\n// Content: default; path: yellow; error -> red.\n// Level has to be surrounded by \"[\" and \"]\".\n// Highlights have to be surrounded by \"# \" and \" #\"(space), \"#\" will be deleted.\n// Paths have to be surrounded by \"( \" and \" )\"(space).\n// Errors have to be surrounded by \"[ \" and \" ]\"(space).\n// Note: it hasn't support windows yet, contribute is welcome.\nfunc ColorLogS(format string, a ...interface{}) string {\n\tlog := fmt.Sprintf(format, a...)\n\n\tvar clog string\n\n\tif runtime.GOOS != \"windows\" {\n\t\t// Level.\n\t\ti := strings.Index(log, \"]\")\n\t\tif log[0] == '[' && i > -1 {\n\t\t\tclog += \"[\" + getColorLevel(log[1:i]) + \"]\"\n\t\t}\n\n\t\tlog = log[i+1:]\n\n\t\t// Error.\n\t\tlog = strings.Replace(log, \"[ \", fmt.Sprintf(\"[\\033[%dm\", Red), -1)\n\t\tlog = strings.Replace(log, \" ]\", EndColor+\"]\", -1)\n\n\t\t// Path.\n\t\tlog = strings.Replace(log, \"( \", fmt.Sprintf(\"(\\033[%dm\", Yellow), -1)\n\t\tlog = strings.Replace(log, \" )\", EndColor+\")\", -1)\n\n\t\t// Highlights.\n\t\tlog = strings.Replace(log, \"# \", fmt.Sprintf(\"\\033[%dm\", Gray), -1)\n\t\tlog = strings.Replace(log, \" #\", EndColor, -1)\n\n\t} else {\n\t\t// Level.\n\t\ti := strings.Index(log, \"]\")\n\t\tif log[0] == '[' && i > -1 {\n\t\t\tclog += \"[\" + log[1:i] + \"]\"\n\t\t}\n\n\t\tlog = log[i+1:]\n\n\t\t// Error.\n\t\tlog = strings.Replace(log, \"[ \", \"[\", -1)\n\t\tlog = strings.Replace(log, \" ]\", \"]\", -1)\n\n\t\t// Path.\n\t\tlog = strings.Replace(log, \"( \", \"(\", -1)\n\t\tlog = strings.Replace(log, \" )\", \")\", -1)\n\n\t\t// Highlights.\n\t\tlog = strings.Replace(log, \"# \", \"\", -1)\n\t\tlog = strings.Replace(log, \" #\", \"\", -1)\n\t}\n\treturn clog + log\n}\n\n// ColorLog prints colored log to stdout.\n// See color rules in function 'ColorLogS'.\nfunc ColorLog(format string, a ...interface{}) {\n\tfmt.Print(ColorLogS(format, a...))\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/convert.go",
    "content": "// Copyright 2014 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Convert string to specify type.\ntype StrTo string\n\nfunc (f StrTo) Exist() bool {\n\treturn string(f) != string(0x1E)\n}\n\nfunc (f StrTo) Uint8() (uint8, error) {\n\tv, err := strconv.ParseUint(f.String(), 10, 8)\n\treturn uint8(v), err\n}\n\nfunc (f StrTo) Int() (int, error) {\n\tv, err := strconv.ParseInt(f.String(), 10, 0)\n\treturn int(v), err\n}\n\nfunc (f StrTo) Int64() (int64, error) {\n\tv, err := strconv.ParseInt(f.String(), 10, 64)\n\treturn int64(v), err\n}\n\nfunc (f StrTo) Float64() (float64, error) {\n\tv, err := strconv.ParseFloat(f.String(), 64)\n\treturn float64(v), err\n}\n\nfunc (f StrTo) MustUint8() uint8 {\n\tv, _ := f.Uint8()\n\treturn v\n}\n\nfunc (f StrTo) MustInt() int {\n\tv, _ := f.Int()\n\treturn v\n}\n\nfunc (f StrTo) MustInt64() int64 {\n\tv, _ := f.Int64()\n\treturn v\n}\n\nfunc (f StrTo) MustFloat64() float64 {\n\tv, _ := f.Float64()\n\treturn v\n}\n\nfunc (f StrTo) String() string {\n\tif f.Exist() {\n\t\treturn string(f)\n\t}\n\treturn \"\"\n}\n\n// Convert any type to string.\nfunc ToStr(value interface{}, args ...int) (s string) {\n\tswitch v := value.(type) {\n\tcase bool:\n\t\ts = strconv.FormatBool(v)\n\tcase float32:\n\t\ts = strconv.FormatFloat(float64(v), 'f', argInt(args).Get(0, -1), argInt(args).Get(1, 32))\n\tcase float64:\n\t\ts = strconv.FormatFloat(v, 'f', argInt(args).Get(0, -1), argInt(args).Get(1, 64))\n\tcase int:\n\t\ts = strconv.FormatInt(int64(v), argInt(args).Get(0, 10))\n\tcase int8:\n\t\ts = strconv.FormatInt(int64(v), argInt(args).Get(0, 10))\n\tcase int16:\n\t\ts = strconv.FormatInt(int64(v), argInt(args).Get(0, 10))\n\tcase int32:\n\t\ts = strconv.FormatInt(int64(v), argInt(args).Get(0, 10))\n\tcase int64:\n\t\ts = strconv.FormatInt(v, argInt(args).Get(0, 10))\n\tcase uint:\n\t\ts = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10))\n\tcase uint8:\n\t\ts = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10))\n\tcase uint16:\n\t\ts = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10))\n\tcase uint32:\n\t\ts = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10))\n\tcase uint64:\n\t\ts = strconv.FormatUint(v, argInt(args).Get(0, 10))\n\tcase string:\n\t\ts = v\n\tcase []byte:\n\t\ts = string(v)\n\tdefault:\n\t\ts = fmt.Sprintf(\"%v\", v)\n\t}\n\treturn s\n}\n\ntype argInt []int\n\nfunc (a argInt) Get(i int, args ...int) (r int) {\n\tif i >= 0 && i < len(a) {\n\t\tr = a[i]\n\t} else if len(args) > 0 {\n\t\tr = args[0]\n\t}\n\treturn\n}\n\n// HexStr2int converts hex format string to decimal number.\nfunc HexStr2int(hexStr string) (int, error) {\n\tnum := 0\n\tlength := len(hexStr)\n\tfor i := 0; i < length; i++ {\n\t\tchar := hexStr[length-i-1]\n\t\tfactor := -1\n\n\t\tswitch {\n\t\tcase char >= '0' && char <= '9':\n\t\t\tfactor = int(char) - '0'\n\t\tcase char >= 'a' && char <= 'f':\n\t\t\tfactor = int(char) - 'a' + 10\n\t\tdefault:\n\t\t\treturn -1, fmt.Errorf(\"invalid hex: %s\", string(char))\n\t\t}\n\n\t\tnum += factor * PowInt(16, i)\n\t}\n\treturn num, nil\n}\n\n// Int2HexStr converts decimal number to hex format string.\nfunc Int2HexStr(num int) (hex string) {\n\tif num == 0 {\n\t\treturn \"0\"\n\t}\n\n\tfor num > 0 {\n\t\tr := num % 16\n\n\t\tc := \"?\"\n\t\tif r >= 0 && r <= 9 {\n\t\t\tc = string(r + '0')\n\t\t} else {\n\t\t\tc = string(r + 'a' - 10)\n\t\t}\n\t\thex = c + hex\n\t\tnum = num / 16\n\t}\n\treturn hex\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/dir.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path\"\n\t\"strings\"\n)\n\n// IsDir returns true if given path is a directory,\n// or returns false when it's a file or does not exist.\nfunc IsDir(dir string) bool {\n\tf, e := os.Stat(dir)\n\tif e != nil {\n\t\treturn false\n\t}\n\treturn f.IsDir()\n}\n\nfunc statDir(dirPath, recPath string, includeDir, isDirOnly, followSymlinks bool) ([]string, error) {\n\tdir, err := os.Open(dirPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer dir.Close()\n\n\tfis, err := dir.Readdir(0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstatList := make([]string, 0)\n\tfor _, fi := range fis {\n\t\tif strings.Contains(fi.Name(), \".DS_Store\") {\n\t\t\tcontinue\n\t\t}\n\n\t\trelPath := path.Join(recPath, fi.Name())\n\t\tcurPath := path.Join(dirPath, fi.Name())\n\t\tif fi.IsDir() {\n\t\t\tif includeDir {\n\t\t\t\tstatList = append(statList, relPath+\"/\")\n\t\t\t}\n\t\t\ts, err := statDir(curPath, relPath, includeDir, isDirOnly, followSymlinks)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tstatList = append(statList, s...)\n\t\t} else if !isDirOnly {\n\t\t\tstatList = append(statList, relPath)\n\t\t} else if followSymlinks && fi.Mode()&os.ModeSymlink != 0 {\n\t\t\tlink, err := os.Readlink(curPath)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif IsDir(link) {\n\t\t\t\tif includeDir {\n\t\t\t\t\tstatList = append(statList, relPath+\"/\")\n\t\t\t\t}\n\t\t\t\ts, err := statDir(curPath, relPath, includeDir, isDirOnly, followSymlinks)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tstatList = append(statList, s...)\n\t\t\t}\n\t\t}\n\t}\n\treturn statList, nil\n}\n\n// StatDir gathers information of given directory by depth-first.\n// It returns slice of file list and includes subdirectories if enabled;\n// it returns error and nil slice when error occurs in underlying functions,\n// or given path is not a directory or does not exist.\n//\n// Slice does not include given path itself.\n// If subdirectories is enabled, they will have suffix '/'.\nfunc StatDir(rootPath string, includeDir ...bool) ([]string, error) {\n\tif !IsDir(rootPath) {\n\t\treturn nil, errors.New(\"not a directory or does not exist: \" + rootPath)\n\t}\n\n\tisIncludeDir := false\n\tif len(includeDir) >= 1 {\n\t\tisIncludeDir = includeDir[0]\n\t}\n\treturn statDir(rootPath, \"\", isIncludeDir, false, false)\n}\n\n// LstatDir gathers information of given directory by depth-first.\n// It returns slice of file list, follows symbolic links and includes subdirectories if enabled;\n// it returns error and nil slice when error occurs in underlying functions,\n// or given path is not a directory or does not exist.\n//\n// Slice does not include given path itself.\n// If subdirectories is enabled, they will have suffix '/'.\nfunc LstatDir(rootPath string, includeDir ...bool) ([]string, error) {\n\tif !IsDir(rootPath) {\n\t\treturn nil, errors.New(\"not a directory or does not exist: \" + rootPath)\n\t}\n\n\tisIncludeDir := false\n\tif len(includeDir) >= 1 {\n\t\tisIncludeDir = includeDir[0]\n\t}\n\treturn statDir(rootPath, \"\", isIncludeDir, false, true)\n}\n\n// GetAllSubDirs returns all subdirectories of given root path.\n// Slice does not include given path itself.\nfunc GetAllSubDirs(rootPath string) ([]string, error) {\n\tif !IsDir(rootPath) {\n\t\treturn nil, errors.New(\"not a directory or does not exist: \" + rootPath)\n\t}\n\treturn statDir(rootPath, \"\", true, true, false)\n}\n\n// LgetAllSubDirs returns all subdirectories of given root path, including\n// following symbolic links, if any.\n// Slice does not include given path itself.\nfunc LgetAllSubDirs(rootPath string) ([]string, error) {\n\tif !IsDir(rootPath) {\n\t\treturn nil, errors.New(\"not a directory or does not exist: \" + rootPath)\n\t}\n\treturn statDir(rootPath, \"\", true, true, true)\n}\n\n// GetFileListBySuffix returns an ordered list of file paths.\n// It recognize if given path is a file, and don't do recursive find.\nfunc GetFileListBySuffix(dirPath, suffix string) ([]string, error) {\n\tif !IsExist(dirPath) {\n\t\treturn nil, fmt.Errorf(\"given path does not exist: %s\", dirPath)\n\t} else if IsFile(dirPath) {\n\t\treturn []string{dirPath}, nil\n\t}\n\n\t// Given path is a directory.\n\tdir, err := os.Open(dirPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfis, err := dir.Readdir(0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfiles := make([]string, 0, len(fis))\n\tfor _, fi := range fis {\n\t\tif strings.HasSuffix(fi.Name(), suffix) {\n\t\t\tfiles = append(files, path.Join(dirPath, fi.Name()))\n\t\t}\n\t}\n\n\treturn files, nil\n}\n\n// CopyDir copy files recursively from source to target directory.\n//\n// The filter accepts a function that process the path info.\n// and should return true for need to filter.\n//\n// It returns error when error occurs in underlying functions.\nfunc CopyDir(srcPath, destPath string, filters ...func(filePath string) bool) error {\n\t// Check if target directory exists.\n\tif IsExist(destPath) {\n\t\treturn errors.New(\"file or directory alreay exists: \" + destPath)\n\t}\n\n\terr := os.MkdirAll(destPath, os.ModePerm)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Gather directory info.\n\tinfos, err := StatDir(srcPath, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar filter func(filePath string) bool\n\tif len(filters) > 0 {\n\t\tfilter = filters[0]\n\t}\n\n\tfor _, info := range infos {\n\t\tif filter != nil && filter(info) {\n\t\t\tcontinue\n\t\t}\n\n\t\tcurPath := path.Join(destPath, info)\n\t\tif strings.HasSuffix(info, \"/\") {\n\t\t\terr = os.MkdirAll(curPath, os.ModePerm)\n\t\t} else {\n\t\t\terr = Copy(path.Join(srcPath, info), curPath)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/file.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math\"\n\t\"os\"\n\t\"path\"\n)\n\n// Storage unit constants.\nconst (\n\tByte  = 1\n\tKByte = Byte * 1024\n\tMByte = KByte * 1024\n\tGByte = MByte * 1024\n\tTByte = GByte * 1024\n\tPByte = TByte * 1024\n\tEByte = PByte * 1024\n)\n\nfunc logn(n, b float64) float64 {\n\treturn math.Log(n) / math.Log(b)\n}\n\nfunc humanateBytes(s uint64, base float64, sizes []string) string {\n\tif s < 10 {\n\t\treturn fmt.Sprintf(\"%dB\", s)\n\t}\n\te := math.Floor(logn(float64(s), base))\n\tsuffix := sizes[int(e)]\n\tval := float64(s) / math.Pow(base, math.Floor(e))\n\tf := \"%.0f\"\n\tif val < 10 {\n\t\tf = \"%.1f\"\n\t}\n\n\treturn fmt.Sprintf(f+\"%s\", val, suffix)\n}\n\n// HumaneFileSize calculates the file size and generate user-friendly string.\nfunc HumaneFileSize(s uint64) string {\n\tsizes := []string{\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\"}\n\treturn humanateBytes(s, 1024, sizes)\n}\n\n// FileMTime returns file modified time and possible error.\nfunc FileMTime(file string) (int64, error) {\n\tf, err := os.Stat(file)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn f.ModTime().Unix(), nil\n}\n\n// FileSize returns file size in bytes and possible error.\nfunc FileSize(file string) (int64, error) {\n\tf, err := os.Stat(file)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn f.Size(), nil\n}\n\n// Copy copies file from source to target path.\nfunc Copy(src, dest string) error {\n\t// Gather file information to set back later.\n\tsi, err := os.Lstat(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Handle symbolic link.\n\tif si.Mode()&os.ModeSymlink != 0 {\n\t\ttarget, err := os.Readlink(src)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// NOTE: os.Chmod and os.Chtimes don't recoganize symbolic link,\n\t\t// which will lead \"no such file or directory\" error.\n\t\treturn os.Symlink(target, dest)\n\t}\n\n\tsr, err := os.Open(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer sr.Close()\n\n\tdw, err := os.Create(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer dw.Close()\n\n\tif _, err = io.Copy(dw, sr); err != nil {\n\t\treturn err\n\t}\n\n\t// Set back file information.\n\tif err = os.Chtimes(dest, si.ModTime(), si.ModTime()); err != nil {\n\t\treturn err\n\t}\n\treturn os.Chmod(dest, si.Mode())\n}\n\n// WriteFile writes data to a file named by filename.\n// If the file does not exist, WriteFile creates it\n// and its upper level paths.\nfunc WriteFile(filename string, data []byte) error {\n\tos.MkdirAll(path.Dir(filename), os.ModePerm)\n\treturn ioutil.WriteFile(filename, data, 0655)\n}\n\n// IsFile returns true if given path is a file,\n// or returns false when it's a directory or does not exist.\nfunc IsFile(filePath string) bool {\n\tf, e := os.Stat(filePath)\n\tif e != nil {\n\t\treturn false\n\t}\n\treturn !f.IsDir()\n}\n\n// IsExist checks whether a file or directory exists.\n// It returns false when the file or directory does not exist.\nfunc IsExist(path string) bool {\n\t_, err := os.Stat(path)\n\treturn err == nil || os.IsExist(err)\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/html.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"html\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// Html2JS converts []byte type of HTML content into JS format.\nfunc Html2JS(data []byte) []byte {\n\ts := string(data)\n\ts = strings.Replace(s, `\\`, `\\\\`, -1)\n\ts = strings.Replace(s, \"\\n\", `\\n`, -1)\n\ts = strings.Replace(s, \"\\r\", \"\", -1)\n\ts = strings.Replace(s, \"\\\"\", `\\\"`, -1)\n\ts = strings.Replace(s, \"<table>\", \"&lt;table>\", -1)\n\treturn []byte(s)\n}\n\n// encode html chars to string\nfunc HtmlEncode(str string) string {\n\treturn html.EscapeString(str)\n}\n\n// HtmlDecode decodes string to html chars\nfunc HtmlDecode(str string) string {\n\treturn html.UnescapeString(str)\n}\n\n// strip tags in html string\nfunc StripTags(src string) string {\n\t//去除style,script,html tag\n\tre := regexp.MustCompile(`(?s)<(?:style|script)[^<>]*>.*?</(?:style|script)>|</?[a-z][a-z0-9]*[^<>]*>|<!--.*?-->`)\n\tsrc = re.ReplaceAllString(src, \"\")\n\n\t//trim all spaces(2+) into \\n\n\tre = regexp.MustCompile(`\\s{2,}`)\n\tsrc = re.ReplaceAllString(src, \"\\n\")\n\n\treturn strings.TrimSpace(src)\n}\n\n// change \\n to <br/>\nfunc Nl2br(str string) string {\n\treturn strings.Replace(str, \"\\n\", \"<br/>\", -1)\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/http.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"os\"\n\t\"path\"\n)\n\ntype NotFoundError struct {\n\tMessage string\n}\n\nfunc (e NotFoundError) Error() string {\n\treturn e.Message\n}\n\ntype RemoteError struct {\n\tHost string\n\tErr  error\n}\n\nfunc (e *RemoteError) Error() string {\n\treturn e.Err.Error()\n}\n\nvar UserAgent = \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1541.0 Safari/537.36\"\n\n// HttpCall makes HTTP method call.\nfunc HttpCall(client *http.Client, method, url string, header http.Header, body io.Reader) (io.ReadCloser, error) {\n\treq, err := http.NewRequest(method, url, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"User-Agent\", UserAgent)\n\tfor k, vs := range header {\n\t\treq.Header[k] = vs\n\t}\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif resp.StatusCode == 200 {\n\t\treturn resp.Body, nil\n\t}\n\tresp.Body.Close()\n\tif resp.StatusCode == 404 { // 403 can be rate limit error.  || resp.StatusCode == 403 {\n\t\terr = fmt.Errorf(\"resource not found: %s\", url)\n\t} else {\n\t\terr = fmt.Errorf(\"%s %s -> %d\", method, url, resp.StatusCode)\n\t}\n\treturn nil, err\n}\n\n// HttpGet gets the specified resource.\n// ErrNotFound is returned if the server responds with status 404.\nfunc HttpGet(client *http.Client, url string, header http.Header) (io.ReadCloser, error) {\n\treturn HttpCall(client, \"GET\", url, header, nil)\n}\n\n// HttpPost posts the specified resource.\n// ErrNotFound is returned if the server responds with status 404.\nfunc HttpPost(client *http.Client, url string, header http.Header, body []byte) (io.ReadCloser, error) {\n\treturn HttpCall(client, \"POST\", url, header, bytes.NewBuffer(body))\n}\n\n// HttpGetToFile gets the specified resource and writes to file.\n// ErrNotFound is returned if the server responds with status 404.\nfunc HttpGetToFile(client *http.Client, url string, header http.Header, fileName string) error {\n\trc, err := HttpGet(client, url, header)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer rc.Close()\n\n\tos.MkdirAll(path.Dir(fileName), os.ModePerm)\n\tf, err := os.Create(fileName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer f.Close()\n\t_, err = io.Copy(f, rc)\n\treturn err\n}\n\n// HttpGetBytes gets the specified resource. ErrNotFound is returned if the server\n// responds with status 404.\nfunc HttpGetBytes(client *http.Client, url string, header http.Header) ([]byte, error) {\n\trc, err := HttpGet(client, url, header)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer rc.Close()\n\treturn ioutil.ReadAll(rc)\n}\n\n// HttpGetJSON gets the specified resource and mapping to struct.\n// ErrNotFound is returned if the server responds with status 404.\nfunc HttpGetJSON(client *http.Client, url string, v interface{}) error {\n\trc, err := HttpGet(client, url, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer rc.Close()\n\terr = json.NewDecoder(rc).Decode(v)\n\tif _, ok := err.(*json.SyntaxError); ok {\n\t\treturn fmt.Errorf(\"JSON syntax error at %s\", url)\n\t}\n\treturn nil\n}\n\n// HttpPostJSON posts the specified resource with struct values,\n// and maps results to struct.\n// ErrNotFound is returned if the server responds with status 404.\nfunc HttpPostJSON(client *http.Client, url string, body, v interface{}) error {\n\tdata, err := json.Marshal(body)\n\tif err != nil {\n\t\treturn err\n\t}\n\trc, err := HttpPost(client, url, http.Header{\"content-type\": []string{\"application/json\"}}, data)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer rc.Close()\n\terr = json.NewDecoder(rc).Decode(v)\n\tif _, ok := err.(*json.SyntaxError); ok {\n\t\treturn fmt.Errorf(\"JSON syntax error at %s\", url)\n\t}\n\treturn nil\n}\n\n// A RawFile describes a file that can be downloaded.\ntype RawFile interface {\n\tName() string\n\tRawUrl() string\n\tData() []byte\n\tSetData([]byte)\n}\n\n// FetchFiles fetches files specified by the rawURL field in parallel.\nfunc FetchFiles(client *http.Client, files []RawFile, header http.Header) error {\n\tch := make(chan error, len(files))\n\tfor i := range files {\n\t\tgo func(i int) {\n\t\t\tp, err := HttpGetBytes(client, files[i].RawUrl(), nil)\n\t\t\tif err != nil {\n\t\t\t\tch <- err\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfiles[i].SetData(p)\n\t\t\tch <- nil\n\t\t}(i)\n\t}\n\tfor _ = range files {\n\t\tif err := <-ch; err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// FetchFilesCurl uses command `curl` to fetch files specified by the rawURL field in parallel.\nfunc FetchFilesCurl(files []RawFile, curlOptions ...string) error {\n\tch := make(chan error, len(files))\n\tfor i := range files {\n\t\tgo func(i int) {\n\t\t\tstdout, _, err := ExecCmd(\"curl\", append(curlOptions, files[i].RawUrl())...)\n\t\t\tif err != nil {\n\t\t\t\tch <- err\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfiles[i].SetData([]byte(stdout))\n\t\t\tch <- nil\n\t\t}(i)\n\t}\n\tfor _ = range files {\n\t\tif err := <-ch; err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/math.go",
    "content": "// Copyright 2014 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\n// PowInt is int type of math.Pow function.\nfunc PowInt(x int, y int) int {\n\tif y <= 0 {\n\t\treturn 1\n\t} else {\n\t\tif y%2 == 0 {\n\t\t\tsqrt := PowInt(x, y/2)\n\t\t\treturn sqrt * sqrt\n\t\t} else {\n\t\t\treturn PowInt(x, y-1) * x\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/path.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n)\n\n// GetGOPATHs returns all paths in GOPATH variable.\nfunc GetGOPATHs() []string {\n\tgopath := os.Getenv(\"GOPATH\")\n\tvar paths []string\n\tif runtime.GOOS == \"windows\" {\n\t\tgopath = strings.Replace(gopath, \"\\\\\", \"/\", -1)\n\t\tpaths = strings.Split(gopath, \";\")\n\t} else {\n\t\tpaths = strings.Split(gopath, \":\")\n\t}\n\treturn paths\n}\n\n// GetSrcPath returns app. source code path.\n// It only works when you have src. folder in GOPATH,\n// it returns error not able to locate source folder path.\nfunc GetSrcPath(importPath string) (appPath string, err error) {\n\tpaths := GetGOPATHs()\n\tfor _, p := range paths {\n\t\tif IsExist(p + \"/src/\" + importPath + \"/\") {\n\t\t\tappPath = p + \"/src/\" + importPath + \"/\"\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif len(appPath) == 0 {\n\t\treturn \"\", errors.New(\"Unable to locate source folder path\")\n\t}\n\n\tappPath = filepath.Dir(appPath) + \"/\"\n\tif runtime.GOOS == \"windows\" {\n\t\t// Replace all '\\' to '/'.\n\t\tappPath = strings.Replace(appPath, \"\\\\\", \"/\", -1)\n\t}\n\n\treturn appPath, nil\n}\n\n// HomeDir returns path of '~'(in Linux) on Windows,\n// it returns error when the variable does not exist.\nfunc HomeDir() (home string, err error) {\n\tif runtime.GOOS == \"windows\" {\n\t\thome = os.Getenv(\"USERPROFILE\")\n\t\tif len(home) == 0 {\n\t\t\thome = os.Getenv(\"HOMEDRIVE\") + os.Getenv(\"HOMEPATH\")\n\t\t}\n\t} else {\n\t\thome = os.Getenv(\"HOME\")\n\t}\n\n\tif len(home) == 0 {\n\t\treturn \"\", errors.New(\"Cannot specify home directory because it's empty\")\n\t}\n\n\treturn home, nil\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/regex.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport \"regexp\"\n\nconst (\n\tregex_email_pattern        = `(?i)[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\\.)+[A-Z]{2,6}`\n\tregex_strict_email_pattern = `(?i)[A-Z0-9!#$%&'*+/=?^_{|}~-]+` +\n\t\t`(?:\\.[A-Z0-9!#$%&'*+/=?^_{|}~-]+)*` +\n\t\t`@(?:[A-Z0-9](?:[A-Z0-9-]*[A-Z0-9])?\\.)+` +\n\t\t`[A-Z0-9](?:[A-Z0-9-]*[A-Z0-9])?`\n\tregex_url_pattern = `(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?`\n)\n\nvar (\n\tregex_email        *regexp.Regexp\n\tregex_strict_email *regexp.Regexp\n\tregex_url          *regexp.Regexp\n)\n\nfunc init() {\n\tregex_email = regexp.MustCompile(regex_email_pattern)\n\tregex_strict_email = regexp.MustCompile(regex_strict_email_pattern)\n\tregex_url = regexp.MustCompile(regex_url_pattern)\n}\n\n// IsEmail validates string is an email address, if not return false\n// basically validation can match 99% cases\nfunc IsEmail(email string) bool {\n\treturn regex_email.MatchString(email)\n}\n\n// IsEmailRFC validates string is an email address, if not return false\n// this validation omits RFC 2822\nfunc IsEmailRFC(email string) bool {\n\treturn regex_strict_email.MatchString(email)\n}\n\n// IsUrl validates string is a url link, if not return false\n// simple validation can match 99% cases\nfunc IsUrl(url string) bool {\n\treturn regex_url.MatchString(url)\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/slice.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"strings\"\n)\n\n// AppendStr appends string to slice with no duplicates.\nfunc AppendStr(strs []string, str string) []string {\n\tfor _, s := range strs {\n\t\tif s == str {\n\t\t\treturn strs\n\t\t}\n\t}\n\treturn append(strs, str)\n}\n\n// CompareSliceStr compares two 'string' type slices.\n// It returns true if elements and order are both the same.\nfunc CompareSliceStr(s1, s2 []string) bool {\n\tif len(s1) != len(s2) {\n\t\treturn false\n\t}\n\n\tfor i := range s1 {\n\t\tif s1[i] != s2[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// CompareSliceStrU compares two 'string' type slices.\n// It returns true if elements are the same, and ignores the order.\nfunc CompareSliceStrU(s1, s2 []string) bool {\n\tif len(s1) != len(s2) {\n\t\treturn false\n\t}\n\n\tfor i := range s1 {\n\t\tfor j := len(s2) - 1; j >= 0; j-- {\n\t\t\tif s1[i] == s2[j] {\n\t\t\t\ts2 = append(s2[:j], s2[j+1:]...)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif len(s2) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// IsSliceContainsStr returns true if the string exists in given slice, ignore case.\nfunc IsSliceContainsStr(sl []string, str string) bool {\n\tstr = strings.ToLower(str)\n\tfor _, s := range sl {\n\t\tif strings.ToLower(s) == str {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsSliceContainsInt64 returns true if the int64 exists in given slice.\nfunc IsSliceContainsInt64(sl []int64, i int64) bool {\n\tfor _, s := range sl {\n\t\tif s == i {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/string.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"bytes\"\n\t\"crypto/aes\"\n\t\"crypto/cipher\"\n\t\"crypto/rand\"\n\t\"errors\"\n\tr \"math/rand\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// AESGCMEncrypt encrypts plaintext with the given key using AES in GCM mode.\nfunc AESGCMEncrypt(key, plaintext []byte) ([]byte, error) {\n\tblock, err := aes.NewCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgcm, err := cipher.NewGCM(block)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnonce := make([]byte, gcm.NonceSize())\n\tif _, err := rand.Read(nonce); err != nil {\n\t\treturn nil, err\n\t}\n\n\tciphertext := gcm.Seal(nil, nonce, plaintext, nil)\n\treturn append(nonce, ciphertext...), nil\n}\n\n// AESGCMDecrypt decrypts ciphertext with the given key using AES in GCM mode.\nfunc AESGCMDecrypt(key, ciphertext []byte) ([]byte, error) {\n\tblock, err := aes.NewCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgcm, err := cipher.NewGCM(block)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsize := gcm.NonceSize()\n\tif len(ciphertext)-size <= 0 {\n\t\treturn nil, errors.New(\"Ciphertext is empty\")\n\t}\n\n\tnonce := ciphertext[:size]\n\tciphertext = ciphertext[size:]\n\n\tplainText, err := gcm.Open(nil, nonce, ciphertext, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn plainText, nil\n}\n\n// IsLetter returns true if the 'l' is an English letter.\nfunc IsLetter(l uint8) bool {\n\tn := (l | 0x20) - 'a'\n\tif n >= 0 && n < 26 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Expand replaces {k} in template with match[k] or subs[atoi(k)] if k is not in match.\nfunc Expand(template string, match map[string]string, subs ...string) string {\n\tvar p []byte\n\tvar i int\n\tfor {\n\t\ti = strings.Index(template, \"{\")\n\t\tif i < 0 {\n\t\t\tbreak\n\t\t}\n\t\tp = append(p, template[:i]...)\n\t\ttemplate = template[i+1:]\n\t\ti = strings.Index(template, \"}\")\n\t\tif s, ok := match[template[:i]]; ok {\n\t\t\tp = append(p, s...)\n\t\t} else {\n\t\t\tj, _ := strconv.Atoi(template[:i])\n\t\t\tif j >= len(subs) {\n\t\t\t\tp = append(p, []byte(\"Missing\")...)\n\t\t\t} else {\n\t\t\t\tp = append(p, subs[j]...)\n\t\t\t}\n\t\t}\n\t\ttemplate = template[i+1:]\n\t}\n\tp = append(p, template...)\n\treturn string(p)\n}\n\n// Reverse s string, support unicode\nfunc Reverse(s string) string {\n\tn := len(s)\n\trunes := make([]rune, n)\n\tfor _, rune := range s {\n\t\tn--\n\t\trunes[n] = rune\n\t}\n\treturn string(runes[n:])\n}\n\n// RandomCreateBytes generate random []byte by specify chars.\nfunc RandomCreateBytes(n int, alphabets ...byte) []byte {\n\tconst alphanum = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"\n\tvar bytes = make([]byte, n)\n\tvar randby bool\n\tif num, err := rand.Read(bytes); num != n || err != nil {\n\t\tr.Seed(time.Now().UnixNano())\n\t\trandby = true\n\t}\n\tfor i, b := range bytes {\n\t\tif len(alphabets) == 0 {\n\t\t\tif randby {\n\t\t\t\tbytes[i] = alphanum[r.Intn(len(alphanum))]\n\t\t\t} else {\n\t\t\t\tbytes[i] = alphanum[b%byte(len(alphanum))]\n\t\t\t}\n\t\t} else {\n\t\t\tif randby {\n\t\t\t\tbytes[i] = alphabets[r.Intn(len(alphabets))]\n\t\t\t} else {\n\t\t\t\tbytes[i] = alphabets[b%byte(len(alphabets))]\n\t\t\t}\n\t\t}\n\t}\n\treturn bytes\n}\n\n// ToSnakeCase can convert all upper case characters in a string to\n// underscore format.\n//\n// Some samples.\n//     \"FirstName\"  => \"first_name\"\n//     \"HTTPServer\" => \"http_server\"\n//     \"NoHTTPS\"    => \"no_https\"\n//     \"GO_PATH\"    => \"go_path\"\n//     \"GO PATH\"    => \"go_path\"      // space is converted to underscore.\n//     \"GO-PATH\"    => \"go_path\"      // hyphen is converted to underscore.\n//\n// From https://github.com/huandu/xstrings\nfunc ToSnakeCase(str string) string {\n\tif len(str) == 0 {\n\t\treturn \"\"\n\t}\n\n\tbuf := &bytes.Buffer{}\n\tvar prev, r0, r1 rune\n\tvar size int\n\n\tr0 = '_'\n\n\tfor len(str) > 0 {\n\t\tprev = r0\n\t\tr0, size = utf8.DecodeRuneInString(str)\n\t\tstr = str[size:]\n\n\t\tswitch {\n\t\tcase r0 == utf8.RuneError:\n\t\t\tbuf.WriteByte(byte(str[0]))\n\n\t\tcase unicode.IsUpper(r0):\n\t\t\tif prev != '_' {\n\t\t\t\tbuf.WriteRune('_')\n\t\t\t}\n\n\t\t\tbuf.WriteRune(unicode.ToLower(r0))\n\n\t\t\tif len(str) == 0 {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tr0, size = utf8.DecodeRuneInString(str)\n\t\t\tstr = str[size:]\n\n\t\t\tif !unicode.IsUpper(r0) {\n\t\t\t\tbuf.WriteRune(r0)\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// find next non-upper-case character and insert `_` properly.\n\t\t\t// it's designed to convert `HTTPServer` to `http_server`.\n\t\t\t// if there are more than 2 adjacent upper case characters in a word,\n\t\t\t// treat them as an abbreviation plus a normal word.\n\t\t\tfor len(str) > 0 {\n\t\t\t\tr1 = r0\n\t\t\t\tr0, size = utf8.DecodeRuneInString(str)\n\t\t\t\tstr = str[size:]\n\n\t\t\t\tif r0 == utf8.RuneError {\n\t\t\t\t\tbuf.WriteRune(unicode.ToLower(r1))\n\t\t\t\t\tbuf.WriteByte(byte(str[0]))\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tif !unicode.IsUpper(r0) {\n\t\t\t\t\tif r0 == '_' || r0 == ' ' || r0 == '-' {\n\t\t\t\t\t\tr0 = '_'\n\n\t\t\t\t\t\tbuf.WriteRune(unicode.ToLower(r1))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuf.WriteRune('_')\n\t\t\t\t\t\tbuf.WriteRune(unicode.ToLower(r1))\n\t\t\t\t\t\tbuf.WriteRune(r0)\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tbuf.WriteRune(unicode.ToLower(r1))\n\t\t\t}\n\n\t\t\tif len(str) == 0 || r0 == '_' {\n\t\t\t\tbuf.WriteRune(unicode.ToLower(r0))\n\t\t\t\tbreak\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif r0 == ' ' || r0 == '-' {\n\t\t\t\tr0 = '_'\n\t\t\t}\n\n\t\t\tbuf.WriteRune(r0)\n\t\t}\n\t}\n\n\treturn buf.String()\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/time.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Format unix time int64 to string\nfunc Date(ti int64, format string) string {\n\tt := time.Unix(int64(ti), 0)\n\treturn DateT(t, format)\n}\n\n// Format unix time string to string\nfunc DateS(ts string, format string) string {\n\ti, _ := strconv.ParseInt(ts, 10, 64)\n\treturn Date(i, format)\n}\n\n// Format time.Time struct to string\n// MM - month - 01\n// M - month - 1, single bit\n// DD - day - 02\n// D - day 2\n// YYYY - year - 2006\n// YY - year - 06\n// HH - 24 hours - 03\n// H - 24 hours - 3\n// hh - 12 hours - 03\n// h - 12 hours - 3\n// mm - minute - 04\n// m - minute - 4\n// ss - second - 05\n// s - second = 5\nfunc DateT(t time.Time, format string) string {\n\tres := strings.Replace(format, \"MM\", t.Format(\"01\"), -1)\n\tres = strings.Replace(res, \"M\", t.Format(\"1\"), -1)\n\tres = strings.Replace(res, \"DD\", t.Format(\"02\"), -1)\n\tres = strings.Replace(res, \"D\", t.Format(\"2\"), -1)\n\tres = strings.Replace(res, \"YYYY\", t.Format(\"2006\"), -1)\n\tres = strings.Replace(res, \"YY\", t.Format(\"06\"), -1)\n\tres = strings.Replace(res, \"HH\", fmt.Sprintf(\"%02d\", t.Hour()), -1)\n\tres = strings.Replace(res, \"H\", fmt.Sprintf(\"%d\", t.Hour()), -1)\n\tres = strings.Replace(res, \"hh\", t.Format(\"03\"), -1)\n\tres = strings.Replace(res, \"h\", t.Format(\"3\"), -1)\n\tres = strings.Replace(res, \"mm\", t.Format(\"04\"), -1)\n\tres = strings.Replace(res, \"m\", t.Format(\"4\"), -1)\n\tres = strings.Replace(res, \"ss\", t.Format(\"05\"), -1)\n\tres = strings.Replace(res, \"s\", t.Format(\"5\"), -1)\n\treturn res\n}\n\n// DateFormat pattern rules.\nvar datePatterns = []string{\n\t// year\n\t\"Y\", \"2006\", // A full numeric representation of a year, 4 digits   Examples: 1999 or 2003\n\t\"y\", \"06\", //A two digit representation of a year   Examples: 99 or 03\n\n\t// month\n\t\"m\", \"01\", // Numeric representation of a month, with leading zeros 01 through 12\n\t\"n\", \"1\", // Numeric representation of a month, without leading zeros   1 through 12\n\t\"M\", \"Jan\", // A short textual representation of a month, three letters Jan through Dec\n\t\"F\", \"January\", // A full textual representation of a month, such as January or March   January through December\n\n\t// day\n\t\"d\", \"02\", // Day of the month, 2 digits with leading zeros 01 to 31\n\t\"j\", \"2\", // Day of the month without leading zeros 1 to 31\n\n\t// week\n\t\"D\", \"Mon\", // A textual representation of a day, three letters Mon through Sun\n\t\"l\", \"Monday\", // A full textual representation of the day of the week  Sunday through Saturday\n\n\t// time\n\t\"g\", \"3\", // 12-hour format of an hour without leading zeros    1 through 12\n\t\"G\", \"15\", // 24-hour format of an hour without leading zeros   0 through 23\n\t\"h\", \"03\", // 12-hour format of an hour with leading zeros  01 through 12\n\t\"H\", \"15\", // 24-hour format of an hour with leading zeros  00 through 23\n\n\t\"a\", \"pm\", // Lowercase Ante meridiem and Post meridiem am or pm\n\t\"A\", \"PM\", // Uppercase Ante meridiem and Post meridiem AM or PM\n\n\t\"i\", \"04\", // Minutes with leading zeros    00 to 59\n\t\"s\", \"05\", // Seconds, with leading zeros   00 through 59\n\n\t// time zone\n\t\"T\", \"MST\",\n\t\"P\", \"-07:00\",\n\t\"O\", \"-0700\",\n\n\t// RFC 2822\n\t\"r\", time.RFC1123Z,\n}\n\n// Parse Date use PHP time format.\nfunc DateParse(dateString, format string) (time.Time, error) {\n\treplacer := strings.NewReplacer(datePatterns...)\n\tformat = replacer.Replace(format)\n\treturn time.ParseInLocation(format, dateString, time.Local)\n}\n"
  },
  {
    "path": "vendor/github.com/Unknwon/com/url.go",
    "content": "// Copyright 2013 com authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage com\n\nimport (\n\t\"encoding/base64\"\n\t\"net/url\"\n)\n\n// url encode string, is + not %20\nfunc UrlEncode(str string) string {\n\treturn url.QueryEscape(str)\n}\n\n// url decode string\nfunc UrlDecode(str string) (string, error) {\n\treturn url.QueryUnescape(str)\n}\n\n// base64 encode\nfunc Base64Encode(str string) string {\n\treturn base64.StdEncoding.EncodeToString([]byte(str))\n}\n\n// base64 decode\nfunc Base64Decode(str string) (string, error) {\n\ts, e := base64.StdEncoding.DecodeString(str)\n\treturn string(s), e\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/LICENSE",
    "content": "Copyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/README.md",
    "content": "# Go's `text/template` package with newline elision\n\nThis is a fork of Go 1.4's [text/template](http://golang.org/pkg/text/template/) package with one addition: a backslash immediately after a closing delimiter will delete all subsequent newlines until a non-newline.\n\neg.\n\n```\n{{if true}}\\\nhello\n{{end}}\\\n```\n\nWill result in:\n\n```\nhello\\n\n```\n\nRather than:\n\n```\n\\n\nhello\\n\n\\n\n```\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/doc.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/*\nPackage template implements data-driven templates for generating textual output.\n\nTo generate HTML output, see package html/template, which has the same interface\nas this package but automatically secures HTML output against certain attacks.\n\nTemplates are executed by applying them to a data structure. Annotations in the\ntemplate refer to elements of the data structure (typically a field of a struct\nor a key in a map) to control execution and derive values to be displayed.\nExecution of the template walks the structure and sets the cursor, represented\nby a period '.' and called \"dot\", to the value at the current location in the\nstructure as execution proceeds.\n\nThe input text for a template is UTF-8-encoded text in any format.\n\"Actions\"--data evaluations or control structures--are delimited by\n\"{{\" and \"}}\"; all text outside actions is copied to the output unchanged.\nActions may not span newlines, although comments can.\n\nOnce parsed, a template may be executed safely in parallel.\n\nHere is a trivial example that prints \"17 items are made of wool\".\n\n\ttype Inventory struct {\n\t\tMaterial string\n\t\tCount    uint\n\t}\n\tsweaters := Inventory{\"wool\", 17}\n\ttmpl, err := template.New(\"test\").Parse(\"{{.Count}} items are made of {{.Material}}\")\n\tif err != nil { panic(err) }\n\terr = tmpl.Execute(os.Stdout, sweaters)\n\tif err != nil { panic(err) }\n\nMore intricate examples appear below.\n\nActions\n\nHere is the list of actions. \"Arguments\" and \"pipelines\" are evaluations of\ndata, defined in detail below.\n\n*/\n//\t{{/* a comment */}}\n//\t\tA comment; discarded. May contain newlines.\n//\t\tComments do not nest and must start and end at the\n//\t\tdelimiters, as shown here.\n/*\n\n\t{{pipeline}}\n\t\tThe default textual representation of the value of the pipeline\n\t\tis copied to the output.\n\n\t{{if pipeline}} T1 {{end}}\n\t\tIf the value of the pipeline is empty, no output is generated;\n\t\totherwise, T1 is executed.  The empty values are false, 0, any\n\t\tnil pointer or interface value, and any array, slice, map, or\n\t\tstring of length zero.\n\t\tDot is unaffected.\n\n\t{{if pipeline}} T1 {{else}} T0 {{end}}\n\t\tIf the value of the pipeline is empty, T0 is executed;\n\t\totherwise, T1 is executed.  Dot is unaffected.\n\n\t{{if pipeline}} T1 {{else if pipeline}} T0 {{end}}\n\t\tTo simplify the appearance of if-else chains, the else action\n\t\tof an if may include another if directly; the effect is exactly\n\t\tthe same as writing\n\t\t\t{{if pipeline}} T1 {{else}}{{if pipeline}} T0 {{end}}{{end}}\n\n\t{{range pipeline}} T1 {{end}}\n\t\tThe value of the pipeline must be an array, slice, map, or channel.\n\t\tIf the value of the pipeline has length zero, nothing is output;\n\t\totherwise, dot is set to the successive elements of the array,\n\t\tslice, or map and T1 is executed. If the value is a map and the\n\t\tkeys are of basic type with a defined order (\"comparable\"), the\n\t\telements will be visited in sorted key order.\n\n\t{{range pipeline}} T1 {{else}} T0 {{end}}\n\t\tThe value of the pipeline must be an array, slice, map, or channel.\n\t\tIf the value of the pipeline has length zero, dot is unaffected and\n\t\tT0 is executed; otherwise, dot is set to the successive elements\n\t\tof the array, slice, or map and T1 is executed.\n\n\t{{template \"name\"}}\n\t\tThe template with the specified name is executed with nil data.\n\n\t{{template \"name\" pipeline}}\n\t\tThe template with the specified name is executed with dot set\n\t\tto the value of the pipeline.\n\n\t{{with pipeline}} T1 {{end}}\n\t\tIf the value of the pipeline is empty, no output is generated;\n\t\totherwise, dot is set to the value of the pipeline and T1 is\n\t\texecuted.\n\n\t{{with pipeline}} T1 {{else}} T0 {{end}}\n\t\tIf the value of the pipeline is empty, dot is unaffected and T0\n\t\tis executed; otherwise, dot is set to the value of the pipeline\n\t\tand T1 is executed.\n\nArguments\n\nAn argument is a simple value, denoted by one of the following.\n\n\t- A boolean, string, character, integer, floating-point, imaginary\n\t  or complex constant in Go syntax. These behave like Go's untyped\n\t  constants, although raw strings may not span newlines.\n\t- The keyword nil, representing an untyped Go nil.\n\t- The character '.' (period):\n\t\t.\n\t  The result is the value of dot.\n\t- A variable name, which is a (possibly empty) alphanumeric string\n\t  preceded by a dollar sign, such as\n\t\t$piOver2\n\t  or\n\t\t$\n\t  The result is the value of the variable.\n\t  Variables are described below.\n\t- The name of a field of the data, which must be a struct, preceded\n\t  by a period, such as\n\t\t.Field\n\t  The result is the value of the field. Field invocations may be\n\t  chained:\n\t    .Field1.Field2\n\t  Fields can also be evaluated on variables, including chaining:\n\t    $x.Field1.Field2\n\t- The name of a key of the data, which must be a map, preceded\n\t  by a period, such as\n\t\t.Key\n\t  The result is the map element value indexed by the key.\n\t  Key invocations may be chained and combined with fields to any\n\t  depth:\n\t    .Field1.Key1.Field2.Key2\n\t  Although the key must be an alphanumeric identifier, unlike with\n\t  field names they do not need to start with an upper case letter.\n\t  Keys can also be evaluated on variables, including chaining:\n\t    $x.key1.key2\n\t- The name of a niladic method of the data, preceded by a period,\n\t  such as\n\t\t.Method\n\t  The result is the value of invoking the method with dot as the\n\t  receiver, dot.Method(). Such a method must have one return value (of\n\t  any type) or two return values, the second of which is an error.\n\t  If it has two and the returned error is non-nil, execution terminates\n\t  and an error is returned to the caller as the value of Execute.\n\t  Method invocations may be chained and combined with fields and keys\n\t  to any depth:\n\t    .Field1.Key1.Method1.Field2.Key2.Method2\n\t  Methods can also be evaluated on variables, including chaining:\n\t    $x.Method1.Field\n\t- The name of a niladic function, such as\n\t\tfun\n\t  The result is the value of invoking the function, fun(). The return\n\t  types and values behave as in methods. Functions and function\n\t  names are described below.\n\t- A parenthesized instance of one the above, for grouping. The result\n\t  may be accessed by a field or map key invocation.\n\t\tprint (.F1 arg1) (.F2 arg2)\n\t\t(.StructValuedMethod \"arg\").Field\n\nArguments may evaluate to any type; if they are pointers the implementation\nautomatically indirects to the base type when required.\nIf an evaluation yields a function value, such as a function-valued\nfield of a struct, the function is not invoked automatically, but it\ncan be used as a truth value for an if action and the like. To invoke\nit, use the call function, defined below.\n\nA pipeline is a possibly chained sequence of \"commands\". A command is a simple\nvalue (argument) or a function or method call, possibly with multiple arguments:\n\n\tArgument\n\t\tThe result is the value of evaluating the argument.\n\t.Method [Argument...]\n\t\tThe method can be alone or the last element of a chain but,\n\t\tunlike methods in the middle of a chain, it can take arguments.\n\t\tThe result is the value of calling the method with the\n\t\targuments:\n\t\t\tdot.Method(Argument1, etc.)\n\tfunctionName [Argument...]\n\t\tThe result is the value of calling the function associated\n\t\twith the name:\n\t\t\tfunction(Argument1, etc.)\n\t\tFunctions and function names are described below.\n\nPipelines\n\nA pipeline may be \"chained\" by separating a sequence of commands with pipeline\ncharacters '|'. In a chained pipeline, the result of the each command is\npassed as the last argument of the following command. The output of the final\ncommand in the pipeline is the value of the pipeline.\n\nThe output of a command will be either one value or two values, the second of\nwhich has type error. If that second value is present and evaluates to\nnon-nil, execution terminates and the error is returned to the caller of\nExecute.\n\nVariables\n\nA pipeline inside an action may initialize a variable to capture the result.\nThe initialization has syntax\n\n\t$variable := pipeline\n\nwhere $variable is the name of the variable. An action that declares a\nvariable produces no output.\n\nIf a \"range\" action initializes a variable, the variable is set to the\nsuccessive elements of the iteration.  Also, a \"range\" may declare two\nvariables, separated by a comma:\n\n\trange $index, $element := pipeline\n\nin which case $index and $element are set to the successive values of the\narray/slice index or map key and element, respectively.  Note that if there is\nonly one variable, it is assigned the element; this is opposite to the\nconvention in Go range clauses.\n\nA variable's scope extends to the \"end\" action of the control structure (\"if\",\n\"with\", or \"range\") in which it is declared, or to the end of the template if\nthere is no such control structure.  A template invocation does not inherit\nvariables from the point of its invocation.\n\nWhen execution begins, $ is set to the data argument passed to Execute, that is,\nto the starting value of dot.\n\nExamples\n\nHere are some example one-line templates demonstrating pipelines and variables.\nAll produce the quoted word \"output\":\n\n\t{{\"\\\"output\\\"\"}}\n\t\tA string constant.\n\t{{`\"output\"`}}\n\t\tA raw string constant.\n\t{{printf \"%q\" \"output\"}}\n\t\tA function call.\n\t{{\"output\" | printf \"%q\"}}\n\t\tA function call whose final argument comes from the previous\n\t\tcommand.\n\t{{printf \"%q\" (print \"out\" \"put\")}}\n\t\tA parenthesized argument.\n\t{{\"put\" | printf \"%s%s\" \"out\" | printf \"%q\"}}\n\t\tA more elaborate call.\n\t{{\"output\" | printf \"%s\" | printf \"%q\"}}\n\t\tA longer chain.\n\t{{with \"output\"}}{{printf \"%q\" .}}{{end}}\n\t\tA with action using dot.\n\t{{with $x := \"output\" | printf \"%q\"}}{{$x}}{{end}}\n\t\tA with action that creates and uses a variable.\n\t{{with $x := \"output\"}}{{printf \"%q\" $x}}{{end}}\n\t\tA with action that uses the variable in another action.\n\t{{with $x := \"output\"}}{{$x | printf \"%q\"}}{{end}}\n\t\tThe same, but pipelined.\n\nFunctions\n\nDuring execution functions are found in two function maps: first in the\ntemplate, then in the global function map. By default, no functions are defined\nin the template but the Funcs method can be used to add them.\n\nPredefined global functions are named as follows.\n\n\tand\n\t\tReturns the boolean AND of its arguments by returning the\n\t\tfirst empty argument or the last argument, that is,\n\t\t\"and x y\" behaves as \"if x then y else x\". All the\n\t\targuments are evaluated.\n\tcall\n\t\tReturns the result of calling the first argument, which\n\t\tmust be a function, with the remaining arguments as parameters.\n\t\tThus \"call .X.Y 1 2\" is, in Go notation, dot.X.Y(1, 2) where\n\t\tY is a func-valued field, map entry, or the like.\n\t\tThe first argument must be the result of an evaluation\n\t\tthat yields a value of function type (as distinct from\n\t\ta predefined function such as print). The function must\n\t\treturn either one or two result values, the second of which\n\t\tis of type error. If the arguments don't match the function\n\t\tor the returned error value is non-nil, execution stops.\n\thtml\n\t\tReturns the escaped HTML equivalent of the textual\n\t\trepresentation of its arguments.\n\tindex\n\t\tReturns the result of indexing its first argument by the\n\t\tfollowing arguments. Thus \"index x 1 2 3\" is, in Go syntax,\n\t\tx[1][2][3]. Each indexed item must be a map, slice, or array.\n\tjs\n\t\tReturns the escaped JavaScript equivalent of the textual\n\t\trepresentation of its arguments.\n\tlen\n\t\tReturns the integer length of its argument.\n\tnot\n\t\tReturns the boolean negation of its single argument.\n\tor\n\t\tReturns the boolean OR of its arguments by returning the\n\t\tfirst non-empty argument or the last argument, that is,\n\t\t\"or x y\" behaves as \"if x then x else y\". All the\n\t\targuments are evaluated.\n\tprint\n\t\tAn alias for fmt.Sprint\n\tprintf\n\t\tAn alias for fmt.Sprintf\n\tprintln\n\t\tAn alias for fmt.Sprintln\n\turlquery\n\t\tReturns the escaped value of the textual representation of\n\t\tits arguments in a form suitable for embedding in a URL query.\n\nThe boolean functions take any zero value to be false and a non-zero\nvalue to be true.\n\nThere is also a set of binary comparison operators defined as\nfunctions:\n\n\teq\n\t\tReturns the boolean truth of arg1 == arg2\n\tne\n\t\tReturns the boolean truth of arg1 != arg2\n\tlt\n\t\tReturns the boolean truth of arg1 < arg2\n\tle\n\t\tReturns the boolean truth of arg1 <= arg2\n\tgt\n\t\tReturns the boolean truth of arg1 > arg2\n\tge\n\t\tReturns the boolean truth of arg1 >= arg2\n\nFor simpler multi-way equality tests, eq (only) accepts two or more\narguments and compares the second and subsequent to the first,\nreturning in effect\n\n\targ1==arg2 || arg1==arg3 || arg1==arg4 ...\n\n(Unlike with || in Go, however, eq is a function call and all the\narguments will be evaluated.)\n\nThe comparison functions work on basic types only (or named basic\ntypes, such as \"type Celsius float32\"). They implement the Go rules\nfor comparison of values, except that size and exact type are\nignored, so any integer value, signed or unsigned, may be compared\nwith any other integer value. (The arithmetic value is compared,\nnot the bit pattern, so all negative integers are less than all\nunsigned integers.) However, as usual, one may not compare an int\nwith a float32 and so on.\n\nAssociated templates\n\nEach template is named by a string specified when it is created. Also, each\ntemplate is associated with zero or more other templates that it may invoke by\nname; such associations are transitive and form a name space of templates.\n\nA template may use a template invocation to instantiate another associated\ntemplate; see the explanation of the \"template\" action above. The name must be\nthat of a template associated with the template that contains the invocation.\n\nNested template definitions\n\nWhen parsing a template, another template may be defined and associated with the\ntemplate being parsed. Template definitions must appear at the top level of the\ntemplate, much like global variables in a Go program.\n\nThe syntax of such definitions is to surround each template declaration with a\n\"define\" and \"end\" action.\n\nThe define action names the template being created by providing a string\nconstant. Here is a simple example:\n\n\t`{{define \"T1\"}}ONE{{end}}\n\t{{define \"T2\"}}TWO{{end}}\n\t{{define \"T3\"}}{{template \"T1\"}} {{template \"T2\"}}{{end}}\n\t{{template \"T3\"}}`\n\nThis defines two templates, T1 and T2, and a third T3 that invokes the other two\nwhen it is executed. Finally it invokes T3. If executed this template will\nproduce the text\n\n\tONE TWO\n\nBy construction, a template may reside in only one association. If it's\nnecessary to have a template addressable from multiple associations, the\ntemplate definition must be parsed multiple times to create distinct *Template\nvalues, or must be copied with the Clone or AddParseTree method.\n\nParse may be called multiple times to assemble the various associated templates;\nsee the ParseFiles and ParseGlob functions and methods for simple ways to parse\nrelated templates stored in files.\n\nA template may be executed directly or through ExecuteTemplate, which executes\nan associated template identified by name. To invoke our example above, we\nmight write,\n\n\terr := tmpl.Execute(os.Stdout, \"no data needed\")\n\tif err != nil {\n\t\tlog.Fatalf(\"execution failed: %s\", err)\n\t}\n\nor to invoke a particular template explicitly by name,\n\n\terr := tmpl.ExecuteTemplate(os.Stdout, \"T2\", \"no data needed\")\n\tif err != nil {\n\t\tlog.Fatalf(\"execution failed: %s\", err)\n\t}\n\n*/\npackage template\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/exec.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage template\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/alecthomas/template/parse\"\n)\n\n// state represents the state of an execution. It's not part of the\n// template so that multiple executions of the same template\n// can execute in parallel.\ntype state struct {\n\ttmpl *Template\n\twr   io.Writer\n\tnode parse.Node // current node, for errors\n\tvars []variable // push-down stack of variable values.\n}\n\n// variable holds the dynamic value of a variable such as $, $x etc.\ntype variable struct {\n\tname  string\n\tvalue reflect.Value\n}\n\n// push pushes a new variable on the stack.\nfunc (s *state) push(name string, value reflect.Value) {\n\ts.vars = append(s.vars, variable{name, value})\n}\n\n// mark returns the length of the variable stack.\nfunc (s *state) mark() int {\n\treturn len(s.vars)\n}\n\n// pop pops the variable stack up to the mark.\nfunc (s *state) pop(mark int) {\n\ts.vars = s.vars[0:mark]\n}\n\n// setVar overwrites the top-nth variable on the stack. Used by range iterations.\nfunc (s *state) setVar(n int, value reflect.Value) {\n\ts.vars[len(s.vars)-n].value = value\n}\n\n// varValue returns the value of the named variable.\nfunc (s *state) varValue(name string) reflect.Value {\n\tfor i := s.mark() - 1; i >= 0; i-- {\n\t\tif s.vars[i].name == name {\n\t\t\treturn s.vars[i].value\n\t\t}\n\t}\n\ts.errorf(\"undefined variable: %s\", name)\n\treturn zero\n}\n\nvar zero reflect.Value\n\n// at marks the state to be on node n, for error reporting.\nfunc (s *state) at(node parse.Node) {\n\ts.node = node\n}\n\n// doublePercent returns the string with %'s replaced by %%, if necessary,\n// so it can be used safely inside a Printf format string.\nfunc doublePercent(str string) string {\n\tif strings.Contains(str, \"%\") {\n\t\tstr = strings.Replace(str, \"%\", \"%%\", -1)\n\t}\n\treturn str\n}\n\n// errorf formats the error and terminates processing.\nfunc (s *state) errorf(format string, args ...interface{}) {\n\tname := doublePercent(s.tmpl.Name())\n\tif s.node == nil {\n\t\tformat = fmt.Sprintf(\"template: %s: %s\", name, format)\n\t} else {\n\t\tlocation, context := s.tmpl.ErrorContext(s.node)\n\t\tformat = fmt.Sprintf(\"template: %s: executing %q at <%s>: %s\", location, name, doublePercent(context), format)\n\t}\n\tpanic(fmt.Errorf(format, args...))\n}\n\n// errRecover is the handler that turns panics into returns from the top\n// level of Parse.\nfunc errRecover(errp *error) {\n\te := recover()\n\tif e != nil {\n\t\tswitch err := e.(type) {\n\t\tcase runtime.Error:\n\t\t\tpanic(e)\n\t\tcase error:\n\t\t\t*errp = err\n\t\tdefault:\n\t\t\tpanic(e)\n\t\t}\n\t}\n}\n\n// ExecuteTemplate applies the template associated with t that has the given name\n// to the specified data object and writes the output to wr.\n// If an error occurs executing the template or writing its output,\n// execution stops, but partial results may already have been written to\n// the output writer.\n// A template may be executed safely in parallel.\nfunc (t *Template) ExecuteTemplate(wr io.Writer, name string, data interface{}) error {\n\ttmpl := t.tmpl[name]\n\tif tmpl == nil {\n\t\treturn fmt.Errorf(\"template: no template %q associated with template %q\", name, t.name)\n\t}\n\treturn tmpl.Execute(wr, data)\n}\n\n// Execute applies a parsed template to the specified data object,\n// and writes the output to wr.\n// If an error occurs executing the template or writing its output,\n// execution stops, but partial results may already have been written to\n// the output writer.\n// A template may be executed safely in parallel.\nfunc (t *Template) Execute(wr io.Writer, data interface{}) (err error) {\n\tdefer errRecover(&err)\n\tvalue := reflect.ValueOf(data)\n\tstate := &state{\n\t\ttmpl: t,\n\t\twr:   wr,\n\t\tvars: []variable{{\"$\", value}},\n\t}\n\tt.init()\n\tif t.Tree == nil || t.Root == nil {\n\t\tvar b bytes.Buffer\n\t\tfor name, tmpl := range t.tmpl {\n\t\t\tif tmpl.Tree == nil || tmpl.Root == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif b.Len() > 0 {\n\t\t\t\tb.WriteString(\", \")\n\t\t\t}\n\t\t\tfmt.Fprintf(&b, \"%q\", name)\n\t\t}\n\t\tvar s string\n\t\tif b.Len() > 0 {\n\t\t\ts = \"; defined templates are: \" + b.String()\n\t\t}\n\t\tstate.errorf(\"%q is an incomplete or empty template%s\", t.Name(), s)\n\t}\n\tstate.walk(value, t.Root)\n\treturn\n}\n\n// Walk functions step through the major pieces of the template structure,\n// generating output as they go.\nfunc (s *state) walk(dot reflect.Value, node parse.Node) {\n\ts.at(node)\n\tswitch node := node.(type) {\n\tcase *parse.ActionNode:\n\t\t// Do not pop variables so they persist until next end.\n\t\t// Also, if the action declares variables, don't print the result.\n\t\tval := s.evalPipeline(dot, node.Pipe)\n\t\tif len(node.Pipe.Decl) == 0 {\n\t\t\ts.printValue(node, val)\n\t\t}\n\tcase *parse.IfNode:\n\t\ts.walkIfOrWith(parse.NodeIf, dot, node.Pipe, node.List, node.ElseList)\n\tcase *parse.ListNode:\n\t\tfor _, node := range node.Nodes {\n\t\t\ts.walk(dot, node)\n\t\t}\n\tcase *parse.RangeNode:\n\t\ts.walkRange(dot, node)\n\tcase *parse.TemplateNode:\n\t\ts.walkTemplate(dot, node)\n\tcase *parse.TextNode:\n\t\tif _, err := s.wr.Write(node.Text); err != nil {\n\t\t\ts.errorf(\"%s\", err)\n\t\t}\n\tcase *parse.WithNode:\n\t\ts.walkIfOrWith(parse.NodeWith, dot, node.Pipe, node.List, node.ElseList)\n\tdefault:\n\t\ts.errorf(\"unknown node: %s\", node)\n\t}\n}\n\n// walkIfOrWith walks an 'if' or 'with' node. The two control structures\n// are identical in behavior except that 'with' sets dot.\nfunc (s *state) walkIfOrWith(typ parse.NodeType, dot reflect.Value, pipe *parse.PipeNode, list, elseList *parse.ListNode) {\n\tdefer s.pop(s.mark())\n\tval := s.evalPipeline(dot, pipe)\n\ttruth, ok := isTrue(val)\n\tif !ok {\n\t\ts.errorf(\"if/with can't use %v\", val)\n\t}\n\tif truth {\n\t\tif typ == parse.NodeWith {\n\t\t\ts.walk(val, list)\n\t\t} else {\n\t\t\ts.walk(dot, list)\n\t\t}\n\t} else if elseList != nil {\n\t\ts.walk(dot, elseList)\n\t}\n}\n\n// isTrue reports whether the value is 'true', in the sense of not the zero of its type,\n// and whether the value has a meaningful truth value.\nfunc isTrue(val reflect.Value) (truth, ok bool) {\n\tif !val.IsValid() {\n\t\t// Something like var x interface{}, never set. It's a form of nil.\n\t\treturn false, true\n\t}\n\tswitch val.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\ttruth = val.Len() > 0\n\tcase reflect.Bool:\n\t\ttruth = val.Bool()\n\tcase reflect.Complex64, reflect.Complex128:\n\t\ttruth = val.Complex() != 0\n\tcase reflect.Chan, reflect.Func, reflect.Ptr, reflect.Interface:\n\t\ttruth = !val.IsNil()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\ttruth = val.Int() != 0\n\tcase reflect.Float32, reflect.Float64:\n\t\ttruth = val.Float() != 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\ttruth = val.Uint() != 0\n\tcase reflect.Struct:\n\t\ttruth = true // Struct values are always true.\n\tdefault:\n\t\treturn\n\t}\n\treturn truth, true\n}\n\nfunc (s *state) walkRange(dot reflect.Value, r *parse.RangeNode) {\n\ts.at(r)\n\tdefer s.pop(s.mark())\n\tval, _ := indirect(s.evalPipeline(dot, r.Pipe))\n\t// mark top of stack before any variables in the body are pushed.\n\tmark := s.mark()\n\toneIteration := func(index, elem reflect.Value) {\n\t\t// Set top var (lexically the second if there are two) to the element.\n\t\tif len(r.Pipe.Decl) > 0 {\n\t\t\ts.setVar(1, elem)\n\t\t}\n\t\t// Set next var (lexically the first if there are two) to the index.\n\t\tif len(r.Pipe.Decl) > 1 {\n\t\t\ts.setVar(2, index)\n\t\t}\n\t\ts.walk(elem, r.List)\n\t\ts.pop(mark)\n\t}\n\tswitch val.Kind() {\n\tcase reflect.Array, reflect.Slice:\n\t\tif val.Len() == 0 {\n\t\t\tbreak\n\t\t}\n\t\tfor i := 0; i < val.Len(); i++ {\n\t\t\toneIteration(reflect.ValueOf(i), val.Index(i))\n\t\t}\n\t\treturn\n\tcase reflect.Map:\n\t\tif val.Len() == 0 {\n\t\t\tbreak\n\t\t}\n\t\tfor _, key := range sortKeys(val.MapKeys()) {\n\t\t\toneIteration(key, val.MapIndex(key))\n\t\t}\n\t\treturn\n\tcase reflect.Chan:\n\t\tif val.IsNil() {\n\t\t\tbreak\n\t\t}\n\t\ti := 0\n\t\tfor ; ; i++ {\n\t\t\telem, ok := val.Recv()\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\toneIteration(reflect.ValueOf(i), elem)\n\t\t}\n\t\tif i == 0 {\n\t\t\tbreak\n\t\t}\n\t\treturn\n\tcase reflect.Invalid:\n\t\tbreak // An invalid value is likely a nil map, etc. and acts like an empty map.\n\tdefault:\n\t\ts.errorf(\"range can't iterate over %v\", val)\n\t}\n\tif r.ElseList != nil {\n\t\ts.walk(dot, r.ElseList)\n\t}\n}\n\nfunc (s *state) walkTemplate(dot reflect.Value, t *parse.TemplateNode) {\n\ts.at(t)\n\ttmpl := s.tmpl.tmpl[t.Name]\n\tif tmpl == nil {\n\t\ts.errorf(\"template %q not defined\", t.Name)\n\t}\n\t// Variables declared by the pipeline persist.\n\tdot = s.evalPipeline(dot, t.Pipe)\n\tnewState := *s\n\tnewState.tmpl = tmpl\n\t// No dynamic scoping: template invocations inherit no variables.\n\tnewState.vars = []variable{{\"$\", dot}}\n\tnewState.walk(dot, tmpl.Root)\n}\n\n// Eval functions evaluate pipelines, commands, and their elements and extract\n// values from the data structure by examining fields, calling methods, and so on.\n// The printing of those values happens only through walk functions.\n\n// evalPipeline returns the value acquired by evaluating a pipeline. If the\n// pipeline has a variable declaration, the variable will be pushed on the\n// stack. Callers should therefore pop the stack after they are finished\n// executing commands depending on the pipeline value.\nfunc (s *state) evalPipeline(dot reflect.Value, pipe *parse.PipeNode) (value reflect.Value) {\n\tif pipe == nil {\n\t\treturn\n\t}\n\ts.at(pipe)\n\tfor _, cmd := range pipe.Cmds {\n\t\tvalue = s.evalCommand(dot, cmd, value) // previous value is this one's final arg.\n\t\t// If the object has type interface{}, dig down one level to the thing inside.\n\t\tif value.Kind() == reflect.Interface && value.Type().NumMethod() == 0 {\n\t\t\tvalue = reflect.ValueOf(value.Interface()) // lovely!\n\t\t}\n\t}\n\tfor _, variable := range pipe.Decl {\n\t\ts.push(variable.Ident[0], value)\n\t}\n\treturn value\n}\n\nfunc (s *state) notAFunction(args []parse.Node, final reflect.Value) {\n\tif len(args) > 1 || final.IsValid() {\n\t\ts.errorf(\"can't give argument to non-function %s\", args[0])\n\t}\n}\n\nfunc (s *state) evalCommand(dot reflect.Value, cmd *parse.CommandNode, final reflect.Value) reflect.Value {\n\tfirstWord := cmd.Args[0]\n\tswitch n := firstWord.(type) {\n\tcase *parse.FieldNode:\n\t\treturn s.evalFieldNode(dot, n, cmd.Args, final)\n\tcase *parse.ChainNode:\n\t\treturn s.evalChainNode(dot, n, cmd.Args, final)\n\tcase *parse.IdentifierNode:\n\t\t// Must be a function.\n\t\treturn s.evalFunction(dot, n, cmd, cmd.Args, final)\n\tcase *parse.PipeNode:\n\t\t// Parenthesized pipeline. The arguments are all inside the pipeline; final is ignored.\n\t\treturn s.evalPipeline(dot, n)\n\tcase *parse.VariableNode:\n\t\treturn s.evalVariableNode(dot, n, cmd.Args, final)\n\t}\n\ts.at(firstWord)\n\ts.notAFunction(cmd.Args, final)\n\tswitch word := firstWord.(type) {\n\tcase *parse.BoolNode:\n\t\treturn reflect.ValueOf(word.True)\n\tcase *parse.DotNode:\n\t\treturn dot\n\tcase *parse.NilNode:\n\t\ts.errorf(\"nil is not a command\")\n\tcase *parse.NumberNode:\n\t\treturn s.idealConstant(word)\n\tcase *parse.StringNode:\n\t\treturn reflect.ValueOf(word.Text)\n\t}\n\ts.errorf(\"can't evaluate command %q\", firstWord)\n\tpanic(\"not reached\")\n}\n\n// idealConstant is called to return the value of a number in a context where\n// we don't know the type. In that case, the syntax of the number tells us\n// its type, and we use Go rules to resolve.  Note there is no such thing as\n// a uint ideal constant in this situation - the value must be of int type.\nfunc (s *state) idealConstant(constant *parse.NumberNode) reflect.Value {\n\t// These are ideal constants but we don't know the type\n\t// and we have no context.  (If it was a method argument,\n\t// we'd know what we need.) The syntax guides us to some extent.\n\ts.at(constant)\n\tswitch {\n\tcase constant.IsComplex:\n\t\treturn reflect.ValueOf(constant.Complex128) // incontrovertible.\n\tcase constant.IsFloat && !isHexConstant(constant.Text) && strings.IndexAny(constant.Text, \".eE\") >= 0:\n\t\treturn reflect.ValueOf(constant.Float64)\n\tcase constant.IsInt:\n\t\tn := int(constant.Int64)\n\t\tif int64(n) != constant.Int64 {\n\t\t\ts.errorf(\"%s overflows int\", constant.Text)\n\t\t}\n\t\treturn reflect.ValueOf(n)\n\tcase constant.IsUint:\n\t\ts.errorf(\"%s overflows int\", constant.Text)\n\t}\n\treturn zero\n}\n\nfunc isHexConstant(s string) bool {\n\treturn len(s) > 2 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X')\n}\n\nfunc (s *state) evalFieldNode(dot reflect.Value, field *parse.FieldNode, args []parse.Node, final reflect.Value) reflect.Value {\n\ts.at(field)\n\treturn s.evalFieldChain(dot, dot, field, field.Ident, args, final)\n}\n\nfunc (s *state) evalChainNode(dot reflect.Value, chain *parse.ChainNode, args []parse.Node, final reflect.Value) reflect.Value {\n\ts.at(chain)\n\t// (pipe).Field1.Field2 has pipe as .Node, fields as .Field. Eval the pipeline, then the fields.\n\tpipe := s.evalArg(dot, nil, chain.Node)\n\tif len(chain.Field) == 0 {\n\t\ts.errorf(\"internal error: no fields in evalChainNode\")\n\t}\n\treturn s.evalFieldChain(dot, pipe, chain, chain.Field, args, final)\n}\n\nfunc (s *state) evalVariableNode(dot reflect.Value, variable *parse.VariableNode, args []parse.Node, final reflect.Value) reflect.Value {\n\t// $x.Field has $x as the first ident, Field as the second. Eval the var, then the fields.\n\ts.at(variable)\n\tvalue := s.varValue(variable.Ident[0])\n\tif len(variable.Ident) == 1 {\n\t\ts.notAFunction(args, final)\n\t\treturn value\n\t}\n\treturn s.evalFieldChain(dot, value, variable, variable.Ident[1:], args, final)\n}\n\n// evalFieldChain evaluates .X.Y.Z possibly followed by arguments.\n// dot is the environment in which to evaluate arguments, while\n// receiver is the value being walked along the chain.\nfunc (s *state) evalFieldChain(dot, receiver reflect.Value, node parse.Node, ident []string, args []parse.Node, final reflect.Value) reflect.Value {\n\tn := len(ident)\n\tfor i := 0; i < n-1; i++ {\n\t\treceiver = s.evalField(dot, ident[i], node, nil, zero, receiver)\n\t}\n\t// Now if it's a method, it gets the arguments.\n\treturn s.evalField(dot, ident[n-1], node, args, final, receiver)\n}\n\nfunc (s *state) evalFunction(dot reflect.Value, node *parse.IdentifierNode, cmd parse.Node, args []parse.Node, final reflect.Value) reflect.Value {\n\ts.at(node)\n\tname := node.Ident\n\tfunction, ok := findFunction(name, s.tmpl)\n\tif !ok {\n\t\ts.errorf(\"%q is not a defined function\", name)\n\t}\n\treturn s.evalCall(dot, function, cmd, name, args, final)\n}\n\n// evalField evaluates an expression like (.Field) or (.Field arg1 arg2).\n// The 'final' argument represents the return value from the preceding\n// value of the pipeline, if any.\nfunc (s *state) evalField(dot reflect.Value, fieldName string, node parse.Node, args []parse.Node, final, receiver reflect.Value) reflect.Value {\n\tif !receiver.IsValid() {\n\t\treturn zero\n\t}\n\ttyp := receiver.Type()\n\treceiver, _ = indirect(receiver)\n\t// Unless it's an interface, need to get to a value of type *T to guarantee\n\t// we see all methods of T and *T.\n\tptr := receiver\n\tif ptr.Kind() != reflect.Interface && ptr.CanAddr() {\n\t\tptr = ptr.Addr()\n\t}\n\tif method := ptr.MethodByName(fieldName); method.IsValid() {\n\t\treturn s.evalCall(dot, method, node, fieldName, args, final)\n\t}\n\thasArgs := len(args) > 1 || final.IsValid()\n\t// It's not a method; must be a field of a struct or an element of a map. The receiver must not be nil.\n\treceiver, isNil := indirect(receiver)\n\tif isNil {\n\t\ts.errorf(\"nil pointer evaluating %s.%s\", typ, fieldName)\n\t}\n\tswitch receiver.Kind() {\n\tcase reflect.Struct:\n\t\ttField, ok := receiver.Type().FieldByName(fieldName)\n\t\tif ok {\n\t\t\tfield := receiver.FieldByIndex(tField.Index)\n\t\t\tif tField.PkgPath != \"\" { // field is unexported\n\t\t\t\ts.errorf(\"%s is an unexported field of struct type %s\", fieldName, typ)\n\t\t\t}\n\t\t\t// If it's a function, we must call it.\n\t\t\tif hasArgs {\n\t\t\t\ts.errorf(\"%s has arguments but cannot be invoked as function\", fieldName)\n\t\t\t}\n\t\t\treturn field\n\t\t}\n\t\ts.errorf(\"%s is not a field of struct type %s\", fieldName, typ)\n\tcase reflect.Map:\n\t\t// If it's a map, attempt to use the field name as a key.\n\t\tnameVal := reflect.ValueOf(fieldName)\n\t\tif nameVal.Type().AssignableTo(receiver.Type().Key()) {\n\t\t\tif hasArgs {\n\t\t\t\ts.errorf(\"%s is not a method but has arguments\", fieldName)\n\t\t\t}\n\t\t\treturn receiver.MapIndex(nameVal)\n\t\t}\n\t}\n\ts.errorf(\"can't evaluate field %s in type %s\", fieldName, typ)\n\tpanic(\"not reached\")\n}\n\nvar (\n\terrorType       = reflect.TypeOf((*error)(nil)).Elem()\n\tfmtStringerType = reflect.TypeOf((*fmt.Stringer)(nil)).Elem()\n)\n\n// evalCall executes a function or method call. If it's a method, fun already has the receiver bound, so\n// it looks just like a function call.  The arg list, if non-nil, includes (in the manner of the shell), arg[0]\n// as the function itself.\nfunc (s *state) evalCall(dot, fun reflect.Value, node parse.Node, name string, args []parse.Node, final reflect.Value) reflect.Value {\n\tif args != nil {\n\t\targs = args[1:] // Zeroth arg is function name/node; not passed to function.\n\t}\n\ttyp := fun.Type()\n\tnumIn := len(args)\n\tif final.IsValid() {\n\t\tnumIn++\n\t}\n\tnumFixed := len(args)\n\tif typ.IsVariadic() {\n\t\tnumFixed = typ.NumIn() - 1 // last arg is the variadic one.\n\t\tif numIn < numFixed {\n\t\t\ts.errorf(\"wrong number of args for %s: want at least %d got %d\", name, typ.NumIn()-1, len(args))\n\t\t}\n\t} else if numIn < typ.NumIn()-1 || !typ.IsVariadic() && numIn != typ.NumIn() {\n\t\ts.errorf(\"wrong number of args for %s: want %d got %d\", name, typ.NumIn(), len(args))\n\t}\n\tif !goodFunc(typ) {\n\t\t// TODO: This could still be a confusing error; maybe goodFunc should provide info.\n\t\ts.errorf(\"can't call method/function %q with %d results\", name, typ.NumOut())\n\t}\n\t// Build the arg list.\n\targv := make([]reflect.Value, numIn)\n\t// Args must be evaluated. Fixed args first.\n\ti := 0\n\tfor ; i < numFixed && i < len(args); i++ {\n\t\targv[i] = s.evalArg(dot, typ.In(i), args[i])\n\t}\n\t// Now the ... args.\n\tif typ.IsVariadic() {\n\t\targType := typ.In(typ.NumIn() - 1).Elem() // Argument is a slice.\n\t\tfor ; i < len(args); i++ {\n\t\t\targv[i] = s.evalArg(dot, argType, args[i])\n\t\t}\n\t}\n\t// Add final value if necessary.\n\tif final.IsValid() {\n\t\tt := typ.In(typ.NumIn() - 1)\n\t\tif typ.IsVariadic() {\n\t\t\tt = t.Elem()\n\t\t}\n\t\targv[i] = s.validateType(final, t)\n\t}\n\tresult := fun.Call(argv)\n\t// If we have an error that is not nil, stop execution and return that error to the caller.\n\tif len(result) == 2 && !result[1].IsNil() {\n\t\ts.at(node)\n\t\ts.errorf(\"error calling %s: %s\", name, result[1].Interface().(error))\n\t}\n\treturn result[0]\n}\n\n// canBeNil reports whether an untyped nil can be assigned to the type. See reflect.Zero.\nfunc canBeNil(typ reflect.Type) bool {\n\tswitch typ.Kind() {\n\tcase reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// validateType guarantees that the value is valid and assignable to the type.\nfunc (s *state) validateType(value reflect.Value, typ reflect.Type) reflect.Value {\n\tif !value.IsValid() {\n\t\tif typ == nil || canBeNil(typ) {\n\t\t\t// An untyped nil interface{}. Accept as a proper nil value.\n\t\t\treturn reflect.Zero(typ)\n\t\t}\n\t\ts.errorf(\"invalid value; expected %s\", typ)\n\t}\n\tif typ != nil && !value.Type().AssignableTo(typ) {\n\t\tif value.Kind() == reflect.Interface && !value.IsNil() {\n\t\t\tvalue = value.Elem()\n\t\t\tif value.Type().AssignableTo(typ) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\t// fallthrough\n\t\t}\n\t\t// Does one dereference or indirection work? We could do more, as we\n\t\t// do with method receivers, but that gets messy and method receivers\n\t\t// are much more constrained, so it makes more sense there than here.\n\t\t// Besides, one is almost always all you need.\n\t\tswitch {\n\t\tcase value.Kind() == reflect.Ptr && value.Type().Elem().AssignableTo(typ):\n\t\t\tvalue = value.Elem()\n\t\t\tif !value.IsValid() {\n\t\t\t\ts.errorf(\"dereference of nil pointer of type %s\", typ)\n\t\t\t}\n\t\tcase reflect.PtrTo(value.Type()).AssignableTo(typ) && value.CanAddr():\n\t\t\tvalue = value.Addr()\n\t\tdefault:\n\t\t\ts.errorf(\"wrong type for value; expected %s; got %s\", typ, value.Type())\n\t\t}\n\t}\n\treturn value\n}\n\nfunc (s *state) evalArg(dot reflect.Value, typ reflect.Type, n parse.Node) reflect.Value {\n\ts.at(n)\n\tswitch arg := n.(type) {\n\tcase *parse.DotNode:\n\t\treturn s.validateType(dot, typ)\n\tcase *parse.NilNode:\n\t\tif canBeNil(typ) {\n\t\t\treturn reflect.Zero(typ)\n\t\t}\n\t\ts.errorf(\"cannot assign nil to %s\", typ)\n\tcase *parse.FieldNode:\n\t\treturn s.validateType(s.evalFieldNode(dot, arg, []parse.Node{n}, zero), typ)\n\tcase *parse.VariableNode:\n\t\treturn s.validateType(s.evalVariableNode(dot, arg, nil, zero), typ)\n\tcase *parse.PipeNode:\n\t\treturn s.validateType(s.evalPipeline(dot, arg), typ)\n\tcase *parse.IdentifierNode:\n\t\treturn s.evalFunction(dot, arg, arg, nil, zero)\n\tcase *parse.ChainNode:\n\t\treturn s.validateType(s.evalChainNode(dot, arg, nil, zero), typ)\n\t}\n\tswitch typ.Kind() {\n\tcase reflect.Bool:\n\t\treturn s.evalBool(typ, n)\n\tcase reflect.Complex64, reflect.Complex128:\n\t\treturn s.evalComplex(typ, n)\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn s.evalFloat(typ, n)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn s.evalInteger(typ, n)\n\tcase reflect.Interface:\n\t\tif typ.NumMethod() == 0 {\n\t\t\treturn s.evalEmptyInterface(dot, n)\n\t\t}\n\tcase reflect.String:\n\t\treturn s.evalString(typ, n)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn s.evalUnsignedInteger(typ, n)\n\t}\n\ts.errorf(\"can't handle %s for arg of type %s\", n, typ)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalBool(typ reflect.Type, n parse.Node) reflect.Value {\n\ts.at(n)\n\tif n, ok := n.(*parse.BoolNode); ok {\n\t\tvalue := reflect.New(typ).Elem()\n\t\tvalue.SetBool(n.True)\n\t\treturn value\n\t}\n\ts.errorf(\"expected bool; found %s\", n)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalString(typ reflect.Type, n parse.Node) reflect.Value {\n\ts.at(n)\n\tif n, ok := n.(*parse.StringNode); ok {\n\t\tvalue := reflect.New(typ).Elem()\n\t\tvalue.SetString(n.Text)\n\t\treturn value\n\t}\n\ts.errorf(\"expected string; found %s\", n)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalInteger(typ reflect.Type, n parse.Node) reflect.Value {\n\ts.at(n)\n\tif n, ok := n.(*parse.NumberNode); ok && n.IsInt {\n\t\tvalue := reflect.New(typ).Elem()\n\t\tvalue.SetInt(n.Int64)\n\t\treturn value\n\t}\n\ts.errorf(\"expected integer; found %s\", n)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalUnsignedInteger(typ reflect.Type, n parse.Node) reflect.Value {\n\ts.at(n)\n\tif n, ok := n.(*parse.NumberNode); ok && n.IsUint {\n\t\tvalue := reflect.New(typ).Elem()\n\t\tvalue.SetUint(n.Uint64)\n\t\treturn value\n\t}\n\ts.errorf(\"expected unsigned integer; found %s\", n)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalFloat(typ reflect.Type, n parse.Node) reflect.Value {\n\ts.at(n)\n\tif n, ok := n.(*parse.NumberNode); ok && n.IsFloat {\n\t\tvalue := reflect.New(typ).Elem()\n\t\tvalue.SetFloat(n.Float64)\n\t\treturn value\n\t}\n\ts.errorf(\"expected float; found %s\", n)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalComplex(typ reflect.Type, n parse.Node) reflect.Value {\n\tif n, ok := n.(*parse.NumberNode); ok && n.IsComplex {\n\t\tvalue := reflect.New(typ).Elem()\n\t\tvalue.SetComplex(n.Complex128)\n\t\treturn value\n\t}\n\ts.errorf(\"expected complex; found %s\", n)\n\tpanic(\"not reached\")\n}\n\nfunc (s *state) evalEmptyInterface(dot reflect.Value, n parse.Node) reflect.Value {\n\ts.at(n)\n\tswitch n := n.(type) {\n\tcase *parse.BoolNode:\n\t\treturn reflect.ValueOf(n.True)\n\tcase *parse.DotNode:\n\t\treturn dot\n\tcase *parse.FieldNode:\n\t\treturn s.evalFieldNode(dot, n, nil, zero)\n\tcase *parse.IdentifierNode:\n\t\treturn s.evalFunction(dot, n, n, nil, zero)\n\tcase *parse.NilNode:\n\t\t// NilNode is handled in evalArg, the only place that calls here.\n\t\ts.errorf(\"evalEmptyInterface: nil (can't happen)\")\n\tcase *parse.NumberNode:\n\t\treturn s.idealConstant(n)\n\tcase *parse.StringNode:\n\t\treturn reflect.ValueOf(n.Text)\n\tcase *parse.VariableNode:\n\t\treturn s.evalVariableNode(dot, n, nil, zero)\n\tcase *parse.PipeNode:\n\t\treturn s.evalPipeline(dot, n)\n\t}\n\ts.errorf(\"can't handle assignment of %s to empty interface argument\", n)\n\tpanic(\"not reached\")\n}\n\n// indirect returns the item at the end of indirection, and a bool to indicate if it's nil.\n// We indirect through pointers and empty interfaces (only) because\n// non-empty interfaces have methods we might need.\nfunc indirect(v reflect.Value) (rv reflect.Value, isNil bool) {\n\tfor ; v.Kind() == reflect.Ptr || v.Kind() == reflect.Interface; v = v.Elem() {\n\t\tif v.IsNil() {\n\t\t\treturn v, true\n\t\t}\n\t\tif v.Kind() == reflect.Interface && v.NumMethod() > 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn v, false\n}\n\n// printValue writes the textual representation of the value to the output of\n// the template.\nfunc (s *state) printValue(n parse.Node, v reflect.Value) {\n\ts.at(n)\n\tiface, ok := printableValue(v)\n\tif !ok {\n\t\ts.errorf(\"can't print %s of type %s\", n, v.Type())\n\t}\n\tfmt.Fprint(s.wr, iface)\n}\n\n// printableValue returns the, possibly indirected, interface value inside v that\n// is best for a call to formatted printer.\nfunc printableValue(v reflect.Value) (interface{}, bool) {\n\tif v.Kind() == reflect.Ptr {\n\t\tv, _ = indirect(v) // fmt.Fprint handles nil.\n\t}\n\tif !v.IsValid() {\n\t\treturn \"<no value>\", true\n\t}\n\n\tif !v.Type().Implements(errorType) && !v.Type().Implements(fmtStringerType) {\n\t\tif v.CanAddr() && (reflect.PtrTo(v.Type()).Implements(errorType) || reflect.PtrTo(v.Type()).Implements(fmtStringerType)) {\n\t\t\tv = v.Addr()\n\t\t} else {\n\t\t\tswitch v.Kind() {\n\t\t\tcase reflect.Chan, reflect.Func:\n\t\t\t\treturn nil, false\n\t\t\t}\n\t\t}\n\t}\n\treturn v.Interface(), true\n}\n\n// Types to help sort the keys in a map for reproducible output.\n\ntype rvs []reflect.Value\n\nfunc (x rvs) Len() int      { return len(x) }\nfunc (x rvs) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\ntype rvInts struct{ rvs }\n\nfunc (x rvInts) Less(i, j int) bool { return x.rvs[i].Int() < x.rvs[j].Int() }\n\ntype rvUints struct{ rvs }\n\nfunc (x rvUints) Less(i, j int) bool { return x.rvs[i].Uint() < x.rvs[j].Uint() }\n\ntype rvFloats struct{ rvs }\n\nfunc (x rvFloats) Less(i, j int) bool { return x.rvs[i].Float() < x.rvs[j].Float() }\n\ntype rvStrings struct{ rvs }\n\nfunc (x rvStrings) Less(i, j int) bool { return x.rvs[i].String() < x.rvs[j].String() }\n\n// sortKeys sorts (if it can) the slice of reflect.Values, which is a slice of map keys.\nfunc sortKeys(v []reflect.Value) []reflect.Value {\n\tif len(v) <= 1 {\n\t\treturn v\n\t}\n\tswitch v[0].Kind() {\n\tcase reflect.Float32, reflect.Float64:\n\t\tsort.Sort(rvFloats{v})\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tsort.Sort(rvInts{v})\n\tcase reflect.String:\n\t\tsort.Sort(rvStrings{v})\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tsort.Sort(rvUints{v})\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/funcs.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage template\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// FuncMap is the type of the map defining the mapping from names to functions.\n// Each function must have either a single return value, or two return values of\n// which the second has type error. In that case, if the second (error)\n// return value evaluates to non-nil during execution, execution terminates and\n// Execute returns that error.\ntype FuncMap map[string]interface{}\n\nvar builtins = FuncMap{\n\t\"and\":      and,\n\t\"call\":     call,\n\t\"html\":     HTMLEscaper,\n\t\"index\":    index,\n\t\"js\":       JSEscaper,\n\t\"len\":      length,\n\t\"not\":      not,\n\t\"or\":       or,\n\t\"print\":    fmt.Sprint,\n\t\"printf\":   fmt.Sprintf,\n\t\"println\":  fmt.Sprintln,\n\t\"urlquery\": URLQueryEscaper,\n\n\t// Comparisons\n\t\"eq\": eq, // ==\n\t\"ge\": ge, // >=\n\t\"gt\": gt, // >\n\t\"le\": le, // <=\n\t\"lt\": lt, // <\n\t\"ne\": ne, // !=\n}\n\nvar builtinFuncs = createValueFuncs(builtins)\n\n// createValueFuncs turns a FuncMap into a map[string]reflect.Value\nfunc createValueFuncs(funcMap FuncMap) map[string]reflect.Value {\n\tm := make(map[string]reflect.Value)\n\taddValueFuncs(m, funcMap)\n\treturn m\n}\n\n// addValueFuncs adds to values the functions in funcs, converting them to reflect.Values.\nfunc addValueFuncs(out map[string]reflect.Value, in FuncMap) {\n\tfor name, fn := range in {\n\t\tv := reflect.ValueOf(fn)\n\t\tif v.Kind() != reflect.Func {\n\t\t\tpanic(\"value for \" + name + \" not a function\")\n\t\t}\n\t\tif !goodFunc(v.Type()) {\n\t\t\tpanic(fmt.Errorf(\"can't install method/function %q with %d results\", name, v.Type().NumOut()))\n\t\t}\n\t\tout[name] = v\n\t}\n}\n\n// addFuncs adds to values the functions in funcs. It does no checking of the input -\n// call addValueFuncs first.\nfunc addFuncs(out, in FuncMap) {\n\tfor name, fn := range in {\n\t\tout[name] = fn\n\t}\n}\n\n// goodFunc checks that the function or method has the right result signature.\nfunc goodFunc(typ reflect.Type) bool {\n\t// We allow functions with 1 result or 2 results where the second is an error.\n\tswitch {\n\tcase typ.NumOut() == 1:\n\t\treturn true\n\tcase typ.NumOut() == 2 && typ.Out(1) == errorType:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// findFunction looks for a function in the template, and global map.\nfunc findFunction(name string, tmpl *Template) (reflect.Value, bool) {\n\tif tmpl != nil && tmpl.common != nil {\n\t\tif fn := tmpl.execFuncs[name]; fn.IsValid() {\n\t\t\treturn fn, true\n\t\t}\n\t}\n\tif fn := builtinFuncs[name]; fn.IsValid() {\n\t\treturn fn, true\n\t}\n\treturn reflect.Value{}, false\n}\n\n// Indexing.\n\n// index returns the result of indexing its first argument by the following\n// arguments.  Thus \"index x 1 2 3\" is, in Go syntax, x[1][2][3]. Each\n// indexed item must be a map, slice, or array.\nfunc index(item interface{}, indices ...interface{}) (interface{}, error) {\n\tv := reflect.ValueOf(item)\n\tfor _, i := range indices {\n\t\tindex := reflect.ValueOf(i)\n\t\tvar isNil bool\n\t\tif v, isNil = indirect(v); isNil {\n\t\t\treturn nil, fmt.Errorf(\"index of nil pointer\")\n\t\t}\n\t\tswitch v.Kind() {\n\t\tcase reflect.Array, reflect.Slice, reflect.String:\n\t\t\tvar x int64\n\t\t\tswitch index.Kind() {\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\tx = index.Int()\n\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\tx = int64(index.Uint())\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"cannot index slice/array with type %s\", index.Type())\n\t\t\t}\n\t\t\tif x < 0 || x >= int64(v.Len()) {\n\t\t\t\treturn nil, fmt.Errorf(\"index out of range: %d\", x)\n\t\t\t}\n\t\t\tv = v.Index(int(x))\n\t\tcase reflect.Map:\n\t\t\tif !index.IsValid() {\n\t\t\t\tindex = reflect.Zero(v.Type().Key())\n\t\t\t}\n\t\t\tif !index.Type().AssignableTo(v.Type().Key()) {\n\t\t\t\treturn nil, fmt.Errorf(\"%s is not index type for %s\", index.Type(), v.Type())\n\t\t\t}\n\t\t\tif x := v.MapIndex(index); x.IsValid() {\n\t\t\t\tv = x\n\t\t\t} else {\n\t\t\t\tv = reflect.Zero(v.Type().Elem())\n\t\t\t}\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"can't index item of type %s\", v.Type())\n\t\t}\n\t}\n\treturn v.Interface(), nil\n}\n\n// Length\n\n// length returns the length of the item, with an error if it has no defined length.\nfunc length(item interface{}) (int, error) {\n\tv, isNil := indirect(reflect.ValueOf(item))\n\tif isNil {\n\t\treturn 0, fmt.Errorf(\"len of nil pointer\")\n\t}\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len(), nil\n\t}\n\treturn 0, fmt.Errorf(\"len of type %s\", v.Type())\n}\n\n// Function invocation\n\n// call returns the result of evaluating the first argument as a function.\n// The function must return 1 result, or 2 results, the second of which is an error.\nfunc call(fn interface{}, args ...interface{}) (interface{}, error) {\n\tv := reflect.ValueOf(fn)\n\ttyp := v.Type()\n\tif typ.Kind() != reflect.Func {\n\t\treturn nil, fmt.Errorf(\"non-function of type %s\", typ)\n\t}\n\tif !goodFunc(typ) {\n\t\treturn nil, fmt.Errorf(\"function called with %d args; should be 1 or 2\", typ.NumOut())\n\t}\n\tnumIn := typ.NumIn()\n\tvar dddType reflect.Type\n\tif typ.IsVariadic() {\n\t\tif len(args) < numIn-1 {\n\t\t\treturn nil, fmt.Errorf(\"wrong number of args: got %d want at least %d\", len(args), numIn-1)\n\t\t}\n\t\tdddType = typ.In(numIn - 1).Elem()\n\t} else {\n\t\tif len(args) != numIn {\n\t\t\treturn nil, fmt.Errorf(\"wrong number of args: got %d want %d\", len(args), numIn)\n\t\t}\n\t}\n\targv := make([]reflect.Value, len(args))\n\tfor i, arg := range args {\n\t\tvalue := reflect.ValueOf(arg)\n\t\t// Compute the expected type. Clumsy because of variadics.\n\t\tvar argType reflect.Type\n\t\tif !typ.IsVariadic() || i < numIn-1 {\n\t\t\targType = typ.In(i)\n\t\t} else {\n\t\t\targType = dddType\n\t\t}\n\t\tif !value.IsValid() && canBeNil(argType) {\n\t\t\tvalue = reflect.Zero(argType)\n\t\t}\n\t\tif !value.Type().AssignableTo(argType) {\n\t\t\treturn nil, fmt.Errorf(\"arg %d has type %s; should be %s\", i, value.Type(), argType)\n\t\t}\n\t\targv[i] = value\n\t}\n\tresult := v.Call(argv)\n\tif len(result) == 2 && !result[1].IsNil() {\n\t\treturn result[0].Interface(), result[1].Interface().(error)\n\t}\n\treturn result[0].Interface(), nil\n}\n\n// Boolean logic.\n\nfunc truth(a interface{}) bool {\n\tt, _ := isTrue(reflect.ValueOf(a))\n\treturn t\n}\n\n// and computes the Boolean AND of its arguments, returning\n// the first false argument it encounters, or the last argument.\nfunc and(arg0 interface{}, args ...interface{}) interface{} {\n\tif !truth(arg0) {\n\t\treturn arg0\n\t}\n\tfor i := range args {\n\t\targ0 = args[i]\n\t\tif !truth(arg0) {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn arg0\n}\n\n// or computes the Boolean OR of its arguments, returning\n// the first true argument it encounters, or the last argument.\nfunc or(arg0 interface{}, args ...interface{}) interface{} {\n\tif truth(arg0) {\n\t\treturn arg0\n\t}\n\tfor i := range args {\n\t\targ0 = args[i]\n\t\tif truth(arg0) {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn arg0\n}\n\n// not returns the Boolean negation of its argument.\nfunc not(arg interface{}) (truth bool) {\n\ttruth, _ = isTrue(reflect.ValueOf(arg))\n\treturn !truth\n}\n\n// Comparison.\n\n// TODO: Perhaps allow comparison between signed and unsigned integers.\n\nvar (\n\terrBadComparisonType = errors.New(\"invalid type for comparison\")\n\terrBadComparison     = errors.New(\"incompatible types for comparison\")\n\terrNoComparison      = errors.New(\"missing argument for comparison\")\n)\n\ntype kind int\n\nconst (\n\tinvalidKind kind = iota\n\tboolKind\n\tcomplexKind\n\tintKind\n\tfloatKind\n\tintegerKind\n\tstringKind\n\tuintKind\n)\n\nfunc basicKind(v reflect.Value) (kind, error) {\n\tswitch v.Kind() {\n\tcase reflect.Bool:\n\t\treturn boolKind, nil\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn intKind, nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn uintKind, nil\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn floatKind, nil\n\tcase reflect.Complex64, reflect.Complex128:\n\t\treturn complexKind, nil\n\tcase reflect.String:\n\t\treturn stringKind, nil\n\t}\n\treturn invalidKind, errBadComparisonType\n}\n\n// eq evaluates the comparison a == b || a == c || ...\nfunc eq(arg1 interface{}, arg2 ...interface{}) (bool, error) {\n\tv1 := reflect.ValueOf(arg1)\n\tk1, err := basicKind(v1)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif len(arg2) == 0 {\n\t\treturn false, errNoComparison\n\t}\n\tfor _, arg := range arg2 {\n\t\tv2 := reflect.ValueOf(arg)\n\t\tk2, err := basicKind(v2)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\ttruth := false\n\t\tif k1 != k2 {\n\t\t\t// Special case: Can compare integer values regardless of type's sign.\n\t\t\tswitch {\n\t\t\tcase k1 == intKind && k2 == uintKind:\n\t\t\t\ttruth = v1.Int() >= 0 && uint64(v1.Int()) == v2.Uint()\n\t\t\tcase k1 == uintKind && k2 == intKind:\n\t\t\t\ttruth = v2.Int() >= 0 && v1.Uint() == uint64(v2.Int())\n\t\t\tdefault:\n\t\t\t\treturn false, errBadComparison\n\t\t\t}\n\t\t} else {\n\t\t\tswitch k1 {\n\t\t\tcase boolKind:\n\t\t\t\ttruth = v1.Bool() == v2.Bool()\n\t\t\tcase complexKind:\n\t\t\t\ttruth = v1.Complex() == v2.Complex()\n\t\t\tcase floatKind:\n\t\t\t\ttruth = v1.Float() == v2.Float()\n\t\t\tcase intKind:\n\t\t\t\ttruth = v1.Int() == v2.Int()\n\t\t\tcase stringKind:\n\t\t\t\ttruth = v1.String() == v2.String()\n\t\t\tcase uintKind:\n\t\t\t\ttruth = v1.Uint() == v2.Uint()\n\t\t\tdefault:\n\t\t\t\tpanic(\"invalid kind\")\n\t\t\t}\n\t\t}\n\t\tif truth {\n\t\t\treturn true, nil\n\t\t}\n\t}\n\treturn false, nil\n}\n\n// ne evaluates the comparison a != b.\nfunc ne(arg1, arg2 interface{}) (bool, error) {\n\t// != is the inverse of ==.\n\tequal, err := eq(arg1, arg2)\n\treturn !equal, err\n}\n\n// lt evaluates the comparison a < b.\nfunc lt(arg1, arg2 interface{}) (bool, error) {\n\tv1 := reflect.ValueOf(arg1)\n\tk1, err := basicKind(v1)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tv2 := reflect.ValueOf(arg2)\n\tk2, err := basicKind(v2)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\ttruth := false\n\tif k1 != k2 {\n\t\t// Special case: Can compare integer values regardless of type's sign.\n\t\tswitch {\n\t\tcase k1 == intKind && k2 == uintKind:\n\t\t\ttruth = v1.Int() < 0 || uint64(v1.Int()) < v2.Uint()\n\t\tcase k1 == uintKind && k2 == intKind:\n\t\t\ttruth = v2.Int() >= 0 && v1.Uint() < uint64(v2.Int())\n\t\tdefault:\n\t\t\treturn false, errBadComparison\n\t\t}\n\t} else {\n\t\tswitch k1 {\n\t\tcase boolKind, complexKind:\n\t\t\treturn false, errBadComparisonType\n\t\tcase floatKind:\n\t\t\ttruth = v1.Float() < v2.Float()\n\t\tcase intKind:\n\t\t\ttruth = v1.Int() < v2.Int()\n\t\tcase stringKind:\n\t\t\ttruth = v1.String() < v2.String()\n\t\tcase uintKind:\n\t\t\ttruth = v1.Uint() < v2.Uint()\n\t\tdefault:\n\t\t\tpanic(\"invalid kind\")\n\t\t}\n\t}\n\treturn truth, nil\n}\n\n// le evaluates the comparison <= b.\nfunc le(arg1, arg2 interface{}) (bool, error) {\n\t// <= is < or ==.\n\tlessThan, err := lt(arg1, arg2)\n\tif lessThan || err != nil {\n\t\treturn lessThan, err\n\t}\n\treturn eq(arg1, arg2)\n}\n\n// gt evaluates the comparison a > b.\nfunc gt(arg1, arg2 interface{}) (bool, error) {\n\t// > is the inverse of <=.\n\tlessOrEqual, err := le(arg1, arg2)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn !lessOrEqual, nil\n}\n\n// ge evaluates the comparison a >= b.\nfunc ge(arg1, arg2 interface{}) (bool, error) {\n\t// >= is the inverse of <.\n\tlessThan, err := lt(arg1, arg2)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn !lessThan, nil\n}\n\n// HTML escaping.\n\nvar (\n\thtmlQuot = []byte(\"&#34;\") // shorter than \"&quot;\"\n\thtmlApos = []byte(\"&#39;\") // shorter than \"&apos;\" and apos was not in HTML until HTML5\n\thtmlAmp  = []byte(\"&amp;\")\n\thtmlLt   = []byte(\"&lt;\")\n\thtmlGt   = []byte(\"&gt;\")\n)\n\n// HTMLEscape writes to w the escaped HTML equivalent of the plain text data b.\nfunc HTMLEscape(w io.Writer, b []byte) {\n\tlast := 0\n\tfor i, c := range b {\n\t\tvar html []byte\n\t\tswitch c {\n\t\tcase '\"':\n\t\t\thtml = htmlQuot\n\t\tcase '\\'':\n\t\t\thtml = htmlApos\n\t\tcase '&':\n\t\t\thtml = htmlAmp\n\t\tcase '<':\n\t\t\thtml = htmlLt\n\t\tcase '>':\n\t\t\thtml = htmlGt\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\t\tw.Write(b[last:i])\n\t\tw.Write(html)\n\t\tlast = i + 1\n\t}\n\tw.Write(b[last:])\n}\n\n// HTMLEscapeString returns the escaped HTML equivalent of the plain text data s.\nfunc HTMLEscapeString(s string) string {\n\t// Avoid allocation if we can.\n\tif strings.IndexAny(s, `'\"&<>`) < 0 {\n\t\treturn s\n\t}\n\tvar b bytes.Buffer\n\tHTMLEscape(&b, []byte(s))\n\treturn b.String()\n}\n\n// HTMLEscaper returns the escaped HTML equivalent of the textual\n// representation of its arguments.\nfunc HTMLEscaper(args ...interface{}) string {\n\treturn HTMLEscapeString(evalArgs(args))\n}\n\n// JavaScript escaping.\n\nvar (\n\tjsLowUni = []byte(`\\u00`)\n\thex      = []byte(\"0123456789ABCDEF\")\n\n\tjsBackslash = []byte(`\\\\`)\n\tjsApos      = []byte(`\\'`)\n\tjsQuot      = []byte(`\\\"`)\n\tjsLt        = []byte(`\\x3C`)\n\tjsGt        = []byte(`\\x3E`)\n)\n\n// JSEscape writes to w the escaped JavaScript equivalent of the plain text data b.\nfunc JSEscape(w io.Writer, b []byte) {\n\tlast := 0\n\tfor i := 0; i < len(b); i++ {\n\t\tc := b[i]\n\n\t\tif !jsIsSpecial(rune(c)) {\n\t\t\t// fast path: nothing to do\n\t\t\tcontinue\n\t\t}\n\t\tw.Write(b[last:i])\n\n\t\tif c < utf8.RuneSelf {\n\t\t\t// Quotes, slashes and angle brackets get quoted.\n\t\t\t// Control characters get written as \\u00XX.\n\t\t\tswitch c {\n\t\t\tcase '\\\\':\n\t\t\t\tw.Write(jsBackslash)\n\t\t\tcase '\\'':\n\t\t\t\tw.Write(jsApos)\n\t\t\tcase '\"':\n\t\t\t\tw.Write(jsQuot)\n\t\t\tcase '<':\n\t\t\t\tw.Write(jsLt)\n\t\t\tcase '>':\n\t\t\t\tw.Write(jsGt)\n\t\t\tdefault:\n\t\t\t\tw.Write(jsLowUni)\n\t\t\t\tt, b := c>>4, c&0x0f\n\t\t\t\tw.Write(hex[t : t+1])\n\t\t\t\tw.Write(hex[b : b+1])\n\t\t\t}\n\t\t} else {\n\t\t\t// Unicode rune.\n\t\t\tr, size := utf8.DecodeRune(b[i:])\n\t\t\tif unicode.IsPrint(r) {\n\t\t\t\tw.Write(b[i : i+size])\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(w, \"\\\\u%04X\", r)\n\t\t\t}\n\t\t\ti += size - 1\n\t\t}\n\t\tlast = i + 1\n\t}\n\tw.Write(b[last:])\n}\n\n// JSEscapeString returns the escaped JavaScript equivalent of the plain text data s.\nfunc JSEscapeString(s string) string {\n\t// Avoid allocation if we can.\n\tif strings.IndexFunc(s, jsIsSpecial) < 0 {\n\t\treturn s\n\t}\n\tvar b bytes.Buffer\n\tJSEscape(&b, []byte(s))\n\treturn b.String()\n}\n\nfunc jsIsSpecial(r rune) bool {\n\tswitch r {\n\tcase '\\\\', '\\'', '\"', '<', '>':\n\t\treturn true\n\t}\n\treturn r < ' ' || utf8.RuneSelf <= r\n}\n\n// JSEscaper returns the escaped JavaScript equivalent of the textual\n// representation of its arguments.\nfunc JSEscaper(args ...interface{}) string {\n\treturn JSEscapeString(evalArgs(args))\n}\n\n// URLQueryEscaper returns the escaped value of the textual representation of\n// its arguments in a form suitable for embedding in a URL query.\nfunc URLQueryEscaper(args ...interface{}) string {\n\treturn url.QueryEscape(evalArgs(args))\n}\n\n// evalArgs formats the list of arguments into a string. It is therefore equivalent to\n//\tfmt.Sprint(args...)\n// except that each argument is indirected (if a pointer), as required,\n// using the same rules as the default string evaluation during template\n// execution.\nfunc evalArgs(args []interface{}) string {\n\tok := false\n\tvar s string\n\t// Fast path for simple common case.\n\tif len(args) == 1 {\n\t\ts, ok = args[0].(string)\n\t}\n\tif !ok {\n\t\tfor i, arg := range args {\n\t\t\ta, ok := printableValue(reflect.ValueOf(arg))\n\t\t\tif ok {\n\t\t\t\targs[i] = a\n\t\t\t} // else left fmt do its thing\n\t\t}\n\t\ts = fmt.Sprint(args...)\n\t}\n\treturn s\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/go.mod",
    "content": "module github.com/alecthomas/template\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/helper.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Helper functions to make constructing templates easier.\n\npackage template\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"path/filepath\"\n)\n\n// Functions and methods to parse templates.\n\n// Must is a helper that wraps a call to a function returning (*Template, error)\n// and panics if the error is non-nil. It is intended for use in variable\n// initializations such as\n//\tvar t = template.Must(template.New(\"name\").Parse(\"text\"))\nfunc Must(t *Template, err error) *Template {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\n// ParseFiles creates a new Template and parses the template definitions from\n// the named files. The returned template's name will have the (base) name and\n// (parsed) contents of the first file. There must be at least one file.\n// If an error occurs, parsing stops and the returned *Template is nil.\nfunc ParseFiles(filenames ...string) (*Template, error) {\n\treturn parseFiles(nil, filenames...)\n}\n\n// ParseFiles parses the named files and associates the resulting templates with\n// t. If an error occurs, parsing stops and the returned template is nil;\n// otherwise it is t. There must be at least one file.\nfunc (t *Template) ParseFiles(filenames ...string) (*Template, error) {\n\treturn parseFiles(t, filenames...)\n}\n\n// parseFiles is the helper for the method and function. If the argument\n// template is nil, it is created from the first file.\nfunc parseFiles(t *Template, filenames ...string) (*Template, error) {\n\tif len(filenames) == 0 {\n\t\t// Not really a problem, but be consistent.\n\t\treturn nil, fmt.Errorf(\"template: no files named in call to ParseFiles\")\n\t}\n\tfor _, filename := range filenames {\n\t\tb, err := ioutil.ReadFile(filename)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := string(b)\n\t\tname := filepath.Base(filename)\n\t\t// First template becomes return value if not already defined,\n\t\t// and we use that one for subsequent New calls to associate\n\t\t// all the templates together. Also, if this file has the same name\n\t\t// as t, this file becomes the contents of t, so\n\t\t//  t, err := New(name).Funcs(xxx).ParseFiles(name)\n\t\t// works. Otherwise we create a new template associated with t.\n\t\tvar tmpl *Template\n\t\tif t == nil {\n\t\t\tt = New(name)\n\t\t}\n\t\tif name == t.Name() {\n\t\t\ttmpl = t\n\t\t} else {\n\t\t\ttmpl = t.New(name)\n\t\t}\n\t\t_, err = tmpl.Parse(s)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn t, nil\n}\n\n// ParseGlob creates a new Template and parses the template definitions from the\n// files identified by the pattern, which must match at least one file. The\n// returned template will have the (base) name and (parsed) contents of the\n// first file matched by the pattern. ParseGlob is equivalent to calling\n// ParseFiles with the list of files matched by the pattern.\nfunc ParseGlob(pattern string) (*Template, error) {\n\treturn parseGlob(nil, pattern)\n}\n\n// ParseGlob parses the template definitions in the files identified by the\n// pattern and associates the resulting templates with t. The pattern is\n// processed by filepath.Glob and must match at least one file. ParseGlob is\n// equivalent to calling t.ParseFiles with the list of files matched by the\n// pattern.\nfunc (t *Template) ParseGlob(pattern string) (*Template, error) {\n\treturn parseGlob(t, pattern)\n}\n\n// parseGlob is the implementation of the function and method ParseGlob.\nfunc parseGlob(t *Template, pattern string) (*Template, error) {\n\tfilenames, err := filepath.Glob(pattern)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(filenames) == 0 {\n\t\treturn nil, fmt.Errorf(\"template: pattern matches no files: %#q\", pattern)\n\t}\n\treturn parseFiles(t, filenames...)\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/parse/lex.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage parse\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// item represents a token or text string returned from the scanner.\ntype item struct {\n\ttyp itemType // The type of this item.\n\tpos Pos      // The starting position, in bytes, of this item in the input string.\n\tval string   // The value of this item.\n}\n\nfunc (i item) String() string {\n\tswitch {\n\tcase i.typ == itemEOF:\n\t\treturn \"EOF\"\n\tcase i.typ == itemError:\n\t\treturn i.val\n\tcase i.typ > itemKeyword:\n\t\treturn fmt.Sprintf(\"<%s>\", i.val)\n\tcase len(i.val) > 10:\n\t\treturn fmt.Sprintf(\"%.10q...\", i.val)\n\t}\n\treturn fmt.Sprintf(\"%q\", i.val)\n}\n\n// itemType identifies the type of lex items.\ntype itemType int\n\nconst (\n\titemError        itemType = iota // error occurred; value is text of error\n\titemBool                         // boolean constant\n\titemChar                         // printable ASCII character; grab bag for comma etc.\n\titemCharConstant                 // character constant\n\titemComplex                      // complex constant (1+2i); imaginary is just a number\n\titemColonEquals                  // colon-equals (':=') introducing a declaration\n\titemEOF\n\titemField        // alphanumeric identifier starting with '.'\n\titemIdentifier   // alphanumeric identifier not starting with '.'\n\titemLeftDelim    // left action delimiter\n\titemLeftParen    // '(' inside action\n\titemNumber       // simple number, including imaginary\n\titemPipe         // pipe symbol\n\titemRawString    // raw quoted string (includes quotes)\n\titemRightDelim   // right action delimiter\n\titemElideNewline // elide newline after right delim\n\titemRightParen   // ')' inside action\n\titemSpace        // run of spaces separating arguments\n\titemString       // quoted string (includes quotes)\n\titemText         // plain text\n\titemVariable     // variable starting with '$', such as '$' or  '$1' or '$hello'\n\t// Keywords appear after all the rest.\n\titemKeyword  // used only to delimit the keywords\n\titemDot      // the cursor, spelled '.'\n\titemDefine   // define keyword\n\titemElse     // else keyword\n\titemEnd      // end keyword\n\titemIf       // if keyword\n\titemNil      // the untyped nil constant, easiest to treat as a keyword\n\titemRange    // range keyword\n\titemTemplate // template keyword\n\titemWith     // with keyword\n)\n\nvar key = map[string]itemType{\n\t\".\":        itemDot,\n\t\"define\":   itemDefine,\n\t\"else\":     itemElse,\n\t\"end\":      itemEnd,\n\t\"if\":       itemIf,\n\t\"range\":    itemRange,\n\t\"nil\":      itemNil,\n\t\"template\": itemTemplate,\n\t\"with\":     itemWith,\n}\n\nconst eof = -1\n\n// stateFn represents the state of the scanner as a function that returns the next state.\ntype stateFn func(*lexer) stateFn\n\n// lexer holds the state of the scanner.\ntype lexer struct {\n\tname       string    // the name of the input; used only for error reports\n\tinput      string    // the string being scanned\n\tleftDelim  string    // start of action\n\trightDelim string    // end of action\n\tstate      stateFn   // the next lexing function to enter\n\tpos        Pos       // current position in the input\n\tstart      Pos       // start position of this item\n\twidth      Pos       // width of last rune read from input\n\tlastPos    Pos       // position of most recent item returned by nextItem\n\titems      chan item // channel of scanned items\n\tparenDepth int       // nesting depth of ( ) exprs\n}\n\n// next returns the next rune in the input.\nfunc (l *lexer) next() rune {\n\tif int(l.pos) >= len(l.input) {\n\t\tl.width = 0\n\t\treturn eof\n\t}\n\tr, w := utf8.DecodeRuneInString(l.input[l.pos:])\n\tl.width = Pos(w)\n\tl.pos += l.width\n\treturn r\n}\n\n// peek returns but does not consume the next rune in the input.\nfunc (l *lexer) peek() rune {\n\tr := l.next()\n\tl.backup()\n\treturn r\n}\n\n// backup steps back one rune. Can only be called once per call of next.\nfunc (l *lexer) backup() {\n\tl.pos -= l.width\n}\n\n// emit passes an item back to the client.\nfunc (l *lexer) emit(t itemType) {\n\tl.items <- item{t, l.start, l.input[l.start:l.pos]}\n\tl.start = l.pos\n}\n\n// ignore skips over the pending input before this point.\nfunc (l *lexer) ignore() {\n\tl.start = l.pos\n}\n\n// accept consumes the next rune if it's from the valid set.\nfunc (l *lexer) accept(valid string) bool {\n\tif strings.IndexRune(valid, l.next()) >= 0 {\n\t\treturn true\n\t}\n\tl.backup()\n\treturn false\n}\n\n// acceptRun consumes a run of runes from the valid set.\nfunc (l *lexer) acceptRun(valid string) {\n\tfor strings.IndexRune(valid, l.next()) >= 0 {\n\t}\n\tl.backup()\n}\n\n// lineNumber reports which line we're on, based on the position of\n// the previous item returned by nextItem. Doing it this way\n// means we don't have to worry about peek double counting.\nfunc (l *lexer) lineNumber() int {\n\treturn 1 + strings.Count(l.input[:l.lastPos], \"\\n\")\n}\n\n// errorf returns an error token and terminates the scan by passing\n// back a nil pointer that will be the next state, terminating l.nextItem.\nfunc (l *lexer) errorf(format string, args ...interface{}) stateFn {\n\tl.items <- item{itemError, l.start, fmt.Sprintf(format, args...)}\n\treturn nil\n}\n\n// nextItem returns the next item from the input.\nfunc (l *lexer) nextItem() item {\n\titem := <-l.items\n\tl.lastPos = item.pos\n\treturn item\n}\n\n// lex creates a new scanner for the input string.\nfunc lex(name, input, left, right string) *lexer {\n\tif left == \"\" {\n\t\tleft = leftDelim\n\t}\n\tif right == \"\" {\n\t\tright = rightDelim\n\t}\n\tl := &lexer{\n\t\tname:       name,\n\t\tinput:      input,\n\t\tleftDelim:  left,\n\t\trightDelim: right,\n\t\titems:      make(chan item),\n\t}\n\tgo l.run()\n\treturn l\n}\n\n// run runs the state machine for the lexer.\nfunc (l *lexer) run() {\n\tfor l.state = lexText; l.state != nil; {\n\t\tl.state = l.state(l)\n\t}\n}\n\n// state functions\n\nconst (\n\tleftDelim    = \"{{\"\n\trightDelim   = \"}}\"\n\tleftComment  = \"/*\"\n\trightComment = \"*/\"\n)\n\n// lexText scans until an opening action delimiter, \"{{\".\nfunc lexText(l *lexer) stateFn {\n\tfor {\n\t\tif strings.HasPrefix(l.input[l.pos:], l.leftDelim) {\n\t\t\tif l.pos > l.start {\n\t\t\t\tl.emit(itemText)\n\t\t\t}\n\t\t\treturn lexLeftDelim\n\t\t}\n\t\tif l.next() == eof {\n\t\t\tbreak\n\t\t}\n\t}\n\t// Correctly reached EOF.\n\tif l.pos > l.start {\n\t\tl.emit(itemText)\n\t}\n\tl.emit(itemEOF)\n\treturn nil\n}\n\n// lexLeftDelim scans the left delimiter, which is known to be present.\nfunc lexLeftDelim(l *lexer) stateFn {\n\tl.pos += Pos(len(l.leftDelim))\n\tif strings.HasPrefix(l.input[l.pos:], leftComment) {\n\t\treturn lexComment\n\t}\n\tl.emit(itemLeftDelim)\n\tl.parenDepth = 0\n\treturn lexInsideAction\n}\n\n// lexComment scans a comment. The left comment marker is known to be present.\nfunc lexComment(l *lexer) stateFn {\n\tl.pos += Pos(len(leftComment))\n\ti := strings.Index(l.input[l.pos:], rightComment)\n\tif i < 0 {\n\t\treturn l.errorf(\"unclosed comment\")\n\t}\n\tl.pos += Pos(i + len(rightComment))\n\tif !strings.HasPrefix(l.input[l.pos:], l.rightDelim) {\n\t\treturn l.errorf(\"comment ends before closing delimiter\")\n\n\t}\n\tl.pos += Pos(len(l.rightDelim))\n\tl.ignore()\n\treturn lexText\n}\n\n// lexRightDelim scans the right delimiter, which is known to be present.\nfunc lexRightDelim(l *lexer) stateFn {\n\tl.pos += Pos(len(l.rightDelim))\n\tl.emit(itemRightDelim)\n\tif l.peek() == '\\\\' {\n\t\tl.pos++\n\t\tl.emit(itemElideNewline)\n\t}\n\treturn lexText\n}\n\n// lexInsideAction scans the elements inside action delimiters.\nfunc lexInsideAction(l *lexer) stateFn {\n\t// Either number, quoted string, or identifier.\n\t// Spaces separate arguments; runs of spaces turn into itemSpace.\n\t// Pipe symbols separate and are emitted.\n\tif strings.HasPrefix(l.input[l.pos:], l.rightDelim+\"\\\\\") || strings.HasPrefix(l.input[l.pos:], l.rightDelim) {\n\t\tif l.parenDepth == 0 {\n\t\t\treturn lexRightDelim\n\t\t}\n\t\treturn l.errorf(\"unclosed left paren\")\n\t}\n\tswitch r := l.next(); {\n\tcase r == eof || isEndOfLine(r):\n\t\treturn l.errorf(\"unclosed action\")\n\tcase isSpace(r):\n\t\treturn lexSpace\n\tcase r == ':':\n\t\tif l.next() != '=' {\n\t\t\treturn l.errorf(\"expected :=\")\n\t\t}\n\t\tl.emit(itemColonEquals)\n\tcase r == '|':\n\t\tl.emit(itemPipe)\n\tcase r == '\"':\n\t\treturn lexQuote\n\tcase r == '`':\n\t\treturn lexRawQuote\n\tcase r == '$':\n\t\treturn lexVariable\n\tcase r == '\\'':\n\t\treturn lexChar\n\tcase r == '.':\n\t\t// special look-ahead for \".field\" so we don't break l.backup().\n\t\tif l.pos < Pos(len(l.input)) {\n\t\t\tr := l.input[l.pos]\n\t\t\tif r < '0' || '9' < r {\n\t\t\t\treturn lexField\n\t\t\t}\n\t\t}\n\t\tfallthrough // '.' can start a number.\n\tcase r == '+' || r == '-' || ('0' <= r && r <= '9'):\n\t\tl.backup()\n\t\treturn lexNumber\n\tcase isAlphaNumeric(r):\n\t\tl.backup()\n\t\treturn lexIdentifier\n\tcase r == '(':\n\t\tl.emit(itemLeftParen)\n\t\tl.parenDepth++\n\t\treturn lexInsideAction\n\tcase r == ')':\n\t\tl.emit(itemRightParen)\n\t\tl.parenDepth--\n\t\tif l.parenDepth < 0 {\n\t\t\treturn l.errorf(\"unexpected right paren %#U\", r)\n\t\t}\n\t\treturn lexInsideAction\n\tcase r <= unicode.MaxASCII && unicode.IsPrint(r):\n\t\tl.emit(itemChar)\n\t\treturn lexInsideAction\n\tdefault:\n\t\treturn l.errorf(\"unrecognized character in action: %#U\", r)\n\t}\n\treturn lexInsideAction\n}\n\n// lexSpace scans a run of space characters.\n// One space has already been seen.\nfunc lexSpace(l *lexer) stateFn {\n\tfor isSpace(l.peek()) {\n\t\tl.next()\n\t}\n\tl.emit(itemSpace)\n\treturn lexInsideAction\n}\n\n// lexIdentifier scans an alphanumeric.\nfunc lexIdentifier(l *lexer) stateFn {\nLoop:\n\tfor {\n\t\tswitch r := l.next(); {\n\t\tcase isAlphaNumeric(r):\n\t\t\t// absorb.\n\t\tdefault:\n\t\t\tl.backup()\n\t\t\tword := l.input[l.start:l.pos]\n\t\t\tif !l.atTerminator() {\n\t\t\t\treturn l.errorf(\"bad character %#U\", r)\n\t\t\t}\n\t\t\tswitch {\n\t\t\tcase key[word] > itemKeyword:\n\t\t\t\tl.emit(key[word])\n\t\t\tcase word[0] == '.':\n\t\t\t\tl.emit(itemField)\n\t\t\tcase word == \"true\", word == \"false\":\n\t\t\t\tl.emit(itemBool)\n\t\t\tdefault:\n\t\t\t\tl.emit(itemIdentifier)\n\t\t\t}\n\t\t\tbreak Loop\n\t\t}\n\t}\n\treturn lexInsideAction\n}\n\n// lexField scans a field: .Alphanumeric.\n// The . has been scanned.\nfunc lexField(l *lexer) stateFn {\n\treturn lexFieldOrVariable(l, itemField)\n}\n\n// lexVariable scans a Variable: $Alphanumeric.\n// The $ has been scanned.\nfunc lexVariable(l *lexer) stateFn {\n\tif l.atTerminator() { // Nothing interesting follows -> \"$\".\n\t\tl.emit(itemVariable)\n\t\treturn lexInsideAction\n\t}\n\treturn lexFieldOrVariable(l, itemVariable)\n}\n\n// lexVariable scans a field or variable: [.$]Alphanumeric.\n// The . or $ has been scanned.\nfunc lexFieldOrVariable(l *lexer, typ itemType) stateFn {\n\tif l.atTerminator() { // Nothing interesting follows -> \".\" or \"$\".\n\t\tif typ == itemVariable {\n\t\t\tl.emit(itemVariable)\n\t\t} else {\n\t\t\tl.emit(itemDot)\n\t\t}\n\t\treturn lexInsideAction\n\t}\n\tvar r rune\n\tfor {\n\t\tr = l.next()\n\t\tif !isAlphaNumeric(r) {\n\t\t\tl.backup()\n\t\t\tbreak\n\t\t}\n\t}\n\tif !l.atTerminator() {\n\t\treturn l.errorf(\"bad character %#U\", r)\n\t}\n\tl.emit(typ)\n\treturn lexInsideAction\n}\n\n// atTerminator reports whether the input is at valid termination character to\n// appear after an identifier. Breaks .X.Y into two pieces. Also catches cases\n// like \"$x+2\" not being acceptable without a space, in case we decide one\n// day to implement arithmetic.\nfunc (l *lexer) atTerminator() bool {\n\tr := l.peek()\n\tif isSpace(r) || isEndOfLine(r) {\n\t\treturn true\n\t}\n\tswitch r {\n\tcase eof, '.', ',', '|', ':', ')', '(':\n\t\treturn true\n\t}\n\t// Does r start the delimiter? This can be ambiguous (with delim==\"//\", $x/2 will\n\t// succeed but should fail) but only in extremely rare cases caused by willfully\n\t// bad choice of delimiter.\n\tif rd, _ := utf8.DecodeRuneInString(l.rightDelim); rd == r {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// lexChar scans a character constant. The initial quote is already\n// scanned. Syntax checking is done by the parser.\nfunc lexChar(l *lexer) stateFn {\nLoop:\n\tfor {\n\t\tswitch l.next() {\n\t\tcase '\\\\':\n\t\t\tif r := l.next(); r != eof && r != '\\n' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfallthrough\n\t\tcase eof, '\\n':\n\t\t\treturn l.errorf(\"unterminated character constant\")\n\t\tcase '\\'':\n\t\t\tbreak Loop\n\t\t}\n\t}\n\tl.emit(itemCharConstant)\n\treturn lexInsideAction\n}\n\n// lexNumber scans a number: decimal, octal, hex, float, or imaginary. This\n// isn't a perfect number scanner - for instance it accepts \".\" and \"0x0.2\"\n// and \"089\" - but when it's wrong the input is invalid and the parser (via\n// strconv) will notice.\nfunc lexNumber(l *lexer) stateFn {\n\tif !l.scanNumber() {\n\t\treturn l.errorf(\"bad number syntax: %q\", l.input[l.start:l.pos])\n\t}\n\tif sign := l.peek(); sign == '+' || sign == '-' {\n\t\t// Complex: 1+2i. No spaces, must end in 'i'.\n\t\tif !l.scanNumber() || l.input[l.pos-1] != 'i' {\n\t\t\treturn l.errorf(\"bad number syntax: %q\", l.input[l.start:l.pos])\n\t\t}\n\t\tl.emit(itemComplex)\n\t} else {\n\t\tl.emit(itemNumber)\n\t}\n\treturn lexInsideAction\n}\n\nfunc (l *lexer) scanNumber() bool {\n\t// Optional leading sign.\n\tl.accept(\"+-\")\n\t// Is it hex?\n\tdigits := \"0123456789\"\n\tif l.accept(\"0\") && l.accept(\"xX\") {\n\t\tdigits = \"0123456789abcdefABCDEF\"\n\t}\n\tl.acceptRun(digits)\n\tif l.accept(\".\") {\n\t\tl.acceptRun(digits)\n\t}\n\tif l.accept(\"eE\") {\n\t\tl.accept(\"+-\")\n\t\tl.acceptRun(\"0123456789\")\n\t}\n\t// Is it imaginary?\n\tl.accept(\"i\")\n\t// Next thing mustn't be alphanumeric.\n\tif isAlphaNumeric(l.peek()) {\n\t\tl.next()\n\t\treturn false\n\t}\n\treturn true\n}\n\n// lexQuote scans a quoted string.\nfunc lexQuote(l *lexer) stateFn {\nLoop:\n\tfor {\n\t\tswitch l.next() {\n\t\tcase '\\\\':\n\t\t\tif r := l.next(); r != eof && r != '\\n' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfallthrough\n\t\tcase eof, '\\n':\n\t\t\treturn l.errorf(\"unterminated quoted string\")\n\t\tcase '\"':\n\t\t\tbreak Loop\n\t\t}\n\t}\n\tl.emit(itemString)\n\treturn lexInsideAction\n}\n\n// lexRawQuote scans a raw quoted string.\nfunc lexRawQuote(l *lexer) stateFn {\nLoop:\n\tfor {\n\t\tswitch l.next() {\n\t\tcase eof, '\\n':\n\t\t\treturn l.errorf(\"unterminated raw quoted string\")\n\t\tcase '`':\n\t\t\tbreak Loop\n\t\t}\n\t}\n\tl.emit(itemRawString)\n\treturn lexInsideAction\n}\n\n// isSpace reports whether r is a space character.\nfunc isSpace(r rune) bool {\n\treturn r == ' ' || r == '\\t'\n}\n\n// isEndOfLine reports whether r is an end-of-line character.\nfunc isEndOfLine(r rune) bool {\n\treturn r == '\\r' || r == '\\n'\n}\n\n// isAlphaNumeric reports whether r is an alphabetic, digit, or underscore.\nfunc isAlphaNumeric(r rune) bool {\n\treturn r == '_' || unicode.IsLetter(r) || unicode.IsDigit(r)\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/parse/node.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Parse nodes.\n\npackage parse\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar textFormat = \"%s\" // Changed to \"%q\" in tests for better error messages.\n\n// A Node is an element in the parse tree. The interface is trivial.\n// The interface contains an unexported method so that only\n// types local to this package can satisfy it.\ntype Node interface {\n\tType() NodeType\n\tString() string\n\t// Copy does a deep copy of the Node and all its components.\n\t// To avoid type assertions, some XxxNodes also have specialized\n\t// CopyXxx methods that return *XxxNode.\n\tCopy() Node\n\tPosition() Pos // byte position of start of node in full original input string\n\t// tree returns the containing *Tree.\n\t// It is unexported so all implementations of Node are in this package.\n\ttree() *Tree\n}\n\n// NodeType identifies the type of a parse tree node.\ntype NodeType int\n\n// Pos represents a byte position in the original input text from which\n// this template was parsed.\ntype Pos int\n\nfunc (p Pos) Position() Pos {\n\treturn p\n}\n\n// Type returns itself and provides an easy default implementation\n// for embedding in a Node. Embedded in all non-trivial Nodes.\nfunc (t NodeType) Type() NodeType {\n\treturn t\n}\n\nconst (\n\tNodeText       NodeType = iota // Plain text.\n\tNodeAction                     // A non-control action such as a field evaluation.\n\tNodeBool                       // A boolean constant.\n\tNodeChain                      // A sequence of field accesses.\n\tNodeCommand                    // An element of a pipeline.\n\tNodeDot                        // The cursor, dot.\n\tnodeElse                       // An else action. Not added to tree.\n\tnodeEnd                        // An end action. Not added to tree.\n\tNodeField                      // A field or method name.\n\tNodeIdentifier                 // An identifier; always a function name.\n\tNodeIf                         // An if action.\n\tNodeList                       // A list of Nodes.\n\tNodeNil                        // An untyped nil constant.\n\tNodeNumber                     // A numerical constant.\n\tNodePipe                       // A pipeline of commands.\n\tNodeRange                      // A range action.\n\tNodeString                     // A string constant.\n\tNodeTemplate                   // A template invocation action.\n\tNodeVariable                   // A $ variable.\n\tNodeWith                       // A with action.\n)\n\n// Nodes.\n\n// ListNode holds a sequence of nodes.\ntype ListNode struct {\n\tNodeType\n\tPos\n\ttr    *Tree\n\tNodes []Node // The element nodes in lexical order.\n}\n\nfunc (t *Tree) newList(pos Pos) *ListNode {\n\treturn &ListNode{tr: t, NodeType: NodeList, Pos: pos}\n}\n\nfunc (l *ListNode) append(n Node) {\n\tl.Nodes = append(l.Nodes, n)\n}\n\nfunc (l *ListNode) tree() *Tree {\n\treturn l.tr\n}\n\nfunc (l *ListNode) String() string {\n\tb := new(bytes.Buffer)\n\tfor _, n := range l.Nodes {\n\t\tfmt.Fprint(b, n)\n\t}\n\treturn b.String()\n}\n\nfunc (l *ListNode) CopyList() *ListNode {\n\tif l == nil {\n\t\treturn l\n\t}\n\tn := l.tr.newList(l.Pos)\n\tfor _, elem := range l.Nodes {\n\t\tn.append(elem.Copy())\n\t}\n\treturn n\n}\n\nfunc (l *ListNode) Copy() Node {\n\treturn l.CopyList()\n}\n\n// TextNode holds plain text.\ntype TextNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tText []byte // The text; may span newlines.\n}\n\nfunc (t *Tree) newText(pos Pos, text string) *TextNode {\n\treturn &TextNode{tr: t, NodeType: NodeText, Pos: pos, Text: []byte(text)}\n}\n\nfunc (t *TextNode) String() string {\n\treturn fmt.Sprintf(textFormat, t.Text)\n}\n\nfunc (t *TextNode) tree() *Tree {\n\treturn t.tr\n}\n\nfunc (t *TextNode) Copy() Node {\n\treturn &TextNode{tr: t.tr, NodeType: NodeText, Pos: t.Pos, Text: append([]byte{}, t.Text...)}\n}\n\n// PipeNode holds a pipeline with optional declaration\ntype PipeNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tLine int             // The line number in the input (deprecated; kept for compatibility)\n\tDecl []*VariableNode // Variable declarations in lexical order.\n\tCmds []*CommandNode  // The commands in lexical order.\n}\n\nfunc (t *Tree) newPipeline(pos Pos, line int, decl []*VariableNode) *PipeNode {\n\treturn &PipeNode{tr: t, NodeType: NodePipe, Pos: pos, Line: line, Decl: decl}\n}\n\nfunc (p *PipeNode) append(command *CommandNode) {\n\tp.Cmds = append(p.Cmds, command)\n}\n\nfunc (p *PipeNode) String() string {\n\ts := \"\"\n\tif len(p.Decl) > 0 {\n\t\tfor i, v := range p.Decl {\n\t\t\tif i > 0 {\n\t\t\t\ts += \", \"\n\t\t\t}\n\t\t\ts += v.String()\n\t\t}\n\t\ts += \" := \"\n\t}\n\tfor i, c := range p.Cmds {\n\t\tif i > 0 {\n\t\t\ts += \" | \"\n\t\t}\n\t\ts += c.String()\n\t}\n\treturn s\n}\n\nfunc (p *PipeNode) tree() *Tree {\n\treturn p.tr\n}\n\nfunc (p *PipeNode) CopyPipe() *PipeNode {\n\tif p == nil {\n\t\treturn p\n\t}\n\tvar decl []*VariableNode\n\tfor _, d := range p.Decl {\n\t\tdecl = append(decl, d.Copy().(*VariableNode))\n\t}\n\tn := p.tr.newPipeline(p.Pos, p.Line, decl)\n\tfor _, c := range p.Cmds {\n\t\tn.append(c.Copy().(*CommandNode))\n\t}\n\treturn n\n}\n\nfunc (p *PipeNode) Copy() Node {\n\treturn p.CopyPipe()\n}\n\n// ActionNode holds an action (something bounded by delimiters).\n// Control actions have their own nodes; ActionNode represents simple\n// ones such as field evaluations and parenthesized pipelines.\ntype ActionNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tLine int       // The line number in the input (deprecated; kept for compatibility)\n\tPipe *PipeNode // The pipeline in the action.\n}\n\nfunc (t *Tree) newAction(pos Pos, line int, pipe *PipeNode) *ActionNode {\n\treturn &ActionNode{tr: t, NodeType: NodeAction, Pos: pos, Line: line, Pipe: pipe}\n}\n\nfunc (a *ActionNode) String() string {\n\treturn fmt.Sprintf(\"{{%s}}\", a.Pipe)\n\n}\n\nfunc (a *ActionNode) tree() *Tree {\n\treturn a.tr\n}\n\nfunc (a *ActionNode) Copy() Node {\n\treturn a.tr.newAction(a.Pos, a.Line, a.Pipe.CopyPipe())\n\n}\n\n// CommandNode holds a command (a pipeline inside an evaluating action).\ntype CommandNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tArgs []Node // Arguments in lexical order: Identifier, field, or constant.\n}\n\nfunc (t *Tree) newCommand(pos Pos) *CommandNode {\n\treturn &CommandNode{tr: t, NodeType: NodeCommand, Pos: pos}\n}\n\nfunc (c *CommandNode) append(arg Node) {\n\tc.Args = append(c.Args, arg)\n}\n\nfunc (c *CommandNode) String() string {\n\ts := \"\"\n\tfor i, arg := range c.Args {\n\t\tif i > 0 {\n\t\t\ts += \" \"\n\t\t}\n\t\tif arg, ok := arg.(*PipeNode); ok {\n\t\t\ts += \"(\" + arg.String() + \")\"\n\t\t\tcontinue\n\t\t}\n\t\ts += arg.String()\n\t}\n\treturn s\n}\n\nfunc (c *CommandNode) tree() *Tree {\n\treturn c.tr\n}\n\nfunc (c *CommandNode) Copy() Node {\n\tif c == nil {\n\t\treturn c\n\t}\n\tn := c.tr.newCommand(c.Pos)\n\tfor _, c := range c.Args {\n\t\tn.append(c.Copy())\n\t}\n\treturn n\n}\n\n// IdentifierNode holds an identifier.\ntype IdentifierNode struct {\n\tNodeType\n\tPos\n\ttr    *Tree\n\tIdent string // The identifier's name.\n}\n\n// NewIdentifier returns a new IdentifierNode with the given identifier name.\nfunc NewIdentifier(ident string) *IdentifierNode {\n\treturn &IdentifierNode{NodeType: NodeIdentifier, Ident: ident}\n}\n\n// SetPos sets the position. NewIdentifier is a public method so we can't modify its signature.\n// Chained for convenience.\n// TODO: fix one day?\nfunc (i *IdentifierNode) SetPos(pos Pos) *IdentifierNode {\n\ti.Pos = pos\n\treturn i\n}\n\n// SetTree sets the parent tree for the node. NewIdentifier is a public method so we can't modify its signature.\n// Chained for convenience.\n// TODO: fix one day?\nfunc (i *IdentifierNode) SetTree(t *Tree) *IdentifierNode {\n\ti.tr = t\n\treturn i\n}\n\nfunc (i *IdentifierNode) String() string {\n\treturn i.Ident\n}\n\nfunc (i *IdentifierNode) tree() *Tree {\n\treturn i.tr\n}\n\nfunc (i *IdentifierNode) Copy() Node {\n\treturn NewIdentifier(i.Ident).SetTree(i.tr).SetPos(i.Pos)\n}\n\n// VariableNode holds a list of variable names, possibly with chained field\n// accesses. The dollar sign is part of the (first) name.\ntype VariableNode struct {\n\tNodeType\n\tPos\n\ttr    *Tree\n\tIdent []string // Variable name and fields in lexical order.\n}\n\nfunc (t *Tree) newVariable(pos Pos, ident string) *VariableNode {\n\treturn &VariableNode{tr: t, NodeType: NodeVariable, Pos: pos, Ident: strings.Split(ident, \".\")}\n}\n\nfunc (v *VariableNode) String() string {\n\ts := \"\"\n\tfor i, id := range v.Ident {\n\t\tif i > 0 {\n\t\t\ts += \".\"\n\t\t}\n\t\ts += id\n\t}\n\treturn s\n}\n\nfunc (v *VariableNode) tree() *Tree {\n\treturn v.tr\n}\n\nfunc (v *VariableNode) Copy() Node {\n\treturn &VariableNode{tr: v.tr, NodeType: NodeVariable, Pos: v.Pos, Ident: append([]string{}, v.Ident...)}\n}\n\n// DotNode holds the special identifier '.'.\ntype DotNode struct {\n\tNodeType\n\tPos\n\ttr *Tree\n}\n\nfunc (t *Tree) newDot(pos Pos) *DotNode {\n\treturn &DotNode{tr: t, NodeType: NodeDot, Pos: pos}\n}\n\nfunc (d *DotNode) Type() NodeType {\n\t// Override method on embedded NodeType for API compatibility.\n\t// TODO: Not really a problem; could change API without effect but\n\t// api tool complains.\n\treturn NodeDot\n}\n\nfunc (d *DotNode) String() string {\n\treturn \".\"\n}\n\nfunc (d *DotNode) tree() *Tree {\n\treturn d.tr\n}\n\nfunc (d *DotNode) Copy() Node {\n\treturn d.tr.newDot(d.Pos)\n}\n\n// NilNode holds the special identifier 'nil' representing an untyped nil constant.\ntype NilNode struct {\n\tNodeType\n\tPos\n\ttr *Tree\n}\n\nfunc (t *Tree) newNil(pos Pos) *NilNode {\n\treturn &NilNode{tr: t, NodeType: NodeNil, Pos: pos}\n}\n\nfunc (n *NilNode) Type() NodeType {\n\t// Override method on embedded NodeType for API compatibility.\n\t// TODO: Not really a problem; could change API without effect but\n\t// api tool complains.\n\treturn NodeNil\n}\n\nfunc (n *NilNode) String() string {\n\treturn \"nil\"\n}\n\nfunc (n *NilNode) tree() *Tree {\n\treturn n.tr\n}\n\nfunc (n *NilNode) Copy() Node {\n\treturn n.tr.newNil(n.Pos)\n}\n\n// FieldNode holds a field (identifier starting with '.').\n// The names may be chained ('.x.y').\n// The period is dropped from each ident.\ntype FieldNode struct {\n\tNodeType\n\tPos\n\ttr    *Tree\n\tIdent []string // The identifiers in lexical order.\n}\n\nfunc (t *Tree) newField(pos Pos, ident string) *FieldNode {\n\treturn &FieldNode{tr: t, NodeType: NodeField, Pos: pos, Ident: strings.Split(ident[1:], \".\")} // [1:] to drop leading period\n}\n\nfunc (f *FieldNode) String() string {\n\ts := \"\"\n\tfor _, id := range f.Ident {\n\t\ts += \".\" + id\n\t}\n\treturn s\n}\n\nfunc (f *FieldNode) tree() *Tree {\n\treturn f.tr\n}\n\nfunc (f *FieldNode) Copy() Node {\n\treturn &FieldNode{tr: f.tr, NodeType: NodeField, Pos: f.Pos, Ident: append([]string{}, f.Ident...)}\n}\n\n// ChainNode holds a term followed by a chain of field accesses (identifier starting with '.').\n// The names may be chained ('.x.y').\n// The periods are dropped from each ident.\ntype ChainNode struct {\n\tNodeType\n\tPos\n\ttr    *Tree\n\tNode  Node\n\tField []string // The identifiers in lexical order.\n}\n\nfunc (t *Tree) newChain(pos Pos, node Node) *ChainNode {\n\treturn &ChainNode{tr: t, NodeType: NodeChain, Pos: pos, Node: node}\n}\n\n// Add adds the named field (which should start with a period) to the end of the chain.\nfunc (c *ChainNode) Add(field string) {\n\tif len(field) == 0 || field[0] != '.' {\n\t\tpanic(\"no dot in field\")\n\t}\n\tfield = field[1:] // Remove leading dot.\n\tif field == \"\" {\n\t\tpanic(\"empty field\")\n\t}\n\tc.Field = append(c.Field, field)\n}\n\nfunc (c *ChainNode) String() string {\n\ts := c.Node.String()\n\tif _, ok := c.Node.(*PipeNode); ok {\n\t\ts = \"(\" + s + \")\"\n\t}\n\tfor _, field := range c.Field {\n\t\ts += \".\" + field\n\t}\n\treturn s\n}\n\nfunc (c *ChainNode) tree() *Tree {\n\treturn c.tr\n}\n\nfunc (c *ChainNode) Copy() Node {\n\treturn &ChainNode{tr: c.tr, NodeType: NodeChain, Pos: c.Pos, Node: c.Node, Field: append([]string{}, c.Field...)}\n}\n\n// BoolNode holds a boolean constant.\ntype BoolNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tTrue bool // The value of the boolean constant.\n}\n\nfunc (t *Tree) newBool(pos Pos, true bool) *BoolNode {\n\treturn &BoolNode{tr: t, NodeType: NodeBool, Pos: pos, True: true}\n}\n\nfunc (b *BoolNode) String() string {\n\tif b.True {\n\t\treturn \"true\"\n\t}\n\treturn \"false\"\n}\n\nfunc (b *BoolNode) tree() *Tree {\n\treturn b.tr\n}\n\nfunc (b *BoolNode) Copy() Node {\n\treturn b.tr.newBool(b.Pos, b.True)\n}\n\n// NumberNode holds a number: signed or unsigned integer, float, or complex.\n// The value is parsed and stored under all the types that can represent the value.\n// This simulates in a small amount of code the behavior of Go's ideal constants.\ntype NumberNode struct {\n\tNodeType\n\tPos\n\ttr         *Tree\n\tIsInt      bool       // Number has an integral value.\n\tIsUint     bool       // Number has an unsigned integral value.\n\tIsFloat    bool       // Number has a floating-point value.\n\tIsComplex  bool       // Number is complex.\n\tInt64      int64      // The signed integer value.\n\tUint64     uint64     // The unsigned integer value.\n\tFloat64    float64    // The floating-point value.\n\tComplex128 complex128 // The complex value.\n\tText       string     // The original textual representation from the input.\n}\n\nfunc (t *Tree) newNumber(pos Pos, text string, typ itemType) (*NumberNode, error) {\n\tn := &NumberNode{tr: t, NodeType: NodeNumber, Pos: pos, Text: text}\n\tswitch typ {\n\tcase itemCharConstant:\n\t\trune, _, tail, err := strconv.UnquoteChar(text[1:], text[0])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif tail != \"'\" {\n\t\t\treturn nil, fmt.Errorf(\"malformed character constant: %s\", text)\n\t\t}\n\t\tn.Int64 = int64(rune)\n\t\tn.IsInt = true\n\t\tn.Uint64 = uint64(rune)\n\t\tn.IsUint = true\n\t\tn.Float64 = float64(rune) // odd but those are the rules.\n\t\tn.IsFloat = true\n\t\treturn n, nil\n\tcase itemComplex:\n\t\t// fmt.Sscan can parse the pair, so let it do the work.\n\t\tif _, err := fmt.Sscan(text, &n.Complex128); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tn.IsComplex = true\n\t\tn.simplifyComplex()\n\t\treturn n, nil\n\t}\n\t// Imaginary constants can only be complex unless they are zero.\n\tif len(text) > 0 && text[len(text)-1] == 'i' {\n\t\tf, err := strconv.ParseFloat(text[:len(text)-1], 64)\n\t\tif err == nil {\n\t\t\tn.IsComplex = true\n\t\t\tn.Complex128 = complex(0, f)\n\t\t\tn.simplifyComplex()\n\t\t\treturn n, nil\n\t\t}\n\t}\n\t// Do integer test first so we get 0x123 etc.\n\tu, err := strconv.ParseUint(text, 0, 64) // will fail for -0; fixed below.\n\tif err == nil {\n\t\tn.IsUint = true\n\t\tn.Uint64 = u\n\t}\n\ti, err := strconv.ParseInt(text, 0, 64)\n\tif err == nil {\n\t\tn.IsInt = true\n\t\tn.Int64 = i\n\t\tif i == 0 {\n\t\t\tn.IsUint = true // in case of -0.\n\t\t\tn.Uint64 = u\n\t\t}\n\t}\n\t// If an integer extraction succeeded, promote the float.\n\tif n.IsInt {\n\t\tn.IsFloat = true\n\t\tn.Float64 = float64(n.Int64)\n\t} else if n.IsUint {\n\t\tn.IsFloat = true\n\t\tn.Float64 = float64(n.Uint64)\n\t} else {\n\t\tf, err := strconv.ParseFloat(text, 64)\n\t\tif err == nil {\n\t\t\tn.IsFloat = true\n\t\t\tn.Float64 = f\n\t\t\t// If a floating-point extraction succeeded, extract the int if needed.\n\t\t\tif !n.IsInt && float64(int64(f)) == f {\n\t\t\t\tn.IsInt = true\n\t\t\t\tn.Int64 = int64(f)\n\t\t\t}\n\t\t\tif !n.IsUint && float64(uint64(f)) == f {\n\t\t\t\tn.IsUint = true\n\t\t\t\tn.Uint64 = uint64(f)\n\t\t\t}\n\t\t}\n\t}\n\tif !n.IsInt && !n.IsUint && !n.IsFloat {\n\t\treturn nil, fmt.Errorf(\"illegal number syntax: %q\", text)\n\t}\n\treturn n, nil\n}\n\n// simplifyComplex pulls out any other types that are represented by the complex number.\n// These all require that the imaginary part be zero.\nfunc (n *NumberNode) simplifyComplex() {\n\tn.IsFloat = imag(n.Complex128) == 0\n\tif n.IsFloat {\n\t\tn.Float64 = real(n.Complex128)\n\t\tn.IsInt = float64(int64(n.Float64)) == n.Float64\n\t\tif n.IsInt {\n\t\t\tn.Int64 = int64(n.Float64)\n\t\t}\n\t\tn.IsUint = float64(uint64(n.Float64)) == n.Float64\n\t\tif n.IsUint {\n\t\t\tn.Uint64 = uint64(n.Float64)\n\t\t}\n\t}\n}\n\nfunc (n *NumberNode) String() string {\n\treturn n.Text\n}\n\nfunc (n *NumberNode) tree() *Tree {\n\treturn n.tr\n}\n\nfunc (n *NumberNode) Copy() Node {\n\tnn := new(NumberNode)\n\t*nn = *n // Easy, fast, correct.\n\treturn nn\n}\n\n// StringNode holds a string constant. The value has been \"unquoted\".\ntype StringNode struct {\n\tNodeType\n\tPos\n\ttr     *Tree\n\tQuoted string // The original text of the string, with quotes.\n\tText   string // The string, after quote processing.\n}\n\nfunc (t *Tree) newString(pos Pos, orig, text string) *StringNode {\n\treturn &StringNode{tr: t, NodeType: NodeString, Pos: pos, Quoted: orig, Text: text}\n}\n\nfunc (s *StringNode) String() string {\n\treturn s.Quoted\n}\n\nfunc (s *StringNode) tree() *Tree {\n\treturn s.tr\n}\n\nfunc (s *StringNode) Copy() Node {\n\treturn s.tr.newString(s.Pos, s.Quoted, s.Text)\n}\n\n// endNode represents an {{end}} action.\n// It does not appear in the final parse tree.\ntype endNode struct {\n\tNodeType\n\tPos\n\ttr *Tree\n}\n\nfunc (t *Tree) newEnd(pos Pos) *endNode {\n\treturn &endNode{tr: t, NodeType: nodeEnd, Pos: pos}\n}\n\nfunc (e *endNode) String() string {\n\treturn \"{{end}}\"\n}\n\nfunc (e *endNode) tree() *Tree {\n\treturn e.tr\n}\n\nfunc (e *endNode) Copy() Node {\n\treturn e.tr.newEnd(e.Pos)\n}\n\n// elseNode represents an {{else}} action. Does not appear in the final tree.\ntype elseNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tLine int // The line number in the input (deprecated; kept for compatibility)\n}\n\nfunc (t *Tree) newElse(pos Pos, line int) *elseNode {\n\treturn &elseNode{tr: t, NodeType: nodeElse, Pos: pos, Line: line}\n}\n\nfunc (e *elseNode) Type() NodeType {\n\treturn nodeElse\n}\n\nfunc (e *elseNode) String() string {\n\treturn \"{{else}}\"\n}\n\nfunc (e *elseNode) tree() *Tree {\n\treturn e.tr\n}\n\nfunc (e *elseNode) Copy() Node {\n\treturn e.tr.newElse(e.Pos, e.Line)\n}\n\n// BranchNode is the common representation of if, range, and with.\ntype BranchNode struct {\n\tNodeType\n\tPos\n\ttr       *Tree\n\tLine     int       // The line number in the input (deprecated; kept for compatibility)\n\tPipe     *PipeNode // The pipeline to be evaluated.\n\tList     *ListNode // What to execute if the value is non-empty.\n\tElseList *ListNode // What to execute if the value is empty (nil if absent).\n}\n\nfunc (b *BranchNode) String() string {\n\tname := \"\"\n\tswitch b.NodeType {\n\tcase NodeIf:\n\t\tname = \"if\"\n\tcase NodeRange:\n\t\tname = \"range\"\n\tcase NodeWith:\n\t\tname = \"with\"\n\tdefault:\n\t\tpanic(\"unknown branch type\")\n\t}\n\tif b.ElseList != nil {\n\t\treturn fmt.Sprintf(\"{{%s %s}}%s{{else}}%s{{end}}\", name, b.Pipe, b.List, b.ElseList)\n\t}\n\treturn fmt.Sprintf(\"{{%s %s}}%s{{end}}\", name, b.Pipe, b.List)\n}\n\nfunc (b *BranchNode) tree() *Tree {\n\treturn b.tr\n}\n\nfunc (b *BranchNode) Copy() Node {\n\tswitch b.NodeType {\n\tcase NodeIf:\n\t\treturn b.tr.newIf(b.Pos, b.Line, b.Pipe, b.List, b.ElseList)\n\tcase NodeRange:\n\t\treturn b.tr.newRange(b.Pos, b.Line, b.Pipe, b.List, b.ElseList)\n\tcase NodeWith:\n\t\treturn b.tr.newWith(b.Pos, b.Line, b.Pipe, b.List, b.ElseList)\n\tdefault:\n\t\tpanic(\"unknown branch type\")\n\t}\n}\n\n// IfNode represents an {{if}} action and its commands.\ntype IfNode struct {\n\tBranchNode\n}\n\nfunc (t *Tree) newIf(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *IfNode {\n\treturn &IfNode{BranchNode{tr: t, NodeType: NodeIf, Pos: pos, Line: line, Pipe: pipe, List: list, ElseList: elseList}}\n}\n\nfunc (i *IfNode) Copy() Node {\n\treturn i.tr.newIf(i.Pos, i.Line, i.Pipe.CopyPipe(), i.List.CopyList(), i.ElseList.CopyList())\n}\n\n// RangeNode represents a {{range}} action and its commands.\ntype RangeNode struct {\n\tBranchNode\n}\n\nfunc (t *Tree) newRange(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *RangeNode {\n\treturn &RangeNode{BranchNode{tr: t, NodeType: NodeRange, Pos: pos, Line: line, Pipe: pipe, List: list, ElseList: elseList}}\n}\n\nfunc (r *RangeNode) Copy() Node {\n\treturn r.tr.newRange(r.Pos, r.Line, r.Pipe.CopyPipe(), r.List.CopyList(), r.ElseList.CopyList())\n}\n\n// WithNode represents a {{with}} action and its commands.\ntype WithNode struct {\n\tBranchNode\n}\n\nfunc (t *Tree) newWith(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *WithNode {\n\treturn &WithNode{BranchNode{tr: t, NodeType: NodeWith, Pos: pos, Line: line, Pipe: pipe, List: list, ElseList: elseList}}\n}\n\nfunc (w *WithNode) Copy() Node {\n\treturn w.tr.newWith(w.Pos, w.Line, w.Pipe.CopyPipe(), w.List.CopyList(), w.ElseList.CopyList())\n}\n\n// TemplateNode represents a {{template}} action.\ntype TemplateNode struct {\n\tNodeType\n\tPos\n\ttr   *Tree\n\tLine int       // The line number in the input (deprecated; kept for compatibility)\n\tName string    // The name of the template (unquoted).\n\tPipe *PipeNode // The command to evaluate as dot for the template.\n}\n\nfunc (t *Tree) newTemplate(pos Pos, line int, name string, pipe *PipeNode) *TemplateNode {\n\treturn &TemplateNode{tr: t, NodeType: NodeTemplate, Pos: pos, Line: line, Name: name, Pipe: pipe}\n}\n\nfunc (t *TemplateNode) String() string {\n\tif t.Pipe == nil {\n\t\treturn fmt.Sprintf(\"{{template %q}}\", t.Name)\n\t}\n\treturn fmt.Sprintf(\"{{template %q %s}}\", t.Name, t.Pipe)\n}\n\nfunc (t *TemplateNode) tree() *Tree {\n\treturn t.tr\n}\n\nfunc (t *TemplateNode) Copy() Node {\n\treturn t.tr.newTemplate(t.Pos, t.Line, t.Name, t.Pipe.CopyPipe())\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/parse/parse.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package parse builds parse trees for templates as defined by text/template\n// and html/template. Clients should use those packages to construct templates\n// rather than this one, which provides shared internal data structures not\n// intended for general use.\npackage parse\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Tree is the representation of a single parsed template.\ntype Tree struct {\n\tName      string    // name of the template represented by the tree.\n\tParseName string    // name of the top-level template during parsing, for error messages.\n\tRoot      *ListNode // top-level root of the tree.\n\ttext      string    // text parsed to create the template (or its parent)\n\t// Parsing only; cleared after parse.\n\tfuncs     []map[string]interface{}\n\tlex       *lexer\n\ttoken     [3]item // three-token lookahead for parser.\n\tpeekCount int\n\tvars      []string // variables defined at the moment.\n}\n\n// Copy returns a copy of the Tree. Any parsing state is discarded.\nfunc (t *Tree) Copy() *Tree {\n\tif t == nil {\n\t\treturn nil\n\t}\n\treturn &Tree{\n\t\tName:      t.Name,\n\t\tParseName: t.ParseName,\n\t\tRoot:      t.Root.CopyList(),\n\t\ttext:      t.text,\n\t}\n}\n\n// Parse returns a map from template name to parse.Tree, created by parsing the\n// templates described in the argument string. The top-level template will be\n// given the specified name. If an error is encountered, parsing stops and an\n// empty map is returned with the error.\nfunc Parse(name, text, leftDelim, rightDelim string, funcs ...map[string]interface{}) (treeSet map[string]*Tree, err error) {\n\ttreeSet = make(map[string]*Tree)\n\tt := New(name)\n\tt.text = text\n\t_, err = t.Parse(text, leftDelim, rightDelim, treeSet, funcs...)\n\treturn\n}\n\n// next returns the next token.\nfunc (t *Tree) next() item {\n\tif t.peekCount > 0 {\n\t\tt.peekCount--\n\t} else {\n\t\tt.token[0] = t.lex.nextItem()\n\t}\n\treturn t.token[t.peekCount]\n}\n\n// backup backs the input stream up one token.\nfunc (t *Tree) backup() {\n\tt.peekCount++\n}\n\n// backup2 backs the input stream up two tokens.\n// The zeroth token is already there.\nfunc (t *Tree) backup2(t1 item) {\n\tt.token[1] = t1\n\tt.peekCount = 2\n}\n\n// backup3 backs the input stream up three tokens\n// The zeroth token is already there.\nfunc (t *Tree) backup3(t2, t1 item) { // Reverse order: we're pushing back.\n\tt.token[1] = t1\n\tt.token[2] = t2\n\tt.peekCount = 3\n}\n\n// peek returns but does not consume the next token.\nfunc (t *Tree) peek() item {\n\tif t.peekCount > 0 {\n\t\treturn t.token[t.peekCount-1]\n\t}\n\tt.peekCount = 1\n\tt.token[0] = t.lex.nextItem()\n\treturn t.token[0]\n}\n\n// nextNonSpace returns the next non-space token.\nfunc (t *Tree) nextNonSpace() (token item) {\n\tfor {\n\t\ttoken = t.next()\n\t\tif token.typ != itemSpace {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn token\n}\n\n// peekNonSpace returns but does not consume the next non-space token.\nfunc (t *Tree) peekNonSpace() (token item) {\n\tfor {\n\t\ttoken = t.next()\n\t\tif token.typ != itemSpace {\n\t\t\tbreak\n\t\t}\n\t}\n\tt.backup()\n\treturn token\n}\n\n// Parsing.\n\n// New allocates a new parse tree with the given name.\nfunc New(name string, funcs ...map[string]interface{}) *Tree {\n\treturn &Tree{\n\t\tName:  name,\n\t\tfuncs: funcs,\n\t}\n}\n\n// ErrorContext returns a textual representation of the location of the node in the input text.\n// The receiver is only used when the node does not have a pointer to the tree inside,\n// which can occur in old code.\nfunc (t *Tree) ErrorContext(n Node) (location, context string) {\n\tpos := int(n.Position())\n\ttree := n.tree()\n\tif tree == nil {\n\t\ttree = t\n\t}\n\ttext := tree.text[:pos]\n\tbyteNum := strings.LastIndex(text, \"\\n\")\n\tif byteNum == -1 {\n\t\tbyteNum = pos // On first line.\n\t} else {\n\t\tbyteNum++ // After the newline.\n\t\tbyteNum = pos - byteNum\n\t}\n\tlineNum := 1 + strings.Count(text, \"\\n\")\n\tcontext = n.String()\n\tif len(context) > 20 {\n\t\tcontext = fmt.Sprintf(\"%.20s...\", context)\n\t}\n\treturn fmt.Sprintf(\"%s:%d:%d\", tree.ParseName, lineNum, byteNum), context\n}\n\n// errorf formats the error and terminates processing.\nfunc (t *Tree) errorf(format string, args ...interface{}) {\n\tt.Root = nil\n\tformat = fmt.Sprintf(\"template: %s:%d: %s\", t.ParseName, t.lex.lineNumber(), format)\n\tpanic(fmt.Errorf(format, args...))\n}\n\n// error terminates processing.\nfunc (t *Tree) error(err error) {\n\tt.errorf(\"%s\", err)\n}\n\n// expect consumes the next token and guarantees it has the required type.\nfunc (t *Tree) expect(expected itemType, context string) item {\n\ttoken := t.nextNonSpace()\n\tif token.typ != expected {\n\t\tt.unexpected(token, context)\n\t}\n\treturn token\n}\n\n// expectOneOf consumes the next token and guarantees it has one of the required types.\nfunc (t *Tree) expectOneOf(expected1, expected2 itemType, context string) item {\n\ttoken := t.nextNonSpace()\n\tif token.typ != expected1 && token.typ != expected2 {\n\t\tt.unexpected(token, context)\n\t}\n\treturn token\n}\n\n// unexpected complains about the token and terminates processing.\nfunc (t *Tree) unexpected(token item, context string) {\n\tt.errorf(\"unexpected %s in %s\", token, context)\n}\n\n// recover is the handler that turns panics into returns from the top level of Parse.\nfunc (t *Tree) recover(errp *error) {\n\te := recover()\n\tif e != nil {\n\t\tif _, ok := e.(runtime.Error); ok {\n\t\t\tpanic(e)\n\t\t}\n\t\tif t != nil {\n\t\t\tt.stopParse()\n\t\t}\n\t\t*errp = e.(error)\n\t}\n\treturn\n}\n\n// startParse initializes the parser, using the lexer.\nfunc (t *Tree) startParse(funcs []map[string]interface{}, lex *lexer) {\n\tt.Root = nil\n\tt.lex = lex\n\tt.vars = []string{\"$\"}\n\tt.funcs = funcs\n}\n\n// stopParse terminates parsing.\nfunc (t *Tree) stopParse() {\n\tt.lex = nil\n\tt.vars = nil\n\tt.funcs = nil\n}\n\n// Parse parses the template definition string to construct a representation of\n// the template for execution. If either action delimiter string is empty, the\n// default (\"{{\" or \"}}\") is used. Embedded template definitions are added to\n// the treeSet map.\nfunc (t *Tree) Parse(text, leftDelim, rightDelim string, treeSet map[string]*Tree, funcs ...map[string]interface{}) (tree *Tree, err error) {\n\tdefer t.recover(&err)\n\tt.ParseName = t.Name\n\tt.startParse(funcs, lex(t.Name, text, leftDelim, rightDelim))\n\tt.text = text\n\tt.parse(treeSet)\n\tt.add(treeSet)\n\tt.stopParse()\n\treturn t, nil\n}\n\n// add adds tree to the treeSet.\nfunc (t *Tree) add(treeSet map[string]*Tree) {\n\ttree := treeSet[t.Name]\n\tif tree == nil || IsEmptyTree(tree.Root) {\n\t\ttreeSet[t.Name] = t\n\t\treturn\n\t}\n\tif !IsEmptyTree(t.Root) {\n\t\tt.errorf(\"template: multiple definition of template %q\", t.Name)\n\t}\n}\n\n// IsEmptyTree reports whether this tree (node) is empty of everything but space.\nfunc IsEmptyTree(n Node) bool {\n\tswitch n := n.(type) {\n\tcase nil:\n\t\treturn true\n\tcase *ActionNode:\n\tcase *IfNode:\n\tcase *ListNode:\n\t\tfor _, node := range n.Nodes {\n\t\t\tif !IsEmptyTree(node) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase *RangeNode:\n\tcase *TemplateNode:\n\tcase *TextNode:\n\t\treturn len(bytes.TrimSpace(n.Text)) == 0\n\tcase *WithNode:\n\tdefault:\n\t\tpanic(\"unknown node: \" + n.String())\n\t}\n\treturn false\n}\n\n// parse is the top-level parser for a template, essentially the same\n// as itemList except it also parses {{define}} actions.\n// It runs to EOF.\nfunc (t *Tree) parse(treeSet map[string]*Tree) (next Node) {\n\tt.Root = t.newList(t.peek().pos)\n\tfor t.peek().typ != itemEOF {\n\t\tif t.peek().typ == itemLeftDelim {\n\t\t\tdelim := t.next()\n\t\t\tif t.nextNonSpace().typ == itemDefine {\n\t\t\t\tnewT := New(\"definition\") // name will be updated once we know it.\n\t\t\t\tnewT.text = t.text\n\t\t\t\tnewT.ParseName = t.ParseName\n\t\t\t\tnewT.startParse(t.funcs, t.lex)\n\t\t\t\tnewT.parseDefinition(treeSet)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tt.backup2(delim)\n\t\t}\n\t\tn := t.textOrAction()\n\t\tif n.Type() == nodeEnd {\n\t\t\tt.errorf(\"unexpected %s\", n)\n\t\t}\n\t\tt.Root.append(n)\n\t}\n\treturn nil\n}\n\n// parseDefinition parses a {{define}} ...  {{end}} template definition and\n// installs the definition in the treeSet map.  The \"define\" keyword has already\n// been scanned.\nfunc (t *Tree) parseDefinition(treeSet map[string]*Tree) {\n\tconst context = \"define clause\"\n\tname := t.expectOneOf(itemString, itemRawString, context)\n\tvar err error\n\tt.Name, err = strconv.Unquote(name.val)\n\tif err != nil {\n\t\tt.error(err)\n\t}\n\tt.expect(itemRightDelim, context)\n\tvar end Node\n\tt.Root, end = t.itemList()\n\tif end.Type() != nodeEnd {\n\t\tt.errorf(\"unexpected %s in %s\", end, context)\n\t}\n\tt.add(treeSet)\n\tt.stopParse()\n}\n\n// itemList:\n//\ttextOrAction*\n// Terminates at {{end}} or {{else}}, returned separately.\nfunc (t *Tree) itemList() (list *ListNode, next Node) {\n\tlist = t.newList(t.peekNonSpace().pos)\n\tfor t.peekNonSpace().typ != itemEOF {\n\t\tn := t.textOrAction()\n\t\tswitch n.Type() {\n\t\tcase nodeEnd, nodeElse:\n\t\t\treturn list, n\n\t\t}\n\t\tlist.append(n)\n\t}\n\tt.errorf(\"unexpected EOF\")\n\treturn\n}\n\n// textOrAction:\n//\ttext | action\nfunc (t *Tree) textOrAction() Node {\n\tswitch token := t.nextNonSpace(); token.typ {\n\tcase itemElideNewline:\n\t\treturn t.elideNewline()\n\tcase itemText:\n\t\treturn t.newText(token.pos, token.val)\n\tcase itemLeftDelim:\n\t\treturn t.action()\n\tdefault:\n\t\tt.unexpected(token, \"input\")\n\t}\n\treturn nil\n}\n\n// elideNewline:\n// Remove newlines trailing rightDelim if \\\\ is present.\nfunc (t *Tree) elideNewline() Node {\n\ttoken := t.peek()\n\tif token.typ != itemText {\n\t\tt.unexpected(token, \"input\")\n\t\treturn nil\n\t}\n\n\tt.next()\n\tstripped := strings.TrimLeft(token.val, \"\\n\\r\")\n\tdiff := len(token.val) - len(stripped)\n\tif diff > 0 {\n\t\t// This is a bit nasty. We mutate the token in-place to remove\n\t\t// preceding newlines.\n\t\ttoken.pos += Pos(diff)\n\t\ttoken.val = stripped\n\t}\n\treturn t.newText(token.pos, token.val)\n}\n\n// Action:\n//\tcontrol\n//\tcommand (\"|\" command)*\n// Left delim is past. Now get actions.\n// First word could be a keyword such as range.\nfunc (t *Tree) action() (n Node) {\n\tswitch token := t.nextNonSpace(); token.typ {\n\tcase itemElse:\n\t\treturn t.elseControl()\n\tcase itemEnd:\n\t\treturn t.endControl()\n\tcase itemIf:\n\t\treturn t.ifControl()\n\tcase itemRange:\n\t\treturn t.rangeControl()\n\tcase itemTemplate:\n\t\treturn t.templateControl()\n\tcase itemWith:\n\t\treturn t.withControl()\n\t}\n\tt.backup()\n\t// Do not pop variables; they persist until \"end\".\n\treturn t.newAction(t.peek().pos, t.lex.lineNumber(), t.pipeline(\"command\"))\n}\n\n// Pipeline:\n//\tdeclarations? command ('|' command)*\nfunc (t *Tree) pipeline(context string) (pipe *PipeNode) {\n\tvar decl []*VariableNode\n\tpos := t.peekNonSpace().pos\n\t// Are there declarations?\n\tfor {\n\t\tif v := t.peekNonSpace(); v.typ == itemVariable {\n\t\t\tt.next()\n\t\t\t// Since space is a token, we need 3-token look-ahead here in the worst case:\n\t\t\t// in \"$x foo\" we need to read \"foo\" (as opposed to \":=\") to know that $x is an\n\t\t\t// argument variable rather than a declaration. So remember the token\n\t\t\t// adjacent to the variable so we can push it back if necessary.\n\t\t\ttokenAfterVariable := t.peek()\n\t\t\tif next := t.peekNonSpace(); next.typ == itemColonEquals || (next.typ == itemChar && next.val == \",\") {\n\t\t\t\tt.nextNonSpace()\n\t\t\t\tvariable := t.newVariable(v.pos, v.val)\n\t\t\t\tdecl = append(decl, variable)\n\t\t\t\tt.vars = append(t.vars, v.val)\n\t\t\t\tif next.typ == itemChar && next.val == \",\" {\n\t\t\t\t\tif context == \"range\" && len(decl) < 2 {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tt.errorf(\"too many declarations in %s\", context)\n\t\t\t\t}\n\t\t\t} else if tokenAfterVariable.typ == itemSpace {\n\t\t\t\tt.backup3(v, tokenAfterVariable)\n\t\t\t} else {\n\t\t\t\tt.backup2(v)\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\tpipe = t.newPipeline(pos, t.lex.lineNumber(), decl)\n\tfor {\n\t\tswitch token := t.nextNonSpace(); token.typ {\n\t\tcase itemRightDelim, itemRightParen:\n\t\t\tif len(pipe.Cmds) == 0 {\n\t\t\t\tt.errorf(\"missing value for %s\", context)\n\t\t\t}\n\t\t\tif token.typ == itemRightParen {\n\t\t\t\tt.backup()\n\t\t\t}\n\t\t\treturn\n\t\tcase itemBool, itemCharConstant, itemComplex, itemDot, itemField, itemIdentifier,\n\t\t\titemNumber, itemNil, itemRawString, itemString, itemVariable, itemLeftParen:\n\t\t\tt.backup()\n\t\t\tpipe.append(t.command())\n\t\tdefault:\n\t\t\tt.unexpected(token, context)\n\t\t}\n\t}\n}\n\nfunc (t *Tree) parseControl(allowElseIf bool, context string) (pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) {\n\tdefer t.popVars(len(t.vars))\n\tline = t.lex.lineNumber()\n\tpipe = t.pipeline(context)\n\tvar next Node\n\tlist, next = t.itemList()\n\tswitch next.Type() {\n\tcase nodeEnd: //done\n\tcase nodeElse:\n\t\tif allowElseIf {\n\t\t\t// Special case for \"else if\". If the \"else\" is followed immediately by an \"if\",\n\t\t\t// the elseControl will have left the \"if\" token pending. Treat\n\t\t\t//\t{{if a}}_{{else if b}}_{{end}}\n\t\t\t// as\n\t\t\t//\t{{if a}}_{{else}}{{if b}}_{{end}}{{end}}.\n\t\t\t// To do this, parse the if as usual and stop at it {{end}}; the subsequent{{end}}\n\t\t\t// is assumed. This technique works even for long if-else-if chains.\n\t\t\t// TODO: Should we allow else-if in with and range?\n\t\t\tif t.peek().typ == itemIf {\n\t\t\t\tt.next() // Consume the \"if\" token.\n\t\t\t\telseList = t.newList(next.Position())\n\t\t\t\telseList.append(t.ifControl())\n\t\t\t\t// Do not consume the next item - only one {{end}} required.\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\telseList, next = t.itemList()\n\t\tif next.Type() != nodeEnd {\n\t\t\tt.errorf(\"expected end; found %s\", next)\n\t\t}\n\t}\n\treturn pipe.Position(), line, pipe, list, elseList\n}\n\n// If:\n//\t{{if pipeline}} itemList {{end}}\n//\t{{if pipeline}} itemList {{else}} itemList {{end}}\n// If keyword is past.\nfunc (t *Tree) ifControl() Node {\n\treturn t.newIf(t.parseControl(true, \"if\"))\n}\n\n// Range:\n//\t{{range pipeline}} itemList {{end}}\n//\t{{range pipeline}} itemList {{else}} itemList {{end}}\n// Range keyword is past.\nfunc (t *Tree) rangeControl() Node {\n\treturn t.newRange(t.parseControl(false, \"range\"))\n}\n\n// With:\n//\t{{with pipeline}} itemList {{end}}\n//\t{{with pipeline}} itemList {{else}} itemList {{end}}\n// If keyword is past.\nfunc (t *Tree) withControl() Node {\n\treturn t.newWith(t.parseControl(false, \"with\"))\n}\n\n// End:\n//\t{{end}}\n// End keyword is past.\nfunc (t *Tree) endControl() Node {\n\treturn t.newEnd(t.expect(itemRightDelim, \"end\").pos)\n}\n\n// Else:\n//\t{{else}}\n// Else keyword is past.\nfunc (t *Tree) elseControl() Node {\n\t// Special case for \"else if\".\n\tpeek := t.peekNonSpace()\n\tif peek.typ == itemIf {\n\t\t// We see \"{{else if ... \" but in effect rewrite it to {{else}}{{if ... \".\n\t\treturn t.newElse(peek.pos, t.lex.lineNumber())\n\t}\n\treturn t.newElse(t.expect(itemRightDelim, \"else\").pos, t.lex.lineNumber())\n}\n\n// Template:\n//\t{{template stringValue pipeline}}\n// Template keyword is past.  The name must be something that can evaluate\n// to a string.\nfunc (t *Tree) templateControl() Node {\n\tvar name string\n\ttoken := t.nextNonSpace()\n\tswitch token.typ {\n\tcase itemString, itemRawString:\n\t\ts, err := strconv.Unquote(token.val)\n\t\tif err != nil {\n\t\t\tt.error(err)\n\t\t}\n\t\tname = s\n\tdefault:\n\t\tt.unexpected(token, \"template invocation\")\n\t}\n\tvar pipe *PipeNode\n\tif t.nextNonSpace().typ != itemRightDelim {\n\t\tt.backup()\n\t\t// Do not pop variables; they persist until \"end\".\n\t\tpipe = t.pipeline(\"template\")\n\t}\n\treturn t.newTemplate(token.pos, t.lex.lineNumber(), name, pipe)\n}\n\n// command:\n//\toperand (space operand)*\n// space-separated arguments up to a pipeline character or right delimiter.\n// we consume the pipe character but leave the right delim to terminate the action.\nfunc (t *Tree) command() *CommandNode {\n\tcmd := t.newCommand(t.peekNonSpace().pos)\n\tfor {\n\t\tt.peekNonSpace() // skip leading spaces.\n\t\toperand := t.operand()\n\t\tif operand != nil {\n\t\t\tcmd.append(operand)\n\t\t}\n\t\tswitch token := t.next(); token.typ {\n\t\tcase itemSpace:\n\t\t\tcontinue\n\t\tcase itemError:\n\t\t\tt.errorf(\"%s\", token.val)\n\t\tcase itemRightDelim, itemRightParen:\n\t\t\tt.backup()\n\t\tcase itemPipe:\n\t\tdefault:\n\t\t\tt.errorf(\"unexpected %s in operand; missing space?\", token)\n\t\t}\n\t\tbreak\n\t}\n\tif len(cmd.Args) == 0 {\n\t\tt.errorf(\"empty command\")\n\t}\n\treturn cmd\n}\n\n// operand:\n//\tterm .Field*\n// An operand is a space-separated component of a command,\n// a term possibly followed by field accesses.\n// A nil return means the next item is not an operand.\nfunc (t *Tree) operand() Node {\n\tnode := t.term()\n\tif node == nil {\n\t\treturn nil\n\t}\n\tif t.peek().typ == itemField {\n\t\tchain := t.newChain(t.peek().pos, node)\n\t\tfor t.peek().typ == itemField {\n\t\t\tchain.Add(t.next().val)\n\t\t}\n\t\t// Compatibility with original API: If the term is of type NodeField\n\t\t// or NodeVariable, just put more fields on the original.\n\t\t// Otherwise, keep the Chain node.\n\t\t// TODO: Switch to Chains always when we can.\n\t\tswitch node.Type() {\n\t\tcase NodeField:\n\t\t\tnode = t.newField(chain.Position(), chain.String())\n\t\tcase NodeVariable:\n\t\t\tnode = t.newVariable(chain.Position(), chain.String())\n\t\tdefault:\n\t\t\tnode = chain\n\t\t}\n\t}\n\treturn node\n}\n\n// term:\n//\tliteral (number, string, nil, boolean)\n//\tfunction (identifier)\n//\t.\n//\t.Field\n//\t$\n//\t'(' pipeline ')'\n// A term is a simple \"expression\".\n// A nil return means the next item is not a term.\nfunc (t *Tree) term() Node {\n\tswitch token := t.nextNonSpace(); token.typ {\n\tcase itemError:\n\t\tt.errorf(\"%s\", token.val)\n\tcase itemIdentifier:\n\t\tif !t.hasFunction(token.val) {\n\t\t\tt.errorf(\"function %q not defined\", token.val)\n\t\t}\n\t\treturn NewIdentifier(token.val).SetTree(t).SetPos(token.pos)\n\tcase itemDot:\n\t\treturn t.newDot(token.pos)\n\tcase itemNil:\n\t\treturn t.newNil(token.pos)\n\tcase itemVariable:\n\t\treturn t.useVar(token.pos, token.val)\n\tcase itemField:\n\t\treturn t.newField(token.pos, token.val)\n\tcase itemBool:\n\t\treturn t.newBool(token.pos, token.val == \"true\")\n\tcase itemCharConstant, itemComplex, itemNumber:\n\t\tnumber, err := t.newNumber(token.pos, token.val, token.typ)\n\t\tif err != nil {\n\t\t\tt.error(err)\n\t\t}\n\t\treturn number\n\tcase itemLeftParen:\n\t\tpipe := t.pipeline(\"parenthesized pipeline\")\n\t\tif token := t.next(); token.typ != itemRightParen {\n\t\t\tt.errorf(\"unclosed right paren: unexpected %s\", token)\n\t\t}\n\t\treturn pipe\n\tcase itemString, itemRawString:\n\t\ts, err := strconv.Unquote(token.val)\n\t\tif err != nil {\n\t\t\tt.error(err)\n\t\t}\n\t\treturn t.newString(token.pos, token.val, s)\n\t}\n\tt.backup()\n\treturn nil\n}\n\n// hasFunction reports if a function name exists in the Tree's maps.\nfunc (t *Tree) hasFunction(name string) bool {\n\tfor _, funcMap := range t.funcs {\n\t\tif funcMap == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif funcMap[name] != nil {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// popVars trims the variable list to the specified length\nfunc (t *Tree) popVars(n int) {\n\tt.vars = t.vars[:n]\n}\n\n// useVar returns a node for a variable reference. It errors if the\n// variable is not defined.\nfunc (t *Tree) useVar(pos Pos, name string) Node {\n\tv := t.newVariable(pos, name)\n\tfor _, varName := range t.vars {\n\t\tif varName == v.Ident[0] {\n\t\t\treturn v\n\t\t}\n\t}\n\tt.errorf(\"undefined variable %q\", v.Ident[0])\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/alecthomas/template/template.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage template\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"github.com/alecthomas/template/parse\"\n)\n\n// common holds the information shared by related templates.\ntype common struct {\n\ttmpl map[string]*Template\n\t// We use two maps, one for parsing and one for execution.\n\t// This separation makes the API cleaner since it doesn't\n\t// expose reflection to the client.\n\tparseFuncs FuncMap\n\texecFuncs  map[string]reflect.Value\n}\n\n// Template is the representation of a parsed template. The *parse.Tree\n// field is exported only for use by html/template and should be treated\n// as unexported by all other clients.\ntype Template struct {\n\tname string\n\t*parse.Tree\n\t*common\n\tleftDelim  string\n\trightDelim string\n}\n\n// New allocates a new template with the given name.\nfunc New(name string) *Template {\n\treturn &Template{\n\t\tname: name,\n\t}\n}\n\n// Name returns the name of the template.\nfunc (t *Template) Name() string {\n\treturn t.name\n}\n\n// New allocates a new template associated with the given one and with the same\n// delimiters. The association, which is transitive, allows one template to\n// invoke another with a {{template}} action.\nfunc (t *Template) New(name string) *Template {\n\tt.init()\n\treturn &Template{\n\t\tname:       name,\n\t\tcommon:     t.common,\n\t\tleftDelim:  t.leftDelim,\n\t\trightDelim: t.rightDelim,\n\t}\n}\n\nfunc (t *Template) init() {\n\tif t.common == nil {\n\t\tt.common = new(common)\n\t\tt.tmpl = make(map[string]*Template)\n\t\tt.parseFuncs = make(FuncMap)\n\t\tt.execFuncs = make(map[string]reflect.Value)\n\t}\n}\n\n// Clone returns a duplicate of the template, including all associated\n// templates. The actual representation is not copied, but the name space of\n// associated templates is, so further calls to Parse in the copy will add\n// templates to the copy but not to the original. Clone can be used to prepare\n// common templates and use them with variant definitions for other templates\n// by adding the variants after the clone is made.\nfunc (t *Template) Clone() (*Template, error) {\n\tnt := t.copy(nil)\n\tnt.init()\n\tnt.tmpl[t.name] = nt\n\tfor k, v := range t.tmpl {\n\t\tif k == t.name { // Already installed.\n\t\t\tcontinue\n\t\t}\n\t\t// The associated templates share nt's common structure.\n\t\ttmpl := v.copy(nt.common)\n\t\tnt.tmpl[k] = tmpl\n\t}\n\tfor k, v := range t.parseFuncs {\n\t\tnt.parseFuncs[k] = v\n\t}\n\tfor k, v := range t.execFuncs {\n\t\tnt.execFuncs[k] = v\n\t}\n\treturn nt, nil\n}\n\n// copy returns a shallow copy of t, with common set to the argument.\nfunc (t *Template) copy(c *common) *Template {\n\tnt := New(t.name)\n\tnt.Tree = t.Tree\n\tnt.common = c\n\tnt.leftDelim = t.leftDelim\n\tnt.rightDelim = t.rightDelim\n\treturn nt\n}\n\n// AddParseTree creates a new template with the name and parse tree\n// and associates it with t.\nfunc (t *Template) AddParseTree(name string, tree *parse.Tree) (*Template, error) {\n\tif t.common != nil && t.tmpl[name] != nil {\n\t\treturn nil, fmt.Errorf(\"template: redefinition of template %q\", name)\n\t}\n\tnt := t.New(name)\n\tnt.Tree = tree\n\tt.tmpl[name] = nt\n\treturn nt, nil\n}\n\n// Templates returns a slice of the templates associated with t, including t\n// itself.\nfunc (t *Template) Templates() []*Template {\n\tif t.common == nil {\n\t\treturn nil\n\t}\n\t// Return a slice so we don't expose the map.\n\tm := make([]*Template, 0, len(t.tmpl))\n\tfor _, v := range t.tmpl {\n\t\tm = append(m, v)\n\t}\n\treturn m\n}\n\n// Delims sets the action delimiters to the specified strings, to be used in\n// subsequent calls to Parse, ParseFiles, or ParseGlob. Nested template\n// definitions will inherit the settings. An empty delimiter stands for the\n// corresponding default: {{ or }}.\n// The return value is the template, so calls can be chained.\nfunc (t *Template) Delims(left, right string) *Template {\n\tt.leftDelim = left\n\tt.rightDelim = right\n\treturn t\n}\n\n// Funcs adds the elements of the argument map to the template's function map.\n// It panics if a value in the map is not a function with appropriate return\n// type. However, it is legal to overwrite elements of the map. The return\n// value is the template, so calls can be chained.\nfunc (t *Template) Funcs(funcMap FuncMap) *Template {\n\tt.init()\n\taddValueFuncs(t.execFuncs, funcMap)\n\taddFuncs(t.parseFuncs, funcMap)\n\treturn t\n}\n\n// Lookup returns the template with the given name that is associated with t,\n// or nil if there is no such template.\nfunc (t *Template) Lookup(name string) *Template {\n\tif t.common == nil {\n\t\treturn nil\n\t}\n\treturn t.tmpl[name]\n}\n\n// Parse parses a string into a template. Nested template definitions will be\n// associated with the top-level template t. Parse may be called multiple times\n// to parse definitions of templates to associate with t. It is an error if a\n// resulting template is non-empty (contains content other than template\n// definitions) and would replace a non-empty template with the same name.\n// (In multiple calls to Parse with the same receiver template, only one call\n// can contain text other than space, comments, and template definitions.)\nfunc (t *Template) Parse(text string) (*Template, error) {\n\tt.init()\n\ttrees, err := parse.Parse(t.name, text, t.leftDelim, t.rightDelim, t.parseFuncs, builtins)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Add the newly parsed trees, including the one for t, into our common structure.\n\tfor name, tree := range trees {\n\t\t// If the name we parsed is the name of this template, overwrite this template.\n\t\t// The associate method checks it's not a redefinition.\n\t\ttmpl := t\n\t\tif name != t.name {\n\t\t\ttmpl = t.New(name)\n\t\t}\n\t\t// Even if t == tmpl, we need to install it in the common.tmpl map.\n\t\tif replace, err := t.associate(tmpl, tree); err != nil {\n\t\t\treturn nil, err\n\t\t} else if replace {\n\t\t\ttmpl.Tree = tree\n\t\t}\n\t\ttmpl.leftDelim = t.leftDelim\n\t\ttmpl.rightDelim = t.rightDelim\n\t}\n\treturn t, nil\n}\n\n// associate installs the new template into the group of templates associated\n// with t. It is an error to reuse a name except to overwrite an empty\n// template. The two are already known to share the common structure.\n// The boolean return value reports wither to store this tree as t.Tree.\nfunc (t *Template) associate(new *Template, tree *parse.Tree) (bool, error) {\n\tif new.common != t.common {\n\t\tpanic(\"internal error: associate not common\")\n\t}\n\tname := new.name\n\tif old := t.tmpl[name]; old != nil {\n\t\toldIsEmpty := parse.IsEmptyTree(old.Root)\n\t\tnewIsEmpty := parse.IsEmptyTree(tree.Root)\n\t\tif newIsEmpty {\n\t\t\t// Whether old is empty or not, new is empty; no reason to replace old.\n\t\t\treturn false, nil\n\t\t}\n\t\tif !oldIsEmpty {\n\t\t\treturn false, fmt.Errorf(\"template: redefinition of template %q\", name)\n\t\t}\n\t}\n\tt.tmpl[name] = new\n\treturn true, nil\n}\n"
  },
  {
    "path": "vendor/github.com/astaxie/beego/LICENSE",
    "content": "Copyright 2014 astaxie\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License."
  },
  {
    "path": "vendor/github.com/astaxie/beego/validation/README.md",
    "content": "validation\n==============\n\nvalidation is a form validation for a data validation and error collecting using Go.\n\n## Installation and tests\n\nInstall:\n\n\tgo get github.com/astaxie/beego/validation\n\nTest:\n\n\tgo test github.com/astaxie/beego/validation\n\n## Example\n\nDirect Use:\n\n\timport (\n\t\t\"github.com/astaxie/beego/validation\"\n\t\t\"log\"\n\t)\n\n\ttype User struct {\n\t\tName string\n\t\tAge int\n\t}\n\n\tfunc main() {\n\t\tu := User{\"man\", 40}\n\t\tvalid := validation.Validation{}\n\t\tvalid.Required(u.Name, \"name\")\n\t\tvalid.MaxSize(u.Name, 15, \"nameMax\")\n\t\tvalid.Range(u.Age, 0, 140, \"age\")\n\t\tif valid.HasErrors() {\n\t\t\t// validation does not pass\n\t\t\t// print invalid message\n\t\t\tfor _, err := range valid.Errors {\n\t\t\t\tlog.Println(err.Key, err.Message)\n\t\t\t}\n\t\t}\n\t\t// or use like this\n\t\tif v := valid.Max(u.Age, 140, \"ageMax\"); !v.Ok {\n\t\t\tlog.Println(v.Error.Key, v.Error.Message)\n\t\t}\n\t}\n\nStruct Tag Use:\n\n\timport (\n\t\t\"github.com/astaxie/beego/validation\"\n\t)\n\n\t// validation function follow with \"valid\" tag\n\t// functions divide with \";\"\n\t// parameters in parentheses \"()\" and divide with \",\"\n\t// Match function's pattern string must in \"//\"\n\ttype user struct {\n\t\tId   int\n\t\tName string `valid:\"Required;Match(/^(test)?\\\\w*@;com$/)\"`\n\t\tAge  int    `valid:\"Required;Range(1, 140)\"`\n\t}\n\n\tfunc main() {\n\t\tvalid := validation.Validation{}\n\t\t// ignore empty field valid\n\t\t// see CanSkipFuncs\n\t\t// valid := validation.Validation{RequiredFirst:true}\n\t\tu := user{Name: \"test\", Age: 40}\n\t\tb, err := valid.Valid(u)\n\t\tif err != nil {\n\t\t\t// handle error\n\t\t}\n\t\tif !b {\n\t\t\t// validation does not pass\n\t\t\t// blabla...\n\t\t}\n\t}\n\nUse custom function:\n\n\timport (\n\t\t\"github.com/astaxie/beego/validation\"\n\t)\n\n\ttype user struct {\n\t\tId   int\n\t\tName string `valid:\"Required;IsMe\"`\n\t\tAge  int    `valid:\"Required;Range(1, 140)\"`\n\t}\n\n\tfunc IsMe(v *validation.Validation, obj interface{}, key string) {\n\t\tname, ok:= obj.(string)\n\t\tif !ok {\n\t\t\t// wrong use case?\n\t\t\treturn\n\t\t}\n\n\t\tif name != \"me\" {\n\t\t\t// valid false\n\t\t\tv.SetError(\"Name\", \"is not me!\")\n\t\t}\n\t}\n\n\tfunc main() {\n\t\tvalid := validation.Validation{}\n\t\tif err := validation.AddCustomFunc(\"IsMe\", IsMe); err != nil {\n\t\t\t// hadle error\n\t\t}\n\t\tu := user{Name: \"test\", Age: 40}\n\t\tb, err := valid.Valid(u)\n\t\tif err != nil {\n\t\t\t// handle error\n\t\t}\n\t\tif !b {\n\t\t\t// validation does not pass\n\t\t\t// blabla...\n\t\t}\n\t}\n\nStruct Tag Functions:\n\n\tRequired\n\tMin(min int)\n\tMax(max int)\n\tRange(min, max int)\n\tMinSize(min int)\n\tMaxSize(max int)\n\tLength(length int)\n\tAlpha\n\tNumeric\n\tAlphaNumeric\n\tMatch(pattern string)\n\tAlphaDash\n\tEmail\n\tIP\n\tBase64\n\tMobile\n\tTel\n\tPhone\n\tZipCode\n\n\n## LICENSE\n\nBSD License http://creativecommons.org/licenses/BSD/\n"
  },
  {
    "path": "vendor/github.com/astaxie/beego/validation/util.go",
    "content": "// Copyright 2014 beego Author. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\t// ValidTag struct tag\n\tValidTag = \"valid\"\n\n\twordsize = 32 << (^uint(0) >> 32 & 1)\n)\n\nvar (\n\t// key: function name\n\t// value: the number of parameters\n\tfuncs = make(Funcs)\n\n\t// doesn't belong to validation functions\n\tunFuncs = map[string]bool{\n\t\t\"Clear\":     true,\n\t\t\"HasErrors\": true,\n\t\t\"ErrorMap\":  true,\n\t\t\"Error\":     true,\n\t\t\"apply\":     true,\n\t\t\"Check\":     true,\n\t\t\"Valid\":     true,\n\t\t\"NoMatch\":   true,\n\t}\n\t// ErrInt64On32 show 32 bit platform not support int64\n\tErrInt64On32 = fmt.Errorf(\"not support int64 on 32-bit platform\")\n)\n\nfunc init() {\n\tv := &Validation{}\n\tt := reflect.TypeOf(v)\n\tfor i := 0; i < t.NumMethod(); i++ {\n\t\tm := t.Method(i)\n\t\tif !unFuncs[m.Name] {\n\t\t\tfuncs[m.Name] = m.Func\n\t\t}\n\t}\n}\n\n// CustomFunc is for custom validate function\ntype CustomFunc func(v *Validation, obj interface{}, key string)\n\n// AddCustomFunc Add a custom function to validation\n// The name can not be:\n//   Clear\n//   HasErrors\n//   ErrorMap\n//   Error\n//   Check\n//   Valid\n//   NoMatch\n// If the name is same with exists function, it will replace the origin valid function\nfunc AddCustomFunc(name string, f CustomFunc) error {\n\tif unFuncs[name] {\n\t\treturn fmt.Errorf(\"invalid function name: %s\", name)\n\t}\n\n\tfuncs[name] = reflect.ValueOf(f)\n\treturn nil\n}\n\n// ValidFunc Valid function type\ntype ValidFunc struct {\n\tName   string\n\tParams []interface{}\n}\n\n// Funcs Validate function map\ntype Funcs map[string]reflect.Value\n\n// Call validate values with named type string\nfunc (f Funcs) Call(name string, params ...interface{}) (result []reflect.Value, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = fmt.Errorf(\"%v\", r)\n\t\t}\n\t}()\n\tif _, ok := f[name]; !ok {\n\t\terr = fmt.Errorf(\"%s does not exist\", name)\n\t\treturn\n\t}\n\tif len(params) != f[name].Type().NumIn() {\n\t\terr = fmt.Errorf(\"The number of params is not adapted\")\n\t\treturn\n\t}\n\tin := make([]reflect.Value, len(params))\n\tfor k, param := range params {\n\t\tin[k] = reflect.ValueOf(param)\n\t}\n\tresult = f[name].Call(in)\n\treturn\n}\n\nfunc isStruct(t reflect.Type) bool {\n\treturn t.Kind() == reflect.Struct\n}\n\nfunc isStructPtr(t reflect.Type) bool {\n\treturn t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct\n}\n\nfunc getValidFuncs(f reflect.StructField) (vfs []ValidFunc, err error) {\n\ttag := f.Tag.Get(ValidTag)\n\tif len(tag) == 0 {\n\t\treturn\n\t}\n\tif vfs, tag, err = getRegFuncs(tag, f.Name); err != nil {\n\t\treturn\n\t}\n\tfs := strings.Split(tag, \";\")\n\tfor _, vfunc := range fs {\n\t\tvar vf ValidFunc\n\t\tif len(vfunc) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tvf, err = parseFunc(vfunc, f.Name)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tvfs = append(vfs, vf)\n\t}\n\treturn\n}\n\n// Get Match function\n// May be get NoMatch function in the future\nfunc getRegFuncs(tag, key string) (vfs []ValidFunc, str string, err error) {\n\ttag = strings.TrimSpace(tag)\n\tindex := strings.Index(tag, \"Match(/\")\n\tif index == -1 {\n\t\tstr = tag\n\t\treturn\n\t}\n\tend := strings.LastIndex(tag, \"/)\")\n\tif end < index {\n\t\terr = fmt.Errorf(\"invalid Match function\")\n\t\treturn\n\t}\n\treg, err := regexp.Compile(tag[index+len(\"Match(/\") : end])\n\tif err != nil {\n\t\treturn\n\t}\n\tvfs = []ValidFunc{{\"Match\", []interface{}{reg, key + \".Match\"}}}\n\tstr = strings.TrimSpace(tag[:index]) + strings.TrimSpace(tag[end+len(\"/)\"):])\n\treturn\n}\n\nfunc parseFunc(vfunc, key string) (v ValidFunc, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = fmt.Errorf(\"%v\", r)\n\t\t}\n\t}()\n\n\tvfunc = strings.TrimSpace(vfunc)\n\tstart := strings.Index(vfunc, \"(\")\n\tvar num int\n\n\t// doesn't need parameter valid function\n\tif start == -1 {\n\t\tif num, err = numIn(vfunc); err != nil {\n\t\t\treturn\n\t\t}\n\t\tif num != 0 {\n\t\t\terr = fmt.Errorf(\"%s require %d parameters\", vfunc, num)\n\t\t\treturn\n\t\t}\n\t\tv = ValidFunc{vfunc, []interface{}{key + \".\" + vfunc}}\n\t\treturn\n\t}\n\n\tend := strings.Index(vfunc, \")\")\n\tif end == -1 {\n\t\terr = fmt.Errorf(\"invalid valid function\")\n\t\treturn\n\t}\n\n\tname := strings.TrimSpace(vfunc[:start])\n\tif num, err = numIn(name); err != nil {\n\t\treturn\n\t}\n\n\tparams := strings.Split(vfunc[start+1:end], \",\")\n\t// the num of param must be equal\n\tif num != len(params) {\n\t\terr = fmt.Errorf(\"%s require %d parameters\", name, num)\n\t\treturn\n\t}\n\n\ttParams, err := trim(name, key+\".\"+name, params)\n\tif err != nil {\n\t\treturn\n\t}\n\tv = ValidFunc{name, tParams}\n\treturn\n}\n\nfunc numIn(name string) (num int, err error) {\n\tfn, ok := funcs[name]\n\tif !ok {\n\t\terr = fmt.Errorf(\"doesn't exsits %s valid function\", name)\n\t\treturn\n\t}\n\t// sub *Validation obj and key\n\tnum = fn.Type().NumIn() - 3\n\treturn\n}\n\nfunc trim(name, key string, s []string) (ts []interface{}, err error) {\n\tts = make([]interface{}, len(s), len(s)+1)\n\tfn, ok := funcs[name]\n\tif !ok {\n\t\terr = fmt.Errorf(\"doesn't exsits %s valid function\", name)\n\t\treturn\n\t}\n\tfor i := 0; i < len(s); i++ {\n\t\tvar param interface{}\n\t\t// skip *Validation and obj params\n\t\tif param, err = parseParam(fn.Type().In(i+2), strings.TrimSpace(s[i])); err != nil {\n\t\t\treturn\n\t\t}\n\t\tts[i] = param\n\t}\n\tts = append(ts, key)\n\treturn\n}\n\n// modify the parameters's type to adapt the function input parameters' type\nfunc parseParam(t reflect.Type, s string) (i interface{}, err error) {\n\tswitch t.Kind() {\n\tcase reflect.Int:\n\t\ti, err = strconv.Atoi(s)\n\tcase reflect.Int64:\n\t\tif wordsize == 32 {\n\t\t\treturn nil, ErrInt64On32\n\t\t}\n\t\ti, err = strconv.ParseInt(s, 10, 64)\n\tcase reflect.Int32:\n\t\tvar v int64\n\t\tv, err = strconv.ParseInt(s, 10, 32)\n\t\tif err == nil {\n\t\t\ti = int32(v)\n\t\t}\n\tcase reflect.Int16:\n\t\tvar v int64\n\t\tv, err = strconv.ParseInt(s, 10, 16)\n\t\tif err == nil {\n\t\t\ti = int16(v)\n\t\t}\n\tcase reflect.Int8:\n\t\tvar v int64\n\t\tv, err = strconv.ParseInt(s, 10, 8)\n\t\tif err == nil {\n\t\t\ti = int8(v)\n\t\t}\n\tcase reflect.String:\n\t\ti = s\n\tcase reflect.Ptr:\n\t\tif t.Elem().String() != \"regexp.Regexp\" {\n\t\t\terr = fmt.Errorf(\"not support %s\", t.Elem().String())\n\t\t\treturn\n\t\t}\n\t\ti, err = regexp.Compile(s)\n\tdefault:\n\t\terr = fmt.Errorf(\"not support %s\", t.Kind().String())\n\t}\n\treturn\n}\n\nfunc mergeParam(v *Validation, obj interface{}, params []interface{}) []interface{} {\n\treturn append([]interface{}{v, obj}, params...)\n}\n"
  },
  {
    "path": "vendor/github.com/astaxie/beego/validation/validation.go",
    "content": "// Copyright 2014 beego Author. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package validation for validations\n//\n//\timport (\n//\t\t\"github.com/astaxie/beego/validation\"\n//\t\t\"log\"\n//\t)\n//\n//\ttype User struct {\n//\t\tName string\n//\t\tAge int\n//\t}\n//\n//\tfunc main() {\n//\t\tu := User{\"man\", 40}\n//\t\tvalid := validation.Validation{}\n//\t\tvalid.Required(u.Name, \"name\")\n//\t\tvalid.MaxSize(u.Name, 15, \"nameMax\")\n//\t\tvalid.Range(u.Age, 0, 140, \"age\")\n//\t\tif valid.HasErrors() {\n//\t\t\t// validation does not pass\n//\t\t\t// print invalid message\n//\t\t\tfor _, err := range valid.Errors {\n//\t\t\t\tlog.Println(err.Key, err.Message)\n//\t\t\t}\n//\t\t}\n//\t\t// or use like this\n//\t\tif v := valid.Max(u.Age, 140, \"ageMax\"); !v.Ok {\n//\t\t\tlog.Println(v.Error.Key, v.Error.Message)\n//\t\t}\n//\t}\n//\n// more info: http://beego.me/docs/mvc/controller/validation.md\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// ValidFormer valid interface\ntype ValidFormer interface {\n\tValid(*Validation)\n}\n\n// Error show the error\ntype Error struct {\n\tMessage, Key, Name, Field, Tmpl string\n\tValue                           interface{}\n\tLimitValue                      interface{}\n}\n\n// String Returns the Message.\nfunc (e *Error) String() string {\n\tif e == nil {\n\t\treturn \"\"\n\t}\n\treturn e.Message\n}\n\n// Implement Error interface.\n// Return e.String()\nfunc (e *Error) Error() string { return e.String() }\n\n// Result is returned from every validation method.\n// It provides an indication of success, and a pointer to the Error (if any).\ntype Result struct {\n\tError *Error\n\tOk    bool\n}\n\n// Key Get Result by given key string.\nfunc (r *Result) Key(key string) *Result {\n\tif r.Error != nil {\n\t\tr.Error.Key = key\n\t}\n\treturn r\n}\n\n// Message Set Result message by string or format string with args\nfunc (r *Result) Message(message string, args ...interface{}) *Result {\n\tif r.Error != nil {\n\t\tif len(args) == 0 {\n\t\t\tr.Error.Message = message\n\t\t} else {\n\t\t\tr.Error.Message = fmt.Sprintf(message, args...)\n\t\t}\n\t}\n\treturn r\n}\n\n// A Validation context manages data validation and error messages.\ntype Validation struct {\n\t// if this field set true, in struct tag valid\n\t// if the struct field vale is empty\n\t// it will skip those valid functions, see CanSkipFuncs\n\tRequiredFirst bool\n\n\tErrors    []*Error\n\tErrorsMap map[string][]*Error\n}\n\n// Clear Clean all ValidationError.\nfunc (v *Validation) Clear() {\n\tv.Errors = []*Error{}\n\tv.ErrorsMap = nil\n}\n\n// HasErrors Has ValidationError nor not.\nfunc (v *Validation) HasErrors() bool {\n\treturn len(v.Errors) > 0\n}\n\n// ErrorMap Return the errors mapped by key.\n// If there are multiple validation errors associated with a single key, the\n// first one \"wins\".  (Typically the first validation will be the more basic).\nfunc (v *Validation) ErrorMap() map[string][]*Error {\n\treturn v.ErrorsMap\n}\n\n// Error Add an error to the validation context.\nfunc (v *Validation) Error(message string, args ...interface{}) *Result {\n\tresult := (&Result{\n\t\tOk:    false,\n\t\tError: &Error{},\n\t}).Message(message, args...)\n\tv.Errors = append(v.Errors, result.Error)\n\treturn result\n}\n\n// Required Test that the argument is non-nil and non-empty (if string or list)\nfunc (v *Validation) Required(obj interface{}, key string) *Result {\n\treturn v.apply(Required{key}, obj)\n}\n\n// Min Test that the obj is greater than min if obj's type is int\nfunc (v *Validation) Min(obj interface{}, min int, key string) *Result {\n\treturn v.apply(Min{min, key}, obj)\n}\n\n// Max Test that the obj is less than max if obj's type is int\nfunc (v *Validation) Max(obj interface{}, max int, key string) *Result {\n\treturn v.apply(Max{max, key}, obj)\n}\n\n// Range Test that the obj is between mni and max if obj's type is int\nfunc (v *Validation) Range(obj interface{}, min, max int, key string) *Result {\n\treturn v.apply(Range{Min{Min: min}, Max{Max: max}, key}, obj)\n}\n\n// MinSize Test that the obj is longer than min size if type is string or slice\nfunc (v *Validation) MinSize(obj interface{}, min int, key string) *Result {\n\treturn v.apply(MinSize{min, key}, obj)\n}\n\n// MaxSize Test that the obj is shorter than max size if type is string or slice\nfunc (v *Validation) MaxSize(obj interface{}, max int, key string) *Result {\n\treturn v.apply(MaxSize{max, key}, obj)\n}\n\n// Length Test that the obj is same length to n if type is string or slice\nfunc (v *Validation) Length(obj interface{}, n int, key string) *Result {\n\treturn v.apply(Length{n, key}, obj)\n}\n\n// Alpha Test that the obj is [a-zA-Z] if type is string\nfunc (v *Validation) Alpha(obj interface{}, key string) *Result {\n\treturn v.apply(Alpha{key}, obj)\n}\n\n// Numeric Test that the obj is [0-9] if type is string\nfunc (v *Validation) Numeric(obj interface{}, key string) *Result {\n\treturn v.apply(Numeric{key}, obj)\n}\n\n// AlphaNumeric Test that the obj is [0-9a-zA-Z] if type is string\nfunc (v *Validation) AlphaNumeric(obj interface{}, key string) *Result {\n\treturn v.apply(AlphaNumeric{key}, obj)\n}\n\n// Match Test that the obj matches regexp if type is string\nfunc (v *Validation) Match(obj interface{}, regex *regexp.Regexp, key string) *Result {\n\treturn v.apply(Match{regex, key}, obj)\n}\n\n// NoMatch Test that the obj doesn't match regexp if type is string\nfunc (v *Validation) NoMatch(obj interface{}, regex *regexp.Regexp, key string) *Result {\n\treturn v.apply(NoMatch{Match{Regexp: regex}, key}, obj)\n}\n\n// AlphaDash Test that the obj is [0-9a-zA-Z_-] if type is string\nfunc (v *Validation) AlphaDash(obj interface{}, key string) *Result {\n\treturn v.apply(AlphaDash{NoMatch{Match: Match{Regexp: alphaDashPattern}}, key}, obj)\n}\n\n// Email Test that the obj is email address if type is string\nfunc (v *Validation) Email(obj interface{}, key string) *Result {\n\treturn v.apply(Email{Match{Regexp: emailPattern}, key}, obj)\n}\n\n// IP Test that the obj is IP address if type is string\nfunc (v *Validation) IP(obj interface{}, key string) *Result {\n\treturn v.apply(IP{Match{Regexp: ipPattern}, key}, obj)\n}\n\n// Base64 Test that the obj is base64 encoded if type is string\nfunc (v *Validation) Base64(obj interface{}, key string) *Result {\n\treturn v.apply(Base64{Match{Regexp: base64Pattern}, key}, obj)\n}\n\n// Mobile Test that the obj is chinese mobile number if type is string\nfunc (v *Validation) Mobile(obj interface{}, key string) *Result {\n\treturn v.apply(Mobile{Match{Regexp: mobilePattern}, key}, obj)\n}\n\n// Tel Test that the obj is chinese telephone number if type is string\nfunc (v *Validation) Tel(obj interface{}, key string) *Result {\n\treturn v.apply(Tel{Match{Regexp: telPattern}, key}, obj)\n}\n\n// Phone Test that the obj is chinese mobile or telephone number if type is string\nfunc (v *Validation) Phone(obj interface{}, key string) *Result {\n\treturn v.apply(Phone{Mobile{Match: Match{Regexp: mobilePattern}},\n\t\tTel{Match: Match{Regexp: telPattern}}, key}, obj)\n}\n\n// ZipCode Test that the obj is chinese zip code if type is string\nfunc (v *Validation) ZipCode(obj interface{}, key string) *Result {\n\treturn v.apply(ZipCode{Match{Regexp: zipCodePattern}, key}, obj)\n}\n\nfunc (v *Validation) apply(chk Validator, obj interface{}) *Result {\n\tif chk.IsSatisfied(obj) {\n\t\treturn &Result{Ok: true}\n\t}\n\n\t// Add the error to the validation context.\n\tkey := chk.GetKey()\n\tName := key\n\tField := \"\"\n\n\tparts := strings.Split(key, \".\")\n\tif len(parts) == 2 {\n\t\tField = parts[0]\n\t\tName = parts[1]\n\t}\n\n\terr := &Error{\n\t\tMessage:    chk.DefaultMessage(),\n\t\tKey:        key,\n\t\tName:       Name,\n\t\tField:      Field,\n\t\tValue:      obj,\n\t\tTmpl:       MessageTmpls[Name],\n\t\tLimitValue: chk.GetLimitValue(),\n\t}\n\tv.setError(err)\n\n\t// Also return it in the result.\n\treturn &Result{\n\t\tOk:    false,\n\t\tError: err,\n\t}\n}\n\n// AddError adds independent error message for the provided key\nfunc (v *Validation) AddError(key, message string) {\n\tName := key\n\tField := \"\"\n\n\tparts := strings.Split(key, \".\")\n\tif len(parts) == 2 {\n\t\tField = parts[0]\n\t\tName = parts[1]\n\t}\n\n\terr := &Error{\n\t\tMessage: message,\n\t\tKey:     key,\n\t\tName:    Name,\n\t\tField:   Field,\n\t}\n\tv.setError(err)\n}\n\nfunc (v *Validation) setError(err *Error) {\n\tv.Errors = append(v.Errors, err)\n\tif v.ErrorsMap == nil {\n\t\tv.ErrorsMap = make(map[string][]*Error)\n\t}\n\tif _, ok := v.ErrorsMap[err.Field]; !ok {\n\t\tv.ErrorsMap[err.Field] = []*Error{}\n\t}\n\tv.ErrorsMap[err.Field] = append(v.ErrorsMap[err.Field], err)\n}\n\n// SetError Set error message for one field in ValidationError\nfunc (v *Validation) SetError(fieldName string, errMsg string) *Error {\n\terr := &Error{Key: fieldName, Field: fieldName, Tmpl: errMsg, Message: errMsg}\n\tv.setError(err)\n\treturn err\n}\n\n// Check Apply a group of validators to a field, in order, and return the\n// ValidationResult from the first one that fails, or the last one that\n// succeeds.\nfunc (v *Validation) Check(obj interface{}, checks ...Validator) *Result {\n\tvar result *Result\n\tfor _, check := range checks {\n\t\tresult = v.apply(check, obj)\n\t\tif !result.Ok {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn result\n}\n\n// Valid Validate a struct.\n// the obj parameter must be a struct or a struct pointer\nfunc (v *Validation) Valid(obj interface{}) (b bool, err error) {\n\tobjT := reflect.TypeOf(obj)\n\tobjV := reflect.ValueOf(obj)\n\tswitch {\n\tcase isStruct(objT):\n\tcase isStructPtr(objT):\n\t\tobjT = objT.Elem()\n\t\tobjV = objV.Elem()\n\tdefault:\n\t\terr = fmt.Errorf(\"%v must be a struct or a struct pointer\", obj)\n\t\treturn\n\t}\n\n\tfor i := 0; i < objT.NumField(); i++ {\n\t\tvar vfs []ValidFunc\n\t\tif vfs, err = getValidFuncs(objT.Field(i)); err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tvar hasReuired bool\n\t\tfor _, vf := range vfs {\n\t\t\tif vf.Name == \"Required\" {\n\t\t\t\thasReuired = true\n\t\t\t}\n\n\t\t\tif !hasReuired && v.RequiredFirst && len(objV.Field(i).String()) == 0 {\n\t\t\t\tif _, ok := CanSkipFuncs[vf.Name]; ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif _, err = funcs.Call(vf.Name,\n\t\t\t\tmergeParam(v, objV.Field(i).Interface(), vf.Params)...); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tif !v.HasErrors() {\n\t\tif form, ok := obj.(ValidFormer); ok {\n\t\t\tform.Valid(v)\n\t\t}\n\t}\n\n\treturn !v.HasErrors(), nil\n}\n\n// RecursiveValid Recursively validate a struct.\n// Step1: Validate by v.Valid\n// Step2: If pass on step1, then reflect obj's fields\n// Step3: Do the Recursively validation to all struct or struct pointer fields\nfunc (v *Validation) RecursiveValid(objc interface{}) (bool, error) {\n\t//Step 1: validate obj itself firstly\n\t// fails if objc is not struct\n\tpass, err := v.Valid(objc)\n\tif err != nil || !pass {\n\t\treturn pass, err // Stop recursive validation\n\t}\n\t// Step 2: Validate struct's struct fields\n\tobjT := reflect.TypeOf(objc)\n\tobjV := reflect.ValueOf(objc)\n\n\tif isStructPtr(objT) {\n\t\tobjT = objT.Elem()\n\t\tobjV = objV.Elem()\n\t}\n\n\tfor i := 0; i < objT.NumField(); i++ {\n\n\t\tt := objT.Field(i).Type\n\n\t\t// Recursive applies to struct or pointer to structs fields\n\t\tif isStruct(t) || isStructPtr(t) {\n\t\t\t// Step 3: do the recursive validation\n\t\t\t// Only valid the Public field recursively\n\t\t\tif objV.Field(i).CanInterface() {\n\t\t\t\tpass, err = v.RecursiveValid(objV.Field(i).Interface())\n\t\t\t}\n\t\t}\n\t}\n\treturn pass, err\n}\n"
  },
  {
    "path": "vendor/github.com/astaxie/beego/validation/validators.go",
    "content": "// Copyright 2014 beego Author. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// CanSkipFuncs will skip valid if RequiredFirst is true and the struct field's value is empty\nvar CanSkipFuncs = map[string]struct{}{\n\t\"Email\":   {},\n\t\"IP\":      {},\n\t\"Mobile\":  {},\n\t\"Tel\":     {},\n\t\"Phone\":   {},\n\t\"ZipCode\": {},\n}\n\n// MessageTmpls store commond validate template\nvar MessageTmpls = map[string]string{\n\t\"Required\":     \"Can not be empty\",\n\t\"Min\":          \"Minimum is %d\",\n\t\"Max\":          \"Maximum is %d\",\n\t\"Range\":        \"Range is %d to %d\",\n\t\"MinSize\":      \"Minimum size is %d\",\n\t\"MaxSize\":      \"Maximum size is %d\",\n\t\"Length\":       \"Required length is %d\",\n\t\"Alpha\":        \"Must be valid alpha characters\",\n\t\"Numeric\":      \"Must be valid numeric characters\",\n\t\"AlphaNumeric\": \"Must be valid alpha or numeric characters\",\n\t\"Match\":        \"Must match %s\",\n\t\"NoMatch\":      \"Must not match %s\",\n\t\"AlphaDash\":    \"Must be valid alpha or numeric or dash(-_) characters\",\n\t\"Email\":        \"Must be a valid email address\",\n\t\"IP\":           \"Must be a valid ip address\",\n\t\"Base64\":       \"Must be valid base64 characters\",\n\t\"Mobile\":       \"Must be valid mobile number\",\n\t\"Tel\":          \"Must be valid telephone number\",\n\t\"Phone\":        \"Must be valid telephone or mobile phone number\",\n\t\"ZipCode\":      \"Must be valid zipcode\",\n}\n\n// SetDefaultMessage set default messages\n// if not set, the default messages are\n//  \"Required\":     \"Can not be empty\",\n//  \"Min\":          \"Minimum is %d\",\n//  \"Max\":          \"Maximum is %d\",\n//  \"Range\":        \"Range is %d to %d\",\n//  \"MinSize\":      \"Minimum size is %d\",\n//  \"MaxSize\":      \"Maximum size is %d\",\n//  \"Length\":       \"Required length is %d\",\n//  \"Alpha\":        \"Must be valid alpha characters\",\n//  \"Numeric\":      \"Must be valid numeric characters\",\n//  \"AlphaNumeric\": \"Must be valid alpha or numeric characters\",\n//  \"Match\":        \"Must match %s\",\n//  \"NoMatch\":      \"Must not match %s\",\n//  \"AlphaDash\":    \"Must be valid alpha or numeric or dash(-_) characters\",\n//  \"Email\":        \"Must be a valid email address\",\n//  \"IP\":           \"Must be a valid ip address\",\n//  \"Base64\":       \"Must be valid base64 characters\",\n//  \"Mobile\":       \"Must be valid mobile number\",\n//  \"Tel\":          \"Must be valid telephone number\",\n//  \"Phone\":        \"Must be valid telephone or mobile phone number\",\n//  \"ZipCode\":      \"Must be valid zipcode\",\nfunc SetDefaultMessage(msg map[string]string) {\n\tif len(msg) == 0 {\n\t\treturn\n\t}\n\n\tfor name := range msg {\n\t\tMessageTmpls[name] = msg[name]\n\t}\n}\n\n// Validator interface\ntype Validator interface {\n\tIsSatisfied(interface{}) bool\n\tDefaultMessage() string\n\tGetKey() string\n\tGetLimitValue() interface{}\n}\n\n// Required struct\ntype Required struct {\n\tKey string\n}\n\n// IsSatisfied judge whether obj has value\nfunc (r Required) IsSatisfied(obj interface{}) bool {\n\tif obj == nil {\n\t\treturn false\n\t}\n\n\tif str, ok := obj.(string); ok {\n\t\treturn len(strings.TrimSpace(str)) > 0\n\t}\n\tif _, ok := obj.(bool); ok {\n\t\treturn true\n\t}\n\tif i, ok := obj.(int); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(uint); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(int8); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(uint8); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(int16); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(uint16); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(uint32); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(int32); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(int64); ok {\n\t\treturn i != 0\n\t}\n\tif i, ok := obj.(uint64); ok {\n\t\treturn i != 0\n\t}\n\tif t, ok := obj.(time.Time); ok {\n\t\treturn !t.IsZero()\n\t}\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() == reflect.Slice {\n\t\treturn v.Len() > 0\n\t}\n\treturn true\n}\n\n// DefaultMessage return the default error message\nfunc (r Required) DefaultMessage() string {\n\treturn MessageTmpls[\"Required\"]\n}\n\n// GetKey return the r.Key\nfunc (r Required) GetKey() string {\n\treturn r.Key\n}\n\n// GetLimitValue return nil now\nfunc (r Required) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// Min check struct\ntype Min struct {\n\tMin int\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\n// not support int64 on 32-bit platform\nfunc (m Min) IsSatisfied(obj interface{}) bool {\n\tvar v int\n\tswitch obj.(type) {\n\tcase int64:\n\t\tif wordsize == 32 {\n\t\t\treturn false\n\t\t}\n\t\tv = int(obj.(int64))\n\tcase int:\n\t\tv = obj.(int)\n\tcase int32:\n\t\tv = int(obj.(int32))\n\tcase int16:\n\t\tv = int(obj.(int16))\n\tcase int8:\n\t\tv = int(obj.(int8))\n\tdefault:\n\t\treturn false\n\t}\n\n\treturn v >= m.Min\n}\n\n// DefaultMessage return the default min error message\nfunc (m Min) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"Min\"], m.Min)\n}\n\n// GetKey return the m.Key\nfunc (m Min) GetKey() string {\n\treturn m.Key\n}\n\n// GetLimitValue return the limit value, Min\nfunc (m Min) GetLimitValue() interface{} {\n\treturn m.Min\n}\n\n// Max validate struct\ntype Max struct {\n\tMax int\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\n// not support int64 on 32-bit platform\nfunc (m Max) IsSatisfied(obj interface{}) bool {\n\tvar v int\n\tswitch obj.(type) {\n\tcase int64:\n\t\tif wordsize == 32 {\n\t\t\treturn false\n\t\t}\n\t\tv = int(obj.(int64))\n\tcase int:\n\t\tv = obj.(int)\n\tcase int32:\n\t\tv = int(obj.(int32))\n\tcase int16:\n\t\tv = int(obj.(int16))\n\tcase int8:\n\t\tv = int(obj.(int8))\n\tdefault:\n\t\treturn false\n\t}\n\n\treturn v <= m.Max\n}\n\n// DefaultMessage return the default max error message\nfunc (m Max) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"Max\"], m.Max)\n}\n\n// GetKey return the m.Key\nfunc (m Max) GetKey() string {\n\treturn m.Key\n}\n\n// GetLimitValue return the limit value, Max\nfunc (m Max) GetLimitValue() interface{} {\n\treturn m.Max\n}\n\n// Range Requires an integer to be within Min, Max inclusive.\ntype Range struct {\n\tMin\n\tMax\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\n// not support int64 on 32-bit platform\nfunc (r Range) IsSatisfied(obj interface{}) bool {\n\treturn r.Min.IsSatisfied(obj) && r.Max.IsSatisfied(obj)\n}\n\n// DefaultMessage return the default Range error message\nfunc (r Range) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"Range\"], r.Min.Min, r.Max.Max)\n}\n\n// GetKey return the m.Key\nfunc (r Range) GetKey() string {\n\treturn r.Key\n}\n\n// GetLimitValue return the limit value, Max\nfunc (r Range) GetLimitValue() interface{} {\n\treturn []int{r.Min.Min, r.Max.Max}\n}\n\n// MinSize Requires an array or string to be at least a given length.\ntype MinSize struct {\n\tMin int\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (m MinSize) IsSatisfied(obj interface{}) bool {\n\tif str, ok := obj.(string); ok {\n\t\treturn utf8.RuneCountInString(str) >= m.Min\n\t}\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() == reflect.Slice {\n\t\treturn v.Len() >= m.Min\n\t}\n\treturn false\n}\n\n// DefaultMessage return the default MinSize error message\nfunc (m MinSize) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"MinSize\"], m.Min)\n}\n\n// GetKey return the m.Key\nfunc (m MinSize) GetKey() string {\n\treturn m.Key\n}\n\n// GetLimitValue return the limit value\nfunc (m MinSize) GetLimitValue() interface{} {\n\treturn m.Min\n}\n\n// MaxSize Requires an array or string to be at most a given length.\ntype MaxSize struct {\n\tMax int\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (m MaxSize) IsSatisfied(obj interface{}) bool {\n\tif str, ok := obj.(string); ok {\n\t\treturn utf8.RuneCountInString(str) <= m.Max\n\t}\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() == reflect.Slice {\n\t\treturn v.Len() <= m.Max\n\t}\n\treturn false\n}\n\n// DefaultMessage return the default MaxSize error message\nfunc (m MaxSize) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"MaxSize\"], m.Max)\n}\n\n// GetKey return the m.Key\nfunc (m MaxSize) GetKey() string {\n\treturn m.Key\n}\n\n// GetLimitValue return the limit value\nfunc (m MaxSize) GetLimitValue() interface{} {\n\treturn m.Max\n}\n\n// Length Requires an array or string to be exactly a given length.\ntype Length struct {\n\tN   int\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (l Length) IsSatisfied(obj interface{}) bool {\n\tif str, ok := obj.(string); ok {\n\t\treturn utf8.RuneCountInString(str) == l.N\n\t}\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() == reflect.Slice {\n\t\treturn v.Len() == l.N\n\t}\n\treturn false\n}\n\n// DefaultMessage return the default Length error message\nfunc (l Length) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"Length\"], l.N)\n}\n\n// GetKey return the m.Key\nfunc (l Length) GetKey() string {\n\treturn l.Key\n}\n\n// GetLimitValue return the limit value\nfunc (l Length) GetLimitValue() interface{} {\n\treturn l.N\n}\n\n// Alpha check the alpha\ntype Alpha struct {\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (a Alpha) IsSatisfied(obj interface{}) bool {\n\tif str, ok := obj.(string); ok {\n\t\tfor _, v := range str {\n\t\t\tif ('Z' < v || v < 'A') && ('z' < v || v < 'a') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// DefaultMessage return the default Length error message\nfunc (a Alpha) DefaultMessage() string {\n\treturn MessageTmpls[\"Alpha\"]\n}\n\n// GetKey return the m.Key\nfunc (a Alpha) GetKey() string {\n\treturn a.Key\n}\n\n// GetLimitValue return the limit value\nfunc (a Alpha) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// Numeric check number\ntype Numeric struct {\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (n Numeric) IsSatisfied(obj interface{}) bool {\n\tif str, ok := obj.(string); ok {\n\t\tfor _, v := range str {\n\t\t\tif '9' < v || v < '0' {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// DefaultMessage return the default Length error message\nfunc (n Numeric) DefaultMessage() string {\n\treturn MessageTmpls[\"Numeric\"]\n}\n\n// GetKey return the n.Key\nfunc (n Numeric) GetKey() string {\n\treturn n.Key\n}\n\n// GetLimitValue return the limit value\nfunc (n Numeric) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// AlphaNumeric check alpha and number\ntype AlphaNumeric struct {\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (a AlphaNumeric) IsSatisfied(obj interface{}) bool {\n\tif str, ok := obj.(string); ok {\n\t\tfor _, v := range str {\n\t\t\tif ('Z' < v || v < 'A') && ('z' < v || v < 'a') && ('9' < v || v < '0') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// DefaultMessage return the default Length error message\nfunc (a AlphaNumeric) DefaultMessage() string {\n\treturn MessageTmpls[\"AlphaNumeric\"]\n}\n\n// GetKey return the a.Key\nfunc (a AlphaNumeric) GetKey() string {\n\treturn a.Key\n}\n\n// GetLimitValue return the limit value\nfunc (a AlphaNumeric) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// Match Requires a string to match a given regex.\ntype Match struct {\n\tRegexp *regexp.Regexp\n\tKey    string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (m Match) IsSatisfied(obj interface{}) bool {\n\treturn m.Regexp.MatchString(fmt.Sprintf(\"%v\", obj))\n}\n\n// DefaultMessage return the default Match error message\nfunc (m Match) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"Match\"], m.Regexp.String())\n}\n\n// GetKey return the m.Key\nfunc (m Match) GetKey() string {\n\treturn m.Key\n}\n\n// GetLimitValue return the limit value\nfunc (m Match) GetLimitValue() interface{} {\n\treturn m.Regexp.String()\n}\n\n// NoMatch Requires a string to not match a given regex.\ntype NoMatch struct {\n\tMatch\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (n NoMatch) IsSatisfied(obj interface{}) bool {\n\treturn !n.Match.IsSatisfied(obj)\n}\n\n// DefaultMessage return the default NoMatch error message\nfunc (n NoMatch) DefaultMessage() string {\n\treturn fmt.Sprintf(MessageTmpls[\"NoMatch\"], n.Regexp.String())\n}\n\n// GetKey return the n.Key\nfunc (n NoMatch) GetKey() string {\n\treturn n.Key\n}\n\n// GetLimitValue return the limit value\nfunc (n NoMatch) GetLimitValue() interface{} {\n\treturn n.Regexp.String()\n}\n\nvar alphaDashPattern = regexp.MustCompile(`[^\\d\\w-_]`)\n\n// AlphaDash check not Alpha\ntype AlphaDash struct {\n\tNoMatch\n\tKey string\n}\n\n// DefaultMessage return the default AlphaDash error message\nfunc (a AlphaDash) DefaultMessage() string {\n\treturn MessageTmpls[\"AlphaDash\"]\n}\n\n// GetKey return the n.Key\nfunc (a AlphaDash) GetKey() string {\n\treturn a.Key\n}\n\n// GetLimitValue return the limit value\nfunc (a AlphaDash) GetLimitValue() interface{} {\n\treturn nil\n}\n\nvar emailPattern = regexp.MustCompile(`^[\\w!#$%&'*+/=?^_` + \"`\" + `{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_` + \"`\" + `{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[a-zA-Z0-9](?:[\\w-]*[\\w])?$`)\n\n// Email check struct\ntype Email struct {\n\tMatch\n\tKey string\n}\n\n// DefaultMessage return the default Email error message\nfunc (e Email) DefaultMessage() string {\n\treturn MessageTmpls[\"Email\"]\n}\n\n// GetKey return the n.Key\nfunc (e Email) GetKey() string {\n\treturn e.Key\n}\n\n// GetLimitValue return the limit value\nfunc (e Email) GetLimitValue() interface{} {\n\treturn nil\n}\n\nvar ipPattern = regexp.MustCompile(`^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$`)\n\n// IP check struct\ntype IP struct {\n\tMatch\n\tKey string\n}\n\n// DefaultMessage return the default IP error message\nfunc (i IP) DefaultMessage() string {\n\treturn MessageTmpls[\"IP\"]\n}\n\n// GetKey return the i.Key\nfunc (i IP) GetKey() string {\n\treturn i.Key\n}\n\n// GetLimitValue return the limit value\nfunc (i IP) GetLimitValue() interface{} {\n\treturn nil\n}\n\nvar base64Pattern = regexp.MustCompile(`^(?:[A-Za-z0-99+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$`)\n\n// Base64 check struct\ntype Base64 struct {\n\tMatch\n\tKey string\n}\n\n// DefaultMessage return the default Base64 error message\nfunc (b Base64) DefaultMessage() string {\n\treturn MessageTmpls[\"Base64\"]\n}\n\n// GetKey return the b.Key\nfunc (b Base64) GetKey() string {\n\treturn b.Key\n}\n\n// GetLimitValue return the limit value\nfunc (b Base64) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// just for chinese mobile phone number\nvar mobilePattern = regexp.MustCompile(`^((\\+86)|(86))?(1(([35][0-9])|[8][0-9]|[7][06789]|[4][579]))\\d{8}$`)\n\n// Mobile check struct\ntype Mobile struct {\n\tMatch\n\tKey string\n}\n\n// DefaultMessage return the default Mobile error message\nfunc (m Mobile) DefaultMessage() string {\n\treturn MessageTmpls[\"Mobile\"]\n}\n\n// GetKey return the m.Key\nfunc (m Mobile) GetKey() string {\n\treturn m.Key\n}\n\n// GetLimitValue return the limit value\nfunc (m Mobile) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// just for chinese telephone number\nvar telPattern = regexp.MustCompile(`^(0\\d{2,3}(\\-)?)?\\d{7,8}$`)\n\n// Tel check telephone struct\ntype Tel struct {\n\tMatch\n\tKey string\n}\n\n// DefaultMessage return the default Tel error message\nfunc (t Tel) DefaultMessage() string {\n\treturn MessageTmpls[\"Tel\"]\n}\n\n// GetKey return the t.Key\nfunc (t Tel) GetKey() string {\n\treturn t.Key\n}\n\n// GetLimitValue return the limit value\nfunc (t Tel) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// Phone just for chinese telephone or mobile phone number\ntype Phone struct {\n\tMobile\n\tTel\n\tKey string\n}\n\n// IsSatisfied judge whether obj is valid\nfunc (p Phone) IsSatisfied(obj interface{}) bool {\n\treturn p.Mobile.IsSatisfied(obj) || p.Tel.IsSatisfied(obj)\n}\n\n// DefaultMessage return the default Phone error message\nfunc (p Phone) DefaultMessage() string {\n\treturn MessageTmpls[\"Phone\"]\n}\n\n// GetKey return the p.Key\nfunc (p Phone) GetKey() string {\n\treturn p.Key\n}\n\n// GetLimitValue return the limit value\nfunc (p Phone) GetLimitValue() interface{} {\n\treturn nil\n}\n\n// just for chinese zipcode\nvar zipCodePattern = regexp.MustCompile(`^[1-9]\\d{5}$`)\n\n// ZipCode check the zip struct\ntype ZipCode struct {\n\tMatch\n\tKey string\n}\n\n// DefaultMessage return the default Zip error message\nfunc (z ZipCode) DefaultMessage() string {\n\treturn MessageTmpls[\"ZipCode\"]\n}\n\n// GetKey return the z.Key\nfunc (z ZipCode) GetKey() string {\n\treturn z.Key\n}\n\n// GetLimitValue return the limit value\nfunc (z ZipCode) GetLimitValue() interface{} {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/.gitignore",
    "content": ".vscode/\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Florian Sundermann\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/README.md",
    "content": "[![Join the chat at https://gitter.im/golang-barcode/Lobby](https://badges.gitter.im/golang-barcode/Lobby.svg)](https://gitter.im/golang-barcode/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n## Introduction ##\n\nThis is a package for GO which can be used to create different types of barcodes.\n\n## Supported Barcode Types ##\n* 2 of 5\n* Aztec Code\n* Codabar\n* Code 128\n* Code 39\n* Code 93\n* Datamatrix\n* EAN 13\n* EAN 8\n* PDF 417\n* QR Code\n\n## Example ##\n\nThis is a simple example on how to create a QR-Code and write it to a png-file\n```go\npackage main\n\nimport (\n\t\"image/png\"\n\t\"os\"\n\n\t\"github.com/boombuler/barcode\"\n\t\"github.com/boombuler/barcode/qr\"\n)\n\nfunc main() {\n\t// Create the barcode\n\tqrCode, _ := qr.Encode(\"Hello World\", qr.M, qr.Auto)\n\n\t// Scale the barcode to 200x200 pixels\n\tqrCode, _ = barcode.Scale(qrCode, 200, 200)\n\n\t// create the output file\n\tfile, _ := os.Create(\"qrcode.png\")\n\tdefer file.Close()\n\n\t// encode the barcode as png\n\tpng.Encode(file, qrCode)\n}\n```\n\n## Documentation ##\nSee [GoDoc](https://godoc.org/github.com/boombuler/barcode)\n\nTo create a barcode use the Encode function from one of the subpackages.\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/barcode.go",
    "content": "package barcode\n\nimport \"image\"\n\nconst (\n\tTypeAztec           = \"Aztec\"\n\tTypeCodabar         = \"Codabar\"\n\tTypeCode128         = \"Code 128\"\n\tTypeCode39          = \"Code 39\"\n\tTypeCode93          = \"Code 93\"\n\tTypeDataMatrix      = \"DataMatrix\"\n\tTypeEAN8            = \"EAN 8\"\n\tTypeEAN13           = \"EAN 13\"\n\tTypePDF             = \"PDF417\"\n\tTypeQR              = \"QR Code\"\n\tType2of5            = \"2 of 5\"\n\tType2of5Interleaved = \"2 of 5 (interleaved)\"\n)\n\n// Contains some meta information about a barcode\ntype Metadata struct {\n\t// the name of the barcode kind\n\tCodeKind string\n\t// contains 1 for 1D barcodes or 2 for 2D barcodes\n\tDimensions byte\n}\n\n// a rendered and encoded barcode\ntype Barcode interface {\n\timage.Image\n\t// returns some meta information about the barcode\n\tMetadata() Metadata\n\t// the data that was encoded in this barcode\n\tContent() string\n}\n\n// Additional interface that some barcodes might implement to provide\n// the value of its checksum.\ntype BarcodeIntCS interface {\n\tBarcode\n\tCheckSum() int\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/alphanumeric.go",
    "content": "package qr\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/boombuler/barcode/utils\"\n)\n\nconst charSet string = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\"\n\nfunc stringToAlphaIdx(content string) <-chan int {\n\tresult := make(chan int)\n\tgo func() {\n\t\tfor _, r := range content {\n\t\t\tidx := strings.IndexRune(charSet, r)\n\t\t\tresult <- idx\n\t\t\tif idx < 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tclose(result)\n\t}()\n\n\treturn result\n}\n\nfunc encodeAlphaNumeric(content string, ecl ErrorCorrectionLevel) (*utils.BitList, *versionInfo, error) {\n\n\tcontentLenIsOdd := len(content)%2 == 1\n\tcontentBitCount := (len(content) / 2) * 11\n\tif contentLenIsOdd {\n\t\tcontentBitCount += 6\n\t}\n\tvi := findSmallestVersionInfo(ecl, alphaNumericMode, contentBitCount)\n\tif vi == nil {\n\t\treturn nil, nil, errors.New(\"To much data to encode\")\n\t}\n\n\tres := new(utils.BitList)\n\tres.AddBits(int(alphaNumericMode), 4)\n\tres.AddBits(len(content), vi.charCountBits(alphaNumericMode))\n\n\tencoder := stringToAlphaIdx(content)\n\n\tfor idx := 0; idx < len(content)/2; idx++ {\n\t\tc1 := <-encoder\n\t\tc2 := <-encoder\n\t\tif c1 < 0 || c2 < 0 {\n\t\t\treturn nil, nil, fmt.Errorf(\"\\\"%s\\\" can not be encoded as %s\", content, AlphaNumeric)\n\t\t}\n\t\tres.AddBits(c1*45+c2, 11)\n\t}\n\tif contentLenIsOdd {\n\t\tc := <-encoder\n\t\tif c < 0 {\n\t\t\treturn nil, nil, fmt.Errorf(\"\\\"%s\\\" can not be encoded as %s\", content, AlphaNumeric)\n\t\t}\n\t\tres.AddBits(c, 6)\n\t}\n\n\taddPaddingAndTerminator(res, vi)\n\n\treturn res, vi, nil\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/automatic.go",
    "content": "package qr\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/boombuler/barcode/utils\"\n)\n\nfunc encodeAuto(content string, ecl ErrorCorrectionLevel) (*utils.BitList, *versionInfo, error) {\n\tbits, vi, _ := Numeric.getEncoder()(content, ecl)\n\tif bits != nil && vi != nil {\n\t\treturn bits, vi, nil\n\t}\n\tbits, vi, _ = AlphaNumeric.getEncoder()(content, ecl)\n\tif bits != nil && vi != nil {\n\t\treturn bits, vi, nil\n\t}\n\tbits, vi, _ = Unicode.getEncoder()(content, ecl)\n\tif bits != nil && vi != nil {\n\t\treturn bits, vi, nil\n\t}\n\treturn nil, nil, fmt.Errorf(\"No encoding found to encode \\\"%s\\\"\", content)\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/blocks.go",
    "content": "package qr\n\ntype block struct {\n\tdata []byte\n\tecc  []byte\n}\ntype blockList []*block\n\nfunc splitToBlocks(data <-chan byte, vi *versionInfo) blockList {\n\tresult := make(blockList, vi.NumberOfBlocksInGroup1+vi.NumberOfBlocksInGroup2)\n\n\tfor b := 0; b < int(vi.NumberOfBlocksInGroup1); b++ {\n\t\tblk := new(block)\n\t\tblk.data = make([]byte, vi.DataCodeWordsPerBlockInGroup1)\n\t\tfor cw := 0; cw < int(vi.DataCodeWordsPerBlockInGroup1); cw++ {\n\t\t\tblk.data[cw] = <-data\n\t\t}\n\t\tblk.ecc = ec.calcECC(blk.data, vi.ErrorCorrectionCodewordsPerBlock)\n\t\tresult[b] = blk\n\t}\n\n\tfor b := 0; b < int(vi.NumberOfBlocksInGroup2); b++ {\n\t\tblk := new(block)\n\t\tblk.data = make([]byte, vi.DataCodeWordsPerBlockInGroup2)\n\t\tfor cw := 0; cw < int(vi.DataCodeWordsPerBlockInGroup2); cw++ {\n\t\t\tblk.data[cw] = <-data\n\t\t}\n\t\tblk.ecc = ec.calcECC(blk.data, vi.ErrorCorrectionCodewordsPerBlock)\n\t\tresult[int(vi.NumberOfBlocksInGroup1)+b] = blk\n\t}\n\n\treturn result\n}\n\nfunc (bl blockList) interleave(vi *versionInfo) []byte {\n\tvar maxCodewordCount int\n\tif vi.DataCodeWordsPerBlockInGroup1 > vi.DataCodeWordsPerBlockInGroup2 {\n\t\tmaxCodewordCount = int(vi.DataCodeWordsPerBlockInGroup1)\n\t} else {\n\t\tmaxCodewordCount = int(vi.DataCodeWordsPerBlockInGroup2)\n\t}\n\tresultLen := (vi.DataCodeWordsPerBlockInGroup1+vi.ErrorCorrectionCodewordsPerBlock)*vi.NumberOfBlocksInGroup1 +\n\t\t(vi.DataCodeWordsPerBlockInGroup2+vi.ErrorCorrectionCodewordsPerBlock)*vi.NumberOfBlocksInGroup2\n\n\tresult := make([]byte, 0, resultLen)\n\tfor i := 0; i < maxCodewordCount; i++ {\n\t\tfor b := 0; b < len(bl); b++ {\n\t\t\tif len(bl[b].data) > i {\n\t\t\t\tresult = append(result, bl[b].data[i])\n\t\t\t}\n\t\t}\n\t}\n\tfor i := 0; i < int(vi.ErrorCorrectionCodewordsPerBlock); i++ {\n\t\tfor b := 0; b < len(bl); b++ {\n\t\t\tresult = append(result, bl[b].ecc[i])\n\t\t}\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/encoder.go",
    "content": "// Package qr can be used to create QR barcodes.\npackage qr\n\nimport (\n\t\"image\"\n\n\t\"github.com/boombuler/barcode\"\n\t\"github.com/boombuler/barcode/utils\"\n)\n\ntype encodeFn func(content string, eccLevel ErrorCorrectionLevel) (*utils.BitList, *versionInfo, error)\n\n// Encoding mode for QR Codes.\ntype Encoding byte\n\nconst (\n\t// Auto will choose ths best matching encoding\n\tAuto Encoding = iota\n\t// Numeric encoding only encodes numbers [0-9]\n\tNumeric\n\t// AlphaNumeric encoding only encodes uppercase letters, numbers and  [Space], $, %, *, +, -, ., /, :\n\tAlphaNumeric\n\t// Unicode encoding encodes the string as utf-8\n\tUnicode\n\t// only for testing purpose\n\tunknownEncoding\n)\n\nfunc (e Encoding) getEncoder() encodeFn {\n\tswitch e {\n\tcase Auto:\n\t\treturn encodeAuto\n\tcase Numeric:\n\t\treturn encodeNumeric\n\tcase AlphaNumeric:\n\t\treturn encodeAlphaNumeric\n\tcase Unicode:\n\t\treturn encodeUnicode\n\t}\n\treturn nil\n}\n\nfunc (e Encoding) String() string {\n\tswitch e {\n\tcase Auto:\n\t\treturn \"Auto\"\n\tcase Numeric:\n\t\treturn \"Numeric\"\n\tcase AlphaNumeric:\n\t\treturn \"AlphaNumeric\"\n\tcase Unicode:\n\t\treturn \"Unicode\"\n\t}\n\treturn \"\"\n}\n\n// Encode returns a QR barcode with the given content, error correction level and uses the given encoding\nfunc Encode(content string, level ErrorCorrectionLevel, mode Encoding) (barcode.Barcode, error) {\n\tbits, vi, err := mode.getEncoder()(content, level)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tblocks := splitToBlocks(bits.IterateBytes(), vi)\n\tdata := blocks.interleave(vi)\n\tresult := render(data, vi)\n\tresult.content = content\n\treturn result, nil\n}\n\nfunc render(data []byte, vi *versionInfo) *qrcode {\n\tdim := vi.modulWidth()\n\tresults := make([]*qrcode, 8)\n\tfor i := 0; i < 8; i++ {\n\t\tresults[i] = newBarcode(dim)\n\t}\n\n\toccupied := newBarcode(dim)\n\n\tsetAll := func(x int, y int, val bool) {\n\t\toccupied.Set(x, y, true)\n\t\tfor i := 0; i < 8; i++ {\n\t\t\tresults[i].Set(x, y, val)\n\t\t}\n\t}\n\n\tdrawFinderPatterns(vi, setAll)\n\tdrawAlignmentPatterns(occupied, vi, setAll)\n\n\t//Timing Pattern:\n\tvar i int\n\tfor i = 0; i < dim; i++ {\n\t\tif !occupied.Get(i, 6) {\n\t\t\tsetAll(i, 6, i%2 == 0)\n\t\t}\n\t\tif !occupied.Get(6, i) {\n\t\t\tsetAll(6, i, i%2 == 0)\n\t\t}\n\t}\n\t// Dark Module\n\tsetAll(8, dim-8, true)\n\n\tdrawVersionInfo(vi, setAll)\n\tdrawFormatInfo(vi, -1, occupied.Set)\n\tfor i := 0; i < 8; i++ {\n\t\tdrawFormatInfo(vi, i, results[i].Set)\n\t}\n\n\t// Write the data\n\tvar curBitNo int\n\n\tfor pos := range iterateModules(occupied) {\n\t\tvar curBit bool\n\t\tif curBitNo < len(data)*8 {\n\t\t\tcurBit = ((data[curBitNo/8] >> uint(7-(curBitNo%8))) & 1) == 1\n\t\t} else {\n\t\t\tcurBit = false\n\t\t}\n\n\t\tfor i := 0; i < 8; i++ {\n\t\t\tsetMasked(pos.X, pos.Y, curBit, i, results[i].Set)\n\t\t}\n\t\tcurBitNo++\n\t}\n\n\tlowestPenalty := ^uint(0)\n\tlowestPenaltyIdx := -1\n\tfor i := 0; i < 8; i++ {\n\t\tp := results[i].calcPenalty()\n\t\tif p < lowestPenalty {\n\t\t\tlowestPenalty = p\n\t\t\tlowestPenaltyIdx = i\n\t\t}\n\t}\n\treturn results[lowestPenaltyIdx]\n}\n\nfunc setMasked(x, y int, val bool, mask int, set func(int, int, bool)) {\n\tswitch mask {\n\tcase 0:\n\t\tval = val != (((y + x) % 2) == 0)\n\t\tbreak\n\tcase 1:\n\t\tval = val != ((y % 2) == 0)\n\t\tbreak\n\tcase 2:\n\t\tval = val != ((x % 3) == 0)\n\t\tbreak\n\tcase 3:\n\t\tval = val != (((y + x) % 3) == 0)\n\t\tbreak\n\tcase 4:\n\t\tval = val != (((y/2 + x/3) % 2) == 0)\n\t\tbreak\n\tcase 5:\n\t\tval = val != (((y*x)%2)+((y*x)%3) == 0)\n\t\tbreak\n\tcase 6:\n\t\tval = val != ((((y*x)%2)+((y*x)%3))%2 == 0)\n\t\tbreak\n\tcase 7:\n\t\tval = val != ((((y+x)%2)+((y*x)%3))%2 == 0)\n\t}\n\tset(x, y, val)\n}\n\nfunc iterateModules(occupied *qrcode) <-chan image.Point {\n\tresult := make(chan image.Point)\n\tallPoints := make(chan image.Point)\n\tgo func() {\n\t\tcurX := occupied.dimension - 1\n\t\tcurY := occupied.dimension - 1\n\t\tisUpward := true\n\n\t\tfor true {\n\t\t\tif isUpward {\n\t\t\t\tallPoints <- image.Pt(curX, curY)\n\t\t\t\tallPoints <- image.Pt(curX-1, curY)\n\t\t\t\tcurY--\n\t\t\t\tif curY < 0 {\n\t\t\t\t\tcurY = 0\n\t\t\t\t\tcurX -= 2\n\t\t\t\t\tif curX == 6 {\n\t\t\t\t\t\tcurX--\n\t\t\t\t\t}\n\t\t\t\t\tif curX < 0 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tisUpward = false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tallPoints <- image.Pt(curX, curY)\n\t\t\t\tallPoints <- image.Pt(curX-1, curY)\n\t\t\t\tcurY++\n\t\t\t\tif curY >= occupied.dimension {\n\t\t\t\t\tcurY = occupied.dimension - 1\n\t\t\t\t\tcurX -= 2\n\t\t\t\t\tif curX == 6 {\n\t\t\t\t\t\tcurX--\n\t\t\t\t\t}\n\t\t\t\t\tisUpward = true\n\t\t\t\t\tif curX < 0 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tclose(allPoints)\n\t}()\n\tgo func() {\n\t\tfor pt := range allPoints {\n\t\t\tif !occupied.Get(pt.X, pt.Y) {\n\t\t\t\tresult <- pt\n\t\t\t}\n\t\t}\n\t\tclose(result)\n\t}()\n\treturn result\n}\n\nfunc drawFinderPatterns(vi *versionInfo, set func(int, int, bool)) {\n\tdim := vi.modulWidth()\n\tdrawPattern := func(xoff int, yoff int) {\n\t\tfor x := -1; x < 8; x++ {\n\t\t\tfor y := -1; y < 8; y++ {\n\t\t\t\tval := (x == 0 || x == 6 || y == 0 || y == 6 || (x > 1 && x < 5 && y > 1 && y < 5)) && (x <= 6 && y <= 6 && x >= 0 && y >= 0)\n\n\t\t\t\tif x+xoff >= 0 && x+xoff < dim && y+yoff >= 0 && y+yoff < dim {\n\t\t\t\t\tset(x+xoff, y+yoff, val)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tdrawPattern(0, 0)\n\tdrawPattern(0, dim-7)\n\tdrawPattern(dim-7, 0)\n}\n\nfunc drawAlignmentPatterns(occupied *qrcode, vi *versionInfo, set func(int, int, bool)) {\n\tdrawPattern := func(xoff int, yoff int) {\n\t\tfor x := -2; x <= 2; x++ {\n\t\t\tfor y := -2; y <= 2; y++ {\n\t\t\t\tval := x == -2 || x == 2 || y == -2 || y == 2 || (x == 0 && y == 0)\n\t\t\t\tset(x+xoff, y+yoff, val)\n\t\t\t}\n\t\t}\n\t}\n\tpositions := vi.alignmentPatternPlacements()\n\n\tfor _, x := range positions {\n\t\tfor _, y := range positions {\n\t\t\tif occupied.Get(x, y) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdrawPattern(x, y)\n\t\t}\n\t}\n}\n\nvar formatInfos = map[ErrorCorrectionLevel]map[int][]bool{\n\tL: {\n\t\t0: []bool{true, true, true, false, true, true, true, true, true, false, false, false, true, false, false},\n\t\t1: []bool{true, true, true, false, false, true, false, true, true, true, true, false, false, true, true},\n\t\t2: []bool{true, true, true, true, true, false, true, true, false, true, false, true, false, true, false},\n\t\t3: []bool{true, true, true, true, false, false, false, true, false, false, true, true, true, false, true},\n\t\t4: []bool{true, true, false, false, true, true, false, false, false, true, false, true, true, true, true},\n\t\t5: []bool{true, true, false, false, false, true, true, false, false, false, true, true, false, false, false},\n\t\t6: []bool{true, true, false, true, true, false, false, false, true, false, false, false, false, false, true},\n\t\t7: []bool{true, true, false, true, false, false, true, false, true, true, true, false, true, true, false},\n\t},\n\tM: {\n\t\t0: []bool{true, false, true, false, true, false, false, false, false, false, true, false, false, true, false},\n\t\t1: []bool{true, false, true, false, false, false, true, false, false, true, false, false, true, false, true},\n\t\t2: []bool{true, false, true, true, true, true, false, false, true, true, true, true, true, false, false},\n\t\t3: []bool{true, false, true, true, false, true, true, false, true, false, false, true, false, true, true},\n\t\t4: []bool{true, false, false, false, true, false, true, true, true, true, true, true, false, false, true},\n\t\t5: []bool{true, false, false, false, false, false, false, true, true, false, false, true, true, true, false},\n\t\t6: []bool{true, false, false, true, true, true, true, true, false, false, true, false, true, true, true},\n\t\t7: []bool{true, false, false, true, false, true, false, true, false, true, false, false, false, false, false},\n\t},\n\tQ: {\n\t\t0: []bool{false, true, true, false, true, false, true, false, true, false, true, true, true, true, true},\n\t\t1: []bool{false, true, true, false, false, false, false, false, true, true, false, true, false, false, false},\n\t\t2: []bool{false, true, true, true, true, true, true, false, false, true, true, false, false, false, true},\n\t\t3: []bool{false, true, true, true, false, true, false, false, false, false, false, false, true, true, false},\n\t\t4: []bool{false, true, false, false, true, false, false, true, false, true, true, false, true, false, false},\n\t\t5: []bool{false, true, false, false, false, false, true, true, false, false, false, false, false, true, true},\n\t\t6: []bool{false, true, false, true, true, true, false, true, true, false, true, true, false, true, false},\n\t\t7: []bool{false, true, false, true, false, true, true, true, true, true, false, true, true, false, true},\n\t},\n\tH: {\n\t\t0: []bool{false, false, true, false, true, true, false, true, false, false, false, true, false, false, true},\n\t\t1: []bool{false, false, true, false, false, true, true, true, false, true, true, true, true, true, false},\n\t\t2: []bool{false, false, true, true, true, false, false, true, true, true, false, false, true, true, true},\n\t\t3: []bool{false, false, true, true, false, false, true, true, true, false, true, false, false, false, false},\n\t\t4: []bool{false, false, false, false, true, true, true, false, true, true, false, false, false, true, false},\n\t\t5: []bool{false, false, false, false, false, true, false, false, true, false, true, false, true, false, true},\n\t\t6: []bool{false, false, false, true, true, false, true, false, false, false, false, true, true, false, false},\n\t\t7: []bool{false, false, false, true, false, false, false, false, false, true, true, true, false, true, true},\n\t},\n}\n\nfunc drawFormatInfo(vi *versionInfo, usedMask int, set func(int, int, bool)) {\n\tvar formatInfo []bool\n\n\tif usedMask == -1 {\n\t\tformatInfo = []bool{true, true, true, true, true, true, true, true, true, true, true, true, true, true, true} // Set all to true cause -1 --> occupied mask.\n\t} else {\n\t\tformatInfo = formatInfos[vi.Level][usedMask]\n\t}\n\n\tif len(formatInfo) == 15 {\n\t\tdim := vi.modulWidth()\n\t\tset(0, 8, formatInfo[0])\n\t\tset(1, 8, formatInfo[1])\n\t\tset(2, 8, formatInfo[2])\n\t\tset(3, 8, formatInfo[3])\n\t\tset(4, 8, formatInfo[4])\n\t\tset(5, 8, formatInfo[5])\n\t\tset(7, 8, formatInfo[6])\n\t\tset(8, 8, formatInfo[7])\n\t\tset(8, 7, formatInfo[8])\n\t\tset(8, 5, formatInfo[9])\n\t\tset(8, 4, formatInfo[10])\n\t\tset(8, 3, formatInfo[11])\n\t\tset(8, 2, formatInfo[12])\n\t\tset(8, 1, formatInfo[13])\n\t\tset(8, 0, formatInfo[14])\n\n\t\tset(8, dim-1, formatInfo[0])\n\t\tset(8, dim-2, formatInfo[1])\n\t\tset(8, dim-3, formatInfo[2])\n\t\tset(8, dim-4, formatInfo[3])\n\t\tset(8, dim-5, formatInfo[4])\n\t\tset(8, dim-6, formatInfo[5])\n\t\tset(8, dim-7, formatInfo[6])\n\t\tset(dim-8, 8, formatInfo[7])\n\t\tset(dim-7, 8, formatInfo[8])\n\t\tset(dim-6, 8, formatInfo[9])\n\t\tset(dim-5, 8, formatInfo[10])\n\t\tset(dim-4, 8, formatInfo[11])\n\t\tset(dim-3, 8, formatInfo[12])\n\t\tset(dim-2, 8, formatInfo[13])\n\t\tset(dim-1, 8, formatInfo[14])\n\t}\n}\n\nvar versionInfoBitsByVersion = map[byte][]bool{\n\t7:  []bool{false, false, false, true, true, true, true, true, false, false, true, false, false, true, false, true, false, false},\n\t8:  []bool{false, false, true, false, false, false, false, true, false, true, true, false, true, true, true, true, false, false},\n\t9:  []bool{false, false, true, false, false, true, true, false, true, false, true, false, false, true, true, false, false, true},\n\t10: []bool{false, false, true, false, true, false, false, true, false, false, true, true, false, true, false, false, true, true},\n\t11: []bool{false, false, true, false, true, true, true, false, true, true, true, true, true, true, false, true, true, false},\n\t12: []bool{false, false, true, true, false, false, false, true, true, true, false, true, true, false, false, false, true, false},\n\t13: []bool{false, false, true, true, false, true, true, false, false, false, false, true, false, false, false, true, true, true},\n\t14: []bool{false, false, true, true, true, false, false, true, true, false, false, false, false, false, true, true, false, true},\n\t15: []bool{false, false, true, true, true, true, true, false, false, true, false, false, true, false, true, false, false, false},\n\t16: []bool{false, true, false, false, false, false, true, false, true, true, false, true, true, true, true, false, false, false},\n\t17: []bool{false, true, false, false, false, true, false, true, false, false, false, true, false, true, true, true, false, true},\n\t18: []bool{false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, true, true, true},\n\t19: []bool{false, true, false, false, true, true, false, true, false, true, false, false, true, true, false, false, true, false},\n\t20: []bool{false, true, false, true, false, false, true, false, false, true, true, false, true, false, false, true, true, false},\n\t21: []bool{false, true, false, true, false, true, false, true, true, false, true, false, false, false, false, false, true, true},\n\t22: []bool{false, true, false, true, true, false, true, false, false, false, true, true, false, false, true, false, false, true},\n\t23: []bool{false, true, false, true, true, true, false, true, true, true, true, true, true, false, true, true, false, false},\n\t24: []bool{false, true, true, false, false, false, true, true, true, false, true, true, false, false, false, true, false, false},\n\t25: []bool{false, true, true, false, false, true, false, false, false, true, true, true, true, false, false, false, false, true},\n\t26: []bool{false, true, true, false, true, false, true, true, true, true, true, false, true, false, true, false, true, true},\n\t27: []bool{false, true, true, false, true, true, false, false, false, false, true, false, false, false, true, true, true, false},\n\t28: []bool{false, true, true, true, false, false, true, true, false, false, false, false, false, true, true, false, true, false},\n\t29: []bool{false, true, true, true, false, true, false, false, true, true, false, false, true, true, true, true, true, true},\n\t30: []bool{false, true, true, true, true, false, true, true, false, true, false, true, true, true, false, true, false, true},\n\t31: []bool{false, true, true, true, true, true, false, false, true, false, false, true, false, true, false, false, false, false},\n\t32: []bool{true, false, false, false, false, false, true, false, false, true, true, true, false, true, false, true, false, true},\n\t33: []bool{true, false, false, false, false, true, false, true, true, false, true, true, true, true, false, false, false, false},\n\t34: []bool{true, false, false, false, true, false, true, false, false, false, true, false, true, true, true, false, true, false},\n\t35: []bool{true, false, false, false, true, true, false, true, true, true, true, false, false, true, true, true, true, true},\n\t36: []bool{true, false, false, true, false, false, true, false, true, true, false, false, false, false, true, false, true, true},\n\t37: []bool{true, false, false, true, false, true, false, true, false, false, false, false, true, false, true, true, true, false},\n\t38: []bool{true, false, false, true, true, false, true, false, true, false, false, true, true, false, false, true, false, false},\n\t39: []bool{true, false, false, true, true, true, false, true, false, true, false, true, false, false, false, false, false, true},\n\t40: []bool{true, false, true, false, false, false, true, true, false, false, false, true, true, false, true, false, false, true},\n}\n\nfunc drawVersionInfo(vi *versionInfo, set func(int, int, bool)) {\n\tversionInfoBits, ok := versionInfoBitsByVersion[vi.Version]\n\n\tif ok && len(versionInfoBits) > 0 {\n\t\tfor i := 0; i < len(versionInfoBits); i++ {\n\t\t\tx := (vi.modulWidth() - 11) + i%3\n\t\t\ty := i / 3\n\t\t\tset(x, y, versionInfoBits[len(versionInfoBits)-i-1])\n\t\t\tset(y, x, versionInfoBits[len(versionInfoBits)-i-1])\n\t\t}\n\t}\n\n}\n\nfunc addPaddingAndTerminator(bl *utils.BitList, vi *versionInfo) {\n\tfor i := 0; i < 4 && bl.Len() < vi.totalDataBytes()*8; i++ {\n\t\tbl.AddBit(false)\n\t}\n\n\tfor bl.Len()%8 != 0 {\n\t\tbl.AddBit(false)\n\t}\n\n\tfor i := 0; bl.Len() < vi.totalDataBytes()*8; i++ {\n\t\tif i%2 == 0 {\n\t\t\tbl.AddByte(236)\n\t\t} else {\n\t\t\tbl.AddByte(17)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/errorcorrection.go",
    "content": "package qr\n\nimport (\n\t\"github.com/boombuler/barcode/utils\"\n)\n\ntype errorCorrection struct {\n\trs *utils.ReedSolomonEncoder\n}\n\nvar ec = newErrorCorrection()\n\nfunc newErrorCorrection() *errorCorrection {\n\tfld := utils.NewGaloisField(285, 256, 0)\n\treturn &errorCorrection{utils.NewReedSolomonEncoder(fld)}\n}\n\nfunc (ec *errorCorrection) calcECC(data []byte, eccCount byte) []byte {\n\tdataInts := make([]int, len(data))\n\tfor i := 0; i < len(data); i++ {\n\t\tdataInts[i] = int(data[i])\n\t}\n\tres := ec.rs.Encode(dataInts, int(eccCount))\n\tresult := make([]byte, len(res))\n\tfor i := 0; i < len(res); i++ {\n\t\tresult[i] = byte(res[i])\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/numeric.go",
    "content": "package qr\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/boombuler/barcode/utils\"\n)\n\nfunc encodeNumeric(content string, ecl ErrorCorrectionLevel) (*utils.BitList, *versionInfo, error) {\n\tcontentBitCount := (len(content) / 3) * 10\n\tswitch len(content) % 3 {\n\tcase 1:\n\t\tcontentBitCount += 4\n\tcase 2:\n\t\tcontentBitCount += 7\n\t}\n\tvi := findSmallestVersionInfo(ecl, numericMode, contentBitCount)\n\tif vi == nil {\n\t\treturn nil, nil, errors.New(\"To much data to encode\")\n\t}\n\tres := new(utils.BitList)\n\tres.AddBits(int(numericMode), 4)\n\tres.AddBits(len(content), vi.charCountBits(numericMode))\n\n\tfor pos := 0; pos < len(content); pos += 3 {\n\t\tvar curStr string\n\t\tif pos+3 <= len(content) {\n\t\t\tcurStr = content[pos : pos+3]\n\t\t} else {\n\t\t\tcurStr = content[pos:]\n\t\t}\n\n\t\ti, err := strconv.Atoi(curStr)\n\t\tif err != nil || i < 0 {\n\t\t\treturn nil, nil, fmt.Errorf(\"\\\"%s\\\" can not be encoded as %s\", content, Numeric)\n\t\t}\n\t\tvar bitCnt byte\n\t\tswitch len(curStr) % 3 {\n\t\tcase 0:\n\t\t\tbitCnt = 10\n\t\tcase 1:\n\t\t\tbitCnt = 4\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tbitCnt = 7\n\t\t\tbreak\n\t\t}\n\n\t\tres.AddBits(i, bitCnt)\n\t}\n\n\taddPaddingAndTerminator(res, vi)\n\treturn res, vi, nil\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/qrcode.go",
    "content": "package qr\n\nimport (\n\t\"image\"\n\t\"image/color\"\n\t\"math\"\n\n\t\"github.com/boombuler/barcode\"\n\t\"github.com/boombuler/barcode/utils\"\n)\n\ntype qrcode struct {\n\tdimension int\n\tdata      *utils.BitList\n\tcontent   string\n}\n\nfunc (qr *qrcode) Content() string {\n\treturn qr.content\n}\n\nfunc (qr *qrcode) Metadata() barcode.Metadata {\n\treturn barcode.Metadata{barcode.TypeQR, 2}\n}\n\nfunc (qr *qrcode) ColorModel() color.Model {\n\treturn color.Gray16Model\n}\n\nfunc (qr *qrcode) Bounds() image.Rectangle {\n\treturn image.Rect(0, 0, qr.dimension, qr.dimension)\n}\n\nfunc (qr *qrcode) At(x, y int) color.Color {\n\tif qr.Get(x, y) {\n\t\treturn color.Black\n\t}\n\treturn color.White\n}\n\nfunc (qr *qrcode) Get(x, y int) bool {\n\treturn qr.data.GetBit(x*qr.dimension + y)\n}\n\nfunc (qr *qrcode) Set(x, y int, val bool) {\n\tqr.data.SetBit(x*qr.dimension+y, val)\n}\n\nfunc (qr *qrcode) calcPenalty() uint {\n\treturn qr.calcPenaltyRule1() + qr.calcPenaltyRule2() + qr.calcPenaltyRule3() + qr.calcPenaltyRule4()\n}\n\nfunc (qr *qrcode) calcPenaltyRule1() uint {\n\tvar result uint\n\tfor x := 0; x < qr.dimension; x++ {\n\t\tcheckForX := false\n\t\tvar cntX uint\n\t\tcheckForY := false\n\t\tvar cntY uint\n\n\t\tfor y := 0; y < qr.dimension; y++ {\n\t\t\tif qr.Get(x, y) == checkForX {\n\t\t\t\tcntX++\n\t\t\t} else {\n\t\t\t\tcheckForX = !checkForX\n\t\t\t\tif cntX >= 5 {\n\t\t\t\t\tresult += cntX - 2\n\t\t\t\t}\n\t\t\t\tcntX = 1\n\t\t\t}\n\n\t\t\tif qr.Get(y, x) == checkForY {\n\t\t\t\tcntY++\n\t\t\t} else {\n\t\t\t\tcheckForY = !checkForY\n\t\t\t\tif cntY >= 5 {\n\t\t\t\t\tresult += cntY - 2\n\t\t\t\t}\n\t\t\t\tcntY = 1\n\t\t\t}\n\t\t}\n\n\t\tif cntX >= 5 {\n\t\t\tresult += cntX - 2\n\t\t}\n\t\tif cntY >= 5 {\n\t\t\tresult += cntY - 2\n\t\t}\n\t}\n\n\treturn result\n}\n\nfunc (qr *qrcode) calcPenaltyRule2() uint {\n\tvar result uint\n\tfor x := 0; x < qr.dimension-1; x++ {\n\t\tfor y := 0; y < qr.dimension-1; y++ {\n\t\t\tcheck := qr.Get(x, y)\n\t\t\tif qr.Get(x, y+1) == check && qr.Get(x+1, y) == check && qr.Get(x+1, y+1) == check {\n\t\t\t\tresult += 3\n\t\t\t}\n\t\t}\n\t}\n\treturn result\n}\n\nfunc (qr *qrcode) calcPenaltyRule3() uint {\n\tpattern1 := []bool{true, false, true, true, true, false, true, false, false, false, false}\n\tpattern2 := []bool{false, false, false, false, true, false, true, true, true, false, true}\n\n\tvar result uint\n\tfor x := 0; x <= qr.dimension-len(pattern1); x++ {\n\t\tfor y := 0; y < qr.dimension; y++ {\n\t\t\tpattern1XFound := true\n\t\t\tpattern2XFound := true\n\t\t\tpattern1YFound := true\n\t\t\tpattern2YFound := true\n\n\t\t\tfor i := 0; i < len(pattern1); i++ {\n\t\t\t\tiv := qr.Get(x+i, y)\n\t\t\t\tif iv != pattern1[i] {\n\t\t\t\t\tpattern1XFound = false\n\t\t\t\t}\n\t\t\t\tif iv != pattern2[i] {\n\t\t\t\t\tpattern2XFound = false\n\t\t\t\t}\n\t\t\t\tiv = qr.Get(y, x+i)\n\t\t\t\tif iv != pattern1[i] {\n\t\t\t\t\tpattern1YFound = false\n\t\t\t\t}\n\t\t\t\tif iv != pattern2[i] {\n\t\t\t\t\tpattern2YFound = false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif pattern1XFound || pattern2XFound {\n\t\t\t\tresult += 40\n\t\t\t}\n\t\t\tif pattern1YFound || pattern2YFound {\n\t\t\t\tresult += 40\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\nfunc (qr *qrcode) calcPenaltyRule4() uint {\n\ttotalNum := qr.data.Len()\n\ttrueCnt := 0\n\tfor i := 0; i < totalNum; i++ {\n\t\tif qr.data.GetBit(i) {\n\t\t\ttrueCnt++\n\t\t}\n\t}\n\tpercDark := float64(trueCnt) * 100 / float64(totalNum)\n\tfloor := math.Abs(math.Floor(percDark/5) - 10)\n\tceil := math.Abs(math.Ceil(percDark/5) - 10)\n\treturn uint(math.Min(floor, ceil) * 10)\n}\n\nfunc newBarcode(dim int) *qrcode {\n\tres := new(qrcode)\n\tres.dimension = dim\n\tres.data = utils.NewBitList(dim * dim)\n\treturn res\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/unicode.go",
    "content": "package qr\n\nimport (\n\t\"errors\"\n\n\t\"github.com/boombuler/barcode/utils\"\n)\n\nfunc encodeUnicode(content string, ecl ErrorCorrectionLevel) (*utils.BitList, *versionInfo, error) {\n\tdata := []byte(content)\n\n\tvi := findSmallestVersionInfo(ecl, byteMode, len(data)*8)\n\tif vi == nil {\n\t\treturn nil, nil, errors.New(\"To much data to encode\")\n\t}\n\n\t// It's not correct to add the unicode bytes to the result directly but most readers can't handle the\n\t// required ECI header...\n\tres := new(utils.BitList)\n\tres.AddBits(int(byteMode), 4)\n\tres.AddBits(len(content), vi.charCountBits(byteMode))\n\tfor _, b := range data {\n\t\tres.AddByte(b)\n\t}\n\taddPaddingAndTerminator(res, vi)\n\treturn res, vi, nil\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/qr/versioninfo.go",
    "content": "package qr\n\nimport \"math\"\n\n// ErrorCorrectionLevel indicates the amount of \"backup data\" stored in the QR code\ntype ErrorCorrectionLevel byte\n\nconst (\n\t// L recovers 7% of data\n\tL ErrorCorrectionLevel = iota\n\t// M recovers 15% of data\n\tM\n\t// Q recovers 25% of data\n\tQ\n\t// H recovers 30% of data\n\tH\n)\n\nfunc (ecl ErrorCorrectionLevel) String() string {\n\tswitch ecl {\n\tcase L:\n\t\treturn \"L\"\n\tcase M:\n\t\treturn \"M\"\n\tcase Q:\n\t\treturn \"Q\"\n\tcase H:\n\t\treturn \"H\"\n\t}\n\treturn \"unknown\"\n}\n\ntype encodingMode byte\n\nconst (\n\tnumericMode      encodingMode = 1\n\talphaNumericMode encodingMode = 2\n\tbyteMode         encodingMode = 4\n\tkanjiMode        encodingMode = 8\n)\n\ntype versionInfo struct {\n\tVersion                          byte\n\tLevel                            ErrorCorrectionLevel\n\tErrorCorrectionCodewordsPerBlock byte\n\tNumberOfBlocksInGroup1           byte\n\tDataCodeWordsPerBlockInGroup1    byte\n\tNumberOfBlocksInGroup2           byte\n\tDataCodeWordsPerBlockInGroup2    byte\n}\n\nvar versionInfos = []*versionInfo{\n\t&versionInfo{1, L, 7, 1, 19, 0, 0},\n\t&versionInfo{1, M, 10, 1, 16, 0, 0},\n\t&versionInfo{1, Q, 13, 1, 13, 0, 0},\n\t&versionInfo{1, H, 17, 1, 9, 0, 0},\n\t&versionInfo{2, L, 10, 1, 34, 0, 0},\n\t&versionInfo{2, M, 16, 1, 28, 0, 0},\n\t&versionInfo{2, Q, 22, 1, 22, 0, 0},\n\t&versionInfo{2, H, 28, 1, 16, 0, 0},\n\t&versionInfo{3, L, 15, 1, 55, 0, 0},\n\t&versionInfo{3, M, 26, 1, 44, 0, 0},\n\t&versionInfo{3, Q, 18, 2, 17, 0, 0},\n\t&versionInfo{3, H, 22, 2, 13, 0, 0},\n\t&versionInfo{4, L, 20, 1, 80, 0, 0},\n\t&versionInfo{4, M, 18, 2, 32, 0, 0},\n\t&versionInfo{4, Q, 26, 2, 24, 0, 0},\n\t&versionInfo{4, H, 16, 4, 9, 0, 0},\n\t&versionInfo{5, L, 26, 1, 108, 0, 0},\n\t&versionInfo{5, M, 24, 2, 43, 0, 0},\n\t&versionInfo{5, Q, 18, 2, 15, 2, 16},\n\t&versionInfo{5, H, 22, 2, 11, 2, 12},\n\t&versionInfo{6, L, 18, 2, 68, 0, 0},\n\t&versionInfo{6, M, 16, 4, 27, 0, 0},\n\t&versionInfo{6, Q, 24, 4, 19, 0, 0},\n\t&versionInfo{6, H, 28, 4, 15, 0, 0},\n\t&versionInfo{7, L, 20, 2, 78, 0, 0},\n\t&versionInfo{7, M, 18, 4, 31, 0, 0},\n\t&versionInfo{7, Q, 18, 2, 14, 4, 15},\n\t&versionInfo{7, H, 26, 4, 13, 1, 14},\n\t&versionInfo{8, L, 24, 2, 97, 0, 0},\n\t&versionInfo{8, M, 22, 2, 38, 2, 39},\n\t&versionInfo{8, Q, 22, 4, 18, 2, 19},\n\t&versionInfo{8, H, 26, 4, 14, 2, 15},\n\t&versionInfo{9, L, 30, 2, 116, 0, 0},\n\t&versionInfo{9, M, 22, 3, 36, 2, 37},\n\t&versionInfo{9, Q, 20, 4, 16, 4, 17},\n\t&versionInfo{9, H, 24, 4, 12, 4, 13},\n\t&versionInfo{10, L, 18, 2, 68, 2, 69},\n\t&versionInfo{10, M, 26, 4, 43, 1, 44},\n\t&versionInfo{10, Q, 24, 6, 19, 2, 20},\n\t&versionInfo{10, H, 28, 6, 15, 2, 16},\n\t&versionInfo{11, L, 20, 4, 81, 0, 0},\n\t&versionInfo{11, M, 30, 1, 50, 4, 51},\n\t&versionInfo{11, Q, 28, 4, 22, 4, 23},\n\t&versionInfo{11, H, 24, 3, 12, 8, 13},\n\t&versionInfo{12, L, 24, 2, 92, 2, 93},\n\t&versionInfo{12, M, 22, 6, 36, 2, 37},\n\t&versionInfo{12, Q, 26, 4, 20, 6, 21},\n\t&versionInfo{12, H, 28, 7, 14, 4, 15},\n\t&versionInfo{13, L, 26, 4, 107, 0, 0},\n\t&versionInfo{13, M, 22, 8, 37, 1, 38},\n\t&versionInfo{13, Q, 24, 8, 20, 4, 21},\n\t&versionInfo{13, H, 22, 12, 11, 4, 12},\n\t&versionInfo{14, L, 30, 3, 115, 1, 116},\n\t&versionInfo{14, M, 24, 4, 40, 5, 41},\n\t&versionInfo{14, Q, 20, 11, 16, 5, 17},\n\t&versionInfo{14, H, 24, 11, 12, 5, 13},\n\t&versionInfo{15, L, 22, 5, 87, 1, 88},\n\t&versionInfo{15, M, 24, 5, 41, 5, 42},\n\t&versionInfo{15, Q, 30, 5, 24, 7, 25},\n\t&versionInfo{15, H, 24, 11, 12, 7, 13},\n\t&versionInfo{16, L, 24, 5, 98, 1, 99},\n\t&versionInfo{16, M, 28, 7, 45, 3, 46},\n\t&versionInfo{16, Q, 24, 15, 19, 2, 20},\n\t&versionInfo{16, H, 30, 3, 15, 13, 16},\n\t&versionInfo{17, L, 28, 1, 107, 5, 108},\n\t&versionInfo{17, M, 28, 10, 46, 1, 47},\n\t&versionInfo{17, Q, 28, 1, 22, 15, 23},\n\t&versionInfo{17, H, 28, 2, 14, 17, 15},\n\t&versionInfo{18, L, 30, 5, 120, 1, 121},\n\t&versionInfo{18, M, 26, 9, 43, 4, 44},\n\t&versionInfo{18, Q, 28, 17, 22, 1, 23},\n\t&versionInfo{18, H, 28, 2, 14, 19, 15},\n\t&versionInfo{19, L, 28, 3, 113, 4, 114},\n\t&versionInfo{19, M, 26, 3, 44, 11, 45},\n\t&versionInfo{19, Q, 26, 17, 21, 4, 22},\n\t&versionInfo{19, H, 26, 9, 13, 16, 14},\n\t&versionInfo{20, L, 28, 3, 107, 5, 108},\n\t&versionInfo{20, M, 26, 3, 41, 13, 42},\n\t&versionInfo{20, Q, 30, 15, 24, 5, 25},\n\t&versionInfo{20, H, 28, 15, 15, 10, 16},\n\t&versionInfo{21, L, 28, 4, 116, 4, 117},\n\t&versionInfo{21, M, 26, 17, 42, 0, 0},\n\t&versionInfo{21, Q, 28, 17, 22, 6, 23},\n\t&versionInfo{21, H, 30, 19, 16, 6, 17},\n\t&versionInfo{22, L, 28, 2, 111, 7, 112},\n\t&versionInfo{22, M, 28, 17, 46, 0, 0},\n\t&versionInfo{22, Q, 30, 7, 24, 16, 25},\n\t&versionInfo{22, H, 24, 34, 13, 0, 0},\n\t&versionInfo{23, L, 30, 4, 121, 5, 122},\n\t&versionInfo{23, M, 28, 4, 47, 14, 48},\n\t&versionInfo{23, Q, 30, 11, 24, 14, 25},\n\t&versionInfo{23, H, 30, 16, 15, 14, 16},\n\t&versionInfo{24, L, 30, 6, 117, 4, 118},\n\t&versionInfo{24, M, 28, 6, 45, 14, 46},\n\t&versionInfo{24, Q, 30, 11, 24, 16, 25},\n\t&versionInfo{24, H, 30, 30, 16, 2, 17},\n\t&versionInfo{25, L, 26, 8, 106, 4, 107},\n\t&versionInfo{25, M, 28, 8, 47, 13, 48},\n\t&versionInfo{25, Q, 30, 7, 24, 22, 25},\n\t&versionInfo{25, H, 30, 22, 15, 13, 16},\n\t&versionInfo{26, L, 28, 10, 114, 2, 115},\n\t&versionInfo{26, M, 28, 19, 46, 4, 47},\n\t&versionInfo{26, Q, 28, 28, 22, 6, 23},\n\t&versionInfo{26, H, 30, 33, 16, 4, 17},\n\t&versionInfo{27, L, 30, 8, 122, 4, 123},\n\t&versionInfo{27, M, 28, 22, 45, 3, 46},\n\t&versionInfo{27, Q, 30, 8, 23, 26, 24},\n\t&versionInfo{27, H, 30, 12, 15, 28, 16},\n\t&versionInfo{28, L, 30, 3, 117, 10, 118},\n\t&versionInfo{28, M, 28, 3, 45, 23, 46},\n\t&versionInfo{28, Q, 30, 4, 24, 31, 25},\n\t&versionInfo{28, H, 30, 11, 15, 31, 16},\n\t&versionInfo{29, L, 30, 7, 116, 7, 117},\n\t&versionInfo{29, M, 28, 21, 45, 7, 46},\n\t&versionInfo{29, Q, 30, 1, 23, 37, 24},\n\t&versionInfo{29, H, 30, 19, 15, 26, 16},\n\t&versionInfo{30, L, 30, 5, 115, 10, 116},\n\t&versionInfo{30, M, 28, 19, 47, 10, 48},\n\t&versionInfo{30, Q, 30, 15, 24, 25, 25},\n\t&versionInfo{30, H, 30, 23, 15, 25, 16},\n\t&versionInfo{31, L, 30, 13, 115, 3, 116},\n\t&versionInfo{31, M, 28, 2, 46, 29, 47},\n\t&versionInfo{31, Q, 30, 42, 24, 1, 25},\n\t&versionInfo{31, H, 30, 23, 15, 28, 16},\n\t&versionInfo{32, L, 30, 17, 115, 0, 0},\n\t&versionInfo{32, M, 28, 10, 46, 23, 47},\n\t&versionInfo{32, Q, 30, 10, 24, 35, 25},\n\t&versionInfo{32, H, 30, 19, 15, 35, 16},\n\t&versionInfo{33, L, 30, 17, 115, 1, 116},\n\t&versionInfo{33, M, 28, 14, 46, 21, 47},\n\t&versionInfo{33, Q, 30, 29, 24, 19, 25},\n\t&versionInfo{33, H, 30, 11, 15, 46, 16},\n\t&versionInfo{34, L, 30, 13, 115, 6, 116},\n\t&versionInfo{34, M, 28, 14, 46, 23, 47},\n\t&versionInfo{34, Q, 30, 44, 24, 7, 25},\n\t&versionInfo{34, H, 30, 59, 16, 1, 17},\n\t&versionInfo{35, L, 30, 12, 121, 7, 122},\n\t&versionInfo{35, M, 28, 12, 47, 26, 48},\n\t&versionInfo{35, Q, 30, 39, 24, 14, 25},\n\t&versionInfo{35, H, 30, 22, 15, 41, 16},\n\t&versionInfo{36, L, 30, 6, 121, 14, 122},\n\t&versionInfo{36, M, 28, 6, 47, 34, 48},\n\t&versionInfo{36, Q, 30, 46, 24, 10, 25},\n\t&versionInfo{36, H, 30, 2, 15, 64, 16},\n\t&versionInfo{37, L, 30, 17, 122, 4, 123},\n\t&versionInfo{37, M, 28, 29, 46, 14, 47},\n\t&versionInfo{37, Q, 30, 49, 24, 10, 25},\n\t&versionInfo{37, H, 30, 24, 15, 46, 16},\n\t&versionInfo{38, L, 30, 4, 122, 18, 123},\n\t&versionInfo{38, M, 28, 13, 46, 32, 47},\n\t&versionInfo{38, Q, 30, 48, 24, 14, 25},\n\t&versionInfo{38, H, 30, 42, 15, 32, 16},\n\t&versionInfo{39, L, 30, 20, 117, 4, 118},\n\t&versionInfo{39, M, 28, 40, 47, 7, 48},\n\t&versionInfo{39, Q, 30, 43, 24, 22, 25},\n\t&versionInfo{39, H, 30, 10, 15, 67, 16},\n\t&versionInfo{40, L, 30, 19, 118, 6, 119},\n\t&versionInfo{40, M, 28, 18, 47, 31, 48},\n\t&versionInfo{40, Q, 30, 34, 24, 34, 25},\n\t&versionInfo{40, H, 30, 20, 15, 61, 16},\n}\n\nfunc (vi *versionInfo) totalDataBytes() int {\n\tg1Data := int(vi.NumberOfBlocksInGroup1) * int(vi.DataCodeWordsPerBlockInGroup1)\n\tg2Data := int(vi.NumberOfBlocksInGroup2) * int(vi.DataCodeWordsPerBlockInGroup2)\n\treturn (g1Data + g2Data)\n}\n\nfunc (vi *versionInfo) charCountBits(m encodingMode) byte {\n\tswitch m {\n\tcase numericMode:\n\t\tif vi.Version < 10 {\n\t\t\treturn 10\n\t\t} else if vi.Version < 27 {\n\t\t\treturn 12\n\t\t}\n\t\treturn 14\n\n\tcase alphaNumericMode:\n\t\tif vi.Version < 10 {\n\t\t\treturn 9\n\t\t} else if vi.Version < 27 {\n\t\t\treturn 11\n\t\t}\n\t\treturn 13\n\n\tcase byteMode:\n\t\tif vi.Version < 10 {\n\t\t\treturn 8\n\t\t}\n\t\treturn 16\n\n\tcase kanjiMode:\n\t\tif vi.Version < 10 {\n\t\t\treturn 8\n\t\t} else if vi.Version < 27 {\n\t\t\treturn 10\n\t\t}\n\t\treturn 12\n\tdefault:\n\t\treturn 0\n\t}\n}\n\nfunc (vi *versionInfo) modulWidth() int {\n\treturn ((int(vi.Version) - 1) * 4) + 21\n}\n\nfunc (vi *versionInfo) alignmentPatternPlacements() []int {\n\tif vi.Version == 1 {\n\t\treturn make([]int, 0)\n\t}\n\n\tfirst := 6\n\tlast := vi.modulWidth() - 7\n\tspace := float64(last - first)\n\tcount := int(math.Ceil(space/28)) + 1\n\n\tresult := make([]int, count)\n\tresult[0] = first\n\tresult[len(result)-1] = last\n\tif count > 2 {\n\t\tstep := int(math.Ceil(float64(last-first) / float64(count-1)))\n\t\tif step%2 == 1 {\n\t\t\tfrac := float64(last-first) / float64(count-1)\n\t\t\t_, x := math.Modf(frac)\n\t\t\tif x >= 0.5 {\n\t\t\t\tfrac = math.Ceil(frac)\n\t\t\t} else {\n\t\t\t\tfrac = math.Floor(frac)\n\t\t\t}\n\n\t\t\tif int(frac)%2 == 0 {\n\t\t\t\tstep--\n\t\t\t} else {\n\t\t\t\tstep++\n\t\t\t}\n\t\t}\n\n\t\tfor i := 1; i <= count-2; i++ {\n\t\t\tresult[i] = last - (step * (count - 1 - i))\n\t\t}\n\t}\n\n\treturn result\n}\n\nfunc findSmallestVersionInfo(ecl ErrorCorrectionLevel, mode encodingMode, dataBits int) *versionInfo {\n\tdataBits = dataBits + 4 // mode indicator\n\tfor _, vi := range versionInfos {\n\t\tif vi.Level == ecl {\n\t\t\tif (vi.totalDataBytes() * 8) >= (dataBits + int(vi.charCountBits(mode))) {\n\t\t\t\treturn vi\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/scaledbarcode.go",
    "content": "package barcode\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"image\"\n\t\"image/color\"\n\t\"math\"\n)\n\ntype wrapFunc func(x, y int) color.Color\n\ntype scaledBarcode struct {\n\twrapped     Barcode\n\twrapperFunc wrapFunc\n\trect        image.Rectangle\n}\n\ntype intCSscaledBC struct {\n\tscaledBarcode\n}\n\nfunc (bc *scaledBarcode) Content() string {\n\treturn bc.wrapped.Content()\n}\n\nfunc (bc *scaledBarcode) Metadata() Metadata {\n\treturn bc.wrapped.Metadata()\n}\n\nfunc (bc *scaledBarcode) ColorModel() color.Model {\n\treturn bc.wrapped.ColorModel()\n}\n\nfunc (bc *scaledBarcode) Bounds() image.Rectangle {\n\treturn bc.rect\n}\n\nfunc (bc *scaledBarcode) At(x, y int) color.Color {\n\treturn bc.wrapperFunc(x, y)\n}\n\nfunc (bc *intCSscaledBC) CheckSum() int {\n\tif cs, ok := bc.wrapped.(BarcodeIntCS); ok {\n\t\treturn cs.CheckSum()\n\t}\n\treturn 0\n}\n\n// Scale returns a resized barcode with the given width and height.\nfunc Scale(bc Barcode, width, height int) (Barcode, error) {\n\tswitch bc.Metadata().Dimensions {\n\tcase 1:\n\t\treturn scale1DCode(bc, width, height)\n\tcase 2:\n\t\treturn scale2DCode(bc, width, height)\n\t}\n\n\treturn nil, errors.New(\"unsupported barcode format\")\n}\n\nfunc newScaledBC(wrapped Barcode, wrapperFunc wrapFunc, rect image.Rectangle) Barcode {\n\tresult := &scaledBarcode{\n\t\twrapped:     wrapped,\n\t\twrapperFunc: wrapperFunc,\n\t\trect:        rect,\n\t}\n\n\tif _, ok := wrapped.(BarcodeIntCS); ok {\n\t\treturn &intCSscaledBC{*result}\n\t}\n\treturn result\n}\n\nfunc scale2DCode(bc Barcode, width, height int) (Barcode, error) {\n\torgBounds := bc.Bounds()\n\torgWidth := orgBounds.Max.X - orgBounds.Min.X\n\torgHeight := orgBounds.Max.Y - orgBounds.Min.Y\n\n\tfactor := int(math.Min(float64(width)/float64(orgWidth), float64(height)/float64(orgHeight)))\n\tif factor <= 0 {\n\t\treturn nil, fmt.Errorf(\"can not scale barcode to an image smaller than %dx%d\", orgWidth, orgHeight)\n\t}\n\n\toffsetX := (width - (orgWidth * factor)) / 2\n\toffsetY := (height - (orgHeight * factor)) / 2\n\n\twrap := func(x, y int) color.Color {\n\t\tif x < offsetX || y < offsetY {\n\t\t\treturn color.White\n\t\t}\n\t\tx = (x - offsetX) / factor\n\t\ty = (y - offsetY) / factor\n\t\tif x >= orgWidth || y >= orgHeight {\n\t\t\treturn color.White\n\t\t}\n\t\treturn bc.At(x, y)\n\t}\n\n\treturn newScaledBC(\n\t\tbc,\n\t\twrap,\n\t\timage.Rect(0, 0, width, height),\n\t), nil\n}\n\nfunc scale1DCode(bc Barcode, width, height int) (Barcode, error) {\n\torgBounds := bc.Bounds()\n\torgWidth := orgBounds.Max.X - orgBounds.Min.X\n\tfactor := int(float64(width) / float64(orgWidth))\n\n\tif factor <= 0 {\n\t\treturn nil, fmt.Errorf(\"can not scale barcode to an image smaller than %dx1\", orgWidth)\n\t}\n\toffsetX := (width - (orgWidth * factor)) / 2\n\n\twrap := func(x, y int) color.Color {\n\t\tif x < offsetX {\n\t\t\treturn color.White\n\t\t}\n\t\tx = (x - offsetX) / factor\n\n\t\tif x >= orgWidth {\n\t\t\treturn color.White\n\t\t}\n\t\treturn bc.At(x, 0)\n\t}\n\n\treturn newScaledBC(\n\t\tbc,\n\t\twrap,\n\t\timage.Rect(0, 0, width, height),\n\t), nil\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/utils/base1dcode.go",
    "content": "// Package utils contain some utilities which are needed to create barcodes\npackage utils\n\nimport (\n\t\"image\"\n\t\"image/color\"\n\n\t\"github.com/boombuler/barcode\"\n)\n\ntype base1DCode struct {\n\t*BitList\n\tkind    string\n\tcontent string\n}\n\ntype base1DCodeIntCS struct {\n\tbase1DCode\n\tchecksum int\n}\n\nfunc (c *base1DCode) Content() string {\n\treturn c.content\n}\n\nfunc (c *base1DCode) Metadata() barcode.Metadata {\n\treturn barcode.Metadata{c.kind, 1}\n}\n\nfunc (c *base1DCode) ColorModel() color.Model {\n\treturn color.Gray16Model\n}\n\nfunc (c *base1DCode) Bounds() image.Rectangle {\n\treturn image.Rect(0, 0, c.Len(), 1)\n}\n\nfunc (c *base1DCode) At(x, y int) color.Color {\n\tif c.GetBit(x) {\n\t\treturn color.Black\n\t}\n\treturn color.White\n}\n\nfunc (c *base1DCodeIntCS) CheckSum() int {\n\treturn c.checksum\n}\n\n// New1DCode creates a new 1D barcode where the bars are represented by the bits in the bars BitList\nfunc New1DCodeIntCheckSum(codeKind, content string, bars *BitList, checksum int) barcode.BarcodeIntCS {\n\treturn &base1DCodeIntCS{base1DCode{bars, codeKind, content}, checksum}\n}\n\n// New1DCode creates a new 1D barcode where the bars are represented by the bits in the bars BitList\nfunc New1DCode(codeKind, content string, bars *BitList) barcode.Barcode {\n\treturn &base1DCode{bars, codeKind, content}\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/utils/bitlist.go",
    "content": "package utils\n\n// BitList is a list that contains bits\ntype BitList struct {\n\tcount int\n\tdata  []int32\n}\n\n// NewBitList returns a new BitList with the given length\n// all bits are initialize with false\nfunc NewBitList(capacity int) *BitList {\n\tbl := new(BitList)\n\tbl.count = capacity\n\tx := 0\n\tif capacity%32 != 0 {\n\t\tx = 1\n\t}\n\tbl.data = make([]int32, capacity/32+x)\n\treturn bl\n}\n\n// Len returns the number of contained bits\nfunc (bl *BitList) Len() int {\n\treturn bl.count\n}\n\nfunc (bl *BitList) grow() {\n\tgrowBy := len(bl.data)\n\tif growBy < 128 {\n\t\tgrowBy = 128\n\t} else if growBy >= 1024 {\n\t\tgrowBy = 1024\n\t}\n\n\tnd := make([]int32, len(bl.data)+growBy)\n\tcopy(nd, bl.data)\n\tbl.data = nd\n}\n\n// AddBit appends the given bits to the end of the list\nfunc (bl *BitList) AddBit(bits ...bool) {\n\tfor _, bit := range bits {\n\t\titmIndex := bl.count / 32\n\t\tfor itmIndex >= len(bl.data) {\n\t\t\tbl.grow()\n\t\t}\n\t\tbl.SetBit(bl.count, bit)\n\t\tbl.count++\n\t}\n}\n\n// SetBit sets the bit at the given index to the given value\nfunc (bl *BitList) SetBit(index int, value bool) {\n\titmIndex := index / 32\n\titmBitShift := 31 - (index % 32)\n\tif value {\n\t\tbl.data[itmIndex] = bl.data[itmIndex] | 1<<uint(itmBitShift)\n\t} else {\n\t\tbl.data[itmIndex] = bl.data[itmIndex] & ^(1 << uint(itmBitShift))\n\t}\n}\n\n// GetBit returns the bit at the given index\nfunc (bl *BitList) GetBit(index int) bool {\n\titmIndex := index / 32\n\titmBitShift := 31 - (index % 32)\n\treturn ((bl.data[itmIndex] >> uint(itmBitShift)) & 1) == 1\n}\n\n// AddByte appends all 8 bits of the given byte to the end of the list\nfunc (bl *BitList) AddByte(b byte) {\n\tfor i := 7; i >= 0; i-- {\n\t\tbl.AddBit(((b >> uint(i)) & 1) == 1)\n\t}\n}\n\n// AddBits appends the last (LSB) 'count' bits of 'b' the the end of the list\nfunc (bl *BitList) AddBits(b int, count byte) {\n\tfor i := int(count) - 1; i >= 0; i-- {\n\t\tbl.AddBit(((b >> uint(i)) & 1) == 1)\n\t}\n}\n\n// GetBytes returns all bits of the BitList as a []byte\nfunc (bl *BitList) GetBytes() []byte {\n\tlen := bl.count >> 3\n\tif (bl.count % 8) != 0 {\n\t\tlen++\n\t}\n\tresult := make([]byte, len)\n\tfor i := 0; i < len; i++ {\n\t\tshift := (3 - (i % 4)) * 8\n\t\tresult[i] = (byte)((bl.data[i/4] >> uint(shift)) & 0xFF)\n\t}\n\treturn result\n}\n\n// IterateBytes iterates through all bytes contained in the BitList\nfunc (bl *BitList) IterateBytes() <-chan byte {\n\tres := make(chan byte)\n\n\tgo func() {\n\t\tc := bl.count\n\t\tshift := 24\n\t\ti := 0\n\t\tfor c > 0 {\n\t\t\tres <- byte((bl.data[i] >> uint(shift)) & 0xFF)\n\t\t\tshift -= 8\n\t\t\tif shift < 0 {\n\t\t\t\tshift = 24\n\t\t\t\ti++\n\t\t\t}\n\t\t\tc -= 8\n\t\t}\n\t\tclose(res)\n\t}()\n\n\treturn res\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/utils/galoisfield.go",
    "content": "package utils\n\n// GaloisField encapsulates galois field arithmetics\ntype GaloisField struct {\n\tSize    int\n\tBase    int\n\tALogTbl []int\n\tLogTbl  []int\n}\n\n// NewGaloisField creates a new galois field\nfunc NewGaloisField(pp, fieldSize, b int) *GaloisField {\n\tresult := new(GaloisField)\n\n\tresult.Size = fieldSize\n\tresult.Base = b\n\tresult.ALogTbl = make([]int, fieldSize)\n\tresult.LogTbl = make([]int, fieldSize)\n\n\tx := 1\n\tfor i := 0; i < fieldSize; i++ {\n\t\tresult.ALogTbl[i] = x\n\t\tx = x * 2\n\t\tif x >= fieldSize {\n\t\t\tx = (x ^ pp) & (fieldSize - 1)\n\t\t}\n\t}\n\n\tfor i := 0; i < fieldSize; i++ {\n\t\tresult.LogTbl[result.ALogTbl[i]] = int(i)\n\t}\n\n\treturn result\n}\n\nfunc (gf *GaloisField) Zero() *GFPoly {\n\treturn NewGFPoly(gf, []int{0})\n}\n\n// AddOrSub add or substract two numbers\nfunc (gf *GaloisField) AddOrSub(a, b int) int {\n\treturn a ^ b\n}\n\n// Multiply multiplys two numbers\nfunc (gf *GaloisField) Multiply(a, b int) int {\n\tif a == 0 || b == 0 {\n\t\treturn 0\n\t}\n\treturn gf.ALogTbl[(gf.LogTbl[a]+gf.LogTbl[b])%(gf.Size-1)]\n}\n\n// Divide divides two numbers\nfunc (gf *GaloisField) Divide(a, b int) int {\n\tif b == 0 {\n\t\tpanic(\"divide by zero\")\n\t} else if a == 0 {\n\t\treturn 0\n\t}\n\treturn gf.ALogTbl[(gf.LogTbl[a]-gf.LogTbl[b])%(gf.Size-1)]\n}\n\nfunc (gf *GaloisField) Invers(num int) int {\n\treturn gf.ALogTbl[(gf.Size-1)-gf.LogTbl[num]]\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/utils/gfpoly.go",
    "content": "package utils\n\ntype GFPoly struct {\n\tgf           *GaloisField\n\tCoefficients []int\n}\n\nfunc (gp *GFPoly) Degree() int {\n\treturn len(gp.Coefficients) - 1\n}\n\nfunc (gp *GFPoly) Zero() bool {\n\treturn gp.Coefficients[0] == 0\n}\n\n// GetCoefficient returns the coefficient of x ^ degree\nfunc (gp *GFPoly) GetCoefficient(degree int) int {\n\treturn gp.Coefficients[gp.Degree()-degree]\n}\n\nfunc (gp *GFPoly) AddOrSubstract(other *GFPoly) *GFPoly {\n\tif gp.Zero() {\n\t\treturn other\n\t} else if other.Zero() {\n\t\treturn gp\n\t}\n\tsmallCoeff := gp.Coefficients\n\tlargeCoeff := other.Coefficients\n\tif len(smallCoeff) > len(largeCoeff) {\n\t\tlargeCoeff, smallCoeff = smallCoeff, largeCoeff\n\t}\n\tsumDiff := make([]int, len(largeCoeff))\n\tlenDiff := len(largeCoeff) - len(smallCoeff)\n\tcopy(sumDiff, largeCoeff[:lenDiff])\n\tfor i := lenDiff; i < len(largeCoeff); i++ {\n\t\tsumDiff[i] = int(gp.gf.AddOrSub(int(smallCoeff[i-lenDiff]), int(largeCoeff[i])))\n\t}\n\treturn NewGFPoly(gp.gf, sumDiff)\n}\n\nfunc (gp *GFPoly) MultByMonominal(degree int, coeff int) *GFPoly {\n\tif coeff == 0 {\n\t\treturn gp.gf.Zero()\n\t}\n\tsize := len(gp.Coefficients)\n\tresult := make([]int, size+degree)\n\tfor i := 0; i < size; i++ {\n\t\tresult[i] = int(gp.gf.Multiply(int(gp.Coefficients[i]), int(coeff)))\n\t}\n\treturn NewGFPoly(gp.gf, result)\n}\n\nfunc (gp *GFPoly) Multiply(other *GFPoly) *GFPoly {\n\tif gp.Zero() || other.Zero() {\n\t\treturn gp.gf.Zero()\n\t}\n\taCoeff := gp.Coefficients\n\taLen := len(aCoeff)\n\tbCoeff := other.Coefficients\n\tbLen := len(bCoeff)\n\tproduct := make([]int, aLen+bLen-1)\n\tfor i := 0; i < aLen; i++ {\n\t\tac := int(aCoeff[i])\n\t\tfor j := 0; j < bLen; j++ {\n\t\t\tbc := int(bCoeff[j])\n\t\t\tproduct[i+j] = int(gp.gf.AddOrSub(int(product[i+j]), gp.gf.Multiply(ac, bc)))\n\t\t}\n\t}\n\treturn NewGFPoly(gp.gf, product)\n}\n\nfunc (gp *GFPoly) Divide(other *GFPoly) (quotient *GFPoly, remainder *GFPoly) {\n\tquotient = gp.gf.Zero()\n\tremainder = gp\n\tfld := gp.gf\n\tdenomLeadTerm := other.GetCoefficient(other.Degree())\n\tinversDenomLeadTerm := fld.Invers(int(denomLeadTerm))\n\tfor remainder.Degree() >= other.Degree() && !remainder.Zero() {\n\t\tdegreeDiff := remainder.Degree() - other.Degree()\n\t\tscale := int(fld.Multiply(int(remainder.GetCoefficient(remainder.Degree())), inversDenomLeadTerm))\n\t\tterm := other.MultByMonominal(degreeDiff, scale)\n\t\titQuot := NewMonominalPoly(fld, degreeDiff, scale)\n\t\tquotient = quotient.AddOrSubstract(itQuot)\n\t\tremainder = remainder.AddOrSubstract(term)\n\t}\n\treturn\n}\n\nfunc NewMonominalPoly(field *GaloisField, degree int, coeff int) *GFPoly {\n\tif coeff == 0 {\n\t\treturn field.Zero()\n\t}\n\tresult := make([]int, degree+1)\n\tresult[0] = coeff\n\treturn NewGFPoly(field, result)\n}\n\nfunc NewGFPoly(field *GaloisField, coefficients []int) *GFPoly {\n\tfor len(coefficients) > 1 && coefficients[0] == 0 {\n\t\tcoefficients = coefficients[1:]\n\t}\n\treturn &GFPoly{field, coefficients}\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/utils/reedsolomon.go",
    "content": "package utils\n\nimport (\n\t\"sync\"\n)\n\ntype ReedSolomonEncoder struct {\n\tgf        *GaloisField\n\tpolynomes []*GFPoly\n\tm         *sync.Mutex\n}\n\nfunc NewReedSolomonEncoder(gf *GaloisField) *ReedSolomonEncoder {\n\treturn &ReedSolomonEncoder{\n\t\tgf, []*GFPoly{NewGFPoly(gf, []int{1})}, new(sync.Mutex),\n\t}\n}\n\nfunc (rs *ReedSolomonEncoder) getPolynomial(degree int) *GFPoly {\n\trs.m.Lock()\n\tdefer rs.m.Unlock()\n\n\tif degree >= len(rs.polynomes) {\n\t\tlast := rs.polynomes[len(rs.polynomes)-1]\n\t\tfor d := len(rs.polynomes); d <= degree; d++ {\n\t\t\tnext := last.Multiply(NewGFPoly(rs.gf, []int{1, rs.gf.ALogTbl[d-1+rs.gf.Base]}))\n\t\t\trs.polynomes = append(rs.polynomes, next)\n\t\t\tlast = next\n\t\t}\n\t}\n\treturn rs.polynomes[degree]\n}\n\nfunc (rs *ReedSolomonEncoder) Encode(data []int, eccCount int) []int {\n\tgenerator := rs.getPolynomial(eccCount)\n\tinfo := NewGFPoly(rs.gf, data)\n\tinfo = info.MultByMonominal(eccCount, 1)\n\t_, remainder := info.Divide(generator)\n\n\tresult := make([]int, eccCount)\n\tnumZero := int(eccCount) - len(remainder.Coefficients)\n\tcopy(result[numZero:], remainder.Coefficients)\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/boombuler/barcode/utils/runeint.go",
    "content": "package utils\n\n// RuneToInt converts a rune between '0' and '9' to an integer between 0 and 9\n// If the rune is outside of this range -1 is returned.\nfunc RuneToInt(r rune) int {\n\tif r >= '0' && r <= '9' {\n\t\treturn int(r - '0')\n\t}\n\treturn -1\n}\n\n// IntToRune converts a digit 0 - 9 to the rune '0' - '9'. If the given int is outside\n// of this range 'F' is returned!\nfunc IntToRune(i int) rune {\n\tif i >= 0 && i <= 9 {\n\t\treturn rune(i + '0')\n\t}\n\treturn 'F'\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/.gitignore",
    "content": ".DS_Store\nbin\n\n\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/.travis.yml",
    "content": "language: go\n\nscript:\n    - go vet ./...\n    - go test -v ./...\n\ngo:\n  - 1.3\n  - 1.4\n  - 1.5\n  - 1.6\n  - 1.7\n  - tip\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/LICENSE",
    "content": "Copyright (c) 2012 Dave Grijalva\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md",
    "content": "## Migration Guide from v2 -> v3\n\nVersion 3 adds several new, frequently requested features.  To do so, it introduces a few breaking changes.  We've worked to keep these as minimal as possible.  This guide explains the breaking changes and how you can quickly update your code.\n\n### `Token.Claims` is now an interface type\n\nThe most requested feature from the 2.0 verison of this library was the ability to provide a custom type to the JSON parser for claims. This was implemented by introducing a new interface, `Claims`, to replace `map[string]interface{}`.  We also included two concrete implementations of `Claims`: `MapClaims` and `StandardClaims`.\n\n`MapClaims` is an alias for `map[string]interface{}` with built in validation behavior.  It is the default claims type when using `Parse`.  The usage is unchanged except you must type cast the claims property.\n\nThe old example for parsing a token looked like this..\n\n```go\n\tif token, err := jwt.Parse(tokenString, keyLookupFunc); err == nil {\n\t\tfmt.Printf(\"Token for user %v expires %v\", token.Claims[\"user\"], token.Claims[\"exp\"])\n\t}\n```\n\nis now directly mapped to...\n\n```go\n\tif token, err := jwt.Parse(tokenString, keyLookupFunc); err == nil {\n\t\tclaims := token.Claims.(jwt.MapClaims)\n\t\tfmt.Printf(\"Token for user %v expires %v\", claims[\"user\"], claims[\"exp\"])\n\t}\n```\n\n`StandardClaims` is designed to be embedded in your custom type.  You can supply a custom claims type with the new `ParseWithClaims` function.  Here's an example of using a custom claims type.\n\n```go\n\ttype MyCustomClaims struct {\n\t\tUser string\n\t\t*StandardClaims\n\t}\n\t\n\tif token, err := jwt.ParseWithClaims(tokenString, &MyCustomClaims{}, keyLookupFunc); err == nil {\n\t\tclaims := token.Claims.(*MyCustomClaims)\n\t\tfmt.Printf(\"Token for user %v expires %v\", claims.User, claims.StandardClaims.ExpiresAt)\n\t}\n```\n\n### `ParseFromRequest` has been moved\n\nTo keep this library focused on the tokens without becoming overburdened with complex request processing logic, `ParseFromRequest` and its new companion `ParseFromRequestWithClaims` have been moved to a subpackage, `request`.  The method signatues have also been augmented to receive a new argument: `Extractor`.\n\n`Extractors` do the work of picking the token string out of a request.  The interface is simple and composable.\n\nThis simple parsing example:\n\n```go\n\tif token, err := jwt.ParseFromRequest(tokenString, req, keyLookupFunc); err == nil {\n\t\tfmt.Printf(\"Token for user %v expires %v\", token.Claims[\"user\"], token.Claims[\"exp\"])\n\t}\n```\n\nis directly mapped to:\n\n```go\n\tif token, err := request.ParseFromRequest(req, request.OAuth2Extractor, keyLookupFunc); err == nil {\n\t\tclaims := token.Claims.(jwt.MapClaims)\n\t\tfmt.Printf(\"Token for user %v expires %v\", claims[\"user\"], claims[\"exp\"])\n\t}\n```\n\nThere are several concrete `Extractor` types provided for your convenience:\n\n* `HeaderExtractor` will search a list of headers until one contains content.\n* `ArgumentExtractor` will search a list of keys in request query and form arguments until one contains content.\n* `MultiExtractor` will try a list of `Extractors` in order until one returns content.\n* `AuthorizationHeaderExtractor` will look in the `Authorization` header for a `Bearer` token.\n* `OAuth2Extractor` searches the places an OAuth2 token would be specified (per the spec): `Authorization` header and `access_token` argument\n* `PostExtractionFilter` wraps an `Extractor`, allowing you to process the content before it's parsed.  A simple example is stripping the `Bearer ` text from a header\n\n\n### RSA signing methods no longer accept `[]byte` keys\n\nDue to a [critical vulnerability](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/), we've decided the convenience of accepting `[]byte` instead of `rsa.PublicKey` or `rsa.PrivateKey` isn't worth the risk of misuse.\n\nTo replace this behavior, we've added two helper methods: `ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error)` and `ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error)`.  These are just simple helpers for unpacking PEM encoded PKCS1 and PKCS8 keys. If your keys are encoded any other way, all you need to do is convert them to the `crypto/rsa` package's types.\n\n```go \n\tfunc keyLookupFunc(*Token) (interface{}, error) {\n\t\t// Don't forget to validate the alg is what you expect:\n\t\tif _, ok := token.Method.(*jwt.SigningMethodRSA); !ok {\n\t\t\treturn nil, fmt.Errorf(\"Unexpected signing method: %v\", token.Header[\"alg\"])\n\t\t}\n\t\t\n\t\t// Look up key \n\t\tkey, err := lookupPublicKey(token.Header[\"kid\"])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t\n\t\t// Unpack key from PEM encoded PKCS8\n\t\treturn jwt.ParseRSAPublicKeyFromPEM(key)\n\t}\n```\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/README.md",
    "content": "A [go](http://www.golang.org) (or 'golang' for search engine friendliness) implementation of [JSON Web Tokens](http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html)\n\n[![Build Status](https://travis-ci.org/dgrijalva/jwt-go.svg?branch=master)](https://travis-ci.org/dgrijalva/jwt-go)\n\n**BREAKING CHANGES:*** Version 3.0.0 is here. It includes _a lot_ of changes including a few that break the API.  We've tried to break as few things as possible, so there should just be a few type signature changes.  A full list of breaking changes is available in `VERSION_HISTORY.md`.  See `MIGRATION_GUIDE.md` for more information on updating your code.\n\n**NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage.  See the examples provided.\n\n\n## What the heck is a JWT?\n\nJWT.io has [a great introduction](https://jwt.io/introduction) to JSON Web Tokens.\n\nIn short, it's a signed JSON object that does something useful (for example, authentication).  It's commonly used for `Bearer` tokens in Oauth 2.  A token is made of three parts, separated by `.`'s.  The first two parts are JSON objects, that have been [base64url](http://tools.ietf.org/html/rfc4648) encoded.  The last part is the signature, encoded the same way.\n\nThe first part is called the header.  It contains the necessary information for verifying the last part, the signature.  For example, which encryption method was used for signing and what key was used.\n\nThe part in the middle is the interesting bit.  It's called the Claims and contains the actual stuff you care about.  Refer to [the RFC](http://self-issued.info/docs/draft-jones-json-web-token.html) for information about reserved keys and the proper way to add your own.\n\n## What's in the box?\n\nThis library supports the parsing and verification as well as the generation and signing of JWTs.  Current supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.\n\n## Examples\n\nSee [the project documentation](https://godoc.org/github.com/dgrijalva/jwt-go) for examples of usage:\n\n* [Simple example of parsing and validating a token](https://godoc.org/github.com/dgrijalva/jwt-go#example-Parse--Hmac)\n* [Simple example of building and signing a token](https://godoc.org/github.com/dgrijalva/jwt-go#example-New--Hmac)\n* [Directory of Examples](https://godoc.org/github.com/dgrijalva/jwt-go#pkg-examples)\n\n## Extensions\n\nThis library publishes all the necessary components for adding your own signing methods.  Simply implement the `SigningMethod` interface and register a factory method using `RegisterSigningMethod`.  \n\nHere's an example of an extension that integrates with the Google App Engine signing tools: https://github.com/someone1/gcp-jwt-go\n\n## Compliance\n\nThis library was last reviewed to comply with [RTF 7519](http://www.rfc-editor.org/info/rfc7519) dated May 2015 with a few notable differences: \n\n* In order to protect against accidental use of [Unsecured JWTs](http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#UnsecuredJWT), tokens using `alg=none` will only be accepted if the constant `jwt.UnsafeAllowNoneSignatureType` is provided as the key.\n\n## Project Status & Versioning\n\nThis library is considered production ready.  Feedback and feature requests are appreciated.  The API should be considered stable.  There should be very few backwards-incompatible changes outside of major version updates (and only with good reason).\n\nThis project uses [Semantic Versioning 2.0.0](http://semver.org).  Accepted pull requests will land on `master`.  Periodically, versions will be tagged from `master`.  You can find all the releases on [the project releases page](https://github.com/dgrijalva/jwt-go/releases).\n\nWhile we try to make it obvious when we make breaking changes, there isn't a great mechanism for pushing announcements out to users.  You may want to use this alternative package include: `gopkg.in/dgrijalva/jwt-go.v2`.  It will do the right thing WRT semantic versioning.\n\n## Usage Tips\n\n### Signing vs Encryption\n\nA token is simply a JSON object that is signed by its author. this tells you exactly two things about the data:\n\n* The author of the token was in the possession of the signing secret\n* The data has not been modified since it was signed\n\nIt's important to know that JWT does not provide encryption, which means anyone who has access to the token can read its contents. If you need to protect (encrypt) the data, there is a companion spec, `JWE`, that provides this functionality. JWE is currently outside the scope of this library.\n\n### Choosing a Signing Method\n\nThere are several signing methods available, and you should probably take the time to learn about the various options before choosing one.  The principal design decision is most likely going to be symmetric vs asymmetric.\n\nSymmetric signing methods, such as HSA, use only a single secret. This is probably the simplest signing method to use since any `[]byte` can be used as a valid secret. They are also slightly computationally faster to use, though this rarely is enough to matter. Symmetric signing methods work the best when both producers and consumers of tokens are trusted, or even the same system. Since the same secret is used to both sign and validate tokens, you can't easily distribute the key for validation.\n\nAsymmetric signing methods, such as RSA, use different keys for signing and verifying tokens. This makes it possible to produce tokens with a private key, and allow any consumer to access the public key for verification.\n\n### JWT and OAuth\n\nIt's worth mentioning that OAuth and JWT are not the same thing. A JWT token is simply a signed JSON object. It can be used anywhere such a thing is useful. There is some confusion, though, as JWT is the most common type of bearer token used in OAuth2 authentication.\n\nWithout going too far down the rabbit hole, here's a description of the interaction of these technologies:\n\n* OAuth is a protocol for allowing an identity provider to be separate from the service a user is logging in to. For example, whenever you use Facebook to log into a different service (Yelp, Spotify, etc), you are using OAuth.\n* OAuth defines several options for passing around authentication data. One popular method is called a \"bearer token\". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token.\n* Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL.\n \n## More\n\nDocumentation can be found [on godoc.org](http://godoc.org/github.com/dgrijalva/jwt-go).\n\nThe command line utility included in this project (cmd/jwt) provides a straightforward example of token creation and parsing as well as a useful tool for debugging your own integration. You'll also find several implementation examples in the documentation.\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md",
    "content": "## `jwt-go` Version History\n\n#### 3.1.0\n\n* Improvements to `jwt` command line tool\n* Added `SkipClaimsValidation` option to `Parser`\n* Documentation updates\n\n#### 3.0.0\n\n* **Compatibility Breaking Changes**: See MIGRATION_GUIDE.md for tips on updating your code\n\t* Dropped support for `[]byte` keys when using RSA signing methods.  This convenience feature could contribute to security vulnerabilities involving mismatched key types with signing methods.\n\t* `ParseFromRequest` has been moved to `request` subpackage and usage has changed\n\t* The `Claims` property on `Token` is now type `Claims` instead of `map[string]interface{}`.  The default value is type `MapClaims`, which is an alias to `map[string]interface{}`.  This makes it possible to use a custom type when decoding claims.\n* Other Additions and Changes\n\t* Added `Claims` interface type to allow users to decode the claims into a custom type\n\t* Added `ParseWithClaims`, which takes a third argument of type `Claims`.  Use this function instead of `Parse` if you have a custom type you'd like to decode into.\n\t* Dramatically improved the functionality and flexibility of `ParseFromRequest`, which is now in the `request` subpackage\n\t* Added `ParseFromRequestWithClaims` which is the `FromRequest` equivalent of `ParseWithClaims`\n\t* Added new interface type `Extractor`, which is used for extracting JWT strings from http requests.  Used with `ParseFromRequest` and `ParseFromRequestWithClaims`.\n\t* Added several new, more specific, validation errors to error type bitmask\n\t* Moved examples from README to executable example files\n\t* Signing method registry is now thread safe\n\t* Added new property to `ValidationError`, which contains the raw error returned by calls made by parse/verify (such as those returned by keyfunc or json parser)\n\n#### 2.7.0\n\nThis will likely be the last backwards compatible release before 3.0.0, excluding essential bug fixes.\n\n* Added new option `-show` to the `jwt` command that will just output the decoded token without verifying\n* Error text for expired tokens includes how long it's been expired\n* Fixed incorrect error returned from `ParseRSAPublicKeyFromPEM`\n* Documentation updates\n\n#### 2.6.0\n\n* Exposed inner error within ValidationError\n* Fixed validation errors when using UseJSONNumber flag\n* Added several unit tests\n\n#### 2.5.0\n\n* Added support for signing method none.  You shouldn't use this.  The API tries to make this clear.\n* Updated/fixed some documentation\n* Added more helpful error message when trying to parse tokens that begin with `BEARER `\n\n#### 2.4.0\n\n* Added new type, Parser, to allow for configuration of various parsing parameters\n\t* You can now specify a list of valid signing methods.  Anything outside this set will be rejected.\n\t* You can now opt to use the `json.Number` type instead of `float64` when parsing token JSON\n* Added support for [Travis CI](https://travis-ci.org/dgrijalva/jwt-go)\n* Fixed some bugs with ECDSA parsing\n\n#### 2.3.0\n\n* Added support for ECDSA signing methods\n* Added support for RSA PSS signing methods (requires go v1.4)\n\n#### 2.2.0\n\n* Gracefully handle a `nil` `Keyfunc` being passed to `Parse`.  Result will now be the parsed token and an error, instead of a panic.\n\n#### 2.1.0\n\nBackwards compatible API change that was missed in 2.0.0.\n\n* The `SignedString` method on `Token` now takes `interface{}` instead of `[]byte`\n\n#### 2.0.0\n\nThere were two major reasons for breaking backwards compatibility with this update.  The first was a refactor required to expand the width of the RSA and HMAC-SHA signing implementations.  There will likely be no required code changes to support this change.\n\nThe second update, while unfortunately requiring a small change in integration, is required to open up this library to other signing methods.  Not all keys used for all signing methods have a single standard on-disk representation.  Requiring `[]byte` as the type for all keys proved too limiting.  Additionally, this implementation allows for pre-parsed tokens to be reused, which might matter in an application that parses a high volume of tokens with a small set of keys.  Backwards compatibilty has been maintained for passing `[]byte` to the RSA signing methods, but they will also accept `*rsa.PublicKey` and `*rsa.PrivateKey`.\n\nIt is likely the only integration change required here will be to change `func(t *jwt.Token) ([]byte, error)` to `func(t *jwt.Token) (interface{}, error)` when calling `Parse`.\n\n* **Compatibility Breaking Changes**\n\t* `SigningMethodHS256` is now `*SigningMethodHMAC` instead of `type struct`\n\t* `SigningMethodRS256` is now `*SigningMethodRSA` instead of `type struct`\n\t* `KeyFunc` now returns `interface{}` instead of `[]byte`\n\t* `SigningMethod.Sign` now takes `interface{}` instead of `[]byte` for the key\n\t* `SigningMethod.Verify` now takes `interface{}` instead of `[]byte` for the key\n* Renamed type `SigningMethodHS256` to `SigningMethodHMAC`.  Specific sizes are now just instances of this type.\n    * Added public package global `SigningMethodHS256`\n    * Added public package global `SigningMethodHS384`\n    * Added public package global `SigningMethodHS512`\n* Renamed type `SigningMethodRS256` to `SigningMethodRSA`.  Specific sizes are now just instances of this type.\n    * Added public package global `SigningMethodRS256`\n    * Added public package global `SigningMethodRS384`\n    * Added public package global `SigningMethodRS512`\n* Moved sample private key for HMAC tests from an inline value to a file on disk.  Value is unchanged.\n* Refactored the RSA implementation to be easier to read\n* Exposed helper methods `ParseRSAPrivateKeyFromPEM` and `ParseRSAPublicKeyFromPEM`\n\n#### 1.0.2\n\n* Fixed bug in parsing public keys from certificates\n* Added more tests around the parsing of keys for RS256\n* Code refactoring in RS256 implementation.  No functional changes\n\n#### 1.0.1\n\n* Fixed panic if RS256 signing method was passed an invalid key\n\n#### 1.0.0\n\n* First versioned release\n* API stabilized\n* Supports creating, signing, parsing, and validating JWT tokens\n* Supports RS256 and HS256 signing methods"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/claims.go",
    "content": "package jwt\n\nimport (\n\t\"crypto/subtle\"\n\t\"fmt\"\n\t\"time\"\n)\n\n// For a type to be a Claims object, it must just have a Valid method that determines\n// if the token is invalid for any supported reason\ntype Claims interface {\n\tValid() error\n}\n\n// Structured version of Claims Section, as referenced at\n// https://tools.ietf.org/html/rfc7519#section-4.1\n// See examples for how to use this with your own claim types\ntype StandardClaims struct {\n\tAudience  string `json:\"aud,omitempty\"`\n\tExpiresAt int64  `json:\"exp,omitempty\"`\n\tId        string `json:\"jti,omitempty\"`\n\tIssuedAt  int64  `json:\"iat,omitempty\"`\n\tIssuer    string `json:\"iss,omitempty\"`\n\tNotBefore int64  `json:\"nbf,omitempty\"`\n\tSubject   string `json:\"sub,omitempty\"`\n}\n\n// Validates time based claims \"exp, iat, nbf\".\n// There is no accounting for clock skew.\n// As well, if any of the above claims are not in the token, it will still\n// be considered a valid claim.\nfunc (c StandardClaims) Valid() error {\n\tvErr := new(ValidationError)\n\tnow := TimeFunc().Unix()\n\n\t// The claims below are optional, by default, so if they are set to the\n\t// default value in Go, let's not fail the verification for them.\n\tif c.VerifyExpiresAt(now, false) == false {\n\t\tdelta := time.Unix(now, 0).Sub(time.Unix(c.ExpiresAt, 0))\n\t\tvErr.Inner = fmt.Errorf(\"token is expired by %v\", delta)\n\t\tvErr.Errors |= ValidationErrorExpired\n\t}\n\n\tif c.VerifyIssuedAt(now, false) == false {\n\t\tvErr.Inner = fmt.Errorf(\"Token used before issued\")\n\t\tvErr.Errors |= ValidationErrorIssuedAt\n\t}\n\n\tif c.VerifyNotBefore(now, false) == false {\n\t\tvErr.Inner = fmt.Errorf(\"token is not valid yet\")\n\t\tvErr.Errors |= ValidationErrorNotValidYet\n\t}\n\n\tif vErr.valid() {\n\t\treturn nil\n\t}\n\n\treturn vErr\n}\n\n// Compares the aud claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (c *StandardClaims) VerifyAudience(cmp string, req bool) bool {\n\treturn verifyAud(c.Audience, cmp, req)\n}\n\n// Compares the exp claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (c *StandardClaims) VerifyExpiresAt(cmp int64, req bool) bool {\n\treturn verifyExp(c.ExpiresAt, cmp, req)\n}\n\n// Compares the iat claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (c *StandardClaims) VerifyIssuedAt(cmp int64, req bool) bool {\n\treturn verifyIat(c.IssuedAt, cmp, req)\n}\n\n// Compares the iss claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (c *StandardClaims) VerifyIssuer(cmp string, req bool) bool {\n\treturn verifyIss(c.Issuer, cmp, req)\n}\n\n// Compares the nbf claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (c *StandardClaims) VerifyNotBefore(cmp int64, req bool) bool {\n\treturn verifyNbf(c.NotBefore, cmp, req)\n}\n\n// ----- helpers\n\nfunc verifyAud(aud string, cmp string, required bool) bool {\n\tif aud == \"\" {\n\t\treturn !required\n\t}\n\tif subtle.ConstantTimeCompare([]byte(aud), []byte(cmp)) != 0 {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n}\n\nfunc verifyExp(exp int64, now int64, required bool) bool {\n\tif exp == 0 {\n\t\treturn !required\n\t}\n\treturn now <= exp\n}\n\nfunc verifyIat(iat int64, now int64, required bool) bool {\n\tif iat == 0 {\n\t\treturn !required\n\t}\n\treturn now >= iat\n}\n\nfunc verifyIss(iss string, cmp string, required bool) bool {\n\tif iss == \"\" {\n\t\treturn !required\n\t}\n\tif subtle.ConstantTimeCompare([]byte(iss), []byte(cmp)) != 0 {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n}\n\nfunc verifyNbf(nbf int64, now int64, required bool) bool {\n\tif nbf == 0 {\n\t\treturn !required\n\t}\n\treturn now >= nbf\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/doc.go",
    "content": "// Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html\n//\n// See README.md for more info.\npackage jwt\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/ecdsa.go",
    "content": "package jwt\n\nimport (\n\t\"crypto\"\n\t\"crypto/ecdsa\"\n\t\"crypto/rand\"\n\t\"errors\"\n\t\"math/big\"\n)\n\nvar (\n\t// Sadly this is missing from crypto/ecdsa compared to crypto/rsa\n\tErrECDSAVerification = errors.New(\"crypto/ecdsa: verification error\")\n)\n\n// Implements the ECDSA family of signing methods signing methods\ntype SigningMethodECDSA struct {\n\tName      string\n\tHash      crypto.Hash\n\tKeySize   int\n\tCurveBits int\n}\n\n// Specific instances for EC256 and company\nvar (\n\tSigningMethodES256 *SigningMethodECDSA\n\tSigningMethodES384 *SigningMethodECDSA\n\tSigningMethodES512 *SigningMethodECDSA\n)\n\nfunc init() {\n\t// ES256\n\tSigningMethodES256 = &SigningMethodECDSA{\"ES256\", crypto.SHA256, 32, 256}\n\tRegisterSigningMethod(SigningMethodES256.Alg(), func() SigningMethod {\n\t\treturn SigningMethodES256\n\t})\n\n\t// ES384\n\tSigningMethodES384 = &SigningMethodECDSA{\"ES384\", crypto.SHA384, 48, 384}\n\tRegisterSigningMethod(SigningMethodES384.Alg(), func() SigningMethod {\n\t\treturn SigningMethodES384\n\t})\n\n\t// ES512\n\tSigningMethodES512 = &SigningMethodECDSA{\"ES512\", crypto.SHA512, 66, 521}\n\tRegisterSigningMethod(SigningMethodES512.Alg(), func() SigningMethod {\n\t\treturn SigningMethodES512\n\t})\n}\n\nfunc (m *SigningMethodECDSA) Alg() string {\n\treturn m.Name\n}\n\n// Implements the Verify method from SigningMethod\n// For this verify method, key must be an ecdsa.PublicKey struct\nfunc (m *SigningMethodECDSA) Verify(signingString, signature string, key interface{}) error {\n\tvar err error\n\n\t// Decode the signature\n\tvar sig []byte\n\tif sig, err = DecodeSegment(signature); err != nil {\n\t\treturn err\n\t}\n\n\t// Get the key\n\tvar ecdsaKey *ecdsa.PublicKey\n\tswitch k := key.(type) {\n\tcase *ecdsa.PublicKey:\n\t\tecdsaKey = k\n\tdefault:\n\t\treturn ErrInvalidKeyType\n\t}\n\n\tif len(sig) != 2*m.KeySize {\n\t\treturn ErrECDSAVerification\n\t}\n\n\tr := big.NewInt(0).SetBytes(sig[:m.KeySize])\n\ts := big.NewInt(0).SetBytes(sig[m.KeySize:])\n\n\t// Create hasher\n\tif !m.Hash.Available() {\n\t\treturn ErrHashUnavailable\n\t}\n\thasher := m.Hash.New()\n\thasher.Write([]byte(signingString))\n\n\t// Verify the signature\n\tif verifystatus := ecdsa.Verify(ecdsaKey, hasher.Sum(nil), r, s); verifystatus == true {\n\t\treturn nil\n\t} else {\n\t\treturn ErrECDSAVerification\n\t}\n}\n\n// Implements the Sign method from SigningMethod\n// For this signing method, key must be an ecdsa.PrivateKey struct\nfunc (m *SigningMethodECDSA) Sign(signingString string, key interface{}) (string, error) {\n\t// Get the key\n\tvar ecdsaKey *ecdsa.PrivateKey\n\tswitch k := key.(type) {\n\tcase *ecdsa.PrivateKey:\n\t\tecdsaKey = k\n\tdefault:\n\t\treturn \"\", ErrInvalidKeyType\n\t}\n\n\t// Create the hasher\n\tif !m.Hash.Available() {\n\t\treturn \"\", ErrHashUnavailable\n\t}\n\n\thasher := m.Hash.New()\n\thasher.Write([]byte(signingString))\n\n\t// Sign the string and return r, s\n\tif r, s, err := ecdsa.Sign(rand.Reader, ecdsaKey, hasher.Sum(nil)); err == nil {\n\t\tcurveBits := ecdsaKey.Curve.Params().BitSize\n\n\t\tif m.CurveBits != curveBits {\n\t\t\treturn \"\", ErrInvalidKey\n\t\t}\n\n\t\tkeyBytes := curveBits / 8\n\t\tif curveBits%8 > 0 {\n\t\t\tkeyBytes += 1\n\t\t}\n\n\t\t// We serialize the outpus (r and s) into big-endian byte arrays and pad\n\t\t// them with zeros on the left to make sure the sizes work out. Both arrays\n\t\t// must be keyBytes long, and the output must be 2*keyBytes long.\n\t\trBytes := r.Bytes()\n\t\trBytesPadded := make([]byte, keyBytes)\n\t\tcopy(rBytesPadded[keyBytes-len(rBytes):], rBytes)\n\n\t\tsBytes := s.Bytes()\n\t\tsBytesPadded := make([]byte, keyBytes)\n\t\tcopy(sBytesPadded[keyBytes-len(sBytes):], sBytes)\n\n\t\tout := append(rBytesPadded, sBytesPadded...)\n\n\t\treturn EncodeSegment(out), nil\n\t} else {\n\t\treturn \"\", err\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/ecdsa_utils.go",
    "content": "package jwt\n\nimport (\n\t\"crypto/ecdsa\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n)\n\nvar (\n\tErrNotECPublicKey  = errors.New(\"Key is not a valid ECDSA public key\")\n\tErrNotECPrivateKey = errors.New(\"Key is not a valid ECDSA private key\")\n)\n\n// Parse PEM encoded Elliptic Curve Private Key Structure\nfunc ParseECPrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) {\n\tvar err error\n\n\t// Parse PEM block\n\tvar block *pem.Block\n\tif block, _ = pem.Decode(key); block == nil {\n\t\treturn nil, ErrKeyMustBePEMEncoded\n\t}\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar pkey *ecdsa.PrivateKey\n\tvar ok bool\n\tif pkey, ok = parsedKey.(*ecdsa.PrivateKey); !ok {\n\t\treturn nil, ErrNotECPrivateKey\n\t}\n\n\treturn pkey, nil\n}\n\n// Parse PEM encoded PKCS1 or PKCS8 public key\nfunc ParseECPublicKeyFromPEM(key []byte) (*ecdsa.PublicKey, error) {\n\tvar err error\n\n\t// Parse PEM block\n\tvar block *pem.Block\n\tif block, _ = pem.Decode(key); block == nil {\n\t\treturn nil, ErrKeyMustBePEMEncoded\n\t}\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil {\n\t\tif cert, err := x509.ParseCertificate(block.Bytes); err == nil {\n\t\t\tparsedKey = cert.PublicKey\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tvar pkey *ecdsa.PublicKey\n\tvar ok bool\n\tif pkey, ok = parsedKey.(*ecdsa.PublicKey); !ok {\n\t\treturn nil, ErrNotECPublicKey\n\t}\n\n\treturn pkey, nil\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/errors.go",
    "content": "package jwt\n\nimport (\n\t\"errors\"\n)\n\n// Error constants\nvar (\n\tErrInvalidKey      = errors.New(\"key is invalid\")\n\tErrInvalidKeyType  = errors.New(\"key is of invalid type\")\n\tErrHashUnavailable = errors.New(\"the requested hash function is unavailable\")\n)\n\n// The errors that might occur when parsing and validating a token\nconst (\n\tValidationErrorMalformed        uint32 = 1 << iota // Token is malformed\n\tValidationErrorUnverifiable                        // Token could not be verified because of signing problems\n\tValidationErrorSignatureInvalid                    // Signature validation failed\n\n\t// Standard Claim validation errors\n\tValidationErrorAudience      // AUD validation failed\n\tValidationErrorExpired       // EXP validation failed\n\tValidationErrorIssuedAt      // IAT validation failed\n\tValidationErrorIssuer        // ISS validation failed\n\tValidationErrorNotValidYet   // NBF validation failed\n\tValidationErrorId            // JTI validation failed\n\tValidationErrorClaimsInvalid // Generic claims validation error\n)\n\n// Helper for constructing a ValidationError with a string error message\nfunc NewValidationError(errorText string, errorFlags uint32) *ValidationError {\n\treturn &ValidationError{\n\t\ttext:   errorText,\n\t\tErrors: errorFlags,\n\t}\n}\n\n// The error from Parse if token is not valid\ntype ValidationError struct {\n\tInner  error  // stores the error returned by external dependencies, i.e.: KeyFunc\n\tErrors uint32 // bitfield.  see ValidationError... constants\n\ttext   string // errors that do not have a valid error just have text\n}\n\n// Validation error is an error type\nfunc (e ValidationError) Error() string {\n\tif e.Inner != nil {\n\t\treturn e.Inner.Error()\n\t} else if e.text != \"\" {\n\t\treturn e.text\n\t} else {\n\t\treturn \"token is invalid\"\n\t}\n}\n\n// No errors\nfunc (e *ValidationError) valid() bool {\n\treturn e.Errors == 0\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/hmac.go",
    "content": "package jwt\n\nimport (\n\t\"crypto\"\n\t\"crypto/hmac\"\n\t\"errors\"\n)\n\n// Implements the HMAC-SHA family of signing methods signing methods\ntype SigningMethodHMAC struct {\n\tName string\n\tHash crypto.Hash\n}\n\n// Specific instances for HS256 and company\nvar (\n\tSigningMethodHS256  *SigningMethodHMAC\n\tSigningMethodHS384  *SigningMethodHMAC\n\tSigningMethodHS512  *SigningMethodHMAC\n\tErrSignatureInvalid = errors.New(\"signature is invalid\")\n)\n\nfunc init() {\n\t// HS256\n\tSigningMethodHS256 = &SigningMethodHMAC{\"HS256\", crypto.SHA256}\n\tRegisterSigningMethod(SigningMethodHS256.Alg(), func() SigningMethod {\n\t\treturn SigningMethodHS256\n\t})\n\n\t// HS384\n\tSigningMethodHS384 = &SigningMethodHMAC{\"HS384\", crypto.SHA384}\n\tRegisterSigningMethod(SigningMethodHS384.Alg(), func() SigningMethod {\n\t\treturn SigningMethodHS384\n\t})\n\n\t// HS512\n\tSigningMethodHS512 = &SigningMethodHMAC{\"HS512\", crypto.SHA512}\n\tRegisterSigningMethod(SigningMethodHS512.Alg(), func() SigningMethod {\n\t\treturn SigningMethodHS512\n\t})\n}\n\nfunc (m *SigningMethodHMAC) Alg() string {\n\treturn m.Name\n}\n\n// Verify the signature of HSXXX tokens.  Returns nil if the signature is valid.\nfunc (m *SigningMethodHMAC) Verify(signingString, signature string, key interface{}) error {\n\t// Verify the key is the right type\n\tkeyBytes, ok := key.([]byte)\n\tif !ok {\n\t\treturn ErrInvalidKeyType\n\t}\n\n\t// Decode signature, for comparison\n\tsig, err := DecodeSegment(signature)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Can we use the specified hashing method?\n\tif !m.Hash.Available() {\n\t\treturn ErrHashUnavailable\n\t}\n\n\t// This signing method is symmetric, so we validate the signature\n\t// by reproducing the signature from the signing string and key, then\n\t// comparing that against the provided signature.\n\thasher := hmac.New(m.Hash.New, keyBytes)\n\thasher.Write([]byte(signingString))\n\tif !hmac.Equal(sig, hasher.Sum(nil)) {\n\t\treturn ErrSignatureInvalid\n\t}\n\n\t// No validation errors.  Signature is good.\n\treturn nil\n}\n\n// Implements the Sign method from SigningMethod for this signing method.\n// Key must be []byte\nfunc (m *SigningMethodHMAC) Sign(signingString string, key interface{}) (string, error) {\n\tif keyBytes, ok := key.([]byte); ok {\n\t\tif !m.Hash.Available() {\n\t\t\treturn \"\", ErrHashUnavailable\n\t\t}\n\n\t\thasher := hmac.New(m.Hash.New, keyBytes)\n\t\thasher.Write([]byte(signingString))\n\n\t\treturn EncodeSegment(hasher.Sum(nil)), nil\n\t}\n\n\treturn \"\", ErrInvalidKey\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/map_claims.go",
    "content": "package jwt\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t// \"fmt\"\n)\n\n// Claims type that uses the map[string]interface{} for JSON decoding\n// This is the default claims type if you don't supply one\ntype MapClaims map[string]interface{}\n\n// Compares the aud claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (m MapClaims) VerifyAudience(cmp string, req bool) bool {\n\taud, _ := m[\"aud\"].(string)\n\treturn verifyAud(aud, cmp, req)\n}\n\n// Compares the exp claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (m MapClaims) VerifyExpiresAt(cmp int64, req bool) bool {\n\tswitch exp := m[\"exp\"].(type) {\n\tcase float64:\n\t\treturn verifyExp(int64(exp), cmp, req)\n\tcase json.Number:\n\t\tv, _ := exp.Int64()\n\t\treturn verifyExp(v, cmp, req)\n\t}\n\treturn req == false\n}\n\n// Compares the iat claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (m MapClaims) VerifyIssuedAt(cmp int64, req bool) bool {\n\tswitch iat := m[\"iat\"].(type) {\n\tcase float64:\n\t\treturn verifyIat(int64(iat), cmp, req)\n\tcase json.Number:\n\t\tv, _ := iat.Int64()\n\t\treturn verifyIat(v, cmp, req)\n\t}\n\treturn req == false\n}\n\n// Compares the iss claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (m MapClaims) VerifyIssuer(cmp string, req bool) bool {\n\tiss, _ := m[\"iss\"].(string)\n\treturn verifyIss(iss, cmp, req)\n}\n\n// Compares the nbf claim against cmp.\n// If required is false, this method will return true if the value matches or is unset\nfunc (m MapClaims) VerifyNotBefore(cmp int64, req bool) bool {\n\tswitch nbf := m[\"nbf\"].(type) {\n\tcase float64:\n\t\treturn verifyNbf(int64(nbf), cmp, req)\n\tcase json.Number:\n\t\tv, _ := nbf.Int64()\n\t\treturn verifyNbf(v, cmp, req)\n\t}\n\treturn req == false\n}\n\n// Validates time based claims \"exp, iat, nbf\".\n// There is no accounting for clock skew.\n// As well, if any of the above claims are not in the token, it will still\n// be considered a valid claim.\nfunc (m MapClaims) Valid() error {\n\tvErr := new(ValidationError)\n\tnow := TimeFunc().Unix()\n\n\tif m.VerifyExpiresAt(now, false) == false {\n\t\tvErr.Inner = errors.New(\"Token is expired\")\n\t\tvErr.Errors |= ValidationErrorExpired\n\t}\n\n\tif m.VerifyIssuedAt(now, false) == false {\n\t\tvErr.Inner = errors.New(\"Token used before issued\")\n\t\tvErr.Errors |= ValidationErrorIssuedAt\n\t}\n\n\tif m.VerifyNotBefore(now, false) == false {\n\t\tvErr.Inner = errors.New(\"Token is not valid yet\")\n\t\tvErr.Errors |= ValidationErrorNotValidYet\n\t}\n\n\tif vErr.valid() {\n\t\treturn nil\n\t}\n\n\treturn vErr\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/none.go",
    "content": "package jwt\n\n// Implements the none signing method.  This is required by the spec\n// but you probably should never use it.\nvar SigningMethodNone *signingMethodNone\n\nconst UnsafeAllowNoneSignatureType unsafeNoneMagicConstant = \"none signing method allowed\"\n\nvar NoneSignatureTypeDisallowedError error\n\ntype signingMethodNone struct{}\ntype unsafeNoneMagicConstant string\n\nfunc init() {\n\tSigningMethodNone = &signingMethodNone{}\n\tNoneSignatureTypeDisallowedError = NewValidationError(\"'none' signature type is not allowed\", ValidationErrorSignatureInvalid)\n\n\tRegisterSigningMethod(SigningMethodNone.Alg(), func() SigningMethod {\n\t\treturn SigningMethodNone\n\t})\n}\n\nfunc (m *signingMethodNone) Alg() string {\n\treturn \"none\"\n}\n\n// Only allow 'none' alg type if UnsafeAllowNoneSignatureType is specified as the key\nfunc (m *signingMethodNone) Verify(signingString, signature string, key interface{}) (err error) {\n\t// Key must be UnsafeAllowNoneSignatureType to prevent accidentally\n\t// accepting 'none' signing method\n\tif _, ok := key.(unsafeNoneMagicConstant); !ok {\n\t\treturn NoneSignatureTypeDisallowedError\n\t}\n\t// If signing method is none, signature must be an empty string\n\tif signature != \"\" {\n\t\treturn NewValidationError(\n\t\t\t\"'none' signing method with non-empty signature\",\n\t\t\tValidationErrorSignatureInvalid,\n\t\t)\n\t}\n\n\t// Accept 'none' signing method.\n\treturn nil\n}\n\n// Only allow 'none' signing if UnsafeAllowNoneSignatureType is specified as the key\nfunc (m *signingMethodNone) Sign(signingString string, key interface{}) (string, error) {\n\tif _, ok := key.(unsafeNoneMagicConstant); ok {\n\t\treturn \"\", nil\n\t}\n\treturn \"\", NoneSignatureTypeDisallowedError\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/parser.go",
    "content": "package jwt\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Parser struct {\n\tValidMethods         []string // If populated, only these methods will be considered valid\n\tUseJSONNumber        bool     // Use JSON Number format in JSON decoder\n\tSkipClaimsValidation bool     // Skip claims validation during token parsing\n}\n\n// Parse, validate, and return a token.\n// keyFunc will receive the parsed token and should return the key for validating.\n// If everything is kosher, err will be nil\nfunc (p *Parser) Parse(tokenString string, keyFunc Keyfunc) (*Token, error) {\n\treturn p.ParseWithClaims(tokenString, MapClaims{}, keyFunc)\n}\n\nfunc (p *Parser) ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) {\n\tparts := strings.Split(tokenString, \".\")\n\tif len(parts) != 3 {\n\t\treturn nil, NewValidationError(\"token contains an invalid number of segments\", ValidationErrorMalformed)\n\t}\n\n\tvar err error\n\ttoken := &Token{Raw: tokenString}\n\n\t// parse Header\n\tvar headerBytes []byte\n\tif headerBytes, err = DecodeSegment(parts[0]); err != nil {\n\t\tif strings.HasPrefix(strings.ToLower(tokenString), \"bearer \") {\n\t\t\treturn token, NewValidationError(\"tokenstring should not contain 'bearer '\", ValidationErrorMalformed)\n\t\t}\n\t\treturn token, &ValidationError{Inner: err, Errors: ValidationErrorMalformed}\n\t}\n\tif err = json.Unmarshal(headerBytes, &token.Header); err != nil {\n\t\treturn token, &ValidationError{Inner: err, Errors: ValidationErrorMalformed}\n\t}\n\n\t// parse Claims\n\tvar claimBytes []byte\n\ttoken.Claims = claims\n\n\tif claimBytes, err = DecodeSegment(parts[1]); err != nil {\n\t\treturn token, &ValidationError{Inner: err, Errors: ValidationErrorMalformed}\n\t}\n\tdec := json.NewDecoder(bytes.NewBuffer(claimBytes))\n\tif p.UseJSONNumber {\n\t\tdec.UseNumber()\n\t}\n\t// JSON Decode.  Special case for map type to avoid weird pointer behavior\n\tif c, ok := token.Claims.(MapClaims); ok {\n\t\terr = dec.Decode(&c)\n\t} else {\n\t\terr = dec.Decode(&claims)\n\t}\n\t// Handle decode error\n\tif err != nil {\n\t\treturn token, &ValidationError{Inner: err, Errors: ValidationErrorMalformed}\n\t}\n\n\t// Lookup signature method\n\tif method, ok := token.Header[\"alg\"].(string); ok {\n\t\tif token.Method = GetSigningMethod(method); token.Method == nil {\n\t\t\treturn token, NewValidationError(\"signing method (alg) is unavailable.\", ValidationErrorUnverifiable)\n\t\t}\n\t} else {\n\t\treturn token, NewValidationError(\"signing method (alg) is unspecified.\", ValidationErrorUnverifiable)\n\t}\n\n\t// Verify signing method is in the required set\n\tif p.ValidMethods != nil {\n\t\tvar signingMethodValid = false\n\t\tvar alg = token.Method.Alg()\n\t\tfor _, m := range p.ValidMethods {\n\t\t\tif m == alg {\n\t\t\t\tsigningMethodValid = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !signingMethodValid {\n\t\t\t// signing method is not in the listed set\n\t\t\treturn token, NewValidationError(fmt.Sprintf(\"signing method %v is invalid\", alg), ValidationErrorSignatureInvalid)\n\t\t}\n\t}\n\n\t// Lookup key\n\tvar key interface{}\n\tif keyFunc == nil {\n\t\t// keyFunc was not provided.  short circuiting validation\n\t\treturn token, NewValidationError(\"no Keyfunc was provided.\", ValidationErrorUnverifiable)\n\t}\n\tif key, err = keyFunc(token); err != nil {\n\t\t// keyFunc returned an error\n\t\treturn token, &ValidationError{Inner: err, Errors: ValidationErrorUnverifiable}\n\t}\n\n\tvErr := &ValidationError{}\n\n\t// Validate Claims\n\tif !p.SkipClaimsValidation {\n\t\tif err := token.Claims.Valid(); err != nil {\n\n\t\t\t// If the Claims Valid returned an error, check if it is a validation error,\n\t\t\t// If it was another error type, create a ValidationError with a generic ClaimsInvalid flag set\n\t\t\tif e, ok := err.(*ValidationError); !ok {\n\t\t\t\tvErr = &ValidationError{Inner: err, Errors: ValidationErrorClaimsInvalid}\n\t\t\t} else {\n\t\t\t\tvErr = e\n\t\t\t}\n\t\t}\n\t}\n\n\t// Perform validation\n\ttoken.Signature = parts[2]\n\tif err = token.Method.Verify(strings.Join(parts[0:2], \".\"), token.Signature, key); err != nil {\n\t\tvErr.Inner = err\n\t\tvErr.Errors |= ValidationErrorSignatureInvalid\n\t}\n\n\tif vErr.valid() {\n\t\ttoken.Valid = true\n\t\treturn token, nil\n\t}\n\n\treturn token, vErr\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/rsa.go",
    "content": "package jwt\n\nimport (\n\t\"crypto\"\n\t\"crypto/rand\"\n\t\"crypto/rsa\"\n)\n\n// Implements the RSA family of signing methods signing methods\ntype SigningMethodRSA struct {\n\tName string\n\tHash crypto.Hash\n}\n\n// Specific instances for RS256 and company\nvar (\n\tSigningMethodRS256 *SigningMethodRSA\n\tSigningMethodRS384 *SigningMethodRSA\n\tSigningMethodRS512 *SigningMethodRSA\n)\n\nfunc init() {\n\t// RS256\n\tSigningMethodRS256 = &SigningMethodRSA{\"RS256\", crypto.SHA256}\n\tRegisterSigningMethod(SigningMethodRS256.Alg(), func() SigningMethod {\n\t\treturn SigningMethodRS256\n\t})\n\n\t// RS384\n\tSigningMethodRS384 = &SigningMethodRSA{\"RS384\", crypto.SHA384}\n\tRegisterSigningMethod(SigningMethodRS384.Alg(), func() SigningMethod {\n\t\treturn SigningMethodRS384\n\t})\n\n\t// RS512\n\tSigningMethodRS512 = &SigningMethodRSA{\"RS512\", crypto.SHA512}\n\tRegisterSigningMethod(SigningMethodRS512.Alg(), func() SigningMethod {\n\t\treturn SigningMethodRS512\n\t})\n}\n\nfunc (m *SigningMethodRSA) Alg() string {\n\treturn m.Name\n}\n\n// Implements the Verify method from SigningMethod\n// For this signing method, must be an rsa.PublicKey structure.\nfunc (m *SigningMethodRSA) Verify(signingString, signature string, key interface{}) error {\n\tvar err error\n\n\t// Decode the signature\n\tvar sig []byte\n\tif sig, err = DecodeSegment(signature); err != nil {\n\t\treturn err\n\t}\n\n\tvar rsaKey *rsa.PublicKey\n\tvar ok bool\n\n\tif rsaKey, ok = key.(*rsa.PublicKey); !ok {\n\t\treturn ErrInvalidKeyType\n\t}\n\n\t// Create hasher\n\tif !m.Hash.Available() {\n\t\treturn ErrHashUnavailable\n\t}\n\thasher := m.Hash.New()\n\thasher.Write([]byte(signingString))\n\n\t// Verify the signature\n\treturn rsa.VerifyPKCS1v15(rsaKey, m.Hash, hasher.Sum(nil), sig)\n}\n\n// Implements the Sign method from SigningMethod\n// For this signing method, must be an rsa.PrivateKey structure.\nfunc (m *SigningMethodRSA) Sign(signingString string, key interface{}) (string, error) {\n\tvar rsaKey *rsa.PrivateKey\n\tvar ok bool\n\n\t// Validate type of key\n\tif rsaKey, ok = key.(*rsa.PrivateKey); !ok {\n\t\treturn \"\", ErrInvalidKey\n\t}\n\n\t// Create the hasher\n\tif !m.Hash.Available() {\n\t\treturn \"\", ErrHashUnavailable\n\t}\n\n\thasher := m.Hash.New()\n\thasher.Write([]byte(signingString))\n\n\t// Sign the string and return the encoded bytes\n\tif sigBytes, err := rsa.SignPKCS1v15(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil)); err == nil {\n\t\treturn EncodeSegment(sigBytes), nil\n\t} else {\n\t\treturn \"\", err\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/rsa_pss.go",
    "content": "// +build go1.4\n\npackage jwt\n\nimport (\n\t\"crypto\"\n\t\"crypto/rand\"\n\t\"crypto/rsa\"\n)\n\n// Implements the RSAPSS family of signing methods signing methods\ntype SigningMethodRSAPSS struct {\n\t*SigningMethodRSA\n\tOptions *rsa.PSSOptions\n}\n\n// Specific instances for RS/PS and company\nvar (\n\tSigningMethodPS256 *SigningMethodRSAPSS\n\tSigningMethodPS384 *SigningMethodRSAPSS\n\tSigningMethodPS512 *SigningMethodRSAPSS\n)\n\nfunc init() {\n\t// PS256\n\tSigningMethodPS256 = &SigningMethodRSAPSS{\n\t\t&SigningMethodRSA{\n\t\t\tName: \"PS256\",\n\t\t\tHash: crypto.SHA256,\n\t\t},\n\t\t&rsa.PSSOptions{\n\t\t\tSaltLength: rsa.PSSSaltLengthAuto,\n\t\t\tHash:       crypto.SHA256,\n\t\t},\n\t}\n\tRegisterSigningMethod(SigningMethodPS256.Alg(), func() SigningMethod {\n\t\treturn SigningMethodPS256\n\t})\n\n\t// PS384\n\tSigningMethodPS384 = &SigningMethodRSAPSS{\n\t\t&SigningMethodRSA{\n\t\t\tName: \"PS384\",\n\t\t\tHash: crypto.SHA384,\n\t\t},\n\t\t&rsa.PSSOptions{\n\t\t\tSaltLength: rsa.PSSSaltLengthAuto,\n\t\t\tHash:       crypto.SHA384,\n\t\t},\n\t}\n\tRegisterSigningMethod(SigningMethodPS384.Alg(), func() SigningMethod {\n\t\treturn SigningMethodPS384\n\t})\n\n\t// PS512\n\tSigningMethodPS512 = &SigningMethodRSAPSS{\n\t\t&SigningMethodRSA{\n\t\t\tName: \"PS512\",\n\t\t\tHash: crypto.SHA512,\n\t\t},\n\t\t&rsa.PSSOptions{\n\t\t\tSaltLength: rsa.PSSSaltLengthAuto,\n\t\t\tHash:       crypto.SHA512,\n\t\t},\n\t}\n\tRegisterSigningMethod(SigningMethodPS512.Alg(), func() SigningMethod {\n\t\treturn SigningMethodPS512\n\t})\n}\n\n// Implements the Verify method from SigningMethod\n// For this verify method, key must be an rsa.PublicKey struct\nfunc (m *SigningMethodRSAPSS) Verify(signingString, signature string, key interface{}) error {\n\tvar err error\n\n\t// Decode the signature\n\tvar sig []byte\n\tif sig, err = DecodeSegment(signature); err != nil {\n\t\treturn err\n\t}\n\n\tvar rsaKey *rsa.PublicKey\n\tswitch k := key.(type) {\n\tcase *rsa.PublicKey:\n\t\trsaKey = k\n\tdefault:\n\t\treturn ErrInvalidKey\n\t}\n\n\t// Create hasher\n\tif !m.Hash.Available() {\n\t\treturn ErrHashUnavailable\n\t}\n\thasher := m.Hash.New()\n\thasher.Write([]byte(signingString))\n\n\treturn rsa.VerifyPSS(rsaKey, m.Hash, hasher.Sum(nil), sig, m.Options)\n}\n\n// Implements the Sign method from SigningMethod\n// For this signing method, key must be an rsa.PrivateKey struct\nfunc (m *SigningMethodRSAPSS) Sign(signingString string, key interface{}) (string, error) {\n\tvar rsaKey *rsa.PrivateKey\n\n\tswitch k := key.(type) {\n\tcase *rsa.PrivateKey:\n\t\trsaKey = k\n\tdefault:\n\t\treturn \"\", ErrInvalidKeyType\n\t}\n\n\t// Create the hasher\n\tif !m.Hash.Available() {\n\t\treturn \"\", ErrHashUnavailable\n\t}\n\n\thasher := m.Hash.New()\n\thasher.Write([]byte(signingString))\n\n\t// Sign the string and return the encoded bytes\n\tif sigBytes, err := rsa.SignPSS(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil), m.Options); err == nil {\n\t\treturn EncodeSegment(sigBytes), nil\n\t} else {\n\t\treturn \"\", err\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/rsa_utils.go",
    "content": "package jwt\n\nimport (\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n)\n\nvar (\n\tErrKeyMustBePEMEncoded = errors.New(\"Invalid Key: Key must be PEM encoded PKCS1 or PKCS8 private key\")\n\tErrNotRSAPrivateKey    = errors.New(\"Key is not a valid RSA private key\")\n\tErrNotRSAPublicKey     = errors.New(\"Key is not a valid RSA public key\")\n)\n\n// Parse PEM encoded PKCS1 or PKCS8 private key\nfunc ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error) {\n\tvar err error\n\n\t// Parse PEM block\n\tvar block *pem.Block\n\tif block, _ = pem.Decode(key); block == nil {\n\t\treturn nil, ErrKeyMustBePEMEncoded\n\t}\n\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKCS1PrivateKey(block.Bytes); err != nil {\n\t\tif parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tvar pkey *rsa.PrivateKey\n\tvar ok bool\n\tif pkey, ok = parsedKey.(*rsa.PrivateKey); !ok {\n\t\treturn nil, ErrNotRSAPrivateKey\n\t}\n\n\treturn pkey, nil\n}\n\n// Parse PEM encoded PKCS1 or PKCS8 public key\nfunc ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error) {\n\tvar err error\n\n\t// Parse PEM block\n\tvar block *pem.Block\n\tif block, _ = pem.Decode(key); block == nil {\n\t\treturn nil, ErrKeyMustBePEMEncoded\n\t}\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil {\n\t\tif cert, err := x509.ParseCertificate(block.Bytes); err == nil {\n\t\t\tparsedKey = cert.PublicKey\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tvar pkey *rsa.PublicKey\n\tvar ok bool\n\tif pkey, ok = parsedKey.(*rsa.PublicKey); !ok {\n\t\treturn nil, ErrNotRSAPublicKey\n\t}\n\n\treturn pkey, nil\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/signing_method.go",
    "content": "package jwt\n\nimport (\n\t\"sync\"\n)\n\nvar signingMethods = map[string]func() SigningMethod{}\nvar signingMethodLock = new(sync.RWMutex)\n\n// Implement SigningMethod to add new methods for signing or verifying tokens.\ntype SigningMethod interface {\n\tVerify(signingString, signature string, key interface{}) error // Returns nil if signature is valid\n\tSign(signingString string, key interface{}) (string, error)    // Returns encoded signature or error\n\tAlg() string                                                   // returns the alg identifier for this method (example: 'HS256')\n}\n\n// Register the \"alg\" name and a factory function for signing method.\n// This is typically done during init() in the method's implementation\nfunc RegisterSigningMethod(alg string, f func() SigningMethod) {\n\tsigningMethodLock.Lock()\n\tdefer signingMethodLock.Unlock()\n\n\tsigningMethods[alg] = f\n}\n\n// Get a signing method from an \"alg\" string\nfunc GetSigningMethod(alg string) (method SigningMethod) {\n\tsigningMethodLock.RLock()\n\tdefer signingMethodLock.RUnlock()\n\n\tif methodF, ok := signingMethods[alg]; ok {\n\t\tmethod = methodF()\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/dgrijalva/jwt-go/token.go",
    "content": "package jwt\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"strings\"\n\t\"time\"\n)\n\n// TimeFunc provides the current time when parsing token to validate \"exp\" claim (expiration time).\n// You can override it to use another time value.  This is useful for testing or if your\n// server uses a different time zone than your tokens.\nvar TimeFunc = time.Now\n\n// Parse methods use this callback function to supply\n// the key for verification.  The function receives the parsed,\n// but unverified Token.  This allows you to use properties in the\n// Header of the token (such as `kid`) to identify which key to use.\ntype Keyfunc func(*Token) (interface{}, error)\n\n// A JWT Token.  Different fields will be used depending on whether you're\n// creating or parsing/verifying a token.\ntype Token struct {\n\tRaw       string                 // The raw token.  Populated when you Parse a token\n\tMethod    SigningMethod          // The signing method used or to be used\n\tHeader    map[string]interface{} // The first segment of the token\n\tClaims    Claims                 // The second segment of the token\n\tSignature string                 // The third segment of the token.  Populated when you Parse a token\n\tValid     bool                   // Is the token valid?  Populated when you Parse/Verify a token\n}\n\n// Create a new Token.  Takes a signing method\nfunc New(method SigningMethod) *Token {\n\treturn NewWithClaims(method, MapClaims{})\n}\n\nfunc NewWithClaims(method SigningMethod, claims Claims) *Token {\n\treturn &Token{\n\t\tHeader: map[string]interface{}{\n\t\t\t\"typ\": \"JWT\",\n\t\t\t\"alg\": method.Alg(),\n\t\t},\n\t\tClaims: claims,\n\t\tMethod: method,\n\t}\n}\n\n// Get the complete, signed token\nfunc (t *Token) SignedString(key interface{}) (string, error) {\n\tvar sig, sstr string\n\tvar err error\n\tif sstr, err = t.SigningString(); err != nil {\n\t\treturn \"\", err\n\t}\n\tif sig, err = t.Method.Sign(sstr, key); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn strings.Join([]string{sstr, sig}, \".\"), nil\n}\n\n// Generate the signing string.  This is the\n// most expensive part of the whole deal.  Unless you\n// need this for something special, just go straight for\n// the SignedString.\nfunc (t *Token) SigningString() (string, error) {\n\tvar err error\n\tparts := make([]string, 2)\n\tfor i, _ := range parts {\n\t\tvar jsonValue []byte\n\t\tif i == 0 {\n\t\t\tif jsonValue, err = json.Marshal(t.Header); err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t} else {\n\t\t\tif jsonValue, err = json.Marshal(t.Claims); err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t}\n\n\t\tparts[i] = EncodeSegment(jsonValue)\n\t}\n\treturn strings.Join(parts, \".\"), nil\n}\n\n// Parse, validate, and return a token.\n// keyFunc will receive the parsed token and should return the key for validating.\n// If everything is kosher, err will be nil\nfunc Parse(tokenString string, keyFunc Keyfunc) (*Token, error) {\n\treturn new(Parser).Parse(tokenString, keyFunc)\n}\n\nfunc ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) {\n\treturn new(Parser).ParseWithClaims(tokenString, claims, keyFunc)\n}\n\n// Encode JWT specific base64url encoding with padding stripped\nfunc EncodeSegment(seg []byte) string {\n\treturn strings.TrimRight(base64.URLEncoding.EncodeToString(seg), \"=\")\n}\n\n// Decode JWT specific base64url encoding with padding stripped\nfunc DecodeSegment(seg string) ([]byte, error) {\n\tif l := len(seg) % 4; l > 0 {\n\t\tseg += strings.Repeat(\"=\", 4-l)\n\t}\n\n\treturn base64.URLEncoding.DecodeString(seg)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/.travis.yml",
    "content": "language: go\nsudo: false\ngo:\n  - 1.8.x\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - 1.12.x\n  - master\n\ngit:\n  depth: 10\n\nmatrix:\n  fast_finish: true\n  include:\n  - go: 1.11.x\n    env: GO111MODULE=on\n  - go: 1.12.x\n    env: GO111MODULE=on\n\nscript:\n  - go test -v -covermode=count -coverprofile=coverage.out\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Manuel Martínez-Almeida\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/README.md",
    "content": "# Server-Sent Events\n\n[![GoDoc](https://godoc.org/github.com/gin-contrib/sse?status.svg)](https://godoc.org/github.com/gin-contrib/sse)\n[![Build Status](https://travis-ci.org/gin-contrib/sse.svg)](https://travis-ci.org/gin-contrib/sse)\n[![codecov](https://codecov.io/gh/gin-contrib/sse/branch/master/graph/badge.svg)](https://codecov.io/gh/gin-contrib/sse)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gin-contrib/sse)](https://goreportcard.com/report/github.com/gin-contrib/sse)\n\nServer-sent events (SSE) is a technology where a browser receives automatic updates from a server via HTTP connection. The Server-Sent Events EventSource API is [standardized as part of HTML5[1] by the W3C](http://www.w3.org/TR/2009/WD-eventsource-20091029/).\n\n- [Read this great SSE introduction by the HTML5Rocks guys](http://www.html5rocks.com/en/tutorials/eventsource/basics/)\n- [Browser support](http://caniuse.com/#feat=eventsource)\n\n## Sample code\n\n```go\nimport \"github.com/gin-contrib/sse\"\n\nfunc httpHandler(w http.ResponseWriter, req *http.Request) {\n\t// data can be a primitive like a string, an integer or a float\n\tsse.Encode(w, sse.Event{\n\t\tEvent: \"message\",\n\t\tData:  \"some data\\nmore data\",\n\t})\n\n\t// also a complex type, like a map, a struct or a slice\n\tsse.Encode(w, sse.Event{\n\t\tId:    \"124\",\n\t\tEvent: \"message\",\n\t\tData: map[string]interface{}{\n\t\t\t\"user\":    \"manu\",\n\t\t\t\"date\":    time.Now().Unix(),\n\t\t\t\"content\": \"hi!\",\n\t\t},\n\t})\n}\n```\n```\nevent: message\ndata: some data\\\\nmore data\n\nid: 124\nevent: message\ndata: {\"content\":\"hi!\",\"date\":1431540810,\"user\":\"manu\"}\n \n```\n\n## Content-Type\n\n```go\nfmt.Println(sse.ContentType)\n```\n```\ntext/event-stream\n```\n\n## Decoding support\n\nThere is a client-side implementation of SSE coming soon.\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/go.mod",
    "content": "module github.com/gin-contrib/sse\n\ngo 1.12\n\nrequire github.com/stretchr/testify v1.3.0\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/go.sum",
    "content": "github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/sse-decoder.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage sse\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"io/ioutil\"\n)\n\ntype decoder struct {\n\tevents []Event\n}\n\nfunc Decode(r io.Reader) ([]Event, error) {\n\tvar dec decoder\n\treturn dec.decode(r)\n}\n\nfunc (d *decoder) dispatchEvent(event Event, data string) {\n\tdataLength := len(data)\n\tif dataLength > 0 {\n\t\t//If the data buffer's last character is a U+000A LINE FEED (LF) character, then remove the last character from the data buffer.\n\t\tdata = data[:dataLength-1]\n\t\tdataLength--\n\t}\n\tif dataLength == 0 && event.Event == \"\" {\n\t\treturn\n\t}\n\tif event.Event == \"\" {\n\t\tevent.Event = \"message\"\n\t}\n\tevent.Data = data\n\td.events = append(d.events, event)\n}\n\nfunc (d *decoder) decode(r io.Reader) ([]Event, error) {\n\tbuf, err := ioutil.ReadAll(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar currentEvent Event\n\tvar dataBuffer *bytes.Buffer = new(bytes.Buffer)\n\t// TODO (and unit tests)\n\t// Lines must be separated by either a U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF) character pair,\n\t// a single U+000A LINE FEED (LF) character,\n\t// or a single U+000D CARRIAGE RETURN (CR) character.\n\tlines := bytes.Split(buf, []byte{'\\n'})\n\tfor _, line := range lines {\n\t\tif len(line) == 0 {\n\t\t\t// If the line is empty (a blank line). Dispatch the event.\n\t\t\td.dispatchEvent(currentEvent, dataBuffer.String())\n\n\t\t\t// reset current event and data buffer\n\t\t\tcurrentEvent = Event{}\n\t\t\tdataBuffer.Reset()\n\t\t\tcontinue\n\t\t}\n\t\tif line[0] == byte(':') {\n\t\t\t// If the line starts with a U+003A COLON character (:), ignore the line.\n\t\t\tcontinue\n\t\t}\n\n\t\tvar field, value []byte\n\t\tcolonIndex := bytes.IndexRune(line, ':')\n\t\tif colonIndex != -1 {\n\t\t\t// If the line contains a U+003A COLON character character (:)\n\t\t\t// Collect the characters on the line before the first U+003A COLON character (:),\n\t\t\t// and let field be that string.\n\t\t\tfield = line[:colonIndex]\n\t\t\t// Collect the characters on the line after the first U+003A COLON character (:),\n\t\t\t// and let value be that string.\n\t\t\tvalue = line[colonIndex+1:]\n\t\t\t// If value starts with a single U+0020 SPACE character, remove it from value.\n\t\t\tif len(value) > 0 && value[0] == ' ' {\n\t\t\t\tvalue = value[1:]\n\t\t\t}\n\t\t} else {\n\t\t\t// Otherwise, the string is not empty but does not contain a U+003A COLON character character (:)\n\t\t\t// Use the whole line as the field name, and the empty string as the field value.\n\t\t\tfield = line\n\t\t\tvalue = []byte{}\n\t\t}\n\t\t// The steps to process the field given a field name and a field value depend on the field name,\n\t\t// as given in the following list. Field names must be compared literally,\n\t\t// with no case folding performed.\n\t\tswitch string(field) {\n\t\tcase \"event\":\n\t\t\t// Set the event name buffer to field value.\n\t\t\tcurrentEvent.Event = string(value)\n\t\tcase \"id\":\n\t\t\t// Set the event stream's last event ID to the field value.\n\t\t\tcurrentEvent.Id = string(value)\n\t\tcase \"retry\":\n\t\t\t// If the field value consists of only characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),\n\t\t\t// then interpret the field value as an integer in base ten, and set the event stream's reconnection time to that integer.\n\t\t\t// Otherwise, ignore the field.\n\t\t\tcurrentEvent.Id = string(value)\n\t\tcase \"data\":\n\t\t\t// Append the field value to the data buffer,\n\t\t\tdataBuffer.Write(value)\n\t\t\t// then append a single U+000A LINE FEED (LF) character to the data buffer.\n\t\t\tdataBuffer.WriteString(\"\\n\")\n\t\tdefault:\n\t\t\t//Otherwise. The field is ignored.\n\t\t\tcontinue\n\t\t}\n\t}\n\t// Once the end of the file is reached, the user agent must dispatch the event one final time.\n\td.dispatchEvent(currentEvent, dataBuffer.String())\n\n\treturn d.events, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/sse-encoder.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage sse\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Server-Sent Events\n// W3C Working Draft 29 October 2009\n// http://www.w3.org/TR/2009/WD-eventsource-20091029/\n\nconst ContentType = \"text/event-stream\"\n\nvar contentType = []string{ContentType}\nvar noCache = []string{\"no-cache\"}\n\nvar fieldReplacer = strings.NewReplacer(\n\t\"\\n\", \"\\\\n\",\n\t\"\\r\", \"\\\\r\")\n\nvar dataReplacer = strings.NewReplacer(\n\t\"\\n\", \"\\ndata:\",\n\t\"\\r\", \"\\\\r\")\n\ntype Event struct {\n\tEvent string\n\tId    string\n\tRetry uint\n\tData  interface{}\n}\n\nfunc Encode(writer io.Writer, event Event) error {\n\tw := checkWriter(writer)\n\twriteId(w, event.Id)\n\twriteEvent(w, event.Event)\n\twriteRetry(w, event.Retry)\n\treturn writeData(w, event.Data)\n}\n\nfunc writeId(w stringWriter, id string) {\n\tif len(id) > 0 {\n\t\tw.WriteString(\"id:\")\n\t\tfieldReplacer.WriteString(w, id)\n\t\tw.WriteString(\"\\n\")\n\t}\n}\n\nfunc writeEvent(w stringWriter, event string) {\n\tif len(event) > 0 {\n\t\tw.WriteString(\"event:\")\n\t\tfieldReplacer.WriteString(w, event)\n\t\tw.WriteString(\"\\n\")\n\t}\n}\n\nfunc writeRetry(w stringWriter, retry uint) {\n\tif retry > 0 {\n\t\tw.WriteString(\"retry:\")\n\t\tw.WriteString(strconv.FormatUint(uint64(retry), 10))\n\t\tw.WriteString(\"\\n\")\n\t}\n}\n\nfunc writeData(w stringWriter, data interface{}) error {\n\tw.WriteString(\"data:\")\n\tswitch kindOfData(data) {\n\tcase reflect.Struct, reflect.Slice, reflect.Map:\n\t\terr := json.NewEncoder(w).Encode(data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tw.WriteString(\"\\n\")\n\tdefault:\n\t\tdataReplacer.WriteString(w, fmt.Sprint(data))\n\t\tw.WriteString(\"\\n\\n\")\n\t}\n\treturn nil\n}\n\nfunc (r Event) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\treturn Encode(w, r)\n}\n\nfunc (r Event) WriteContentType(w http.ResponseWriter) {\n\theader := w.Header()\n\theader[\"Content-Type\"] = contentType\n\n\tif _, exist := header[\"Cache-Control\"]; !exist {\n\t\theader[\"Cache-Control\"] = noCache\n\t}\n}\n\nfunc kindOfData(data interface{}) reflect.Kind {\n\tvalue := reflect.ValueOf(data)\n\tvalueType := value.Kind()\n\tif valueType == reflect.Ptr {\n\t\tvalueType = value.Elem().Kind()\n\t}\n\treturn valueType\n}\n"
  },
  {
    "path": "vendor/github.com/gin-contrib/sse/writer.go",
    "content": "package sse\n\nimport \"io\"\n\ntype stringWriter interface {\n\tio.Writer\n\tWriteString(string) (int, error)\n}\n\ntype stringWrapper struct {\n\tio.Writer\n}\n\nfunc (w stringWrapper) WriteString(str string) (int, error) {\n\treturn w.Writer.Write([]byte(str))\n}\n\nfunc checkWriter(writer io.Writer) stringWriter {\n\tif w, ok := writer.(stringWriter); ok {\n\t\treturn w\n\t} else {\n\t\treturn stringWrapper{writer}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/.gitignore",
    "content": "vendor/*\n!vendor/vendor.json\ncoverage.out\ncount.out\ntest\nprofile.out\ntmp.out\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/.travis.yml",
    "content": "language: go\n\nmatrix:\n  fast_finish: true\n  include:\n  - go: 1.8.x\n  - go: 1.9.x\n  - go: 1.10.x\n  - go: 1.11.x\n    env: GO111MODULE=on\n  - go: 1.12.x\n    env: GO111MODULE=on\n  - go: master\n    env: GO111MODULE=on\n\ngit:\n  depth: 10\n\nbefore_install:\n  - if [[ \"${GO111MODULE}\" = \"on\" ]]; then mkdir \"${HOME}/go\"; export GOPATH=\"${HOME}/go\"; fi\n\ninstall:\n  - if [[ \"${GO111MODULE}\" = \"on\" ]]; then go mod download; else make install; fi\n  - if [[ \"${GO111MODULE}\" = \"on\" ]]; then export PATH=\"${GOPATH}/bin:${GOROOT}/bin:${PATH}\"; fi\n  - if [[ \"${GO111MODULE}\" = \"on\" ]]; then make tools; fi\n\ngo_import_path: github.com/gin-gonic/gin\n\nscript:\n  - make vet\n  - make fmt-check\n  - make misspell-check\n  - make test\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n\nnotifications:\n  webhooks:\n    urls:\n      - https://webhooks.gitter.im/e/7f95bf605c4d356372f4\n    on_success: change  # options: [always|never|change] default: always\n    on_failure: always  # options: [always|never|change] default: always\n    on_start: false     # default: false\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/AUTHORS.md",
    "content": "List of all the awesome people working to make Gin the best Web Framework in Go.\n\n## gin 1.x series authors\n\n**Gin Core Team:** Bo-Yi Wu (@appleboy), 田欧 (@thinkerou), Javier Provecho (@javierprovecho)\n\n## gin 0.x series authors\n\n**Maintainers:** Manu Martinez-Almeida (@manucorporat), Javier Provecho (@javierprovecho)\n\nPeople and companies, who have contributed, in alphabetical order.\n\n**@858806258 (杰哥)**\n- Fix typo in example\n\n\n**@achedeuzot (Klemen Sever)**\n- Fix newline debug printing\n\n\n**@adammck (Adam Mckaig)**\n- Add MIT license\n\n\n**@AlexanderChen1989 (Alexander)**\n- Typos in README\n\n\n**@alexanderdidenko (Aleksandr Didenko)**\n- Add support multipart/form-data\n\n\n**@alexandernyquist (Alexander Nyquist)**\n- Using template.Must to fix multiple return issue\n- ★ Added support for OPTIONS verb\n- ★ Setting response headers before calling WriteHeader\n- Improved documentation for model binding\n- ★ Added Content.Redirect()\n- ★ Added tons of Unit tests\n\n\n**@austinheap (Austin Heap)**\n- Added travis CI integration\n\n\n**@andredublin (Andre Dublin)**\n- Fix typo in comment\n\n\n**@bredov (Ludwig Valda Vasquez)**\n- Fix html templating in debug mode\n\n\n**@bluele (Jun Kimura)**\n- Fixes code examples in README\n\n\n**@chad-russell**\n- ★ Support for serializing gin.H into XML\n\n\n**@dickeyxxx (Jeff Dickey)**\n- Typos in README\n- Add example about serving static files\n\n\n**@donileo (Adonis)**\n- Add NoMethod handler\n\n\n**@dutchcoders (DutchCoders)**\n- ★ Fix security bug that allows client to spoof ip\n- Fix typo. r.HTMLTemplates -> SetHTMLTemplate\n\n\n**@el3ctro- (Joshua Loper)**\n- Fix typo in example\n\n\n**@ethankan (Ethan Kan)**\n- Unsigned integers in binding\n\n\n**(Evgeny Persienko)**\n- Validate sub structures\n\n\n**@frankbille (Frank Bille)**\n- Add support for HTTP Realm Auth\n\n\n**@fmd (Fareed Dudhia)**\n- Fix typo. SetHTTPTemplate -> SetHTMLTemplate\n\n\n**@ironiridis (Christopher Harrington)**\n- Remove old reference\n\n\n**@jammie-stackhouse (Jamie Stackhouse)**\n- Add more shortcuts for router methods\n\n\n**@jasonrhansen**\n- Fix spelling and grammar errors in documentation\n\n\n**@JasonSoft (Jason Lee)**\n- Fix typo in comment\n\n\n**@joiggama (Ignacio Galindo)**\n- Add utf-8 charset header on renders\n\n\n**@julienschmidt (Julien Schmidt)**\n- gofmt the code examples\n\n\n**@kelcecil (Kel Cecil)**\n- Fix readme typo\n\n\n**@kyledinh (Kyle Dinh)**\n- Adds RunTLS()\n\n\n**@LinusU (Linus Unnebäck)**\n- Small fixes in README\n\n\n**@loongmxbt (Saint Asky)**\n- Fix typo in example\n\n\n**@lucas-clemente (Lucas Clemente)**\n- ★ work around path.Join removing trailing slashes from routes\n\n\n**@mattn (Yasuhiro Matsumoto)**\n- Improve color logger\n\n\n**@mdigger (Dmitry Sedykh)**\n- Fixes Form binding when content-type is x-www-form-urlencoded\n- No repeat call c.Writer.Status() in gin.Logger\n- Fixes Content-Type for json render\n\n\n**@mirzac (Mirza Ceric)**\n- Fix debug printing\n\n\n**@mopemope (Yutaka Matsubara)**\n- ★ Adds Godep support (Dependencies Manager)\n- Fix variadic parameter in the flexible render API\n- Fix Corrupted plain render\n- Add Pluggable View Renderer Example\n \n\n**@msemenistyi (Mykyta Semenistyi)**\n- update Readme.md. Add code to String method\n\n\n**@msoedov (Sasha Myasoedov)**\n- ★ Adds tons of unit tests.\n\n\n**@ngerakines (Nick Gerakines)**\n- ★ Improves API, c.GET() doesn't panic\n- Adds MustGet() method\n\n\n**@r8k (Rajiv Kilaparti)**\n- Fix Port usage in README.\n\n\n**@rayrod2030 (Ray Rodriguez)**\n- Fix typo in example\n\n\n**@rns**\n- Fix typo in example\n\n\n**@RobAWilkinson (Robert Wilkinson)**\n- Add example of forms and params\n\n\n**@rogierlommers (Rogier Lommers)**\n- Add updated static serve example\n\n\n**@se77en (Damon Zhao)**\n- Improve color logging\n\n\n**@silasb (Silas Baronda)**\n- Fixing quotes in README\n\n\n**@SkuliOskarsson (Skuli Oskarsson)**\n- Fixes some texts in README II\n\n\n**@slimmy (Jimmy Pettersson)**\n- Added messages for required bindings\n\n\n**@smira (Andrey Smirnov)**\n- Add support for ignored/unexported fields in binding\n\n\n**@superalsrk (SRK.Lyu)**\n- Update httprouter godeps\n\n\n**@tebeka (Miki Tebeka)**\n- Use net/http constants instead of numeric values\n\n\n**@techjanitor**\n- Update context.go reserved IPs\n\n\n**@yosssi (Keiji Yoshida)**\n- Fix link in README\n\n\n**@yuyabee**\n- Fixed README\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/BENCHMARKS.md",
    "content": "\n## Benchmark System\n\n**VM HOST:** DigitalOcean  \n**Machine:** 4 CPU, 8 GB RAM. Ubuntu 16.04.2 x64  \n**Date:** July 19th, 2017  \n**Go Version:** 1.8.3 linux/amd64  \n**Source:** [Go HTTP Router Benchmark](https://github.com/julienschmidt/go-http-routing-benchmark)  \n\n## Static Routes: 157\n\n```\nGin:             30512 Bytes\n\nHttpServeMux:    17344 Bytes\nAce:             30080 Bytes\nBear:            30472 Bytes\nBeego:           96408 Bytes\nBone:            37904 Bytes\nDenco:           10464 Bytes\nEcho:            73680 Bytes\nGocraftWeb:      55720 Bytes\nGoji:            27200 Bytes\nGojiv2:         104464 Bytes\nGoJsonRest:     136472 Bytes\nGoRestful:      914904 Bytes\nGorillaMux:     675568 Bytes\nHttpRouter:      21128 Bytes\nHttpTreeMux:     73448 Bytes\nKocha:          115072 Bytes\nLARS:            30120 Bytes\nMacaron:         37984 Bytes\nMartini:        310832 Bytes\nPat:             20464 Bytes\nPossum:          91328 Bytes\nR2router:        23712 Bytes\nRivet:           23880 Bytes\nTango:           28008 Bytes\nTigerTonic:      80368 Bytes\nTraffic:        626480 Bytes\nVulcan:         369064 Bytes\n```\n\n## GithubAPI Routes: 203\n\n```\nGin:             52672 Bytes\n\nAce:             48992 Bytes\nBear:           161592 Bytes\nBeego:          147992 Bytes\nBone:            97728 Bytes\nDenco:           36440 Bytes\nEcho:            95672 Bytes\nGocraftWeb:      95640 Bytes\nGoji:            86088 Bytes\nGojiv2:         144392 Bytes\nGoJsonRest:     134648 Bytes\nGoRestful:     1410760 Bytes\nGorillaMux:    1509488 Bytes\nHttpRouter:      37464 Bytes\nHttpTreeMux:     78800 Bytes\nKocha:          785408 Bytes\nLARS:            49032 Bytes\nMacaron:        132712 Bytes\nMartini:        564352 Bytes\nPat:             21200 Bytes\nPossum:          83888 Bytes\nR2router:        47104 Bytes\nRivet:           42840 Bytes\nTango:           54584 Bytes\nTigerTonic:      96384 Bytes\nTraffic:       1061920 Bytes\nVulcan:         465296 Bytes\n```\n\n## GPlusAPI Routes: 13\n\n```\nGin:              3968 Bytes\n\nAce:              3600 Bytes\nBear:             7112 Bytes\nBeego:           10048 Bytes\nBone:             6480 Bytes\nDenco:            3256 Bytes\nEcho:             9000 Bytes\nGocraftWeb:       7496 Bytes\nGoji:             2912 Bytes\nGojiv2:           7376 Bytes\nGoJsonRest:      11544 Bytes\nGoRestful:       88776 Bytes\nGorillaMux:      71488 Bytes\nHttpRouter:       2712 Bytes\nHttpTreeMux:      7440 Bytes\nKocha:          128880 Bytes\nLARS:             3640 Bytes\nMacaron:          8656 Bytes\nMartini:         23936 Bytes\nPat:              1856 Bytes\nPossum:           7248 Bytes\nR2router:         3928 Bytes\nRivet:            3064 Bytes\nTango:            4912 Bytes\nTigerTonic:       9408 Bytes\nTraffic:         49472 Bytes\nVulcan:          25496 Bytes\n```\n\n## ParseAPI Routes: 26\n\n```\nGin:              6928 Bytes\n\nAce:              6592 Bytes\nBear:            12320 Bytes\nBeego:           18960 Bytes\nBone:            11024 Bytes\nDenco:            4184 Bytes\nEcho:            11168 Bytes\nGocraftWeb:      12800 Bytes\nGoji:             5232 Bytes\nGojiv2:          14464 Bytes\nGoJsonRest:      14216 Bytes\nGoRestful:      127368 Bytes\nGorillaMux:     123016 Bytes\nHttpRouter:       4976 Bytes\nHttpTreeMux:      7848 Bytes\nKocha:          181712 Bytes\nLARS:             6632 Bytes\nMacaron:         13648 Bytes\nMartini:         45952 Bytes\nPat:              2560 Bytes\nPossum:           9200 Bytes\nR2router:         7056 Bytes\nRivet:            5680 Bytes\nTango:            8664 Bytes\nTigerTonic:       9840 Bytes\nTraffic:         93480 Bytes\nVulcan:          44504 Bytes\n```\n\n## Static Routes\n\n```\nBenchmarkGin_StaticAll                     50000             34506 ns/op               0 B/op          0 allocs/op\n\nBenchmarkAce_StaticAll                     30000             49657 ns/op               0 B/op          0 allocs/op\nBenchmarkHttpServeMux_StaticAll             2000           1183737 ns/op              96 B/op          8 allocs/op\nBenchmarkBeego_StaticAll                    5000            412621 ns/op           57776 B/op        628 allocs/op\nBenchmarkBear_StaticAll                    10000            149242 ns/op           20336 B/op        461 allocs/op\nBenchmarkBone_StaticAll                    10000            118583 ns/op               0 B/op          0 allocs/op\nBenchmarkDenco_StaticAll                  100000             13247 ns/op               0 B/op          0 allocs/op\nBenchmarkEcho_StaticAll                    20000             79914 ns/op            5024 B/op        157 allocs/op\nBenchmarkGocraftWeb_StaticAll              10000            211823 ns/op           46440 B/op        785 allocs/op\nBenchmarkGoji_StaticAll                    10000            109390 ns/op               0 B/op          0 allocs/op\nBenchmarkGojiv2_StaticAll                   3000            415533 ns/op          145696 B/op       1099 allocs/op\nBenchmarkGoJsonRest_StaticAll               5000            364403 ns/op           51653 B/op       1727 allocs/op\nBenchmarkGoRestful_StaticAll                 500           2578579 ns/op          314936 B/op       3144 allocs/op\nBenchmarkGorillaMux_StaticAll                500           2704856 ns/op          115648 B/op       1578 allocs/op\nBenchmarkHttpRouter_StaticAll             100000             18541 ns/op               0 B/op          0 allocs/op\nBenchmarkHttpTreeMux_StaticAll            100000             22332 ns/op               0 B/op          0 allocs/op\nBenchmarkKocha_StaticAll                   50000             31176 ns/op               0 B/op          0 allocs/op\nBenchmarkLARS_StaticAll                    50000             40840 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_StaticAll                  5000            517656 ns/op          120576 B/op       1413 allocs/op\nBenchmarkMartini_StaticAll                   300           4462289 ns/op          125442 B/op       1717 allocs/op\nBenchmarkPat_StaticAll                       500           2157275 ns/op          533904 B/op      11123 allocs/op\nBenchmarkPossum_StaticAll                  10000            254701 ns/op           65312 B/op        471 allocs/op\nBenchmarkR2router_StaticAll                10000            133956 ns/op           22608 B/op        628 allocs/op\nBenchmarkRivet_StaticAll                   30000             46812 ns/op               0 B/op          0 allocs/op\nBenchmarkTango_StaticAll                    5000            390613 ns/op           39225 B/op       1256 allocs/op\nBenchmarkTigerTonic_StaticAll              20000             88060 ns/op            7504 B/op        157 allocs/op\nBenchmarkTraffic_StaticAll                   500           2910236 ns/op          729736 B/op      14287 allocs/op\nBenchmarkVulcan_StaticAll                   5000            277366 ns/op           15386 B/op        471 allocs/op\n```\n\n## Micro Benchmarks\n\n```\nBenchmarkGin_Param                      20000000               113 ns/op               0 B/op          0 allocs/op\n\nBenchmarkAce_Param                       5000000               375 ns/op              32 B/op          1 allocs/op\nBenchmarkBear_Param                      1000000              1709 ns/op             456 B/op          5 allocs/op\nBenchmarkBeego_Param                     1000000              2484 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_Param                      1000000              2391 ns/op             688 B/op          5 allocs/op\nBenchmarkDenco_Param                    10000000               240 ns/op              32 B/op          1 allocs/op\nBenchmarkEcho_Param                      5000000               366 ns/op              32 B/op          1 allocs/op\nBenchmarkGocraftWeb_Param                1000000              2343 ns/op             648 B/op          8 allocs/op\nBenchmarkGoji_Param                      1000000              1197 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_Param                    1000000              2771 ns/op             944 B/op          8 allocs/op\nBenchmarkGoJsonRest_Param                1000000              2993 ns/op             649 B/op         13 allocs/op\nBenchmarkGoRestful_Param                  200000              8860 ns/op            2296 B/op         21 allocs/op\nBenchmarkGorillaMux_Param                 500000              4461 ns/op            1056 B/op         11 allocs/op\nBenchmarkHttpRouter_Param               10000000               175 ns/op              32 B/op          1 allocs/op\nBenchmarkHttpTreeMux_Param               1000000              1167 ns/op             352 B/op          3 allocs/op\nBenchmarkKocha_Param                     3000000               429 ns/op              56 B/op          3 allocs/op\nBenchmarkLARS_Param                     10000000               134 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_Param                    500000              4635 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_Param                    200000              9933 ns/op            1072 B/op         10 allocs/op\nBenchmarkPat_Param                       1000000              2929 ns/op             648 B/op         12 allocs/op\nBenchmarkPossum_Param                    1000000              2503 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_Param                  1000000              1507 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_Param                     5000000               297 ns/op              48 B/op          1 allocs/op\nBenchmarkTango_Param                     1000000              1862 ns/op             248 B/op          8 allocs/op\nBenchmarkTigerTonic_Param                 500000              5660 ns/op             992 B/op         17 allocs/op\nBenchmarkTraffic_Param                    200000              8408 ns/op            1960 B/op         21 allocs/op\nBenchmarkVulcan_Param                    2000000               963 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_Param5                      2000000               740 ns/op             160 B/op          1 allocs/op\nBenchmarkBear_Param5                     1000000              2777 ns/op             501 B/op          5 allocs/op\nBenchmarkBeego_Param5                    1000000              3740 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_Param5                     1000000              2950 ns/op             736 B/op          5 allocs/op\nBenchmarkDenco_Param5                    2000000               644 ns/op             160 B/op          1 allocs/op\nBenchmarkEcho_Param5                     3000000               558 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_Param5                     10000000               198 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_Param5                500000              3870 ns/op             920 B/op         11 allocs/op\nBenchmarkGoji_Param5                     1000000              1746 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_Param5                   1000000              3214 ns/op            1008 B/op          8 allocs/op\nBenchmarkGoJsonRest_Param5                500000              5509 ns/op            1097 B/op         16 allocs/op\nBenchmarkGoRestful_Param5                 200000             11232 ns/op            2392 B/op         21 allocs/op\nBenchmarkGorillaMux_Param5                300000              7777 ns/op            1184 B/op         11 allocs/op\nBenchmarkHttpRouter_Param5               3000000               631 ns/op             160 B/op          1 allocs/op\nBenchmarkHttpTreeMux_Param5              1000000              2800 ns/op             576 B/op          6 allocs/op\nBenchmarkKocha_Param5                    1000000              2053 ns/op             440 B/op         10 allocs/op\nBenchmarkLARS_Param5                    10000000               232 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_Param5                   500000              5888 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_Param5                   200000             12807 ns/op            1232 B/op         11 allocs/op\nBenchmarkPat_Param5                       300000              7320 ns/op             964 B/op         32 allocs/op\nBenchmarkPossum_Param5                   1000000              2495 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_Param5                 1000000              1844 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_Param5                    2000000               935 ns/op             240 B/op          1 allocs/op\nBenchmarkTango_Param5                    1000000              2327 ns/op             360 B/op          8 allocs/op\nBenchmarkTigerTonic_Param5                100000             18514 ns/op            2551 B/op         43 allocs/op\nBenchmarkTraffic_Param5                   200000             11997 ns/op            2248 B/op         25 allocs/op\nBenchmarkVulcan_Param5                   1000000              1333 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_Param20                     1000000              2031 ns/op             640 B/op          1 allocs/op\nBenchmarkBear_Param20                     200000              7285 ns/op            1664 B/op          5 allocs/op\nBenchmarkBeego_Param20                    300000              6224 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_Param20                     200000              8023 ns/op            1903 B/op          5 allocs/op\nBenchmarkDenco_Param20                   1000000              2262 ns/op             640 B/op          1 allocs/op\nBenchmarkEcho_Param20                    1000000              1387 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_Param20                     3000000               503 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_Param20               100000             14408 ns/op            3795 B/op         15 allocs/op\nBenchmarkGoji_Param20                     500000              5272 ns/op            1247 B/op          2 allocs/op\nBenchmarkGojiv2_Param20                  1000000              4163 ns/op            1248 B/op          8 allocs/op\nBenchmarkGoJsonRest_Param20               100000             17866 ns/op            4485 B/op         20 allocs/op\nBenchmarkGoRestful_Param20                100000             21022 ns/op            4724 B/op         23 allocs/op\nBenchmarkGorillaMux_Param20               100000             17055 ns/op            3547 B/op         13 allocs/op\nBenchmarkHttpRouter_Param20              1000000              1748 ns/op             640 B/op          1 allocs/op\nBenchmarkHttpTreeMux_Param20              200000             12246 ns/op            3196 B/op         10 allocs/op\nBenchmarkKocha_Param20                    300000              6861 ns/op            1808 B/op         27 allocs/op\nBenchmarkLARS_Param20                    3000000               526 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_Param20                  100000             13069 ns/op            2906 B/op         12 allocs/op\nBenchmarkMartini_Param20                  100000             23602 ns/op            3597 B/op         13 allocs/op\nBenchmarkPat_Param20                       50000             32143 ns/op            4688 B/op        111 allocs/op\nBenchmarkPossum_Param20                  1000000              2396 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_Param20                 200000              8907 ns/op            2283 B/op          7 allocs/op\nBenchmarkRivet_Param20                   1000000              3280 ns/op            1024 B/op          1 allocs/op\nBenchmarkTango_Param20                    500000              4640 ns/op             856 B/op          8 allocs/op\nBenchmarkTigerTonic_Param20                20000             67581 ns/op           10532 B/op        138 allocs/op\nBenchmarkTraffic_Param20                   50000             40313 ns/op            7941 B/op         45 allocs/op\nBenchmarkVulcan_Param20                  1000000              2264 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_ParamWrite                  3000000               532 ns/op              40 B/op          2 allocs/op\nBenchmarkBear_ParamWrite                 1000000              1778 ns/op             456 B/op          5 allocs/op\nBenchmarkBeego_ParamWrite                1000000              2596 ns/op             376 B/op          5 allocs/op\nBenchmarkBone_ParamWrite                 1000000              2519 ns/op             688 B/op          5 allocs/op\nBenchmarkDenco_ParamWrite                5000000               411 ns/op              32 B/op          1 allocs/op\nBenchmarkEcho_ParamWrite                 2000000               718 ns/op              40 B/op          2 allocs/op\nBenchmarkGin_ParamWrite                  5000000               283 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_ParamWrite           1000000              2561 ns/op             656 B/op          9 allocs/op\nBenchmarkGoji_ParamWrite                 1000000              1378 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_ParamWrite               1000000              3128 ns/op             976 B/op         10 allocs/op\nBenchmarkGoJsonRest_ParamWrite            500000              4446 ns/op            1128 B/op         18 allocs/op\nBenchmarkGoRestful_ParamWrite             200000             10291 ns/op            2304 B/op         22 allocs/op\nBenchmarkGorillaMux_ParamWrite            500000              5153 ns/op            1064 B/op         12 allocs/op\nBenchmarkHttpRouter_ParamWrite           5000000               263 ns/op              32 B/op          1 allocs/op\nBenchmarkHttpTreeMux_ParamWrite          1000000              1351 ns/op             352 B/op          3 allocs/op\nBenchmarkKocha_ParamWrite                3000000               538 ns/op              56 B/op          3 allocs/op\nBenchmarkLARS_ParamWrite                 5000000               316 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_ParamWrite               500000              5756 ns/op            1160 B/op         14 allocs/op\nBenchmarkMartini_ParamWrite               200000             13097 ns/op            1176 B/op         14 allocs/op\nBenchmarkPat_ParamWrite                   500000              4954 ns/op            1072 B/op         17 allocs/op\nBenchmarkPossum_ParamWrite               1000000              2499 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_ParamWrite             1000000              1531 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_ParamWrite                3000000               570 ns/op             112 B/op          2 allocs/op\nBenchmarkTango_ParamWrite                2000000               957 ns/op             136 B/op          4 allocs/op\nBenchmarkTigerTonic_ParamWrite            200000              7025 ns/op            1424 B/op         23 allocs/op\nBenchmarkTraffic_ParamWrite               200000             10112 ns/op            2384 B/op         25 allocs/op\nBenchmarkVulcan_ParamWrite               1000000              1006 ns/op              98 B/op          3 allocs/op\n```\n\n## GitHub\n\n```\nBenchmarkGin_GithubStatic               10000000               156 ns/op               0 B/op          0 allocs/op\n\nBenchmarkAce_GithubStatic                5000000               294 ns/op               0 B/op          0 allocs/op\nBenchmarkBear_GithubStatic               2000000               893 ns/op             120 B/op          3 allocs/op\nBenchmarkBeego_GithubStatic              1000000              2491 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_GithubStatic                 50000             25300 ns/op            2880 B/op         60 allocs/op\nBenchmarkDenco_GithubStatic             20000000                76.0 ns/op             0 B/op          0 allocs/op\nBenchmarkEcho_GithubStatic               2000000               516 ns/op              32 B/op          1 allocs/op\nBenchmarkGocraftWeb_GithubStatic         1000000              1448 ns/op             296 B/op          5 allocs/op\nBenchmarkGoji_GithubStatic               3000000               496 ns/op               0 B/op          0 allocs/op\nBenchmarkGojiv2_GithubStatic             1000000              2941 ns/op             928 B/op          7 allocs/op\nBenchmarkGoRestful_GithubStatic           100000             27256 ns/op            3224 B/op         22 allocs/op\nBenchmarkGoJsonRest_GithubStatic         1000000              2196 ns/op             329 B/op         11 allocs/op\nBenchmarkGorillaMux_GithubStatic           50000             31617 ns/op             736 B/op         10 allocs/op\nBenchmarkHttpRouter_GithubStatic        20000000                88.4 ns/op             0 B/op          0 allocs/op\nBenchmarkHttpTreeMux_GithubStatic       10000000               134 ns/op               0 B/op          0 allocs/op\nBenchmarkKocha_GithubStatic             20000000               113 ns/op               0 B/op          0 allocs/op\nBenchmarkLARS_GithubStatic              10000000               195 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GithubStatic             500000              3740 ns/op             768 B/op          9 allocs/op\nBenchmarkMartini_GithubStatic              50000             27673 ns/op             768 B/op          9 allocs/op\nBenchmarkPat_GithubStatic                 100000             19470 ns/op            3648 B/op         76 allocs/op\nBenchmarkPossum_GithubStatic             1000000              1729 ns/op             416 B/op          3 allocs/op\nBenchmarkR2router_GithubStatic           2000000               879 ns/op             144 B/op          4 allocs/op\nBenchmarkRivet_GithubStatic             10000000               231 ns/op               0 B/op          0 allocs/op\nBenchmarkTango_GithubStatic              1000000              2325 ns/op             248 B/op          8 allocs/op\nBenchmarkTigerTonic_GithubStatic         3000000               610 ns/op              48 B/op          1 allocs/op\nBenchmarkTraffic_GithubStatic              20000             62973 ns/op           18904 B/op        148 allocs/op\nBenchmarkVulcan_GithubStatic             1000000              1447 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_GithubParam                 2000000               686 ns/op              96 B/op          1 allocs/op\nBenchmarkBear_GithubParam                1000000              2155 ns/op             496 B/op          5 allocs/op\nBenchmarkBeego_GithubParam               1000000              2713 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_GithubParam                 100000             15088 ns/op            1760 B/op         18 allocs/op\nBenchmarkDenco_GithubParam               2000000               629 ns/op             128 B/op          1 allocs/op\nBenchmarkEcho_GithubParam                2000000               653 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_GithubParam                 5000000               255 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_GithubParam          1000000              3145 ns/op             712 B/op          9 allocs/op\nBenchmarkGoji_GithubParam                1000000              1916 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_GithubParam              1000000              3975 ns/op            1024 B/op         10 allocs/op\nBenchmarkGoJsonRest_GithubParam           300000              4134 ns/op             713 B/op         14 allocs/op\nBenchmarkGoRestful_GithubParam             50000             30782 ns/op            2360 B/op         21 allocs/op\nBenchmarkGorillaMux_GithubParam           100000             17148 ns/op            1088 B/op         11 allocs/op\nBenchmarkHttpRouter_GithubParam          3000000               523 ns/op              96 B/op          1 allocs/op\nBenchmarkHttpTreeMux_GithubParam         1000000              1671 ns/op             384 B/op          4 allocs/op\nBenchmarkKocha_GithubParam               1000000              1021 ns/op             128 B/op          5 allocs/op\nBenchmarkLARS_GithubParam                5000000               283 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GithubParam              500000              4270 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_GithubParam              100000             21728 ns/op            1152 B/op         11 allocs/op\nBenchmarkPat_GithubParam                  200000             11208 ns/op            2464 B/op         48 allocs/op\nBenchmarkPossum_GithubParam              1000000              2334 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_GithubParam            1000000              1487 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_GithubParam               2000000               782 ns/op              96 B/op          1 allocs/op\nBenchmarkTango_GithubParam               1000000              2653 ns/op             344 B/op          8 allocs/op\nBenchmarkTigerTonic_GithubParam           300000             14073 ns/op            1440 B/op         24 allocs/op\nBenchmarkTraffic_GithubParam               50000             29164 ns/op            5992 B/op         52 allocs/op\nBenchmarkVulcan_GithubParam              1000000              2529 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_GithubAll                     10000            134059 ns/op           13792 B/op        167 allocs/op\nBenchmarkBear_GithubAll                     5000            534445 ns/op           86448 B/op        943 allocs/op\nBenchmarkBeego_GithubAll                    3000            592444 ns/op           74705 B/op        812 allocs/op\nBenchmarkBone_GithubAll                      200           6957308 ns/op          698784 B/op       8453 allocs/op\nBenchmarkDenco_GithubAll                   10000            158819 ns/op           20224 B/op        167 allocs/op\nBenchmarkEcho_GithubAll                    10000            154700 ns/op            6496 B/op        203 allocs/op\nBenchmarkGin_GithubAll                     30000             48375 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_GithubAll               3000            570806 ns/op          131656 B/op       1686 allocs/op\nBenchmarkGoji_GithubAll                     2000            818034 ns/op           56112 B/op        334 allocs/op\nBenchmarkGojiv2_GithubAll                   2000           1213973 ns/op          274768 B/op       3712 allocs/op\nBenchmarkGoJsonRest_GithubAll               2000            785796 ns/op          134371 B/op       2737 allocs/op\nBenchmarkGoRestful_GithubAll                 300           5238188 ns/op          689672 B/op       4519 allocs/op\nBenchmarkGorillaMux_GithubAll                100          10257726 ns/op          211840 B/op       2272 allocs/op\nBenchmarkHttpRouter_GithubAll              20000            105414 ns/op           13792 B/op        167 allocs/op\nBenchmarkHttpTreeMux_GithubAll             10000            319934 ns/op           65856 B/op        671 allocs/op\nBenchmarkKocha_GithubAll                   10000            209442 ns/op           23304 B/op        843 allocs/op\nBenchmarkLARS_GithubAll                    20000             62565 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GithubAll                  2000           1161270 ns/op          204194 B/op       2000 allocs/op\nBenchmarkMartini_GithubAll                   200           9991713 ns/op          226549 B/op       2325 allocs/op\nBenchmarkPat_GithubAll                       200           5590793 ns/op         1499568 B/op      27435 allocs/op\nBenchmarkPossum_GithubAll                  10000            319768 ns/op           84448 B/op        609 allocs/op\nBenchmarkR2router_GithubAll                10000            305134 ns/op           77328 B/op        979 allocs/op\nBenchmarkRivet_GithubAll                   10000            132134 ns/op           16272 B/op        167 allocs/op\nBenchmarkTango_GithubAll                    3000            552754 ns/op           63826 B/op       1618 allocs/op\nBenchmarkTigerTonic_GithubAll               1000           1439483 ns/op          239104 B/op       5374 allocs/op\nBenchmarkTraffic_GithubAll                   100          11383067 ns/op         2659329 B/op      21848 allocs/op\nBenchmarkVulcan_GithubAll                   5000            394253 ns/op           19894 B/op        609 allocs/op\n```\n\n## Google+\n\n```\nBenchmarkGin_GPlusStatic                10000000               183 ns/op               0 B/op          0 allocs/op\n\nBenchmarkAce_GPlusStatic                 5000000               276 ns/op               0 B/op          0 allocs/op\nBenchmarkBear_GPlusStatic                2000000               652 ns/op             104 B/op          3 allocs/op\nBenchmarkBeego_GPlusStatic               1000000              2239 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_GPlusStatic                5000000               380 ns/op              32 B/op          1 allocs/op\nBenchmarkDenco_GPlusStatic              30000000                45.8 ns/op             0 B/op          0 allocs/op\nBenchmarkEcho_GPlusStatic                5000000               338 ns/op              32 B/op          1 allocs/op\nBenchmarkGocraftWeb_GPlusStatic          1000000              1158 ns/op             280 B/op          5 allocs/op\nBenchmarkGoji_GPlusStatic                5000000               331 ns/op               0 B/op          0 allocs/op\nBenchmarkGojiv2_GPlusStatic              1000000              2106 ns/op             928 B/op          7 allocs/op\nBenchmarkGoJsonRest_GPlusStatic          1000000              1626 ns/op             329 B/op         11 allocs/op\nBenchmarkGoRestful_GPlusStatic            300000              7598 ns/op            1976 B/op         20 allocs/op\nBenchmarkGorillaMux_GPlusStatic          1000000              2629 ns/op             736 B/op         10 allocs/op\nBenchmarkHttpRouter_GPlusStatic         30000000                52.5 ns/op             0 B/op          0 allocs/op\nBenchmarkHttpTreeMux_GPlusStatic        20000000                85.8 ns/op             0 B/op          0 allocs/op\nBenchmarkKocha_GPlusStatic              20000000                89.2 ns/op             0 B/op          0 allocs/op\nBenchmarkLARS_GPlusStatic               10000000               162 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GPlusStatic              500000              3479 ns/op             768 B/op          9 allocs/op\nBenchmarkMartini_GPlusStatic              200000              9092 ns/op             768 B/op          9 allocs/op\nBenchmarkPat_GPlusStatic                 3000000               493 ns/op              96 B/op          2 allocs/op\nBenchmarkPossum_GPlusStatic              1000000              1467 ns/op             416 B/op          3 allocs/op\nBenchmarkR2router_GPlusStatic            2000000               788 ns/op             144 B/op          4 allocs/op\nBenchmarkRivet_GPlusStatic              20000000               114 ns/op               0 B/op          0 allocs/op\nBenchmarkTango_GPlusStatic               1000000              1534 ns/op             200 B/op          8 allocs/op\nBenchmarkTigerTonic_GPlusStatic          5000000               282 ns/op              32 B/op          1 allocs/op\nBenchmarkTraffic_GPlusStatic              500000              3798 ns/op            1192 B/op         15 allocs/op\nBenchmarkVulcan_GPlusStatic              2000000              1125 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_GPlusParam                  3000000               528 ns/op              64 B/op          1 allocs/op\nBenchmarkBear_GPlusParam                 1000000              1570 ns/op             480 B/op          5 allocs/op\nBenchmarkBeego_GPlusParam                1000000              2369 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_GPlusParam                 1000000              2028 ns/op             688 B/op          5 allocs/op\nBenchmarkDenco_GPlusParam                5000000               385 ns/op              64 B/op          1 allocs/op\nBenchmarkEcho_GPlusParam                 3000000               441 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_GPlusParam                 10000000               174 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_GPlusParam           1000000              2033 ns/op             648 B/op          8 allocs/op\nBenchmarkGoji_GPlusParam                 1000000              1399 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_GPlusParam               1000000              2641 ns/op             944 B/op          8 allocs/op\nBenchmarkGoJsonRest_GPlusParam           1000000              2824 ns/op             649 B/op         13 allocs/op\nBenchmarkGoRestful_GPlusParam             200000              8875 ns/op            2296 B/op         21 allocs/op\nBenchmarkGorillaMux_GPlusParam            200000              6291 ns/op            1056 B/op         11 allocs/op\nBenchmarkHttpRouter_GPlusParam           5000000               316 ns/op              64 B/op          1 allocs/op\nBenchmarkHttpTreeMux_GPlusParam          1000000              1129 ns/op             352 B/op          3 allocs/op\nBenchmarkKocha_GPlusParam                3000000               538 ns/op              56 B/op          3 allocs/op\nBenchmarkLARS_GPlusParam                10000000               198 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GPlusParam               500000              3554 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_GPlusParam               200000              9831 ns/op            1072 B/op         10 allocs/op\nBenchmarkPat_GPlusParam                  1000000              2706 ns/op             688 B/op         12 allocs/op\nBenchmarkPossum_GPlusParam               1000000              2297 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_GPlusParam             1000000              1318 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_GPlusParam                5000000               399 ns/op              48 B/op          1 allocs/op\nBenchmarkTango_GPlusParam                1000000              2070 ns/op             264 B/op          8 allocs/op\nBenchmarkTigerTonic_GPlusParam            500000              4853 ns/op            1056 B/op         17 allocs/op\nBenchmarkTraffic_GPlusParam               200000              8278 ns/op            1976 B/op         21 allocs/op\nBenchmarkVulcan_GPlusParam               1000000              1243 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_GPlus2Params                3000000               549 ns/op              64 B/op          1 allocs/op\nBenchmarkBear_GPlus2Params               1000000              2112 ns/op             496 B/op          5 allocs/op\nBenchmarkBeego_GPlus2Params               500000              2750 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_GPlus2Params                300000              7032 ns/op            1040 B/op          9 allocs/op\nBenchmarkDenco_GPlus2Params              3000000               502 ns/op              64 B/op          1 allocs/op\nBenchmarkEcho_GPlus2Params               3000000               641 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_GPlus2Params                5000000               250 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_GPlus2Params         1000000              2681 ns/op             712 B/op          9 allocs/op\nBenchmarkGoji_GPlus2Params               1000000              1926 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_GPlus2Params              500000              3996 ns/op            1024 B/op         11 allocs/op\nBenchmarkGoJsonRest_GPlus2Params          500000              3886 ns/op             713 B/op         14 allocs/op\nBenchmarkGoRestful_GPlus2Params           200000             10376 ns/op            2360 B/op         21 allocs/op\nBenchmarkGorillaMux_GPlus2Params          100000             14162 ns/op            1088 B/op         11 allocs/op\nBenchmarkHttpRouter_GPlus2Params         5000000               336 ns/op              64 B/op          1 allocs/op\nBenchmarkHttpTreeMux_GPlus2Params        1000000              1523 ns/op             384 B/op          4 allocs/op\nBenchmarkKocha_GPlus2Params              2000000               970 ns/op             128 B/op          5 allocs/op\nBenchmarkLARS_GPlus2Params               5000000               238 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GPlus2Params             500000              4016 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_GPlus2Params             100000             21253 ns/op            1200 B/op         13 allocs/op\nBenchmarkPat_GPlus2Params                 200000              8632 ns/op            2256 B/op         34 allocs/op\nBenchmarkPossum_GPlus2Params             1000000              2171 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_GPlus2Params           1000000              1340 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_GPlus2Params              3000000               557 ns/op              96 B/op          1 allocs/op\nBenchmarkTango_GPlus2Params              1000000              2186 ns/op             344 B/op          8 allocs/op\nBenchmarkTigerTonic_GPlus2Params          200000              9060 ns/op            1488 B/op         24 allocs/op\nBenchmarkTraffic_GPlus2Params             100000             20324 ns/op            3272 B/op         31 allocs/op\nBenchmarkVulcan_GPlus2Params             1000000              2039 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_GPlusAll                     300000              6603 ns/op             640 B/op         11 allocs/op\nBenchmarkBear_GPlusAll                    100000             22363 ns/op            5488 B/op         61 allocs/op\nBenchmarkBeego_GPlusAll                    50000             38757 ns/op            4784 B/op         52 allocs/op\nBenchmarkBone_GPlusAll                     20000             54916 ns/op           10336 B/op         98 allocs/op\nBenchmarkDenco_GPlusAll                   300000              4959 ns/op             672 B/op         11 allocs/op\nBenchmarkEcho_GPlusAll                    200000              6558 ns/op             416 B/op         13 allocs/op\nBenchmarkGin_GPlusAll                     500000              2757 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_GPlusAll               50000             34615 ns/op            8040 B/op        103 allocs/op\nBenchmarkGoji_GPlusAll                    100000             16002 ns/op            3696 B/op         22 allocs/op\nBenchmarkGojiv2_GPlusAll                   50000             35060 ns/op           12624 B/op        115 allocs/op\nBenchmarkGoJsonRest_GPlusAll               50000             41479 ns/op            8117 B/op        170 allocs/op\nBenchmarkGoRestful_GPlusAll                10000            131653 ns/op           32024 B/op        275 allocs/op\nBenchmarkGorillaMux_GPlusAll               10000            101380 ns/op           13296 B/op        142 allocs/op\nBenchmarkHttpRouter_GPlusAll              500000              3711 ns/op             640 B/op         11 allocs/op\nBenchmarkHttpTreeMux_GPlusAll             100000             14438 ns/op            4032 B/op         38 allocs/op\nBenchmarkKocha_GPlusAll                   200000              8039 ns/op             976 B/op         43 allocs/op\nBenchmarkLARS_GPlusAll                    500000              2630 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_GPlusAll                  30000             51123 ns/op           13152 B/op        128 allocs/op\nBenchmarkMartini_GPlusAll                  10000            176157 ns/op           14016 B/op        145 allocs/op\nBenchmarkPat_GPlusAll                      20000             69911 ns/op           16576 B/op        298 allocs/op\nBenchmarkPossum_GPlusAll                  100000             20716 ns/op            5408 B/op         39 allocs/op\nBenchmarkR2router_GPlusAll                100000             17463 ns/op            5040 B/op         63 allocs/op\nBenchmarkRivet_GPlusAll                   300000              5142 ns/op             768 B/op         11 allocs/op\nBenchmarkTango_GPlusAll                    50000             27321 ns/op            3656 B/op        104 allocs/op\nBenchmarkTigerTonic_GPlusAll               20000             77597 ns/op           14512 B/op        288 allocs/op\nBenchmarkTraffic_GPlusAll                  10000            151406 ns/op           37360 B/op        392 allocs/op\nBenchmarkVulcan_GPlusAll                  100000             18555 ns/op            1274 B/op         39 allocs/op\n```\n\n## Parse.com\n\n```\nBenchmarkGin_ParseStatic                10000000               133 ns/op               0 B/op          0 allocs/op\n\nBenchmarkAce_ParseStatic                 5000000               241 ns/op               0 B/op          0 allocs/op\nBenchmarkBear_ParseStatic                2000000               728 ns/op             120 B/op          3 allocs/op\nBenchmarkBeego_ParseStatic               1000000              2623 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_ParseStatic                1000000              1285 ns/op             144 B/op          3 allocs/op\nBenchmarkDenco_ParseStatic              30000000                57.8 ns/op             0 B/op          0 allocs/op\nBenchmarkEcho_ParseStatic                5000000               342 ns/op              32 B/op          1 allocs/op\nBenchmarkGocraftWeb_ParseStatic          1000000              1478 ns/op             296 B/op          5 allocs/op\nBenchmarkGoji_ParseStatic                3000000               415 ns/op               0 B/op          0 allocs/op\nBenchmarkGojiv2_ParseStatic              1000000              2087 ns/op             928 B/op          7 allocs/op\nBenchmarkGoJsonRest_ParseStatic          1000000              1712 ns/op             329 B/op         11 allocs/op\nBenchmarkGoRestful_ParseStatic            200000             11072 ns/op            3224 B/op         22 allocs/op\nBenchmarkGorillaMux_ParseStatic           500000              4129 ns/op             752 B/op         11 allocs/op\nBenchmarkHttpRouter_ParseStatic         30000000                52.4 ns/op             0 B/op          0 allocs/op\nBenchmarkHttpTreeMux_ParseStatic        20000000               109 ns/op               0 B/op          0 allocs/op\nBenchmarkKocha_ParseStatic              20000000                81.8 ns/op             0 B/op          0 allocs/op\nBenchmarkLARS_ParseStatic               10000000               150 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_ParseStatic             1000000              3288 ns/op             768 B/op          9 allocs/op\nBenchmarkMartini_ParseStatic              200000              9110 ns/op             768 B/op          9 allocs/op\nBenchmarkPat_ParseStatic                 1000000              1135 ns/op             240 B/op          5 allocs/op\nBenchmarkPossum_ParseStatic              1000000              1557 ns/op             416 B/op          3 allocs/op\nBenchmarkR2router_ParseStatic            2000000               730 ns/op             144 B/op          4 allocs/op\nBenchmarkRivet_ParseStatic              10000000               121 ns/op               0 B/op          0 allocs/op\nBenchmarkTango_ParseStatic               1000000              1688 ns/op             248 B/op          8 allocs/op\nBenchmarkTigerTonic_ParseStatic          3000000               427 ns/op              48 B/op          1 allocs/op\nBenchmarkTraffic_ParseStatic              500000              5962 ns/op            1816 B/op         20 allocs/op\nBenchmarkVulcan_ParseStatic              2000000               969 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_ParseParam                  3000000               497 ns/op              64 B/op          1 allocs/op\nBenchmarkBear_ParseParam                 1000000              1473 ns/op             467 B/op          5 allocs/op\nBenchmarkBeego_ParseParam                1000000              2384 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_ParseParam                 1000000              2513 ns/op             768 B/op          6 allocs/op\nBenchmarkDenco_ParseParam                5000000               364 ns/op              64 B/op          1 allocs/op\nBenchmarkEcho_ParseParam                 5000000               418 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_ParseParam                 10000000               163 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_ParseParam           1000000              2361 ns/op             664 B/op          8 allocs/op\nBenchmarkGoji_ParseParam                 1000000              1590 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_ParseParam               1000000              2851 ns/op             976 B/op          9 allocs/op\nBenchmarkGoJsonRest_ParseParam           1000000              2965 ns/op             649 B/op         13 allocs/op\nBenchmarkGoRestful_ParseParam             200000             12207 ns/op            3544 B/op         23 allocs/op\nBenchmarkGorillaMux_ParseParam            500000              5187 ns/op            1088 B/op         12 allocs/op\nBenchmarkHttpRouter_ParseParam           5000000               275 ns/op              64 B/op          1 allocs/op\nBenchmarkHttpTreeMux_ParseParam          1000000              1108 ns/op             352 B/op          3 allocs/op\nBenchmarkKocha_ParseParam                3000000               495 ns/op              56 B/op          3 allocs/op\nBenchmarkLARS_ParseParam                10000000               192 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_ParseParam               500000              4103 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_ParseParam               200000              9878 ns/op            1072 B/op         10 allocs/op\nBenchmarkPat_ParseParam                   500000              3657 ns/op            1120 B/op         17 allocs/op\nBenchmarkPossum_ParseParam               1000000              2084 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_ParseParam             1000000              1251 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_ParseParam                5000000               335 ns/op              48 B/op          1 allocs/op\nBenchmarkTango_ParseParam                1000000              1854 ns/op             280 B/op          8 allocs/op\nBenchmarkTigerTonic_ParseParam            500000              4582 ns/op            1008 B/op         17 allocs/op\nBenchmarkTraffic_ParseParam               200000              8125 ns/op            2248 B/op         23 allocs/op\nBenchmarkVulcan_ParseParam               1000000              1148 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_Parse2Params                3000000               539 ns/op              64 B/op          1 allocs/op\nBenchmarkBear_Parse2Params               1000000              1778 ns/op             496 B/op          5 allocs/op\nBenchmarkBeego_Parse2Params              1000000              2519 ns/op             368 B/op          4 allocs/op\nBenchmarkBone_Parse2Params               1000000              2596 ns/op             720 B/op          5 allocs/op\nBenchmarkDenco_Parse2Params              3000000               492 ns/op              64 B/op          1 allocs/op\nBenchmarkEcho_Parse2Params               3000000               484 ns/op              32 B/op          1 allocs/op\nBenchmarkGin_Parse2Params               10000000               193 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_Parse2Params         1000000              2575 ns/op             712 B/op          9 allocs/op\nBenchmarkGoji_Parse2Params               1000000              1373 ns/op             336 B/op          2 allocs/op\nBenchmarkGojiv2_Parse2Params              500000              2416 ns/op             960 B/op          8 allocs/op\nBenchmarkGoJsonRest_Parse2Params          300000              3452 ns/op             713 B/op         14 allocs/op\nBenchmarkGoRestful_Parse2Params           100000             17719 ns/op            6008 B/op         25 allocs/op\nBenchmarkGorillaMux_Parse2Params          300000              5102 ns/op            1088 B/op         11 allocs/op\nBenchmarkHttpRouter_Parse2Params         5000000               303 ns/op              64 B/op          1 allocs/op\nBenchmarkHttpTreeMux_Parse2Params        1000000              1372 ns/op             384 B/op          4 allocs/op\nBenchmarkKocha_Parse2Params              2000000               874 ns/op             128 B/op          5 allocs/op\nBenchmarkLARS_Parse2Params              10000000               192 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_Parse2Params             500000              3871 ns/op            1056 B/op         10 allocs/op\nBenchmarkMartini_Parse2Params             200000              9954 ns/op            1152 B/op         11 allocs/op\nBenchmarkPat_Parse2Params                 500000              4194 ns/op             832 B/op         17 allocs/op\nBenchmarkPossum_Parse2Params             1000000              2121 ns/op             560 B/op          6 allocs/op\nBenchmarkR2router_Parse2Params           1000000              1415 ns/op             432 B/op          5 allocs/op\nBenchmarkRivet_Parse2Params              3000000               457 ns/op              96 B/op          1 allocs/op\nBenchmarkTango_Parse2Params              1000000              1914 ns/op             312 B/op          8 allocs/op\nBenchmarkTigerTonic_Parse2Params          300000              6895 ns/op            1408 B/op         24 allocs/op\nBenchmarkTraffic_Parse2Params             200000              8317 ns/op            2040 B/op         22 allocs/op\nBenchmarkVulcan_Parse2Params             1000000              1274 ns/op              98 B/op          3 allocs/op\nBenchmarkAce_ParseAll                     200000             10401 ns/op             640 B/op         16 allocs/op\nBenchmarkBear_ParseAll                     50000             37743 ns/op            8928 B/op        110 allocs/op\nBenchmarkBeego_ParseAll                    20000             63193 ns/op            9568 B/op        104 allocs/op\nBenchmarkBone_ParseAll                     20000             61767 ns/op           14160 B/op        131 allocs/op\nBenchmarkDenco_ParseAll                   300000              7036 ns/op             928 B/op         16 allocs/op\nBenchmarkEcho_ParseAll                    200000             11824 ns/op             832 B/op         26 allocs/op\nBenchmarkGin_ParseAll                     300000              4199 ns/op               0 B/op          0 allocs/op\nBenchmarkGocraftWeb_ParseAll               30000             51758 ns/op           13728 B/op        181 allocs/op\nBenchmarkGoji_ParseAll                     50000             29614 ns/op            5376 B/op         32 allocs/op\nBenchmarkGojiv2_ParseAll                   20000             68676 ns/op           24464 B/op        199 allocs/op\nBenchmarkGoJsonRest_ParseAll               20000             76135 ns/op           13866 B/op        321 allocs/op\nBenchmarkGoRestful_ParseAll                 5000            389487 ns/op          110928 B/op        600 allocs/op\nBenchmarkGorillaMux_ParseAll               10000            221250 ns/op           24864 B/op        292 allocs/op\nBenchmarkHttpRouter_ParseAll              200000              6444 ns/op             640 B/op         16 allocs/op\nBenchmarkHttpTreeMux_ParseAll              50000             30702 ns/op            5728 B/op         51 allocs/op\nBenchmarkKocha_ParseAll                   200000             13712 ns/op            1112 B/op         54 allocs/op\nBenchmarkLARS_ParseAll                    300000              6925 ns/op               0 B/op          0 allocs/op\nBenchmarkMacaron_ParseAll                  20000             96278 ns/op           24576 B/op        250 allocs/op\nBenchmarkMartini_ParseAll                   5000            271352 ns/op           25072 B/op        253 allocs/op\nBenchmarkPat_ParseAll                      20000             74941 ns/op           17264 B/op        343 allocs/op\nBenchmarkPossum_ParseAll                   50000             39947 ns/op           10816 B/op         78 allocs/op\nBenchmarkR2router_ParseAll                 50000             42479 ns/op            8352 B/op        120 allocs/op\nBenchmarkRivet_ParseAll                   200000              7726 ns/op             912 B/op         16 allocs/op\nBenchmarkTango_ParseAll                    30000             50014 ns/op            7168 B/op        208 allocs/op\nBenchmarkTigerTonic_ParseAll               10000            106550 ns/op           19728 B/op        379 allocs/op\nBenchmarkTraffic_ParseAll                  10000            216037 ns/op           57776 B/op        642 allocs/op\nBenchmarkVulcan_ParseAll                   50000             34379 ns/op            2548 B/op         78 allocs/op\n```\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/CHANGELOG.md",
    "content": "\n### Gin 1.4.0\n\n- [NEW] Support for [Go Modules](https://github.com/golang/go/wiki/Modules)  [#1569](https://github.com/gin-gonic/gin/pull/1569)\n- [NEW] Refactor of form mapping multipart requesta [#1829](https://github.com/gin-gonic/gin/pull/1829)\n- [FIX] Truncate Latency precision in long running request [#1830](https://github.com/gin-gonic/gin/pull/1830)\n- [FIX] IsTerm flag should not be affected by DisableConsoleColor method. [#1802](https://github.com/gin-gonic/gin/pull/1802)\n- [NEW] Supporting file binding [#1264](https://github.com/gin-gonic/gin/pull/1264)\n- [NEW] Add support for mapping arrays [#1797](https://github.com/gin-gonic/gin/pull/1797)\n- [FIX] Readme updates [#1793](https://github.com/gin-gonic/gin/pull/1793) [#1788](https://github.com/gin-gonic/gin/pull/1788) [1789](https://github.com/gin-gonic/gin/pull/1789)\n- [FIX] StaticFS: Fixed Logging two log lines on 404.  [#1805](https://github.com/gin-gonic/gin/pull/1805), [#1804](https://github.com/gin-gonic/gin/pull/1804)\n- [NEW] Make context.Keys available as LogFormatterParams [#1779](https://github.com/gin-gonic/gin/pull/1779)\n- [NEW] Use internal/json for Marshal/Unmarshal [#1791](https://github.com/gin-gonic/gin/pull/1791)\n- [NEW] Support mapping time.Duration [#1794](https://github.com/gin-gonic/gin/pull/1794)\n- [NEW] Refactor form mappings [#1749](https://github.com/gin-gonic/gin/pull/1749)\n- [NEW] Added flag to context.Stream indicates if client disconnected in middle of stream [#1252](https://github.com/gin-gonic/gin/pull/1252)\n- [FIX] Moved [examples](https://github.com/gin-gonic/examples) to stand alone Repo [#1775](https://github.com/gin-gonic/gin/pull/1775)\n- [NEW] Extend context.File to allow for the content-dispositon attachments via a new method context.Attachment [#1260](https://github.com/gin-gonic/gin/pull/1260)\n- [FIX] Support HTTP content negotiation wildcards [#1112](https://github.com/gin-gonic/gin/pull/1112)\n- [NEW] Add prefix from X-Forwarded-Prefix in redirectTrailingSlash [#1238](https://github.com/gin-gonic/gin/pull/1238)\n- [FIX] context.Copy() race condition [#1020](https://github.com/gin-gonic/gin/pull/1020)\n- [NEW] Add context.HandlerNames() [#1729](https://github.com/gin-gonic/gin/pull/1729)\n- [FIX] Change color methods to public in the defaultLogger. [#1771](https://github.com/gin-gonic/gin/pull/1771)\n- [FIX] Update writeHeaders method to use http.Header.Set [#1722](https://github.com/gin-gonic/gin/pull/1722)\n- [NEW] Add response size to LogFormatterParams [#1752](https://github.com/gin-gonic/gin/pull/1752)\n- [NEW] Allow ignoring field on form mapping [#1733](https://github.com/gin-gonic/gin/pull/1733)\n- [NEW] Add a function to force color in console output. [#1724](https://github.com/gin-gonic/gin/pull/1724)\n- [FIX] Context.Next() - recheck len of handlers on every iteration. [#1745](https://github.com/gin-gonic/gin/pull/1745)\n- [FIX] Fix all errcheck warnings [#1739](https://github.com/gin-gonic/gin/pull/1739) [#1653](https://github.com/gin-gonic/gin/pull/1653)\n- [NEW] context: inherits context cancellation and deadline from http.Request context for Go>=1.7 [#1690](https://github.com/gin-gonic/gin/pull/1690)\n- [NEW] Binding for URL Params [#1694](https://github.com/gin-gonic/gin/pull/1694)\n- [NEW] Add LoggerWithFormatter method [#1677](https://github.com/gin-gonic/gin/pull/1677)\n- [FIX] CI testing updates [#1671](https://github.com/gin-gonic/gin/pull/1671) [#1670](https://github.com/gin-gonic/gin/pull/1670) [#1682](https://github.com/gin-gonic/gin/pull/1682) [#1669](https://github.com/gin-gonic/gin/pull/1669)\n- [FIX] StaticFS(): Send 404 when path does not exist [#1663](https://github.com/gin-gonic/gin/pull/1663)\n- [FIX] Handle nil body for JSON binding [#1638](https://github.com/gin-gonic/gin/pull/1638)\n- [FIX] Support bind uri param [#1612](https://github.com/gin-gonic/gin/pull/1612)\n- [FIX] recovery: fix issue with syscall import on google app engine [#1640](https://github.com/gin-gonic/gin/pull/1640)\n- [FIX] Make sure the debug log contains line breaks [#1650](https://github.com/gin-gonic/gin/pull/1650)\n- [FIX] Panic stack trace being printed during recovery of broken pipe [#1089](https://github.com/gin-gonic/gin/pull/1089) [#1259](https://github.com/gin-gonic/gin/pull/1259)\n- [NEW] RunFd method to run http.Server through a file descriptor [#1609](https://github.com/gin-gonic/gin/pull/1609)\n- [NEW] Yaml binding support [#1618](https://github.com/gin-gonic/gin/pull/1618)\n- [FIX] Pass MaxMultipartMemory when FormFile is called [#1600](https://github.com/gin-gonic/gin/pull/1600)\n- [FIX] LoadHTML* tests [#1559](https://github.com/gin-gonic/gin/pull/1559)\n- [FIX] Removed use of sync.pool from HandleContext [#1565](https://github.com/gin-gonic/gin/pull/1565)\n- [FIX] Format output log to os.Stderr [#1571](https://github.com/gin-gonic/gin/pull/1571)\n- [FIX] Make logger use a yellow background and a darkgray text for legibility [#1570](https://github.com/gin-gonic/gin/pull/1570)\n- [FIX] Remove sensitive request information from panic log. [#1370](https://github.com/gin-gonic/gin/pull/1370)\n- [FIX] log.Println() does not print timestamp [#829](https://github.com/gin-gonic/gin/pull/829) [#1560](https://github.com/gin-gonic/gin/pull/1560)\n- [NEW] Add PureJSON renderer [#694](https://github.com/gin-gonic/gin/pull/694)\n- [FIX] Add missing copyright and update if/else [#1497](https://github.com/gin-gonic/gin/pull/1497)\n- [FIX] Update msgpack usage [#1498](https://github.com/gin-gonic/gin/pull/1498)\n- [FIX] Use protobuf on render [#1496](https://github.com/gin-gonic/gin/pull/1496)\n- [FIX] Add support for Protobuf format response [#1479](https://github.com/gin-gonic/gin/pull/1479)\n- [NEW] Set default time format in form binding [#1487](https://github.com/gin-gonic/gin/pull/1487)\n- [FIX] Add BindXML and ShouldBindXML [#1485](https://github.com/gin-gonic/gin/pull/1485)\n- [NEW] Upgrade dependency libraries [#1491](https://github.com/gin-gonic/gin/pull/1491)\n\n\n### Gin 1.3.0\n\n- [NEW] Add [`func (*Context) QueryMap`](https://godoc.org/github.com/gin-gonic/gin#Context.QueryMap), [`func (*Context) GetQueryMap`](https://godoc.org/github.com/gin-gonic/gin#Context.GetQueryMap), [`func (*Context) PostFormMap`](https://godoc.org/github.com/gin-gonic/gin#Context.PostFormMap) and [`func (*Context) GetPostFormMap`](https://godoc.org/github.com/gin-gonic/gin#Context.GetPostFormMap) to support `type map[string]string` as query string or form parameters, see [#1383](https://github.com/gin-gonic/gin/pull/1383)\n- [NEW] Add [`func (*Context) AsciiJSON`](https://godoc.org/github.com/gin-gonic/gin#Context.AsciiJSON), see [#1358](https://github.com/gin-gonic/gin/pull/1358)\n- [NEW] Add `Pusher()` in [`type ResponseWriter`](https://godoc.org/github.com/gin-gonic/gin#ResponseWriter) for supporting http2 push, see [#1273](https://github.com/gin-gonic/gin/pull/1273)\n- [NEW] Add [`func (*Context) DataFromReader`](https://godoc.org/github.com/gin-gonic/gin#Context.DataFromReader) for serving dynamic data, see [#1304](https://github.com/gin-gonic/gin/pull/1304)\n- [NEW] Add [`func (*Context) ShouldBindBodyWith`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBindBodyWith) allowing to call binding multiple times, see [#1341](https://github.com/gin-gonic/gin/pull/1341)\n- [NEW] Support pointers in form binding, see [#1336](https://github.com/gin-gonic/gin/pull/1336)\n- [NEW] Add [`func (*Context) JSONP`](https://godoc.org/github.com/gin-gonic/gin#Context.JSONP), see [#1333](https://github.com/gin-gonic/gin/pull/1333)\n- [NEW] Support default value in form binding, see [#1138](https://github.com/gin-gonic/gin/pull/1138)\n- [NEW] Expose validator engine in [`type StructValidator`](https://godoc.org/github.com/gin-gonic/gin/binding#StructValidator), see [#1277](https://github.com/gin-gonic/gin/pull/1277)\n- [NEW] Add [`func (*Context) ShouldBind`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBind), [`func (*Context) ShouldBindQuery`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBindQuery) and [`func (*Context) ShouldBindJSON`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBindJSON), see [#1047](https://github.com/gin-gonic/gin/pull/1047)\n- [NEW] Add support for `time.Time` location in form binding, see [#1117](https://github.com/gin-gonic/gin/pull/1117)\n- [NEW] Add [`func (*Context) BindQuery`](https://godoc.org/github.com/gin-gonic/gin#Context.BindQuery), see [#1029](https://github.com/gin-gonic/gin/pull/1029)\n- [NEW] Make [jsonite](https://github.com/json-iterator/go) optional with build tags, see [#1026](https://github.com/gin-gonic/gin/pull/1026)\n- [NEW] Show query string in logger, see [#999](https://github.com/gin-gonic/gin/pull/999)\n- [NEW] Add [`func (*Context) SecureJSON`](https://godoc.org/github.com/gin-gonic/gin#Context.SecureJSON), see [#987](https://github.com/gin-gonic/gin/pull/987) and [#993](https://github.com/gin-gonic/gin/pull/993)\n- [DEPRECATE] `func (*Context) GetCookie` for [`func (*Context) Cookie`](https://godoc.org/github.com/gin-gonic/gin#Context.Cookie)\n- [FIX] Don't display color tags if [`func DisableConsoleColor`](https://godoc.org/github.com/gin-gonic/gin#DisableConsoleColor) called, see [#1072](https://github.com/gin-gonic/gin/pull/1072)\n- [FIX] Gin Mode `\"\"` when calling [`func Mode`](https://godoc.org/github.com/gin-gonic/gin#Mode) now returns `const DebugMode`, see [#1250](https://github.com/gin-gonic/gin/pull/1250)\n- [FIX] `Flush()` now doesn't overwrite `responseWriter` status code, see [#1460](https://github.com/gin-gonic/gin/pull/1460)\n\n### Gin 1.2.0\n\n- [NEW] Switch from godeps to govendor\n- [NEW] Add support for Let's Encrypt via gin-gonic/autotls\n- [NEW] Improve README examples and add extra at examples folder\n- [NEW] Improved support with App Engine\n- [NEW] Add custom template delimiters, see #860\n- [NEW] Add Template Func Maps, see #962\n- [NEW] Add \\*context.Handler(), see #928\n- [NEW] Add \\*context.GetRawData()\n- [NEW] Add \\*context.GetHeader() (request)\n- [NEW] Add \\*context.AbortWithStatusJSON() (JSON content type)\n- [NEW] Add \\*context.Keys type cast helpers\n- [NEW] Add \\*context.ShouldBindWith()\n- [NEW] Add \\*context.MustBindWith()\n- [NEW] Add \\*engine.SetFuncMap()\n- [DEPRECATE] On next release: \\*context.BindWith(), see #855\n- [FIX] Refactor render\n- [FIX] Reworked tests\n- [FIX] logger now supports cygwin\n- [FIX] Use X-Forwarded-For before X-Real-Ip\n- [FIX] time.Time binding (#904)\n\n### Gin 1.1.4\n\n- [NEW] Support google appengine for IsTerminal func\n\n### Gin 1.1.3\n\n- [FIX] Reverted Logger: skip ANSI color commands\n\n### Gin 1.1\n\n- [NEW] Implement QueryArray and PostArray methods \n- [NEW] Refactor GetQuery and GetPostForm \n- [NEW] Add contribution guide \n- [FIX] Corrected typos in README\n- [FIX] Removed additional Iota  \n- [FIX] Changed imports to gopkg instead of github in README (#733) \n- [FIX] Logger: skip ANSI color commands if output is not a tty\n\n### Gin 1.0rc2 (...)\n\n- [PERFORMANCE] Fast path for writing Content-Type.\n- [PERFORMANCE] Much faster 404 routing\n- [PERFORMANCE] Allocation optimizations\n- [PERFORMANCE] Faster root tree lookup\n- [PERFORMANCE] Zero overhead, String() and JSON() rendering.\n- [PERFORMANCE] Faster ClientIP parsing\n- [PERFORMANCE] Much faster SSE implementation\n- [NEW] Benchmarks suite\n- [NEW] Bind validation can be disabled and replaced with custom validators.\n- [NEW] More flexible HTML render\n- [NEW] Multipart and PostForm bindings\n- [NEW] Adds method to return all the registered routes\n- [NEW] Context.HandlerName() returns the main handler's name\n- [NEW] Adds Error.IsType() helper\n- [FIX] Binding multipart form\n- [FIX] Integration tests\n- [FIX] Crash when binding non struct object in Context.\n- [FIX] RunTLS() implementation\n- [FIX] Logger() unit tests\n- [FIX] Adds SetHTMLTemplate() warning\n- [FIX] Context.IsAborted()\n- [FIX] More unit tests\n- [FIX] JSON, XML, HTML renders accept custom content-types\n- [FIX] gin.AbortIndex is unexported\n- [FIX] Better approach to avoid directory listing in StaticFS()\n- [FIX] Context.ClientIP() always returns the IP with trimmed spaces.\n- [FIX] Better warning when running in debug mode.\n- [FIX] Google App Engine integration. debugPrint does not use os.Stdout\n- [FIX] Fixes integer overflow in error type\n- [FIX] Error implements the json.Marshaller interface\n- [FIX] MIT license in every file\n\n\n### Gin 1.0rc1 (May 22, 2015)\n\n- [PERFORMANCE] Zero allocation router\n- [PERFORMANCE] Faster JSON, XML and text rendering\n- [PERFORMANCE] Custom hand optimized HttpRouter for Gin\n- [PERFORMANCE] Misc code optimizations. Inlining, tail call optimizations\n- [NEW] Built-in support for golang.org/x/net/context\n- [NEW] Any(path, handler). Create a route that matches any path\n- [NEW] Refactored rendering pipeline (faster and static typeded)\n- [NEW] Refactored errors API\n- [NEW] IndentedJSON() prints pretty JSON\n- [NEW] Added gin.DefaultWriter\n- [NEW] UNIX socket support\n- [NEW] RouterGroup.BasePath is exposed\n- [NEW] JSON validation using go-validate-yourself (very powerful options)\n- [NEW] Completed suite of unit tests\n- [NEW] HTTP streaming with c.Stream()\n- [NEW] StaticFile() creates a router for serving just one file.\n- [NEW] StaticFS() has an option to disable directory listing.\n- [NEW] StaticFS() for serving static files through virtual filesystems\n- [NEW] Server-Sent Events native support\n- [NEW] WrapF() and WrapH() helpers for wrapping http.HandlerFunc and http.Handler\n- [NEW] Added LoggerWithWriter() middleware\n- [NEW] Added RecoveryWithWriter() middleware\n- [NEW] Added DefaultPostFormValue()\n- [NEW] Added DefaultFormValue()\n- [NEW] Added DefaultParamValue()\n- [FIX] BasicAuth() when using custom realm\n- [FIX] Bug when serving static files in nested routing group\n- [FIX] Redirect using built-in http.Redirect()\n- [FIX] Logger when printing the requested path\n- [FIX] Documentation typos\n- [FIX] Context.Engine renamed to Context.engine\n- [FIX] Better debugging messages\n- [FIX] ErrorLogger\n- [FIX] Debug HTTP render\n- [FIX] Refactored binding and render modules\n- [FIX] Refactored Context initialization\n- [FIX] Refactored BasicAuth()\n- [FIX] NoMethod/NoRoute handlers\n- [FIX] Hijacking http\n- [FIX] Better support for Google App Engine (using log instead of fmt)\n\n\n### Gin 0.6 (Mar 9, 2015)\n\n- [NEW] Support multipart/form-data\n- [NEW] NoMethod handler\n- [NEW] Validate sub structures\n- [NEW] Support for HTTP Realm Auth\n- [FIX] Unsigned integers in binding\n- [FIX] Improve color logger\n\n\n### Gin 0.5 (Feb 7, 2015)\n\n- [NEW] Content Negotiation\n- [FIX] Solved security bug that allow a client to spoof ip\n- [FIX] Fix unexported/ignored fields in binding\n\n\n### Gin 0.4 (Aug 21, 2014)\n\n- [NEW] Development mode\n- [NEW] Unit tests\n- [NEW] Add Content.Redirect()\n- [FIX] Deferring WriteHeader()\n- [FIX] Improved documentation for model binding\n\n\n### Gin 0.3 (Jul 18, 2014)\n\n- [PERFORMANCE] Normal log and error log are printed in the same call.\n- [PERFORMANCE] Improve performance of NoRouter()\n- [PERFORMANCE] Improve context's memory locality, reduce CPU cache faults.\n- [NEW] Flexible rendering API\n- [NEW] Add Context.File()\n- [NEW] Add shorcut RunTLS() for http.ListenAndServeTLS\n- [FIX] Rename NotFound404() to NoRoute()\n- [FIX] Errors in context are purged\n- [FIX] Adds HEAD method in Static file serving\n- [FIX] Refactors Static() file serving\n- [FIX] Using keyed initialization to fix app-engine integration\n- [FIX] Can't unmarshal JSON array, #63\n- [FIX] Renaming Context.Req to Context.Request\n- [FIX] Check application/x-www-form-urlencoded when parsing form\n\n\n### Gin 0.2b (Jul 08, 2014)\n- [PERFORMANCE] Using sync.Pool to allocatio/gc overhead\n- [NEW] Travis CI integration\n- [NEW] Completely new logger\n- [NEW] New API for serving static files. gin.Static()\n- [NEW] gin.H() can be serialized into XML\n- [NEW] Typed errors. Errors can be typed. Internet/external/custom.\n- [NEW] Support for Godeps\n- [NEW] Travis/Godocs badges in README\n- [NEW] New Bind() and BindWith() methods for parsing request body.\n- [NEW] Add Content.Copy()\n- [NEW] Add context.LastError()\n- [NEW] Add shorcut for OPTIONS HTTP method\n- [FIX] Tons of README fixes\n- [FIX] Header is written before body\n- [FIX] BasicAuth() and changes API a little bit\n- [FIX] Recovery() middleware only prints panics\n- [FIX] Context.Get() does not panic anymore. Use MustGet() instead.\n- [FIX] Multiple http.WriteHeader() in NotFound handlers\n- [FIX] Engine.Run() panics if http server can't be setted up\n- [FIX] Crash when route path doesn't start with '/'\n- [FIX] Do not update header when status code is negative\n- [FIX] Setting response headers before calling WriteHeader in context.String()\n- [FIX] Add MIT license\n- [FIX] Changes behaviour of ErrorLogger() and Logger()\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at teamgingonic@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/CONTRIBUTING.md",
    "content": "## Contributing \n\n- With issues:\n  - Use the search tool before opening a new issue.\n  - Please provide source code and commit sha if you found a bug.\n  - Review existing issues and provide feedback or react to them.\n\n- With pull requests:\n  - Open your pull request against `master`\n  - Your pull request should have no more than two commits, if not you should squash them.\n  - It should pass all tests in the available continuous integrations systems such as TravisCI.\n  - You should add/modify tests to cover your proposed code changes.\n  - If your pull request contains a new feature, please document it on the README.\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Manuel Martínez-Almeida\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/Makefile",
    "content": "GO ?= go\nGOFMT ?= gofmt \"-s\"\nPACKAGES ?= $(shell $(GO) list ./... | grep -v /vendor/)\nVETPACKAGES ?= $(shell $(GO) list ./... | grep -v /vendor/ | grep -v /examples/)\nGOFILES := $(shell find . -name \"*.go\" -type f -not -path \"./vendor/*\")\nTESTFOLDER := $(shell $(GO) list ./... | grep -E 'gin$$|binding$$|render$$' | grep -v examples)\n\nall: install\n\ninstall: deps\n\tgovendor sync\n\n.PHONY: test\ntest:\n\techo \"mode: count\" > coverage.out\n\tfor d in $(TESTFOLDER); do \\\n\t\t$(GO) test -v -covermode=count -coverprofile=profile.out $$d > tmp.out; \\\n\t\tcat tmp.out; \\\n\t\tif grep -q \"^--- FAIL\" tmp.out; then \\\n\t\t\trm tmp.out; \\\n\t\t\texit 1; \\\n\t\telif grep -q \"build failed\" tmp.out; then \\\n\t\t\trm tmp.out; \\\n\t\t\texit 1; \\\n\t\telif grep -q \"setup failed\" tmp.out; then \\\n\t\t\trm tmp.out; \\\n\t\t\texit 1; \\\n\t\tfi; \\\n\t\tif [ -f profile.out ]; then \\\n\t\t\tcat profile.out | grep -v \"mode:\" >> coverage.out; \\\n\t\t\trm profile.out; \\\n\t\tfi; \\\n\tdone\n\n.PHONY: fmt\nfmt:\n\t$(GOFMT) -w $(GOFILES)\n\n.PHONY: fmt-check\nfmt-check:\n\t@diff=$$($(GOFMT) -d $(GOFILES)); \\\n\tif [ -n \"$$diff\" ]; then \\\n\t\techo \"Please run 'make fmt' and commit the result:\"; \\\n\t\techo \"$${diff}\"; \\\n\t\texit 1; \\\n\tfi;\n\nvet:\n\t$(GO) vet $(VETPACKAGES)\n\ndeps:\n\t@hash govendor > /dev/null 2>&1; if [ $$? -ne 0 ]; then \\\n\t\t$(GO) get -u github.com/kardianos/govendor; \\\n\tfi\n\n.PHONY: lint\nlint:\n\t@hash golint > /dev/null 2>&1; if [ $$? -ne 0 ]; then \\\n\t\t$(GO) get -u golang.org/x/lint/golint; \\\n\tfi\n\tfor PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;\n\n.PHONY: misspell-check\nmisspell-check:\n\t@hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \\\n\t\t$(GO) get -u github.com/client9/misspell/cmd/misspell; \\\n\tfi\n\tmisspell -error $(GOFILES)\n\n.PHONY: misspell\nmisspell:\n\t@hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \\\n\t\t$(GO) get -u github.com/client9/misspell/cmd/misspell; \\\n\tfi\n\tmisspell -w $(GOFILES)\n\n.PHONY: tools\ntools:\n\tgo install golang.org/x/lint/golint; \\\n\tgo install github.com/client9/misspell/cmd/misspell;\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/README.md",
    "content": "# Gin Web Framework\n\n<img align=\"right\" width=\"159px\" src=\"https://raw.githubusercontent.com/gin-gonic/logo/master/color.png\">\n\n[![Build Status](https://travis-ci.org/gin-gonic/gin.svg)](https://travis-ci.org/gin-gonic/gin)\n[![codecov](https://codecov.io/gh/gin-gonic/gin/branch/master/graph/badge.svg)](https://codecov.io/gh/gin-gonic/gin)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gin-gonic/gin)](https://goreportcard.com/report/github.com/gin-gonic/gin)\n[![GoDoc](https://godoc.org/github.com/gin-gonic/gin?status.svg)](https://godoc.org/github.com/gin-gonic/gin)\n[![Join the chat at https://gitter.im/gin-gonic/gin](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/gin-gonic/gin?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Sourcegraph](https://sourcegraph.com/github.com/gin-gonic/gin/-/badge.svg)](https://sourcegraph.com/github.com/gin-gonic/gin?badge)\n[![Open Source Helpers](https://www.codetriage.com/gin-gonic/gin/badges/users.svg)](https://www.codetriage.com/gin-gonic/gin)\n[![Release](https://img.shields.io/github/release/gin-gonic/gin.svg?style=flat-square)](https://github.com/gin-gonic/gin/releases)\n\nGin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to [httprouter](https://github.com/julienschmidt/httprouter). If you need performance and good productivity, you will love Gin.\n\n\n## Contents\n\n- [Installation](#installation)\n- [Prerequisite](#prerequisite)\n- [Quick start](#quick-start)\n- [Benchmarks](#benchmarks)\n- [Gin v1.stable](#gin-v1-stable)\n- [Build with jsoniter](#build-with-jsoniter)\n- [API Examples](#api-examples)\n    - [Using GET,POST,PUT,PATCH,DELETE and OPTIONS](#using-get-post-put-patch-delete-and-options)\n    - [Parameters in path](#parameters-in-path)\n    - [Querystring parameters](#querystring-parameters)\n    - [Multipart/Urlencoded Form](#multiparturlencoded-form)\n    - [Another example: query + post form](#another-example-query--post-form)\n    - [Map as querystring or postform parameters](#map-as-querystring-or-postform-parameters)\n    - [Upload files](#upload-files)\n    - [Grouping routes](#grouping-routes)\n    - [Blank Gin without middleware by default](#blank-gin-without-middleware-by-default)\n    - [Using middleware](#using-middleware)\n    - [How to write log file](#how-to-write-log-file)\n    - [Custom Log Format](#custom-log-format)\n    - [Model binding and validation](#model-binding-and-validation)\n    - [Custom Validators](#custom-validators)\n    - [Only Bind Query String](#only-bind-query-string)\n    - [Bind Query String or Post Data](#bind-query-string-or-post-data)\n    - [Bind Uri](#bind-uri)\n    - [Bind HTML checkboxes](#bind-html-checkboxes)\n    - [Multipart/Urlencoded binding](#multiparturlencoded-binding)\n    - [XML, JSON, YAML and ProtoBuf rendering](#xml-json-yaml-and-protobuf-rendering)\n    - [JSONP rendering](#jsonp)\n    - [Serving static files](#serving-static-files)\n    - [Serving data from reader](#serving-data-from-reader)\n    - [HTML rendering](#html-rendering)\n    - [Multitemplate](#multitemplate)\n    - [Redirects](#redirects)\n    - [Custom Middleware](#custom-middleware)\n    - [Using BasicAuth() middleware](#using-basicauth-middleware)\n    - [Goroutines inside a middleware](#goroutines-inside-a-middleware)\n    - [Custom HTTP configuration](#custom-http-configuration)\n    - [Support Let's Encrypt](#support-lets-encrypt)\n    - [Run multiple service using Gin](#run-multiple-service-using-gin)\n    - [Graceful restart or stop](#graceful-restart-or-stop)\n    - [Build a single binary with templates](#build-a-single-binary-with-templates)\n    - [Bind form-data request with custom struct](#bind-form-data-request-with-custom-struct)\n    - [Try to bind body into different structs](#try-to-bind-body-into-different-structs)\n    - [http2 server push](#http2-server-push)\n    - [Define format for the log of routes](#define-format-for-the-log-of-routes)\n    - [Set and get a cookie](#set-and-get-a-cookie)\n- [Testing](#testing)\n- [Users](#users)\n\n## Installation\n\nTo install Gin package, you need to install Go and set your Go workspace first.\n\n1. The first need [Go](https://golang.org/) installed (**version 1.8+ is required**), then you can use the below Go command to install Gin.\n\n```sh\n$ go get -u github.com/gin-gonic/gin\n```\n\n2. Import it in your code:\n\n```go\nimport \"github.com/gin-gonic/gin\"\n```\n\n3. (Optional) Import `net/http`. This is required for example if using constants such as `http.StatusOK`.\n\n```go\nimport \"net/http\"\n```\n\n### Use a vendor tool like [Govendor](https://github.com/kardianos/govendor)\n\n1. `go get` govendor\n\n```sh\n$ go get github.com/kardianos/govendor\n```\n2. Create your project folder and `cd` inside\n\n```sh\n$ mkdir -p $GOPATH/src/github.com/myusername/project && cd \"$_\"\n```\n\n3. Vendor init your project and add gin\n\n```sh\n$ govendor init\n$ govendor fetch github.com/gin-gonic/gin@v1.3\n```\n\n4. Copy a starting template inside your project\n\n```sh\n$ curl https://raw.githubusercontent.com/gin-gonic/examples/master/basic/main.go > main.go\n```\n\n5. Run your project\n\n```sh\n$ go run main.go\n```\n\n## Prerequisite\n\nNow Gin requires Go 1.6 or later and Go 1.7 will be required soon.\n\n## Quick start\n \n```sh\n# assume the following codes in example.go file\n$ cat example.go\n```\n\n```go\npackage main\n\nimport \"github.com/gin-gonic/gin\"\n\nfunc main() {\n\tr := gin.Default()\n\tr.GET(\"/ping\", func(c *gin.Context) {\n\t\tc.JSON(200, gin.H{\n\t\t\t\"message\": \"pong\",\n\t\t})\n\t})\n\tr.Run() // listen and serve on 0.0.0.0:8080\n}\n```\n\n```\n# run example.go and visit 0.0.0.0:8080/ping on browser\n$ go run example.go\n```\n\n## Benchmarks\n\nGin uses a custom version of [HttpRouter](https://github.com/julienschmidt/httprouter)\n\n[See all benchmarks](/BENCHMARKS.md)\n\nBenchmark name                              | (1)        | (2)         | (3) \t\t    | (4)\n--------------------------------------------|-----------:|------------:|-----------:|---------:\n**BenchmarkGin_GithubAll**                  | **30000**  |  **48375**  |     **0**  |   **0**\nBenchmarkAce_GithubAll                      |   10000    |   134059    |   13792    |   167\nBenchmarkBear_GithubAll                     |    5000    |   534445    |   86448    |   943\nBenchmarkBeego_GithubAll                    |    3000    |   592444    |   74705    |   812\nBenchmarkBone_GithubAll                     |     200    |  6957308    |  698784    |  8453\nBenchmarkDenco_GithubAll                    |   10000    |   158819    |   20224    |   167\nBenchmarkEcho_GithubAll                     |   10000    |   154700    |    6496    |   203\nBenchmarkGocraftWeb_GithubAll               |    3000    |   570806    |  131656    |  1686\nBenchmarkGoji_GithubAll                     |    2000    |   818034    |   56112    |   334\nBenchmarkGojiv2_GithubAll                   |    2000    |  1213973    |  274768    |  3712\nBenchmarkGoJsonRest_GithubAll               |    2000    |   785796    |  134371    |  2737\nBenchmarkGoRestful_GithubAll                |     300    |  5238188    |  689672    |  4519\nBenchmarkGorillaMux_GithubAll               |     100    | 10257726    |  211840    |  2272\nBenchmarkHttpRouter_GithubAll               |   20000    |   105414    |   13792    |   167\nBenchmarkHttpTreeMux_GithubAll              |   10000    |   319934    |   65856    |   671\nBenchmarkKocha_GithubAll                    |   10000    |   209442    |   23304    |   843\nBenchmarkLARS_GithubAll                     |   20000    |    62565    |       0    |     0\nBenchmarkMacaron_GithubAll                  |    2000    |  1161270    |  204194    |  2000\nBenchmarkMartini_GithubAll                  |     200    |  9991713    |  226549    |  2325\nBenchmarkPat_GithubAll                      |     200    |  5590793    | 1499568    | 27435\nBenchmarkPossum_GithubAll                   |   10000    |   319768    |   84448    |   609\nBenchmarkR2router_GithubAll                 |   10000    |   305134    |   77328    |   979\nBenchmarkRivet_GithubAll                    |   10000    |   132134    |   16272    |   167\nBenchmarkTango_GithubAll                    |    3000    |   552754    |   63826    |  1618\nBenchmarkTigerTonic_GithubAll               |    1000    |  1439483    |  239104    |  5374\nBenchmarkTraffic_GithubAll                  |     100    | 11383067    | 2659329    | 21848\nBenchmarkVulcan_GithubAll                   |    5000    |   394253    |   19894    |   609\n\n- (1): Total Repetitions achieved in constant time, higher means more confident result\n- (2): Single Repetition Duration (ns/op), lower is better\n- (3): Heap Memory (B/op), lower is better\n- (4): Average Allocations per Repetition (allocs/op), lower is better\n\n## Gin v1. stable\n\n- [x] Zero allocation router.\n- [x] Still the fastest http router and framework. From routing to writing.\n- [x] Complete suite of unit tests\n- [x] Battle tested\n- [x] API frozen, new releases will not break your code.\n\n## Build with [jsoniter](https://github.com/json-iterator/go)\n\nGin uses `encoding/json` as default json package but you can change to [jsoniter](https://github.com/json-iterator/go) by build from other tags.\n\n```sh\n$ go build -tags=jsoniter .\n```\n\n## API Examples\n\nYou can find a number of ready-to-run examples at [Gin examples repository](https://github.com/gin-gonic/examples).\n\n### Using GET, POST, PUT, PATCH, DELETE and OPTIONS\n\n```go\nfunc main() {\n\t// Creates a gin router with default middleware:\n\t// logger and recovery (crash-free) middleware\n\trouter := gin.Default()\n\n\trouter.GET(\"/someGet\", getting)\n\trouter.POST(\"/somePost\", posting)\n\trouter.PUT(\"/somePut\", putting)\n\trouter.DELETE(\"/someDelete\", deleting)\n\trouter.PATCH(\"/somePatch\", patching)\n\trouter.HEAD(\"/someHead\", head)\n\trouter.OPTIONS(\"/someOptions\", options)\n\n\t// By default it serves on :8080 unless a\n\t// PORT environment variable was defined.\n\trouter.Run()\n\t// router.Run(\":3000\") for a hard coded port\n}\n```\n\n### Parameters in path\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\t// This handler will match /user/john but will not match /user/ or /user\n\trouter.GET(\"/user/:name\", func(c *gin.Context) {\n\t\tname := c.Param(\"name\")\n\t\tc.String(http.StatusOK, \"Hello %s\", name)\n\t})\n\n\t// However, this one will match /user/john/ and also /user/john/send\n\t// If no other routers match /user/john, it will redirect to /user/john/\n\trouter.GET(\"/user/:name/*action\", func(c *gin.Context) {\n\t\tname := c.Param(\"name\")\n\t\taction := c.Param(\"action\")\n\t\tmessage := name + \" is \" + action\n\t\tc.String(http.StatusOK, message)\n\t})\n\n\trouter.Run(\":8080\")\n}\n```\n\n### Querystring parameters\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\t// Query string parameters are parsed using the existing underlying request object.\n\t// The request responds to a url matching:  /welcome?firstname=Jane&lastname=Doe\n\trouter.GET(\"/welcome\", func(c *gin.Context) {\n\t\tfirstname := c.DefaultQuery(\"firstname\", \"Guest\")\n\t\tlastname := c.Query(\"lastname\") // shortcut for c.Request.URL.Query().Get(\"lastname\")\n\n\t\tc.String(http.StatusOK, \"Hello %s %s\", firstname, lastname)\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\n### Multipart/Urlencoded Form\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\trouter.POST(\"/form_post\", func(c *gin.Context) {\n\t\tmessage := c.PostForm(\"message\")\n\t\tnick := c.DefaultPostForm(\"nick\", \"anonymous\")\n\n\t\tc.JSON(200, gin.H{\n\t\t\t\"status\":  \"posted\",\n\t\t\t\"message\": message,\n\t\t\t\"nick\":    nick,\n\t\t})\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\n### Another example: query + post form\n\n```\nPOST /post?id=1234&page=1 HTTP/1.1\nContent-Type: application/x-www-form-urlencoded\n\nname=manu&message=this_is_great\n```\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\trouter.POST(\"/post\", func(c *gin.Context) {\n\n\t\tid := c.Query(\"id\")\n\t\tpage := c.DefaultQuery(\"page\", \"0\")\n\t\tname := c.PostForm(\"name\")\n\t\tmessage := c.PostForm(\"message\")\n\n\t\tfmt.Printf(\"id: %s; page: %s; name: %s; message: %s\", id, page, name, message)\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\n```\nid: 1234; page: 1; name: manu; message: this_is_great\n```\n\n### Map as querystring or postform parameters\n\n```\nPOST /post?ids[a]=1234&ids[b]=hello HTTP/1.1\nContent-Type: application/x-www-form-urlencoded\n\nnames[first]=thinkerou&names[second]=tianou\n```\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\trouter.POST(\"/post\", func(c *gin.Context) {\n\n\t\tids := c.QueryMap(\"ids\")\n\t\tnames := c.PostFormMap(\"names\")\n\n\t\tfmt.Printf(\"ids: %v; names: %v\", ids, names)\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\n```\nids: map[b:hello a:1234], names: map[second:tianou first:thinkerou]\n```\n\n### Upload files\n\n#### Single file\n\nReferences issue [#774](https://github.com/gin-gonic/gin/issues/774) and detail [example code](https://github.com/gin-gonic/examples/tree/master/upload-file/single).\n\n`file.Filename` **SHOULD NOT** be trusted. See [`Content-Disposition` on MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#Directives) and [#1693](https://github.com/gin-gonic/gin/issues/1693)\n\n> The filename is always optional and must not be used blindly by the application: path information should be stripped, and conversion to the server file system rules should be done.\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\t// Set a lower memory limit for multipart forms (default is 32 MiB)\n\t// router.MaxMultipartMemory = 8 << 20  // 8 MiB\n\trouter.POST(\"/upload\", func(c *gin.Context) {\n\t\t// single file\n\t\tfile, _ := c.FormFile(\"file\")\n\t\tlog.Println(file.Filename)\n\n\t\t// Upload the file to specific dst.\n\t\t// c.SaveUploadedFile(file, dst)\n\n\t\tc.String(http.StatusOK, fmt.Sprintf(\"'%s' uploaded!\", file.Filename))\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\nHow to `curl`:\n\n```bash\ncurl -X POST http://localhost:8080/upload \\\n  -F \"file=@/Users/appleboy/test.zip\" \\\n  -H \"Content-Type: multipart/form-data\"\n```\n\n#### Multiple files\n\nSee the detail [example code](https://github.com/gin-gonic/examples/tree/master/upload-file/multiple).\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\t// Set a lower memory limit for multipart forms (default is 32 MiB)\n\t// router.MaxMultipartMemory = 8 << 20  // 8 MiB\n\trouter.POST(\"/upload\", func(c *gin.Context) {\n\t\t// Multipart form\n\t\tform, _ := c.MultipartForm()\n\t\tfiles := form.File[\"upload[]\"]\n\n\t\tfor _, file := range files {\n\t\t\tlog.Println(file.Filename)\n\n\t\t\t// Upload the file to specific dst.\n\t\t\t// c.SaveUploadedFile(file, dst)\n\t\t}\n\t\tc.String(http.StatusOK, fmt.Sprintf(\"%d files uploaded!\", len(files)))\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\nHow to `curl`:\n\n```bash\ncurl -X POST http://localhost:8080/upload \\\n  -F \"upload[]=@/Users/appleboy/test1.zip\" \\\n  -F \"upload[]=@/Users/appleboy/test2.zip\" \\\n  -H \"Content-Type: multipart/form-data\"\n```\n\n### Grouping routes\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\t// Simple group: v1\n\tv1 := router.Group(\"/v1\")\n\t{\n\t\tv1.POST(\"/login\", loginEndpoint)\n\t\tv1.POST(\"/submit\", submitEndpoint)\n\t\tv1.POST(\"/read\", readEndpoint)\n\t}\n\n\t// Simple group: v2\n\tv2 := router.Group(\"/v2\")\n\t{\n\t\tv2.POST(\"/login\", loginEndpoint)\n\t\tv2.POST(\"/submit\", submitEndpoint)\n\t\tv2.POST(\"/read\", readEndpoint)\n\t}\n\n\trouter.Run(\":8080\")\n}\n```\n\n### Blank Gin without middleware by default\n\nUse\n\n```go\nr := gin.New()\n```\n\ninstead of\n\n```go\n// Default With the Logger and Recovery middleware already attached\nr := gin.Default()\n```\n\n\n### Using middleware\n```go\nfunc main() {\n\t// Creates a router without any middleware by default\n\tr := gin.New()\n\n\t// Global middleware\n\t// Logger middleware will write the logs to gin.DefaultWriter even if you set with GIN_MODE=release.\n\t// By default gin.DefaultWriter = os.Stdout\n\tr.Use(gin.Logger())\n\n\t// Recovery middleware recovers from any panics and writes a 500 if there was one.\n\tr.Use(gin.Recovery())\n\n\t// Per route middleware, you can add as many as you desire.\n\tr.GET(\"/benchmark\", MyBenchLogger(), benchEndpoint)\n\n\t// Authorization group\n\t// authorized := r.Group(\"/\", AuthRequired())\n\t// exactly the same as:\n\tauthorized := r.Group(\"/\")\n\t// per group middleware! in this case we use the custom created\n\t// AuthRequired() middleware just in the \"authorized\" group.\n\tauthorized.Use(AuthRequired())\n\t{\n\t\tauthorized.POST(\"/login\", loginEndpoint)\n\t\tauthorized.POST(\"/submit\", submitEndpoint)\n\t\tauthorized.POST(\"/read\", readEndpoint)\n\n\t\t// nested group\n\t\ttesting := authorized.Group(\"testing\")\n\t\ttesting.GET(\"/analytics\", analyticsEndpoint)\n\t}\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n### How to write log file\n```go\nfunc main() {\n    // Disable Console Color, you don't need console color when writing the logs to file.\n    gin.DisableConsoleColor()\n\n    // Logging to a file.\n    f, _ := os.Create(\"gin.log\")\n    gin.DefaultWriter = io.MultiWriter(f)\n\n    // Use the following code if you need to write the logs to file and console at the same time.\n    // gin.DefaultWriter = io.MultiWriter(f, os.Stdout)\n\n    router := gin.Default()\n    router.GET(\"/ping\", func(c *gin.Context) {\n        c.String(200, \"pong\")\n    })\n\n    router.Run(\":8080\")\n}\n```\n\n### Custom Log Format\n```go\nfunc main() {\n\trouter := gin.New()\n\n\t// LoggerWithFormatter middleware will write the logs to gin.DefaultWriter\n\t// By default gin.DefaultWriter = os.Stdout\n\trouter.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {\n\n\t\t// your custom format\n\t\treturn fmt.Sprintf(\"%s - [%s] \\\"%s %s %s %d %s \\\"%s\\\" %s\\\"\\n\",\n\t\t\t\tparam.ClientIP,\n\t\t\t\tparam.TimeStamp.Format(time.RFC1123),\n\t\t\t\tparam.Method,\n\t\t\t\tparam.Path,\n\t\t\t\tparam.Request.Proto,\n\t\t\t\tparam.StatusCode,\n\t\t\t\tparam.Latency,\n\t\t\t\tparam.Request.UserAgent(),\n\t\t\t\tparam.ErrorMessage,\n\t\t)\n\t}))\n\trouter.Use(gin.Recovery())\n\n\trouter.GET(\"/ping\", func(c *gin.Context) {\n\t\tc.String(200, \"pong\")\n\t})\n\n\trouter.Run(\":8080\")\n}\n```\n\n**Sample Output**\n```\n::1 - [Fri, 07 Dec 2018 17:04:38 JST] \"GET /ping HTTP/1.1 200 122.767µs \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36\" \"\n```\n\n### Controlling Log output coloring \n\nBy default, logs output on console should be colorized depending on the detected TTY.\n\nNever colorize logs: \n\n```go\nfunc main() {\n    // Disable log's color\n    gin.DisableConsoleColor()\n    \n    // Creates a gin router with default middleware:\n    // logger and recovery (crash-free) middleware\n    router := gin.Default()\n    \n    router.GET(\"/ping\", func(c *gin.Context) {\n        c.String(200, \"pong\")\n    })\n    \n    router.Run(\":8080\")\n}\n```\n\nAlways colorize logs: \n\n```go\nfunc main() {\n    // Force log's color\n    gin.ForceConsoleColor()\n    \n    // Creates a gin router with default middleware:\n    // logger and recovery (crash-free) middleware\n    router := gin.Default()\n    \n    router.GET(\"/ping\", func(c *gin.Context) {\n        c.String(200, \"pong\")\n    })\n    \n    router.Run(\":8080\")\n}\n```\n\n### Model binding and validation\n\nTo bind a request body into a type, use model binding. We currently support binding of JSON, XML, YAML and standard form values (foo=bar&boo=baz).\n\nGin uses [**go-playground/validator.v8**](https://github.com/go-playground/validator) for validation. Check the full docs on tags usage [here](http://godoc.org/gopkg.in/go-playground/validator.v8#hdr-Baked_In_Validators_and_Tags).\n\nNote that you need to set the corresponding binding tag on all fields you want to bind. For example, when binding from JSON, set `json:\"fieldname\"`.\n\nAlso, Gin provides two sets of methods for binding:\n- **Type** - Must bind\n  - **Methods** - `Bind`, `BindJSON`, `BindXML`, `BindQuery`, `BindYAML`\n  - **Behavior** - These methods use `MustBindWith` under the hood. If there is a binding error, the request is aborted with `c.AbortWithError(400, err).SetType(ErrorTypeBind)`. This sets the response status code to 400 and the `Content-Type` header is set to `text/plain; charset=utf-8`. Note that if you try to set the response code after this, it will result in a warning `[GIN-debug] [WARNING] Headers were already written. Wanted to override status code 400 with 422`. If you wish to have greater control over the behavior, consider using the `ShouldBind` equivalent method.\n- **Type** - Should bind\n  - **Methods** - `ShouldBind`, `ShouldBindJSON`, `ShouldBindXML`, `ShouldBindQuery`, `ShouldBindYAML`\n  - **Behavior** - These methods use `ShouldBindWith` under the hood. If there is a binding error, the error is returned and it is the developer's responsibility to handle the request and error appropriately.\n\nWhen using the Bind-method, Gin tries to infer the binder depending on the Content-Type header. If you are sure what you are binding, you can use `MustBindWith` or `ShouldBindWith`.\n\nYou can also specify that specific fields are required. If a field is decorated with `binding:\"required\"` and has a empty value when binding, an error will be returned.\n\n```go\n// Binding from JSON\ntype Login struct {\n\tUser     string `form:\"user\" json:\"user\" xml:\"user\"  binding:\"required\"`\n\tPassword string `form:\"password\" json:\"password\" xml:\"password\" binding:\"required\"`\n}\n\nfunc main() {\n\trouter := gin.Default()\n\n\t// Example for binding JSON ({\"user\": \"manu\", \"password\": \"123\"})\n\trouter.POST(\"/loginJSON\", func(c *gin.Context) {\n\t\tvar json Login\n\t\tif err := c.ShouldBindJSON(&json); err != nil {\n\t\t\tc.JSON(http.StatusBadRequest, gin.H{\"error\": err.Error()})\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif json.User != \"manu\" || json.Password != \"123\" {\n\t\t\tc.JSON(http.StatusUnauthorized, gin.H{\"status\": \"unauthorized\"})\n\t\t\treturn\n\t\t} \n\t\t\n\t\tc.JSON(http.StatusOK, gin.H{\"status\": \"you are logged in\"})\n\t})\n\n\t// Example for binding XML (\n\t//\t<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\t//\t<root>\n\t//\t\t<user>user</user>\n\t//\t\t<password>123</password>\n\t//\t</root>)\n\trouter.POST(\"/loginXML\", func(c *gin.Context) {\n\t\tvar xml Login\n\t\tif err := c.ShouldBindXML(&xml); err != nil {\n\t\t\tc.JSON(http.StatusBadRequest, gin.H{\"error\": err.Error()})\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif xml.User != \"manu\" || xml.Password != \"123\" {\n\t\t\tc.JSON(http.StatusUnauthorized, gin.H{\"status\": \"unauthorized\"})\n\t\t\treturn\n\t\t} \n\t\t\n\t\tc.JSON(http.StatusOK, gin.H{\"status\": \"you are logged in\"})\n\t})\n\n\t// Example for binding a HTML form (user=manu&password=123)\n\trouter.POST(\"/loginForm\", func(c *gin.Context) {\n\t\tvar form Login\n\t\t// This will infer what binder to use depending on the content-type header.\n\t\tif err := c.ShouldBind(&form); err != nil {\n\t\t\tc.JSON(http.StatusBadRequest, gin.H{\"error\": err.Error()})\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif form.User != \"manu\" || form.Password != \"123\" {\n\t\t\tc.JSON(http.StatusUnauthorized, gin.H{\"status\": \"unauthorized\"})\n\t\t\treturn\n\t\t} \n\t\t\n\t\tc.JSON(http.StatusOK, gin.H{\"status\": \"you are logged in\"})\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\trouter.Run(\":8080\")\n}\n```\n\n**Sample request**\n```shell\n$ curl -v -X POST \\\n  http://localhost:8080/loginJSON \\\n  -H 'content-type: application/json' \\\n  -d '{ \"user\": \"manu\" }'\n> POST /loginJSON HTTP/1.1\n> Host: localhost:8080\n> User-Agent: curl/7.51.0\n> Accept: */*\n> content-type: application/json\n> Content-Length: 18\n>\n* upload completely sent off: 18 out of 18 bytes\n< HTTP/1.1 400 Bad Request\n< Content-Type: application/json; charset=utf-8\n< Date: Fri, 04 Aug 2017 03:51:31 GMT\n< Content-Length: 100\n<\n{\"error\":\"Key: 'Login.Password' Error:Field validation for 'Password' failed on the 'required' tag\"}\n```\n\n**Skip validate**\n\nWhen running the above example using the above the `curl` command, it returns error. Because the example use `binding:\"required\"` for `Password`. If use `binding:\"-\"` for `Password`, then it will not return error when running the above example again.\n\n### Custom Validators\n\nIt is also possible to register custom validators. See the [example code](https://github.com/gin-gonic/examples/tree/master/custom-validation/server.go).\n\n```go\npackage main\n\nimport (\n\t\"net/http\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/gin-gonic/gin/binding\"\n\t\"gopkg.in/go-playground/validator.v8\"\n)\n\n// Booking contains binded and validated data.\ntype Booking struct {\n\tCheckIn  time.Time `form:\"check_in\" binding:\"required,bookabledate\" time_format:\"2006-01-02\"`\n\tCheckOut time.Time `form:\"check_out\" binding:\"required,gtfield=CheckIn\" time_format:\"2006-01-02\"`\n}\n\nfunc bookableDate(\n\tv *validator.Validate, topStruct reflect.Value, currentStructOrField reflect.Value,\n\tfield reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string,\n) bool {\n\tif date, ok := field.Interface().(time.Time); ok {\n\t\ttoday := time.Now()\n\t\tif today.Year() > date.Year() || today.YearDay() > date.YearDay() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc main() {\n\troute := gin.Default()\n\n\tif v, ok := binding.Validator.Engine().(*validator.Validate); ok {\n\t\tv.RegisterValidation(\"bookabledate\", bookableDate)\n\t}\n\n\troute.GET(\"/bookable\", getBookable)\n\troute.Run(\":8085\")\n}\n\nfunc getBookable(c *gin.Context) {\n\tvar b Booking\n\tif err := c.ShouldBindWith(&b, binding.Query); err == nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"message\": \"Booking dates are valid!\"})\n\t} else {\n\t\tc.JSON(http.StatusBadRequest, gin.H{\"error\": err.Error()})\n\t}\n}\n```\n\n```console\n$ curl \"localhost:8085/bookable?check_in=2018-04-16&check_out=2018-04-17\"\n{\"message\":\"Booking dates are valid!\"}\n\n$ curl \"localhost:8085/bookable?check_in=2018-03-08&check_out=2018-03-09\"\n{\"error\":\"Key: 'Booking.CheckIn' Error:Field validation for 'CheckIn' failed on the 'bookabledate' tag\"}\n```\n\n[Struct level validations](https://github.com/go-playground/validator/releases/tag/v8.7) can also be registered this way.\nSee the [struct-lvl-validation example](https://github.com/gin-gonic/examples/tree/master/struct-lvl-validations) to learn more.\n\n### Only Bind Query String\n\n`ShouldBindQuery` function only binds the query params and not the post data. See the [detail information](https://github.com/gin-gonic/gin/issues/742#issuecomment-315953017).\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\ntype Person struct {\n\tName    string `form:\"name\"`\n\tAddress string `form:\"address\"`\n}\n\nfunc main() {\n\troute := gin.Default()\n\troute.Any(\"/testing\", startPage)\n\troute.Run(\":8085\")\n}\n\nfunc startPage(c *gin.Context) {\n\tvar person Person\n\tif c.ShouldBindQuery(&person) == nil {\n\t\tlog.Println(\"====== Only Bind By Query String ======\")\n\t\tlog.Println(person.Name)\n\t\tlog.Println(person.Address)\n\t}\n\tc.String(200, \"Success\")\n}\n\n```\n\n### Bind Query String or Post Data\n\nSee the [detail information](https://github.com/gin-gonic/gin/issues/742#issuecomment-264681292).\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\t\"time\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\ntype Person struct {\n\tName     string    `form:\"name\"`\n\tAddress  string    `form:\"address\"`\n\tBirthday time.Time `form:\"birthday\" time_format:\"2006-01-02\" time_utc:\"1\"`\n}\n\nfunc main() {\n\troute := gin.Default()\n\troute.GET(\"/testing\", startPage)\n\troute.Run(\":8085\")\n}\n\nfunc startPage(c *gin.Context) {\n\tvar person Person\n\t// If `GET`, only `Form` binding engine (`query`) used.\n\t// If `POST`, first checks the `content-type` for `JSON` or `XML`, then uses `Form` (`form-data`).\n\t// See more at https://github.com/gin-gonic/gin/blob/master/binding/binding.go#L48\n\tif c.ShouldBind(&person) == nil {\n\t\tlog.Println(person.Name)\n\t\tlog.Println(person.Address)\n\t\tlog.Println(person.Birthday)\n\t}\n\n\tc.String(200, \"Success\")\n}\n```\n\nTest it with:\n```sh\n$ curl -X GET \"localhost:8085/testing?name=appleboy&address=xyz&birthday=1992-03-15\"\n```\n\n### Bind Uri\n\nSee the [detail information](https://github.com/gin-gonic/gin/issues/846).\n\n```go\npackage main\n\nimport \"github.com/gin-gonic/gin\"\n\ntype Person struct {\n\tID string `uri:\"id\" binding:\"required,uuid\"`\n\tName string `uri:\"name\" binding:\"required\"`\n}\n\nfunc main() {\n\troute := gin.Default()\n\troute.GET(\"/:name/:id\", func(c *gin.Context) {\n\t\tvar person Person\n\t\tif err := c.ShouldBindUri(&person); err != nil {\n\t\t\tc.JSON(400, gin.H{\"msg\": err})\n\t\t\treturn\n\t\t}\n\t\tc.JSON(200, gin.H{\"name\": person.Name, \"uuid\": person.ID})\n\t})\n\troute.Run(\":8088\")\n}\n```\n\nTest it with:\n```sh\n$ curl -v localhost:8088/thinkerou/987fbc97-4bed-5078-9f07-9141ba07c9f3\n$ curl -v localhost:8088/thinkerou/not-uuid\n```\n\n### Bind HTML checkboxes\n\nSee the [detail information](https://github.com/gin-gonic/gin/issues/129#issuecomment-124260092)\n\nmain.go\n\n```go\n...\n\ntype myForm struct {\n    Colors []string `form:\"colors[]\"`\n}\n\n...\n\nfunc formHandler(c *gin.Context) {\n    var fakeForm myForm\n    c.ShouldBind(&fakeForm)\n    c.JSON(200, gin.H{\"color\": fakeForm.Colors})\n}\n\n...\n\n```\n\nform.html\n\n```html\n<form action=\"/\" method=\"POST\">\n    <p>Check some colors</p>\n    <label for=\"red\">Red</label>\n    <input type=\"checkbox\" name=\"colors[]\" value=\"red\" id=\"red\">\n    <label for=\"green\">Green</label>\n    <input type=\"checkbox\" name=\"colors[]\" value=\"green\" id=\"green\">\n    <label for=\"blue\">Blue</label>\n    <input type=\"checkbox\" name=\"colors[]\" value=\"blue\" id=\"blue\">\n    <input type=\"submit\">\n</form>\n```\n\nresult:\n\n```\n{\"color\":[\"red\",\"green\",\"blue\"]}\n```\n\n### Multipart/Urlencoded binding\n\n```go\npackage main\n\nimport (\n\t\"github.com/gin-gonic/gin\"\n)\n\ntype LoginForm struct {\n\tUser     string `form:\"user\" binding:\"required\"`\n\tPassword string `form:\"password\" binding:\"required\"`\n}\n\nfunc main() {\n\trouter := gin.Default()\n\trouter.POST(\"/login\", func(c *gin.Context) {\n\t\t// you can bind multipart form with explicit binding declaration:\n\t\t// c.ShouldBindWith(&form, binding.Form)\n\t\t// or you can simply use autobinding with ShouldBind method:\n\t\tvar form LoginForm\n\t\t// in this case proper binding will be automatically selected\n\t\tif c.ShouldBind(&form) == nil {\n\t\t\tif form.User == \"user\" && form.Password == \"password\" {\n\t\t\t\tc.JSON(200, gin.H{\"status\": \"you are logged in\"})\n\t\t\t} else {\n\t\t\t\tc.JSON(401, gin.H{\"status\": \"unauthorized\"})\n\t\t\t}\n\t\t}\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\nTest it with:\n```sh\n$ curl -v --form user=user --form password=password http://localhost:8080/login\n```\n\n### XML, JSON, YAML and ProtoBuf rendering\n\n```go\nfunc main() {\n\tr := gin.Default()\n\n\t// gin.H is a shortcut for map[string]interface{}\n\tr.GET(\"/someJSON\", func(c *gin.Context) {\n\t\tc.JSON(http.StatusOK, gin.H{\"message\": \"hey\", \"status\": http.StatusOK})\n\t})\n\n\tr.GET(\"/moreJSON\", func(c *gin.Context) {\n\t\t// You also can use a struct\n\t\tvar msg struct {\n\t\t\tName    string `json:\"user\"`\n\t\t\tMessage string\n\t\t\tNumber  int\n\t\t}\n\t\tmsg.Name = \"Lena\"\n\t\tmsg.Message = \"hey\"\n\t\tmsg.Number = 123\n\t\t// Note that msg.Name becomes \"user\" in the JSON\n\t\t// Will output  :   {\"user\": \"Lena\", \"Message\": \"hey\", \"Number\": 123}\n\t\tc.JSON(http.StatusOK, msg)\n\t})\n\n\tr.GET(\"/someXML\", func(c *gin.Context) {\n\t\tc.XML(http.StatusOK, gin.H{\"message\": \"hey\", \"status\": http.StatusOK})\n\t})\n\n\tr.GET(\"/someYAML\", func(c *gin.Context) {\n\t\tc.YAML(http.StatusOK, gin.H{\"message\": \"hey\", \"status\": http.StatusOK})\n\t})\n\n\tr.GET(\"/someProtoBuf\", func(c *gin.Context) {\n\t\treps := []int64{int64(1), int64(2)}\n\t\tlabel := \"test\"\n\t\t// The specific definition of protobuf is written in the testdata/protoexample file.\n\t\tdata := &protoexample.Test{\n\t\t\tLabel: &label,\n\t\t\tReps:  reps,\n\t\t}\n\t\t// Note that data becomes binary data in the response\n\t\t// Will output protoexample.Test protobuf serialized data\n\t\tc.ProtoBuf(http.StatusOK, data)\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n#### SecureJSON\n\nUsing SecureJSON to prevent json hijacking. Default prepends `\"while(1),\"` to response body if the given struct is array values.\n\n```go\nfunc main() {\n\tr := gin.Default()\n\n\t// You can also use your own secure json prefix\n\t// r.SecureJsonPrefix(\")]}',\\n\")\n\n\tr.GET(\"/someJSON\", func(c *gin.Context) {\n\t\tnames := []string{\"lena\", \"austin\", \"foo\"}\n\n\t\t// Will output  :   while(1);[\"lena\",\"austin\",\"foo\"]\n\t\tc.SecureJSON(http.StatusOK, names)\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n#### JSONP\n\nUsing JSONP to request data from a server  in a different domain. Add callback to response body if the query parameter callback exists.\n\n```go\nfunc main() {\n\tr := gin.Default()\n\n\tr.GET(\"/JSONP?callback=x\", func(c *gin.Context) {\n\t\tdata := map[string]interface{}{\n\t\t\t\"foo\": \"bar\",\n\t\t}\n\t\t\n\t\t//callback is x\n\t\t// Will output  :   x({\\\"foo\\\":\\\"bar\\\"})\n\t\tc.JSONP(http.StatusOK, data)\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n#### AsciiJSON\n\nUsing AsciiJSON to Generates ASCII-only JSON with escaped non-ASCII chracters.\n\n```go\nfunc main() {\n\tr := gin.Default()\n\n\tr.GET(\"/someJSON\", func(c *gin.Context) {\n\t\tdata := map[string]interface{}{\n\t\t\t\"lang\": \"GO语言\",\n\t\t\t\"tag\":  \"<br>\",\n\t\t}\n\n\t\t// will output : {\"lang\":\"GO\\u8bed\\u8a00\",\"tag\":\"\\u003cbr\\u003e\"}\n\t\tc.AsciiJSON(http.StatusOK, data)\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n#### PureJSON\n\nNormally, JSON replaces special HTML characters with their unicode entities, e.g. `<` becomes  `\\u003c`. If you want to encode such characters literally, you can use PureJSON instead.\nThis feature is unavailable in Go 1.6 and lower.\n\n```go\nfunc main() {\n\tr := gin.Default()\n\t\n\t// Serves unicode entities\n\tr.GET(\"/json\", func(c *gin.Context) {\n\t\tc.JSON(200, gin.H{\n\t\t\t\"html\": \"<b>Hello, world!</b>\",\n\t\t})\n\t})\n\t\n\t// Serves literal characters\n\tr.GET(\"/purejson\", func(c *gin.Context) {\n\t\tc.PureJSON(200, gin.H{\n\t\t\t\"html\": \"<b>Hello, world!</b>\",\n\t\t})\n\t})\n\t\n\t// listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n### Serving static files\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\trouter.Static(\"/assets\", \"./assets\")\n\trouter.StaticFS(\"/more_static\", http.Dir(\"my_file_system\"))\n\trouter.StaticFile(\"/favicon.ico\", \"./resources/favicon.ico\")\n\n\t// Listen and serve on 0.0.0.0:8080\n\trouter.Run(\":8080\")\n}\n```\n\n### Serving data from reader\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\trouter.GET(\"/someDataFromReader\", func(c *gin.Context) {\n\t\tresponse, err := http.Get(\"https://raw.githubusercontent.com/gin-gonic/logo/master/color.png\")\n\t\tif err != nil || response.StatusCode != http.StatusOK {\n\t\t\tc.Status(http.StatusServiceUnavailable)\n\t\t\treturn\n\t\t}\n\n\t\treader := response.Body\n\t\tcontentLength := response.ContentLength\n\t\tcontentType := response.Header.Get(\"Content-Type\")\n\n\t\textraHeaders := map[string]string{\n\t\t\t\"Content-Disposition\": `attachment; filename=\"gopher.png\"`,\n\t\t}\n\n\t\tc.DataFromReader(http.StatusOK, contentLength, contentType, reader, extraHeaders)\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\n### HTML rendering\n\nUsing LoadHTMLGlob() or LoadHTMLFiles()\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\trouter.LoadHTMLGlob(\"templates/*\")\n\t//router.LoadHTMLFiles(\"templates/template1.html\", \"templates/template2.html\")\n\trouter.GET(\"/index\", func(c *gin.Context) {\n\t\tc.HTML(http.StatusOK, \"index.tmpl\", gin.H{\n\t\t\t\"title\": \"Main website\",\n\t\t})\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\ntemplates/index.tmpl\n\n```html\n<html>\n\t<h1>\n\t\t{{ .title }}\n\t</h1>\n</html>\n```\n\nUsing templates with same name in different directories\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\trouter.LoadHTMLGlob(\"templates/**/*\")\n\trouter.GET(\"/posts/index\", func(c *gin.Context) {\n\t\tc.HTML(http.StatusOK, \"posts/index.tmpl\", gin.H{\n\t\t\t\"title\": \"Posts\",\n\t\t})\n\t})\n\trouter.GET(\"/users/index\", func(c *gin.Context) {\n\t\tc.HTML(http.StatusOK, \"users/index.tmpl\", gin.H{\n\t\t\t\"title\": \"Users\",\n\t\t})\n\t})\n\trouter.Run(\":8080\")\n}\n```\n\ntemplates/posts/index.tmpl\n\n```html\n{{ define \"posts/index.tmpl\" }}\n<html><h1>\n\t{{ .title }}\n</h1>\n<p>Using posts/index.tmpl</p>\n</html>\n{{ end }}\n```\n\ntemplates/users/index.tmpl\n\n```html\n{{ define \"users/index.tmpl\" }}\n<html><h1>\n\t{{ .title }}\n</h1>\n<p>Using users/index.tmpl</p>\n</html>\n{{ end }}\n```\n\n#### Custom Template renderer\n\nYou can also use your own html template render\n\n```go\nimport \"html/template\"\n\nfunc main() {\n\trouter := gin.Default()\n\thtml := template.Must(template.ParseFiles(\"file1\", \"file2\"))\n\trouter.SetHTMLTemplate(html)\n\trouter.Run(\":8080\")\n}\n```\n\n#### Custom Delimiters\n\nYou may use custom delims\n\n```go\n\tr := gin.Default()\n\tr.Delims(\"{[{\", \"}]}\")\n\tr.LoadHTMLGlob(\"/path/to/templates\")\n```\n\n#### Custom Template Funcs\n\nSee the detail [example code](https://github.com/gin-gonic/examples/tree/master/template).\n\nmain.go\n\n```go\nimport (\n    \"fmt\"\n    \"html/template\"\n    \"net/http\"\n    \"time\"\n\n    \"github.com/gin-gonic/gin\"\n)\n\nfunc formatAsDate(t time.Time) string {\n    year, month, day := t.Date()\n    return fmt.Sprintf(\"%d%02d/%02d\", year, month, day)\n}\n\nfunc main() {\n    router := gin.Default()\n    router.Delims(\"{[{\", \"}]}\")\n    router.SetFuncMap(template.FuncMap{\n        \"formatAsDate\": formatAsDate,\n    })\n    router.LoadHTMLFiles(\"./testdata/template/raw.tmpl\")\n\n    router.GET(\"/raw\", func(c *gin.Context) {\n        c.HTML(http.StatusOK, \"raw.tmpl\", map[string]interface{}{\n            \"now\": time.Date(2017, 07, 01, 0, 0, 0, 0, time.UTC),\n        })\n    })\n\n    router.Run(\":8080\")\n}\n\n```\n\nraw.tmpl\n\n```html\nDate: {[{.now | formatAsDate}]}\n```\n\nResult:\n```\nDate: 2017/07/01\n```\n\n### Multitemplate\n\nGin allow by default use only one html.Template. Check [a multitemplate render](https://github.com/gin-contrib/multitemplate) for using features like go 1.6 `block template`.\n\n### Redirects\n\nIssuing a HTTP redirect is easy. Both internal and external locations are supported.\n\n```go\nr.GET(\"/test\", func(c *gin.Context) {\n\tc.Redirect(http.StatusMovedPermanently, \"http://www.google.com/\")\n})\n```\n\n\nIssuing a Router redirect, use `HandleContext` like below.\n\n``` go\nr.GET(\"/test\", func(c *gin.Context) {\n    c.Request.URL.Path = \"/test2\"\n    r.HandleContext(c)\n})\nr.GET(\"/test2\", func(c *gin.Context) {\n    c.JSON(200, gin.H{\"hello\": \"world\"})\n})\n```\n\n\n### Custom Middleware\n\n```go\nfunc Logger() gin.HandlerFunc {\n\treturn func(c *gin.Context) {\n\t\tt := time.Now()\n\n\t\t// Set example variable\n\t\tc.Set(\"example\", \"12345\")\n\n\t\t// before request\n\n\t\tc.Next()\n\n\t\t// after request\n\t\tlatency := time.Since(t)\n\t\tlog.Print(latency)\n\n\t\t// access the status we are sending\n\t\tstatus := c.Writer.Status()\n\t\tlog.Println(status)\n\t}\n}\n\nfunc main() {\n\tr := gin.New()\n\tr.Use(Logger())\n\n\tr.GET(\"/test\", func(c *gin.Context) {\n\t\texample := c.MustGet(\"example\").(string)\n\n\t\t// it would print: \"12345\"\n\t\tlog.Println(example)\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n### Using BasicAuth() middleware\n\n```go\n// simulate some private data\nvar secrets = gin.H{\n\t\"foo\":    gin.H{\"email\": \"foo@bar.com\", \"phone\": \"123433\"},\n\t\"austin\": gin.H{\"email\": \"austin@example.com\", \"phone\": \"666\"},\n\t\"lena\":   gin.H{\"email\": \"lena@guapa.com\", \"phone\": \"523443\"},\n}\n\nfunc main() {\n\tr := gin.Default()\n\n\t// Group using gin.BasicAuth() middleware\n\t// gin.Accounts is a shortcut for map[string]string\n\tauthorized := r.Group(\"/admin\", gin.BasicAuth(gin.Accounts{\n\t\t\"foo\":    \"bar\",\n\t\t\"austin\": \"1234\",\n\t\t\"lena\":   \"hello2\",\n\t\t\"manu\":   \"4321\",\n\t}))\n\n\t// /admin/secrets endpoint\n\t// hit \"localhost:8080/admin/secrets\n\tauthorized.GET(\"/secrets\", func(c *gin.Context) {\n\t\t// get user, it was set by the BasicAuth middleware\n\t\tuser := c.MustGet(gin.AuthUserKey).(string)\n\t\tif secret, ok := secrets[user]; ok {\n\t\t\tc.JSON(http.StatusOK, gin.H{\"user\": user, \"secret\": secret})\n\t\t} else {\n\t\t\tc.JSON(http.StatusOK, gin.H{\"user\": user, \"secret\": \"NO SECRET :(\"})\n\t\t}\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n### Goroutines inside a middleware\n\nWhen starting new Goroutines inside a middleware or handler, you **SHOULD NOT** use the original context inside it, you have to use a read-only copy.\n\n```go\nfunc main() {\n\tr := gin.Default()\n\n\tr.GET(\"/long_async\", func(c *gin.Context) {\n\t\t// create copy to be used inside the goroutine\n\t\tcCp := c.Copy()\n\t\tgo func() {\n\t\t\t// simulate a long task with time.Sleep(). 5 seconds\n\t\t\ttime.Sleep(5 * time.Second)\n\n\t\t\t// note that you are using the copied context \"cCp\", IMPORTANT\n\t\t\tlog.Println(\"Done! in path \" + cCp.Request.URL.Path)\n\t\t}()\n\t})\n\n\tr.GET(\"/long_sync\", func(c *gin.Context) {\n\t\t// simulate a long task with time.Sleep(). 5 seconds\n\t\ttime.Sleep(5 * time.Second)\n\n\t\t// since we are NOT using a goroutine, we do not have to copy the context\n\t\tlog.Println(\"Done! in path \" + c.Request.URL.Path)\n\t})\n\n\t// Listen and serve on 0.0.0.0:8080\n\tr.Run(\":8080\")\n}\n```\n\n### Custom HTTP configuration\n\nUse `http.ListenAndServe()` directly, like this:\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\thttp.ListenAndServe(\":8080\", router)\n}\n```\nor\n\n```go\nfunc main() {\n\trouter := gin.Default()\n\n\ts := &http.Server{\n\t\tAddr:           \":8080\",\n\t\tHandler:        router,\n\t\tReadTimeout:    10 * time.Second,\n\t\tWriteTimeout:   10 * time.Second,\n\t\tMaxHeaderBytes: 1 << 20,\n\t}\n\ts.ListenAndServe()\n}\n```\n\n### Support Let's Encrypt\n\nexample for 1-line LetsEncrypt HTTPS servers.\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\n\t\"github.com/gin-gonic/autotls\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc main() {\n\tr := gin.Default()\n\n\t// Ping handler\n\tr.GET(\"/ping\", func(c *gin.Context) {\n\t\tc.String(200, \"pong\")\n\t})\n\n\tlog.Fatal(autotls.Run(r, \"example1.com\", \"example2.com\"))\n}\n```\n\nexample for custom autocert manager.\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\n\t\"github.com/gin-gonic/autotls\"\n\t\"github.com/gin-gonic/gin\"\n\t\"golang.org/x/crypto/acme/autocert\"\n)\n\nfunc main() {\n\tr := gin.Default()\n\n\t// Ping handler\n\tr.GET(\"/ping\", func(c *gin.Context) {\n\t\tc.String(200, \"pong\")\n\t})\n\n\tm := autocert.Manager{\n\t\tPrompt:     autocert.AcceptTOS,\n\t\tHostPolicy: autocert.HostWhitelist(\"example1.com\", \"example2.com\"),\n\t\tCache:      autocert.DirCache(\"/var/www/.cache\"),\n\t}\n\n\tlog.Fatal(autotls.RunWithManager(r, &m))\n}\n```\n\n### Run multiple service using Gin\n\nSee the [question](https://github.com/gin-gonic/gin/issues/346) and try the following example:\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/gin-gonic/gin\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\nvar (\n\tg errgroup.Group\n)\n\nfunc router01() http.Handler {\n\te := gin.New()\n\te.Use(gin.Recovery())\n\te.GET(\"/\", func(c *gin.Context) {\n\t\tc.JSON(\n\t\t\thttp.StatusOK,\n\t\t\tgin.H{\n\t\t\t\t\"code\":  http.StatusOK,\n\t\t\t\t\"error\": \"Welcome server 01\",\n\t\t\t},\n\t\t)\n\t})\n\n\treturn e\n}\n\nfunc router02() http.Handler {\n\te := gin.New()\n\te.Use(gin.Recovery())\n\te.GET(\"/\", func(c *gin.Context) {\n\t\tc.JSON(\n\t\t\thttp.StatusOK,\n\t\t\tgin.H{\n\t\t\t\t\"code\":  http.StatusOK,\n\t\t\t\t\"error\": \"Welcome server 02\",\n\t\t\t},\n\t\t)\n\t})\n\n\treturn e\n}\n\nfunc main() {\n\tserver01 := &http.Server{\n\t\tAddr:         \":8080\",\n\t\tHandler:      router01(),\n\t\tReadTimeout:  5 * time.Second,\n\t\tWriteTimeout: 10 * time.Second,\n\t}\n\n\tserver02 := &http.Server{\n\t\tAddr:         \":8081\",\n\t\tHandler:      router02(),\n\t\tReadTimeout:  5 * time.Second,\n\t\tWriteTimeout: 10 * time.Second,\n\t}\n\n\tg.Go(func() error {\n\t\treturn server01.ListenAndServe()\n\t})\n\n\tg.Go(func() error {\n\t\treturn server02.ListenAndServe()\n\t})\n\n\tif err := g.Wait(); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n```\n\n### Graceful restart or stop\n\nDo you want to graceful restart or stop your web server?\nThere are some ways this can be done.\n\nWe can use [fvbock/endless](https://github.com/fvbock/endless) to replace the default `ListenAndServe`. Refer issue [#296](https://github.com/gin-gonic/gin/issues/296) for more details.\n\n```go\nrouter := gin.Default()\nrouter.GET(\"/\", handler)\n// [...]\nendless.ListenAndServe(\":4242\", router)\n```\n\nAn alternative to endless:\n\n* [manners](https://github.com/braintree/manners): A polite Go HTTP server that shuts down gracefully.\n* [graceful](https://github.com/tylerb/graceful): Graceful is a Go package enabling graceful shutdown of an http.Handler server.\n* [grace](https://github.com/facebookgo/grace): Graceful restart & zero downtime deploy for Go servers.\n\nIf you are using Go 1.8, you may not need to use this library! Consider using http.Server's built-in [Shutdown()](https://golang.org/pkg/net/http/#Server.Shutdown) method for graceful shutdowns. See the full [graceful-shutdown](https://github.com/gin-gonic/examples/tree/master/graceful-shutdown) example with gin.\n\n```go\n// +build go1.8\n\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"os/signal\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc main() {\n\trouter := gin.Default()\n\trouter.GET(\"/\", func(c *gin.Context) {\n\t\ttime.Sleep(5 * time.Second)\n\t\tc.String(http.StatusOK, \"Welcome Gin Server\")\n\t})\n\n\tsrv := &http.Server{\n\t\tAddr:    \":8080\",\n\t\tHandler: router,\n\t}\n\n\tgo func() {\n\t\t// service connections\n\t\tif err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {\n\t\t\tlog.Fatalf(\"listen: %s\\n\", err)\n\t\t}\n\t}()\n\n\t// Wait for interrupt signal to gracefully shutdown the server with\n\t// a timeout of 5 seconds.\n\tquit := make(chan os.Signal)\n\t// kill (no param) default send syscall.SIGTERM\n\t// kill -2 is syscall.SIGINT\n\t// kill -9 is syscall.SIGKILL but can\"t be catch, so don't need add it\n\tsignal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)\n\t<-quit\n\tlog.Println(\"Shutdown Server ...\")\n\n\tctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\tdefer cancel()\n\tif err := srv.Shutdown(ctx); err != nil {\n\t\tlog.Fatal(\"Server Shutdown:\", err)\n\t}\n\t// catching ctx.Done(). timeout of 5 seconds.\n\tselect {\n\tcase <-ctx.Done():\n\t\tlog.Println(\"timeout of 5 seconds.\")\n\t}\n\tlog.Println(\"Server exiting\")\n}\n```\n\n### Build a single binary with templates\n\nYou can build a server into a single binary containing templates by using [go-assets][].\n\n[go-assets]: https://github.com/jessevdk/go-assets\n\n```go\nfunc main() {\n\tr := gin.New()\n\n\tt, err := loadTemplate()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tr.SetHTMLTemplate(t)\n\n\tr.GET(\"/\", func(c *gin.Context) {\n\t\tc.HTML(http.StatusOK, \"/html/index.tmpl\",nil)\n\t})\n\tr.Run(\":8080\")\n}\n\n// loadTemplate loads templates embedded by go-assets-builder\nfunc loadTemplate() (*template.Template, error) {\n\tt := template.New(\"\")\n\tfor name, file := range Assets.Files {\n\t\tif file.IsDir() || !strings.HasSuffix(name, \".tmpl\") {\n\t\t\tcontinue\n\t\t}\n\t\th, err := ioutil.ReadAll(file)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err = t.New(name).Parse(string(h))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn t, nil\n}\n```\n\nSee a complete example in the `https://github.com/gin-gonic/examples/tree/master/assets-in-binary` directory.\n\n### Bind form-data request with custom struct\n\nThe follow example using custom struct:\n\n```go\ntype StructA struct {\n    FieldA string `form:\"field_a\"`\n}\n\ntype StructB struct {\n    NestedStruct StructA\n    FieldB string `form:\"field_b\"`\n}\n\ntype StructC struct {\n    NestedStructPointer *StructA\n    FieldC string `form:\"field_c\"`\n}\n\ntype StructD struct {\n    NestedAnonyStruct struct {\n        FieldX string `form:\"field_x\"`\n    }\n    FieldD string `form:\"field_d\"`\n}\n\nfunc GetDataB(c *gin.Context) {\n    var b StructB\n    c.Bind(&b)\n    c.JSON(200, gin.H{\n        \"a\": b.NestedStruct,\n        \"b\": b.FieldB,\n    })\n}\n\nfunc GetDataC(c *gin.Context) {\n    var b StructC\n    c.Bind(&b)\n    c.JSON(200, gin.H{\n        \"a\": b.NestedStructPointer,\n        \"c\": b.FieldC,\n    })\n}\n\nfunc GetDataD(c *gin.Context) {\n    var b StructD\n    c.Bind(&b)\n    c.JSON(200, gin.H{\n        \"x\": b.NestedAnonyStruct,\n        \"d\": b.FieldD,\n    })\n}\n\nfunc main() {\n    r := gin.Default()\n    r.GET(\"/getb\", GetDataB)\n    r.GET(\"/getc\", GetDataC)\n    r.GET(\"/getd\", GetDataD)\n\n    r.Run()\n}\n```\n\nUsing the command `curl` command result:\n\n```\n$ curl \"http://localhost:8080/getb?field_a=hello&field_b=world\"\n{\"a\":{\"FieldA\":\"hello\"},\"b\":\"world\"}\n$ curl \"http://localhost:8080/getc?field_a=hello&field_c=world\"\n{\"a\":{\"FieldA\":\"hello\"},\"c\":\"world\"}\n$ curl \"http://localhost:8080/getd?field_x=hello&field_d=world\"\n{\"d\":\"world\",\"x\":{\"FieldX\":\"hello\"}}\n```\n\n### Try to bind body into different structs\n\nThe normal methods for binding request body consumes `c.Request.Body` and they\ncannot be called multiple times.\n\n```go\ntype formA struct {\n  Foo string `json:\"foo\" xml:\"foo\" binding:\"required\"`\n}\n\ntype formB struct {\n  Bar string `json:\"bar\" xml:\"bar\" binding:\"required\"`\n}\n\nfunc SomeHandler(c *gin.Context) {\n  objA := formA{}\n  objB := formB{}\n  // This c.ShouldBind consumes c.Request.Body and it cannot be reused.\n  if errA := c.ShouldBind(&objA); errA == nil {\n    c.String(http.StatusOK, `the body should be formA`)\n  // Always an error is occurred by this because c.Request.Body is EOF now.\n  } else if errB := c.ShouldBind(&objB); errB == nil {\n    c.String(http.StatusOK, `the body should be formB`)\n  } else {\n    ...\n  }\n}\n```\n\nFor this, you can use `c.ShouldBindBodyWith`.\n\n```go\nfunc SomeHandler(c *gin.Context) {\n  objA := formA{}\n  objB := formB{}\n  // This reads c.Request.Body and stores the result into the context.\n  if errA := c.ShouldBindBodyWith(&objA, binding.JSON); errA == nil {\n    c.String(http.StatusOK, `the body should be formA`)\n  // At this time, it reuses body stored in the context.\n  } else if errB := c.ShouldBindBodyWith(&objB, binding.JSON); errB == nil {\n    c.String(http.StatusOK, `the body should be formB JSON`)\n  // And it can accepts other formats\n  } else if errB2 := c.ShouldBindBodyWith(&objB, binding.XML); errB2 == nil {\n    c.String(http.StatusOK, `the body should be formB XML`)\n  } else {\n    ...\n  }\n}\n```\n\n* `c.ShouldBindBodyWith` stores body into the context before binding. This has\na slight impact to performance, so you should not use this method if you are\nenough to call binding at once.\n* This feature is only needed for some formats -- `JSON`, `XML`, `MsgPack`,\n`ProtoBuf`. For other formats, `Query`, `Form`, `FormPost`, `FormMultipart`,\ncan be called by `c.ShouldBind()` multiple times without any damage to\nperformance (See [#1341](https://github.com/gin-gonic/gin/pull/1341)).\n\n### http2 server push\n\nhttp.Pusher is supported only **go1.8+**. See the [golang blog](https://blog.golang.org/h2push) for detail information.\n\n```go\npackage main\n\nimport (\n\t\"html/template\"\n\t\"log\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\nvar html = template.Must(template.New(\"https\").Parse(`\n<html>\n<head>\n  <title>Https Test</title>\n  <script src=\"/assets/app.js\"></script>\n</head>\n<body>\n  <h1 style=\"color:red;\">Welcome, Ginner!</h1>\n</body>\n</html>\n`))\n\nfunc main() {\n\tr := gin.Default()\n\tr.Static(\"/assets\", \"./assets\")\n\tr.SetHTMLTemplate(html)\n\n\tr.GET(\"/\", func(c *gin.Context) {\n\t\tif pusher := c.Writer.Pusher(); pusher != nil {\n\t\t\t// use pusher.Push() to do server push\n\t\t\tif err := pusher.Push(\"/assets/app.js\", nil); err != nil {\n\t\t\t\tlog.Printf(\"Failed to push: %v\", err)\n\t\t\t}\n\t\t}\n\t\tc.HTML(200, \"https\", gin.H{\n\t\t\t\"status\": \"success\",\n\t\t})\n\t})\n\n\t// Listen and Server in https://127.0.0.1:8080\n\tr.RunTLS(\":8080\", \"./testdata/server.pem\", \"./testdata/server.key\")\n}\n```\n\n### Define format for the log of routes\n\nThe default log of routes is:\n```\n[GIN-debug] POST   /foo                      --> main.main.func1 (3 handlers)\n[GIN-debug] GET    /bar                      --> main.main.func2 (3 handlers)\n[GIN-debug] GET    /status                   --> main.main.func3 (3 handlers)\n```\n\nIf you want to log this information in given format (e.g. JSON, key values or something else), then you can define this format with `gin.DebugPrintRouteFunc`.\nIn the example below, we log all routes with standard log package but you can use another log tools that suits of your needs.\n```go\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc main() {\n\tr := gin.Default()\n\tgin.DebugPrintRouteFunc = func(httpMethod, absolutePath, handlerName string, nuHandlers int) {\n\t\tlog.Printf(\"endpoint %v %v %v %v\\n\", httpMethod, absolutePath, handlerName, nuHandlers)\n\t}\n\n\tr.POST(\"/foo\", func(c *gin.Context) {\n\t\tc.JSON(http.StatusOK, \"foo\")\n\t})\n\n\tr.GET(\"/bar\", func(c *gin.Context) {\n\t\tc.JSON(http.StatusOK, \"bar\")\n\t})\n\n\tr.GET(\"/status\", func(c *gin.Context) {\n\t\tc.JSON(http.StatusOK, \"ok\")\n\t})\n\n\t// Listen and Server in http://0.0.0.0:8080\n\tr.Run()\n}\n```\n\n### Set and get a cookie\n\n```go\nimport (\n    \"fmt\"\n\n    \"github.com/gin-gonic/gin\"\n)\n\nfunc main() {\n\n    router := gin.Default()\n\n    router.GET(\"/cookie\", func(c *gin.Context) {\n\n        cookie, err := c.Cookie(\"gin_cookie\")\n\n        if err != nil {\n            cookie = \"NotSet\"\n            c.SetCookie(\"gin_cookie\", \"test\", 3600, \"/\", \"localhost\", false, true)\n        }\n\n        fmt.Printf(\"Cookie value: %s \\n\", cookie)\n    })\n\n    router.Run()\n}\n```\n\n\n## Testing\n\nThe `net/http/httptest` package is preferable way for HTTP testing.\n\n```go\npackage main\n\nfunc setupRouter() *gin.Engine {\n\tr := gin.Default()\n\tr.GET(\"/ping\", func(c *gin.Context) {\n\t\tc.String(200, \"pong\")\n\t})\n\treturn r\n}\n\nfunc main() {\n\tr := setupRouter()\n\tr.Run(\":8080\")\n}\n```\n\nTest for code example above:\n\n```go\npackage main\n\nimport (\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestPingRoute(t *testing.T) {\n\trouter := setupRouter()\n\n\tw := httptest.NewRecorder()\n\treq, _ := http.NewRequest(\"GET\", \"/ping\", nil)\n\trouter.ServeHTTP(w, req)\n\n\tassert.Equal(t, 200, w.Code)\n\tassert.Equal(t, \"pong\", w.Body.String())\n}\n```\n\n## Users\n\nAwesome project lists using [Gin](https://github.com/gin-gonic/gin) web framework.\n\n* [gorush](https://github.com/appleboy/gorush): A push notification server written in Go.\n* [fnproject](https://github.com/fnproject/fn): The container native, cloud agnostic serverless platform.\n* [photoprism](https://github.com/photoprism/photoprism): Personal photo management powered by Go and Google TensorFlow.\n* [krakend](https://github.com/devopsfaith/krakend): Ultra performant API Gateway with middlewares.\n* [picfit](https://github.com/thoas/picfit): An image resizing server written in Go.\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/auth.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"crypto/subtle\"\n\t\"encoding/base64\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\n// AuthUserKey is the cookie name for user credential in basic auth.\nconst AuthUserKey = \"user\"\n\n// Accounts defines a key/value for user/pass list of authorized logins.\ntype Accounts map[string]string\n\ntype authPair struct {\n\tvalue string\n\tuser  string\n}\n\ntype authPairs []authPair\n\nfunc (a authPairs) searchCredential(authValue string) (string, bool) {\n\tif authValue == \"\" {\n\t\treturn \"\", false\n\t}\n\tfor _, pair := range a {\n\t\tif pair.value == authValue {\n\t\t\treturn pair.user, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// BasicAuthForRealm returns a Basic HTTP Authorization middleware. It takes as arguments a map[string]string where\n// the key is the user name and the value is the password, as well as the name of the Realm.\n// If the realm is empty, \"Authorization Required\" will be used by default.\n// (see http://tools.ietf.org/html/rfc2617#section-1.2)\nfunc BasicAuthForRealm(accounts Accounts, realm string) HandlerFunc {\n\tif realm == \"\" {\n\t\trealm = \"Authorization Required\"\n\t}\n\trealm = \"Basic realm=\" + strconv.Quote(realm)\n\tpairs := processAccounts(accounts)\n\treturn func(c *Context) {\n\t\t// Search user in the slice of allowed credentials\n\t\tuser, found := pairs.searchCredential(c.requestHeader(\"Authorization\"))\n\t\tif !found {\n\t\t\t// Credentials doesn't match, we return 401 and abort handlers chain.\n\t\t\tc.Header(\"WWW-Authenticate\", realm)\n\t\t\tc.AbortWithStatus(http.StatusUnauthorized)\n\t\t\treturn\n\t\t}\n\n\t\t// The user credentials was found, set user's id to key AuthUserKey in this context, the user's id can be read later using\n\t\t// c.MustGet(gin.AuthUserKey).\n\t\tc.Set(AuthUserKey, user)\n\t}\n}\n\n// BasicAuth returns a Basic HTTP Authorization middleware. It takes as argument a map[string]string where\n// the key is the user name and the value is the password.\nfunc BasicAuth(accounts Accounts) HandlerFunc {\n\treturn BasicAuthForRealm(accounts, \"\")\n}\n\nfunc processAccounts(accounts Accounts) authPairs {\n\tassert1(len(accounts) > 0, \"Empty list of authorized credentials\")\n\tpairs := make(authPairs, 0, len(accounts))\n\tfor user, password := range accounts {\n\t\tassert1(user != \"\", \"User can not be empty\")\n\t\tvalue := authorizationHeader(user, password)\n\t\tpairs = append(pairs, authPair{\n\t\t\tvalue: value,\n\t\t\tuser:  user,\n\t\t})\n\t}\n\treturn pairs\n}\n\nfunc authorizationHeader(user, password string) string {\n\tbase := user + \":\" + password\n\treturn \"Basic \" + base64.StdEncoding.EncodeToString([]byte(base))\n}\n\nfunc secureCompare(given, actual string) bool {\n\tif subtle.ConstantTimeEq(int32(len(given)), int32(len(actual))) == 1 {\n\t\treturn subtle.ConstantTimeCompare([]byte(given), []byte(actual)) == 1\n\t}\n\t// Securely compare actual to itself to keep constant time, but always return false.\n\treturn subtle.ConstantTimeCompare([]byte(actual), []byte(actual)) == 1 && false\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/binding.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport \"net/http\"\n\n// Content-Type MIME of the most common data formats.\nconst (\n\tMIMEJSON              = \"application/json\"\n\tMIMEHTML              = \"text/html\"\n\tMIMEXML               = \"application/xml\"\n\tMIMEXML2              = \"text/xml\"\n\tMIMEPlain             = \"text/plain\"\n\tMIMEPOSTForm          = \"application/x-www-form-urlencoded\"\n\tMIMEMultipartPOSTForm = \"multipart/form-data\"\n\tMIMEPROTOBUF          = \"application/x-protobuf\"\n\tMIMEMSGPACK           = \"application/x-msgpack\"\n\tMIMEMSGPACK2          = \"application/msgpack\"\n\tMIMEYAML              = \"application/x-yaml\"\n)\n\n// Binding describes the interface which needs to be implemented for binding the\n// data present in the request such as JSON request body, query parameters or\n// the form POST.\ntype Binding interface {\n\tName() string\n\tBind(*http.Request, interface{}) error\n}\n\n// BindingBody adds BindBody method to Binding. BindBody is similar with Bind,\n// but it reads the body from supplied bytes instead of req.Body.\ntype BindingBody interface {\n\tBinding\n\tBindBody([]byte, interface{}) error\n}\n\n// BindingUri adds BindUri method to Binding. BindUri is similar with Bind,\n// but it read the Params.\ntype BindingUri interface {\n\tName() string\n\tBindUri(map[string][]string, interface{}) error\n}\n\n// StructValidator is the minimal interface which needs to be implemented in\n// order for it to be used as the validator engine for ensuring the correctness\n// of the request. Gin provides a default implementation for this using\n// https://github.com/go-playground/validator/tree/v8.18.2.\ntype StructValidator interface {\n\t// ValidateStruct can receive any kind of type and it should never panic, even if the configuration is not right.\n\t// If the received type is not a struct, any validation should be skipped and nil must be returned.\n\t// If the received type is a struct or pointer to a struct, the validation should be performed.\n\t// If the struct is not valid or the validation itself fails, a descriptive error should be returned.\n\t// Otherwise nil must be returned.\n\tValidateStruct(interface{}) error\n\n\t// Engine returns the underlying validator engine which powers the\n\t// StructValidator implementation.\n\tEngine() interface{}\n}\n\n// Validator is the default validator which implements the StructValidator\n// interface. It uses https://github.com/go-playground/validator/tree/v8.18.2\n// under the hood.\nvar Validator StructValidator = &defaultValidator{}\n\n// These implement the Binding interface and can be used to bind the data\n// present in the request to struct instances.\nvar (\n\tJSON          = jsonBinding{}\n\tXML           = xmlBinding{}\n\tForm          = formBinding{}\n\tQuery         = queryBinding{}\n\tFormPost      = formPostBinding{}\n\tFormMultipart = formMultipartBinding{}\n\tProtoBuf      = protobufBinding{}\n\tMsgPack       = msgpackBinding{}\n\tYAML          = yamlBinding{}\n\tUri           = uriBinding{}\n)\n\n// Default returns the appropriate Binding instance based on the HTTP method\n// and the content type.\nfunc Default(method, contentType string) Binding {\n\tif method == \"GET\" {\n\t\treturn Form\n\t}\n\n\tswitch contentType {\n\tcase MIMEJSON:\n\t\treturn JSON\n\tcase MIMEXML, MIMEXML2:\n\t\treturn XML\n\tcase MIMEPROTOBUF:\n\t\treturn ProtoBuf\n\tcase MIMEMSGPACK, MIMEMSGPACK2:\n\t\treturn MsgPack\n\tcase MIMEYAML:\n\t\treturn YAML\n\tcase MIMEMultipartPOSTForm:\n\t\treturn FormMultipart\n\tdefault: // case MIMEPOSTForm:\n\t\treturn Form\n\t}\n}\n\nfunc validate(obj interface{}) error {\n\tif Validator == nil {\n\t\treturn nil\n\t}\n\treturn Validator.ValidateStruct(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/default_validator.go",
    "content": "// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n\n\t\"gopkg.in/go-playground/validator.v8\"\n)\n\ntype defaultValidator struct {\n\tonce     sync.Once\n\tvalidate *validator.Validate\n}\n\nvar _ StructValidator = &defaultValidator{}\n\n// ValidateStruct receives any kind of type, but only performed struct or pointer to struct type.\nfunc (v *defaultValidator) ValidateStruct(obj interface{}) error {\n\tvalue := reflect.ValueOf(obj)\n\tvalueType := value.Kind()\n\tif valueType == reflect.Ptr {\n\t\tvalueType = value.Elem().Kind()\n\t}\n\tif valueType == reflect.Struct {\n\t\tv.lazyinit()\n\t\tif err := v.validate.Struct(obj); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Engine returns the underlying validator engine which powers the default\n// Validator instance. This is useful if you want to register custom validations\n// or struct level validations. See validator GoDoc for more info -\n// https://godoc.org/gopkg.in/go-playground/validator.v8\nfunc (v *defaultValidator) Engine() interface{} {\n\tv.lazyinit()\n\treturn v.validate\n}\n\nfunc (v *defaultValidator) lazyinit() {\n\tv.once.Do(func() {\n\t\tconfig := &validator.Config{TagName: \"binding\"}\n\t\tv.validate = validator.New(config)\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/form.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"reflect\"\n)\n\nconst defaultMemory = 32 * 1024 * 1024\n\ntype formBinding struct{}\ntype formPostBinding struct{}\ntype formMultipartBinding struct{}\n\nfunc (formBinding) Name() string {\n\treturn \"form\"\n}\n\nfunc (formBinding) Bind(req *http.Request, obj interface{}) error {\n\tif err := req.ParseForm(); err != nil {\n\t\treturn err\n\t}\n\tif err := req.ParseMultipartForm(defaultMemory); err != nil {\n\t\tif err != http.ErrNotMultipart {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := mapForm(obj, req.Form); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n\nfunc (formPostBinding) Name() string {\n\treturn \"form-urlencoded\"\n}\n\nfunc (formPostBinding) Bind(req *http.Request, obj interface{}) error {\n\tif err := req.ParseForm(); err != nil {\n\t\treturn err\n\t}\n\tif err := mapForm(obj, req.PostForm); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n\nfunc (formMultipartBinding) Name() string {\n\treturn \"multipart/form-data\"\n}\n\nfunc (formMultipartBinding) Bind(req *http.Request, obj interface{}) error {\n\tif err := req.ParseMultipartForm(defaultMemory); err != nil {\n\t\treturn err\n\t}\n\tif err := mappingByPtr(obj, (*multipartRequest)(req), \"form\"); err != nil {\n\t\treturn err\n\t}\n\n\treturn validate(obj)\n}\n\ntype multipartRequest http.Request\n\nvar _ setter = (*multipartRequest)(nil)\n\nvar (\n\tmultipartFileHeaderStructType = reflect.TypeOf(multipart.FileHeader{})\n)\n\n// TrySet tries to set a value by the multipart request with the binding a form file\nfunc (r *multipartRequest) TrySet(value reflect.Value, field reflect.StructField, key string, opt setOptions) (isSetted bool, err error) {\n\tif value.Type() == multipartFileHeaderStructType {\n\t\t_, file, err := (*http.Request)(r).FormFile(key)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif file != nil {\n\t\t\tvalue.Set(reflect.ValueOf(*file))\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\treturn setByForm(value, field, r.MultipartForm.Value, key, opt)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/form_mapping.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gin-gonic/gin/internal/json\"\n)\n\nvar errUnknownType = errors.New(\"Unknown type\")\n\nfunc mapUri(ptr interface{}, m map[string][]string) error {\n\treturn mapFormByTag(ptr, m, \"uri\")\n}\n\nfunc mapForm(ptr interface{}, form map[string][]string) error {\n\treturn mapFormByTag(ptr, form, \"form\")\n}\n\nvar emptyField = reflect.StructField{}\n\nfunc mapFormByTag(ptr interface{}, form map[string][]string, tag string) error {\n\treturn mappingByPtr(ptr, formSource(form), tag)\n}\n\n// setter tries to set value on a walking by fields of a struct\ntype setter interface {\n\tTrySet(value reflect.Value, field reflect.StructField, key string, opt setOptions) (isSetted bool, err error)\n}\n\ntype formSource map[string][]string\n\nvar _ setter = formSource(nil)\n\n// TrySet tries to set a value by request's form source (like map[string][]string)\nfunc (form formSource) TrySet(value reflect.Value, field reflect.StructField, tagValue string, opt setOptions) (isSetted bool, err error) {\n\treturn setByForm(value, field, form, tagValue, opt)\n}\n\nfunc mappingByPtr(ptr interface{}, setter setter, tag string) error {\n\t_, err := mapping(reflect.ValueOf(ptr), emptyField, setter, tag)\n\treturn err\n}\n\nfunc mapping(value reflect.Value, field reflect.StructField, setter setter, tag string) (bool, error) {\n\tvar vKind = value.Kind()\n\n\tif vKind == reflect.Ptr {\n\t\tvar isNew bool\n\t\tvPtr := value\n\t\tif value.IsNil() {\n\t\t\tisNew = true\n\t\t\tvPtr = reflect.New(value.Type().Elem())\n\t\t}\n\t\tisSetted, err := mapping(vPtr.Elem(), field, setter, tag)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif isNew && isSetted {\n\t\t\tvalue.Set(vPtr)\n\t\t}\n\t\treturn isSetted, nil\n\t}\n\n\tok, err := tryToSetValue(value, field, setter, tag)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif ok {\n\t\treturn true, nil\n\t}\n\n\tif vKind == reflect.Struct {\n\t\ttValue := value.Type()\n\n\t\tvar isSetted bool\n\t\tfor i := 0; i < value.NumField(); i++ {\n\t\t\tif !value.Field(i).CanSet() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tok, err := mapping(value.Field(i), tValue.Field(i), setter, tag)\n\t\t\tif err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t\tisSetted = isSetted || ok\n\t\t}\n\t\treturn isSetted, nil\n\t}\n\treturn false, nil\n}\n\ntype setOptions struct {\n\tisDefaultExists bool\n\tdefaultValue    string\n}\n\nfunc tryToSetValue(value reflect.Value, field reflect.StructField, setter setter, tag string) (bool, error) {\n\tvar tagValue string\n\tvar setOpt setOptions\n\n\ttagValue = field.Tag.Get(tag)\n\ttagValue, opts := head(tagValue, \",\")\n\n\tif tagValue == \"-\" { // just ignoring this field\n\t\treturn false, nil\n\t}\n\tif tagValue == \"\" { // default value is FieldName\n\t\ttagValue = field.Name\n\t}\n\tif tagValue == \"\" { // when field is \"emptyField\" variable\n\t\treturn false, nil\n\t}\n\n\tvar opt string\n\tfor len(opts) > 0 {\n\t\topt, opts = head(opts, \",\")\n\n\t\tk, v := head(opt, \"=\")\n\t\tswitch k {\n\t\tcase \"default\":\n\t\t\tsetOpt.isDefaultExists = true\n\t\t\tsetOpt.defaultValue = v\n\t\t}\n\t}\n\n\treturn setter.TrySet(value, field, tagValue, setOpt)\n}\n\nfunc setByForm(value reflect.Value, field reflect.StructField, form map[string][]string, tagValue string, opt setOptions) (isSetted bool, err error) {\n\tvs, ok := form[tagValue]\n\tif !ok && !opt.isDefaultExists {\n\t\treturn false, nil\n\t}\n\n\tswitch value.Kind() {\n\tcase reflect.Slice:\n\t\tif !ok {\n\t\t\tvs = []string{opt.defaultValue}\n\t\t}\n\t\treturn true, setSlice(vs, value, field)\n\tcase reflect.Array:\n\t\tif !ok {\n\t\t\tvs = []string{opt.defaultValue}\n\t\t}\n\t\tif len(vs) != value.Len() {\n\t\t\treturn false, fmt.Errorf(\"%q is not valid value for %s\", vs, value.Type().String())\n\t\t}\n\t\treturn true, setArray(vs, value, field)\n\tdefault:\n\t\tvar val string\n\t\tif !ok {\n\t\t\tval = opt.defaultValue\n\t\t}\n\n\t\tif len(vs) > 0 {\n\t\t\tval = vs[0]\n\t\t}\n\t\treturn true, setWithProperType(val, value, field)\n\t}\n}\n\nfunc setWithProperType(val string, value reflect.Value, field reflect.StructField) error {\n\tswitch value.Kind() {\n\tcase reflect.Int:\n\t\treturn setIntField(val, 0, value)\n\tcase reflect.Int8:\n\t\treturn setIntField(val, 8, value)\n\tcase reflect.Int16:\n\t\treturn setIntField(val, 16, value)\n\tcase reflect.Int32:\n\t\treturn setIntField(val, 32, value)\n\tcase reflect.Int64:\n\t\tswitch value.Interface().(type) {\n\t\tcase time.Duration:\n\t\t\treturn setTimeDuration(val, value, field)\n\t\t}\n\t\treturn setIntField(val, 64, value)\n\tcase reflect.Uint:\n\t\treturn setUintField(val, 0, value)\n\tcase reflect.Uint8:\n\t\treturn setUintField(val, 8, value)\n\tcase reflect.Uint16:\n\t\treturn setUintField(val, 16, value)\n\tcase reflect.Uint32:\n\t\treturn setUintField(val, 32, value)\n\tcase reflect.Uint64:\n\t\treturn setUintField(val, 64, value)\n\tcase reflect.Bool:\n\t\treturn setBoolField(val, value)\n\tcase reflect.Float32:\n\t\treturn setFloatField(val, 32, value)\n\tcase reflect.Float64:\n\t\treturn setFloatField(val, 64, value)\n\tcase reflect.String:\n\t\tvalue.SetString(val)\n\tcase reflect.Struct:\n\t\tswitch value.Interface().(type) {\n\t\tcase time.Time:\n\t\t\treturn setTimeField(val, field, value)\n\t\t}\n\t\treturn json.Unmarshal([]byte(val), value.Addr().Interface())\n\tcase reflect.Map:\n\t\treturn json.Unmarshal([]byte(val), value.Addr().Interface())\n\tdefault:\n\t\treturn errUnknownType\n\t}\n\treturn nil\n}\n\nfunc setIntField(val string, bitSize int, field reflect.Value) error {\n\tif val == \"\" {\n\t\tval = \"0\"\n\t}\n\tintVal, err := strconv.ParseInt(val, 10, bitSize)\n\tif err == nil {\n\t\tfield.SetInt(intVal)\n\t}\n\treturn err\n}\n\nfunc setUintField(val string, bitSize int, field reflect.Value) error {\n\tif val == \"\" {\n\t\tval = \"0\"\n\t}\n\tuintVal, err := strconv.ParseUint(val, 10, bitSize)\n\tif err == nil {\n\t\tfield.SetUint(uintVal)\n\t}\n\treturn err\n}\n\nfunc setBoolField(val string, field reflect.Value) error {\n\tif val == \"\" {\n\t\tval = \"false\"\n\t}\n\tboolVal, err := strconv.ParseBool(val)\n\tif err == nil {\n\t\tfield.SetBool(boolVal)\n\t}\n\treturn err\n}\n\nfunc setFloatField(val string, bitSize int, field reflect.Value) error {\n\tif val == \"\" {\n\t\tval = \"0.0\"\n\t}\n\tfloatVal, err := strconv.ParseFloat(val, bitSize)\n\tif err == nil {\n\t\tfield.SetFloat(floatVal)\n\t}\n\treturn err\n}\n\nfunc setTimeField(val string, structField reflect.StructField, value reflect.Value) error {\n\ttimeFormat := structField.Tag.Get(\"time_format\")\n\tif timeFormat == \"\" {\n\t\ttimeFormat = time.RFC3339\n\t}\n\n\tif val == \"\" {\n\t\tvalue.Set(reflect.ValueOf(time.Time{}))\n\t\treturn nil\n\t}\n\n\tl := time.Local\n\tif isUTC, _ := strconv.ParseBool(structField.Tag.Get(\"time_utc\")); isUTC {\n\t\tl = time.UTC\n\t}\n\n\tif locTag := structField.Tag.Get(\"time_location\"); locTag != \"\" {\n\t\tloc, err := time.LoadLocation(locTag)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl = loc\n\t}\n\n\tt, err := time.ParseInLocation(timeFormat, val, l)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvalue.Set(reflect.ValueOf(t))\n\treturn nil\n}\n\nfunc setArray(vals []string, value reflect.Value, field reflect.StructField) error {\n\tfor i, s := range vals {\n\t\terr := setWithProperType(s, value.Index(i), field)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc setSlice(vals []string, value reflect.Value, field reflect.StructField) error {\n\tslice := reflect.MakeSlice(value.Type(), len(vals), len(vals))\n\terr := setArray(vals, slice, field)\n\tif err != nil {\n\t\treturn err\n\t}\n\tvalue.Set(slice)\n\treturn nil\n}\n\nfunc setTimeDuration(val string, value reflect.Value, field reflect.StructField) error {\n\td, err := time.ParseDuration(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\tvalue.Set(reflect.ValueOf(d))\n\treturn nil\n}\n\nfunc head(str, sep string) (head string, tail string) {\n\tidx := strings.Index(str, sep)\n\tif idx < 0 {\n\t\treturn str, \"\"\n\t}\n\treturn str[:idx], str[idx+len(sep):]\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/json.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin/internal/json\"\n)\n\n// EnableDecoderUseNumber is used to call the UseNumber method on the JSON\n// Decoder instance. UseNumber causes the Decoder to unmarshal a number into an\n// interface{} as a Number instead of as a float64.\nvar EnableDecoderUseNumber = false\n\ntype jsonBinding struct{}\n\nfunc (jsonBinding) Name() string {\n\treturn \"json\"\n}\n\nfunc (jsonBinding) Bind(req *http.Request, obj interface{}) error {\n\tif req == nil || req.Body == nil {\n\t\treturn fmt.Errorf(\"invalid request\")\n\t}\n\treturn decodeJSON(req.Body, obj)\n}\n\nfunc (jsonBinding) BindBody(body []byte, obj interface{}) error {\n\treturn decodeJSON(bytes.NewReader(body), obj)\n}\n\nfunc decodeJSON(r io.Reader, obj interface{}) error {\n\tdecoder := json.NewDecoder(r)\n\tif EnableDecoderUseNumber {\n\t\tdecoder.UseNumber()\n\t}\n\tif err := decoder.Decode(obj); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/msgpack.go",
    "content": "// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"github.com/ugorji/go/codec\"\n)\n\ntype msgpackBinding struct{}\n\nfunc (msgpackBinding) Name() string {\n\treturn \"msgpack\"\n}\n\nfunc (msgpackBinding) Bind(req *http.Request, obj interface{}) error {\n\treturn decodeMsgPack(req.Body, obj)\n}\n\nfunc (msgpackBinding) BindBody(body []byte, obj interface{}) error {\n\treturn decodeMsgPack(bytes.NewReader(body), obj)\n}\n\nfunc decodeMsgPack(r io.Reader, obj interface{}) error {\n\tcdc := new(codec.MsgpackHandle)\n\tif err := codec.NewDecoder(r, cdc).Decode(&obj); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/protobuf.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"io/ioutil\"\n\t\"net/http\"\n\n\t\"github.com/golang/protobuf/proto\"\n)\n\ntype protobufBinding struct{}\n\nfunc (protobufBinding) Name() string {\n\treturn \"protobuf\"\n}\n\nfunc (b protobufBinding) Bind(req *http.Request, obj interface{}) error {\n\tbuf, err := ioutil.ReadAll(req.Body)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn b.BindBody(buf, obj)\n}\n\nfunc (protobufBinding) BindBody(body []byte, obj interface{}) error {\n\tif err := proto.Unmarshal(body, obj.(proto.Message)); err != nil {\n\t\treturn err\n\t}\n\t// Here it's same to return validate(obj), but util now we can't add\n\t// `binding:\"\"` to the struct which automatically generate by gen-proto\n\treturn nil\n\t// return validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/query.go",
    "content": "// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport \"net/http\"\n\ntype queryBinding struct{}\n\nfunc (queryBinding) Name() string {\n\treturn \"query\"\n}\n\nfunc (queryBinding) Bind(req *http.Request, obj interface{}) error {\n\tvalues := req.URL.Query()\n\tif err := mapForm(obj, values); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/uri.go",
    "content": "// Copyright 2018 Gin Core Team.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\ntype uriBinding struct{}\n\nfunc (uriBinding) Name() string {\n\treturn \"uri\"\n}\n\nfunc (uriBinding) BindUri(m map[string][]string, obj interface{}) error {\n\tif err := mapUri(obj, m); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/xml.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"io\"\n\t\"net/http\"\n)\n\ntype xmlBinding struct{}\n\nfunc (xmlBinding) Name() string {\n\treturn \"xml\"\n}\n\nfunc (xmlBinding) Bind(req *http.Request, obj interface{}) error {\n\treturn decodeXML(req.Body, obj)\n}\n\nfunc (xmlBinding) BindBody(body []byte, obj interface{}) error {\n\treturn decodeXML(bytes.NewReader(body), obj)\n}\nfunc decodeXML(r io.Reader, obj interface{}) error {\n\tdecoder := xml.NewDecoder(r)\n\tif err := decoder.Decode(obj); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/binding/yaml.go",
    "content": "// Copyright 2018 Gin Core Team.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage binding\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"gopkg.in/yaml.v2\"\n)\n\ntype yamlBinding struct{}\n\nfunc (yamlBinding) Name() string {\n\treturn \"yaml\"\n}\n\nfunc (yamlBinding) Bind(req *http.Request, obj interface{}) error {\n\treturn decodeYAML(req.Body, obj)\n}\n\nfunc (yamlBinding) BindBody(body []byte, obj interface{}) error {\n\treturn decodeYAML(bytes.NewReader(body), obj)\n}\n\nfunc decodeYAML(r io.Reader, obj interface{}) error {\n\tdecoder := yaml.NewDecoder(r)\n\tif err := decoder.Decode(obj); err != nil {\n\t\treturn err\n\t}\n\treturn validate(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/codecov.yml",
    "content": "coverage:\n  notify:\n    gitter:\n      default:\n        url: https://webhooks.gitter.im/e/d90dcdeeab2f1e357165\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/context.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math\"\n\t\"mime/multipart\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gin-contrib/sse\"\n\t\"github.com/gin-gonic/gin/binding\"\n\t\"github.com/gin-gonic/gin/render\"\n)\n\n// Content-Type MIME of the most common data formats.\nconst (\n\tMIMEJSON              = binding.MIMEJSON\n\tMIMEHTML              = binding.MIMEHTML\n\tMIMEXML               = binding.MIMEXML\n\tMIMEXML2              = binding.MIMEXML2\n\tMIMEPlain             = binding.MIMEPlain\n\tMIMEPOSTForm          = binding.MIMEPOSTForm\n\tMIMEMultipartPOSTForm = binding.MIMEMultipartPOSTForm\n\tMIMEYAML              = binding.MIMEYAML\n\tBodyBytesKey          = \"_gin-gonic/gin/bodybyteskey\"\n)\n\nconst abortIndex int8 = math.MaxInt8 / 2\n\n// Context is the most important part of gin. It allows us to pass variables between middleware,\n// manage the flow, validate the JSON of a request and render a JSON response for example.\ntype Context struct {\n\twritermem responseWriter\n\tRequest   *http.Request\n\tWriter    ResponseWriter\n\n\tParams   Params\n\thandlers HandlersChain\n\tindex    int8\n\n\tengine *Engine\n\n\t// Keys is a key/value pair exclusively for the context of each request.\n\tKeys map[string]interface{}\n\n\t// Errors is a list of errors attached to all the handlers/middlewares who used this context.\n\tErrors errorMsgs\n\n\t// Accepted defines a list of manually accepted formats for content negotiation.\n\tAccepted []string\n}\n\n/************************************/\n/********** CONTEXT CREATION ********/\n/************************************/\n\nfunc (c *Context) reset() {\n\tc.Writer = &c.writermem\n\tc.Params = c.Params[0:0]\n\tc.handlers = nil\n\tc.index = -1\n\tc.Keys = nil\n\tc.Errors = c.Errors[0:0]\n\tc.Accepted = nil\n}\n\n// Copy returns a copy of the current context that can be safely used outside the request's scope.\n// This has to be used when the context has to be passed to a goroutine.\nfunc (c *Context) Copy() *Context {\n\tvar cp = *c\n\tcp.writermem.ResponseWriter = nil\n\tcp.Writer = &cp.writermem\n\tcp.index = abortIndex\n\tcp.handlers = nil\n\tcp.Keys = map[string]interface{}{}\n\tfor k, v := range c.Keys {\n\t\tcp.Keys[k] = v\n\t}\n\treturn &cp\n}\n\n// HandlerName returns the main handler's name. For example if the handler is \"handleGetUsers()\",\n// this function will return \"main.handleGetUsers\".\nfunc (c *Context) HandlerName() string {\n\treturn nameOfFunction(c.handlers.Last())\n}\n\n// HandlerNames returns a list of all registered handlers for this context in descending order,\n// following the semantics of HandlerName()\nfunc (c *Context) HandlerNames() []string {\n\thn := make([]string, 0, len(c.handlers))\n\tfor _, val := range c.handlers {\n\t\thn = append(hn, nameOfFunction(val))\n\t}\n\treturn hn\n}\n\n// Handler returns the main handler.\nfunc (c *Context) Handler() HandlerFunc {\n\treturn c.handlers.Last()\n}\n\n/************************************/\n/*********** FLOW CONTROL ***********/\n/************************************/\n\n// Next should be used only inside middleware.\n// It executes the pending handlers in the chain inside the calling handler.\n// See example in GitHub.\nfunc (c *Context) Next() {\n\tc.index++\n\tfor c.index < int8(len(c.handlers)) {\n\t\tc.handlers[c.index](c)\n\t\tc.index++\n\t}\n}\n\n// IsAborted returns true if the current context was aborted.\nfunc (c *Context) IsAborted() bool {\n\treturn c.index >= abortIndex\n}\n\n// Abort prevents pending handlers from being called. Note that this will not stop the current handler.\n// Let's say you have an authorization middleware that validates that the current request is authorized.\n// If the authorization fails (ex: the password does not match), call Abort to ensure the remaining handlers\n// for this request are not called.\nfunc (c *Context) Abort() {\n\tc.index = abortIndex\n}\n\n// AbortWithStatus calls `Abort()` and writes the headers with the specified status code.\n// For example, a failed attempt to authenticate a request could use: context.AbortWithStatus(401).\nfunc (c *Context) AbortWithStatus(code int) {\n\tc.Status(code)\n\tc.Writer.WriteHeaderNow()\n\tc.Abort()\n}\n\n// AbortWithStatusJSON calls `Abort()` and then `JSON` internally.\n// This method stops the chain, writes the status code and return a JSON body.\n// It also sets the Content-Type as \"application/json\".\nfunc (c *Context) AbortWithStatusJSON(code int, jsonObj interface{}) {\n\tc.Abort()\n\tc.JSON(code, jsonObj)\n}\n\n// AbortWithError calls `AbortWithStatus()` and `Error()` internally.\n// This method stops the chain, writes the status code and pushes the specified error to `c.Errors`.\n// See Context.Error() for more details.\nfunc (c *Context) AbortWithError(code int, err error) *Error {\n\tc.AbortWithStatus(code)\n\treturn c.Error(err)\n}\n\n/************************************/\n/********* ERROR MANAGEMENT *********/\n/************************************/\n\n// Error attaches an error to the current context. The error is pushed to a list of errors.\n// It's a good idea to call Error for each error that occurred during the resolution of a request.\n// A middleware can be used to collect all the errors and push them to a database together,\n// print a log, or append it in the HTTP response.\n// Error will panic if err is nil.\nfunc (c *Context) Error(err error) *Error {\n\tif err == nil {\n\t\tpanic(\"err is nil\")\n\t}\n\n\tparsedError, ok := err.(*Error)\n\tif !ok {\n\t\tparsedError = &Error{\n\t\t\tErr:  err,\n\t\t\tType: ErrorTypePrivate,\n\t\t}\n\t}\n\n\tc.Errors = append(c.Errors, parsedError)\n\treturn parsedError\n}\n\n/************************************/\n/******** METADATA MANAGEMENT********/\n/************************************/\n\n// Set is used to store a new key/value pair exclusively for this context.\n// It also lazy initializes  c.Keys if it was not used previously.\nfunc (c *Context) Set(key string, value interface{}) {\n\tif c.Keys == nil {\n\t\tc.Keys = make(map[string]interface{})\n\t}\n\tc.Keys[key] = value\n}\n\n// Get returns the value for the given key, ie: (value, true).\n// If the value does not exists it returns (nil, false)\nfunc (c *Context) Get(key string) (value interface{}, exists bool) {\n\tvalue, exists = c.Keys[key]\n\treturn\n}\n\n// MustGet returns the value for the given key if it exists, otherwise it panics.\nfunc (c *Context) MustGet(key string) interface{} {\n\tif value, exists := c.Get(key); exists {\n\t\treturn value\n\t}\n\tpanic(\"Key \\\"\" + key + \"\\\" does not exist\")\n}\n\n// GetString returns the value associated with the key as a string.\nfunc (c *Context) GetString(key string) (s string) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\ts, _ = val.(string)\n\t}\n\treturn\n}\n\n// GetBool returns the value associated with the key as a boolean.\nfunc (c *Context) GetBool(key string) (b bool) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tb, _ = val.(bool)\n\t}\n\treturn\n}\n\n// GetInt returns the value associated with the key as an integer.\nfunc (c *Context) GetInt(key string) (i int) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\ti, _ = val.(int)\n\t}\n\treturn\n}\n\n// GetInt64 returns the value associated with the key as an integer.\nfunc (c *Context) GetInt64(key string) (i64 int64) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\ti64, _ = val.(int64)\n\t}\n\treturn\n}\n\n// GetFloat64 returns the value associated with the key as a float64.\nfunc (c *Context) GetFloat64(key string) (f64 float64) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tf64, _ = val.(float64)\n\t}\n\treturn\n}\n\n// GetTime returns the value associated with the key as time.\nfunc (c *Context) GetTime(key string) (t time.Time) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tt, _ = val.(time.Time)\n\t}\n\treturn\n}\n\n// GetDuration returns the value associated with the key as a duration.\nfunc (c *Context) GetDuration(key string) (d time.Duration) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\td, _ = val.(time.Duration)\n\t}\n\treturn\n}\n\n// GetStringSlice returns the value associated with the key as a slice of strings.\nfunc (c *Context) GetStringSlice(key string) (ss []string) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tss, _ = val.([]string)\n\t}\n\treturn\n}\n\n// GetStringMap returns the value associated with the key as a map of interfaces.\nfunc (c *Context) GetStringMap(key string) (sm map[string]interface{}) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tsm, _ = val.(map[string]interface{})\n\t}\n\treturn\n}\n\n// GetStringMapString returns the value associated with the key as a map of strings.\nfunc (c *Context) GetStringMapString(key string) (sms map[string]string) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tsms, _ = val.(map[string]string)\n\t}\n\treturn\n}\n\n// GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings.\nfunc (c *Context) GetStringMapStringSlice(key string) (smss map[string][]string) {\n\tif val, ok := c.Get(key); ok && val != nil {\n\t\tsmss, _ = val.(map[string][]string)\n\t}\n\treturn\n}\n\n/************************************/\n/************ INPUT DATA ************/\n/************************************/\n\n// Param returns the value of the URL param.\n// It is a shortcut for c.Params.ByName(key)\n//     router.GET(\"/user/:id\", func(c *gin.Context) {\n//         // a GET request to /user/john\n//         id := c.Param(\"id\") // id == \"john\"\n//     })\nfunc (c *Context) Param(key string) string {\n\treturn c.Params.ByName(key)\n}\n\n// Query returns the keyed url query value if it exists,\n// otherwise it returns an empty string `(\"\")`.\n// It is shortcut for `c.Request.URL.Query().Get(key)`\n//     GET /path?id=1234&name=Manu&value=\n// \t   c.Query(\"id\") == \"1234\"\n// \t   c.Query(\"name\") == \"Manu\"\n// \t   c.Query(\"value\") == \"\"\n// \t   c.Query(\"wtf\") == \"\"\nfunc (c *Context) Query(key string) string {\n\tvalue, _ := c.GetQuery(key)\n\treturn value\n}\n\n// DefaultQuery returns the keyed url query value if it exists,\n// otherwise it returns the specified defaultValue string.\n// See: Query() and GetQuery() for further information.\n//     GET /?name=Manu&lastname=\n//     c.DefaultQuery(\"name\", \"unknown\") == \"Manu\"\n//     c.DefaultQuery(\"id\", \"none\") == \"none\"\n//     c.DefaultQuery(\"lastname\", \"none\") == \"\"\nfunc (c *Context) DefaultQuery(key, defaultValue string) string {\n\tif value, ok := c.GetQuery(key); ok {\n\t\treturn value\n\t}\n\treturn defaultValue\n}\n\n// GetQuery is like Query(), it returns the keyed url query value\n// if it exists `(value, true)` (even when the value is an empty string),\n// otherwise it returns `(\"\", false)`.\n// It is shortcut for `c.Request.URL.Query().Get(key)`\n//     GET /?name=Manu&lastname=\n//     (\"Manu\", true) == c.GetQuery(\"name\")\n//     (\"\", false) == c.GetQuery(\"id\")\n//     (\"\", true) == c.GetQuery(\"lastname\")\nfunc (c *Context) GetQuery(key string) (string, bool) {\n\tif values, ok := c.GetQueryArray(key); ok {\n\t\treturn values[0], ok\n\t}\n\treturn \"\", false\n}\n\n// QueryArray returns a slice of strings for a given query key.\n// The length of the slice depends on the number of params with the given key.\nfunc (c *Context) QueryArray(key string) []string {\n\tvalues, _ := c.GetQueryArray(key)\n\treturn values\n}\n\n// GetQueryArray returns a slice of strings for a given query key, plus\n// a boolean value whether at least one value exists for the given key.\nfunc (c *Context) GetQueryArray(key string) ([]string, bool) {\n\tif values, ok := c.Request.URL.Query()[key]; ok && len(values) > 0 {\n\t\treturn values, true\n\t}\n\treturn []string{}, false\n}\n\n// QueryMap returns a map for a given query key.\nfunc (c *Context) QueryMap(key string) map[string]string {\n\tdicts, _ := c.GetQueryMap(key)\n\treturn dicts\n}\n\n// GetQueryMap returns a map for a given query key, plus a boolean value\n// whether at least one value exists for the given key.\nfunc (c *Context) GetQueryMap(key string) (map[string]string, bool) {\n\treturn c.get(c.Request.URL.Query(), key)\n}\n\n// PostForm returns the specified key from a POST urlencoded form or multipart form\n// when it exists, otherwise it returns an empty string `(\"\")`.\nfunc (c *Context) PostForm(key string) string {\n\tvalue, _ := c.GetPostForm(key)\n\treturn value\n}\n\n// DefaultPostForm returns the specified key from a POST urlencoded form or multipart form\n// when it exists, otherwise it returns the specified defaultValue string.\n// See: PostForm() and GetPostForm() for further information.\nfunc (c *Context) DefaultPostForm(key, defaultValue string) string {\n\tif value, ok := c.GetPostForm(key); ok {\n\t\treturn value\n\t}\n\treturn defaultValue\n}\n\n// GetPostForm is like PostForm(key). It returns the specified key from a POST urlencoded\n// form or multipart form when it exists `(value, true)` (even when the value is an empty string),\n// otherwise it returns (\"\", false).\n// For example, during a PATCH request to update the user's email:\n//     email=mail@example.com  -->  (\"mail@example.com\", true) := GetPostForm(\"email\") // set email to \"mail@example.com\"\n// \t   email=                  -->  (\"\", true) := GetPostForm(\"email\") // set email to \"\"\n//                             -->  (\"\", false) := GetPostForm(\"email\") // do nothing with email\nfunc (c *Context) GetPostForm(key string) (string, bool) {\n\tif values, ok := c.GetPostFormArray(key); ok {\n\t\treturn values[0], ok\n\t}\n\treturn \"\", false\n}\n\n// PostFormArray returns a slice of strings for a given form key.\n// The length of the slice depends on the number of params with the given key.\nfunc (c *Context) PostFormArray(key string) []string {\n\tvalues, _ := c.GetPostFormArray(key)\n\treturn values\n}\n\n// GetPostFormArray returns a slice of strings for a given form key, plus\n// a boolean value whether at least one value exists for the given key.\nfunc (c *Context) GetPostFormArray(key string) ([]string, bool) {\n\treq := c.Request\n\tif err := req.ParseMultipartForm(c.engine.MaxMultipartMemory); err != nil {\n\t\tif err != http.ErrNotMultipart {\n\t\t\tdebugPrint(\"error on parse multipart form array: %v\", err)\n\t\t}\n\t}\n\tif values := req.PostForm[key]; len(values) > 0 {\n\t\treturn values, true\n\t}\n\treturn []string{}, false\n}\n\n// PostFormMap returns a map for a given form key.\nfunc (c *Context) PostFormMap(key string) map[string]string {\n\tdicts, _ := c.GetPostFormMap(key)\n\treturn dicts\n}\n\n// GetPostFormMap returns a map for a given form key, plus a boolean value\n// whether at least one value exists for the given key.\nfunc (c *Context) GetPostFormMap(key string) (map[string]string, bool) {\n\treq := c.Request\n\tif err := req.ParseMultipartForm(c.engine.MaxMultipartMemory); err != nil {\n\t\tif err != http.ErrNotMultipart {\n\t\t\tdebugPrint(\"error on parse multipart form map: %v\", err)\n\t\t}\n\t}\n\treturn c.get(req.PostForm, key)\n}\n\n// get is an internal method and returns a map which satisfy conditions.\nfunc (c *Context) get(m map[string][]string, key string) (map[string]string, bool) {\n\tdicts := make(map[string]string)\n\texist := false\n\tfor k, v := range m {\n\t\tif i := strings.IndexByte(k, '['); i >= 1 && k[0:i] == key {\n\t\t\tif j := strings.IndexByte(k[i+1:], ']'); j >= 1 {\n\t\t\t\texist = true\n\t\t\t\tdicts[k[i+1:][:j]] = v[0]\n\t\t\t}\n\t\t}\n\t}\n\treturn dicts, exist\n}\n\n// FormFile returns the first file for the provided form key.\nfunc (c *Context) FormFile(name string) (*multipart.FileHeader, error) {\n\tif c.Request.MultipartForm == nil {\n\t\tif err := c.Request.ParseMultipartForm(c.engine.MaxMultipartMemory); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\t_, fh, err := c.Request.FormFile(name)\n\treturn fh, err\n}\n\n// MultipartForm is the parsed multipart form, including file uploads.\nfunc (c *Context) MultipartForm() (*multipart.Form, error) {\n\terr := c.Request.ParseMultipartForm(c.engine.MaxMultipartMemory)\n\treturn c.Request.MultipartForm, err\n}\n\n// SaveUploadedFile uploads the form file to specific dst.\nfunc (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string) error {\n\tsrc, err := file.Open()\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer src.Close()\n\n\tout, err := os.Create(dst)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer out.Close()\n\n\t_, err = io.Copy(out, src)\n\treturn err\n}\n\n// Bind checks the Content-Type to select a binding engine automatically,\n// Depending the \"Content-Type\" header different bindings are used:\n//     \"application/json\" --> JSON binding\n//     \"application/xml\"  --> XML binding\n// otherwise --> returns an error.\n// It parses the request's body as JSON if Content-Type == \"application/json\" using JSON or XML as a JSON input.\n// It decodes the json payload into the struct specified as a pointer.\n// It writes a 400 error and sets Content-Type header \"text/plain\" in the response if input is not valid.\nfunc (c *Context) Bind(obj interface{}) error {\n\tb := binding.Default(c.Request.Method, c.ContentType())\n\treturn c.MustBindWith(obj, b)\n}\n\n// BindJSON is a shortcut for c.MustBindWith(obj, binding.JSON).\nfunc (c *Context) BindJSON(obj interface{}) error {\n\treturn c.MustBindWith(obj, binding.JSON)\n}\n\n// BindXML is a shortcut for c.MustBindWith(obj, binding.BindXML).\nfunc (c *Context) BindXML(obj interface{}) error {\n\treturn c.MustBindWith(obj, binding.XML)\n}\n\n// BindQuery is a shortcut for c.MustBindWith(obj, binding.Query).\nfunc (c *Context) BindQuery(obj interface{}) error {\n\treturn c.MustBindWith(obj, binding.Query)\n}\n\n// BindYAML is a shortcut for c.MustBindWith(obj, binding.YAML).\nfunc (c *Context) BindYAML(obj interface{}) error {\n\treturn c.MustBindWith(obj, binding.YAML)\n}\n\n// BindUri binds the passed struct pointer using binding.Uri.\n// It will abort the request with HTTP 400 if any error occurs.\nfunc (c *Context) BindUri(obj interface{}) error {\n\tif err := c.ShouldBindUri(obj); err != nil {\n\t\tc.AbortWithError(http.StatusBadRequest, err).SetType(ErrorTypeBind) // nolint: errcheck\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// MustBindWith binds the passed struct pointer using the specified binding engine.\n// It will abort the request with HTTP 400 if any error occurs.\n// See the binding package.\nfunc (c *Context) MustBindWith(obj interface{}, b binding.Binding) error {\n\tif err := c.ShouldBindWith(obj, b); err != nil {\n\t\tc.AbortWithError(http.StatusBadRequest, err).SetType(ErrorTypeBind) // nolint: errcheck\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// ShouldBind checks the Content-Type to select a binding engine automatically,\n// Depending the \"Content-Type\" header different bindings are used:\n//     \"application/json\" --> JSON binding\n//     \"application/xml\"  --> XML binding\n// otherwise --> returns an error\n// It parses the request's body as JSON if Content-Type == \"application/json\" using JSON or XML as a JSON input.\n// It decodes the json payload into the struct specified as a pointer.\n// Like c.Bind() but this method does not set the response status code to 400 and abort if the json is not valid.\nfunc (c *Context) ShouldBind(obj interface{}) error {\n\tb := binding.Default(c.Request.Method, c.ContentType())\n\treturn c.ShouldBindWith(obj, b)\n}\n\n// ShouldBindJSON is a shortcut for c.ShouldBindWith(obj, binding.JSON).\nfunc (c *Context) ShouldBindJSON(obj interface{}) error {\n\treturn c.ShouldBindWith(obj, binding.JSON)\n}\n\n// ShouldBindXML is a shortcut for c.ShouldBindWith(obj, binding.XML).\nfunc (c *Context) ShouldBindXML(obj interface{}) error {\n\treturn c.ShouldBindWith(obj, binding.XML)\n}\n\n// ShouldBindQuery is a shortcut for c.ShouldBindWith(obj, binding.Query).\nfunc (c *Context) ShouldBindQuery(obj interface{}) error {\n\treturn c.ShouldBindWith(obj, binding.Query)\n}\n\n// ShouldBindYAML is a shortcut for c.ShouldBindWith(obj, binding.YAML).\nfunc (c *Context) ShouldBindYAML(obj interface{}) error {\n\treturn c.ShouldBindWith(obj, binding.YAML)\n}\n\n// ShouldBindUri binds the passed struct pointer using the specified binding engine.\nfunc (c *Context) ShouldBindUri(obj interface{}) error {\n\tm := make(map[string][]string)\n\tfor _, v := range c.Params {\n\t\tm[v.Key] = []string{v.Value}\n\t}\n\treturn binding.Uri.BindUri(m, obj)\n}\n\n// ShouldBindWith binds the passed struct pointer using the specified binding engine.\n// See the binding package.\nfunc (c *Context) ShouldBindWith(obj interface{}, b binding.Binding) error {\n\treturn b.Bind(c.Request, obj)\n}\n\n// ShouldBindBodyWith is similar with ShouldBindWith, but it stores the request\n// body into the context, and reuse when it is called again.\n//\n// NOTE: This method reads the body before binding. So you should use\n// ShouldBindWith for better performance if you need to call only once.\nfunc (c *Context) ShouldBindBodyWith(obj interface{}, bb binding.BindingBody) (err error) {\n\tvar body []byte\n\tif cb, ok := c.Get(BodyBytesKey); ok {\n\t\tif cbb, ok := cb.([]byte); ok {\n\t\t\tbody = cbb\n\t\t}\n\t}\n\tif body == nil {\n\t\tbody, err = ioutil.ReadAll(c.Request.Body)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tc.Set(BodyBytesKey, body)\n\t}\n\treturn bb.BindBody(body, obj)\n}\n\n// ClientIP implements a best effort algorithm to return the real client IP, it parses\n// X-Real-IP and X-Forwarded-For in order to work properly with reverse-proxies such us: nginx or haproxy.\n// Use X-Forwarded-For before X-Real-Ip as nginx uses X-Real-Ip with the proxy's IP.\nfunc (c *Context) ClientIP() string {\n\tif c.engine.ForwardedByClientIP {\n\t\tclientIP := c.requestHeader(\"X-Forwarded-For\")\n\t\tclientIP = strings.TrimSpace(strings.Split(clientIP, \",\")[0])\n\t\tif clientIP == \"\" {\n\t\t\tclientIP = strings.TrimSpace(c.requestHeader(\"X-Real-Ip\"))\n\t\t}\n\t\tif clientIP != \"\" {\n\t\t\treturn clientIP\n\t\t}\n\t}\n\n\tif c.engine.AppEngine {\n\t\tif addr := c.requestHeader(\"X-Appengine-Remote-Addr\"); addr != \"\" {\n\t\t\treturn addr\n\t\t}\n\t}\n\n\tif ip, _, err := net.SplitHostPort(strings.TrimSpace(c.Request.RemoteAddr)); err == nil {\n\t\treturn ip\n\t}\n\n\treturn \"\"\n}\n\n// ContentType returns the Content-Type header of the request.\nfunc (c *Context) ContentType() string {\n\treturn filterFlags(c.requestHeader(\"Content-Type\"))\n}\n\n// IsWebsocket returns true if the request headers indicate that a websocket\n// handshake is being initiated by the client.\nfunc (c *Context) IsWebsocket() bool {\n\tif strings.Contains(strings.ToLower(c.requestHeader(\"Connection\")), \"upgrade\") &&\n\t\tstrings.ToLower(c.requestHeader(\"Upgrade\")) == \"websocket\" {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (c *Context) requestHeader(key string) string {\n\treturn c.Request.Header.Get(key)\n}\n\n/************************************/\n/******** RESPONSE RENDERING ********/\n/************************************/\n\n// bodyAllowedForStatus is a copy of http.bodyAllowedForStatus non-exported function.\nfunc bodyAllowedForStatus(status int) bool {\n\tswitch {\n\tcase status >= 100 && status <= 199:\n\t\treturn false\n\tcase status == http.StatusNoContent:\n\t\treturn false\n\tcase status == http.StatusNotModified:\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Status sets the HTTP response code.\nfunc (c *Context) Status(code int) {\n\tc.writermem.WriteHeader(code)\n}\n\n// Header is a intelligent shortcut for c.Writer.Header().Set(key, value).\n// It writes a header in the response.\n// If value == \"\", this method removes the header `c.Writer.Header().Del(key)`\nfunc (c *Context) Header(key, value string) {\n\tif value == \"\" {\n\t\tc.Writer.Header().Del(key)\n\t\treturn\n\t}\n\tc.Writer.Header().Set(key, value)\n}\n\n// GetHeader returns value from request headers.\nfunc (c *Context) GetHeader(key string) string {\n\treturn c.requestHeader(key)\n}\n\n// GetRawData return stream data.\nfunc (c *Context) GetRawData() ([]byte, error) {\n\treturn ioutil.ReadAll(c.Request.Body)\n}\n\n// SetCookie adds a Set-Cookie header to the ResponseWriter's headers.\n// The provided cookie must have a valid Name. Invalid cookies may be\n// silently dropped.\nfunc (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool) {\n\tif path == \"\" {\n\t\tpath = \"/\"\n\t}\n\thttp.SetCookie(c.Writer, &http.Cookie{\n\t\tName:     name,\n\t\tValue:    url.QueryEscape(value),\n\t\tMaxAge:   maxAge,\n\t\tPath:     path,\n\t\tDomain:   domain,\n\t\tSecure:   secure,\n\t\tHttpOnly: httpOnly,\n\t})\n}\n\n// Cookie returns the named cookie provided in the request or\n// ErrNoCookie if not found. And return the named cookie is unescaped.\n// If multiple cookies match the given name, only one cookie will\n// be returned.\nfunc (c *Context) Cookie(name string) (string, error) {\n\tcookie, err := c.Request.Cookie(name)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tval, _ := url.QueryUnescape(cookie.Value)\n\treturn val, nil\n}\n\n// Render writes the response headers and calls render.Render to render data.\nfunc (c *Context) Render(code int, r render.Render) {\n\tc.Status(code)\n\n\tif !bodyAllowedForStatus(code) {\n\t\tr.WriteContentType(c.Writer)\n\t\tc.Writer.WriteHeaderNow()\n\t\treturn\n\t}\n\n\tif err := r.Render(c.Writer); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// HTML renders the HTTP template specified by its file name.\n// It also updates the HTTP code and sets the Content-Type as \"text/html\".\n// See http://golang.org/doc/articles/wiki/\nfunc (c *Context) HTML(code int, name string, obj interface{}) {\n\tinstance := c.engine.HTMLRender.Instance(name, obj)\n\tc.Render(code, instance)\n}\n\n// IndentedJSON serializes the given struct as pretty JSON (indented + endlines) into the response body.\n// It also sets the Content-Type as \"application/json\".\n// WARNING: we recommend to use this only for development purposes since printing pretty JSON is\n// more CPU and bandwidth consuming. Use Context.JSON() instead.\nfunc (c *Context) IndentedJSON(code int, obj interface{}) {\n\tc.Render(code, render.IndentedJSON{Data: obj})\n}\n\n// SecureJSON serializes the given struct as Secure JSON into the response body.\n// Default prepends \"while(1),\" to response body if the given struct is array values.\n// It also sets the Content-Type as \"application/json\".\nfunc (c *Context) SecureJSON(code int, obj interface{}) {\n\tc.Render(code, render.SecureJSON{Prefix: c.engine.secureJsonPrefix, Data: obj})\n}\n\n// JSONP serializes the given struct as JSON into the response body.\n// It add padding to response body to request data from a server residing in a different domain than the client.\n// It also sets the Content-Type as \"application/javascript\".\nfunc (c *Context) JSONP(code int, obj interface{}) {\n\tcallback := c.DefaultQuery(\"callback\", \"\")\n\tif callback == \"\" {\n\t\tc.Render(code, render.JSON{Data: obj})\n\t\treturn\n\t}\n\tc.Render(code, render.JsonpJSON{Callback: callback, Data: obj})\n}\n\n// JSON serializes the given struct as JSON into the response body.\n// It also sets the Content-Type as \"application/json\".\nfunc (c *Context) JSON(code int, obj interface{}) {\n\tc.Render(code, render.JSON{Data: obj})\n}\n\n// AsciiJSON serializes the given struct as JSON into the response body with unicode to ASCII string.\n// It also sets the Content-Type as \"application/json\".\nfunc (c *Context) AsciiJSON(code int, obj interface{}) {\n\tc.Render(code, render.AsciiJSON{Data: obj})\n}\n\n// PureJSON serializes the given struct as JSON into the response body.\n// PureJSON, unlike JSON, does not replace special html characters with their unicode entities.\nfunc (c *Context) PureJSON(code int, obj interface{}) {\n\tc.Render(code, render.PureJSON{Data: obj})\n}\n\n// XML serializes the given struct as XML into the response body.\n// It also sets the Content-Type as \"application/xml\".\nfunc (c *Context) XML(code int, obj interface{}) {\n\tc.Render(code, render.XML{Data: obj})\n}\n\n// YAML serializes the given struct as YAML into the response body.\nfunc (c *Context) YAML(code int, obj interface{}) {\n\tc.Render(code, render.YAML{Data: obj})\n}\n\n// ProtoBuf serializes the given struct as ProtoBuf into the response body.\nfunc (c *Context) ProtoBuf(code int, obj interface{}) {\n\tc.Render(code, render.ProtoBuf{Data: obj})\n}\n\n// String writes the given string into the response body.\nfunc (c *Context) String(code int, format string, values ...interface{}) {\n\tc.Render(code, render.String{Format: format, Data: values})\n}\n\n// Redirect returns a HTTP redirect to the specific location.\nfunc (c *Context) Redirect(code int, location string) {\n\tc.Render(-1, render.Redirect{\n\t\tCode:     code,\n\t\tLocation: location,\n\t\tRequest:  c.Request,\n\t})\n}\n\n// Data writes some data into the body stream and updates the HTTP code.\nfunc (c *Context) Data(code int, contentType string, data []byte) {\n\tc.Render(code, render.Data{\n\t\tContentType: contentType,\n\t\tData:        data,\n\t})\n}\n\n// DataFromReader writes the specified reader into the body stream and updates the HTTP code.\nfunc (c *Context) DataFromReader(code int, contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string) {\n\tc.Render(code, render.Reader{\n\t\tHeaders:       extraHeaders,\n\t\tContentType:   contentType,\n\t\tContentLength: contentLength,\n\t\tReader:        reader,\n\t})\n}\n\n// File writes the specified file into the body stream in a efficient way.\nfunc (c *Context) File(filepath string) {\n\thttp.ServeFile(c.Writer, c.Request, filepath)\n}\n\n// FileAttachment writes the specified file into the body stream in an efficient way\n// On the client side, the file will typically be downloaded with the given filename\nfunc (c *Context) FileAttachment(filepath, filename string) {\n\tc.Writer.Header().Set(\"content-disposition\", fmt.Sprintf(\"attachment; filename=\\\"%s\\\"\", filename))\n\thttp.ServeFile(c.Writer, c.Request, filepath)\n}\n\n// SSEvent writes a Server-Sent Event into the body stream.\nfunc (c *Context) SSEvent(name string, message interface{}) {\n\tc.Render(-1, sse.Event{\n\t\tEvent: name,\n\t\tData:  message,\n\t})\n}\n\n// Stream sends a streaming response and returns a boolean\n// indicates \"Is client disconnected in middle of stream\"\nfunc (c *Context) Stream(step func(w io.Writer) bool) bool {\n\tw := c.Writer\n\tclientGone := w.CloseNotify()\n\tfor {\n\t\tselect {\n\t\tcase <-clientGone:\n\t\t\treturn true\n\t\tdefault:\n\t\t\tkeepOpen := step(w)\n\t\t\tw.Flush()\n\t\t\tif !keepOpen {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n}\n\n/************************************/\n/******** CONTENT NEGOTIATION *******/\n/************************************/\n\n// Negotiate contains all negotiations data.\ntype Negotiate struct {\n\tOffered  []string\n\tHTMLName string\n\tHTMLData interface{}\n\tJSONData interface{}\n\tXMLData  interface{}\n\tData     interface{}\n}\n\n// Negotiate calls different Render according acceptable Accept format.\nfunc (c *Context) Negotiate(code int, config Negotiate) {\n\tswitch c.NegotiateFormat(config.Offered...) {\n\tcase binding.MIMEJSON:\n\t\tdata := chooseData(config.JSONData, config.Data)\n\t\tc.JSON(code, data)\n\n\tcase binding.MIMEHTML:\n\t\tdata := chooseData(config.HTMLData, config.Data)\n\t\tc.HTML(code, config.HTMLName, data)\n\n\tcase binding.MIMEXML:\n\t\tdata := chooseData(config.XMLData, config.Data)\n\t\tc.XML(code, data)\n\n\tdefault:\n\t\tc.AbortWithError(http.StatusNotAcceptable, errors.New(\"the accepted formats are not offered by the server\")) // nolint: errcheck\n\t}\n}\n\n// NegotiateFormat returns an acceptable Accept format.\nfunc (c *Context) NegotiateFormat(offered ...string) string {\n\tassert1(len(offered) > 0, \"you must provide at least one offer\")\n\n\tif c.Accepted == nil {\n\t\tc.Accepted = parseAccept(c.requestHeader(\"Accept\"))\n\t}\n\tif len(c.Accepted) == 0 {\n\t\treturn offered[0]\n\t}\n\tfor _, accepted := range c.Accepted {\n\t\tfor _, offert := range offered {\n\t\t\t// According to RFC 2616 and RFC 2396, non-ASCII characters are not allowed in headers,\n\t\t\t// therefore we can just iterate over the string without casting it into []rune\n\t\t\ti := 0\n\t\t\tfor ; i < len(accepted); i++ {\n\t\t\t\tif accepted[i] == '*' || offert[i] == '*' {\n\t\t\t\t\treturn offert\n\t\t\t\t}\n\t\t\t\tif accepted[i] != offert[i] {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif i == len(accepted) {\n\t\t\t\treturn offert\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// SetAccepted sets Accept header data.\nfunc (c *Context) SetAccepted(formats ...string) {\n\tc.Accepted = formats\n}\n\n/************************************/\n/***** GOLANG.ORG/X/NET/CONTEXT *****/\n/************************************/\n\n// Deadline returns the time when work done on behalf of this context\n// should be canceled. Deadline returns ok==false when no deadline is\n// set. Successive calls to Deadline return the same results.\nfunc (c *Context) Deadline() (deadline time.Time, ok bool) {\n\treturn\n}\n\n// Done returns a channel that's closed when work done on behalf of this\n// context should be canceled. Done may return nil if this context can\n// never be canceled. Successive calls to Done return the same value.\nfunc (c *Context) Done() <-chan struct{} {\n\treturn nil\n}\n\n// Err returns a non-nil error value after Done is closed,\n// successive calls to Err return the same error.\n// If Done is not yet closed, Err returns nil.\n// If Done is closed, Err returns a non-nil error explaining why:\n// Canceled if the context was canceled\n// or DeadlineExceeded if the context's deadline passed.\nfunc (c *Context) Err() error {\n\treturn nil\n}\n\n// Value returns the value associated with this context for key, or nil\n// if no value is associated with key. Successive calls to Value with\n// the same key returns the same result.\nfunc (c *Context) Value(key interface{}) interface{} {\n\tif key == 0 {\n\t\treturn c.Request\n\t}\n\tif keyAsString, ok := key.(string); ok {\n\t\tval, _ := c.Get(keyAsString)\n\t\treturn val\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/context_appengine.go",
    "content": "// +build appengine\n\n// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nfunc init() {\n\tdefaultAppEngine = true\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/debug.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"os\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst ginSupportMinGoVer = 8\n\n// IsDebugging returns true if the framework is running in debug mode.\n// Use SetMode(gin.ReleaseMode) to disable debug mode.\nfunc IsDebugging() bool {\n\treturn ginMode == debugCode\n}\n\n// DebugPrintRouteFunc indicates debug log output format.\nvar DebugPrintRouteFunc func(httpMethod, absolutePath, handlerName string, nuHandlers int)\n\nfunc debugPrintRoute(httpMethod, absolutePath string, handlers HandlersChain) {\n\tif IsDebugging() {\n\t\tnuHandlers := len(handlers)\n\t\thandlerName := nameOfFunction(handlers.Last())\n\t\tif DebugPrintRouteFunc == nil {\n\t\t\tdebugPrint(\"%-6s %-25s --> %s (%d handlers)\\n\", httpMethod, absolutePath, handlerName, nuHandlers)\n\t\t} else {\n\t\t\tDebugPrintRouteFunc(httpMethod, absolutePath, handlerName, nuHandlers)\n\t\t}\n\t}\n}\n\nfunc debugPrintLoadTemplate(tmpl *template.Template) {\n\tif IsDebugging() {\n\t\tvar buf bytes.Buffer\n\t\tfor _, tmpl := range tmpl.Templates() {\n\t\t\tbuf.WriteString(\"\\t- \")\n\t\t\tbuf.WriteString(tmpl.Name())\n\t\t\tbuf.WriteString(\"\\n\")\n\t\t}\n\t\tdebugPrint(\"Loaded HTML Templates (%d): \\n%s\\n\", len(tmpl.Templates()), buf.String())\n\t}\n}\n\nfunc debugPrint(format string, values ...interface{}) {\n\tif IsDebugging() {\n\t\tif !strings.HasSuffix(format, \"\\n\") {\n\t\t\tformat += \"\\n\"\n\t\t}\n\t\tfmt.Fprintf(os.Stderr, \"[GIN-debug] \"+format, values...)\n\t}\n}\n\nfunc getMinVer(v string) (uint64, error) {\n\tfirst := strings.IndexByte(v, '.')\n\tlast := strings.LastIndexByte(v, '.')\n\tif first == last {\n\t\treturn strconv.ParseUint(v[first+1:], 10, 64)\n\t}\n\treturn strconv.ParseUint(v[first+1:last], 10, 64)\n}\n\nfunc debugPrintWARNINGDefault() {\n\tif v, e := getMinVer(runtime.Version()); e == nil && v <= ginSupportMinGoVer {\n\t\tdebugPrint(`[WARNING] Now Gin requires Go 1.8 or later and Go 1.9 will be required soon.\n\n`)\n\t}\n\tdebugPrint(`[WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.\n\n`)\n}\n\nfunc debugPrintWARNINGNew() {\n\tdebugPrint(`[WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production.\n - using env:\texport GIN_MODE=release\n - using code:\tgin.SetMode(gin.ReleaseMode)\n\n`)\n}\n\nfunc debugPrintWARNINGSetHTMLTemplate() {\n\tdebugPrint(`[WARNING] Since SetHTMLTemplate() is NOT thread-safe. It should only be called\nat initialization. ie. before any route is registered or the router is listening in a socket:\n\n\trouter := gin.Default()\n\trouter.SetHTMLTemplate(template) // << good place\n\n`)\n}\n\nfunc debugPrintError(err error) {\n\tif err != nil {\n\t\tdebugPrint(\"[ERROR] %v\\n\", err)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/deprecated.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"log\"\n\n\t\"github.com/gin-gonic/gin/binding\"\n)\n\n// BindWith binds the passed struct pointer using the specified binding engine.\n// See the binding package.\nfunc (c *Context) BindWith(obj interface{}, b binding.Binding) error {\n\tlog.Println(`BindWith(\\\"interface{}, binding.Binding\\\") error is going to\n\tbe deprecated, please check issue #662 and either use MustBindWith() if you\n\twant HTTP 400 to be automatically returned if any error occur, or use\n\tShouldBindWith() if you need to manage the error.`)\n\treturn c.MustBindWith(obj, b)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/doc.go",
    "content": "/*\nPackage gin implements a HTTP web framework called gin.\n\nSee https://gin-gonic.com/ for more information about gin.\n*/\npackage gin // import \"github.com/gin-gonic/gin\"\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/errors.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"github.com/gin-gonic/gin/internal/json\"\n)\n\n// ErrorType is an unsigned 64-bit error code as defined in the gin spec.\ntype ErrorType uint64\n\nconst (\n\t// ErrorTypeBind is used when Context.Bind() fails.\n\tErrorTypeBind ErrorType = 1 << 63\n\t// ErrorTypeRender is used when Context.Render() fails.\n\tErrorTypeRender ErrorType = 1 << 62\n\t// ErrorTypePrivate indicates a private error.\n\tErrorTypePrivate ErrorType = 1 << 0\n\t// ErrorTypePublic indicates a public error.\n\tErrorTypePublic ErrorType = 1 << 1\n\t// ErrorTypeAny indicates any other error.\n\tErrorTypeAny ErrorType = 1<<64 - 1\n\t// ErrorTypeNu indicates any other error.\n\tErrorTypeNu = 2\n)\n\n// Error represents a error's specification.\ntype Error struct {\n\tErr  error\n\tType ErrorType\n\tMeta interface{}\n}\n\ntype errorMsgs []*Error\n\nvar _ error = &Error{}\n\n// SetType sets the error's type.\nfunc (msg *Error) SetType(flags ErrorType) *Error {\n\tmsg.Type = flags\n\treturn msg\n}\n\n// SetMeta sets the error's meta data.\nfunc (msg *Error) SetMeta(data interface{}) *Error {\n\tmsg.Meta = data\n\treturn msg\n}\n\n// JSON creates a properly formatted JSON\nfunc (msg *Error) JSON() interface{} {\n\tjson := H{}\n\tif msg.Meta != nil {\n\t\tvalue := reflect.ValueOf(msg.Meta)\n\t\tswitch value.Kind() {\n\t\tcase reflect.Struct:\n\t\t\treturn msg.Meta\n\t\tcase reflect.Map:\n\t\t\tfor _, key := range value.MapKeys() {\n\t\t\t\tjson[key.String()] = value.MapIndex(key).Interface()\n\t\t\t}\n\t\tdefault:\n\t\t\tjson[\"meta\"] = msg.Meta\n\t\t}\n\t}\n\tif _, ok := json[\"error\"]; !ok {\n\t\tjson[\"error\"] = msg.Error()\n\t}\n\treturn json\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (msg *Error) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(msg.JSON())\n}\n\n// Error implements the error interface.\nfunc (msg Error) Error() string {\n\treturn msg.Err.Error()\n}\n\n// IsType judges one error.\nfunc (msg *Error) IsType(flags ErrorType) bool {\n\treturn (msg.Type & flags) > 0\n}\n\n// ByType returns a readonly copy filtered the byte.\n// ie ByType(gin.ErrorTypePublic) returns a slice of errors with type=ErrorTypePublic.\nfunc (a errorMsgs) ByType(typ ErrorType) errorMsgs {\n\tif len(a) == 0 {\n\t\treturn nil\n\t}\n\tif typ == ErrorTypeAny {\n\t\treturn a\n\t}\n\tvar result errorMsgs\n\tfor _, msg := range a {\n\t\tif msg.IsType(typ) {\n\t\t\tresult = append(result, msg)\n\t\t}\n\t}\n\treturn result\n}\n\n// Last returns the last error in the slice. It returns nil if the array is empty.\n// Shortcut for errors[len(errors)-1].\nfunc (a errorMsgs) Last() *Error {\n\tif length := len(a); length > 0 {\n\t\treturn a[length-1]\n\t}\n\treturn nil\n}\n\n// Errors returns an array will all the error messages.\n// Example:\n// \t\tc.Error(errors.New(\"first\"))\n// \t\tc.Error(errors.New(\"second\"))\n// \t\tc.Error(errors.New(\"third\"))\n// \t\tc.Errors.Errors() // == []string{\"first\", \"second\", \"third\"}\nfunc (a errorMsgs) Errors() []string {\n\tif len(a) == 0 {\n\t\treturn nil\n\t}\n\terrorStrings := make([]string, len(a))\n\tfor i, err := range a {\n\t\terrorStrings[i] = err.Error()\n\t}\n\treturn errorStrings\n}\n\nfunc (a errorMsgs) JSON() interface{} {\n\tswitch len(a) {\n\tcase 0:\n\t\treturn nil\n\tcase 1:\n\t\treturn a.Last().JSON()\n\tdefault:\n\t\tjson := make([]interface{}, len(a))\n\t\tfor i, err := range a {\n\t\t\tjson[i] = err.JSON()\n\t\t}\n\t\treturn json\n\t}\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (a errorMsgs) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(a.JSON())\n}\n\nfunc (a errorMsgs) String() string {\n\tif len(a) == 0 {\n\t\treturn \"\"\n\t}\n\tvar buffer bytes.Buffer\n\tfor i, msg := range a {\n\t\tfmt.Fprintf(&buffer, \"Error #%02d: %s\\n\", i+1, msg.Err)\n\t\tif msg.Meta != nil {\n\t\t\tfmt.Fprintf(&buffer, \"     Meta: %v\\n\", msg.Meta)\n\t\t}\n\t}\n\treturn buffer.String()\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/fs.go",
    "content": "// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"net/http\"\n\t\"os\"\n)\n\ntype onlyfilesFS struct {\n\tfs http.FileSystem\n}\n\ntype neuteredReaddirFile struct {\n\thttp.File\n}\n\n// Dir returns a http.Filesystem that can be used by http.FileServer(). It is used internally\n// in router.Static().\n// if listDirectory == true, then it works the same as http.Dir() otherwise it returns\n// a filesystem that prevents http.FileServer() to list the directory files.\nfunc Dir(root string, listDirectory bool) http.FileSystem {\n\tfs := http.Dir(root)\n\tif listDirectory {\n\t\treturn fs\n\t}\n\treturn &onlyfilesFS{fs}\n}\n\n// Open conforms to http.Filesystem.\nfunc (fs onlyfilesFS) Open(name string) (http.File, error) {\n\tf, err := fs.fs.Open(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn neuteredReaddirFile{f}, nil\n}\n\n// Readdir overrides the http.File default implementation.\nfunc (f neuteredReaddirFile) Readdir(count int) ([]os.FileInfo, error) {\n\t// this disables directory listing\n\treturn nil, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/gin.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"fmt\"\n\t\"html/template\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"path\"\n\t\"sync\"\n\n\t\"github.com/gin-gonic/gin/render\"\n)\n\nconst defaultMultipartMemory = 32 << 20 // 32 MB\n\nvar (\n\tdefault404Body   = []byte(\"404 page not found\")\n\tdefault405Body   = []byte(\"405 method not allowed\")\n\tdefaultAppEngine bool\n)\n\n// HandlerFunc defines the handler used by gin middleware as return value.\ntype HandlerFunc func(*Context)\n\n// HandlersChain defines a HandlerFunc array.\ntype HandlersChain []HandlerFunc\n\n// Last returns the last handler in the chain. ie. the last handler is the main own.\nfunc (c HandlersChain) Last() HandlerFunc {\n\tif length := len(c); length > 0 {\n\t\treturn c[length-1]\n\t}\n\treturn nil\n}\n\n// RouteInfo represents a request route's specification which contains method and path and its handler.\ntype RouteInfo struct {\n\tMethod      string\n\tPath        string\n\tHandler     string\n\tHandlerFunc HandlerFunc\n}\n\n// RoutesInfo defines a RouteInfo array.\ntype RoutesInfo []RouteInfo\n\n// Engine is the framework's instance, it contains the muxer, middleware and configuration settings.\n// Create an instance of Engine, by using New() or Default()\ntype Engine struct {\n\tRouterGroup\n\n\t// Enables automatic redirection if the current route can't be matched but a\n\t// handler for the path with (without) the trailing slash exists.\n\t// For example if /foo/ is requested but a route only exists for /foo, the\n\t// client is redirected to /foo with http status code 301 for GET requests\n\t// and 307 for all other request methods.\n\tRedirectTrailingSlash bool\n\n\t// If enabled, the router tries to fix the current request path, if no\n\t// handle is registered for it.\n\t// First superfluous path elements like ../ or // are removed.\n\t// Afterwards the router does a case-insensitive lookup of the cleaned path.\n\t// If a handle can be found for this route, the router makes a redirection\n\t// to the corrected path with status code 301 for GET requests and 307 for\n\t// all other request methods.\n\t// For example /FOO and /..//Foo could be redirected to /foo.\n\t// RedirectTrailingSlash is independent of this option.\n\tRedirectFixedPath bool\n\n\t// If enabled, the router checks if another method is allowed for the\n\t// current route, if the current request can not be routed.\n\t// If this is the case, the request is answered with 'Method Not Allowed'\n\t// and HTTP status code 405.\n\t// If no other Method is allowed, the request is delegated to the NotFound\n\t// handler.\n\tHandleMethodNotAllowed bool\n\tForwardedByClientIP    bool\n\n\t// #726 #755 If enabled, it will thrust some headers starting with\n\t// 'X-AppEngine...' for better integration with that PaaS.\n\tAppEngine bool\n\n\t// If enabled, the url.RawPath will be used to find parameters.\n\tUseRawPath bool\n\n\t// If true, the path value will be unescaped.\n\t// If UseRawPath is false (by default), the UnescapePathValues effectively is true,\n\t// as url.Path gonna be used, which is already unescaped.\n\tUnescapePathValues bool\n\n\t// Value of 'maxMemory' param that is given to http.Request's ParseMultipartForm\n\t// method call.\n\tMaxMultipartMemory int64\n\n\tdelims           render.Delims\n\tsecureJsonPrefix string\n\tHTMLRender       render.HTMLRender\n\tFuncMap          template.FuncMap\n\tallNoRoute       HandlersChain\n\tallNoMethod      HandlersChain\n\tnoRoute          HandlersChain\n\tnoMethod         HandlersChain\n\tpool             sync.Pool\n\ttrees            methodTrees\n}\n\nvar _ IRouter = &Engine{}\n\n// New returns a new blank Engine instance without any middleware attached.\n// By default the configuration is:\n// - RedirectTrailingSlash:  true\n// - RedirectFixedPath:      false\n// - HandleMethodNotAllowed: false\n// - ForwardedByClientIP:    true\n// - UseRawPath:             false\n// - UnescapePathValues:     true\nfunc New() *Engine {\n\tdebugPrintWARNINGNew()\n\tengine := &Engine{\n\t\tRouterGroup: RouterGroup{\n\t\t\tHandlers: nil,\n\t\t\tbasePath: \"/\",\n\t\t\troot:     true,\n\t\t},\n\t\tFuncMap:                template.FuncMap{},\n\t\tRedirectTrailingSlash:  true,\n\t\tRedirectFixedPath:      false,\n\t\tHandleMethodNotAllowed: false,\n\t\tForwardedByClientIP:    true,\n\t\tAppEngine:              defaultAppEngine,\n\t\tUseRawPath:             false,\n\t\tUnescapePathValues:     true,\n\t\tMaxMultipartMemory:     defaultMultipartMemory,\n\t\ttrees:                  make(methodTrees, 0, 9),\n\t\tdelims:                 render.Delims{Left: \"{{\", Right: \"}}\"},\n\t\tsecureJsonPrefix:       \"while(1);\",\n\t}\n\tengine.RouterGroup.engine = engine\n\tengine.pool.New = func() interface{} {\n\t\treturn engine.allocateContext()\n\t}\n\treturn engine\n}\n\n// Default returns an Engine instance with the Logger and Recovery middleware already attached.\nfunc Default() *Engine {\n\tdebugPrintWARNINGDefault()\n\tengine := New()\n\tengine.Use(Logger(), Recovery())\n\treturn engine\n}\n\nfunc (engine *Engine) allocateContext() *Context {\n\treturn &Context{engine: engine}\n}\n\n// Delims sets template left and right delims and returns a Engine instance.\nfunc (engine *Engine) Delims(left, right string) *Engine {\n\tengine.delims = render.Delims{Left: left, Right: right}\n\treturn engine\n}\n\n// SecureJsonPrefix sets the secureJsonPrefix used in Context.SecureJSON.\nfunc (engine *Engine) SecureJsonPrefix(prefix string) *Engine {\n\tengine.secureJsonPrefix = prefix\n\treturn engine\n}\n\n// LoadHTMLGlob loads HTML files identified by glob pattern\n// and associates the result with HTML renderer.\nfunc (engine *Engine) LoadHTMLGlob(pattern string) {\n\tleft := engine.delims.Left\n\tright := engine.delims.Right\n\ttempl := template.Must(template.New(\"\").Delims(left, right).Funcs(engine.FuncMap).ParseGlob(pattern))\n\n\tif IsDebugging() {\n\t\tdebugPrintLoadTemplate(templ)\n\t\tengine.HTMLRender = render.HTMLDebug{Glob: pattern, FuncMap: engine.FuncMap, Delims: engine.delims}\n\t\treturn\n\t}\n\n\tengine.SetHTMLTemplate(templ)\n}\n\n// LoadHTMLFiles loads a slice of HTML files\n// and associates the result with HTML renderer.\nfunc (engine *Engine) LoadHTMLFiles(files ...string) {\n\tif IsDebugging() {\n\t\tengine.HTMLRender = render.HTMLDebug{Files: files, FuncMap: engine.FuncMap, Delims: engine.delims}\n\t\treturn\n\t}\n\n\ttempl := template.Must(template.New(\"\").Delims(engine.delims.Left, engine.delims.Right).Funcs(engine.FuncMap).ParseFiles(files...))\n\tengine.SetHTMLTemplate(templ)\n}\n\n// SetHTMLTemplate associate a template with HTML renderer.\nfunc (engine *Engine) SetHTMLTemplate(templ *template.Template) {\n\tif len(engine.trees) > 0 {\n\t\tdebugPrintWARNINGSetHTMLTemplate()\n\t}\n\n\tengine.HTMLRender = render.HTMLProduction{Template: templ.Funcs(engine.FuncMap)}\n}\n\n// SetFuncMap sets the FuncMap used for template.FuncMap.\nfunc (engine *Engine) SetFuncMap(funcMap template.FuncMap) {\n\tengine.FuncMap = funcMap\n}\n\n// NoRoute adds handlers for NoRoute. It return a 404 code by default.\nfunc (engine *Engine) NoRoute(handlers ...HandlerFunc) {\n\tengine.noRoute = handlers\n\tengine.rebuild404Handlers()\n}\n\n// NoMethod sets the handlers called when... TODO.\nfunc (engine *Engine) NoMethod(handlers ...HandlerFunc) {\n\tengine.noMethod = handlers\n\tengine.rebuild405Handlers()\n}\n\n// Use attaches a global middleware to the router. ie. the middleware attached though Use() will be\n// included in the handlers chain for every single request. Even 404, 405, static files...\n// For example, this is the right place for a logger or error management middleware.\nfunc (engine *Engine) Use(middleware ...HandlerFunc) IRoutes {\n\tengine.RouterGroup.Use(middleware...)\n\tengine.rebuild404Handlers()\n\tengine.rebuild405Handlers()\n\treturn engine\n}\n\nfunc (engine *Engine) rebuild404Handlers() {\n\tengine.allNoRoute = engine.combineHandlers(engine.noRoute)\n}\n\nfunc (engine *Engine) rebuild405Handlers() {\n\tengine.allNoMethod = engine.combineHandlers(engine.noMethod)\n}\n\nfunc (engine *Engine) addRoute(method, path string, handlers HandlersChain) {\n\tassert1(path[0] == '/', \"path must begin with '/'\")\n\tassert1(method != \"\", \"HTTP method can not be empty\")\n\tassert1(len(handlers) > 0, \"there must be at least one handler\")\n\n\tdebugPrintRoute(method, path, handlers)\n\troot := engine.trees.get(method)\n\tif root == nil {\n\t\troot = new(node)\n\t\tengine.trees = append(engine.trees, methodTree{method: method, root: root})\n\t}\n\troot.addRoute(path, handlers)\n}\n\n// Routes returns a slice of registered routes, including some useful information, such as:\n// the http method, path and the handler name.\nfunc (engine *Engine) Routes() (routes RoutesInfo) {\n\tfor _, tree := range engine.trees {\n\t\troutes = iterate(\"\", tree.method, routes, tree.root)\n\t}\n\treturn routes\n}\n\nfunc iterate(path, method string, routes RoutesInfo, root *node) RoutesInfo {\n\tpath += root.path\n\tif len(root.handlers) > 0 {\n\t\thandlerFunc := root.handlers.Last()\n\t\troutes = append(routes, RouteInfo{\n\t\t\tMethod:      method,\n\t\t\tPath:        path,\n\t\t\tHandler:     nameOfFunction(handlerFunc),\n\t\t\tHandlerFunc: handlerFunc,\n\t\t})\n\t}\n\tfor _, child := range root.children {\n\t\troutes = iterate(path, method, routes, child)\n\t}\n\treturn routes\n}\n\n// Run attaches the router to a http.Server and starts listening and serving HTTP requests.\n// It is a shortcut for http.ListenAndServe(addr, router)\n// Note: this method will block the calling goroutine indefinitely unless an error happens.\nfunc (engine *Engine) Run(addr ...string) (err error) {\n\tdefer func() { debugPrintError(err) }()\n\n\taddress := resolveAddress(addr)\n\tdebugPrint(\"Listening and serving HTTP on %s\\n\", address)\n\terr = http.ListenAndServe(address, engine)\n\treturn\n}\n\n// RunTLS attaches the router to a http.Server and starts listening and serving HTTPS (secure) requests.\n// It is a shortcut for http.ListenAndServeTLS(addr, certFile, keyFile, router)\n// Note: this method will block the calling goroutine indefinitely unless an error happens.\nfunc (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error) {\n\tdebugPrint(\"Listening and serving HTTPS on %s\\n\", addr)\n\tdefer func() { debugPrintError(err) }()\n\n\terr = http.ListenAndServeTLS(addr, certFile, keyFile, engine)\n\treturn\n}\n\n// RunUnix attaches the router to a http.Server and starts listening and serving HTTP requests\n// through the specified unix socket (ie. a file).\n// Note: this method will block the calling goroutine indefinitely unless an error happens.\nfunc (engine *Engine) RunUnix(file string) (err error) {\n\tdebugPrint(\"Listening and serving HTTP on unix:/%s\", file)\n\tdefer func() { debugPrintError(err) }()\n\n\tos.Remove(file)\n\tlistener, err := net.Listen(\"unix\", file)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer listener.Close()\n\tos.Chmod(file, 0777)\n\terr = http.Serve(listener, engine)\n\treturn\n}\n\n// RunFd attaches the router to a http.Server and starts listening and serving HTTP requests\n// through the specified file descriptor.\n// Note: this method will block the calling goroutine indefinitely unless an error happens.\nfunc (engine *Engine) RunFd(fd int) (err error) {\n\tdebugPrint(\"Listening and serving HTTP on fd@%d\", fd)\n\tdefer func() { debugPrintError(err) }()\n\n\tf := os.NewFile(uintptr(fd), fmt.Sprintf(\"fd@%d\", fd))\n\tlistener, err := net.FileListener(f)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer listener.Close()\n\terr = http.Serve(listener, engine)\n\treturn\n}\n\n// ServeHTTP conforms to the http.Handler interface.\nfunc (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request) {\n\tc := engine.pool.Get().(*Context)\n\tc.writermem.reset(w)\n\tc.Request = req\n\tc.reset()\n\n\tengine.handleHTTPRequest(c)\n\n\tengine.pool.Put(c)\n}\n\n// HandleContext re-enter a context that has been rewritten.\n// This can be done by setting c.Request.URL.Path to your new target.\n// Disclaimer: You can loop yourself to death with this, use wisely.\nfunc (engine *Engine) HandleContext(c *Context) {\n\toldIndexValue := c.index\n\tc.reset()\n\tengine.handleHTTPRequest(c)\n\n\tc.index = oldIndexValue\n}\n\nfunc (engine *Engine) handleHTTPRequest(c *Context) {\n\thttpMethod := c.Request.Method\n\trPath := c.Request.URL.Path\n\tunescape := false\n\tif engine.UseRawPath && len(c.Request.URL.RawPath) > 0 {\n\t\trPath = c.Request.URL.RawPath\n\t\tunescape = engine.UnescapePathValues\n\t}\n\trPath = cleanPath(rPath)\n\n\t// Find root of the tree for the given HTTP method\n\tt := engine.trees\n\tfor i, tl := 0, len(t); i < tl; i++ {\n\t\tif t[i].method != httpMethod {\n\t\t\tcontinue\n\t\t}\n\t\troot := t[i].root\n\t\t// Find route in tree\n\t\thandlers, params, tsr := root.getValue(rPath, c.Params, unescape)\n\t\tif handlers != nil {\n\t\t\tc.handlers = handlers\n\t\t\tc.Params = params\n\t\t\tc.Next()\n\t\t\tc.writermem.WriteHeaderNow()\n\t\t\treturn\n\t\t}\n\t\tif httpMethod != \"CONNECT\" && rPath != \"/\" {\n\t\t\tif tsr && engine.RedirectTrailingSlash {\n\t\t\t\tredirectTrailingSlash(c)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif engine.RedirectFixedPath && redirectFixedPath(c, root, engine.RedirectFixedPath) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\n\tif engine.HandleMethodNotAllowed {\n\t\tfor _, tree := range engine.trees {\n\t\t\tif tree.method == httpMethod {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif handlers, _, _ := tree.root.getValue(rPath, nil, unescape); handlers != nil {\n\t\t\t\tc.handlers = engine.allNoMethod\n\t\t\t\tserveError(c, http.StatusMethodNotAllowed, default405Body)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\tc.handlers = engine.allNoRoute\n\tserveError(c, http.StatusNotFound, default404Body)\n}\n\nvar mimePlain = []string{MIMEPlain}\n\nfunc serveError(c *Context, code int, defaultMessage []byte) {\n\tc.writermem.status = code\n\tc.Next()\n\tif c.writermem.Written() {\n\t\treturn\n\t}\n\tif c.writermem.Status() == code {\n\t\tc.writermem.Header()[\"Content-Type\"] = mimePlain\n\t\t_, err := c.Writer.Write(defaultMessage)\n\t\tif err != nil {\n\t\t\tdebugPrint(\"cannot write message to writer during serve error: %v\", err)\n\t\t}\n\t\treturn\n\t}\n\tc.writermem.WriteHeaderNow()\n\treturn\n}\n\nfunc redirectTrailingSlash(c *Context) {\n\treq := c.Request\n\tp := req.URL.Path\n\tif prefix := path.Clean(c.Request.Header.Get(\"X-Forwarded-Prefix\")); prefix != \".\" {\n\t\tp = prefix + \"/\" + req.URL.Path\n\t}\n\tcode := http.StatusMovedPermanently // Permanent redirect, request with GET method\n\tif req.Method != \"GET\" {\n\t\tcode = http.StatusTemporaryRedirect\n\t}\n\n\treq.URL.Path = p + \"/\"\n\tif length := len(p); length > 1 && p[length-1] == '/' {\n\t\treq.URL.Path = p[:length-1]\n\t}\n\tdebugPrint(\"redirecting request %d: %s --> %s\", code, p, req.URL.String())\n\thttp.Redirect(c.Writer, req, req.URL.String(), code)\n\tc.writermem.WriteHeaderNow()\n}\n\nfunc redirectFixedPath(c *Context, root *node, trailingSlash bool) bool {\n\treq := c.Request\n\trPath := req.URL.Path\n\n\tif fixedPath, ok := root.findCaseInsensitivePath(cleanPath(rPath), trailingSlash); ok {\n\t\tcode := http.StatusMovedPermanently // Permanent redirect, request with GET method\n\t\tif req.Method != \"GET\" {\n\t\t\tcode = http.StatusTemporaryRedirect\n\t\t}\n\t\treq.URL.Path = string(fixedPath)\n\t\tdebugPrint(\"redirecting request %d: %s --> %s\", code, rPath, req.URL.String())\n\t\thttp.Redirect(c.Writer, req, req.URL.String(), code)\n\t\tc.writermem.WriteHeaderNow()\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/go.mod",
    "content": "module github.com/gin-gonic/gin\n\ngo 1.12\n\nrequire (\n\tgithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3\n\tgithub.com/golang/protobuf v1.3.1\n\tgithub.com/json-iterator/go v1.1.6\n\tgithub.com/mattn/go-isatty v0.0.7\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.1 // indirect\n\tgithub.com/stretchr/testify v1.3.0\n\tgithub.com/ugorji/go v1.1.4\n\tgolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c\n\tgopkg.in/go-playground/assert.v1 v1.2.1 // indirect\n\tgopkg.in/go-playground/validator.v8 v8.18.2\n\tgopkg.in/yaml.v2 v2.2.2\n)\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/go.sum",
    "content": "github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3 h1:t8FVkw33L+wilf2QiWkw0UV77qRpcH/JHPKGpKa2E8g=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs=\ngithub.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/mattn/go-isatty v0.0.7 h1:UvyT9uN+3r7yLEYSlJsbQGdsaB/a0DlgWP3pql6iwOc=\ngithub.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=\ngithub.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c h1:uOCk1iQW6Vc18bnC13MfzScl+wdKBmM9Y9kU7Z83/lw=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=\ngopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=\ngopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ=\ngopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=\ngopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/internal/json/json.go",
    "content": "// Copyright 2017 Bo-Yi Wu.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\n// +build !jsoniter\n\npackage json\n\nimport \"encoding/json\"\n\nvar (\n\t// Marshal is exported by gin/json package.\n\tMarshal = json.Marshal\n\t// Unmarshal is exported by gin/json package.\n\tUnmarshal = json.Unmarshal\n\t// MarshalIndent is exported by gin/json package.\n\tMarshalIndent = json.MarshalIndent\n\t// NewDecoder is exported by gin/json package.\n\tNewDecoder = json.NewDecoder\n\t// NewEncoder is exported by gin/json package.\n\tNewEncoder = json.NewEncoder\n)\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/internal/json/jsoniter.go",
    "content": "// Copyright 2017 Bo-Yi Wu.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\n// +build jsoniter\n\npackage json\n\nimport \"github.com/json-iterator/go\"\n\nvar (\n\tjson = jsoniter.ConfigCompatibleWithStandardLibrary\n\t// Marshal is exported by gin/json package.\n\tMarshal = json.Marshal\n\t// Unmarshal is exported by gin/json package.\n\tUnmarshal = json.Unmarshal\n\t// MarshalIndent is exported by gin/json package.\n\tMarshalIndent = json.MarshalIndent\n\t// NewDecoder is exported by gin/json package.\n\tNewDecoder = json.NewDecoder\n\t// NewEncoder is exported by gin/json package.\n\tNewEncoder = json.NewEncoder\n)\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/logger.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/mattn/go-isatty\"\n)\n\ntype consoleColorModeValue int\n\nconst (\n\tautoColor consoleColorModeValue = iota\n\tdisableColor\n\tforceColor\n)\n\nvar (\n\tgreen            = string([]byte{27, 91, 57, 55, 59, 52, 50, 109})\n\twhite            = string([]byte{27, 91, 57, 48, 59, 52, 55, 109})\n\tyellow           = string([]byte{27, 91, 57, 48, 59, 52, 51, 109})\n\tred              = string([]byte{27, 91, 57, 55, 59, 52, 49, 109})\n\tblue             = string([]byte{27, 91, 57, 55, 59, 52, 52, 109})\n\tmagenta          = string([]byte{27, 91, 57, 55, 59, 52, 53, 109})\n\tcyan             = string([]byte{27, 91, 57, 55, 59, 52, 54, 109})\n\treset            = string([]byte{27, 91, 48, 109})\n\tconsoleColorMode = autoColor\n)\n\n// LoggerConfig defines the config for Logger middleware.\ntype LoggerConfig struct {\n\t// Optional. Default value is gin.defaultLogFormatter\n\tFormatter LogFormatter\n\n\t// Output is a writer where logs are written.\n\t// Optional. Default value is gin.DefaultWriter.\n\tOutput io.Writer\n\n\t// SkipPaths is a url path array which logs are not written.\n\t// Optional.\n\tSkipPaths []string\n}\n\n// LogFormatter gives the signature of the formatter function passed to LoggerWithFormatter\ntype LogFormatter func(params LogFormatterParams) string\n\n// LogFormatterParams is the structure any formatter will be handed when time to log comes\ntype LogFormatterParams struct {\n\tRequest *http.Request\n\n\t// TimeStamp shows the time after the server returns a response.\n\tTimeStamp time.Time\n\t// StatusCode is HTTP response code.\n\tStatusCode int\n\t// Latency is how much time the server cost to process a certain request.\n\tLatency time.Duration\n\t// ClientIP equals Context's ClientIP method.\n\tClientIP string\n\t// Method is the HTTP method given to the request.\n\tMethod string\n\t// Path is a path the client requests.\n\tPath string\n\t// ErrorMessage is set if error has occurred in processing the request.\n\tErrorMessage string\n\t// isTerm shows whether does gin's output descriptor refers to a terminal.\n\tisTerm bool\n\t// BodySize is the size of the Response Body\n\tBodySize int\n\t// Keys are the keys set on the request's context.\n\tKeys map[string]interface{}\n}\n\n// StatusCodeColor is the ANSI color for appropriately logging http status code to a terminal.\nfunc (p *LogFormatterParams) StatusCodeColor() string {\n\tcode := p.StatusCode\n\n\tswitch {\n\tcase code >= http.StatusOK && code < http.StatusMultipleChoices:\n\t\treturn green\n\tcase code >= http.StatusMultipleChoices && code < http.StatusBadRequest:\n\t\treturn white\n\tcase code >= http.StatusBadRequest && code < http.StatusInternalServerError:\n\t\treturn yellow\n\tdefault:\n\t\treturn red\n\t}\n}\n\n// MethodColor is the ANSI color for appropriately logging http method to a terminal.\nfunc (p *LogFormatterParams) MethodColor() string {\n\tmethod := p.Method\n\n\tswitch method {\n\tcase \"GET\":\n\t\treturn blue\n\tcase \"POST\":\n\t\treturn cyan\n\tcase \"PUT\":\n\t\treturn yellow\n\tcase \"DELETE\":\n\t\treturn red\n\tcase \"PATCH\":\n\t\treturn green\n\tcase \"HEAD\":\n\t\treturn magenta\n\tcase \"OPTIONS\":\n\t\treturn white\n\tdefault:\n\t\treturn reset\n\t}\n}\n\n// ResetColor resets all escape attributes.\nfunc (p *LogFormatterParams) ResetColor() string {\n\treturn reset\n}\n\n// IsOutputColor indicates whether can colors be outputted to the log.\nfunc (p *LogFormatterParams) IsOutputColor() bool {\n\treturn consoleColorMode == forceColor || (consoleColorMode == autoColor && p.isTerm)\n}\n\n// defaultLogFormatter is the default log format function Logger middleware uses.\nvar defaultLogFormatter = func(param LogFormatterParams) string {\n\tvar statusColor, methodColor, resetColor string\n\tif param.IsOutputColor() {\n\t\tstatusColor = param.StatusCodeColor()\n\t\tmethodColor = param.MethodColor()\n\t\tresetColor = param.ResetColor()\n\t}\n\n\tif param.Latency > time.Minute {\n\t\t// Truncate in a golang < 1.8 safe way\n\t\tparam.Latency = param.Latency - param.Latency%time.Second\n\t}\n\treturn fmt.Sprintf(\"[GIN] %v |%s %3d %s| %13v | %15s |%s %-7s %s %s\\n%s\",\n\t\tparam.TimeStamp.Format(\"2006/01/02 - 15:04:05\"),\n\t\tstatusColor, param.StatusCode, resetColor,\n\t\tparam.Latency,\n\t\tparam.ClientIP,\n\t\tmethodColor, param.Method, resetColor,\n\t\tparam.Path,\n\t\tparam.ErrorMessage,\n\t)\n}\n\n// DisableConsoleColor disables color output in the console.\nfunc DisableConsoleColor() {\n\tconsoleColorMode = disableColor\n}\n\n// ForceConsoleColor force color output in the console.\nfunc ForceConsoleColor() {\n\tconsoleColorMode = forceColor\n}\n\n// ErrorLogger returns a handlerfunc for any error type.\nfunc ErrorLogger() HandlerFunc {\n\treturn ErrorLoggerT(ErrorTypeAny)\n}\n\n// ErrorLoggerT returns a handlerfunc for a given error type.\nfunc ErrorLoggerT(typ ErrorType) HandlerFunc {\n\treturn func(c *Context) {\n\t\tc.Next()\n\t\terrors := c.Errors.ByType(typ)\n\t\tif len(errors) > 0 {\n\t\t\tc.JSON(-1, errors)\n\t\t}\n\t}\n}\n\n// Logger instances a Logger middleware that will write the logs to gin.DefaultWriter.\n// By default gin.DefaultWriter = os.Stdout.\nfunc Logger() HandlerFunc {\n\treturn LoggerWithConfig(LoggerConfig{})\n}\n\n// LoggerWithFormatter instance a Logger middleware with the specified log format function.\nfunc LoggerWithFormatter(f LogFormatter) HandlerFunc {\n\treturn LoggerWithConfig(LoggerConfig{\n\t\tFormatter: f,\n\t})\n}\n\n// LoggerWithWriter instance a Logger middleware with the specified writer buffer.\n// Example: os.Stdout, a file opened in write mode, a socket...\nfunc LoggerWithWriter(out io.Writer, notlogged ...string) HandlerFunc {\n\treturn LoggerWithConfig(LoggerConfig{\n\t\tOutput:    out,\n\t\tSkipPaths: notlogged,\n\t})\n}\n\n// LoggerWithConfig instance a Logger middleware with config.\nfunc LoggerWithConfig(conf LoggerConfig) HandlerFunc {\n\tformatter := conf.Formatter\n\tif formatter == nil {\n\t\tformatter = defaultLogFormatter\n\t}\n\n\tout := conf.Output\n\tif out == nil {\n\t\tout = DefaultWriter\n\t}\n\n\tnotlogged := conf.SkipPaths\n\n\tisTerm := true\n\n\tif w, ok := out.(*os.File); !ok || os.Getenv(\"TERM\") == \"dumb\" ||\n\t\t(!isatty.IsTerminal(w.Fd()) && !isatty.IsCygwinTerminal(w.Fd())) {\n\t\tisTerm = false\n\t}\n\n\tvar skip map[string]struct{}\n\n\tif length := len(notlogged); length > 0 {\n\t\tskip = make(map[string]struct{}, length)\n\n\t\tfor _, path := range notlogged {\n\t\t\tskip[path] = struct{}{}\n\t\t}\n\t}\n\n\treturn func(c *Context) {\n\t\t// Start timer\n\t\tstart := time.Now()\n\t\tpath := c.Request.URL.Path\n\t\traw := c.Request.URL.RawQuery\n\n\t\t// Process request\n\t\tc.Next()\n\n\t\t// Log only when path is not being skipped\n\t\tif _, ok := skip[path]; !ok {\n\t\t\tparam := LogFormatterParams{\n\t\t\t\tRequest: c.Request,\n\t\t\t\tisTerm:  isTerm,\n\t\t\t\tKeys:    c.Keys,\n\t\t\t}\n\n\t\t\t// Stop timer\n\t\t\tparam.TimeStamp = time.Now()\n\t\t\tparam.Latency = param.TimeStamp.Sub(start)\n\n\t\t\tparam.ClientIP = c.ClientIP()\n\t\t\tparam.Method = c.Request.Method\n\t\t\tparam.StatusCode = c.Writer.Status()\n\t\t\tparam.ErrorMessage = c.Errors.ByType(ErrorTypePrivate).String()\n\n\t\t\tparam.BodySize = c.Writer.Size()\n\n\t\t\tif raw != \"\" {\n\t\t\t\tpath = path + \"?\" + raw\n\t\t\t}\n\n\t\t\tparam.Path = path\n\n\t\t\tfmt.Fprint(out, formatter(param))\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/mode.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/gin-gonic/gin/binding\"\n)\n\n// EnvGinMode indicates environment name for gin mode.\nconst EnvGinMode = \"GIN_MODE\"\n\nconst (\n\t// DebugMode indicates gin mode is debug.\n\tDebugMode = \"debug\"\n\t// ReleaseMode indicates gin mode is release.\n\tReleaseMode = \"release\"\n\t// TestMode indicates gin mode is test.\n\tTestMode = \"test\"\n)\nconst (\n\tdebugCode = iota\n\treleaseCode\n\ttestCode\n)\n\n// DefaultWriter is the default io.Writer used by Gin for debug output and\n// middleware output like Logger() or Recovery().\n// Note that both Logger and Recovery provides custom ways to configure their\n// output io.Writer.\n// To support coloring in Windows use:\n// \t\timport \"github.com/mattn/go-colorable\"\n// \t\tgin.DefaultWriter = colorable.NewColorableStdout()\nvar DefaultWriter io.Writer = os.Stdout\n\n// DefaultErrorWriter is the default io.Writer used by Gin to debug errors\nvar DefaultErrorWriter io.Writer = os.Stderr\n\nvar ginMode = debugCode\nvar modeName = DebugMode\n\nfunc init() {\n\tmode := os.Getenv(EnvGinMode)\n\tSetMode(mode)\n}\n\n// SetMode sets gin mode according to input string.\nfunc SetMode(value string) {\n\tswitch value {\n\tcase DebugMode, \"\":\n\t\tginMode = debugCode\n\tcase ReleaseMode:\n\t\tginMode = releaseCode\n\tcase TestMode:\n\t\tginMode = testCode\n\tdefault:\n\t\tpanic(\"gin mode unknown: \" + value)\n\t}\n\tif value == \"\" {\n\t\tvalue = DebugMode\n\t}\n\tmodeName = value\n}\n\n// DisableBindValidation closes the default validator.\nfunc DisableBindValidation() {\n\tbinding.Validator = nil\n}\n\n// EnableJsonDecoderUseNumber sets true for binding.EnableDecoderUseNumberto to\n// call the UseNumber method on the JSON Decoder instance.\nfunc EnableJsonDecoderUseNumber() {\n\tbinding.EnableDecoderUseNumber = true\n}\n\n// Mode returns currently gin mode.\nfunc Mode() string {\n\treturn modeName\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/path.go",
    "content": "// Copyright 2013 Julien Schmidt. All rights reserved.\n// Based on the path package, Copyright 2009 The Go Authors.\n// Use of this source code is governed by a BSD-style license that can be found\n// at https://github.com/julienschmidt/httprouter/blob/master/LICENSE.\n\npackage gin\n\n// cleanPath is the URL version of path.Clean, it returns a canonical URL path\n// for p, eliminating . and .. elements.\n//\n// The following rules are applied iteratively until no further processing can\n// be done:\n//\t1. Replace multiple slashes with a single slash.\n//\t2. Eliminate each . path name element (the current directory).\n//\t3. Eliminate each inner .. path name element (the parent directory)\n//\t   along with the non-.. element that precedes it.\n//\t4. Eliminate .. elements that begin a rooted path:\n//\t   that is, replace \"/..\" by \"/\" at the beginning of a path.\n//\n// If the result of this process is an empty string, \"/\" is returned.\nfunc cleanPath(p string) string {\n\t// Turn empty string into \"/\"\n\tif p == \"\" {\n\t\treturn \"/\"\n\t}\n\n\tn := len(p)\n\tvar buf []byte\n\n\t// Invariants:\n\t//      reading from path; r is index of next byte to process.\n\t//      writing to buf; w is index of next byte to write.\n\n\t// path must start with '/'\n\tr := 1\n\tw := 1\n\n\tif p[0] != '/' {\n\t\tr = 0\n\t\tbuf = make([]byte, n+1)\n\t\tbuf[0] = '/'\n\t}\n\n\ttrailing := n > 1 && p[n-1] == '/'\n\n\t// A bit more clunky without a 'lazybuf' like the path package, but the loop\n\t// gets completely inlined (bufApp). So in contrast to the path package this\n\t// loop has no expensive function calls (except 1x make)\n\n\tfor r < n {\n\t\tswitch {\n\t\tcase p[r] == '/':\n\t\t\t// empty path element, trailing slash is added after the end\n\t\t\tr++\n\n\t\tcase p[r] == '.' && r+1 == n:\n\t\t\ttrailing = true\n\t\t\tr++\n\n\t\tcase p[r] == '.' && p[r+1] == '/':\n\t\t\t// . element\n\t\t\tr += 2\n\n\t\tcase p[r] == '.' && p[r+1] == '.' && (r+2 == n || p[r+2] == '/'):\n\t\t\t// .. element: remove to last /\n\t\t\tr += 3\n\n\t\t\tif w > 1 {\n\t\t\t\t// can backtrack\n\t\t\t\tw--\n\n\t\t\t\tif buf == nil {\n\t\t\t\t\tfor w > 1 && p[w] != '/' {\n\t\t\t\t\t\tw--\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor w > 1 && buf[w] != '/' {\n\t\t\t\t\t\tw--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\tdefault:\n\t\t\t// real path element.\n\t\t\t// add slash if needed\n\t\t\tif w > 1 {\n\t\t\t\tbufApp(&buf, p, w, '/')\n\t\t\t\tw++\n\t\t\t}\n\n\t\t\t// copy element\n\t\t\tfor r < n && p[r] != '/' {\n\t\t\t\tbufApp(&buf, p, w, p[r])\n\t\t\t\tw++\n\t\t\t\tr++\n\t\t\t}\n\t\t}\n\t}\n\n\t// re-append trailing slash\n\tif trailing && w > 1 {\n\t\tbufApp(&buf, p, w, '/')\n\t\tw++\n\t}\n\n\tif buf == nil {\n\t\treturn p[:w]\n\t}\n\treturn string(buf[:w])\n}\n\n// internal helper to lazily create a buffer if necessary.\nfunc bufApp(buf *[]byte, s string, w int, c byte) {\n\tif *buf == nil {\n\t\tif s[w] == c {\n\t\t\treturn\n\t\t}\n\n\t\t*buf = make([]byte, len(s))\n\t\tcopy(*buf, s[:w])\n\t}\n\t(*buf)[w] = c\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/recovery.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/http/httputil\"\n\t\"os\"\n\t\"runtime\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar (\n\tdunno     = []byte(\"???\")\n\tcenterDot = []byte(\"·\")\n\tdot       = []byte(\".\")\n\tslash     = []byte(\"/\")\n)\n\n// Recovery returns a middleware that recovers from any panics and writes a 500 if there was one.\nfunc Recovery() HandlerFunc {\n\treturn RecoveryWithWriter(DefaultErrorWriter)\n}\n\n// RecoveryWithWriter returns a middleware for a given writer that recovers from any panics and writes a 500 if there was one.\nfunc RecoveryWithWriter(out io.Writer) HandlerFunc {\n\tvar logger *log.Logger\n\tif out != nil {\n\t\tlogger = log.New(out, \"\\n\\n\\x1b[31m\", log.LstdFlags)\n\t}\n\treturn func(c *Context) {\n\t\tdefer func() {\n\t\t\tif err := recover(); err != nil {\n\t\t\t\t// Check for a broken connection, as it is not really a\n\t\t\t\t// condition that warrants a panic stack trace.\n\t\t\t\tvar brokenPipe bool\n\t\t\t\tif ne, ok := err.(*net.OpError); ok {\n\t\t\t\t\tif se, ok := ne.Err.(*os.SyscallError); ok {\n\t\t\t\t\t\tif strings.Contains(strings.ToLower(se.Error()), \"broken pipe\") || strings.Contains(strings.ToLower(se.Error()), \"connection reset by peer\") {\n\t\t\t\t\t\t\tbrokenPipe = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif logger != nil {\n\t\t\t\t\tstack := stack(3)\n\t\t\t\t\thttpRequest, _ := httputil.DumpRequest(c.Request, false)\n\t\t\t\t\theaders := strings.Split(string(httpRequest), \"\\r\\n\")\n\t\t\t\t\tfor idx, header := range headers {\n\t\t\t\t\t\tcurrent := strings.Split(header, \":\")\n\t\t\t\t\t\tif current[0] == \"Authorization\" {\n\t\t\t\t\t\t\theaders[idx] = current[0] + \": *\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif brokenPipe {\n\t\t\t\t\t\tlogger.Printf(\"%s\\n%s%s\", err, string(httpRequest), reset)\n\t\t\t\t\t} else if IsDebugging() {\n\t\t\t\t\t\tlogger.Printf(\"[Recovery] %s panic recovered:\\n%s\\n%s\\n%s%s\",\n\t\t\t\t\t\t\ttimeFormat(time.Now()), strings.Join(headers, \"\\r\\n\"), err, stack, reset)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.Printf(\"[Recovery] %s panic recovered:\\n%s\\n%s%s\",\n\t\t\t\t\t\t\ttimeFormat(time.Now()), err, stack, reset)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If the connection is dead, we can't write a status to it.\n\t\t\t\tif brokenPipe {\n\t\t\t\t\tc.Error(err.(error)) // nolint: errcheck\n\t\t\t\t\tc.Abort()\n\t\t\t\t} else {\n\t\t\t\t\tc.AbortWithStatus(http.StatusInternalServerError)\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t\tc.Next()\n\t}\n}\n\n// stack returns a nicely formatted stack frame, skipping skip frames.\nfunc stack(skip int) []byte {\n\tbuf := new(bytes.Buffer) // the returned data\n\t// As we loop, we open files and read them. These variables record the currently\n\t// loaded file.\n\tvar lines [][]byte\n\tvar lastFile string\n\tfor i := skip; ; i++ { // Skip the expected number of frames\n\t\tpc, file, line, ok := runtime.Caller(i)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\t// Print this much at least.  If we can't find the source, it won't show.\n\t\tfmt.Fprintf(buf, \"%s:%d (0x%x)\\n\", file, line, pc)\n\t\tif file != lastFile {\n\t\t\tdata, err := ioutil.ReadFile(file)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlines = bytes.Split(data, []byte{'\\n'})\n\t\t\tlastFile = file\n\t\t}\n\t\tfmt.Fprintf(buf, \"\\t%s: %s\\n\", function(pc), source(lines, line))\n\t}\n\treturn buf.Bytes()\n}\n\n// source returns a space-trimmed slice of the n'th line.\nfunc source(lines [][]byte, n int) []byte {\n\tn-- // in stack trace, lines are 1-indexed but our array is 0-indexed\n\tif n < 0 || n >= len(lines) {\n\t\treturn dunno\n\t}\n\treturn bytes.TrimSpace(lines[n])\n}\n\n// function returns, if possible, the name of the function containing the PC.\nfunc function(pc uintptr) []byte {\n\tfn := runtime.FuncForPC(pc)\n\tif fn == nil {\n\t\treturn dunno\n\t}\n\tname := []byte(fn.Name())\n\t// The name includes the path name to the package, which is unnecessary\n\t// since the file name is already included.  Plus, it has center dots.\n\t// That is, we see\n\t//\truntime/debug.*T·ptrmethod\n\t// and want\n\t//\t*T.ptrmethod\n\t// Also the package path might contains dot (e.g. code.google.com/...),\n\t// so first eliminate the path prefix\n\tif lastSlash := bytes.LastIndex(name, slash); lastSlash >= 0 {\n\t\tname = name[lastSlash+1:]\n\t}\n\tif period := bytes.Index(name, dot); period >= 0 {\n\t\tname = name[period+1:]\n\t}\n\tname = bytes.Replace(name, centerDot, dot, -1)\n\treturn name\n}\n\nfunc timeFormat(t time.Time) string {\n\tvar timeString = t.Format(\"2006/01/02 - 15:04:05\")\n\treturn timeString\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/data.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport \"net/http\"\n\n// Data contains ContentType and bytes data.\ntype Data struct {\n\tContentType string\n\tData        []byte\n}\n\n// Render (Data) writes data with custom ContentType.\nfunc (r Data) Render(w http.ResponseWriter) (err error) {\n\tr.WriteContentType(w)\n\t_, err = w.Write(r.Data)\n\treturn\n}\n\n// WriteContentType (Data) writes custom ContentType.\nfunc (r Data) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, []string{r.ContentType})\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/html.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"html/template\"\n\t\"net/http\"\n)\n\n// Delims represents a set of Left and Right delimiters for HTML template rendering.\ntype Delims struct {\n\t// Left delimiter, defaults to {{.\n\tLeft string\n\t// Right delimiter, defaults to }}.\n\tRight string\n}\n\n// HTMLRender interface is to be implemented by HTMLProduction and HTMLDebug.\ntype HTMLRender interface {\n\t// Instance returns an HTML instance.\n\tInstance(string, interface{}) Render\n}\n\n// HTMLProduction contains template reference and its delims.\ntype HTMLProduction struct {\n\tTemplate *template.Template\n\tDelims   Delims\n}\n\n// HTMLDebug contains template delims and pattern and function with file list.\ntype HTMLDebug struct {\n\tFiles   []string\n\tGlob    string\n\tDelims  Delims\n\tFuncMap template.FuncMap\n}\n\n// HTML contains template reference and its name with given interface object.\ntype HTML struct {\n\tTemplate *template.Template\n\tName     string\n\tData     interface{}\n}\n\nvar htmlContentType = []string{\"text/html; charset=utf-8\"}\n\n// Instance (HTMLProduction) returns an HTML instance which it realizes Render interface.\nfunc (r HTMLProduction) Instance(name string, data interface{}) Render {\n\treturn HTML{\n\t\tTemplate: r.Template,\n\t\tName:     name,\n\t\tData:     data,\n\t}\n}\n\n// Instance (HTMLDebug) returns an HTML instance which it realizes Render interface.\nfunc (r HTMLDebug) Instance(name string, data interface{}) Render {\n\treturn HTML{\n\t\tTemplate: r.loadTemplate(),\n\t\tName:     name,\n\t\tData:     data,\n\t}\n}\nfunc (r HTMLDebug) loadTemplate() *template.Template {\n\tif r.FuncMap == nil {\n\t\tr.FuncMap = template.FuncMap{}\n\t}\n\tif len(r.Files) > 0 {\n\t\treturn template.Must(template.New(\"\").Delims(r.Delims.Left, r.Delims.Right).Funcs(r.FuncMap).ParseFiles(r.Files...))\n\t}\n\tif r.Glob != \"\" {\n\t\treturn template.Must(template.New(\"\").Delims(r.Delims.Left, r.Delims.Right).Funcs(r.FuncMap).ParseGlob(r.Glob))\n\t}\n\tpanic(\"the HTML debug render was created without files or glob pattern\")\n}\n\n// Render (HTML) executes template and writes its result with custom ContentType for response.\nfunc (r HTML) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\n\tif r.Name == \"\" {\n\t\treturn r.Template.Execute(w, r.Data)\n\t}\n\treturn r.Template.ExecuteTemplate(w, r.Name, r.Data)\n}\n\n// WriteContentType (HTML) writes HTML ContentType.\nfunc (r HTML) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, htmlContentType)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/json.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin/internal/json\"\n)\n\n// JSON contains the given interface object.\ntype JSON struct {\n\tData interface{}\n}\n\n// IndentedJSON contains the given interface object.\ntype IndentedJSON struct {\n\tData interface{}\n}\n\n// SecureJSON contains the given interface object and its prefix.\ntype SecureJSON struct {\n\tPrefix string\n\tData   interface{}\n}\n\n// JsonpJSON contains the given interface object its callback.\ntype JsonpJSON struct {\n\tCallback string\n\tData     interface{}\n}\n\n// AsciiJSON contains the given interface object.\ntype AsciiJSON struct {\n\tData interface{}\n}\n\n// SecureJSONPrefix is a string which represents SecureJSON prefix.\ntype SecureJSONPrefix string\n\n// PureJSON contains the given interface object.\ntype PureJSON struct {\n\tData interface{}\n}\n\nvar jsonContentType = []string{\"application/json; charset=utf-8\"}\nvar jsonpContentType = []string{\"application/javascript; charset=utf-8\"}\nvar jsonAsciiContentType = []string{\"application/json\"}\n\n// Render (JSON) writes data with custom ContentType.\nfunc (r JSON) Render(w http.ResponseWriter) (err error) {\n\tif err = WriteJSON(w, r.Data); err != nil {\n\t\tpanic(err)\n\t}\n\treturn\n}\n\n// WriteContentType (JSON) writes JSON ContentType.\nfunc (r JSON) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, jsonContentType)\n}\n\n// WriteJSON marshals the given interface object and writes it with custom ContentType.\nfunc WriteJSON(w http.ResponseWriter, obj interface{}) error {\n\twriteContentType(w, jsonContentType)\n\tjsonBytes, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = w.Write(jsonBytes)\n\treturn err\n}\n\n// Render (IndentedJSON) marshals the given interface object and writes it with custom ContentType.\nfunc (r IndentedJSON) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\tjsonBytes, err := json.MarshalIndent(r.Data, \"\", \"    \")\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = w.Write(jsonBytes)\n\treturn err\n}\n\n// WriteContentType (IndentedJSON) writes JSON ContentType.\nfunc (r IndentedJSON) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, jsonContentType)\n}\n\n// Render (SecureJSON) marshals the given interface object and writes it with custom ContentType.\nfunc (r SecureJSON) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\tjsonBytes, err := json.Marshal(r.Data)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// if the jsonBytes is array values\n\tif bytes.HasPrefix(jsonBytes, []byte(\"[\")) && bytes.HasSuffix(jsonBytes, []byte(\"]\")) {\n\t\t_, err = w.Write([]byte(r.Prefix))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t_, err = w.Write(jsonBytes)\n\treturn err\n}\n\n// WriteContentType (SecureJSON) writes JSON ContentType.\nfunc (r SecureJSON) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, jsonContentType)\n}\n\n// Render (JsonpJSON) marshals the given interface object and writes it and its callback with custom ContentType.\nfunc (r JsonpJSON) Render(w http.ResponseWriter) (err error) {\n\tr.WriteContentType(w)\n\tret, err := json.Marshal(r.Data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif r.Callback == \"\" {\n\t\t_, err = w.Write(ret)\n\t\treturn err\n\t}\n\n\tcallback := template.JSEscapeString(r.Callback)\n\t_, err = w.Write([]byte(callback))\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = w.Write([]byte(\"(\"))\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = w.Write(ret)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = w.Write([]byte(\")\"))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// WriteContentType (JsonpJSON) writes Javascript ContentType.\nfunc (r JsonpJSON) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, jsonpContentType)\n}\n\n// Render (AsciiJSON) marshals the given interface object and writes it with custom ContentType.\nfunc (r AsciiJSON) Render(w http.ResponseWriter) (err error) {\n\tr.WriteContentType(w)\n\tret, err := json.Marshal(r.Data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar buffer bytes.Buffer\n\tfor _, r := range string(ret) {\n\t\tcvt := string(r)\n\t\tif r >= 128 {\n\t\t\tcvt = fmt.Sprintf(\"\\\\u%04x\", int64(r))\n\t\t}\n\t\tbuffer.WriteString(cvt)\n\t}\n\n\t_, err = w.Write(buffer.Bytes())\n\treturn err\n}\n\n// WriteContentType (AsciiJSON) writes JSON ContentType.\nfunc (r AsciiJSON) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, jsonAsciiContentType)\n}\n\n// Render (PureJSON) writes custom ContentType and encodes the given interface object.\nfunc (r PureJSON) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\tencoder := json.NewEncoder(w)\n\tencoder.SetEscapeHTML(false)\n\treturn encoder.Encode(r.Data)\n}\n\n// WriteContentType (PureJSON) writes custom ContentType.\nfunc (r PureJSON) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, jsonContentType)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/msgpack.go",
    "content": "// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/ugorji/go/codec\"\n)\n\n// MsgPack contains the given interface object.\ntype MsgPack struct {\n\tData interface{}\n}\n\nvar msgpackContentType = []string{\"application/msgpack; charset=utf-8\"}\n\n// WriteContentType (MsgPack) writes MsgPack ContentType.\nfunc (r MsgPack) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, msgpackContentType)\n}\n\n// Render (MsgPack) encodes the given interface object and writes data with custom ContentType.\nfunc (r MsgPack) Render(w http.ResponseWriter) error {\n\treturn WriteMsgPack(w, r.Data)\n}\n\n// WriteMsgPack writes MsgPack ContentType and encodes the given interface object.\nfunc WriteMsgPack(w http.ResponseWriter, obj interface{}) error {\n\twriteContentType(w, msgpackContentType)\n\tvar mh codec.MsgpackHandle\n\treturn codec.NewEncoder(w, &mh).Encode(obj)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/protobuf.go",
    "content": "// Copyright 2018 Gin Core Team.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/golang/protobuf/proto\"\n)\n\n// ProtoBuf contains the given interface object.\ntype ProtoBuf struct {\n\tData interface{}\n}\n\nvar protobufContentType = []string{\"application/x-protobuf\"}\n\n// Render (ProtoBuf) marshals the given interface object and writes data with custom ContentType.\nfunc (r ProtoBuf) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\n\tbytes, err := proto.Marshal(r.Data.(proto.Message))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = w.Write(bytes)\n\treturn err\n}\n\n// WriteContentType (ProtoBuf) writes ProtoBuf ContentType.\nfunc (r ProtoBuf) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, protobufContentType)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/reader.go",
    "content": "// Copyright 2018 Gin Core Team.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"io\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\n// Reader contains the IO reader and its length, and custom ContentType and other headers.\ntype Reader struct {\n\tContentType   string\n\tContentLength int64\n\tReader        io.Reader\n\tHeaders       map[string]string\n}\n\n// Render (Reader) writes data with custom ContentType and headers.\nfunc (r Reader) Render(w http.ResponseWriter) (err error) {\n\tr.WriteContentType(w)\n\tr.Headers[\"Content-Length\"] = strconv.FormatInt(r.ContentLength, 10)\n\tr.writeHeaders(w, r.Headers)\n\t_, err = io.Copy(w, r.Reader)\n\treturn\n}\n\n// WriteContentType (Reader) writes custom ContentType.\nfunc (r Reader) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, []string{r.ContentType})\n}\n\n// writeHeaders writes custom Header.\nfunc (r Reader) writeHeaders(w http.ResponseWriter, headers map[string]string) {\n\theader := w.Header()\n\tfor k, v := range headers {\n\t\tif header.Get(k) == \"\" {\n\t\t\theader.Set(k, v)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/redirect.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\n// Redirect contains the http request reference and redirects status code and location.\ntype Redirect struct {\n\tCode     int\n\tRequest  *http.Request\n\tLocation string\n}\n\n// Render (Redirect) redirects the http request to new location and writes redirect response.\nfunc (r Redirect) Render(w http.ResponseWriter) error {\n\tif (r.Code < http.StatusMultipleChoices || r.Code > http.StatusPermanentRedirect) && r.Code != http.StatusCreated {\n\t\tpanic(fmt.Sprintf(\"Cannot redirect with status code %d\", r.Code))\n\t}\n\thttp.Redirect(w, r.Request, r.Location, r.Code)\n\treturn nil\n}\n\n// WriteContentType (Redirect) don't write any ContentType.\nfunc (r Redirect) WriteContentType(http.ResponseWriter) {}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/render.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport \"net/http\"\n\n// Render interface is to be implemented by JSON, XML, HTML, YAML and so on.\ntype Render interface {\n\t// Render writes data with custom ContentType.\n\tRender(http.ResponseWriter) error\n\t// WriteContentType writes custom ContentType.\n\tWriteContentType(w http.ResponseWriter)\n}\n\nvar (\n\t_ Render     = JSON{}\n\t_ Render     = IndentedJSON{}\n\t_ Render     = SecureJSON{}\n\t_ Render     = JsonpJSON{}\n\t_ Render     = XML{}\n\t_ Render     = String{}\n\t_ Render     = Redirect{}\n\t_ Render     = Data{}\n\t_ Render     = HTML{}\n\t_ HTMLRender = HTMLDebug{}\n\t_ HTMLRender = HTMLProduction{}\n\t_ Render     = YAML{}\n\t_ Render     = MsgPack{}\n\t_ Render     = Reader{}\n\t_ Render     = AsciiJSON{}\n\t_ Render     = ProtoBuf{}\n)\n\nfunc writeContentType(w http.ResponseWriter, value []string) {\n\theader := w.Header()\n\tif val := header[\"Content-Type\"]; len(val) == 0 {\n\t\theader[\"Content-Type\"] = value\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/text.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\n// String contains the given interface object slice and its format.\ntype String struct {\n\tFormat string\n\tData   []interface{}\n}\n\nvar plainContentType = []string{\"text/plain; charset=utf-8\"}\n\n// Render (String) writes data with custom ContentType.\nfunc (r String) Render(w http.ResponseWriter) error {\n\treturn WriteString(w, r.Format, r.Data)\n}\n\n// WriteContentType (String) writes Plain ContentType.\nfunc (r String) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, plainContentType)\n}\n\n// WriteString writes data according to its format and write custom ContentType.\nfunc WriteString(w http.ResponseWriter, format string, data []interface{}) (err error) {\n\twriteContentType(w, plainContentType)\n\tif len(data) > 0 {\n\t\t_, err = fmt.Fprintf(w, format, data...)\n\t\treturn\n\t}\n\t_, err = io.WriteString(w, format)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/xml.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"encoding/xml\"\n\t\"net/http\"\n)\n\n// XML contains the given interface object.\ntype XML struct {\n\tData interface{}\n}\n\nvar xmlContentType = []string{\"application/xml; charset=utf-8\"}\n\n// Render (XML) encodes the given interface object and writes data with custom ContentType.\nfunc (r XML) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\treturn xml.NewEncoder(w).Encode(r.Data)\n}\n\n// WriteContentType (XML) writes XML ContentType for response.\nfunc (r XML) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, xmlContentType)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/render/yaml.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage render\n\nimport (\n\t\"net/http\"\n\n\t\"gopkg.in/yaml.v2\"\n)\n\n// YAML contains the given interface object.\ntype YAML struct {\n\tData interface{}\n}\n\nvar yamlContentType = []string{\"application/x-yaml; charset=utf-8\"}\n\n// Render (YAML) marshals the given interface object and writes data with custom ContentType.\nfunc (r YAML) Render(w http.ResponseWriter) error {\n\tr.WriteContentType(w)\n\n\tbytes, err := yaml.Marshal(r.Data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = w.Write(bytes)\n\treturn err\n}\n\n// WriteContentType (YAML) writes YAML ContentType for response.\nfunc (r YAML) WriteContentType(w http.ResponseWriter) {\n\twriteContentType(w, yamlContentType)\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/response_writer.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"bufio\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n)\n\nconst (\n\tnoWritten     = -1\n\tdefaultStatus = http.StatusOK\n)\n\n// ResponseWriter ...\ntype ResponseWriter interface {\n\thttp.ResponseWriter\n\thttp.Hijacker\n\thttp.Flusher\n\thttp.CloseNotifier\n\n\t// Returns the HTTP response status code of the current request.\n\tStatus() int\n\n\t// Returns the number of bytes already written into the response http body.\n\t// See Written()\n\tSize() int\n\n\t// Writes the string into the response body.\n\tWriteString(string) (int, error)\n\n\t// Returns true if the response body was already written.\n\tWritten() bool\n\n\t// Forces to write the http header (status code + headers).\n\tWriteHeaderNow()\n\n\t// get the http.Pusher for server push\n\tPusher() http.Pusher\n}\n\ntype responseWriter struct {\n\thttp.ResponseWriter\n\tsize   int\n\tstatus int\n}\n\nvar _ ResponseWriter = &responseWriter{}\n\nfunc (w *responseWriter) reset(writer http.ResponseWriter) {\n\tw.ResponseWriter = writer\n\tw.size = noWritten\n\tw.status = defaultStatus\n}\n\nfunc (w *responseWriter) WriteHeader(code int) {\n\tif code > 0 && w.status != code {\n\t\tif w.Written() {\n\t\t\tdebugPrint(\"[WARNING] Headers were already written. Wanted to override status code %d with %d\", w.status, code)\n\t\t}\n\t\tw.status = code\n\t}\n}\n\nfunc (w *responseWriter) WriteHeaderNow() {\n\tif !w.Written() {\n\t\tw.size = 0\n\t\tw.ResponseWriter.WriteHeader(w.status)\n\t}\n}\n\nfunc (w *responseWriter) Write(data []byte) (n int, err error) {\n\tw.WriteHeaderNow()\n\tn, err = w.ResponseWriter.Write(data)\n\tw.size += n\n\treturn\n}\n\nfunc (w *responseWriter) WriteString(s string) (n int, err error) {\n\tw.WriteHeaderNow()\n\tn, err = io.WriteString(w.ResponseWriter, s)\n\tw.size += n\n\treturn\n}\n\nfunc (w *responseWriter) Status() int {\n\treturn w.status\n}\n\nfunc (w *responseWriter) Size() int {\n\treturn w.size\n}\n\nfunc (w *responseWriter) Written() bool {\n\treturn w.size != noWritten\n}\n\n// Hijack implements the http.Hijacker interface.\nfunc (w *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\tif w.size < 0 {\n\t\tw.size = 0\n\t}\n\treturn w.ResponseWriter.(http.Hijacker).Hijack()\n}\n\n// CloseNotify implements the http.CloseNotify interface.\nfunc (w *responseWriter) CloseNotify() <-chan bool {\n\treturn w.ResponseWriter.(http.CloseNotifier).CloseNotify()\n}\n\n// Flush implements the http.Flush interface.\nfunc (w *responseWriter) Flush() {\n\tw.WriteHeaderNow()\n\tw.ResponseWriter.(http.Flusher).Flush()\n}\n\nfunc (w *responseWriter) Pusher() (pusher http.Pusher) {\n\tif pusher, ok := w.ResponseWriter.(http.Pusher); ok {\n\t\treturn pusher\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/routergroup.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"net/http\"\n\t\"path\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// IRouter defines all router handle interface includes single and group router.\ntype IRouter interface {\n\tIRoutes\n\tGroup(string, ...HandlerFunc) *RouterGroup\n}\n\n// IRoutes defines all router handle interface.\ntype IRoutes interface {\n\tUse(...HandlerFunc) IRoutes\n\n\tHandle(string, string, ...HandlerFunc) IRoutes\n\tAny(string, ...HandlerFunc) IRoutes\n\tGET(string, ...HandlerFunc) IRoutes\n\tPOST(string, ...HandlerFunc) IRoutes\n\tDELETE(string, ...HandlerFunc) IRoutes\n\tPATCH(string, ...HandlerFunc) IRoutes\n\tPUT(string, ...HandlerFunc) IRoutes\n\tOPTIONS(string, ...HandlerFunc) IRoutes\n\tHEAD(string, ...HandlerFunc) IRoutes\n\n\tStaticFile(string, string) IRoutes\n\tStatic(string, string) IRoutes\n\tStaticFS(string, http.FileSystem) IRoutes\n}\n\n// RouterGroup is used internally to configure router, a RouterGroup is associated with\n// a prefix and an array of handlers (middleware).\ntype RouterGroup struct {\n\tHandlers HandlersChain\n\tbasePath string\n\tengine   *Engine\n\troot     bool\n}\n\nvar _ IRouter = &RouterGroup{}\n\n// Use adds middleware to the group, see example code in GitHub.\nfunc (group *RouterGroup) Use(middleware ...HandlerFunc) IRoutes {\n\tgroup.Handlers = append(group.Handlers, middleware...)\n\treturn group.returnObj()\n}\n\n// Group creates a new router group. You should add all the routes that have common middlewares or the same path prefix.\n// For example, all the routes that use a common middleware for authorization could be grouped.\nfunc (group *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup {\n\treturn &RouterGroup{\n\t\tHandlers: group.combineHandlers(handlers),\n\t\tbasePath: group.calculateAbsolutePath(relativePath),\n\t\tengine:   group.engine,\n\t}\n}\n\n// BasePath returns the base path of router group.\n// For example, if v := router.Group(\"/rest/n/v1/api\"), v.BasePath() is \"/rest/n/v1/api\".\nfunc (group *RouterGroup) BasePath() string {\n\treturn group.basePath\n}\n\nfunc (group *RouterGroup) handle(httpMethod, relativePath string, handlers HandlersChain) IRoutes {\n\tabsolutePath := group.calculateAbsolutePath(relativePath)\n\thandlers = group.combineHandlers(handlers)\n\tgroup.engine.addRoute(httpMethod, absolutePath, handlers)\n\treturn group.returnObj()\n}\n\n// Handle registers a new request handle and middleware with the given path and method.\n// The last handler should be the real handler, the other ones should be middleware that can and should be shared among different routes.\n// See the example code in GitHub.\n//\n// For GET, POST, PUT, PATCH and DELETE requests the respective shortcut\n// functions can be used.\n//\n// This function is intended for bulk loading and to allow the usage of less\n// frequently used, non-standardized or custom methods (e.g. for internal\n// communication with a proxy).\nfunc (group *RouterGroup) Handle(httpMethod, relativePath string, handlers ...HandlerFunc) IRoutes {\n\tif matches, err := regexp.MatchString(\"^[A-Z]+$\", httpMethod); !matches || err != nil {\n\t\tpanic(\"http method \" + httpMethod + \" is not valid\")\n\t}\n\treturn group.handle(httpMethod, relativePath, handlers)\n}\n\n// POST is a shortcut for router.Handle(\"POST\", path, handle).\nfunc (group *RouterGroup) POST(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"POST\", relativePath, handlers)\n}\n\n// GET is a shortcut for router.Handle(\"GET\", path, handle).\nfunc (group *RouterGroup) GET(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"GET\", relativePath, handlers)\n}\n\n// DELETE is a shortcut for router.Handle(\"DELETE\", path, handle).\nfunc (group *RouterGroup) DELETE(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"DELETE\", relativePath, handlers)\n}\n\n// PATCH is a shortcut for router.Handle(\"PATCH\", path, handle).\nfunc (group *RouterGroup) PATCH(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"PATCH\", relativePath, handlers)\n}\n\n// PUT is a shortcut for router.Handle(\"PUT\", path, handle).\nfunc (group *RouterGroup) PUT(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"PUT\", relativePath, handlers)\n}\n\n// OPTIONS is a shortcut for router.Handle(\"OPTIONS\", path, handle).\nfunc (group *RouterGroup) OPTIONS(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"OPTIONS\", relativePath, handlers)\n}\n\n// HEAD is a shortcut for router.Handle(\"HEAD\", path, handle).\nfunc (group *RouterGroup) HEAD(relativePath string, handlers ...HandlerFunc) IRoutes {\n\treturn group.handle(\"HEAD\", relativePath, handlers)\n}\n\n// Any registers a route that matches all the HTTP methods.\n// GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE, CONNECT, TRACE.\nfunc (group *RouterGroup) Any(relativePath string, handlers ...HandlerFunc) IRoutes {\n\tgroup.handle(\"GET\", relativePath, handlers)\n\tgroup.handle(\"POST\", relativePath, handlers)\n\tgroup.handle(\"PUT\", relativePath, handlers)\n\tgroup.handle(\"PATCH\", relativePath, handlers)\n\tgroup.handle(\"HEAD\", relativePath, handlers)\n\tgroup.handle(\"OPTIONS\", relativePath, handlers)\n\tgroup.handle(\"DELETE\", relativePath, handlers)\n\tgroup.handle(\"CONNECT\", relativePath, handlers)\n\tgroup.handle(\"TRACE\", relativePath, handlers)\n\treturn group.returnObj()\n}\n\n// StaticFile registers a single route in order to serve a single file of the local filesystem.\n// router.StaticFile(\"favicon.ico\", \"./resources/favicon.ico\")\nfunc (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes {\n\tif strings.Contains(relativePath, \":\") || strings.Contains(relativePath, \"*\") {\n\t\tpanic(\"URL parameters can not be used when serving a static file\")\n\t}\n\thandler := func(c *Context) {\n\t\tc.File(filepath)\n\t}\n\tgroup.GET(relativePath, handler)\n\tgroup.HEAD(relativePath, handler)\n\treturn group.returnObj()\n}\n\n// Static serves files from the given file system root.\n// Internally a http.FileServer is used, therefore http.NotFound is used instead\n// of the Router's NotFound handler.\n// To use the operating system's file system implementation,\n// use :\n//     router.Static(\"/static\", \"/var/www\")\nfunc (group *RouterGroup) Static(relativePath, root string) IRoutes {\n\treturn group.StaticFS(relativePath, Dir(root, false))\n}\n\n// StaticFS works just like `Static()` but a custom `http.FileSystem` can be used instead.\n// Gin by default user: gin.Dir()\nfunc (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes {\n\tif strings.Contains(relativePath, \":\") || strings.Contains(relativePath, \"*\") {\n\t\tpanic(\"URL parameters can not be used when serving a static folder\")\n\t}\n\thandler := group.createStaticHandler(relativePath, fs)\n\turlPattern := path.Join(relativePath, \"/*filepath\")\n\n\t// Register GET and HEAD handlers\n\tgroup.GET(urlPattern, handler)\n\tgroup.HEAD(urlPattern, handler)\n\treturn group.returnObj()\n}\n\nfunc (group *RouterGroup) createStaticHandler(relativePath string, fs http.FileSystem) HandlerFunc {\n\tabsolutePath := group.calculateAbsolutePath(relativePath)\n\tfileServer := http.StripPrefix(absolutePath, http.FileServer(fs))\n\n\treturn func(c *Context) {\n\t\tif _, nolisting := fs.(*onlyfilesFS); nolisting {\n\t\t\tc.Writer.WriteHeader(http.StatusNotFound)\n\t\t}\n\n\t\tfile := c.Param(\"filepath\")\n\t\t// Check if file exists and/or if we have permission to access it\n\t\tif _, err := fs.Open(file); err != nil {\n\t\t\tc.Writer.WriteHeader(http.StatusNotFound)\n\t\t\tc.handlers = group.engine.noRoute\n\t\t\t// Reset index\n\t\t\tc.index = -1\n\t\t\treturn\n\t\t}\n\n\t\tfileServer.ServeHTTP(c.Writer, c.Request)\n\t}\n}\n\nfunc (group *RouterGroup) combineHandlers(handlers HandlersChain) HandlersChain {\n\tfinalSize := len(group.Handlers) + len(handlers)\n\tif finalSize >= int(abortIndex) {\n\t\tpanic(\"too many handlers\")\n\t}\n\tmergedHandlers := make(HandlersChain, finalSize)\n\tcopy(mergedHandlers, group.Handlers)\n\tcopy(mergedHandlers[len(group.Handlers):], handlers)\n\treturn mergedHandlers\n}\n\nfunc (group *RouterGroup) calculateAbsolutePath(relativePath string) string {\n\treturn joinPaths(group.basePath, relativePath)\n}\n\nfunc (group *RouterGroup) returnObj() IRoutes {\n\tif group.root {\n\t\treturn group.engine\n\t}\n\treturn group\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/test_helpers.go",
    "content": "// Copyright 2017 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport \"net/http\"\n\n// CreateTestContext returns a fresh engine and context for testing purposes\nfunc CreateTestContext(w http.ResponseWriter) (c *Context, r *Engine) {\n\tr = New()\n\tc = r.allocateContext()\n\tc.reset()\n\tc.writermem.reset(w)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/tree.go",
    "content": "// Copyright 2013 Julien Schmidt. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be found\n// at https://github.com/julienschmidt/httprouter/blob/master/LICENSE\n\npackage gin\n\nimport (\n\t\"net/url\"\n\t\"strings\"\n\t\"unicode\"\n)\n\n// Param is a single URL parameter, consisting of a key and a value.\ntype Param struct {\n\tKey   string\n\tValue string\n}\n\n// Params is a Param-slice, as returned by the router.\n// The slice is ordered, the first URL parameter is also the first slice value.\n// It is therefore safe to read values by the index.\ntype Params []Param\n\n// Get returns the value of the first Param which key matches the given name.\n// If no matching Param is found, an empty string is returned.\nfunc (ps Params) Get(name string) (string, bool) {\n\tfor _, entry := range ps {\n\t\tif entry.Key == name {\n\t\t\treturn entry.Value, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// ByName returns the value of the first Param which key matches the given name.\n// If no matching Param is found, an empty string is returned.\nfunc (ps Params) ByName(name string) (va string) {\n\tva, _ = ps.Get(name)\n\treturn\n}\n\ntype methodTree struct {\n\tmethod string\n\troot   *node\n}\n\ntype methodTrees []methodTree\n\nfunc (trees methodTrees) get(method string) *node {\n\tfor _, tree := range trees {\n\t\tif tree.method == method {\n\t\t\treturn tree.root\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc min(a, b int) int {\n\tif a <= b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc countParams(path string) uint8 {\n\tvar n uint\n\tfor i := 0; i < len(path); i++ {\n\t\tif path[i] != ':' && path[i] != '*' {\n\t\t\tcontinue\n\t\t}\n\t\tn++\n\t}\n\tif n >= 255 {\n\t\treturn 255\n\t}\n\treturn uint8(n)\n}\n\ntype nodeType uint8\n\nconst (\n\tstatic nodeType = iota // default\n\troot\n\tparam\n\tcatchAll\n)\n\ntype node struct {\n\tpath      string\n\tindices   string\n\tchildren  []*node\n\thandlers  HandlersChain\n\tpriority  uint32\n\tnType     nodeType\n\tmaxParams uint8\n\twildChild bool\n}\n\n// increments priority of the given child and reorders if necessary.\nfunc (n *node) incrementChildPrio(pos int) int {\n\tn.children[pos].priority++\n\tprio := n.children[pos].priority\n\n\t// adjust position (move to front)\n\tnewPos := pos\n\tfor newPos > 0 && n.children[newPos-1].priority < prio {\n\t\t// swap node positions\n\t\tn.children[newPos-1], n.children[newPos] = n.children[newPos], n.children[newPos-1]\n\n\t\tnewPos--\n\t}\n\n\t// build new index char string\n\tif newPos != pos {\n\t\tn.indices = n.indices[:newPos] + // unchanged prefix, might be empty\n\t\t\tn.indices[pos:pos+1] + // the index char we move\n\t\t\tn.indices[newPos:pos] + n.indices[pos+1:] // rest without char at 'pos'\n\t}\n\n\treturn newPos\n}\n\n// addRoute adds a node with the given handle to the path.\n// Not concurrency-safe!\nfunc (n *node) addRoute(path string, handlers HandlersChain) {\n\tfullPath := path\n\tn.priority++\n\tnumParams := countParams(path)\n\n\t// non-empty tree\n\tif len(n.path) > 0 || len(n.children) > 0 {\n\twalk:\n\t\tfor {\n\t\t\t// Update maxParams of the current node\n\t\t\tif numParams > n.maxParams {\n\t\t\t\tn.maxParams = numParams\n\t\t\t}\n\n\t\t\t// Find the longest common prefix.\n\t\t\t// This also implies that the common prefix contains no ':' or '*'\n\t\t\t// since the existing key can't contain those chars.\n\t\t\ti := 0\n\t\t\tmax := min(len(path), len(n.path))\n\t\t\tfor i < max && path[i] == n.path[i] {\n\t\t\t\ti++\n\t\t\t}\n\n\t\t\t// Split edge\n\t\t\tif i < len(n.path) {\n\t\t\t\tchild := node{\n\t\t\t\t\tpath:      n.path[i:],\n\t\t\t\t\twildChild: n.wildChild,\n\t\t\t\t\tindices:   n.indices,\n\t\t\t\t\tchildren:  n.children,\n\t\t\t\t\thandlers:  n.handlers,\n\t\t\t\t\tpriority:  n.priority - 1,\n\t\t\t\t}\n\n\t\t\t\t// Update maxParams (max of all children)\n\t\t\t\tfor i := range child.children {\n\t\t\t\t\tif child.children[i].maxParams > child.maxParams {\n\t\t\t\t\t\tchild.maxParams = child.children[i].maxParams\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tn.children = []*node{&child}\n\t\t\t\t// []byte for proper unicode char conversion, see #65\n\t\t\t\tn.indices = string([]byte{n.path[i]})\n\t\t\t\tn.path = path[:i]\n\t\t\t\tn.handlers = nil\n\t\t\t\tn.wildChild = false\n\t\t\t}\n\n\t\t\t// Make new node a child of this node\n\t\t\tif i < len(path) {\n\t\t\t\tpath = path[i:]\n\n\t\t\t\tif n.wildChild {\n\t\t\t\t\tn = n.children[0]\n\t\t\t\t\tn.priority++\n\n\t\t\t\t\t// Update maxParams of the child node\n\t\t\t\t\tif numParams > n.maxParams {\n\t\t\t\t\t\tn.maxParams = numParams\n\t\t\t\t\t}\n\t\t\t\t\tnumParams--\n\n\t\t\t\t\t// Check if the wildcard matches\n\t\t\t\t\tif len(path) >= len(n.path) && n.path == path[:len(n.path)] {\n\t\t\t\t\t\t// check for longer wildcard, e.g. :name and :names\n\t\t\t\t\t\tif len(n.path) >= len(path) || path[len(n.path)] == '/' {\n\t\t\t\t\t\t\tcontinue walk\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tpathSeg := path\n\t\t\t\t\tif n.nType != catchAll {\n\t\t\t\t\t\tpathSeg = strings.SplitN(path, \"/\", 2)[0]\n\t\t\t\t\t}\n\t\t\t\t\tprefix := fullPath[:strings.Index(fullPath, pathSeg)] + n.path\n\t\t\t\t\tpanic(\"'\" + pathSeg +\n\t\t\t\t\t\t\"' in new path '\" + fullPath +\n\t\t\t\t\t\t\"' conflicts with existing wildcard '\" + n.path +\n\t\t\t\t\t\t\"' in existing prefix '\" + prefix +\n\t\t\t\t\t\t\"'\")\n\t\t\t\t}\n\n\t\t\t\tc := path[0]\n\n\t\t\t\t// slash after param\n\t\t\t\tif n.nType == param && c == '/' && len(n.children) == 1 {\n\t\t\t\t\tn = n.children[0]\n\t\t\t\t\tn.priority++\n\t\t\t\t\tcontinue walk\n\t\t\t\t}\n\n\t\t\t\t// Check if a child with the next path byte exists\n\t\t\t\tfor i := 0; i < len(n.indices); i++ {\n\t\t\t\t\tif c == n.indices[i] {\n\t\t\t\t\t\ti = n.incrementChildPrio(i)\n\t\t\t\t\t\tn = n.children[i]\n\t\t\t\t\t\tcontinue walk\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Otherwise insert it\n\t\t\t\tif c != ':' && c != '*' {\n\t\t\t\t\t// []byte for proper unicode char conversion, see #65\n\t\t\t\t\tn.indices += string([]byte{c})\n\t\t\t\t\tchild := &node{\n\t\t\t\t\t\tmaxParams: numParams,\n\t\t\t\t\t}\n\t\t\t\t\tn.children = append(n.children, child)\n\t\t\t\t\tn.incrementChildPrio(len(n.indices) - 1)\n\t\t\t\t\tn = child\n\t\t\t\t}\n\t\t\t\tn.insertChild(numParams, path, fullPath, handlers)\n\t\t\t\treturn\n\n\t\t\t} else if i == len(path) { // Make node a (in-path) leaf\n\t\t\t\tif n.handlers != nil {\n\t\t\t\t\tpanic(\"handlers are already registered for path '\" + fullPath + \"'\")\n\t\t\t\t}\n\t\t\t\tn.handlers = handlers\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t} else { // Empty tree\n\t\tn.insertChild(numParams, path, fullPath, handlers)\n\t\tn.nType = root\n\t}\n}\n\nfunc (n *node) insertChild(numParams uint8, path string, fullPath string, handlers HandlersChain) {\n\tvar offset int // already handled bytes of the path\n\n\t// find prefix until first wildcard (beginning with ':' or '*')\n\tfor i, max := 0, len(path); numParams > 0; i++ {\n\t\tc := path[i]\n\t\tif c != ':' && c != '*' {\n\t\t\tcontinue\n\t\t}\n\n\t\t// find wildcard end (either '/' or path end)\n\t\tend := i + 1\n\t\tfor end < max && path[end] != '/' {\n\t\t\tswitch path[end] {\n\t\t\t// the wildcard name must not contain ':' and '*'\n\t\t\tcase ':', '*':\n\t\t\t\tpanic(\"only one wildcard per path segment is allowed, has: '\" +\n\t\t\t\t\tpath[i:] + \"' in path '\" + fullPath + \"'\")\n\t\t\tdefault:\n\t\t\t\tend++\n\t\t\t}\n\t\t}\n\n\t\t// check if this Node existing children which would be\n\t\t// unreachable if we insert the wildcard here\n\t\tif len(n.children) > 0 {\n\t\t\tpanic(\"wildcard route '\" + path[i:end] +\n\t\t\t\t\"' conflicts with existing children in path '\" + fullPath + \"'\")\n\t\t}\n\n\t\t// check if the wildcard has a name\n\t\tif end-i < 2 {\n\t\t\tpanic(\"wildcards must be named with a non-empty name in path '\" + fullPath + \"'\")\n\t\t}\n\n\t\tif c == ':' { // param\n\t\t\t// split path at the beginning of the wildcard\n\t\t\tif i > 0 {\n\t\t\t\tn.path = path[offset:i]\n\t\t\t\toffset = i\n\t\t\t}\n\n\t\t\tchild := &node{\n\t\t\t\tnType:     param,\n\t\t\t\tmaxParams: numParams,\n\t\t\t}\n\t\t\tn.children = []*node{child}\n\t\t\tn.wildChild = true\n\t\t\tn = child\n\t\t\tn.priority++\n\t\t\tnumParams--\n\n\t\t\t// if the path doesn't end with the wildcard, then there\n\t\t\t// will be another non-wildcard subpath starting with '/'\n\t\t\tif end < max {\n\t\t\t\tn.path = path[offset:end]\n\t\t\t\toffset = end\n\n\t\t\t\tchild := &node{\n\t\t\t\t\tmaxParams: numParams,\n\t\t\t\t\tpriority:  1,\n\t\t\t\t}\n\t\t\t\tn.children = []*node{child}\n\t\t\t\tn = child\n\t\t\t}\n\n\t\t} else { // catchAll\n\t\t\tif end != max || numParams > 1 {\n\t\t\t\tpanic(\"catch-all routes are only allowed at the end of the path in path '\" + fullPath + \"'\")\n\t\t\t}\n\n\t\t\tif len(n.path) > 0 && n.path[len(n.path)-1] == '/' {\n\t\t\t\tpanic(\"catch-all conflicts with existing handle for the path segment root in path '\" + fullPath + \"'\")\n\t\t\t}\n\n\t\t\t// currently fixed width 1 for '/'\n\t\t\ti--\n\t\t\tif path[i] != '/' {\n\t\t\t\tpanic(\"no / before catch-all in path '\" + fullPath + \"'\")\n\t\t\t}\n\n\t\t\tn.path = path[offset:i]\n\n\t\t\t// first node: catchAll node with empty path\n\t\t\tchild := &node{\n\t\t\t\twildChild: true,\n\t\t\t\tnType:     catchAll,\n\t\t\t\tmaxParams: 1,\n\t\t\t}\n\t\t\tn.children = []*node{child}\n\t\t\tn.indices = string(path[i])\n\t\t\tn = child\n\t\t\tn.priority++\n\n\t\t\t// second node: node holding the variable\n\t\t\tchild = &node{\n\t\t\t\tpath:      path[i:],\n\t\t\t\tnType:     catchAll,\n\t\t\t\tmaxParams: 1,\n\t\t\t\thandlers:  handlers,\n\t\t\t\tpriority:  1,\n\t\t\t}\n\t\t\tn.children = []*node{child}\n\n\t\t\treturn\n\t\t}\n\t}\n\n\t// insert remaining path part and handle to the leaf\n\tn.path = path[offset:]\n\tn.handlers = handlers\n}\n\n// getValue returns the handle registered with the given path (key). The values of\n// wildcards are saved to a map.\n// If no handle can be found, a TSR (trailing slash redirect) recommendation is\n// made if a handle exists with an extra (without the) trailing slash for the\n// given path.\nfunc (n *node) getValue(path string, po Params, unescape bool) (handlers HandlersChain, p Params, tsr bool) {\n\tp = po\nwalk: // Outer loop for walking the tree\n\tfor {\n\t\tif len(path) > len(n.path) {\n\t\t\tif path[:len(n.path)] == n.path {\n\t\t\t\tpath = path[len(n.path):]\n\t\t\t\t// If this node does not have a wildcard (param or catchAll)\n\t\t\t\t// child,  we can just look up the next child node and continue\n\t\t\t\t// to walk down the tree\n\t\t\t\tif !n.wildChild {\n\t\t\t\t\tc := path[0]\n\t\t\t\t\tfor i := 0; i < len(n.indices); i++ {\n\t\t\t\t\t\tif c == n.indices[i] {\n\t\t\t\t\t\t\tn = n.children[i]\n\t\t\t\t\t\t\tcontinue walk\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Nothing found.\n\t\t\t\t\t// We can recommend to redirect to the same URL without a\n\t\t\t\t\t// trailing slash if a leaf exists for that path.\n\t\t\t\t\ttsr = path == \"/\" && n.handlers != nil\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// handle wildcard child\n\t\t\t\tn = n.children[0]\n\t\t\t\tswitch n.nType {\n\t\t\t\tcase param:\n\t\t\t\t\t// find param end (either '/' or path end)\n\t\t\t\t\tend := 0\n\t\t\t\t\tfor end < len(path) && path[end] != '/' {\n\t\t\t\t\t\tend++\n\t\t\t\t\t}\n\n\t\t\t\t\t// save param value\n\t\t\t\t\tif cap(p) < int(n.maxParams) {\n\t\t\t\t\t\tp = make(Params, 0, n.maxParams)\n\t\t\t\t\t}\n\t\t\t\t\ti := len(p)\n\t\t\t\t\tp = p[:i+1] // expand slice within preallocated capacity\n\t\t\t\t\tp[i].Key = n.path[1:]\n\t\t\t\t\tval := path[:end]\n\t\t\t\t\tif unescape {\n\t\t\t\t\t\tvar err error\n\t\t\t\t\t\tif p[i].Value, err = url.QueryUnescape(val); err != nil {\n\t\t\t\t\t\t\tp[i].Value = val // fallback, in case of error\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp[i].Value = val\n\t\t\t\t\t}\n\n\t\t\t\t\t// we need to go deeper!\n\t\t\t\t\tif end < len(path) {\n\t\t\t\t\t\tif len(n.children) > 0 {\n\t\t\t\t\t\t\tpath = path[end:]\n\t\t\t\t\t\t\tn = n.children[0]\n\t\t\t\t\t\t\tcontinue walk\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// ... but we can't\n\t\t\t\t\t\ttsr = len(path) == end+1\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tif handlers = n.handlers; handlers != nil {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tif len(n.children) == 1 {\n\t\t\t\t\t\t// No handle found. Check if a handle for this path + a\n\t\t\t\t\t\t// trailing slash exists for TSR recommendation\n\t\t\t\t\t\tn = n.children[0]\n\t\t\t\t\t\ttsr = n.path == \"/\" && n.handlers != nil\n\t\t\t\t\t}\n\n\t\t\t\t\treturn\n\n\t\t\t\tcase catchAll:\n\t\t\t\t\t// save param value\n\t\t\t\t\tif cap(p) < int(n.maxParams) {\n\t\t\t\t\t\tp = make(Params, 0, n.maxParams)\n\t\t\t\t\t}\n\t\t\t\t\ti := len(p)\n\t\t\t\t\tp = p[:i+1] // expand slice within preallocated capacity\n\t\t\t\t\tp[i].Key = n.path[2:]\n\t\t\t\t\tif unescape {\n\t\t\t\t\t\tvar err error\n\t\t\t\t\t\tif p[i].Value, err = url.QueryUnescape(path); err != nil {\n\t\t\t\t\t\t\tp[i].Value = path // fallback, in case of error\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp[i].Value = path\n\t\t\t\t\t}\n\n\t\t\t\t\thandlers = n.handlers\n\t\t\t\t\treturn\n\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"invalid node type\")\n\t\t\t\t}\n\t\t\t}\n\t\t} else if path == n.path {\n\t\t\t// We should have reached the node containing the handle.\n\t\t\t// Check if this node has a handle registered.\n\t\t\tif handlers = n.handlers; handlers != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif path == \"/\" && n.wildChild && n.nType != root {\n\t\t\t\ttsr = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// No handle found. Check if a handle for this path + a\n\t\t\t// trailing slash exists for trailing slash recommendation\n\t\t\tfor i := 0; i < len(n.indices); i++ {\n\t\t\t\tif n.indices[i] == '/' {\n\t\t\t\t\tn = n.children[i]\n\t\t\t\t\ttsr = (len(n.path) == 1 && n.handlers != nil) ||\n\t\t\t\t\t\t(n.nType == catchAll && n.children[0].handlers != nil)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn\n\t\t}\n\n\t\t// Nothing found. We can recommend to redirect to the same URL with an\n\t\t// extra trailing slash if a leaf exists for that path\n\t\ttsr = (path == \"/\") ||\n\t\t\t(len(n.path) == len(path)+1 && n.path[len(path)] == '/' &&\n\t\t\t\tpath == n.path[:len(n.path)-1] && n.handlers != nil)\n\t\treturn\n\t}\n}\n\n// findCaseInsensitivePath makes a case-insensitive lookup of the given path and tries to find a handler.\n// It can optionally also fix trailing slashes.\n// It returns the case-corrected path and a bool indicating whether the lookup\n// was successful.\nfunc (n *node) findCaseInsensitivePath(path string, fixTrailingSlash bool) (ciPath []byte, found bool) {\n\tciPath = make([]byte, 0, len(path)+1) // preallocate enough memory\n\n\t// Outer loop for walking the tree\n\tfor len(path) >= len(n.path) && strings.ToLower(path[:len(n.path)]) == strings.ToLower(n.path) {\n\t\tpath = path[len(n.path):]\n\t\tciPath = append(ciPath, n.path...)\n\n\t\tif len(path) > 0 {\n\t\t\t// If this node does not have a wildcard (param or catchAll) child,\n\t\t\t// we can just look up the next child node and continue to walk down\n\t\t\t// the tree\n\t\t\tif !n.wildChild {\n\t\t\t\tr := unicode.ToLower(rune(path[0]))\n\t\t\t\tfor i, index := range n.indices {\n\t\t\t\t\t// must use recursive approach since both index and\n\t\t\t\t\t// ToLower(index) could exist. We must check both.\n\t\t\t\t\tif r == unicode.ToLower(index) {\n\t\t\t\t\t\tout, found := n.children[i].findCaseInsensitivePath(path, fixTrailingSlash)\n\t\t\t\t\t\tif found {\n\t\t\t\t\t\t\treturn append(ciPath, out...), true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Nothing found. We can recommend to redirect to the same URL\n\t\t\t\t// without a trailing slash if a leaf exists for that path\n\t\t\t\tfound = fixTrailingSlash && path == \"/\" && n.handlers != nil\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tn = n.children[0]\n\t\t\tswitch n.nType {\n\t\t\tcase param:\n\t\t\t\t// find param end (either '/' or path end)\n\t\t\t\tk := 0\n\t\t\t\tfor k < len(path) && path[k] != '/' {\n\t\t\t\t\tk++\n\t\t\t\t}\n\n\t\t\t\t// add param value to case insensitive path\n\t\t\t\tciPath = append(ciPath, path[:k]...)\n\n\t\t\t\t// we need to go deeper!\n\t\t\t\tif k < len(path) {\n\t\t\t\t\tif len(n.children) > 0 {\n\t\t\t\t\t\tpath = path[k:]\n\t\t\t\t\t\tn = n.children[0]\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\t// ... but we can't\n\t\t\t\t\tif fixTrailingSlash && len(path) == k+1 {\n\t\t\t\t\t\treturn ciPath, true\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif n.handlers != nil {\n\t\t\t\t\treturn ciPath, true\n\t\t\t\t} else if fixTrailingSlash && len(n.children) == 1 {\n\t\t\t\t\t// No handle found. Check if a handle for this path + a\n\t\t\t\t\t// trailing slash exists\n\t\t\t\t\tn = n.children[0]\n\t\t\t\t\tif n.path == \"/\" && n.handlers != nil {\n\t\t\t\t\t\treturn append(ciPath, '/'), true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn\n\n\t\t\tcase catchAll:\n\t\t\t\treturn append(ciPath, path...), true\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"invalid node type\")\n\t\t\t}\n\t\t} else {\n\t\t\t// We should have reached the node containing the handle.\n\t\t\t// Check if this node has a handle registered.\n\t\t\tif n.handlers != nil {\n\t\t\t\treturn ciPath, true\n\t\t\t}\n\n\t\t\t// No handle found.\n\t\t\t// Try to fix the path by adding a trailing slash\n\t\t\tif fixTrailingSlash {\n\t\t\t\tfor i := 0; i < len(n.indices); i++ {\n\t\t\t\t\tif n.indices[i] == '/' {\n\t\t\t\t\t\tn = n.children[i]\n\t\t\t\t\t\tif (len(n.path) == 1 && n.handlers != nil) ||\n\t\t\t\t\t\t\t(n.nType == catchAll && n.children[0].handlers != nil) {\n\t\t\t\t\t\t\treturn append(ciPath, '/'), true\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Nothing found.\n\t// Try to fix the path by adding / removing a trailing slash\n\tif fixTrailingSlash {\n\t\tif path == \"/\" {\n\t\t\treturn ciPath, true\n\t\t}\n\t\tif len(path)+1 == len(n.path) && n.path[len(path)] == '/' &&\n\t\t\tstrings.ToLower(path) == strings.ToLower(n.path[:len(path)]) &&\n\t\t\tn.handlers != nil {\n\t\t\treturn append(ciPath, n.path...), true\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/utils.go",
    "content": "// Copyright 2014 Manu Martinez-Almeida.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\nimport (\n\t\"encoding/xml\"\n\t\"net/http\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strings\"\n)\n\n// BindKey indicates a default bind key.\nconst BindKey = \"_gin-gonic/gin/bindkey\"\n\n// Bind is a helper function for given interface object and returns a Gin middleware.\nfunc Bind(val interface{}) HandlerFunc {\n\tvalue := reflect.ValueOf(val)\n\tif value.Kind() == reflect.Ptr {\n\t\tpanic(`Bind struct can not be a pointer. Example:\n\tUse: gin.Bind(Struct{}) instead of gin.Bind(&Struct{})\n`)\n\t}\n\ttyp := value.Type()\n\n\treturn func(c *Context) {\n\t\tobj := reflect.New(typ).Interface()\n\t\tif c.Bind(obj) == nil {\n\t\t\tc.Set(BindKey, obj)\n\t\t}\n\t}\n}\n\n// WrapF is a helper function for wrapping http.HandlerFunc and returns a Gin middleware.\nfunc WrapF(f http.HandlerFunc) HandlerFunc {\n\treturn func(c *Context) {\n\t\tf(c.Writer, c.Request)\n\t}\n}\n\n// WrapH is a helper function for wrapping http.Handler and returns a Gin middleware.\nfunc WrapH(h http.Handler) HandlerFunc {\n\treturn func(c *Context) {\n\t\th.ServeHTTP(c.Writer, c.Request)\n\t}\n}\n\n// H is a shortcut for map[string]interface{}\ntype H map[string]interface{}\n\n// MarshalXML allows type H to be used with xml.Marshal.\nfunc (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error {\n\tstart.Name = xml.Name{\n\t\tSpace: \"\",\n\t\tLocal: \"map\",\n\t}\n\tif err := e.EncodeToken(start); err != nil {\n\t\treturn err\n\t}\n\tfor key, value := range h {\n\t\telem := xml.StartElement{\n\t\t\tName: xml.Name{Space: \"\", Local: key},\n\t\t\tAttr: []xml.Attr{},\n\t\t}\n\t\tif err := e.EncodeElement(value, elem); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn e.EncodeToken(xml.EndElement{Name: start.Name})\n}\n\nfunc assert1(guard bool, text string) {\n\tif !guard {\n\t\tpanic(text)\n\t}\n}\n\nfunc filterFlags(content string) string {\n\tfor i, char := range content {\n\t\tif char == ' ' || char == ';' {\n\t\t\treturn content[:i]\n\t\t}\n\t}\n\treturn content\n}\n\nfunc chooseData(custom, wildcard interface{}) interface{} {\n\tif custom == nil {\n\t\tif wildcard == nil {\n\t\t\tpanic(\"negotiation config is invalid\")\n\t\t}\n\t\treturn wildcard\n\t}\n\treturn custom\n}\n\nfunc parseAccept(acceptHeader string) []string {\n\tparts := strings.Split(acceptHeader, \",\")\n\tout := make([]string, 0, len(parts))\n\tfor _, part := range parts {\n\t\tif part = strings.TrimSpace(strings.Split(part, \";\")[0]); part != \"\" {\n\t\t\tout = append(out, part)\n\t\t}\n\t}\n\treturn out\n}\n\nfunc lastChar(str string) uint8 {\n\tif str == \"\" {\n\t\tpanic(\"The length of the string can't be 0\")\n\t}\n\treturn str[len(str)-1]\n}\n\nfunc nameOfFunction(f interface{}) string {\n\treturn runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name()\n}\n\nfunc joinPaths(absolutePath, relativePath string) string {\n\tif relativePath == \"\" {\n\t\treturn absolutePath\n\t}\n\n\tfinalPath := path.Join(absolutePath, relativePath)\n\tappendSlash := lastChar(relativePath) == '/' && lastChar(finalPath) != '/'\n\tif appendSlash {\n\t\treturn finalPath + \"/\"\n\t}\n\treturn finalPath\n}\n\nfunc resolveAddress(addr []string) string {\n\tswitch len(addr) {\n\tcase 0:\n\t\tif port := os.Getenv(\"PORT\"); port != \"\" {\n\t\t\tdebugPrint(\"Environment variable PORT=\\\"%s\\\"\", port)\n\t\t\treturn \":\" + port\n\t\t}\n\t\tdebugPrint(\"Environment variable PORT is undefined. Using port :8080 by default\")\n\t\treturn \":8080\"\n\tcase 1:\n\t\treturn addr[0]\n\tdefault:\n\t\tpanic(\"too much parameters\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gin-gonic/gin/version.go",
    "content": "// Copyright 2018 Gin Core Team.  All rights reserved.\n// Use of this source code is governed by a MIT style\n// license that can be found in the LICENSE file.\n\npackage gin\n\n// Version is the current gin framework's version.\nconst Version = \"v1.4.0\"\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/.gitignore",
    "content": "testdata/conf_out.ini\nini.sublime-project\nini.sublime-workspace\ntestdata/conf_reflect.ini\n.idea\n/.vscode\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/.travis.yml",
    "content": "sudo: false\nlanguage: go\ngo:\n  - 1.5.x\n  - 1.6.x\n  - 1.7.x\n  - 1.8.x\n  - 1.9.x\n\nscript: \n  - go get golang.org/x/tools/cmd/cover\n  - go get github.com/smartystreets/goconvey\n  - mkdir -p $HOME/gopath/src/gopkg.in\n  - ln -s $HOME/gopath/src/github.com/go-ini/ini $HOME/gopath/src/gopkg.in/ini.v1\n  - go test -v -cover -race\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright 2014 Unknwon\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/Makefile",
    "content": ".PHONY: build test bench vet coverage\n\nbuild: vet bench\n\ntest:\n\tgo test -v -cover -race\n\nbench:\n\tgo test -v -cover -race -test.bench=. -test.benchmem\n\nvet:\n\tgo vet\n\ncoverage:\n\tgo test -coverprofile=c.out && go tool cover -html=c.out && rm c.out"
  },
  {
    "path": "vendor/github.com/go-ini/ini/README.md",
    "content": "INI [![Build Status](https://travis-ci.org/go-ini/ini.svg?branch=master)](https://travis-ci.org/go-ini/ini) [![Sourcegraph](https://sourcegraph.com/github.com/go-ini/ini/-/badge.svg)](https://sourcegraph.com/github.com/go-ini/ini?badge)\n===\n\n![](https://avatars0.githubusercontent.com/u/10216035?v=3&s=200)\n\nPackage ini provides INI file read and write functionality in Go.\n\n[简体中文](README_ZH.md)\n\n## Feature\n\n- Load multiple data sources(`[]byte`, file and `io.ReadCloser`) with overwrites.\n- Read with recursion values.\n- Read with parent-child sections.\n- Read with auto-increment key names.\n- Read with multiple-line values.\n- Read with tons of helper methods.\n- Read and convert values to Go types.\n- Read and **WRITE** comments of sections and keys.\n- Manipulate sections, keys and comments with ease.\n- Keep sections and keys in order as you parse and save.\n\n## Installation\n\nTo use a tagged revision:\n\n\tgo get gopkg.in/ini.v1\n\nTo use with latest changes:\n\n\tgo get github.com/go-ini/ini\n\nPlease add `-u` flag to update in the future.\n\n### Testing\n\nIf you want to test on your machine, please apply `-t` flag:\n\n\tgo get -t gopkg.in/ini.v1\n\nPlease add `-u` flag to update in the future.\n\n## Getting Started\n\n### Loading from data sources\n\nA **Data Source** is either raw data in type `[]byte`, a file name with type `string` or `io.ReadCloser`. You can load **as many data sources as you want**. Passing other types will simply return an error.\n\n```go\ncfg, err := ini.Load([]byte(\"raw data\"), \"filename\", ioutil.NopCloser(bytes.NewReader([]byte(\"some other data\"))))\n```\n\nOr start with an empty object:\n\n```go\ncfg := ini.Empty()\n```\n\nWhen you cannot decide how many data sources to load at the beginning, you will still be able to **Append()** them later.\n\n```go\nerr := cfg.Append(\"other file\", []byte(\"other raw data\"))\n```\n\nIf you have a list of files with possibilities that some of them may not available at the time, and you don't know exactly which ones, you can use `LooseLoad` to ignore nonexistent files without returning error.\n\n```go\ncfg, err := ini.LooseLoad(\"filename\", \"filename_404\")\n```\n\nThe cool thing is, whenever the file is available to load while you're calling `Reload` method, it will be counted as usual.\n\n#### Ignore cases of key name\n\nWhen you do not care about cases of section and key names, you can use `InsensitiveLoad` to force all names to be lowercased while parsing.\n\n```go\ncfg, err := ini.InsensitiveLoad(\"filename\")\n//...\n\n// sec1 and sec2 are the exactly same section object\nsec1, err := cfg.GetSection(\"Section\")\nsec2, err := cfg.GetSection(\"SecTIOn\")\n\n// key1 and key2 are the exactly same key object\nkey1, err := sec1.GetKey(\"Key\")\nkey2, err := sec2.GetKey(\"KeY\")\n```\n\n#### MySQL-like boolean key \n\nMySQL's configuration allows a key without value as follows:\n\n```ini\n[mysqld]\n...\nskip-host-cache\nskip-name-resolve\n```\n\nBy default, this is considered as missing value. But if you know you're going to deal with those cases, you can assign advanced load options:\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{AllowBooleanKeys: true}, \"my.cnf\"))\n```\n\nThe value of those keys are always `true`, and when you save to a file, it will keep in the same foramt as you read.\n\nTo generate such keys in your program, you could use `NewBooleanKey`:\n\n```go\nkey, err := sec.NewBooleanKey(\"skip-host-cache\")\n```\n\n#### Comment\n\nTake care that following format will be treated as comment:\n\n1. Line begins with `#` or `;`\n2. Words after `#` or `;`\n3. Words after section name (i.e words after `[some section name]`)\n\nIf you want to save a value with `#` or `;`, please quote them with ``` ` ``` or ``` \"\"\" ```.\n\nAlternatively, you can use following `LoadOptions` to completely ignore inline comments:\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, \"app.ini\"))\n```\n\n### Working with sections\n\nTo get a section, you would need to:\n\n```go\nsection, err := cfg.GetSection(\"section name\")\n```\n\nFor a shortcut for default section, just give an empty string as name:\n\n```go\nsection, err := cfg.GetSection(\"\")\n```\n\nWhen you're pretty sure the section exists, following code could make your life easier:\n\n```go\nsection := cfg.Section(\"section name\")\n```\n\nWhat happens when the section somehow does not exist? Don't panic, it automatically creates and returns a new section to you.\n\nTo create a new section:\n\n```go\nerr := cfg.NewSection(\"new section\")\n```\n\nTo get a list of sections or section names:\n\n```go\nsections := cfg.Sections()\nnames := cfg.SectionStrings()\n```\n\n### Working with keys\n\nTo get a key under a section:\n\n```go\nkey, err := cfg.Section(\"\").GetKey(\"key name\")\n```\n\nSame rule applies to key operations:\n\n```go\nkey := cfg.Section(\"\").Key(\"key name\")\n```\n\nTo check if a key exists:\n\n```go\nyes := cfg.Section(\"\").HasKey(\"key name\")\n```\n\nTo create a new key:\n\n```go\nerr := cfg.Section(\"\").NewKey(\"name\", \"value\")\n```\n\nTo get a list of keys or key names:\n\n```go\nkeys := cfg.Section(\"\").Keys()\nnames := cfg.Section(\"\").KeyStrings()\n```\n\nTo get a clone hash of keys and corresponding values:\n\n```go\nhash := cfg.Section(\"\").KeysHash()\n```\n\n### Working with values\n\nTo get a string value:\n\n```go\nval := cfg.Section(\"\").Key(\"key name\").String()\n```\n\nTo validate key value on the fly:\n\n```go\nval := cfg.Section(\"\").Key(\"key name\").Validate(func(in string) string {\n\tif len(in) == 0 {\n\t\treturn \"default\"\n\t}\n\treturn in\n})\n```\n\nIf you do not want any auto-transformation (such as recursive read) for the values, you can get raw value directly (this way you get much better performance):\n\n```go\nval := cfg.Section(\"\").Key(\"key name\").Value()\n```\n\nTo check if raw value exists:\n\n```go\nyes := cfg.Section(\"\").HasValue(\"test value\")\n```\n\nTo get value with types:\n\n```go\n// For boolean values:\n// true when value is: 1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On\n// false when value is: 0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off\nv, err = cfg.Section(\"\").Key(\"BOOL\").Bool()\nv, err = cfg.Section(\"\").Key(\"FLOAT64\").Float64()\nv, err = cfg.Section(\"\").Key(\"INT\").Int()\nv, err = cfg.Section(\"\").Key(\"INT64\").Int64()\nv, err = cfg.Section(\"\").Key(\"UINT\").Uint()\nv, err = cfg.Section(\"\").Key(\"UINT64\").Uint64()\nv, err = cfg.Section(\"\").Key(\"TIME\").TimeFormat(time.RFC3339)\nv, err = cfg.Section(\"\").Key(\"TIME\").Time() // RFC3339\n\nv = cfg.Section(\"\").Key(\"BOOL\").MustBool()\nv = cfg.Section(\"\").Key(\"FLOAT64\").MustFloat64()\nv = cfg.Section(\"\").Key(\"INT\").MustInt()\nv = cfg.Section(\"\").Key(\"INT64\").MustInt64()\nv = cfg.Section(\"\").Key(\"UINT\").MustUint()\nv = cfg.Section(\"\").Key(\"UINT64\").MustUint64()\nv = cfg.Section(\"\").Key(\"TIME\").MustTimeFormat(time.RFC3339)\nv = cfg.Section(\"\").Key(\"TIME\").MustTime() // RFC3339\n\n// Methods start with Must also accept one argument for default value\n// when key not found or fail to parse value to given type.\n// Except method MustString, which you have to pass a default value.\n\nv = cfg.Section(\"\").Key(\"String\").MustString(\"default\")\nv = cfg.Section(\"\").Key(\"BOOL\").MustBool(true)\nv = cfg.Section(\"\").Key(\"FLOAT64\").MustFloat64(1.25)\nv = cfg.Section(\"\").Key(\"INT\").MustInt(10)\nv = cfg.Section(\"\").Key(\"INT64\").MustInt64(99)\nv = cfg.Section(\"\").Key(\"UINT\").MustUint(3)\nv = cfg.Section(\"\").Key(\"UINT64\").MustUint64(6)\nv = cfg.Section(\"\").Key(\"TIME\").MustTimeFormat(time.RFC3339, time.Now())\nv = cfg.Section(\"\").Key(\"TIME\").MustTime(time.Now()) // RFC3339\n```\n\nWhat if my value is three-line long?\n\n```ini\n[advance]\nADDRESS = \"\"\"404 road,\nNotFound, State, 5000\nEarth\"\"\"\n```\n\nNot a problem!\n\n```go\ncfg.Section(\"advance\").Key(\"ADDRESS\").String()\n\n/* --- start ---\n404 road,\nNotFound, State, 5000\nEarth\n------  end  --- */\n```\n\nThat's cool, how about continuation lines?\n\n```ini\n[advance]\ntwo_lines = how about \\\n\tcontinuation lines?\nlots_of_lines = 1 \\\n\t2 \\\n\t3 \\\n\t4\n```\n\nPiece of cake!\n\n```go\ncfg.Section(\"advance\").Key(\"two_lines\").String() // how about continuation lines?\ncfg.Section(\"advance\").Key(\"lots_of_lines\").String() // 1 2 3 4\n```\n\nWell, I hate continuation lines, how do I disable that?\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{\n\tIgnoreContinuation: true,\n}, \"filename\")\n```\n\nHoly crap! \n\nNote that single quotes around values will be stripped:\n\n```ini\nfoo = \"some value\" // foo: some value\nbar = 'some value' // bar: some value\n```\n\nSometimes you downloaded file from [Crowdin](https://crowdin.com/) has values like the following (value is surrounded by double quotes and quotes in the value are escaped):\n\n```ini\ncreate_repo=\"created repository <a href=\\\"%s\\\">%s</a>\"\n```\n\nHow do you transform this to regular format automatically?\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{UnescapeValueDoubleQuotes: true}, \"en-US.ini\"))\ncfg.Section(\"<name of your section>\").Key(\"create_repo\").String() \n// You got: created repository <a href=\"%s\">%s</a>\n```\n\nThat's all? Hmm, no.\n\n#### Helper methods of working with values\n\nTo get value with given candidates:\n\n```go\nv = cfg.Section(\"\").Key(\"STRING\").In(\"default\", []string{\"str\", \"arr\", \"types\"})\nv = cfg.Section(\"\").Key(\"FLOAT64\").InFloat64(1.1, []float64{1.25, 2.5, 3.75})\nv = cfg.Section(\"\").Key(\"INT\").InInt(5, []int{10, 20, 30})\nv = cfg.Section(\"\").Key(\"INT64\").InInt64(10, []int64{10, 20, 30})\nv = cfg.Section(\"\").Key(\"UINT\").InUint(4, []int{3, 6, 9})\nv = cfg.Section(\"\").Key(\"UINT64\").InUint64(8, []int64{3, 6, 9})\nv = cfg.Section(\"\").Key(\"TIME\").InTimeFormat(time.RFC3339, time.Now(), []time.Time{time1, time2, time3})\nv = cfg.Section(\"\").Key(\"TIME\").InTime(time.Now(), []time.Time{time1, time2, time3}) // RFC3339\n```\n\nDefault value will be presented if value of key is not in candidates you given, and default value does not need be one of candidates.\n\nTo validate value in a given range:\n\n```go\nvals = cfg.Section(\"\").Key(\"FLOAT64\").RangeFloat64(0.0, 1.1, 2.2)\nvals = cfg.Section(\"\").Key(\"INT\").RangeInt(0, 10, 20)\nvals = cfg.Section(\"\").Key(\"INT64\").RangeInt64(0, 10, 20)\nvals = cfg.Section(\"\").Key(\"UINT\").RangeUint(0, 3, 9)\nvals = cfg.Section(\"\").Key(\"UINT64\").RangeUint64(0, 3, 9)\nvals = cfg.Section(\"\").Key(\"TIME\").RangeTimeFormat(time.RFC3339, time.Now(), minTime, maxTime)\nvals = cfg.Section(\"\").Key(\"TIME\").RangeTime(time.Now(), minTime, maxTime) // RFC3339\n```\n\n##### Auto-split values into a slice\n\nTo use zero value of type for invalid inputs:\n\n```go\n// Input: 1.1, 2.2, 3.3, 4.4 -> [1.1 2.2 3.3 4.4]\n// Input: how, 2.2, are, you -> [0.0 2.2 0.0 0.0]\nvals = cfg.Section(\"\").Key(\"STRINGS\").Strings(\",\")\nvals = cfg.Section(\"\").Key(\"FLOAT64S\").Float64s(\",\")\nvals = cfg.Section(\"\").Key(\"INTS\").Ints(\",\")\nvals = cfg.Section(\"\").Key(\"INT64S\").Int64s(\",\")\nvals = cfg.Section(\"\").Key(\"UINTS\").Uints(\",\")\nvals = cfg.Section(\"\").Key(\"UINT64S\").Uint64s(\",\")\nvals = cfg.Section(\"\").Key(\"TIMES\").Times(\",\")\n```\n\nTo exclude invalid values out of result slice:\n\n```go\n// Input: 1.1, 2.2, 3.3, 4.4 -> [1.1 2.2 3.3 4.4]\n// Input: how, 2.2, are, you -> [2.2]\nvals = cfg.Section(\"\").Key(\"FLOAT64S\").ValidFloat64s(\",\")\nvals = cfg.Section(\"\").Key(\"INTS\").ValidInts(\",\")\nvals = cfg.Section(\"\").Key(\"INT64S\").ValidInt64s(\",\")\nvals = cfg.Section(\"\").Key(\"UINTS\").ValidUints(\",\")\nvals = cfg.Section(\"\").Key(\"UINT64S\").ValidUint64s(\",\")\nvals = cfg.Section(\"\").Key(\"TIMES\").ValidTimes(\",\")\n```\n\nOr to return nothing but error when have invalid inputs:\n\n```go\n// Input: 1.1, 2.2, 3.3, 4.4 -> [1.1 2.2 3.3 4.4]\n// Input: how, 2.2, are, you -> error\nvals = cfg.Section(\"\").Key(\"FLOAT64S\").StrictFloat64s(\",\")\nvals = cfg.Section(\"\").Key(\"INTS\").StrictInts(\",\")\nvals = cfg.Section(\"\").Key(\"INT64S\").StrictInt64s(\",\")\nvals = cfg.Section(\"\").Key(\"UINTS\").StrictUints(\",\")\nvals = cfg.Section(\"\").Key(\"UINT64S\").StrictUint64s(\",\")\nvals = cfg.Section(\"\").Key(\"TIMES\").StrictTimes(\",\")\n```\n\n### Save your configuration\n\nFinally, it's time to save your configuration to somewhere.\n\nA typical way to save configuration is writing it to a file:\n\n```go\n// ...\nerr = cfg.SaveTo(\"my.ini\")\nerr = cfg.SaveToIndent(\"my.ini\", \"\\t\")\n```\n\nAnother way to save is writing to a `io.Writer` interface:\n\n```go\n// ...\ncfg.WriteTo(writer)\ncfg.WriteToIndent(writer, \"\\t\")\n```\n\nBy default, spaces are used to align \"=\" sign between key and values, to disable that:\n\n```go\nini.PrettyFormat = false\n``` \n\n## Advanced Usage\n\n### Recursive Values\n\nFor all value of keys, there is a special syntax `%(<name>)s`, where `<name>` is the key name in same section or default section, and `%(<name>)s` will be replaced by corresponding value(empty string if key not found). You can use this syntax at most 99 level of recursions.\n\n```ini\nNAME = ini\n\n[author]\nNAME = Unknwon\nGITHUB = https://github.com/%(NAME)s\n\n[package]\nFULL_NAME = github.com/go-ini/%(NAME)s\n```\n\n```go\ncfg.Section(\"author\").Key(\"GITHUB\").String()\t\t// https://github.com/Unknwon\ncfg.Section(\"package\").Key(\"FULL_NAME\").String()\t// github.com/go-ini/ini\n```\n\n### Parent-child Sections\n\nYou can use `.` in section name to indicate parent-child relationship between two or more sections. If the key not found in the child section, library will try again on its parent section until there is no parent section.\n\n```ini\nNAME = ini\nVERSION = v1\nIMPORT_PATH = gopkg.in/%(NAME)s.%(VERSION)s\n\n[package]\nCLONE_URL = https://%(IMPORT_PATH)s\n\n[package.sub]\n```\n\n```go\ncfg.Section(\"package.sub\").Key(\"CLONE_URL\").String()\t// https://gopkg.in/ini.v1\n```\n\n#### Retrieve parent keys available to a child section\n\n```go\ncfg.Section(\"package.sub\").ParentKeys() // [\"CLONE_URL\"]\n```\n\n### Unparseable Sections\n\nSometimes, you have sections that do not contain key-value pairs but raw content, to handle such case, you can use `LoadOptions.UnparsableSections`:\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{UnparseableSections: []string{\"COMMENTS\"}}, `[COMMENTS]\n<1><L.Slide#2> This slide has the fuel listed in the wrong units <e.1>`))\n\nbody := cfg.Section(\"COMMENTS\").Body()\n\n/* --- start ---\n<1><L.Slide#2> This slide has the fuel listed in the wrong units <e.1>\n------  end  --- */\n```\n\n### Auto-increment Key Names\n\nIf key name is `-` in data source, then it would be seen as special syntax for auto-increment key name start from 1, and every section is independent on counter.\n\n```ini\n[features]\n-: Support read/write comments of keys and sections\n-: Support auto-increment of key names\n-: Support load multiple files to overwrite key values\n```\n\n```go\ncfg.Section(\"features\").KeyStrings()\t// []{\"#1\", \"#2\", \"#3\"}\n```\n\n### Map To Struct\n\nWant more objective way to play with INI? Cool.\n\n```ini\nName = Unknwon\nage = 21\nMale = true\nBorn = 1993-01-01T20:17:05Z\n\n[Note]\nContent = Hi is a good man!\nCities = HangZhou, Boston\n```\n\n```go\ntype Note struct {\n\tContent string\n\tCities  []string\n}\n\ntype Person struct {\n\tName string\n\tAge  int `ini:\"age\"`\n\tMale bool\n\tBorn time.Time\n\tNote\n\tCreated time.Time `ini:\"-\"`\n}\n\nfunc main() {\n\tcfg, err := ini.Load(\"path/to/ini\")\n\t// ...\n\tp := new(Person)\n\terr = cfg.MapTo(p)\n\t// ...\n\n\t// Things can be simpler.\n\terr = ini.MapTo(p, \"path/to/ini\")\n\t// ...\n\n\t// Just map a section? Fine.\n\tn := new(Note)\n\terr = cfg.Section(\"Note\").MapTo(n)\n\t// ...\n}\n```\n\nCan I have default value for field? Absolutely.\n\nAssign it before you map to struct. It will keep the value as it is if the key is not presented or got wrong type.\n\n```go\n// ...\np := &Person{\n\tName: \"Joe\",\n}\n// ...\n```\n\nIt's really cool, but what's the point if you can't give me my file back from struct?\n\n### Reflect From Struct\n\nWhy not?\n\n```go\ntype Embeded struct {\n\tDates  []time.Time `delim:\"|\" comment:\"Time data\"`\n\tPlaces []string    `ini:\"places,omitempty\"`\n\tNone   []int       `ini:\",omitempty\"`\n}\n\ntype Author struct {\n\tName      string `ini:\"NAME\"`\n\tMale      bool\n\tAge       int `comment:\"Author's age\"`\n\tGPA       float64\n\tNeverMind string `ini:\"-\"`\n\t*Embeded `comment:\"Embeded section\"`\n}\n\nfunc main() {\n\ta := &Author{\"Unknwon\", true, 21, 2.8, \"\",\n\t\t&Embeded{\n\t\t\t[]time.Time{time.Now(), time.Now()},\n\t\t\t[]string{\"HangZhou\", \"Boston\"},\n\t\t\t[]int{},\n\t\t}}\n\tcfg := ini.Empty()\n\terr = ini.ReflectFrom(cfg, a)\n\t// ...\n}\n```\n\nSo, what do I get?\n\n```ini\nNAME = Unknwon\nMale = true\n; Author's age\nAge = 21\nGPA = 2.8\n\n; Embeded section\n[Embeded]\n; Time data\nDates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00\nplaces = HangZhou,Boston\n```\n\n#### Name Mapper\n\nTo save your time and make your code cleaner, this library supports [`NameMapper`](https://gowalker.org/gopkg.in/ini.v1#NameMapper) between struct field and actual section and key name.\n\nThere are 2 built-in name mappers:\n\n- `AllCapsUnderscore`: it converts to format `ALL_CAPS_UNDERSCORE` then match section or key.\n- `TitleUnderscore`: it converts to format `title_underscore` then match section or key.\n\nTo use them:\n\n```go\ntype Info struct {\n\tPackageName string\n}\n\nfunc main() {\n\terr = ini.MapToWithMapper(&Info{}, ini.TitleUnderscore, []byte(\"package_name=ini\"))\n\t// ...\n\n\tcfg, err := ini.Load([]byte(\"PACKAGE_NAME=ini\"))\n\t// ...\n\tinfo := new(Info)\n\tcfg.NameMapper = ini.AllCapsUnderscore\n\terr = cfg.MapTo(info)\n\t// ...\n}\n```\n\nSame rules of name mapper apply to `ini.ReflectFromWithMapper` function.\n\n#### Value Mapper\n\nTo expand values (e.g. from environment variables), you can use the `ValueMapper` to transform values:\n\n```go\ntype Env struct {\n\tFoo string `ini:\"foo\"`\n}\n\nfunc main() {\n\tcfg, err := ini.Load([]byte(\"[env]\\nfoo = ${MY_VAR}\\n\")\n\tcfg.ValueMapper = os.ExpandEnv\n\t// ...\n\tenv := &Env{}\n\terr = cfg.Section(\"env\").MapTo(env)\n}\n```\n\nThis would set the value of `env.Foo` to the value of the environment variable `MY_VAR`.\n\n#### Other Notes On Map/Reflect\n\nAny embedded struct is treated as a section by default, and there is no automatic parent-child relations in map/reflect feature:\n\n```go\ntype Child struct {\n\tAge string\n}\n\ntype Parent struct {\n\tName string\n\tChild\n}\n\ntype Config struct {\n\tCity string\n\tParent\n}\n```\n\nExample configuration:\n\n```ini\nCity = Boston\n\n[Parent]\nName = Unknwon\n\n[Child]\nAge = 21\n```\n\nWhat if, yes, I'm paranoid, I want embedded struct to be in the same section. Well, all roads lead to Rome.\n\n```go\ntype Child struct {\n\tAge string\n}\n\ntype Parent struct {\n\tName string\n\tChild `ini:\"Parent\"`\n}\n\ntype Config struct {\n\tCity string\n\tParent\n}\n```\n\nExample configuration:\n\n```ini\nCity = Boston\n\n[Parent]\nName = Unknwon\nAge = 21\n```\n\n## Getting Help\n\n- [API Documentation](https://gowalker.org/gopkg.in/ini.v1)\n- [File An Issue](https://github.com/go-ini/ini/issues/new)\n\n## FAQs\n\n### What does `BlockMode` field do?\n\nBy default, library lets you read and write values so we need a locker to make sure your data is safe. But in cases that you are very sure about only reading data through the library, you can set `cfg.BlockMode = false` to speed up read operations about **50-70%** faster.\n\n### Why another INI library?\n\nMany people are using my another INI library [goconfig](https://github.com/Unknwon/goconfig), so the reason for this one is I would like to make more Go style code. Also when you set `cfg.BlockMode = false`, this one is about **10-30%** faster.\n\nTo make those changes I have to confirm API broken, so it's safer to keep it in another place and start using `gopkg.in` to version my package at this time.(PS: shorter import path)\n\n## License\n\nThis project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text.\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/README_ZH.md",
    "content": "本包提供了 Go 语言中读写 INI 文件的功能。\n\n## 功能特性\n\n- 支持覆盖加载多个数据源（`[]byte`、文件和 `io.ReadCloser`）\n- 支持递归读取键值\n- 支持读取父子分区\n- 支持读取自增键名\n- 支持读取多行的键值\n- 支持大量辅助方法\n- 支持在读取时直接转换为 Go 语言类型\n- 支持读取和 **写入** 分区和键的注释\n- 轻松操作分区、键值和注释\n- 在保存文件时分区和键值会保持原有的顺序\n\n## 下载安装\n\n使用一个特定版本：\n\n    go get gopkg.in/ini.v1\n\n使用最新版：\n\n\tgo get github.com/go-ini/ini\n\n如需更新请添加 `-u` 选项。\n\n### 测试安装\n\n如果您想要在自己的机器上运行测试，请使用 `-t` 标记：\n\n\tgo get -t gopkg.in/ini.v1\n\n如需更新请添加 `-u` 选项。\n\n## 开始使用\n\n### 从数据源加载\n\n一个 **数据源** 可以是 `[]byte` 类型的原始数据，`string` 类型的文件路径或 `io.ReadCloser`。您可以加载 **任意多个** 数据源。如果您传递其它类型的数据源，则会直接返回错误。\n\n```go\ncfg, err := ini.Load([]byte(\"raw data\"), \"filename\", ioutil.NopCloser(bytes.NewReader([]byte(\"some other data\"))))\n```\n\n或者从一个空白的文件开始：\n\n```go\ncfg := ini.Empty()\n```\n\n当您在一开始无法决定需要加载哪些数据源时，仍可以使用 **Append()** 在需要的时候加载它们。\n\n```go\nerr := cfg.Append(\"other file\", []byte(\"other raw data\"))\n```\n\n当您想要加载一系列文件，但是不能够确定其中哪些文件是不存在的，可以通过调用函数 `LooseLoad` 来忽略它们（`Load` 会因为文件不存在而返回错误）：\n\n```go\ncfg, err := ini.LooseLoad(\"filename\", \"filename_404\")\n```\n\n更牛逼的是，当那些之前不存在的文件在重新调用 `Reload` 方法的时候突然出现了，那么它们会被正常加载。\n\n#### 忽略键名的大小写\n\n有时候分区和键的名称大小写混合非常烦人，这个时候就可以通过 `InsensitiveLoad` 将所有分区和键名在读取里强制转换为小写：\n\n```go\ncfg, err := ini.InsensitiveLoad(\"filename\")\n//...\n\n// sec1 和 sec2 指向同一个分区对象\nsec1, err := cfg.GetSection(\"Section\")\nsec2, err := cfg.GetSection(\"SecTIOn\")\n\n// key1 和 key2 指向同一个键对象\nkey1, err := sec1.GetKey(\"Key\")\nkey2, err := sec2.GetKey(\"KeY\")\n```\n\n#### 类似 MySQL 配置中的布尔值键\n\nMySQL 的配置文件中会出现没有具体值的布尔类型的键：\n\n```ini\n[mysqld]\n...\nskip-host-cache\nskip-name-resolve\n```\n\n默认情况下这被认为是缺失值而无法完成解析，但可以通过高级的加载选项对它们进行处理：\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{AllowBooleanKeys: true}, \"my.cnf\"))\n```\n\n这些键的值永远为 `true`，且在保存到文件时也只会输出键名。\n\n如果您想要通过程序来生成此类键，则可以使用 `NewBooleanKey`：\n\n```go\nkey, err := sec.NewBooleanKey(\"skip-host-cache\")\n```\n\n#### 关于注释\n\n下述几种情况的内容将被视为注释：\n\n1. 所有以 `#` 或 `;` 开头的行\n2. 所有在 `#` 或 `;` 之后的内容\n3. 分区标签后的文字 (即 `[分区名]` 之后的内容)\n\n如果你希望使用包含 `#` 或 `;` 的值，请使用 ``` ` ``` 或 ``` \"\"\" ``` 进行包覆。\n\n除此之外，您还可以通过 `LoadOptions` 完全忽略行内注释：\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, \"app.ini\"))\n```\n\n### 操作分区（Section）\n\n获取指定分区：\n\n```go\nsection, err := cfg.GetSection(\"section name\")\n```\n\n如果您想要获取默认分区，则可以用空字符串代替分区名：\n\n```go\nsection, err := cfg.GetSection(\"\")\n```\n\n当您非常确定某个分区是存在的，可以使用以下简便方法：\n\n```go\nsection := cfg.Section(\"section name\")\n```\n\n如果不小心判断错了，要获取的分区其实是不存在的，那会发生什么呢？没事的，它会自动创建并返回一个对应的分区对象给您。\n\n创建一个分区：\n\n```go\nerr := cfg.NewSection(\"new section\")\n```\n\n获取所有分区对象或名称：\n\n```go\nsections := cfg.Sections()\nnames := cfg.SectionStrings()\n```\n\n### 操作键（Key）\n\n获取某个分区下的键：\n\n```go\nkey, err := cfg.Section(\"\").GetKey(\"key name\")\n```\n\n和分区一样，您也可以直接获取键而忽略错误处理：\n\n```go\nkey := cfg.Section(\"\").Key(\"key name\")\n```\n\n判断某个键是否存在：\n\n```go\nyes := cfg.Section(\"\").HasKey(\"key name\")\n```\n\n创建一个新的键：\n\n```go\nerr := cfg.Section(\"\").NewKey(\"name\", \"value\")\n```\n\n获取分区下的所有键或键名：\n\n```go\nkeys := cfg.Section(\"\").Keys()\nnames := cfg.Section(\"\").KeyStrings()\n```\n\n获取分区下的所有键值对的克隆：\n\n```go\nhash := cfg.Section(\"\").KeysHash()\n```\n\n### 操作键值（Value）\n\n获取一个类型为字符串（string）的值：\n\n```go\nval := cfg.Section(\"\").Key(\"key name\").String()\n```\n\n获取值的同时通过自定义函数进行处理验证：\n\n```go\nval := cfg.Section(\"\").Key(\"key name\").Validate(func(in string) string {\n\tif len(in) == 0 {\n\t\treturn \"default\"\n\t}\n\treturn in\n})\n```\n\n如果您不需要任何对值的自动转变功能（例如递归读取），可以直接获取原值（这种方式性能最佳）：\n\n```go\nval := cfg.Section(\"\").Key(\"key name\").Value()\n```\n\n判断某个原值是否存在：\n\n```go\nyes := cfg.Section(\"\").HasValue(\"test value\")\n```\n\n获取其它类型的值：\n\n```go\n// 布尔值的规则：\n// true 当值为：1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On\n// false 当值为：0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off\nv, err = cfg.Section(\"\").Key(\"BOOL\").Bool()\nv, err = cfg.Section(\"\").Key(\"FLOAT64\").Float64()\nv, err = cfg.Section(\"\").Key(\"INT\").Int()\nv, err = cfg.Section(\"\").Key(\"INT64\").Int64()\nv, err = cfg.Section(\"\").Key(\"UINT\").Uint()\nv, err = cfg.Section(\"\").Key(\"UINT64\").Uint64()\nv, err = cfg.Section(\"\").Key(\"TIME\").TimeFormat(time.RFC3339)\nv, err = cfg.Section(\"\").Key(\"TIME\").Time() // RFC3339\n\nv = cfg.Section(\"\").Key(\"BOOL\").MustBool()\nv = cfg.Section(\"\").Key(\"FLOAT64\").MustFloat64()\nv = cfg.Section(\"\").Key(\"INT\").MustInt()\nv = cfg.Section(\"\").Key(\"INT64\").MustInt64()\nv = cfg.Section(\"\").Key(\"UINT\").MustUint()\nv = cfg.Section(\"\").Key(\"UINT64\").MustUint64()\nv = cfg.Section(\"\").Key(\"TIME\").MustTimeFormat(time.RFC3339)\nv = cfg.Section(\"\").Key(\"TIME\").MustTime() // RFC3339\n\n// 由 Must 开头的方法名允许接收一个相同类型的参数来作为默认值，\n// 当键不存在或者转换失败时，则会直接返回该默认值。\n// 但是，MustString 方法必须传递一个默认值。\n\nv = cfg.Seciont(\"\").Key(\"String\").MustString(\"default\")\nv = cfg.Section(\"\").Key(\"BOOL\").MustBool(true)\nv = cfg.Section(\"\").Key(\"FLOAT64\").MustFloat64(1.25)\nv = cfg.Section(\"\").Key(\"INT\").MustInt(10)\nv = cfg.Section(\"\").Key(\"INT64\").MustInt64(99)\nv = cfg.Section(\"\").Key(\"UINT\").MustUint(3)\nv = cfg.Section(\"\").Key(\"UINT64\").MustUint64(6)\nv = cfg.Section(\"\").Key(\"TIME\").MustTimeFormat(time.RFC3339, time.Now())\nv = cfg.Section(\"\").Key(\"TIME\").MustTime(time.Now()) // RFC3339\n```\n\n如果我的值有好多行怎么办？\n\n```ini\n[advance]\nADDRESS = \"\"\"404 road,\nNotFound, State, 5000\nEarth\"\"\"\n```\n\n嗯哼？小 case！\n\n```go\ncfg.Section(\"advance\").Key(\"ADDRESS\").String()\n\n/* --- start ---\n404 road,\nNotFound, State, 5000\nEarth\n------  end  --- */\n```\n\n赞爆了！那要是我属于一行的内容写不下想要写到第二行怎么办？\n\n```ini\n[advance]\ntwo_lines = how about \\\n\tcontinuation lines?\nlots_of_lines = 1 \\\n\t2 \\\n\t3 \\\n\t4\n```\n\n简直是小菜一碟！\n\n```go\ncfg.Section(\"advance\").Key(\"two_lines\").String() // how about continuation lines?\ncfg.Section(\"advance\").Key(\"lots_of_lines\").String() // 1 2 3 4\n```\n\n可是我有时候觉得两行连在一起特别没劲，怎么才能不自动连接两行呢？\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{\n\tIgnoreContinuation: true,\n}, \"filename\")\n```\n\n哇靠给力啊！\n\n需要注意的是，值两侧的单引号会被自动剔除：\n\n```ini\nfoo = \"some value\" // foo: some value\nbar = 'some value' // bar: some value\n```\n\n有时您会获得像从 [Crowdin](https://crowdin.com/) 网站下载的文件那样具有特殊格式的值（值使用双引号括起来，内部的双引号被转义）：\n\n```ini\ncreate_repo=\"创建了仓库 <a href=\\\"%s\\\">%s</a>\"\n```\n\n那么，怎么自动地将这类值进行处理呢？\n\n```go\ncfg, err := ini.LoadSources(ini.LoadOptions{UnescapeValueDoubleQuotes: true}, \"en-US.ini\"))\ncfg.Section(\"<name of your section>\").Key(\"create_repo\").String() \n// You got: 创建了仓库 <a href=\"%s\">%s</a>\n```\n\n这就是全部了？哈哈，当然不是。\n\n#### 操作键值的辅助方法\n\n获取键值时设定候选值：\n\n```go\nv = cfg.Section(\"\").Key(\"STRING\").In(\"default\", []string{\"str\", \"arr\", \"types\"})\nv = cfg.Section(\"\").Key(\"FLOAT64\").InFloat64(1.1, []float64{1.25, 2.5, 3.75})\nv = cfg.Section(\"\").Key(\"INT\").InInt(5, []int{10, 20, 30})\nv = cfg.Section(\"\").Key(\"INT64\").InInt64(10, []int64{10, 20, 30})\nv = cfg.Section(\"\").Key(\"UINT\").InUint(4, []int{3, 6, 9})\nv = cfg.Section(\"\").Key(\"UINT64\").InUint64(8, []int64{3, 6, 9})\nv = cfg.Section(\"\").Key(\"TIME\").InTimeFormat(time.RFC3339, time.Now(), []time.Time{time1, time2, time3})\nv = cfg.Section(\"\").Key(\"TIME\").InTime(time.Now(), []time.Time{time1, time2, time3}) // RFC3339\n```\n\n如果获取到的值不是候选值的任意一个，则会返回默认值，而默认值不需要是候选值中的一员。\n\n验证获取的值是否在指定范围内：\n\n```go\nvals = cfg.Section(\"\").Key(\"FLOAT64\").RangeFloat64(0.0, 1.1, 2.2)\nvals = cfg.Section(\"\").Key(\"INT\").RangeInt(0, 10, 20)\nvals = cfg.Section(\"\").Key(\"INT64\").RangeInt64(0, 10, 20)\nvals = cfg.Section(\"\").Key(\"UINT\").RangeUint(0, 3, 9)\nvals = cfg.Section(\"\").Key(\"UINT64\").RangeUint64(0, 3, 9)\nvals = cfg.Section(\"\").Key(\"TIME\").RangeTimeFormat(time.RFC3339, time.Now(), minTime, maxTime)\nvals = cfg.Section(\"\").Key(\"TIME\").RangeTime(time.Now(), minTime, maxTime) // RFC3339\n```\n\n##### 自动分割键值到切片（slice）\n\n当存在无效输入时，使用零值代替：\n\n```go\n// Input: 1.1, 2.2, 3.3, 4.4 -> [1.1 2.2 3.3 4.4]\n// Input: how, 2.2, are, you -> [0.0 2.2 0.0 0.0]\nvals = cfg.Section(\"\").Key(\"STRINGS\").Strings(\",\")\nvals = cfg.Section(\"\").Key(\"FLOAT64S\").Float64s(\",\")\nvals = cfg.Section(\"\").Key(\"INTS\").Ints(\",\")\nvals = cfg.Section(\"\").Key(\"INT64S\").Int64s(\",\")\nvals = cfg.Section(\"\").Key(\"UINTS\").Uints(\",\")\nvals = cfg.Section(\"\").Key(\"UINT64S\").Uint64s(\",\")\nvals = cfg.Section(\"\").Key(\"TIMES\").Times(\",\")\n```\n\n从结果切片中剔除无效输入：\n\n```go\n// Input: 1.1, 2.2, 3.3, 4.4 -> [1.1 2.2 3.3 4.4]\n// Input: how, 2.2, are, you -> [2.2]\nvals = cfg.Section(\"\").Key(\"FLOAT64S\").ValidFloat64s(\",\")\nvals = cfg.Section(\"\").Key(\"INTS\").ValidInts(\",\")\nvals = cfg.Section(\"\").Key(\"INT64S\").ValidInt64s(\",\")\nvals = cfg.Section(\"\").Key(\"UINTS\").ValidUints(\",\")\nvals = cfg.Section(\"\").Key(\"UINT64S\").ValidUint64s(\",\")\nvals = cfg.Section(\"\").Key(\"TIMES\").ValidTimes(\",\")\n```\n\n当存在无效输入时，直接返回错误：\n\n```go\n// Input: 1.1, 2.2, 3.3, 4.4 -> [1.1 2.2 3.3 4.4]\n// Input: how, 2.2, are, you -> error\nvals = cfg.Section(\"\").Key(\"FLOAT64S\").StrictFloat64s(\",\")\nvals = cfg.Section(\"\").Key(\"INTS\").StrictInts(\",\")\nvals = cfg.Section(\"\").Key(\"INT64S\").StrictInt64s(\",\")\nvals = cfg.Section(\"\").Key(\"UINTS\").StrictUints(\",\")\nvals = cfg.Section(\"\").Key(\"UINT64S\").StrictUint64s(\",\")\nvals = cfg.Section(\"\").Key(\"TIMES\").StrictTimes(\",\")\n```\n\n### 保存配置\n\n终于到了这个时刻，是时候保存一下配置了。\n\n比较原始的做法是输出配置到某个文件：\n\n```go\n// ...\nerr = cfg.SaveTo(\"my.ini\")\nerr = cfg.SaveToIndent(\"my.ini\", \"\\t\")\n```\n\n另一个比较高级的做法是写入到任何实现 `io.Writer` 接口的对象中：\n\n```go\n// ...\ncfg.WriteTo(writer)\ncfg.WriteToIndent(writer, \"\\t\")\n```\n\n默认情况下，空格将被用于对齐键值之间的等号以美化输出结果，以下代码可以禁用该功能：\n\n```go\nini.PrettyFormat = false\n``` \n\n## 高级用法\n\n### 递归读取键值\n\n在获取所有键值的过程中，特殊语法 `%(<name>)s` 会被应用，其中 `<name>` 可以是相同分区或者默认分区下的键名。字符串 `%(<name>)s` 会被相应的键值所替代，如果指定的键不存在，则会用空字符串替代。您可以最多使用 99 层的递归嵌套。\n\n```ini\nNAME = ini\n\n[author]\nNAME = Unknwon\nGITHUB = https://github.com/%(NAME)s\n\n[package]\nFULL_NAME = github.com/go-ini/%(NAME)s\n```\n\n```go\ncfg.Section(\"author\").Key(\"GITHUB\").String()\t\t// https://github.com/Unknwon\ncfg.Section(\"package\").Key(\"FULL_NAME\").String()\t// github.com/go-ini/ini\n```\n\n### 读取父子分区\n\n您可以在分区名称中使用 `.` 来表示两个或多个分区之间的父子关系。如果某个键在子分区中不存在，则会去它的父分区中再次寻找，直到没有父分区为止。\n\n```ini\nNAME = ini\nVERSION = v1\nIMPORT_PATH = gopkg.in/%(NAME)s.%(VERSION)s\n\n[package]\nCLONE_URL = https://%(IMPORT_PATH)s\n\n[package.sub]\n```\n\n```go\ncfg.Section(\"package.sub\").Key(\"CLONE_URL\").String()\t// https://gopkg.in/ini.v1\n```\n\n#### 获取上级父分区下的所有键名\n\n```go\ncfg.Section(\"package.sub\").ParentKeys() // [\"CLONE_URL\"]\n```\n\n### 无法解析的分区\n\n如果遇到一些比较特殊的分区，它们不包含常见的键值对，而是没有固定格式的纯文本，则可以使用 `LoadOptions.UnparsableSections` 进行处理：\n\n```go\ncfg, err := LoadSources(ini.LoadOptions{UnparseableSections: []string{\"COMMENTS\"}}, `[COMMENTS]\n<1><L.Slide#2> This slide has the fuel listed in the wrong units <e.1>`))\n\nbody := cfg.Section(\"COMMENTS\").Body()\n\n/* --- start ---\n<1><L.Slide#2> This slide has the fuel listed in the wrong units <e.1>\n------  end  --- */\n```\n\n### 读取自增键名\n\n如果数据源中的键名为 `-`，则认为该键使用了自增键名的特殊语法。计数器从 1 开始，并且分区之间是相互独立的。\n\n```ini\n[features]\n-: Support read/write comments of keys and sections\n-: Support auto-increment of key names\n-: Support load multiple files to overwrite key values\n```\n\n```go\ncfg.Section(\"features\").KeyStrings()\t// []{\"#1\", \"#2\", \"#3\"}\n```\n\n### 映射到结构\n\n想要使用更加面向对象的方式玩转 INI 吗？好主意。\n\n```ini\nName = Unknwon\nage = 21\nMale = true\nBorn = 1993-01-01T20:17:05Z\n\n[Note]\nContent = Hi is a good man!\nCities = HangZhou, Boston\n```\n\n```go\ntype Note struct {\n\tContent string\n\tCities  []string\n}\n\ntype Person struct {\n\tName string\n\tAge  int `ini:\"age\"`\n\tMale bool\n\tBorn time.Time\n\tNote\n\tCreated time.Time `ini:\"-\"`\n}\n\nfunc main() {\n\tcfg, err := ini.Load(\"path/to/ini\")\n\t// ...\n\tp := new(Person)\n\terr = cfg.MapTo(p)\n\t// ...\n\n\t// 一切竟可以如此的简单。\n\terr = ini.MapTo(p, \"path/to/ini\")\n\t// ...\n\n\t// 嗯哼？只需要映射一个分区吗？\n\tn := new(Note)\n\terr = cfg.Section(\"Note\").MapTo(n)\n\t// ...\n}\n```\n\n结构的字段怎么设置默认值呢？很简单，只要在映射之前对指定字段进行赋值就可以了。如果键未找到或者类型错误，该值不会发生改变。\n\n```go\n// ...\np := &Person{\n\tName: \"Joe\",\n}\n// ...\n```\n\n这样玩 INI 真的好酷啊！然而，如果不能还给我原来的配置文件，有什么卵用？\n\n### 从结构反射\n\n可是，我有说不能吗？\n\n```go\ntype Embeded struct {\n\tDates  []time.Time `delim:\"|\" comment:\"Time data\"`\n\tPlaces []string    `ini:\"places,omitempty\"`\n\tNone   []int       `ini:\",omitempty\"`\n}\n\ntype Author struct {\n\tName      string `ini:\"NAME\"`\n\tMale      bool\n\tAge       int `comment:\"Author's age\"`\n\tGPA       float64\n\tNeverMind string `ini:\"-\"`\n\t*Embeded `comment:\"Embeded section\"`\n}\n\nfunc main() {\n\ta := &Author{\"Unknwon\", true, 21, 2.8, \"\",\n\t\t&Embeded{\n\t\t\t[]time.Time{time.Now(), time.Now()},\n\t\t\t[]string{\"HangZhou\", \"Boston\"},\n\t\t\t[]int{},\n\t\t}}\n\tcfg := ini.Empty()\n\terr = ini.ReflectFrom(cfg, a)\n\t// ...\n}\n```\n\n瞧瞧，奇迹发生了。\n\n```ini\nNAME = Unknwon\nMale = true\n; Author's age\nAge = 21\nGPA = 2.8\n\n; Embeded section\n[Embeded]\n; Time data\nDates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00\nplaces = HangZhou,Boston\n```\n\n#### 名称映射器（Name Mapper）\n\n为了节省您的时间并简化代码，本库支持类型为 [`NameMapper`](https://gowalker.org/gopkg.in/ini.v1#NameMapper) 的名称映射器，该映射器负责结构字段名与分区名和键名之间的映射。\n\n目前有 2 款内置的映射器：\n\n- `AllCapsUnderscore`：该映射器将字段名转换至格式 `ALL_CAPS_UNDERSCORE` 后再去匹配分区名和键名。\n- `TitleUnderscore`：该映射器将字段名转换至格式 `title_underscore` 后再去匹配分区名和键名。\n\n使用方法：\n\n```go\ntype Info struct{\n\tPackageName string\n}\n\nfunc main() {\n\terr = ini.MapToWithMapper(&Info{}, ini.TitleUnderscore, []byte(\"package_name=ini\"))\n\t// ...\n\n\tcfg, err := ini.Load([]byte(\"PACKAGE_NAME=ini\"))\n\t// ...\n\tinfo := new(Info)\n\tcfg.NameMapper = ini.AllCapsUnderscore\n\terr = cfg.MapTo(info)\n\t// ...\n}\n```\n\n使用函数 `ini.ReflectFromWithMapper` 时也可应用相同的规则。\n\n#### 值映射器（Value Mapper）\n\n值映射器允许使用一个自定义函数自动展开值的具体内容，例如：运行时获取环境变量：\n\n```go\ntype Env struct {\n\tFoo string `ini:\"foo\"`\n}\n\nfunc main() {\n\tcfg, err := ini.Load([]byte(\"[env]\\nfoo = ${MY_VAR}\\n\")\n\tcfg.ValueMapper = os.ExpandEnv\n\t// ...\n\tenv := &Env{}\n\terr = cfg.Section(\"env\").MapTo(env)\n}\n```\n\n本例中，`env.Foo` 将会是运行时所获取到环境变量 `MY_VAR` 的值。\n\n#### 映射/反射的其它说明\n\n任何嵌入的结构都会被默认认作一个不同的分区，并且不会自动产生所谓的父子分区关联：\n\n```go\ntype Child struct {\n\tAge string\n}\n\ntype Parent struct {\n\tName string\n\tChild\n}\n\ntype Config struct {\n\tCity string\n\tParent\n}\n```\n\n示例配置文件：\n\n```ini\nCity = Boston\n\n[Parent]\nName = Unknwon\n\n[Child]\nAge = 21\n```\n\n很好，但是，我就是要嵌入结构也在同一个分区。好吧，你爹是李刚！\n\n```go\ntype Child struct {\n\tAge string\n}\n\ntype Parent struct {\n\tName string\n\tChild `ini:\"Parent\"`\n}\n\ntype Config struct {\n\tCity string\n\tParent\n}\n```\n\n示例配置文件：\n\n```ini\nCity = Boston\n\n[Parent]\nName = Unknwon\nAge = 21\n```\n\n## 获取帮助\n\n- [API 文档](https://gowalker.org/gopkg.in/ini.v1)\n- [创建工单](https://github.com/go-ini/ini/issues/new)\n\n## 常见问题\n\n### 字段 `BlockMode` 是什么？\n\n默认情况下，本库会在您进行读写操作时采用锁机制来确保数据时间。但在某些情况下，您非常确定只进行读操作。此时，您可以通过设置 `cfg.BlockMode = false` 来将读操作提升大约 **50-70%** 的性能。\n\n### 为什么要写另一个 INI 解析库？\n\n许多人都在使用我的 [goconfig](https://github.com/Unknwon/goconfig) 来完成对 INI 文件的操作，但我希望使用更加 Go 风格的代码。并且当您设置 `cfg.BlockMode = false` 时，会有大约 **10-30%** 的性能提升。\n\n为了做出这些改变，我必须对 API 进行破坏，所以新开一个仓库是最安全的做法。除此之外，本库直接使用 `gopkg.in` 来进行版本化发布。（其实真相是导入路径更短了）\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/error.go",
    "content": "// Copyright 2016 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage ini\n\nimport (\n\t\"fmt\"\n)\n\ntype ErrDelimiterNotFound struct {\n\tLine string\n}\n\nfunc IsErrDelimiterNotFound(err error) bool {\n\t_, ok := err.(ErrDelimiterNotFound)\n\treturn ok\n}\n\nfunc (err ErrDelimiterNotFound) Error() string {\n\treturn fmt.Sprintf(\"key-value delimiter not found: %s\", err.Line)\n}\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/file.go",
    "content": "// Copyright 2017 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage ini\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// File represents a combination of a or more INI file(s) in memory.\ntype File struct {\n\toptions     LoadOptions\n\tdataSources []dataSource\n\n\t// Should make things safe, but sometimes doesn't matter.\n\tBlockMode bool\n\tlock      sync.RWMutex\n\n\t// To keep data in order.\n\tsectionList []string\n\t// Actual data is stored here.\n\tsections map[string]*Section\n\n\tNameMapper\n\tValueMapper\n}\n\n// newFile initializes File object with given data sources.\nfunc newFile(dataSources []dataSource, opts LoadOptions) *File {\n\treturn &File{\n\t\tBlockMode:   true,\n\t\tdataSources: dataSources,\n\t\tsections:    make(map[string]*Section),\n\t\tsectionList: make([]string, 0, 10),\n\t\toptions:     opts,\n\t}\n}\n\n// Empty returns an empty file object.\nfunc Empty() *File {\n\t// Ignore error here, we sure our data is good.\n\tf, _ := Load([]byte(\"\"))\n\treturn f\n}\n\n// NewSection creates a new section.\nfunc (f *File) NewSection(name string) (*Section, error) {\n\tif len(name) == 0 {\n\t\treturn nil, errors.New(\"error creating new section: empty section name\")\n\t} else if f.options.Insensitive && name != DEFAULT_SECTION {\n\t\tname = strings.ToLower(name)\n\t}\n\n\tif f.BlockMode {\n\t\tf.lock.Lock()\n\t\tdefer f.lock.Unlock()\n\t}\n\n\tif inSlice(name, f.sectionList) {\n\t\treturn f.sections[name], nil\n\t}\n\n\tf.sectionList = append(f.sectionList, name)\n\tf.sections[name] = newSection(f, name)\n\treturn f.sections[name], nil\n}\n\n// NewRawSection creates a new section with an unparseable body.\nfunc (f *File) NewRawSection(name, body string) (*Section, error) {\n\tsection, err := f.NewSection(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsection.isRawSection = true\n\tsection.rawBody = body\n\treturn section, nil\n}\n\n// NewSections creates a list of sections.\nfunc (f *File) NewSections(names ...string) (err error) {\n\tfor _, name := range names {\n\t\tif _, err = f.NewSection(name); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// GetSection returns section by given name.\nfunc (f *File) GetSection(name string) (*Section, error) {\n\tif len(name) == 0 {\n\t\tname = DEFAULT_SECTION\n\t}\n\tif f.options.Insensitive {\n\t\tname = strings.ToLower(name)\n\t}\n\n\tif f.BlockMode {\n\t\tf.lock.RLock()\n\t\tdefer f.lock.RUnlock()\n\t}\n\n\tsec := f.sections[name]\n\tif sec == nil {\n\t\treturn nil, fmt.Errorf(\"section '%s' does not exist\", name)\n\t}\n\treturn sec, nil\n}\n\n// Section assumes named section exists and returns a zero-value when not.\nfunc (f *File) Section(name string) *Section {\n\tsec, err := f.GetSection(name)\n\tif err != nil {\n\t\t// Note: It's OK here because the only possible error is empty section name,\n\t\t// but if it's empty, this piece of code won't be executed.\n\t\tsec, _ = f.NewSection(name)\n\t\treturn sec\n\t}\n\treturn sec\n}\n\n// Section returns list of Section.\nfunc (f *File) Sections() []*Section {\n\tsections := make([]*Section, len(f.sectionList))\n\tfor i := range f.sectionList {\n\t\tsections[i] = f.Section(f.sectionList[i])\n\t}\n\treturn sections\n}\n\n// ChildSections returns a list of child sections of given section name.\nfunc (f *File) ChildSections(name string) []*Section {\n\treturn f.Section(name).ChildSections()\n}\n\n// SectionStrings returns list of section names.\nfunc (f *File) SectionStrings() []string {\n\tlist := make([]string, len(f.sectionList))\n\tcopy(list, f.sectionList)\n\treturn list\n}\n\n// DeleteSection deletes a section.\nfunc (f *File) DeleteSection(name string) {\n\tif f.BlockMode {\n\t\tf.lock.Lock()\n\t\tdefer f.lock.Unlock()\n\t}\n\n\tif len(name) == 0 {\n\t\tname = DEFAULT_SECTION\n\t}\n\n\tfor i, s := range f.sectionList {\n\t\tif s == name {\n\t\t\tf.sectionList = append(f.sectionList[:i], f.sectionList[i+1:]...)\n\t\t\tdelete(f.sections, name)\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (f *File) reload(s dataSource) error {\n\tr, err := s.ReadCloser()\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer r.Close()\n\n\treturn f.parse(r)\n}\n\n// Reload reloads and parses all data sources.\nfunc (f *File) Reload() (err error) {\n\tfor _, s := range f.dataSources {\n\t\tif err = f.reload(s); err != nil {\n\t\t\t// In loose mode, we create an empty default section for nonexistent files.\n\t\t\tif os.IsNotExist(err) && f.options.Loose {\n\t\t\t\tf.parse(bytes.NewBuffer(nil))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Append appends one or more data sources and reloads automatically.\nfunc (f *File) Append(source interface{}, others ...interface{}) error {\n\tds, err := parseDataSource(source)\n\tif err != nil {\n\t\treturn err\n\t}\n\tf.dataSources = append(f.dataSources, ds)\n\tfor _, s := range others {\n\t\tds, err = parseDataSource(s)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tf.dataSources = append(f.dataSources, ds)\n\t}\n\treturn f.Reload()\n}\n\nfunc (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) {\n\tequalSign := \"=\"\n\tif PrettyFormat {\n\t\tequalSign = \" = \"\n\t}\n\n\t// Use buffer to make sure target is safe until finish encoding.\n\tbuf := bytes.NewBuffer(nil)\n\tfor i, sname := range f.sectionList {\n\t\tsec := f.Section(sname)\n\t\tif len(sec.Comment) > 0 {\n\t\t\tif sec.Comment[0] != '#' && sec.Comment[0] != ';' {\n\t\t\t\tsec.Comment = \"; \" + sec.Comment\n\t\t\t} else {\n\t\t\t\tsec.Comment = sec.Comment[:1] + \" \" + strings.TrimSpace(sec.Comment[1:])\n\t\t\t}\n\t\t\tif _, err := buf.WriteString(sec.Comment + LineBreak); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\tif i > 0 || DefaultHeader {\n\t\t\tif _, err := buf.WriteString(\"[\" + sname + \"]\" + LineBreak); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else {\n\t\t\t// Write nothing if default section is empty\n\t\t\tif len(sec.keyList) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif sec.isRawSection {\n\t\t\tif _, err := buf.WriteString(sec.rawBody); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif PrettySection {\n\t\t\t\t// Put a line between sections\n\t\t\t\tif _, err := buf.WriteString(LineBreak); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Count and generate alignment length and buffer spaces using the\n\t\t// longest key. Keys may be modifed if they contain certain characters so\n\t\t// we need to take that into account in our calculation.\n\t\talignLength := 0\n\t\tif PrettyFormat {\n\t\t\tfor _, kname := range sec.keyList {\n\t\t\t\tkeyLength := len(kname)\n\t\t\t\t// First case will surround key by ` and second by \"\"\"\n\t\t\t\tif strings.ContainsAny(kname, \"\\\"=:\") {\n\t\t\t\t\tkeyLength += 2\n\t\t\t\t} else if strings.Contains(kname, \"`\") {\n\t\t\t\t\tkeyLength += 6\n\t\t\t\t}\n\n\t\t\t\tif keyLength > alignLength {\n\t\t\t\t\talignLength = keyLength\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\talignSpaces := bytes.Repeat([]byte(\" \"), alignLength)\n\n\tKEY_LIST:\n\t\tfor _, kname := range sec.keyList {\n\t\t\tkey := sec.Key(kname)\n\t\t\tif len(key.Comment) > 0 {\n\t\t\t\tif len(indent) > 0 && sname != DEFAULT_SECTION {\n\t\t\t\t\tbuf.WriteString(indent)\n\t\t\t\t}\n\t\t\t\tif key.Comment[0] != '#' && key.Comment[0] != ';' {\n\t\t\t\t\tkey.Comment = \"; \" + key.Comment\n\t\t\t\t} else {\n\t\t\t\t\tkey.Comment = key.Comment[:1] + \" \" + strings.TrimSpace(key.Comment[1:])\n\t\t\t\t}\n\t\t\t\tif _, err := buf.WriteString(key.Comment + LineBreak); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif len(indent) > 0 && sname != DEFAULT_SECTION {\n\t\t\t\tbuf.WriteString(indent)\n\t\t\t}\n\n\t\t\tswitch {\n\t\t\tcase key.isAutoIncrement:\n\t\t\t\tkname = \"-\"\n\t\t\tcase strings.ContainsAny(kname, \"\\\"=:\"):\n\t\t\t\tkname = \"`\" + kname + \"`\"\n\t\t\tcase strings.Contains(kname, \"`\"):\n\t\t\t\tkname = `\"\"\"` + kname + `\"\"\"`\n\t\t\t}\n\n\t\t\tfor _, val := range key.ValueWithShadows() {\n\t\t\t\tif _, err := buf.WriteString(kname); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif key.isBooleanType {\n\t\t\t\t\tif kname != sec.keyList[len(sec.keyList)-1] {\n\t\t\t\t\t\tbuf.WriteString(LineBreak)\n\t\t\t\t\t}\n\t\t\t\t\tcontinue KEY_LIST\n\t\t\t\t}\n\n\t\t\t\t// Write out alignment spaces before \"=\" sign\n\t\t\t\tif PrettyFormat {\n\t\t\t\t\tbuf.Write(alignSpaces[:alignLength-len(kname)])\n\t\t\t\t}\n\n\t\t\t\t// In case key value contains \"\\n\", \"`\", \"\\\"\", \"#\" or \";\"\n\t\t\t\tif strings.ContainsAny(val, \"\\n`\") {\n\t\t\t\t\tval = `\"\"\"` + val + `\"\"\"`\n\t\t\t\t} else if !f.options.IgnoreInlineComment && strings.ContainsAny(val, \"#;\") {\n\t\t\t\t\tval = \"`\" + val + \"`\"\n\t\t\t\t}\n\t\t\t\tif _, err := buf.WriteString(equalSign + val + LineBreak); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor _, val := range key.nestedValues {\n\t\t\t\tif _, err := buf.WriteString(indent + \"  \" + val + LineBreak); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif PrettySection {\n\t\t\t// Put a line between sections\n\t\t\tif _, err := buf.WriteString(LineBreak); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn buf, nil\n}\n\n// WriteToIndent writes content into io.Writer with given indention.\n// If PrettyFormat has been set to be true,\n// it will align \"=\" sign with spaces under each section.\nfunc (f *File) WriteToIndent(w io.Writer, indent string) (int64, error) {\n\tbuf, err := f.writeToBuffer(indent)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn buf.WriteTo(w)\n}\n\n// WriteTo writes file content into io.Writer.\nfunc (f *File) WriteTo(w io.Writer) (int64, error) {\n\treturn f.WriteToIndent(w, \"\")\n}\n\n// SaveToIndent writes content to file system with given value indention.\nfunc (f *File) SaveToIndent(filename, indent string) error {\n\t// Note: Because we are truncating with os.Create,\n\t// \tso it's safer to save to a temporary file location and rename afte done.\n\tbuf, err := f.writeToBuffer(indent)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn ioutil.WriteFile(filename, buf.Bytes(), 0666)\n}\n\n// SaveTo writes content to file system.\nfunc (f *File) SaveTo(filename string) error {\n\treturn f.SaveToIndent(filename, \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/ini.go",
    "content": "// Copyright 2014 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\n// Package ini provides INI file read and write functionality in Go.\npackage ini\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"regexp\"\n\t\"runtime\"\n)\n\nconst (\n\t// Name for default section. You can use this constant or the string literal.\n\t// In most of cases, an empty string is all you need to access the section.\n\tDEFAULT_SECTION = \"DEFAULT\"\n\n\t// Maximum allowed depth when recursively substituing variable names.\n\t_DEPTH_VALUES = 99\n\t_VERSION      = \"1.32.1\"\n)\n\n// Version returns current package version literal.\nfunc Version() string {\n\treturn _VERSION\n}\n\nvar (\n\t// Delimiter to determine or compose a new line.\n\t// This variable will be changed to \"\\r\\n\" automatically on Windows\n\t// at package init time.\n\tLineBreak = \"\\n\"\n\n\t// Variable regexp pattern: %(variable)s\n\tvarPattern = regexp.MustCompile(`%\\(([^\\)]+)\\)s`)\n\n\t// Indicate whether to align \"=\" sign with spaces to produce pretty output\n\t// or reduce all possible spaces for compact format.\n\tPrettyFormat = true\n\n\t// Explicitly write DEFAULT section header\n\tDefaultHeader = false\n\n\t// Indicate whether to put a line between sections\n\tPrettySection = true\n)\n\nfunc init() {\n\tif runtime.GOOS == \"windows\" {\n\t\tLineBreak = \"\\r\\n\"\n\t}\n}\n\nfunc inSlice(str string, s []string) bool {\n\tfor _, v := range s {\n\t\tif str == v {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// dataSource is an interface that returns object which can be read and closed.\ntype dataSource interface {\n\tReadCloser() (io.ReadCloser, error)\n}\n\n// sourceFile represents an object that contains content on the local file system.\ntype sourceFile struct {\n\tname string\n}\n\nfunc (s sourceFile) ReadCloser() (_ io.ReadCloser, err error) {\n\treturn os.Open(s.name)\n}\n\n// sourceData represents an object that contains content in memory.\ntype sourceData struct {\n\tdata []byte\n}\n\nfunc (s *sourceData) ReadCloser() (io.ReadCloser, error) {\n\treturn ioutil.NopCloser(bytes.NewReader(s.data)), nil\n}\n\n// sourceReadCloser represents an input stream with Close method.\ntype sourceReadCloser struct {\n\treader io.ReadCloser\n}\n\nfunc (s *sourceReadCloser) ReadCloser() (io.ReadCloser, error) {\n\treturn s.reader, nil\n}\n\nfunc parseDataSource(source interface{}) (dataSource, error) {\n\tswitch s := source.(type) {\n\tcase string:\n\t\treturn sourceFile{s}, nil\n\tcase []byte:\n\t\treturn &sourceData{s}, nil\n\tcase io.ReadCloser:\n\t\treturn &sourceReadCloser{s}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"error parsing data source: unknown type '%s'\", s)\n\t}\n}\n\ntype LoadOptions struct {\n\t// Loose indicates whether the parser should ignore nonexistent files or return error.\n\tLoose bool\n\t// Insensitive indicates whether the parser forces all section and key names to lowercase.\n\tInsensitive bool\n\t// IgnoreContinuation indicates whether to ignore continuation lines while parsing.\n\tIgnoreContinuation bool\n\t// IgnoreInlineComment indicates whether to ignore comments at the end of value and treat it as part of value.\n\tIgnoreInlineComment bool\n\t// AllowBooleanKeys indicates whether to allow boolean type keys or treat as value is missing.\n\t// This type of keys are mostly used in my.cnf.\n\tAllowBooleanKeys bool\n\t// AllowShadows indicates whether to keep track of keys with same name under same section.\n\tAllowShadows bool\n\t// AllowNestedValues indicates whether to allow AWS-like nested values.\n\t// Docs: http://docs.aws.amazon.com/cli/latest/topic/config-vars.html#nested-values\n\tAllowNestedValues bool\n\t// UnescapeValueDoubleQuotes indicates whether to unescape double quotes inside value to regular format\n\t// when value is surrounded by double quotes, e.g. key=\"a \\\"value\\\"\" => key=a \"value\"\n\tUnescapeValueDoubleQuotes bool\n\t// UnescapeValueCommentSymbols indicates to unescape comment symbols (\\# and \\;) inside value to regular format\n\t// when value is NOT surrounded by any quotes.\n\t// Note: UNSTABLE, behavior might change to only unescape inside double quotes but may noy necessary at all.\n\tUnescapeValueCommentSymbols bool\n\t// Some INI formats allow group blocks that store a block of raw content that doesn't otherwise\n\t// conform to key/value pairs. Specify the names of those blocks here.\n\tUnparseableSections []string\n}\n\nfunc LoadSources(opts LoadOptions, source interface{}, others ...interface{}) (_ *File, err error) {\n\tsources := make([]dataSource, len(others)+1)\n\tsources[0], err = parseDataSource(source)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor i := range others {\n\t\tsources[i+1], err = parseDataSource(others[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tf := newFile(sources, opts)\n\tif err = f.Reload(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn f, nil\n}\n\n// Load loads and parses from INI data sources.\n// Arguments can be mixed of file name with string type, or raw data in []byte.\n// It will return error if list contains nonexistent files.\nfunc Load(source interface{}, others ...interface{}) (*File, error) {\n\treturn LoadSources(LoadOptions{}, source, others...)\n}\n\n// LooseLoad has exactly same functionality as Load function\n// except it ignores nonexistent files instead of returning error.\nfunc LooseLoad(source interface{}, others ...interface{}) (*File, error) {\n\treturn LoadSources(LoadOptions{Loose: true}, source, others...)\n}\n\n// InsensitiveLoad has exactly same functionality as Load function\n// except it forces all section and key names to be lowercased.\nfunc InsensitiveLoad(source interface{}, others ...interface{}) (*File, error) {\n\treturn LoadSources(LoadOptions{Insensitive: true}, source, others...)\n}\n\n// InsensitiveLoad has exactly same functionality as Load function\n// except it allows have shadow keys.\nfunc ShadowLoad(source interface{}, others ...interface{}) (*File, error) {\n\treturn LoadSources(LoadOptions{AllowShadows: true}, source, others...)\n}\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/key.go",
    "content": "// Copyright 2014 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage ini\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Key represents a key under a section.\ntype Key struct {\n\ts               *Section\n\tComment         string\n\tname            string\n\tvalue           string\n\tisAutoIncrement bool\n\tisBooleanType   bool\n\n\tisShadow bool\n\tshadows  []*Key\n\n\tnestedValues []string\n}\n\n// newKey simply return a key object with given values.\nfunc newKey(s *Section, name, val string) *Key {\n\treturn &Key{\n\t\ts:     s,\n\t\tname:  name,\n\t\tvalue: val,\n\t}\n}\n\nfunc (k *Key) addShadow(val string) error {\n\tif k.isShadow {\n\t\treturn errors.New(\"cannot add shadow to another shadow key\")\n\t} else if k.isAutoIncrement || k.isBooleanType {\n\t\treturn errors.New(\"cannot add shadow to auto-increment or boolean key\")\n\t}\n\n\tshadow := newKey(k.s, k.name, val)\n\tshadow.isShadow = true\n\tk.shadows = append(k.shadows, shadow)\n\treturn nil\n}\n\n// AddShadow adds a new shadow key to itself.\nfunc (k *Key) AddShadow(val string) error {\n\tif !k.s.f.options.AllowShadows {\n\t\treturn errors.New(\"shadow key is not allowed\")\n\t}\n\treturn k.addShadow(val)\n}\n\nfunc (k *Key) addNestedValue(val string) error {\n\tif k.isAutoIncrement || k.isBooleanType {\n\t\treturn errors.New(\"cannot add nested value to auto-increment or boolean key\")\n\t}\n\n\tk.nestedValues = append(k.nestedValues, val)\n\treturn nil\n}\n\nfunc (k *Key) AddNestedValue(val string) error {\n\tif !k.s.f.options.AllowNestedValues {\n\t\treturn errors.New(\"nested value is not allowed\")\n\t}\n\treturn k.addNestedValue(val)\n}\n\n// ValueMapper represents a mapping function for values, e.g. os.ExpandEnv\ntype ValueMapper func(string) string\n\n// Name returns name of key.\nfunc (k *Key) Name() string {\n\treturn k.name\n}\n\n// Value returns raw value of key for performance purpose.\nfunc (k *Key) Value() string {\n\treturn k.value\n}\n\n// ValueWithShadows returns raw values of key and its shadows if any.\nfunc (k *Key) ValueWithShadows() []string {\n\tif len(k.shadows) == 0 {\n\t\treturn []string{k.value}\n\t}\n\tvals := make([]string, len(k.shadows)+1)\n\tvals[0] = k.value\n\tfor i := range k.shadows {\n\t\tvals[i+1] = k.shadows[i].value\n\t}\n\treturn vals\n}\n\n// NestedValues returns nested values stored in the key.\n// It is possible returned value is nil if no nested values stored in the key.\nfunc (k *Key) NestedValues() []string {\n\treturn k.nestedValues\n}\n\n// transformValue takes a raw value and transforms to its final string.\nfunc (k *Key) transformValue(val string) string {\n\tif k.s.f.ValueMapper != nil {\n\t\tval = k.s.f.ValueMapper(val)\n\t}\n\n\t// Fail-fast if no indicate char found for recursive value\n\tif !strings.Contains(val, \"%\") {\n\t\treturn val\n\t}\n\tfor i := 0; i < _DEPTH_VALUES; i++ {\n\t\tvr := varPattern.FindString(val)\n\t\tif len(vr) == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// Take off leading '%(' and trailing ')s'.\n\t\tnoption := strings.TrimLeft(vr, \"%(\")\n\t\tnoption = strings.TrimRight(noption, \")s\")\n\n\t\t// Search in the same section.\n\t\tnk, err := k.s.GetKey(noption)\n\t\tif err != nil || k == nk {\n\t\t\t// Search again in default section.\n\t\t\tnk, _ = k.s.f.Section(\"\").GetKey(noption)\n\t\t}\n\n\t\t// Substitute by new value and take off leading '%(' and trailing ')s'.\n\t\tval = strings.Replace(val, vr, nk.value, -1)\n\t}\n\treturn val\n}\n\n// String returns string representation of value.\nfunc (k *Key) String() string {\n\treturn k.transformValue(k.value)\n}\n\n// Validate accepts a validate function which can\n// return modifed result as key value.\nfunc (k *Key) Validate(fn func(string) string) string {\n\treturn fn(k.String())\n}\n\n// parseBool returns the boolean value represented by the string.\n//\n// It accepts 1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On,\n// 0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off.\n// Any other value returns an error.\nfunc parseBool(str string) (value bool, err error) {\n\tswitch str {\n\tcase \"1\", \"t\", \"T\", \"true\", \"TRUE\", \"True\", \"YES\", \"yes\", \"Yes\", \"y\", \"ON\", \"on\", \"On\":\n\t\treturn true, nil\n\tcase \"0\", \"f\", \"F\", \"false\", \"FALSE\", \"False\", \"NO\", \"no\", \"No\", \"n\", \"OFF\", \"off\", \"Off\":\n\t\treturn false, nil\n\t}\n\treturn false, fmt.Errorf(\"parsing \\\"%s\\\": invalid syntax\", str)\n}\n\n// Bool returns bool type value.\nfunc (k *Key) Bool() (bool, error) {\n\treturn parseBool(k.String())\n}\n\n// Float64 returns float64 type value.\nfunc (k *Key) Float64() (float64, error) {\n\treturn strconv.ParseFloat(k.String(), 64)\n}\n\n// Int returns int type value.\nfunc (k *Key) Int() (int, error) {\n\treturn strconv.Atoi(k.String())\n}\n\n// Int64 returns int64 type value.\nfunc (k *Key) Int64() (int64, error) {\n\treturn strconv.ParseInt(k.String(), 10, 64)\n}\n\n// Uint returns uint type valued.\nfunc (k *Key) Uint() (uint, error) {\n\tu, e := strconv.ParseUint(k.String(), 10, 64)\n\treturn uint(u), e\n}\n\n// Uint64 returns uint64 type value.\nfunc (k *Key) Uint64() (uint64, error) {\n\treturn strconv.ParseUint(k.String(), 10, 64)\n}\n\n// Duration returns time.Duration type value.\nfunc (k *Key) Duration() (time.Duration, error) {\n\treturn time.ParseDuration(k.String())\n}\n\n// TimeFormat parses with given format and returns time.Time type value.\nfunc (k *Key) TimeFormat(format string) (time.Time, error) {\n\treturn time.Parse(format, k.String())\n}\n\n// Time parses with RFC3339 format and returns time.Time type value.\nfunc (k *Key) Time() (time.Time, error) {\n\treturn k.TimeFormat(time.RFC3339)\n}\n\n// MustString returns default value if key value is empty.\nfunc (k *Key) MustString(defaultVal string) string {\n\tval := k.String()\n\tif len(val) == 0 {\n\t\tk.value = defaultVal\n\t\treturn defaultVal\n\t}\n\treturn val\n}\n\n// MustBool always returns value without error,\n// it returns false if error occurs.\nfunc (k *Key) MustBool(defaultVal ...bool) bool {\n\tval, err := k.Bool()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = strconv.FormatBool(defaultVal[0])\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustFloat64 always returns value without error,\n// it returns 0.0 if error occurs.\nfunc (k *Key) MustFloat64(defaultVal ...float64) float64 {\n\tval, err := k.Float64()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = strconv.FormatFloat(defaultVal[0], 'f', -1, 64)\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustInt always returns value without error,\n// it returns 0 if error occurs.\nfunc (k *Key) MustInt(defaultVal ...int) int {\n\tval, err := k.Int()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = strconv.FormatInt(int64(defaultVal[0]), 10)\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustInt64 always returns value without error,\n// it returns 0 if error occurs.\nfunc (k *Key) MustInt64(defaultVal ...int64) int64 {\n\tval, err := k.Int64()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = strconv.FormatInt(defaultVal[0], 10)\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustUint always returns value without error,\n// it returns 0 if error occurs.\nfunc (k *Key) MustUint(defaultVal ...uint) uint {\n\tval, err := k.Uint()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = strconv.FormatUint(uint64(defaultVal[0]), 10)\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustUint64 always returns value without error,\n// it returns 0 if error occurs.\nfunc (k *Key) MustUint64(defaultVal ...uint64) uint64 {\n\tval, err := k.Uint64()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = strconv.FormatUint(defaultVal[0], 10)\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustDuration always returns value without error,\n// it returns zero value if error occurs.\nfunc (k *Key) MustDuration(defaultVal ...time.Duration) time.Duration {\n\tval, err := k.Duration()\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = defaultVal[0].String()\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustTimeFormat always parses with given format and returns value without error,\n// it returns zero value if error occurs.\nfunc (k *Key) MustTimeFormat(format string, defaultVal ...time.Time) time.Time {\n\tval, err := k.TimeFormat(format)\n\tif len(defaultVal) > 0 && err != nil {\n\t\tk.value = defaultVal[0].Format(format)\n\t\treturn defaultVal[0]\n\t}\n\treturn val\n}\n\n// MustTime always parses with RFC3339 format and returns value without error,\n// it returns zero value if error occurs.\nfunc (k *Key) MustTime(defaultVal ...time.Time) time.Time {\n\treturn k.MustTimeFormat(time.RFC3339, defaultVal...)\n}\n\n// In always returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) In(defaultVal string, candidates []string) string {\n\tval := k.String()\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InFloat64 always returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InFloat64(defaultVal float64, candidates []float64) float64 {\n\tval := k.MustFloat64()\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InInt always returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InInt(defaultVal int, candidates []int) int {\n\tval := k.MustInt()\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InInt64 always returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InInt64(defaultVal int64, candidates []int64) int64 {\n\tval := k.MustInt64()\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InUint always returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InUint(defaultVal uint, candidates []uint) uint {\n\tval := k.MustUint()\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InUint64 always returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InUint64(defaultVal uint64, candidates []uint64) uint64 {\n\tval := k.MustUint64()\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InTimeFormat always parses with given format and returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InTimeFormat(format string, defaultVal time.Time, candidates []time.Time) time.Time {\n\tval := k.MustTimeFormat(format)\n\tfor _, cand := range candidates {\n\t\tif val == cand {\n\t\t\treturn val\n\t\t}\n\t}\n\treturn defaultVal\n}\n\n// InTime always parses with RFC3339 format and returns value without error,\n// it returns default value if error occurs or doesn't fit into candidates.\nfunc (k *Key) InTime(defaultVal time.Time, candidates []time.Time) time.Time {\n\treturn k.InTimeFormat(time.RFC3339, defaultVal, candidates)\n}\n\n// RangeFloat64 checks if value is in given range inclusively,\n// and returns default value if it's not.\nfunc (k *Key) RangeFloat64(defaultVal, min, max float64) float64 {\n\tval := k.MustFloat64()\n\tif val < min || val > max {\n\t\treturn defaultVal\n\t}\n\treturn val\n}\n\n// RangeInt checks if value is in given range inclusively,\n// and returns default value if it's not.\nfunc (k *Key) RangeInt(defaultVal, min, max int) int {\n\tval := k.MustInt()\n\tif val < min || val > max {\n\t\treturn defaultVal\n\t}\n\treturn val\n}\n\n// RangeInt64 checks if value is in given range inclusively,\n// and returns default value if it's not.\nfunc (k *Key) RangeInt64(defaultVal, min, max int64) int64 {\n\tval := k.MustInt64()\n\tif val < min || val > max {\n\t\treturn defaultVal\n\t}\n\treturn val\n}\n\n// RangeTimeFormat checks if value with given format is in given range inclusively,\n// and returns default value if it's not.\nfunc (k *Key) RangeTimeFormat(format string, defaultVal, min, max time.Time) time.Time {\n\tval := k.MustTimeFormat(format)\n\tif val.Unix() < min.Unix() || val.Unix() > max.Unix() {\n\t\treturn defaultVal\n\t}\n\treturn val\n}\n\n// RangeTime checks if value with RFC3339 format is in given range inclusively,\n// and returns default value if it's not.\nfunc (k *Key) RangeTime(defaultVal, min, max time.Time) time.Time {\n\treturn k.RangeTimeFormat(time.RFC3339, defaultVal, min, max)\n}\n\n// Strings returns list of string divided by given delimiter.\nfunc (k *Key) Strings(delim string) []string {\n\tstr := k.String()\n\tif len(str) == 0 {\n\t\treturn []string{}\n\t}\n\n\trunes := []rune(str)\n\tvals := make([]string, 0, 2)\n\tvar buf bytes.Buffer\n\tescape := false\n\tidx := 0\n\tfor {\n\t\tif escape {\n\t\t\tescape = false\n\t\t\tif runes[idx] != '\\\\' && !strings.HasPrefix(string(runes[idx:]), delim) {\n\t\t\t\tbuf.WriteRune('\\\\')\n\t\t\t}\n\t\t\tbuf.WriteRune(runes[idx])\n\t\t} else {\n\t\t\tif runes[idx] == '\\\\' {\n\t\t\t\tescape = true\n\t\t\t} else if strings.HasPrefix(string(runes[idx:]), delim) {\n\t\t\t\tidx += len(delim) - 1\n\t\t\t\tvals = append(vals, strings.TrimSpace(buf.String()))\n\t\t\t\tbuf.Reset()\n\t\t\t} else {\n\t\t\t\tbuf.WriteRune(runes[idx])\n\t\t\t}\n\t\t}\n\t\tidx += 1\n\t\tif idx == len(runes) {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif buf.Len() > 0 {\n\t\tvals = append(vals, strings.TrimSpace(buf.String()))\n\t}\n\n\treturn vals\n}\n\n// StringsWithShadows returns list of string divided by given delimiter.\n// Shadows will also be appended if any.\nfunc (k *Key) StringsWithShadows(delim string) []string {\n\tvals := k.ValueWithShadows()\n\tresults := make([]string, 0, len(vals)*2)\n\tfor i := range vals {\n\t\tif len(vals) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tresults = append(results, strings.Split(vals[i], delim)...)\n\t}\n\n\tfor i := range results {\n\t\tresults[i] = k.transformValue(strings.TrimSpace(results[i]))\n\t}\n\treturn results\n}\n\n// Float64s returns list of float64 divided by given delimiter. Any invalid input will be treated as zero value.\nfunc (k *Key) Float64s(delim string) []float64 {\n\tvals, _ := k.parseFloat64s(k.Strings(delim), true, false)\n\treturn vals\n}\n\n// Ints returns list of int divided by given delimiter. Any invalid input will be treated as zero value.\nfunc (k *Key) Ints(delim string) []int {\n\tvals, _ := k.parseInts(k.Strings(delim), true, false)\n\treturn vals\n}\n\n// Int64s returns list of int64 divided by given delimiter. Any invalid input will be treated as zero value.\nfunc (k *Key) Int64s(delim string) []int64 {\n\tvals, _ := k.parseInt64s(k.Strings(delim), true, false)\n\treturn vals\n}\n\n// Uints returns list of uint divided by given delimiter. Any invalid input will be treated as zero value.\nfunc (k *Key) Uints(delim string) []uint {\n\tvals, _ := k.parseUints(k.Strings(delim), true, false)\n\treturn vals\n}\n\n// Uint64s returns list of uint64 divided by given delimiter. Any invalid input will be treated as zero value.\nfunc (k *Key) Uint64s(delim string) []uint64 {\n\tvals, _ := k.parseUint64s(k.Strings(delim), true, false)\n\treturn vals\n}\n\n// TimesFormat parses with given format and returns list of time.Time divided by given delimiter.\n// Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC).\nfunc (k *Key) TimesFormat(format, delim string) []time.Time {\n\tvals, _ := k.parseTimesFormat(format, k.Strings(delim), true, false)\n\treturn vals\n}\n\n// Times parses with RFC3339 format and returns list of time.Time divided by given delimiter.\n// Any invalid input will be treated as zero value (0001-01-01 00:00:00 +0000 UTC).\nfunc (k *Key) Times(delim string) []time.Time {\n\treturn k.TimesFormat(time.RFC3339, delim)\n}\n\n// ValidFloat64s returns list of float64 divided by given delimiter. If some value is not float, then\n// it will not be included to result list.\nfunc (k *Key) ValidFloat64s(delim string) []float64 {\n\tvals, _ := k.parseFloat64s(k.Strings(delim), false, false)\n\treturn vals\n}\n\n// ValidInts returns list of int divided by given delimiter. If some value is not integer, then it will\n// not be included to result list.\nfunc (k *Key) ValidInts(delim string) []int {\n\tvals, _ := k.parseInts(k.Strings(delim), false, false)\n\treturn vals\n}\n\n// ValidInt64s returns list of int64 divided by given delimiter. If some value is not 64-bit integer,\n// then it will not be included to result list.\nfunc (k *Key) ValidInt64s(delim string) []int64 {\n\tvals, _ := k.parseInt64s(k.Strings(delim), false, false)\n\treturn vals\n}\n\n// ValidUints returns list of uint divided by given delimiter. If some value is not unsigned integer,\n// then it will not be included to result list.\nfunc (k *Key) ValidUints(delim string) []uint {\n\tvals, _ := k.parseUints(k.Strings(delim), false, false)\n\treturn vals\n}\n\n// ValidUint64s returns list of uint64 divided by given delimiter. If some value is not 64-bit unsigned\n// integer, then it will not be included to result list.\nfunc (k *Key) ValidUint64s(delim string) []uint64 {\n\tvals, _ := k.parseUint64s(k.Strings(delim), false, false)\n\treturn vals\n}\n\n// ValidTimesFormat parses with given format and returns list of time.Time divided by given delimiter.\nfunc (k *Key) ValidTimesFormat(format, delim string) []time.Time {\n\tvals, _ := k.parseTimesFormat(format, k.Strings(delim), false, false)\n\treturn vals\n}\n\n// ValidTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter.\nfunc (k *Key) ValidTimes(delim string) []time.Time {\n\treturn k.ValidTimesFormat(time.RFC3339, delim)\n}\n\n// StrictFloat64s returns list of float64 divided by given delimiter or error on first invalid input.\nfunc (k *Key) StrictFloat64s(delim string) ([]float64, error) {\n\treturn k.parseFloat64s(k.Strings(delim), false, true)\n}\n\n// StrictInts returns list of int divided by given delimiter or error on first invalid input.\nfunc (k *Key) StrictInts(delim string) ([]int, error) {\n\treturn k.parseInts(k.Strings(delim), false, true)\n}\n\n// StrictInt64s returns list of int64 divided by given delimiter or error on first invalid input.\nfunc (k *Key) StrictInt64s(delim string) ([]int64, error) {\n\treturn k.parseInt64s(k.Strings(delim), false, true)\n}\n\n// StrictUints returns list of uint divided by given delimiter or error on first invalid input.\nfunc (k *Key) StrictUints(delim string) ([]uint, error) {\n\treturn k.parseUints(k.Strings(delim), false, true)\n}\n\n// StrictUint64s returns list of uint64 divided by given delimiter or error on first invalid input.\nfunc (k *Key) StrictUint64s(delim string) ([]uint64, error) {\n\treturn k.parseUint64s(k.Strings(delim), false, true)\n}\n\n// StrictTimesFormat parses with given format and returns list of time.Time divided by given delimiter\n// or error on first invalid input.\nfunc (k *Key) StrictTimesFormat(format, delim string) ([]time.Time, error) {\n\treturn k.parseTimesFormat(format, k.Strings(delim), false, true)\n}\n\n// StrictTimes parses with RFC3339 format and returns list of time.Time divided by given delimiter\n// or error on first invalid input.\nfunc (k *Key) StrictTimes(delim string) ([]time.Time, error) {\n\treturn k.StrictTimesFormat(time.RFC3339, delim)\n}\n\n// parseFloat64s transforms strings to float64s.\nfunc (k *Key) parseFloat64s(strs []string, addInvalid, returnOnInvalid bool) ([]float64, error) {\n\tvals := make([]float64, 0, len(strs))\n\tfor _, str := range strs {\n\t\tval, err := strconv.ParseFloat(str, 64)\n\t\tif err != nil && returnOnInvalid {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err == nil || addInvalid {\n\t\t\tvals = append(vals, val)\n\t\t}\n\t}\n\treturn vals, nil\n}\n\n// parseInts transforms strings to ints.\nfunc (k *Key) parseInts(strs []string, addInvalid, returnOnInvalid bool) ([]int, error) {\n\tvals := make([]int, 0, len(strs))\n\tfor _, str := range strs {\n\t\tval, err := strconv.Atoi(str)\n\t\tif err != nil && returnOnInvalid {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err == nil || addInvalid {\n\t\t\tvals = append(vals, val)\n\t\t}\n\t}\n\treturn vals, nil\n}\n\n// parseInt64s transforms strings to int64s.\nfunc (k *Key) parseInt64s(strs []string, addInvalid, returnOnInvalid bool) ([]int64, error) {\n\tvals := make([]int64, 0, len(strs))\n\tfor _, str := range strs {\n\t\tval, err := strconv.ParseInt(str, 10, 64)\n\t\tif err != nil && returnOnInvalid {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err == nil || addInvalid {\n\t\t\tvals = append(vals, val)\n\t\t}\n\t}\n\treturn vals, nil\n}\n\n// parseUints transforms strings to uints.\nfunc (k *Key) parseUints(strs []string, addInvalid, returnOnInvalid bool) ([]uint, error) {\n\tvals := make([]uint, 0, len(strs))\n\tfor _, str := range strs {\n\t\tval, err := strconv.ParseUint(str, 10, 0)\n\t\tif err != nil && returnOnInvalid {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err == nil || addInvalid {\n\t\t\tvals = append(vals, uint(val))\n\t\t}\n\t}\n\treturn vals, nil\n}\n\n// parseUint64s transforms strings to uint64s.\nfunc (k *Key) parseUint64s(strs []string, addInvalid, returnOnInvalid bool) ([]uint64, error) {\n\tvals := make([]uint64, 0, len(strs))\n\tfor _, str := range strs {\n\t\tval, err := strconv.ParseUint(str, 10, 64)\n\t\tif err != nil && returnOnInvalid {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err == nil || addInvalid {\n\t\t\tvals = append(vals, val)\n\t\t}\n\t}\n\treturn vals, nil\n}\n\n// parseTimesFormat transforms strings to times in given format.\nfunc (k *Key) parseTimesFormat(format string, strs []string, addInvalid, returnOnInvalid bool) ([]time.Time, error) {\n\tvals := make([]time.Time, 0, len(strs))\n\tfor _, str := range strs {\n\t\tval, err := time.Parse(format, str)\n\t\tif err != nil && returnOnInvalid {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err == nil || addInvalid {\n\t\t\tvals = append(vals, val)\n\t\t}\n\t}\n\treturn vals, nil\n}\n\n// SetValue changes key value.\nfunc (k *Key) SetValue(v string) {\n\tif k.s.f.BlockMode {\n\t\tk.s.f.lock.Lock()\n\t\tdefer k.s.f.lock.Unlock()\n\t}\n\n\tk.value = v\n\tk.s.keysHash[k.name] = v\n}\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/parser.go",
    "content": "// Copyright 2015 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage ini\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n)\n\ntype tokenType int\n\nconst (\n\t_TOKEN_INVALID tokenType = iota\n\t_TOKEN_COMMENT\n\t_TOKEN_SECTION\n\t_TOKEN_KEY\n)\n\ntype parser struct {\n\tbuf     *bufio.Reader\n\tisEOF   bool\n\tcount   int\n\tcomment *bytes.Buffer\n}\n\nfunc newParser(r io.Reader) *parser {\n\treturn &parser{\n\t\tbuf:     bufio.NewReader(r),\n\t\tcount:   1,\n\t\tcomment: &bytes.Buffer{},\n\t}\n}\n\n// BOM handles header of UTF-8, UTF-16 LE and UTF-16 BE's BOM format.\n// http://en.wikipedia.org/wiki/Byte_order_mark#Representations_of_byte_order_marks_by_encoding\nfunc (p *parser) BOM() error {\n\tmask, err := p.buf.Peek(2)\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t} else if len(mask) < 2 {\n\t\treturn nil\n\t}\n\n\tswitch {\n\tcase mask[0] == 254 && mask[1] == 255:\n\t\tfallthrough\n\tcase mask[0] == 255 && mask[1] == 254:\n\t\tp.buf.Read(mask)\n\tcase mask[0] == 239 && mask[1] == 187:\n\t\tmask, err := p.buf.Peek(3)\n\t\tif err != nil && err != io.EOF {\n\t\t\treturn err\n\t\t} else if len(mask) < 3 {\n\t\t\treturn nil\n\t\t}\n\t\tif mask[2] == 191 {\n\t\t\tp.buf.Read(mask)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *parser) readUntil(delim byte) ([]byte, error) {\n\tdata, err := p.buf.ReadBytes(delim)\n\tif err != nil {\n\t\tif err == io.EOF {\n\t\t\tp.isEOF = true\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn data, nil\n}\n\nfunc cleanComment(in []byte) ([]byte, bool) {\n\ti := bytes.IndexAny(in, \"#;\")\n\tif i == -1 {\n\t\treturn nil, false\n\t}\n\treturn in[i:], true\n}\n\nfunc readKeyName(in []byte) (string, int, error) {\n\tline := string(in)\n\n\t// Check if key name surrounded by quotes.\n\tvar keyQuote string\n\tif line[0] == '\"' {\n\t\tif len(line) > 6 && string(line[0:3]) == `\"\"\"` {\n\t\t\tkeyQuote = `\"\"\"`\n\t\t} else {\n\t\t\tkeyQuote = `\"`\n\t\t}\n\t} else if line[0] == '`' {\n\t\tkeyQuote = \"`\"\n\t}\n\n\t// Get out key name\n\tendIdx := -1\n\tif len(keyQuote) > 0 {\n\t\tstartIdx := len(keyQuote)\n\t\t// FIXME: fail case -> \"\"\"\"\"\"name\"\"\"=value\n\t\tpos := strings.Index(line[startIdx:], keyQuote)\n\t\tif pos == -1 {\n\t\t\treturn \"\", -1, fmt.Errorf(\"missing closing key quote: %s\", line)\n\t\t}\n\t\tpos += startIdx\n\n\t\t// Find key-value delimiter\n\t\ti := strings.IndexAny(line[pos+startIdx:], \"=:\")\n\t\tif i < 0 {\n\t\t\treturn \"\", -1, ErrDelimiterNotFound{line}\n\t\t}\n\t\tendIdx = pos + i\n\t\treturn strings.TrimSpace(line[startIdx:pos]), endIdx + startIdx + 1, nil\n\t}\n\n\tendIdx = strings.IndexAny(line, \"=:\")\n\tif endIdx < 0 {\n\t\treturn \"\", -1, ErrDelimiterNotFound{line}\n\t}\n\treturn strings.TrimSpace(line[0:endIdx]), endIdx + 1, nil\n}\n\nfunc (p *parser) readMultilines(line, val, valQuote string) (string, error) {\n\tfor {\n\t\tdata, err := p.readUntil('\\n')\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tnext := string(data)\n\n\t\tpos := strings.LastIndex(next, valQuote)\n\t\tif pos > -1 {\n\t\t\tval += next[:pos]\n\n\t\t\tcomment, has := cleanComment([]byte(next[pos:]))\n\t\t\tif has {\n\t\t\t\tp.comment.Write(bytes.TrimSpace(comment))\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tval += next\n\t\tif p.isEOF {\n\t\t\treturn \"\", fmt.Errorf(\"missing closing key quote from '%s' to '%s'\", line, next)\n\t\t}\n\t}\n\treturn val, nil\n}\n\nfunc (p *parser) readContinuationLines(val string) (string, error) {\n\tfor {\n\t\tdata, err := p.readUntil('\\n')\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tnext := strings.TrimSpace(string(data))\n\n\t\tif len(next) == 0 {\n\t\t\tbreak\n\t\t}\n\t\tval += next\n\t\tif val[len(val)-1] != '\\\\' {\n\t\t\tbreak\n\t\t}\n\t\tval = val[:len(val)-1]\n\t}\n\treturn val, nil\n}\n\n// hasSurroundedQuote check if and only if the first and last characters\n// are quotes \\\" or \\'.\n// It returns false if any other parts also contain same kind of quotes.\nfunc hasSurroundedQuote(in string, quote byte) bool {\n\treturn len(in) >= 2 && in[0] == quote && in[len(in)-1] == quote &&\n\t\tstrings.IndexByte(in[1:], quote) == len(in)-2\n}\n\nfunc (p *parser) readValue(in []byte,\n\tignoreContinuation, ignoreInlineComment, unescapeValueDoubleQuotes, unescapeValueCommentSymbols bool) (string, error) {\n\n\tline := strings.TrimLeftFunc(string(in), unicode.IsSpace)\n\tif len(line) == 0 {\n\t\treturn \"\", nil\n\t}\n\n\tvar valQuote string\n\tif len(line) > 3 && string(line[0:3]) == `\"\"\"` {\n\t\tvalQuote = `\"\"\"`\n\t} else if line[0] == '`' {\n\t\tvalQuote = \"`\"\n\t} else if unescapeValueDoubleQuotes && line[0] == '\"' {\n\t\tvalQuote = `\"`\n\t}\n\n\tif len(valQuote) > 0 {\n\t\tstartIdx := len(valQuote)\n\t\tpos := strings.LastIndex(line[startIdx:], valQuote)\n\t\t// Check for multi-line value\n\t\tif pos == -1 {\n\t\t\treturn p.readMultilines(line, line[startIdx:], valQuote)\n\t\t}\n\n\t\tif unescapeValueDoubleQuotes && valQuote == `\"` {\n\t\t\treturn strings.Replace(line[startIdx:pos+startIdx], `\\\"`, `\"`, -1), nil\n\t\t}\n\t\treturn line[startIdx : pos+startIdx], nil\n\t}\n\n\t// Won't be able to reach here if value only contains whitespace\n\tline = strings.TrimSpace(line)\n\n\t// Check continuation lines when desired\n\tif !ignoreContinuation && line[len(line)-1] == '\\\\' {\n\t\treturn p.readContinuationLines(line[:len(line)-1])\n\t}\n\n\t// Check if ignore inline comment\n\tif !ignoreInlineComment {\n\t\ti := strings.IndexAny(line, \"#;\")\n\t\tif i > -1 {\n\t\t\tp.comment.WriteString(line[i:])\n\t\t\tline = strings.TrimSpace(line[:i])\n\t\t}\n\t}\n\n\t// Trim single and double quotes\n\tif hasSurroundedQuote(line, '\\'') ||\n\t\thasSurroundedQuote(line, '\"') {\n\t\tline = line[1 : len(line)-1]\n\t} else if len(valQuote) == 0 && unescapeValueCommentSymbols {\n\t\tif strings.Contains(line, `\\;`) {\n\t\t\tline = strings.Replace(line, `\\;`, \";\", -1)\n\t\t}\n\t\tif strings.Contains(line, `\\#`) {\n\t\t\tline = strings.Replace(line, `\\#`, \"#\", -1)\n\t\t}\n\t}\n\treturn line, nil\n}\n\n// parse parses data through an io.Reader.\nfunc (f *File) parse(reader io.Reader) (err error) {\n\tp := newParser(reader)\n\tif err = p.BOM(); err != nil {\n\t\treturn fmt.Errorf(\"BOM: %v\", err)\n\t}\n\n\t// Ignore error because default section name is never empty string.\n\tname := DEFAULT_SECTION\n\tif f.options.Insensitive {\n\t\tname = strings.ToLower(DEFAULT_SECTION)\n\t}\n\tsection, _ := f.NewSection(name)\n\n\t// This \"last\" is not strictly equivalent to \"previous one\" if current key is not the first nested key\n\tvar isLastValueEmpty bool\n\tvar lastRegularKey *Key\n\n\tvar line []byte\n\tvar inUnparseableSection bool\n\tfor !p.isEOF {\n\t\tline, err = p.readUntil('\\n')\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif f.options.AllowNestedValues &&\n\t\t\tisLastValueEmpty && len(line) > 0 {\n\t\t\tif line[0] == ' ' || line[0] == '\\t' {\n\t\t\t\tlastRegularKey.addNestedValue(string(bytes.TrimSpace(line)))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tline = bytes.TrimLeftFunc(line, unicode.IsSpace)\n\t\tif len(line) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Comments\n\t\tif line[0] == '#' || line[0] == ';' {\n\t\t\t// Note: we do not care ending line break,\n\t\t\t// it is needed for adding second line,\n\t\t\t// so just clean it once at the end when set to value.\n\t\t\tp.comment.Write(line)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Section\n\t\tif line[0] == '[' {\n\t\t\t// Read to the next ']' (TODO: support quoted strings)\n\t\t\t// TODO(unknwon): use LastIndexByte when stop supporting Go1.4\n\t\t\tcloseIdx := bytes.LastIndex(line, []byte(\"]\"))\n\t\t\tif closeIdx == -1 {\n\t\t\t\treturn fmt.Errorf(\"unclosed section: %s\", line)\n\t\t\t}\n\n\t\t\tname := string(line[1:closeIdx])\n\t\t\tsection, err = f.NewSection(name)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcomment, has := cleanComment(line[closeIdx+1:])\n\t\t\tif has {\n\t\t\t\tp.comment.Write(comment)\n\t\t\t}\n\n\t\t\tsection.Comment = strings.TrimSpace(p.comment.String())\n\n\t\t\t// Reset aotu-counter and comments\n\t\t\tp.comment.Reset()\n\t\t\tp.count = 1\n\n\t\t\tinUnparseableSection = false\n\t\t\tfor i := range f.options.UnparseableSections {\n\t\t\t\tif f.options.UnparseableSections[i] == name ||\n\t\t\t\t\t(f.options.Insensitive && strings.ToLower(f.options.UnparseableSections[i]) == strings.ToLower(name)) {\n\t\t\t\t\tinUnparseableSection = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif inUnparseableSection {\n\t\t\tsection.isRawSection = true\n\t\t\tsection.rawBody += string(line)\n\t\t\tcontinue\n\t\t}\n\n\t\tkname, offset, err := readKeyName(line)\n\t\tif err != nil {\n\t\t\t// Treat as boolean key when desired, and whole line is key name.\n\t\t\tif IsErrDelimiterNotFound(err) && f.options.AllowBooleanKeys {\n\t\t\t\tkname, err := p.readValue(line,\n\t\t\t\t\tf.options.IgnoreContinuation,\n\t\t\t\t\tf.options.IgnoreInlineComment,\n\t\t\t\t\tf.options.UnescapeValueDoubleQuotes,\n\t\t\t\t\tf.options.UnescapeValueCommentSymbols)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tkey, err := section.NewBooleanKey(kname)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tkey.Comment = strings.TrimSpace(p.comment.String())\n\t\t\t\tp.comment.Reset()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\n\t\t// Auto increment.\n\t\tisAutoIncr := false\n\t\tif kname == \"-\" {\n\t\t\tisAutoIncr = true\n\t\t\tkname = \"#\" + strconv.Itoa(p.count)\n\t\t\tp.count++\n\t\t}\n\n\t\tvalue, err := p.readValue(line[offset:],\n\t\t\tf.options.IgnoreContinuation,\n\t\t\tf.options.IgnoreInlineComment,\n\t\t\tf.options.UnescapeValueDoubleQuotes,\n\t\t\tf.options.UnescapeValueCommentSymbols)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tisLastValueEmpty = len(value) == 0\n\n\t\tkey, err := section.NewKey(kname, value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey.isAutoIncrement = isAutoIncr\n\t\tkey.Comment = strings.TrimSpace(p.comment.String())\n\t\tp.comment.Reset()\n\t\tlastRegularKey = key\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/section.go",
    "content": "// Copyright 2014 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage ini\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Section represents a config section.\ntype Section struct {\n\tf        *File\n\tComment  string\n\tname     string\n\tkeys     map[string]*Key\n\tkeyList  []string\n\tkeysHash map[string]string\n\n\tisRawSection bool\n\trawBody      string\n}\n\nfunc newSection(f *File, name string) *Section {\n\treturn &Section{\n\t\tf:        f,\n\t\tname:     name,\n\t\tkeys:     make(map[string]*Key),\n\t\tkeyList:  make([]string, 0, 10),\n\t\tkeysHash: make(map[string]string),\n\t}\n}\n\n// Name returns name of Section.\nfunc (s *Section) Name() string {\n\treturn s.name\n}\n\n// Body returns rawBody of Section if the section was marked as unparseable.\n// It still follows the other rules of the INI format surrounding leading/trailing whitespace.\nfunc (s *Section) Body() string {\n\treturn strings.TrimSpace(s.rawBody)\n}\n\n// SetBody updates body content only if section is raw.\nfunc (s *Section) SetBody(body string) {\n\tif !s.isRawSection {\n\t\treturn\n\t}\n\ts.rawBody = body\n}\n\n// NewKey creates a new key to given section.\nfunc (s *Section) NewKey(name, val string) (*Key, error) {\n\tif len(name) == 0 {\n\t\treturn nil, errors.New(\"error creating new key: empty key name\")\n\t} else if s.f.options.Insensitive {\n\t\tname = strings.ToLower(name)\n\t}\n\n\tif s.f.BlockMode {\n\t\ts.f.lock.Lock()\n\t\tdefer s.f.lock.Unlock()\n\t}\n\n\tif inSlice(name, s.keyList) {\n\t\tif s.f.options.AllowShadows {\n\t\t\tif err := s.keys[name].addShadow(val); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else {\n\t\t\ts.keys[name].value = val\n\t\t}\n\t\treturn s.keys[name], nil\n\t}\n\n\ts.keyList = append(s.keyList, name)\n\ts.keys[name] = newKey(s, name, val)\n\ts.keysHash[name] = val\n\treturn s.keys[name], nil\n}\n\n// NewBooleanKey creates a new boolean type key to given section.\nfunc (s *Section) NewBooleanKey(name string) (*Key, error) {\n\tkey, err := s.NewKey(name, \"true\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tkey.isBooleanType = true\n\treturn key, nil\n}\n\n// GetKey returns key in section by given name.\nfunc (s *Section) GetKey(name string) (*Key, error) {\n\t// FIXME: change to section level lock?\n\tif s.f.BlockMode {\n\t\ts.f.lock.RLock()\n\t}\n\tif s.f.options.Insensitive {\n\t\tname = strings.ToLower(name)\n\t}\n\tkey := s.keys[name]\n\tif s.f.BlockMode {\n\t\ts.f.lock.RUnlock()\n\t}\n\n\tif key == nil {\n\t\t// Check if it is a child-section.\n\t\tsname := s.name\n\t\tfor {\n\t\t\tif i := strings.LastIndex(sname, \".\"); i > -1 {\n\t\t\t\tsname = sname[:i]\n\t\t\t\tsec, err := s.f.GetSection(sname)\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn sec.GetKey(name)\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn nil, fmt.Errorf(\"error when getting key of section '%s': key '%s' not exists\", s.name, name)\n\t}\n\treturn key, nil\n}\n\n// HasKey returns true if section contains a key with given name.\nfunc (s *Section) HasKey(name string) bool {\n\tkey, _ := s.GetKey(name)\n\treturn key != nil\n}\n\n// Haskey is a backwards-compatible name for HasKey.\n// TODO: delete me in v2\nfunc (s *Section) Haskey(name string) bool {\n\treturn s.HasKey(name)\n}\n\n// HasValue returns true if section contains given raw value.\nfunc (s *Section) HasValue(value string) bool {\n\tif s.f.BlockMode {\n\t\ts.f.lock.RLock()\n\t\tdefer s.f.lock.RUnlock()\n\t}\n\n\tfor _, k := range s.keys {\n\t\tif value == k.value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Key assumes named Key exists in section and returns a zero-value when not.\nfunc (s *Section) Key(name string) *Key {\n\tkey, err := s.GetKey(name)\n\tif err != nil {\n\t\t// It's OK here because the only possible error is empty key name,\n\t\t// but if it's empty, this piece of code won't be executed.\n\t\tkey, _ = s.NewKey(name, \"\")\n\t\treturn key\n\t}\n\treturn key\n}\n\n// Keys returns list of keys of section.\nfunc (s *Section) Keys() []*Key {\n\tkeys := make([]*Key, len(s.keyList))\n\tfor i := range s.keyList {\n\t\tkeys[i] = s.Key(s.keyList[i])\n\t}\n\treturn keys\n}\n\n// ParentKeys returns list of keys of parent section.\nfunc (s *Section) ParentKeys() []*Key {\n\tvar parentKeys []*Key\n\tsname := s.name\n\tfor {\n\t\tif i := strings.LastIndex(sname, \".\"); i > -1 {\n\t\t\tsname = sname[:i]\n\t\t\tsec, err := s.f.GetSection(sname)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tparentKeys = append(parentKeys, sec.Keys()...)\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\n\t}\n\treturn parentKeys\n}\n\n// KeyStrings returns list of key names of section.\nfunc (s *Section) KeyStrings() []string {\n\tlist := make([]string, len(s.keyList))\n\tcopy(list, s.keyList)\n\treturn list\n}\n\n// KeysHash returns keys hash consisting of names and values.\nfunc (s *Section) KeysHash() map[string]string {\n\tif s.f.BlockMode {\n\t\ts.f.lock.RLock()\n\t\tdefer s.f.lock.RUnlock()\n\t}\n\n\thash := map[string]string{}\n\tfor key, value := range s.keysHash {\n\t\thash[key] = value\n\t}\n\treturn hash\n}\n\n// DeleteKey deletes a key from section.\nfunc (s *Section) DeleteKey(name string) {\n\tif s.f.BlockMode {\n\t\ts.f.lock.Lock()\n\t\tdefer s.f.lock.Unlock()\n\t}\n\n\tfor i, k := range s.keyList {\n\t\tif k == name {\n\t\t\ts.keyList = append(s.keyList[:i], s.keyList[i+1:]...)\n\t\t\tdelete(s.keys, name)\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// ChildSections returns a list of child sections of current section.\n// For example, \"[parent.child1]\" and \"[parent.child12]\" are child sections\n// of section \"[parent]\".\nfunc (s *Section) ChildSections() []*Section {\n\tprefix := s.name + \".\"\n\tchildren := make([]*Section, 0, 3)\n\tfor _, name := range s.f.sectionList {\n\t\tif strings.HasPrefix(name, prefix) {\n\t\t\tchildren = append(children, s.f.sections[name])\n\t\t}\n\t}\n\treturn children\n}\n"
  },
  {
    "path": "vendor/github.com/go-ini/ini/struct.go",
    "content": "// Copyright 2014 Unknwon\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage ini\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n)\n\n// NameMapper represents a ini tag name mapper.\ntype NameMapper func(string) string\n\n// Built-in name getters.\nvar (\n\t// AllCapsUnderscore converts to format ALL_CAPS_UNDERSCORE.\n\tAllCapsUnderscore NameMapper = func(raw string) string {\n\t\tnewstr := make([]rune, 0, len(raw))\n\t\tfor i, chr := range raw {\n\t\t\tif isUpper := 'A' <= chr && chr <= 'Z'; isUpper {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tnewstr = append(newstr, '_')\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewstr = append(newstr, unicode.ToUpper(chr))\n\t\t}\n\t\treturn string(newstr)\n\t}\n\t// TitleUnderscore converts to format title_underscore.\n\tTitleUnderscore NameMapper = func(raw string) string {\n\t\tnewstr := make([]rune, 0, len(raw))\n\t\tfor i, chr := range raw {\n\t\t\tif isUpper := 'A' <= chr && chr <= 'Z'; isUpper {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tnewstr = append(newstr, '_')\n\t\t\t\t}\n\t\t\t\tchr -= ('A' - 'a')\n\t\t\t}\n\t\t\tnewstr = append(newstr, chr)\n\t\t}\n\t\treturn string(newstr)\n\t}\n)\n\nfunc (s *Section) parseFieldName(raw, actual string) string {\n\tif len(actual) > 0 {\n\t\treturn actual\n\t}\n\tif s.f.NameMapper != nil {\n\t\treturn s.f.NameMapper(raw)\n\t}\n\treturn raw\n}\n\nfunc parseDelim(actual string) string {\n\tif len(actual) > 0 {\n\t\treturn actual\n\t}\n\treturn \",\"\n}\n\nvar reflectTime = reflect.TypeOf(time.Now()).Kind()\n\n// setSliceWithProperType sets proper values to slice based on its type.\nfunc setSliceWithProperType(key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error {\n\tvar strs []string\n\tif allowShadow {\n\t\tstrs = key.StringsWithShadows(delim)\n\t} else {\n\t\tstrs = key.Strings(delim)\n\t}\n\n\tnumVals := len(strs)\n\tif numVals == 0 {\n\t\treturn nil\n\t}\n\n\tvar vals interface{}\n\tvar err error\n\n\tsliceOf := field.Type().Elem().Kind()\n\tswitch sliceOf {\n\tcase reflect.String:\n\t\tvals = strs\n\tcase reflect.Int:\n\t\tvals, err = key.parseInts(strs, true, false)\n\tcase reflect.Int64:\n\t\tvals, err = key.parseInt64s(strs, true, false)\n\tcase reflect.Uint:\n\t\tvals, err = key.parseUints(strs, true, false)\n\tcase reflect.Uint64:\n\t\tvals, err = key.parseUint64s(strs, true, false)\n\tcase reflect.Float64:\n\t\tvals, err = key.parseFloat64s(strs, true, false)\n\tcase reflectTime:\n\t\tvals, err = key.parseTimesFormat(time.RFC3339, strs, true, false)\n\tdefault:\n\t\treturn fmt.Errorf(\"unsupported type '[]%s'\", sliceOf)\n\t}\n\tif err != nil && isStrict {\n\t\treturn err\n\t}\n\n\tslice := reflect.MakeSlice(field.Type(), numVals, numVals)\n\tfor i := 0; i < numVals; i++ {\n\t\tswitch sliceOf {\n\t\tcase reflect.String:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]string)[i]))\n\t\tcase reflect.Int:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]int)[i]))\n\t\tcase reflect.Int64:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]int64)[i]))\n\t\tcase reflect.Uint:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]uint)[i]))\n\t\tcase reflect.Uint64:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]uint64)[i]))\n\t\tcase reflect.Float64:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]float64)[i]))\n\t\tcase reflectTime:\n\t\t\tslice.Index(i).Set(reflect.ValueOf(vals.([]time.Time)[i]))\n\t\t}\n\t}\n\tfield.Set(slice)\n\treturn nil\n}\n\nfunc wrapStrictError(err error, isStrict bool) error {\n\tif isStrict {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// setWithProperType sets proper value to field based on its type,\n// but it does not return error for failing parsing,\n// because we want to use default value that is already assigned to strcut.\nfunc setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error {\n\tswitch t.Kind() {\n\tcase reflect.String:\n\t\tif len(key.String()) == 0 {\n\t\t\treturn nil\n\t\t}\n\t\tfield.SetString(key.String())\n\tcase reflect.Bool:\n\t\tboolVal, err := key.Bool()\n\t\tif err != nil {\n\t\t\treturn wrapStrictError(err, isStrict)\n\t\t}\n\t\tfield.SetBool(boolVal)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tdurationVal, err := key.Duration()\n\t\t// Skip zero value\n\t\tif err == nil && int64(durationVal) > 0 {\n\t\t\tfield.Set(reflect.ValueOf(durationVal))\n\t\t\treturn nil\n\t\t}\n\n\t\tintVal, err := key.Int64()\n\t\tif err != nil {\n\t\t\treturn wrapStrictError(err, isStrict)\n\t\t}\n\t\tfield.SetInt(intVal)\n\t//\tbyte is an alias for uint8, so supporting uint8 breaks support for byte\n\tcase reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tdurationVal, err := key.Duration()\n\t\t// Skip zero value\n\t\tif err == nil && int(durationVal) > 0 {\n\t\t\tfield.Set(reflect.ValueOf(durationVal))\n\t\t\treturn nil\n\t\t}\n\n\t\tuintVal, err := key.Uint64()\n\t\tif err != nil {\n\t\t\treturn wrapStrictError(err, isStrict)\n\t\t}\n\t\tfield.SetUint(uintVal)\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tfloatVal, err := key.Float64()\n\t\tif err != nil {\n\t\t\treturn wrapStrictError(err, isStrict)\n\t\t}\n\t\tfield.SetFloat(floatVal)\n\tcase reflectTime:\n\t\ttimeVal, err := key.Time()\n\t\tif err != nil {\n\t\t\treturn wrapStrictError(err, isStrict)\n\t\t}\n\t\tfield.Set(reflect.ValueOf(timeVal))\n\tcase reflect.Slice:\n\t\treturn setSliceWithProperType(key, field, delim, allowShadow, isStrict)\n\tdefault:\n\t\treturn fmt.Errorf(\"unsupported type '%s'\", t)\n\t}\n\treturn nil\n}\n\nfunc parseTagOptions(tag string) (rawName string, omitEmpty bool, allowShadow bool) {\n\topts := strings.SplitN(tag, \",\", 3)\n\trawName = opts[0]\n\tif len(opts) > 1 {\n\t\tomitEmpty = opts[1] == \"omitempty\"\n\t}\n\tif len(opts) > 2 {\n\t\tallowShadow = opts[2] == \"allowshadow\"\n\t}\n\treturn rawName, omitEmpty, allowShadow\n}\n\nfunc (s *Section) mapTo(val reflect.Value, isStrict bool) error {\n\tif val.Kind() == reflect.Ptr {\n\t\tval = val.Elem()\n\t}\n\ttyp := val.Type()\n\n\tfor i := 0; i < typ.NumField(); i++ {\n\t\tfield := val.Field(i)\n\t\ttpField := typ.Field(i)\n\n\t\ttag := tpField.Tag.Get(\"ini\")\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\trawName, _, allowShadow := parseTagOptions(tag)\n\t\tfieldName := s.parseFieldName(tpField.Name, rawName)\n\t\tif len(fieldName) == 0 || !field.CanSet() {\n\t\t\tcontinue\n\t\t}\n\n\t\tisAnonymous := tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous\n\t\tisStruct := tpField.Type.Kind() == reflect.Struct\n\t\tif isAnonymous {\n\t\t\tfield.Set(reflect.New(tpField.Type.Elem()))\n\t\t}\n\n\t\tif isAnonymous || isStruct {\n\t\t\tif sec, err := s.f.GetSection(fieldName); err == nil {\n\t\t\t\tif err = sec.mapTo(field, isStrict); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"error mapping field(%s): %v\", fieldName, err)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif key, err := s.GetKey(fieldName); err == nil {\n\t\t\tdelim := parseDelim(tpField.Tag.Get(\"delim\"))\n\t\t\tif err = setWithProperType(tpField.Type, key, field, delim, allowShadow, isStrict); err != nil {\n\t\t\t\treturn fmt.Errorf(\"error mapping field(%s): %v\", fieldName, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// MapTo maps section to given struct.\nfunc (s *Section) MapTo(v interface{}) error {\n\ttyp := reflect.TypeOf(v)\n\tval := reflect.ValueOf(v)\n\tif typ.Kind() == reflect.Ptr {\n\t\ttyp = typ.Elem()\n\t\tval = val.Elem()\n\t} else {\n\t\treturn errors.New(\"cannot map to non-pointer struct\")\n\t}\n\n\treturn s.mapTo(val, false)\n}\n\n// MapTo maps section to given struct in strict mode,\n// which returns all possible error including value parsing error.\nfunc (s *Section) StrictMapTo(v interface{}) error {\n\ttyp := reflect.TypeOf(v)\n\tval := reflect.ValueOf(v)\n\tif typ.Kind() == reflect.Ptr {\n\t\ttyp = typ.Elem()\n\t\tval = val.Elem()\n\t} else {\n\t\treturn errors.New(\"cannot map to non-pointer struct\")\n\t}\n\n\treturn s.mapTo(val, true)\n}\n\n// MapTo maps file to given struct.\nfunc (f *File) MapTo(v interface{}) error {\n\treturn f.Section(\"\").MapTo(v)\n}\n\n// MapTo maps file to given struct in strict mode,\n// which returns all possible error including value parsing error.\nfunc (f *File) StrictMapTo(v interface{}) error {\n\treturn f.Section(\"\").StrictMapTo(v)\n}\n\n// MapTo maps data sources to given struct with name mapper.\nfunc MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error {\n\tcfg, err := Load(source, others...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcfg.NameMapper = mapper\n\treturn cfg.MapTo(v)\n}\n\n// StrictMapToWithMapper maps data sources to given struct with name mapper in strict mode,\n// which returns all possible error including value parsing error.\nfunc StrictMapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error {\n\tcfg, err := Load(source, others...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcfg.NameMapper = mapper\n\treturn cfg.StrictMapTo(v)\n}\n\n// MapTo maps data sources to given struct.\nfunc MapTo(v, source interface{}, others ...interface{}) error {\n\treturn MapToWithMapper(v, nil, source, others...)\n}\n\n// StrictMapTo maps data sources to given struct in strict mode,\n// which returns all possible error including value parsing error.\nfunc StrictMapTo(v, source interface{}, others ...interface{}) error {\n\treturn StrictMapToWithMapper(v, nil, source, others...)\n}\n\n// reflectSliceWithProperType does the opposite thing as setSliceWithProperType.\nfunc reflectSliceWithProperType(key *Key, field reflect.Value, delim string) error {\n\tslice := field.Slice(0, field.Len())\n\tif field.Len() == 0 {\n\t\treturn nil\n\t}\n\n\tvar buf bytes.Buffer\n\tsliceOf := field.Type().Elem().Kind()\n\tfor i := 0; i < field.Len(); i++ {\n\t\tswitch sliceOf {\n\t\tcase reflect.String:\n\t\t\tbuf.WriteString(slice.Index(i).String())\n\t\tcase reflect.Int, reflect.Int64:\n\t\t\tbuf.WriteString(fmt.Sprint(slice.Index(i).Int()))\n\t\tcase reflect.Uint, reflect.Uint64:\n\t\t\tbuf.WriteString(fmt.Sprint(slice.Index(i).Uint()))\n\t\tcase reflect.Float64:\n\t\t\tbuf.WriteString(fmt.Sprint(slice.Index(i).Float()))\n\t\tcase reflectTime:\n\t\t\tbuf.WriteString(slice.Index(i).Interface().(time.Time).Format(time.RFC3339))\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unsupported type '[]%s'\", sliceOf)\n\t\t}\n\t\tbuf.WriteString(delim)\n\t}\n\tkey.SetValue(buf.String()[:buf.Len()-1])\n\treturn nil\n}\n\n// reflectWithProperType does the opposite thing as setWithProperType.\nfunc reflectWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string) error {\n\tswitch t.Kind() {\n\tcase reflect.String:\n\t\tkey.SetValue(field.String())\n\tcase reflect.Bool:\n\t\tkey.SetValue(fmt.Sprint(field.Bool()))\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tkey.SetValue(fmt.Sprint(field.Int()))\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tkey.SetValue(fmt.Sprint(field.Uint()))\n\tcase reflect.Float32, reflect.Float64:\n\t\tkey.SetValue(fmt.Sprint(field.Float()))\n\tcase reflectTime:\n\t\tkey.SetValue(fmt.Sprint(field.Interface().(time.Time).Format(time.RFC3339)))\n\tcase reflect.Slice:\n\t\treturn reflectSliceWithProperType(key, field, delim)\n\tdefault:\n\t\treturn fmt.Errorf(\"unsupported type '%s'\", t)\n\t}\n\treturn nil\n}\n\n// CR: copied from encoding/json/encode.go with modifications of time.Time support.\n// TODO: add more test coverage.\nfunc isEmptyValue(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflectTime:\n\t\tt, ok := v.Interface().(time.Time)\n\t\treturn ok && t.IsZero()\n\t}\n\treturn false\n}\n\nfunc (s *Section) reflectFrom(val reflect.Value) error {\n\tif val.Kind() == reflect.Ptr {\n\t\tval = val.Elem()\n\t}\n\ttyp := val.Type()\n\n\tfor i := 0; i < typ.NumField(); i++ {\n\t\tfield := val.Field(i)\n\t\ttpField := typ.Field(i)\n\n\t\ttag := tpField.Tag.Get(\"ini\")\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\topts := strings.SplitN(tag, \",\", 2)\n\t\tif len(opts) == 2 && opts[1] == \"omitempty\" && isEmptyValue(field) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfieldName := s.parseFieldName(tpField.Name, opts[0])\n\t\tif len(fieldName) == 0 || !field.CanSet() {\n\t\t\tcontinue\n\t\t}\n\n\t\tif (tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous) ||\n\t\t\t(tpField.Type.Kind() == reflect.Struct && tpField.Type.Name() != \"Time\") {\n\t\t\t// Note: The only error here is section doesn't exist.\n\t\t\tsec, err := s.f.GetSection(fieldName)\n\t\t\tif err != nil {\n\t\t\t\t// Note: fieldName can never be empty here, ignore error.\n\t\t\t\tsec, _ = s.f.NewSection(fieldName)\n\t\t\t}\n\n\t\t\t// Add comment from comment tag\n\t\t\tif len(sec.Comment) == 0 {\n\t\t\t\tsec.Comment = tpField.Tag.Get(\"comment\")\n\t\t\t}\n\n\t\t\tif err = sec.reflectFrom(field); err != nil {\n\t\t\t\treturn fmt.Errorf(\"error reflecting field (%s): %v\", fieldName, err)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Note: Same reason as secion.\n\t\tkey, err := s.GetKey(fieldName)\n\t\tif err != nil {\n\t\t\tkey, _ = s.NewKey(fieldName, \"\")\n\t\t}\n\n\t\t// Add comment from comment tag\n\t\tif len(key.Comment) == 0 {\n\t\t\tkey.Comment = tpField.Tag.Get(\"comment\")\n\t\t}\n\n\t\tif err = reflectWithProperType(tpField.Type, key, field, parseDelim(tpField.Tag.Get(\"delim\"))); err != nil {\n\t\t\treturn fmt.Errorf(\"error reflecting field (%s): %v\", fieldName, err)\n\t\t}\n\n\t}\n\treturn nil\n}\n\n// ReflectFrom reflects secion from given struct.\nfunc (s *Section) ReflectFrom(v interface{}) error {\n\ttyp := reflect.TypeOf(v)\n\tval := reflect.ValueOf(v)\n\tif typ.Kind() == reflect.Ptr {\n\t\ttyp = typ.Elem()\n\t\tval = val.Elem()\n\t} else {\n\t\treturn errors.New(\"cannot reflect from non-pointer struct\")\n\t}\n\n\treturn s.reflectFrom(val)\n}\n\n// ReflectFrom reflects file from given struct.\nfunc (f *File) ReflectFrom(v interface{}) error {\n\treturn f.Section(\"\").ReflectFrom(v)\n}\n\n// ReflectFrom reflects data sources from given struct with name mapper.\nfunc ReflectFromWithMapper(cfg *File, v interface{}, mapper NameMapper) error {\n\tcfg.NameMapper = mapper\n\treturn cfg.ReflectFrom(v)\n}\n\n// ReflectFrom reflects data sources from given struct.\nfunc ReflectFrom(cfg *File, v interface{}) error {\n\treturn ReflectFromWithMapper(cfg, v, nil)\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.editorconfig",
    "content": "# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 2\ntrim_trailing_whitespace = true\n\n# Set default charset\n[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]\ncharset = utf-8\n\n# Tab indentation (no size specified)\n[*.go]\nindent_style = tab\n\n[*.md]\ntrim_trailing_whitespace = false\n\n# Matches the exact files either package.json or .travis.yml\n[{package.json,.travis.yml}]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.gitignore",
    "content": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.travis.yml",
    "content": "after_success:\n- bash <(curl -s https://codecov.io/bash)\ngo:\n- '1.9'\n- 1.10.x\n- 1.11.x\ninstall:\n- go get -u github.com/stretchr/testify/assert\n- go get -u github.com/go-openapi/swag\nlanguage: go\nnotifications:\n  slack:\n    secure: a5VgoiwB1G/AZqzmephPZIhEB9avMlsWSlVnM1dSAtYAwdrQHGTQxAmpOxYIoSPDhWNN5bfZmjd29++UlTwLcHSR+e0kJhH6IfDlsHj/HplNCJ9tyI0zYc7XchtdKgeMxMzBKCzgwFXGSbQGydXTliDNBo0HOzmY3cou/daMFTP60K+offcjS+3LRAYb1EroSRXZqrk1nuF/xDL3792DZUdPMiFR/L/Df6y74D6/QP4sTkTDFQitz4Wy/7jbsfj8dG6qK2zivgV6/l+w4OVjFkxVpPXogDWY10vVXNVynqxfJ7to2d1I9lNCHE2ilBCkWMIPdyJF7hjF8pKW+82yP4EzRh0vu8Xn0HT5MZpQxdRY/YMxNrWaG7SxsoEaO4q5uhgdzAqLYY3TRa7MjIK+7Ur+aqOeTXn6OKwVi0CjvZ6mIU3WUKSwiwkFZMbjRAkSb5CYwMEfGFO/z964xz83qGt6WAtBXNotqCQpTIiKtDHQeLOMfksHImCg6JLhQcWBVxamVgu0G3Pdh8Y6DyPnxraXY95+QDavbjqv7TeYT9T/FNnrkXaTTK0s4iWE5H4ACU0Qvz0wUYgfQrZv0/Hp7V17+rabUwnzYySHCy9SWX/7OV9Cfh31iMp9ZIffr76xmmThtOEqs8TrTtU6BWI3rWwvA9cXQipZTVtL0oswrGw=\nscript:\n- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./...\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/README.md",
    "content": "# gojsonpointer [![Build Status](https://travis-ci.org/go-openapi/jsonpointer.svg?branch=master)](https://travis-ci.org/go-openapi/jsonpointer) [![codecov](https://codecov.io/gh/go-openapi/jsonpointer/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonpointer) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonpointer/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/jsonpointer?status.svg)](http://godoc.org/github.com/go-openapi/jsonpointer)\nAn implementation of JSON Pointer - Go language\n\n## Status\nCompleted YES\n\nTested YES\n\n## References\nhttp://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07\n\n### Note\nThe 4.Evaluation part of the previous reference, starting with 'If the currently referenced value is a JSON array, the reference token MUST contain either...' is not implemented.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/go.mod",
    "content": "module github.com/go-openapi/jsonpointer\n\nrequire (\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/go-openapi/swag v0.17.0\n\tgithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/stretchr/testify v1.2.2\n\tgopkg.in/yaml.v2 v2.2.1 // indirect\n)\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/go.sum",
    "content": "github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/go-openapi/swag v0.17.0 h1:7wu+dZ5k83kvUWeAb+WUkFiUhDzwGqzTR/NhWzeo1JU=\ngithub.com/go-openapi/swag v0.17.0/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/pointer.go",
    "content": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// author       sigu-399\n// author-github  https://github.com/sigu-399\n// author-mail    sigu.399@gmail.com\n//\n// repository-name  jsonpointer\n// repository-desc  An implementation of JSON Pointer - Go language\n//\n// description    Main and unique file.\n//\n// created        25-02-2013\n\npackage jsonpointer\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n)\n\nconst (\n\temptyPointer     = ``\n\tpointerSeparator = `/`\n\n\tinvalidStart = `JSON pointer must be empty or start with a \"` + pointerSeparator\n)\n\nvar jsonPointableType = reflect.TypeOf(new(JSONPointable)).Elem()\nvar jsonSetableType = reflect.TypeOf(new(JSONSetable)).Elem()\n\n// JSONPointable is an interface for structs to implement when they need to customize the\n// json pointer process\ntype JSONPointable interface {\n\tJSONLookup(string) (interface{}, error)\n}\n\n// JSONSetable is an interface for structs to implement when they need to customize the\n// json pointer process\ntype JSONSetable interface {\n\tJSONSet(string, interface{}) error\n}\n\n// New creates a new json pointer for the given string\nfunc New(jsonPointerString string) (Pointer, error) {\n\n\tvar p Pointer\n\terr := p.parse(jsonPointerString)\n\treturn p, err\n\n}\n\n// Pointer the json pointer reprsentation\ntype Pointer struct {\n\treferenceTokens []string\n}\n\n// \"Constructor\", parses the given string JSON pointer\nfunc (p *Pointer) parse(jsonPointerString string) error {\n\n\tvar err error\n\n\tif jsonPointerString != emptyPointer {\n\t\tif !strings.HasPrefix(jsonPointerString, pointerSeparator) {\n\t\t\terr = errors.New(invalidStart)\n\t\t} else {\n\t\t\treferenceTokens := strings.Split(jsonPointerString, pointerSeparator)\n\t\t\tfor _, referenceToken := range referenceTokens[1:] {\n\t\t\t\tp.referenceTokens = append(p.referenceTokens, referenceToken)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn err\n}\n\n// Get uses the pointer to retrieve a value from a JSON document\nfunc (p *Pointer) Get(document interface{}) (interface{}, reflect.Kind, error) {\n\treturn p.get(document, swag.DefaultJSONNameProvider)\n}\n\n// Set uses the pointer to set a value from a JSON document\nfunc (p *Pointer) Set(document interface{}, value interface{}) (interface{}, error) {\n\treturn document, p.set(document, value, swag.DefaultJSONNameProvider)\n}\n\n// GetForToken gets a value for a json pointer token 1 level deep\nfunc GetForToken(document interface{}, decodedToken string) (interface{}, reflect.Kind, error) {\n\treturn getSingleImpl(document, decodedToken, swag.DefaultJSONNameProvider)\n}\n\n// SetForToken gets a value for a json pointer token 1 level deep\nfunc SetForToken(document interface{}, decodedToken string, value interface{}) (interface{}, error) {\n\treturn document, setSingleImpl(document, value, decodedToken, swag.DefaultJSONNameProvider)\n}\n\nfunc getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.NameProvider) (interface{}, reflect.Kind, error) {\n\trValue := reflect.Indirect(reflect.ValueOf(node))\n\tkind := rValue.Kind()\n\n\tswitch kind {\n\n\tcase reflect.Struct:\n\t\tif rValue.Type().Implements(jsonPointableType) {\n\t\t\tr, err := node.(JSONPointable).JSONLookup(decodedToken)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, kind, err\n\t\t\t}\n\t\t\treturn r, kind, nil\n\t\t}\n\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\tif !ok {\n\t\t\treturn nil, kind, fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t}\n\t\tfld := rValue.FieldByName(nm)\n\t\treturn fld.Interface(), kind, nil\n\n\tcase reflect.Map:\n\t\tkv := reflect.ValueOf(decodedToken)\n\t\tmv := rValue.MapIndex(kv)\n\n\t\tif mv.IsValid() && !swag.IsZero(mv) {\n\t\t\treturn mv.Interface(), kind, nil\n\t\t}\n\t\treturn nil, kind, fmt.Errorf(\"object has no key %q\", decodedToken)\n\n\tcase reflect.Slice:\n\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\tif err != nil {\n\t\t\treturn nil, kind, err\n\t\t}\n\t\tsLength := rValue.Len()\n\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\treturn nil, kind, fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength-1, tokenIndex)\n\t\t}\n\n\t\telem := rValue.Index(tokenIndex)\n\t\treturn elem.Interface(), kind, nil\n\n\tdefault:\n\t\treturn nil, kind, fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t}\n\n}\n\nfunc setSingleImpl(node, data interface{}, decodedToken string, nameProvider *swag.NameProvider) error {\n\trValue := reflect.Indirect(reflect.ValueOf(node))\n\tswitch rValue.Kind() {\n\n\tcase reflect.Struct:\n\t\tif ns, ok := node.(JSONSetable); ok { // pointer impl\n\t\t\treturn ns.JSONSet(decodedToken, data)\n\t\t}\n\n\t\tif rValue.Type().Implements(jsonSetableType) {\n\t\t\treturn node.(JSONSetable).JSONSet(decodedToken, data)\n\t\t}\n\n\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t}\n\t\tfld := rValue.FieldByName(nm)\n\t\tif fld.IsValid() {\n\t\t\tfld.Set(reflect.ValueOf(data))\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Map:\n\t\tkv := reflect.ValueOf(decodedToken)\n\t\trValue.SetMapIndex(kv, reflect.ValueOf(data))\n\t\treturn nil\n\n\tcase reflect.Slice:\n\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsLength := rValue.Len()\n\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\treturn fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength, tokenIndex)\n\t\t}\n\n\t\telem := rValue.Index(tokenIndex)\n\t\tif !elem.CanSet() {\n\t\t\treturn fmt.Errorf(\"can't set slice index %s to %v\", decodedToken, data)\n\t\t}\n\t\telem.Set(reflect.ValueOf(data))\n\t\treturn nil\n\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t}\n\n}\n\nfunc (p *Pointer) get(node interface{}, nameProvider *swag.NameProvider) (interface{}, reflect.Kind, error) {\n\n\tif nameProvider == nil {\n\t\tnameProvider = swag.DefaultJSONNameProvider\n\t}\n\n\tkind := reflect.Invalid\n\n\t// Full document when empty\n\tif len(p.referenceTokens) == 0 {\n\t\treturn node, kind, nil\n\t}\n\n\tfor _, token := range p.referenceTokens {\n\n\t\tdecodedToken := Unescape(token)\n\n\t\tr, knd, err := getSingleImpl(node, decodedToken, nameProvider)\n\t\tif err != nil {\n\t\t\treturn nil, knd, err\n\t\t}\n\t\tnode, kind = r, knd\n\n\t}\n\n\trValue := reflect.ValueOf(node)\n\tkind = rValue.Kind()\n\n\treturn node, kind, nil\n}\n\nfunc (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) error {\n\tknd := reflect.ValueOf(node).Kind()\n\n\tif knd != reflect.Ptr && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {\n\t\treturn fmt.Errorf(\"only structs, pointers, maps and slices are supported for setting values\")\n\t}\n\n\tif nameProvider == nil {\n\t\tnameProvider = swag.DefaultJSONNameProvider\n\t}\n\n\t// Full document when empty\n\tif len(p.referenceTokens) == 0 {\n\t\treturn nil\n\t}\n\n\tlastI := len(p.referenceTokens) - 1\n\tfor i, token := range p.referenceTokens {\n\t\tisLastToken := i == lastI\n\t\tdecodedToken := Unescape(token)\n\n\t\tif isLastToken {\n\n\t\t\treturn setSingleImpl(node, data, decodedToken, nameProvider)\n\t\t}\n\n\t\trValue := reflect.Indirect(reflect.ValueOf(node))\n\t\tkind := rValue.Kind()\n\n\t\tswitch kind {\n\n\t\tcase reflect.Struct:\n\t\t\tif rValue.Type().Implements(jsonPointableType) {\n\t\t\t\tr, err := node.(JSONPointable).JSONLookup(decodedToken)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tfld := reflect.ValueOf(r)\n\t\t\t\tif fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {\n\t\t\t\t\tnode = fld.Addr().Interface()\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tnode = r\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t\t}\n\t\t\tfld := rValue.FieldByName(nm)\n\t\t\tif fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {\n\t\t\t\tnode = fld.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = fld.Interface()\n\n\t\tcase reflect.Map:\n\t\t\tkv := reflect.ValueOf(decodedToken)\n\t\t\tmv := rValue.MapIndex(kv)\n\n\t\t\tif !mv.IsValid() {\n\t\t\t\treturn fmt.Errorf(\"object has no key %q\", decodedToken)\n\t\t\t}\n\t\t\tif mv.CanAddr() && mv.Kind() != reflect.Interface && mv.Kind() != reflect.Map && mv.Kind() != reflect.Slice && mv.Kind() != reflect.Ptr {\n\t\t\t\tnode = mv.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = mv.Interface()\n\n\t\tcase reflect.Slice:\n\t\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tsLength := rValue.Len()\n\t\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\t\treturn fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength, tokenIndex)\n\t\t\t}\n\n\t\t\telem := rValue.Index(tokenIndex)\n\t\t\tif elem.CanAddr() && elem.Kind() != reflect.Interface && elem.Kind() != reflect.Map && elem.Kind() != reflect.Slice && elem.Kind() != reflect.Ptr {\n\t\t\t\tnode = elem.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = elem.Interface()\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t\t}\n\n\t}\n\n\treturn nil\n}\n\n// DecodedTokens returns the decoded tokens\nfunc (p *Pointer) DecodedTokens() []string {\n\tresult := make([]string, 0, len(p.referenceTokens))\n\tfor _, t := range p.referenceTokens {\n\t\tresult = append(result, Unescape(t))\n\t}\n\treturn result\n}\n\n// IsEmpty returns true if this is an empty json pointer\n// this indicates that it points to the root document\nfunc (p *Pointer) IsEmpty() bool {\n\treturn len(p.referenceTokens) == 0\n}\n\n// Pointer to string representation function\nfunc (p *Pointer) String() string {\n\n\tif len(p.referenceTokens) == 0 {\n\t\treturn emptyPointer\n\t}\n\n\tpointerString := pointerSeparator + strings.Join(p.referenceTokens, pointerSeparator)\n\n\treturn pointerString\n}\n\n// Specific JSON pointer encoding here\n// ~0 => ~\n// ~1 => /\n// ... and vice versa\n\nconst (\n\tencRefTok0 = `~0`\n\tencRefTok1 = `~1`\n\tdecRefTok0 = `~`\n\tdecRefTok1 = `/`\n)\n\n// Unescape unescapes a json pointer reference token string to the original representation\nfunc Unescape(token string) string {\n\tstep1 := strings.Replace(token, encRefTok1, decRefTok1, -1)\n\tstep2 := strings.Replace(step1, encRefTok0, decRefTok0, -1)\n\treturn step2\n}\n\n// Escape escapes a pointer reference token string\nfunc Escape(token string) string {\n\tstep1 := strings.Replace(token, decRefTok0, encRefTok0, -1)\n\tstep2 := strings.Replace(step1, decRefTok1, encRefTok1, -1)\n\treturn step2\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.gitignore",
    "content": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.travis.yml",
    "content": "after_success:\n- bash <(curl -s https://codecov.io/bash)\ngo:\n- '1.9'\n- 1.10.x\n- 1.11.x\ninstall:\n- go get -u github.com/stretchr/testify/assert\n- go get -u github.com/PuerkitoBio/purell\n- go get -u github.com/go-openapi/jsonpointer\nlanguage: go\nnotifications:\n  slack:\n    secure: OpQG/36F7DSF00HLm9WZMhyqFCYYyYTsVDObW226cWiR8PWYiNfLZiSEvIzT1Gx4dDjhigKTIqcLhG34CkL5iNXDjm9Yyo2RYhQPlK8NErNqUEXuBqn4RqYHW48VGhEhOyDd4Ei0E2FN5ZbgpvHgtpkdZ6XDi64r3Ac89isP9aPHXQTuv2Jog6b4/OKKiUTftLcTIst0p4Cp3gqOJWf1wnoj+IadWiECNVQT6zb47IYjtyw6+uV8iUjTzdKcRB6Zc6b4Dq7JAg1Zd7Jfxkql3hlKp4PNlRf9Cy7y5iA3G7MLyg3FcPX5z2kmcyPt2jOTRMBWUJ5zIQpOxizAcN8WsT3WWBL5KbuYK6k0PzujrIDLqdxGpNmjkkMfDBT9cKmZpm2FdW+oZgPFJP+oKmAo4u4KJz/vjiPTXgQlN5bmrLuRMCp+AwC5wkIohTqWZVPE2TK6ZSnMYcg/W39s+RP/9mJoyryAvPSpBOLTI+biCgaUCTOAZxNTWpMFc3tPYntc41WWkdKcooZ9JA5DwfcaVFyTGQ3YXz+HvX6G1z/gW0Q/A4dBi9mj2iE1xm7tRTT+4VQ2AXFvSEI1HJpfPgYnwAtwOD1v3Qm2EUHk9sCdtEDR4wVGEPIVn44GnwFMnGKx9JWppMPYwFu3SVDdHt+E+LOlhZUply11Aa+IVrT2KUQ=\nscript:\n- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./...\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/README.md",
    "content": "# gojsonreference [![Build Status](https://travis-ci.org/go-openapi/jsonreference.svg?branch=master)](https://travis-ci.org/go-openapi/jsonreference) [![codecov](https://codecov.io/gh/go-openapi/jsonreference/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonreference) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonreference/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/jsonreference?status.svg)](http://godoc.org/github.com/go-openapi/jsonreference)\nAn implementation of JSON Reference - Go language\n\n## Status\nWork in progress ( 90% done )\n\n## Dependencies\nhttps://github.com/go-openapi/jsonpointer\n\n## References\nhttp://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07\n\nhttp://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/go.mod",
    "content": "module github.com/go-openapi/jsonreference\n\nrequire (\n\tgithub.com/PuerkitoBio/purell v1.1.0\n\tgithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/go-openapi/jsonpointer v0.17.0\n\tgithub.com/go-openapi/swag v0.17.0 // indirect\n\tgithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/stretchr/testify v1.2.2\n\tgolang.org/x/net v0.0.0-20181005035420-146acd28ed58 // indirect\n\tgolang.org/x/text v0.3.0 // indirect\n\tgopkg.in/yaml.v2 v2.2.1 // indirect\n)\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/go.sum",
    "content": "github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=\ngithub.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/go-openapi/jsonpointer v0.17.0 h1:Bpl2DtZ6k7wKqfFs7e+4P08+M9I3FQgn09a1UsRUQbk=\ngithub.com/go-openapi/jsonpointer v0.17.0/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=\ngithub.com/go-openapi/swag v0.17.0 h1:7wu+dZ5k83kvUWeAb+WUkFiUhDzwGqzTR/NhWzeo1JU=\ngithub.com/go-openapi/swag v0.17.0/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58 h1:otZG8yDCO4LVps5+9bxOeNiCvgmOyt96J3roHTYs7oE=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/reference.go",
    "content": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// author       sigu-399\n// author-github  https://github.com/sigu-399\n// author-mail    sigu.399@gmail.com\n//\n// repository-name  jsonreference\n// repository-desc  An implementation of JSON Reference - Go language\n//\n// description    Main and unique file.\n//\n// created        26-02-2013\n\npackage jsonreference\n\nimport (\n\t\"errors\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/PuerkitoBio/purell\"\n\t\"github.com/go-openapi/jsonpointer\"\n)\n\nconst (\n\tfragmentRune = `#`\n)\n\n// New creates a new reference for the given string\nfunc New(jsonReferenceString string) (Ref, error) {\n\n\tvar r Ref\n\terr := r.parse(jsonReferenceString)\n\treturn r, err\n\n}\n\n// MustCreateRef parses the ref string and panics when it's invalid.\n// Use the New method for a version that returns an error\nfunc MustCreateRef(ref string) Ref {\n\tr, err := New(ref)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn r\n}\n\n// Ref represents a json reference object\ntype Ref struct {\n\treferenceURL     *url.URL\n\treferencePointer jsonpointer.Pointer\n\n\tHasFullURL      bool\n\tHasURLPathOnly  bool\n\tHasFragmentOnly bool\n\tHasFileScheme   bool\n\tHasFullFilePath bool\n}\n\n// GetURL gets the URL for this reference\nfunc (r *Ref) GetURL() *url.URL {\n\treturn r.referenceURL\n}\n\n// GetPointer gets the json pointer for this reference\nfunc (r *Ref) GetPointer() *jsonpointer.Pointer {\n\treturn &r.referencePointer\n}\n\n// String returns the best version of the url for this reference\nfunc (r *Ref) String() string {\n\n\tif r.referenceURL != nil {\n\t\treturn r.referenceURL.String()\n\t}\n\n\tif r.HasFragmentOnly {\n\t\treturn fragmentRune + r.referencePointer.String()\n\t}\n\n\treturn r.referencePointer.String()\n}\n\n// IsRoot returns true if this reference is a root document\nfunc (r *Ref) IsRoot() bool {\n\treturn r.referenceURL != nil &&\n\t\t!r.IsCanonical() &&\n\t\t!r.HasURLPathOnly &&\n\t\tr.referenceURL.Fragment == \"\"\n}\n\n// IsCanonical returns true when this pointer starts with http(s):// or file://\nfunc (r *Ref) IsCanonical() bool {\n\treturn (r.HasFileScheme && r.HasFullFilePath) || (!r.HasFileScheme && r.HasFullURL)\n}\n\n// \"Constructor\", parses the given string JSON reference\nfunc (r *Ref) parse(jsonReferenceString string) error {\n\n\tparsed, err := url.Parse(jsonReferenceString)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tr.referenceURL, _ = url.Parse(purell.NormalizeURL(parsed, purell.FlagsSafe|purell.FlagRemoveDuplicateSlashes))\n\trefURL := r.referenceURL\n\n\tif refURL.Scheme != \"\" && refURL.Host != \"\" {\n\t\tr.HasFullURL = true\n\t} else {\n\t\tif refURL.Path != \"\" {\n\t\t\tr.HasURLPathOnly = true\n\t\t} else if refURL.RawQuery == \"\" && refURL.Fragment != \"\" {\n\t\t\tr.HasFragmentOnly = true\n\t\t}\n\t}\n\n\tr.HasFileScheme = refURL.Scheme == \"file\"\n\tr.HasFullFilePath = strings.HasPrefix(refURL.Path, \"/\")\n\n\t// invalid json-pointer error means url has no json-pointer fragment. simply ignore error\n\tr.referencePointer, _ = jsonpointer.New(refURL.Fragment)\n\n\treturn nil\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tchildURL := child.GetURL()\n\tparentURL := r.GetURL()\n\tif childURL == nil {\n\t\treturn nil, errors.New(\"child url is nil\")\n\t}\n\tif parentURL == nil {\n\t\treturn &child, nil\n\t}\n\n\tref, err := New(parentURL.ResolveReference(childURL).String())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ref, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/.editorconfig",
    "content": "# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 2\ntrim_trailing_whitespace = true\n\n# Set default charset\n[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]\ncharset = utf-8\n\n# Tab indentation (no size specified)\n[*.go]\nindent_style = tab\n\n[*.md]\ntrim_trailing_whitespace = false\n\n# Matches the exact files either package.json or .travis.yml\n[{package.json,.travis.yml}]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/.gitignore",
    "content": "secrets.yml\ncoverage.out\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/.golangci.yml",
    "content": "linters-settings:\n  govet:\n    check-shadowing: true\n  golint:\n    min-confidence: 0\n  gocyclo:\n    min-complexity: 45\n  maligned:\n    suggest-new: true\n  dupl:\n    threshold: 100\n  goconst:\n    min-len: 2\n    min-occurrences: 2\n\nlinters:\n  enable-all: true\n  disable:\n    - maligned\n    - unparam\n    - lll\n    - gochecknoinits\n    - gochecknoglobals\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/.travis.yml",
    "content": "after_success:\n- bash <(curl -s https://codecov.io/bash)\ngo:\n- '1.9'\n- 1.10.x\n- 1.11.x\ninstall:\n- go get -u github.com/stretchr/testify\n- go get -u github.com/go-openapi/swag\n- go get -u gopkg.in/yaml.v2\n- go get -u github.com/go-openapi/jsonpointer\n- go get -u github.com/go-openapi/jsonreference\nlanguage: go\nnotifications:\n  slack:\n    secure: QUWvCkBBK09GF7YtEvHHVt70JOkdlNBG0nIKu/5qc4/nW5HP8I2w0SEf/XR2je0eED1Qe3L/AfMCWwrEj+IUZc3l4v+ju8X8R3Lomhme0Eb0jd1MTMCuPcBT47YCj0M7RON7vXtbFfm1hFJ/jLe5+9FXz0hpXsR24PJc5ZIi/ogNwkaPqG4BmndzecpSh0vc2FJPZUD9LT0I09REY/vXR0oQAalLkW0asGD5taHZTUZq/kBpsNxaAFrLM23i4mUcf33M5fjLpvx5LRICrX/57XpBrDh2TooBU6Qj3CgoY0uPRYUmSNxbVx1czNzl2JtEpb5yjoxfVPQeg0BvQM00G8LJINISR+ohrjhkZmAqchDupAX+yFrxTtORa78CtnIL6z/aTNlgwwVD8kvL/1pFA/JWYmKDmz93mV/+6wubGzNSQCstzjkFA4/iZEKewKUoRIAi/fxyscP6L/rCpmY/4llZZvrnyTqVbt6URWpopUpH4rwYqreXAtJxJsfBJIeSmUIiDIOMGkCTvyTEW3fWGmGoqWtSHLoaWDyAIGb7azb+KvfpWtEcoPFWfSWU+LGee0A/YsUhBl7ADB9A0CJEuR8q4BPpKpfLwPKSiKSAXL7zDkyjExyhtgqbSl2jS+rKIHOZNL8JkCcTP2MKMVd563C5rC5FMKqu3S9m2b6380E=\nscript:\n- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./...\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/README.md",
    "content": "# OAI object model [![Build Status](https://travis-ci.org/go-openapi/spec.svg?branch=master)](https://travis-ci.org/go-openapi/spec) [![codecov](https://codecov.io/gh/go-openapi/spec/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/spec) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/spec/master/LICENSE)\n[![GoDoc](https://godoc.org/github.com/go-openapi/spec?status.svg)](http://godoc.org/github.com/go-openapi/spec)\n[![GolangCI](https://golangci.com/badges/github.com/go-openapi/spec.svg)](https://golangci.com)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/spec)](https://goreportcard.com/report/github.com/go-openapi/spec)\n\nThe object model for OpenAPI specification documents.\n\nCurrently supports Swagger 2.0.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/bindata.go",
    "content": "// Code generated by go-bindata. DO NOT EDIT.\n// sources:\n// schemas/jsonschema-draft-04.json (4.357kB)\n// schemas/v2/schema.json (40.249kB)\n\npackage spec\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"crypto/sha256\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n)\n\nfunc bindataRead(data []byte, name string) ([]byte, error) {\n\tgz, err := gzip.NewReader(bytes.NewBuffer(data))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Read %q: %v\", name, err)\n\t}\n\n\tvar buf bytes.Buffer\n\t_, err = io.Copy(&buf, gz)\n\tclErr := gz.Close()\n\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Read %q: %v\", name, err)\n\t}\n\tif clErr != nil {\n\t\treturn nil, err\n\t}\n\n\treturn buf.Bytes(), nil\n}\n\ntype asset struct {\n\tbytes  []byte\n\tinfo   os.FileInfo\n\tdigest [sha256.Size]byte\n}\n\ntype bindataFileInfo struct {\n\tname    string\n\tsize    int64\n\tmode    os.FileMode\n\tmodTime time.Time\n}\n\nfunc (fi bindataFileInfo) Name() string {\n\treturn fi.name\n}\nfunc (fi bindataFileInfo) Size() int64 {\n\treturn fi.size\n}\nfunc (fi bindataFileInfo) Mode() os.FileMode {\n\treturn fi.mode\n}\nfunc (fi bindataFileInfo) ModTime() time.Time {\n\treturn fi.modTime\n}\nfunc (fi bindataFileInfo) IsDir() bool {\n\treturn false\n}\nfunc (fi bindataFileInfo) Sys() interface{} {\n\treturn nil\n}\n\nvar _jsonschemaDraft04JSON = []byte(\"\\x1f\\x8b\\x08\\x00\\x00\\x00\\x00\\x00\\x00\\xff\\xc4\\x57\\x3d\\x6f\\xdb\\x3c\\x10\\xde\\xf3\\x2b\\x08\\x26\\x63\\xf2\\x2a\\x2f\\xd0\\xc9\\x5b\\xd1\\x2e\\x01\\x5a\\x34\\x43\\x37\\x23\\x03\\x6d\\x9d\\x6c\\x06\\x14\\xa9\\x50\\x54\\x60\\xc3\\xd0\\x7f\\x2f\\x28\\x4a\\x14\\x29\\x91\\x92\\x2d\\xa7\\x8d\\x97\\x28\\xbc\\xaf\\xe7\\x8e\\xf7\\xc5\\xd3\\x0d\\x42\\x08\\x61\\x9a\\xe2\\x15\\xc2\\x7b\\xa5\\x8a\\x55\\x92\\xbc\\x96\\x82\\x3f\\x94\\xdb\\x3d\\xe4\\xe4\\x3f\\x21\\x77\\x49\\x2a\\x49\\xa6\\x1e\\x1e\\xbf\\x24\\xe6\\xec\\x16\\xdf\\x1b\\xa1\\x3b\\xf3\\xff\\x02\\xc9\\x14\\xca\\xad\\xa4\\x85\\xa2\\x82\\x6b\\xe9\\x6f\\x42\\x02\\x32\\x2c\\x28\\x07\\x45\\x5a\\x15\\x3d\\x77\\x46\\x39\\xd5\\xcc\\x25\\x5e\\x21\\x83\\xb8\\x21\\x18\\xb6\\xaf\\x52\\x92\\xa3\\x47\\x68\\x88\\xea\\x58\\x80\\x56\\x4e\\x1a\\xf2\\xbd\\x4f\\xcc\\x29\\x7f\\x52\\x90\\x6b\\x7d\\xff\\x0f\\x48\\xb4\\x3d\\x3f\\x21\\x7c\\x27\\x21\\xd3\\x2a\\x6e\\x31\\xaa\\x2d\\x53\\xdd\\xf3\\xe3\\x42\\x94\\x54\\xd1\\x77\\x78\\xe2\\x0a\\x76\\x20\\xe3\\x20\\x68\\xcb\\x30\\x86\\x41\\xf3\\x2a\\xc7\\x2b\\xf4\\x78\\x8e\\xfe\\xef\\x90\\x91\\x8a\\xa9\\xc7\\xb1\\x1d\\xc2\\xd8\\x2f\\x0d\\x75\\xed\\xc1\\x4e\\x9c\\xc8\\x25\\x43\\xac\\xa8\\xbe\\xd7\\xcc\\xa9\\xd1\\xa9\\x21\\xa0\\x1a\\xbd\\x04\\x61\\x94\\x34\\x2f\\x18\\xfc\\x3e\\x16\\x50\\x8e\\x4d\\x03\\x6f\\x1c\\x58\\xdb\\x48\\x23\\xbc\\x11\\x82\\x01\\xe1\\xfa\\xd3\\x3a\\x8e\\x30\\xaf\\x18\\x33\\x7f\\xf3\\x8d\\x39\\x11\\x9b\\x57\\xd8\\x2a\\xfd\\x55\\x2a\\x49\\xf9\\x0e\\xc7\\xec\\x37\\xd4\\x25\\xf7\\xec\\x5c\\x66\\xc7\\xd7\\x99\\xaa\\xcf\\x4f\\x89\\x8a\\xd3\\xb7\\x0a\\x3a\\xaa\\x92\\x15\\xf4\\x30\\x6f\\x1c\\xb0\\xd6\\x46\\xe7\\x98\\x39\\x2d\\xa4\\x28\\x40\\x2a\\x3a\\x88\\x9e\\x29\\xba\\x88\\x37\\x2d\\xca\\x60\\x38\\xfa\\xba\\x5b\\x20\\xac\\xa8\\x62\\xb0\\x4c\\xd4\\xaf\\xda\\x45\\x0a\\xba\\x5c\\x3b\\xb9\\xc7\\x79\\xc5\\x14\\x2d\\x18\\x34\\x19\\x1c\\x51\\xdb\\x25\\x4d\\xb4\\x7e\\x06\\x14\\x38\\x6c\\x59\\x55\\xd2\\x77\\xf8\\x69\\x59\\xfc\\x7b\\x73\\xed\\x93\\x43\\xcb\\x32\\x6d\\x3c\\x28\\xdc\\x1b\\x9a\\xd3\\x62\\xab\\xc2\\x27\\xf7\\x41\\xc9\\x08\\x2b\\x23\\x08\\xad\\x13\\x57\\x21\\x9c\\xd3\\x72\\x0d\\x42\\x72\\xf8\\x01\\x7c\\xa7\\xf6\\x83\\xce\\x39\\xd7\\x82\\x3c\\x1f\\x2f\\xd6\\x60\\x1b\\xa2\\xdf\\x35\\x89\\x52\\x20\\xe7\\x73\\x74\\xe0\\x66\\x26\\x64\\x4e\\xb4\\x97\\x58\\xc2\\x0e\\x0e\\xe1\\x60\\x92\\x34\\x6d\\xa0\\x10\\xd6\\xb5\\x83\\x61\\x27\\xe6\\x47\\xd3\\x89\\xbd\\x63\\xfd\\x3b\\x8d\\x03\\x3d\\x6c\\x42\\x2d\\x5b\\x70\\xee\\xe8\\xdf\\x4b\\xf4\\x66\\x4e\\xe1\\x01\\x45\\x17\\x80\\x74\\xad\\x4f\\xc3\\xf3\\xae\\xc6\\x1d\\xc6\\xd7\\xc2\\xce\\xc9\\xe1\\x29\\x30\\x86\\x2f\\x4a\\xa6\\x4b\\x15\\x84\\x73\\xc9\\x6f\\xfd\\x7f\\xa5\\x6e\\x9e\\xbd\\xf1\\xb0\\xd4\\xdd\\x45\\x5a\\xc2\\x3e\\x4b\\x78\\xab\\xa8\\x84\\x74\\x4a\\x91\\x3b\\x92\\x23\\x05\\xf2\\x1c\\x1e\\x7b\\xf3\\x09\\xf8\\xcf\\xab\\x24\\xb6\\x60\\xa2\\xe8\\x4c\\x9f\\x75\\x77\\xaa\\x8c\\xe6\\x01\\x45\\x36\\x86\\xcf\\xc3\\x63\\x3a\\xea\\xd4\\x8d\\x7e\\x06\\xac\\x14\\x0a\\xe0\\x29\\xf0\\xed\\x07\\x22\\x1a\\x65\\xda\\x44\\xae\\xa2\\x73\\x1a\\xe6\\x90\\x69\\xa2\\x8c\\x46\\xb2\\x2f\\xde\\x49\\x38\\x08\\xed\\xfe\\xfd\\x41\\xaf\\x9f\\xa9\\x55\\xd7\\xdd\\x22\\x8d\\xfa\\x45\\x63\\xc5\\x0f\\x80\\xf3\\xb4\\x08\\xd6\\x79\\x30\\x9e\\x93\\xee\\x59\\xa6\\xd0\\x4b\\xee\\x22\\xe3\\x33\\xc1\\x3a\\x27\\x68\\x36\\x78\\x7e\\x87\\x0a\\x06\\xd5\\x2e\\x20\\xd3\\xaf\\x15\\xfb\\xd8\\x3b\\x73\\x14\\xbb\\x92\\xed\\x05\\x5d\\x2e\\x29\\x38\\x2c\\x94\\xe4\\x42\\x45\\x5e\\xd3\\xb5\\x7d\\xdf\\x47\\xca\\x38\\xb4\\x5c\\xaf\\xfb\\x7d\\xdd\\x6d\\xf4\\xa1\\x2d\\x77\\xdd\\x2f\\xce\\x6d\\xc4\\x7b\\x8b\\x4e\\x67\\xa9\\x6f\\xfe\\x04\\x00\\x00\\xff\\xff\\xb1\\xd1\\x27\\x78\\x05\\x11\\x00\\x00\")\n\nfunc jsonschemaDraft04JSONBytes() ([]byte, error) {\n\treturn bindataRead(\n\t\t_jsonschemaDraft04JSON,\n\t\t\"jsonschema-draft-04.json\",\n\t)\n}\n\nfunc jsonschemaDraft04JSON() (*asset, error) {\n\tbytes, err := jsonschemaDraft04JSONBytes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfo := bindataFileInfo{name: \"jsonschema-draft-04.json\", size: 4357, mode: os.FileMode(436), modTime: time.Unix(1540282154, 0)}\n\ta := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe1, 0x48, 0x9d, 0xb, 0x47, 0x55, 0xf0, 0x27, 0x93, 0x30, 0x25, 0x91, 0xd3, 0xfc, 0xb8, 0xf0, 0x7b, 0x68, 0x93, 0xa8, 0x2a, 0x94, 0xf2, 0x48, 0x95, 0xf8, 0xe4, 0xed, 0xf1, 0x1b, 0x82, 0xe2}}\n\treturn a, nil\n}\n\nvar _v2SchemaJSON = []byte(\"\\x1f\\x8b\\x08\\x00\\x00\\x00\\x00\\x00\\x00\\xff\\xec\\x5d\\x4f\\x93\\xdb\\x36\\xb2\\xbf\\xfb\\x53\\xa0\\x14\\x57\\xd9\\xae\\xd8\\x92\\xe3\\xf7\\x2e\\xcf\\x97\\xd4\\xbc\\xd8\\x49\\x66\\x37\\x5e\\x4f\\x79\\x26\\xbb\\x87\\x78\\x5c\\x05\\x91\\x2d\\x09\\x09\\x09\\x30\\x00\\x38\\x33\\x5a\\xef\\x7c\\xf7\\x2d\\xf0\\x9f\\x08\\x02\\x20\\x41\\x8a\\xd2\\xc8\\x0e\\x0f\\xa9\\x78\\x28\\xa0\\xd1\\xdd\\x68\\x34\\x7e\\xdd\\xf8\\xf7\\xf9\\x11\\x42\\x33\\x49\\x64\\x04\\xb3\\xd7\\x68\\x76\\x86\\xfe\\x76\\xf9\\xfe\\x1f\\xe8\\x32\\xd8\\x40\\x8c\\xd1\\x8a\\x71\\x74\\x79\\x8b\\xd7\\x6b\\xe0\\xe8\\xd5\\xfc\\x25\\x3a\\xbb\\x38\\x9f\\xcf\\x9e\\xab\\x0a\\x24\\x54\\xa5\\x37\\x52\\x26\\xaf\\x17\\x0b\\x91\\x17\\x99\\x13\\xb6\\xb8\\x79\\xb5\\x10\\x59\\xdd\\xf9\\xef\\x82\\xd1\\x6f\\xf2\\xc2\\x8f\\xf3\\x4f\\xb5\\x1a\\xea\\xc7\\x17\\x45\\x41\\xc6\\xd7\\x8b\\x90\\xe3\\x95\\x7c\\xf1\\xf2\\x7f\\x8b\\xca\\x45\\x3d\\xb9\\x4d\\x32\\xa6\\xd8\\xf2\\x77\\x08\\x64\\xfe\\x8d\\xc3\\x9f\\x29\\xe1\\xa0\\x9a\\xff\\xed\\x11\\x42\\x08\\xcd\\x8a\\xd6\\xb3\\x9f\\x15\\x67\\x74\\xc5\\xca\\x7f\\x27\\x58\\x6e\\xc4\\xec\\x11\\x42\\xd7\\x59\\x5d\\x1c\\x86\\x44\\x12\\x46\\x71\\x74\\xc1\\x59\\x02\\x5c\\x12\\x10\\xb3\\xd7\\x68\\x85\\x23\\x01\\x59\\x81\\x04\\x4b\\x09\\x9c\\x6a\\xbf\\x7e\\xce\\x49\\x7d\\xba\\x7b\\x51\\xfd\\xa1\\x44\\xe2\\xb0\\x52\\xac\\x7d\\xb3\\x08\\x61\\x45\\x68\\x46\\x56\\x2c\\x6e\\x80\\x86\\x8c\\xbf\\xbd\\x93\\x40\\x05\\x61\\x74\\x96\\x95\\xbe\\x7f\\x84\\xd0\\x7d\\x4e\\xde\\x42\\xb7\\xe4\\xbe\\x46\\xbb\\x14\\x5b\\x48\\x4e\\xe8\\xba\\x90\\x05\\xa1\\x19\\xd0\\x34\\xae\\xc4\\xce\\xbe\\xbc\\x9a\\xbf\\x9c\\x15\\x7f\\x5d\\x57\\xc5\\x42\\x10\\x01\\x27\\x89\\xe2\\x48\\x51\\xb9\\xda\\x40\\xd5\\x87\\x37\\xc0\\x15\\x5f\\x88\\xad\\x90\\xdc\\x10\\x81\\x42\\x16\\xa4\\x31\\x50\\x39\\x2f\\x38\\xad\\xab\\xb0\\x53\\xd8\\xac\\x94\\x56\\x6f\\xc3\\x84\\xf4\\x11\\xa4\\x50\\xb3\\xfa\\xe9\\xd3\\x6f\\x9f\\x3e\\xdf\\x2f\\xd0\\xeb\\x8f\\x1f\\x3f\\x7e\\xbc\\xfe\\xf6\\xe9\\xf7\\xaf\\x5f\\x7f\\xfc\\x18\\x7e\\xfb\\xec\\xfb\\xc7\\xb3\\x36\\x79\\x54\\x43\\xe8\\x29\\xc5\\x31\\x20\\xc6\\x11\\x49\\x9e\\xe5\\x12\\x41\\x66\\xa0\\xe8\\xed\\x1d\\x8e\\x93\\x08\\x5e\\xa3\\x27\\x3b\\xc3\\x7c\\xa2\\x73\\xba\\xc4\\x02\\x2e\\xb0\\xdc\\xf4\\xe5\\x76\\xd1\\xca\\x96\\xa2\\x8a\\x94\\xcd\\x21\\xc9\\x6c\\xec\\x2c\\x70\\x42\\x9e\\x34\\x74\\x9d\\x19\\x7c\\xcd\\x20\\x9c\\xea\\x2e\\x0a\\xfe\\x42\\x84\\xd4\\x29\\x04\\x8c\\x8a\\xb4\\x41\\xa2\\xc1\\xdc\\x19\\x8a\\x88\\x90\\x4a\\x49\\xef\\xce\\xdf\\xbd\\x45\\x4a\\x52\\x81\\x70\\x10\\x40\\x22\\x21\\x44\\xcb\\x6d\\xc5\\xec\\x4e\\x3c\\x1c\\x45\\xef\\x57\\x9a\\xb5\\x7d\\xae\\xfe\\xe5\\xe4\\x31\\x86\\x90\\xe0\\xab\\x6d\\x02\\x3b\\x2e\\xcb\\x11\\x90\\xd9\\xa8\\xc6\\x77\\xc2\\x59\\x98\\x06\\xfd\\xf9\\x2e\\x78\\x45\\x01\\xa6\\xa8\\xa0\\x71\\x5c\\xbe\\x33\\xa7\\xd2\\xd9\\x5f\\x95\\xef\\xd9\\xd5\\xac\\xfd\\xdc\\x5d\\xbf\\x5e\\xb8\\xd1\\x3e\\xc7\\x31\\x48\\xe0\\x5e\\x4c\\x14\\x65\\xdf\\xb8\\xa8\\x71\\x10\\x09\\xa3\\xc2\\xc7\\x02\\xcb\\xa2\\x4e\\x5a\\x02\\x82\\x94\\x13\\xb9\\xf5\\x30\\xe6\\xb2\\xa4\\xb5\\xfe\\x9b\\x3e\\x7a\\xb2\\x55\\xd2\\xa8\\x4a\\xbc\\x16\\xb6\\x71\\x8e\\x39\\xc7\\xdb\\x9d\\xe1\\x10\\x09\\x71\\xbd\\x9c\\xb3\\x41\\x89\\xd7\\xa5\\x89\\xdc\\x57\\xb5\\x53\\x4a\\xfe\\x4c\\xe1\\xbc\\xa0\\x21\\x79\\x0a\\x1a\\x0f\\x70\\xa7\\x5c\\x08\\x8e\\xde\\xb0\\xc0\\x43\\x24\\xad\\x74\\x63\\x0e\\xb1\\xd9\\x90\\xe1\\xb0\\x2d\\x13\\xa7\\x6d\\x78\\xfd\\x04\\x14\\x38\\x8e\\x90\\xaa\\xce\\x63\\xac\\x3e\\x23\\xbc\\x64\\xa9\\xb4\\xf8\\x03\\x63\\xde\\xcd\\xbe\\x16\\x13\\x4a\\x55\\xac\\x82\\x12\\xc6\\xac\\xd4\\x35\\xf7\\x22\\xd4\\x3a\\xff\\x22\\x73\\x0e\\x6e\\x51\\xa0\\x75\\x1e\\xae\\x8f\\xe8\\x5d\\xc7\\x59\\xe6\\xe4\\x9a\\x18\\x8d\\xd6\\x1c\\x53\\x84\\x4d\\xb7\\x67\\x28\\x37\\x09\\x84\\x69\\x88\\x12\\x0e\\x01\\x11\\x80\\x32\\xa2\\xf5\\xb9\\xaa\\xc6\\xd9\\x73\\x53\\xab\\xfb\\xb4\\x2e\\x20\\xc6\\x54\\x92\\xa0\\x9a\\xf3\\x69\\x1a\\x2f\\x81\\x77\\x37\\xae\\x53\\x1a\\xce\\x40\\xc4\\xa8\\x82\\x1c\\xb5\\xef\\xda\\x24\\x7d\\xb9\\x61\\x69\\x14\\xa2\\x25\\xa0\\x90\\xac\\x56\\xc0\\x81\\x4a\\xb4\\xe2\\x2c\\xce\\x4a\\x64\\x7a\\x9a\\x23\\xf4\\x13\\x91\\x3f\\xa7\\x4b\\xf4\\x63\\x84\\x6f\\x18\\x87\\x10\\xbd\\xc3\\xfc\\x8f\\x90\\xdd\\x52\\x44\\x04\\xc2\\x51\\xc4\\x6e\\x21\\x74\\x48\\x21\\x81\\xc7\\xe2\\xfd\\xea\\x12\\xf8\\x0d\\x09\\xf6\\xe9\\x47\\x35\\xaf\\x67\\xc4\\x14\\xf7\\x22\\x27\\x97\\xe1\\xe2\\x76\\x2d\\x06\\x8c\\x4a\\x1c\\x48\\x3f\\x73\\x2d\\x0b\\x5b\\x29\\x45\\x24\\x00\\x2a\\x0c\\x11\\xec\\x94\\xca\\xc2\\xa6\\xc1\\x37\\x21\\x43\\x83\\x3b\\x5f\\x97\\xf1\\x43\\x5e\\x53\\x73\\x19\\xa5\\x36\\xd8\\x2d\\x05\\x2e\\x34\\x0b\\xeb\\x39\\xfc\\x1d\\x63\\x51\\x01\\xbd\\x3d\\xbb\\x90\\x84\\x40\\x25\\x59\\x6d\\x09\\x5d\\xa3\\x1c\\x37\\xe6\\x5c\\x16\\x9a\\x40\\x09\\x70\\xc1\\xe8\\x82\\xf1\\x35\\xa6\\xe4\\xdf\\x99\\x5c\\x8e\\x9e\\x4d\\x79\\xb4\\x27\\x2f\\xbf\\x7e\\xf8\\x05\\x25\\x8c\\x50\\xa9\\x98\\x29\\x90\\x62\\x60\\xea\\x75\\xae\\x13\\xca\\xbf\\x2b\\x1a\\x29\\x27\\x76\\xd6\\x20\\xc6\\x64\\x5f\\xe6\\x32\\x1a\\x08\\x87\\x21\\x07\\x21\\xbc\\xb4\\xe4\\xe0\\x32\\x67\\xa6\\xcd\\xf3\\x1e\\xcd\\xd9\\x6b\\xb6\\x6f\\x8e\\x27\\xa7\\xed\\xdb\\xe7\\xbc\\xcc\\x1a\\x07\\xce\\x6f\\x87\\x33\\xf0\\xba\\x51\\x17\\x22\\x66\\x78\\x79\\x8e\\xce\\xe5\\x13\\x81\\x80\\x06\\x2c\\xe5\\x78\\x0d\\xa1\\xb2\\xb8\\x54\\xa8\\x79\\x09\\xbd\\xbf\\x3c\\x47\\x01\\x8b\\x13\\x2c\\xc9\\x32\\xaa\\xaa\\x1d\\xd5\\xee\\xab\\x36\\xbd\\x6c\\xfd\\x54\\x6c\\xc8\\x08\\x01\\x3c\\xbd\\xe7\\x07\\x88\\xb0\\x24\\x37\\x79\\x90\\x28\\x4a\\x1d\\x10\\x1a\\x92\\x1b\\x12\\xa6\\x38\\x42\\x40\\xc3\\x4c\\x43\\x62\\x8e\\xae\\x36\\xb0\\x45\\x71\\x2a\\xa4\\x9a\\x23\\x79\\x59\\xb1\\xa8\\xf2\\xa4\\x0c\\x60\\x9f\\xcc\\x8d\\x40\\xf5\\x80\\xca\\xa8\\x99\\xc3\\xa7\\x85\\x1f\\x31\\x25\\xa9\\x82\\xc5\\x6d\\xbd\\xd8\\x36\\x76\\x7c\\x02\\x28\\x97\\xf6\\x1d\\x74\\x3b\\x11\\x7e\\x91\\xae\\x32\\xf8\\x6c\\xf4\\xe6\\x7b\\x9a\\xa5\\x1f\\x62\\xc6\\x21\\xcf\\x9a\\xe5\\xed\\x8b\\x02\\xf3\\x2c\\x33\\x33\\xdf\\x00\\xca\\xc9\\x09\\xb4\\x04\\xf5\\xa5\\x08\\xd7\\xc3\\x02\\x18\\x66\\xf1\\xab\\x1e\\x83\\x37\\x4c\\xcd\\x12\\xc1\\x1d\\x50\\xf6\\xaa\\xbd\\xfe\\xe2\\x73\\x48\\x38\\x08\\xa0\\x32\\x9b\\x18\\x44\\x86\\x0b\\x6a\\xc1\\xaa\\x26\\x96\\x2d\\x96\\x3c\\xa0\\x54\\x65\\x73\\x87\\x15\\xca\\x15\\xe5\\xf5\\x94\\x46\\x9f\\x33\\x1a\\x0c\\x9a\\xb1\\x5a\\xd9\\x6a\\x95\\xcd\\xcb\\x7e\\xec\\x9a\\xc5\\x94\\x3b\\x37\\x26\\x31\\xd7\\xfc\\xe4\\x1f\\x13\\x8c\\x31\\x75\\x9c\\xba\\xf7\\x87\\x3c\\xa1\\xb7\\x4f\\x17\\x1b\\x09\\x82\\x98\\xc4\\x70\\x95\\xd3\\xe8\\x4c\\x48\\x5a\\xa6\\xd6\\x2a\\x3d\\x56\\x42\\x80\\x9f\\xaf\\xae\\x2e\\x50\\x0c\\x42\\xe0\\x35\\x34\\x3c\\x8a\\x62\\x03\\x37\\xba\\xb2\\x27\\x04\\xda\\x25\\x8d\\x06\\xe2\\xa0\\x13\\x8a\\xf3\\xf5\\xec\\x10\\x72\\x67\\x88\\x90\\x3d\\x4b\\x64\\xeb\\xaa\\xda\\x8f\\xf7\\x5a\\x75\\x47\\x9a\\xa8\\x51\\x70\\x26\\xd2\\x38\\xc6\\x7c\\xbb\\x57\\xfc\\xbd\\xe4\\x04\\x56\\xa8\\xa0\\x54\\x9a\\x45\\xd5\\xf7\\x0f\\x16\\xfc\\x57\\x1c\\x3c\\xdf\\x23\\xba\\x77\\x38\\xda\\x16\\x4b\\x31\\x53\\x6a\\x4d\\x9a\\x15\\x63\\xe7\\xe1\\x18\\x69\\x9f\\x22\\xe0\\x24\\xbb\\x94\\x4b\\x97\\xee\\x2d\\xf9\\x70\\x87\\x72\\x7b\\xe6\\xc4\\x33\\x2a\\x66\\x5e\\x1c\\x35\\x72\\xe3\\x2d\\xda\\x73\\xe4\\xc7\\x51\\x6d\\xa4\\xa1\\x2a\\x4f\\xde\\x94\\xcb\\xb2\\x3e\\x31\\x48\\xae\\x82\\xce\\xc9\\xc8\\x65\\xcd\\xc3\\xb7\\x34\\xb6\\x2b\\xdf\\x58\\x65\\x78\\x6e\\x73\\xac\\x5e\\x24\\x0d\\x3f\\xdc\\x70\\x23\\xc6\\xda\\x52\\x0b\\x2d\\x63\\x7d\\xa9\\x49\\x2d\\x54\\x48\\x28\\xc0\\x12\\x9c\\xe3\\x63\\xc9\\x58\\x04\\x98\\x36\\x07\\xc8\\x0a\\xa7\\x91\\xd4\\xf0\\xbc\\xc1\\xa8\\xb9\\x70\\xd0\\xc6\\xa9\\xb6\\x78\\x80\\x5a\\xa3\\xb4\\x2c\\xf4\\x18\\x0b\\x8a\\x9d\\xd0\\xb4\\x55\\x10\\xee\\x0d\\xc5\\xd6\\xe0\\x99\\x93\\xdc\\xa1\\x04\\xbb\\xf1\\xa7\\x23\\xd1\\xd1\\x97\\x8c\\x87\\x13\\x0a\\x21\\x02\\xe9\\x99\\x25\\xed\\x20\\xc5\\x92\\x66\\x3c\\x32\\x9c\\xd6\\x06\\xb0\\x31\\x5c\\x86\\x29\\x0a\\xcb\\x60\\x33\\x12\\xa5\\x91\\xfc\\x96\\x75\\xd0\\x59\\xd7\\x13\\xbd\\xd3\\x23\\x79\\xdd\\x2a\\x90\\xa6\\x38\\x06\\x91\\x39\\x7f\\x20\\x72\\x03\\x1c\\x2d\\x01\\x61\\xba\\x45\\x37\\x38\\x22\\x61\\x8e\\x71\\x85\\xc4\\x32\\x15\\x28\\x60\\x61\\x16\\xb8\\x3d\\x29\\xdc\\x4d\\x3d\\x2f\\x12\\x13\\x7d\\xc8\\x7e\\x37\\xee\\xa8\\x7f\\xfa\\xdb\\xcb\\x17\\xff\\x77\\xfd\\xf9\\x7f\\xee\\x9f\\x3d\\xfe\\xcf\\xa7\\xa7\\x45\\xfb\\xcf\\x1e\\xf7\\xf3\\xe0\\xff\\xc4\\x51\\x0a\\x8e\\x4c\\xcb\\x01\\xdc\\x0a\\x65\\xb2\\x01\\x83\\xed\\x3d\\xe4\\xa9\\xa3\\x4e\\x2d\\x59\\xc5\\xe8\\x2f\\x48\\x7d\\x5a\\x6e\\x37\\xbf\\x5c\\x9f\\x35\\x13\\x64\\x14\\xfa\\xef\\x0b\\x68\\xa6\\x0d\\xb4\\x8e\\xf1\\xa8\\xff\\xbb\\x60\\xf4\\x03\\x64\\xab\\x5b\\x81\\x65\\x51\\xe6\\xda\\xca\\xfa\\xf0\\xb0\\xac\\x3e\\x9c\\xca\\x26\\x0e\\x1d\\xdb\\x57\\x5b\\xbb\\xb4\\x9a\\xa6\\xb6\\x9b\\x1a\\x6b\\xd1\\x9a\\x9e\\x7e\\x33\\x9a\\xec\\x41\\x69\\x45\\x22\\xb8\\xb4\\x51\\xeb\\x04\\x77\\xca\\x6f\\x7b\\x7b\\xc8\\xb2\\xb0\\x95\\x92\\x25\\x5b\\xd0\\x42\\xaa\\x2a\\xdd\\x32\\x78\\x4f\\x0c\\xab\\x68\\x46\\x6c\\xea\\x6d\\xf4\\x5c\\x5e\\xde\\xc4\\xac\\xa5\\xf9\\xd1\\x00\\x9f\\x7d\\x98\\x65\\x24\\xbd\\xc7\\x97\\xd4\\xb3\\x3a\\xa8\\x2b\\xa0\\x34\\x76\\xf9\\x65\\x5f\\x2d\\x25\\x95\\x1b\\xcf\\xd6\\xf4\\x9b\\x5f\\x09\\x95\\xb0\\x36\\x3f\\xdb\\xd0\\x39\\x2a\\x93\\x1c\\x9d\\x03\\xa2\\x4a\\xca\\xf5\\xf6\\x10\\xb6\\x94\\x89\\x0b\\x6a\\x70\\x12\\x13\\x49\\x6e\\x40\\xe4\\x29\\x12\\x2b\\xbd\\x80\\x45\\x11\\x04\\xaa\\xc2\\x8f\\x56\\x9e\\x5c\\x6b\\xec\\x8d\\x5a\\x0e\\x14\\x59\\x06\\x2b\\x1e\\x24\\xcb\\xc2\\x56\\x4a\\x31\\xbe\\x23\\x71\\x1a\\xfb\\x51\\x2a\\x0b\\x3b\\x1c\\x48\\x10\\xa5\\x82\\xdc\\xc0\\xbb\\x3e\\x24\\x8d\\x5a\\x76\\x2e\\x09\\xed\\xc1\\x65\\x51\\xb8\\x83\\xcb\\x3e\\x24\\x8d\\x5a\\x2e\\x5d\\xfe\\x02\\x74\\x2d\\x3d\\xf1\\xef\\xae\\xb8\\x4b\\xe6\\x5e\\xd4\\xaa\\xe2\\x2e\\x5c\\x5e\\xec\\x0e\\xf5\\x5b\\x0c\\xcb\\x0a\\xbb\\xa4\\x3c\\xf7\\x1f\\x2a\\x55\\x69\\x97\\x8c\\x7d\\x68\\x95\\xa5\\xad\\xb4\\xf4\\x9c\\xa5\\x07\\xb9\\x7a\\x05\\xbb\\xad\\x50\\x6f\\xfb\\xa0\\x4e\\x9b\\x48\\x23\\x49\\x92\\x28\\x87\\x19\\x3e\\x32\\xee\\xca\\x3b\\x46\\x7e\\x7f\\x18\\x64\\xcc\\xcc\\x0f\\x34\\xe9\\x36\\x8b\\xb7\\x6c\\xa8\\xa5\\x5b\\x54\\x4c\\x54\\x5b\\x15\\x3a\\xf1\\x6c\\x2d\\xfe\\x96\\xc8\\x0d\\xba\\x7b\\x81\\x88\\xc8\\x23\\xab\\xee\\x7d\\x3b\\x92\\xa7\\x60\\x29\\xe3\\xdc\\xff\\xb8\\x64\\xe1\\xf6\\xa2\\x5a\\x59\\xdc\\x6f\\xeb\\x45\\x7d\\x6a\\xd1\\x76\\x1e\\xea\\xb8\\xf1\\xfa\\x14\\xd3\\x36\\x63\\xe5\\xd7\\xf3\\xe4\\xbe\\x25\\xbd\\x5e\\x05\\xeb\\x73\\x74\\xb5\\x21\\x2a\\x2e\\x4e\\xa3\\x30\\xdf\\xbf\\x43\\x28\\x2a\\xd1\\xa5\\x2a\\x9d\\x8a\\xfd\\x76\\xd8\\x8d\\xbc\\x67\\x65\\xc7\\xb8\\x03\\x45\\xec\\xa3\\xb0\\x37\\x8a\\x70\\x4c\\x68\\x91\\x51\\x8e\\x58\\x80\\xed\\x4a\\xf3\\x81\\x62\\xca\\x96\\xbb\\xf1\\x52\\xcd\\x80\\xfb\\xe4\\x4a\\x5d\\x6c\\xdf\\x6e\\x20\\x4b\\x80\\x30\\x8e\\x28\\x93\\xf9\\xe9\\x8d\\x8a\\x6d\\xd5\\x59\\x65\\x7b\\xaa\\x44\\x9e\\xc0\\xc2\\xd1\\x7c\\x40\\x26\\xd6\\x1a\\xce\\xf9\\xc5\\x69\\x7b\\x6c\\xec\\xc8\\x71\\x7b\\xe5\\x21\\x2e\\xd3\\xe5\\x65\\x93\\x91\\x53\\x0b\\x7b\\x3a\\xc7\\xfa\\x17\\x6a\\x01\\xa7\\x33\\xd0\\xf4\\x40\\x0f\\x39\\x87\\xda\\xe4\\x54\\x87\\x3a\\xd5\\xe3\\xc7\\xa6\\x8e\\x20\\xd4\\x11\\xb2\\x4e\\xb1\\xe9\\x14\\x9b\\x4e\\xb1\\xe9\\x14\\x9b\\xfe\\x15\\x63\\xd3\\x47\\xf5\\xff\\x97\\x38\\xe9\\xcf\\x14\\xf8\\x76\\x82\\x49\\x13\\x4c\\xaa\\x7d\\xcd\\x6c\\x62\\x42\\x49\\x87\\x43\\x49\\x19\\x33\\x6f\\xe3\\x44\\x6e\\x9b\\xab\\x8a\\x3e\\x86\\xaa\\x99\\x52\\x1b\\x5b\\x59\\x33\\x02\\x09\\xa0\\x21\\xa1\\x6b\\x84\\x6b\\x66\\xbb\\xdc\\x16\\x0c\\xd3\\x68\\xab\\xec\\x36\\x4b\\xd8\\x60\\x8a\\x40\\x31\\x85\\x6e\\x14\\x57\\x13\\xc2\\xfb\\x92\\x10\\xde\\xbf\\x88\\xdc\\xbc\\x53\\x5e\\x7f\\x82\\x7a\\x13\\xd4\\x9b\\xa0\\xde\\x04\\xf5\\x90\\x01\\xf5\\x94\\xcb\\x7b\\x83\\x25\\x9e\\xd0\\xde\\x84\\xf6\\x6a\\x5f\\x4b\\xb3\\x98\\x00\\xdf\\x04\\xf8\\x6c\\xbc\\x7f\\x19\\x80\\xaf\\xf1\\x71\\x45\\x22\\x98\\x40\\xe0\\x04\\x02\\x27\\x10\\xd8\\x29\\xf5\\x04\\x02\\xff\\x4a\\x20\\x30\\xc1\\x72\\xf3\\x65\\x02\\x40\\xd7\\xc1\\xd1\\xe2\\x6b\\xf1\\xa9\\x7b\\xfb\\xe4\\x20\\xc0\\x68\\x9d\\xd4\\xb4\\xd3\\x96\\xb5\\xa6\\xd1\\x41\\x20\\xe6\\x89\\xc3\\x48\\x65\\x58\\x13\\x84\\x9c\\x56\\x56\\x3b\\x0c\\xe0\\x6b\\x83\\x5c\\x13\\xd2\\x9a\\x90\\xd6\\x84\\xb4\\x26\\xa4\\x85\\x0c\\xa4\\x45\\x19\\xfd\\xff\\x63\\x6c\\x52\\xb5\\x1f\\x1e\\x19\\x74\\x3a\\xcd\\xb9\\x69\\xce\\xa6\\x3a\\x0f\\x7a\\x2d\\x19\\xc7\\x81\\x14\\x5d\\xcb\\xd5\\x03\\xc9\\x39\\xd0\\xb0\\xd1\\xb3\\xcd\\xfb\\x7a\\x2d\\x5d\\x3a\\x48\\xe1\\xfa\\x2e\\xe6\\x81\\x42\\x18\\x86\\xd6\\xc1\\xbe\\xb1\\x23\\xd3\\xf7\\x34\\xed\\x19\\x0a\\x0b\\xc4\\x48\\x44\\xfd\\x22\\x50\\xb6\\x42\\x58\\xbb\\xe5\\x3d\\xa7\\x73\\xd4\\x8b\\xc4\\x8c\\x70\\x61\\xec\\x73\\xee\\xc3\\x81\\x8b\\xf5\\xe2\\xd7\\x52\\x3e\\xcf\\xeb\\xeb\\x17\\x3b\\x71\\x16\\xda\\x7d\\xb8\\xde\\xf0\\x7a\\x8f\\x06\\x2d\\xa7\\x40\\x7b\\xc1\\x9d\\x41\\x4d\\xb6\\x61\\xa2\\x4e\\x9f\\x3d\\xa0\\xc5\\xae\\xe3\\x1c\\x1d\\x40\\x6c\\x48\\x8b\\x63\\xa0\\xb5\\x01\\xed\\x8e\\x02\\xe9\\x86\\xc8\\x3b\\x06\\xee\\xdb\\x4b\\xde\\xbd\\xc0\\xa1\\x6f\\xcb\\xda\\xfc\\xc2\\x44\\x16\\x87\\x9c\\x17\\x31\\xd3\\x30\\x20\\x39\\x42\\xcb\\x6f\\xf2\\xf1\\xf4\\x72\\x10\\xf8\\x1c\\xa0\\xf3\\xbd\\x10\\xea\\x21\\x35\\x7d\\xe8\\x86\\xdb\\x15\\xed\\x81\\x81\\x07\\x28\\xbb\\x13\\x28\\xc7\\xf8\\xce\\x7d\\x8d\\xc2\\x31\\xb4\\x7e\\x94\\xd6\\xdb\\x55\\xef\\x4a\\xfb\\xed\\xc3\\x40\\x3e\\xeb\\x9f\\xe9\\x99\\x0f\\xdf\\x08\\x65\\x88\\x27\\x73\\x86\\x31\\x9d\\x47\\xdf\\x55\\x19\\xba\\x3d\\xee\\x15\\x0a\\xcd\\x8c\\xaa\\x5e\\xb9\\xf6\\x57\\x33\\x73\\x5a\\xa1\\x89\\x7b\\x3b\\xa0\\xb2\\xa4\\xc2\\xf6\\xc1\\x53\\xb5\\x00\\xca\\x23\\xe5\\xf4\\x60\\x6a\\xb4\\x2d\\x74\\xea\\x4e\\xed\\x3b\\xe3\\x47\\xfb\\xed\\x82\\x3d\\x19\\xd4\\x3b\\x6b\\xaf\\xae\\x2b\\x2f\\x57\\xb3\\x82\\x68\\xcb\\xed\\x88\\x2e\\xe1\\x5c\\xd7\\x26\\xfa\\x0a\\x65\\xe7\\xce\\x11\\x33\\xb4\\xdd\\x66\\xe3\\x37\\xf6\\xfa\\x70\\xd6\\x4f\\xa1\\x21\\x51\\xd8\\x3c\\x26\\x14\\x4b\\xc6\\x87\\x44\\x27\\x1c\\x70\\xf8\\x9e\\x46\\xce\\xab\\x21\\x07\\x5f\\xc1\\x76\\x17\\x1b\\x77\\xb4\\xda\\x75\\xa0\\x0a\\x3a\\x30\\xe1\\xf8\\x97\\x32\\x16\\x2b\\x00\\x75\\x85\\xee\\x62\\x46\\xef\\xd3\\x85\\xb5\\x6b\\x60\\xbe\\xf2\\x30\\x7a\\x8c\\x0b\\x4b\\xa6\\xd0\\xf9\\x64\\x42\\xe7\\x07\\x41\\x41\\xe3\\x2c\\x5d\\xf9\\x6d\\xe9\\x39\\x98\\x3b\\x3b\\x5d\\x67\\xd4\\x5c\\xed\\xf2\\xf0\\x48\\x7b\\xbd\\x2d\\x31\\xdd\\x3f\\x34\\xad\\x44\\x76\\x51\\x9a\\x56\\x22\\xa7\\x95\\xc8\\x69\\x25\\xf2\\xe1\\x56\\x22\\x1f\\x00\\x32\\x6a\\x73\\x92\\xed\\xe1\\xc6\\x7d\\x9f\\x49\\x2c\\x69\\x7e\\xc8\\x31\\x4c\\x0c\\xb4\\xf2\\x54\\x3b\\x79\\x3b\\x9e\\x4d\\xb4\\xd1\\x18\\x3e\\x5f\\x9a\\x93\\xa2\\x11\\xc3\\xda\\x27\\x0b\\xaf\\x37\\x2e\\x5c\\x37\\xfb\\xeb\\x9a\\xd6\\xc3\\xac\\xc3\\xcc\\xf8\\x1e\\x5b\\x9d\\xac\\x22\\x64\\xb7\\xed\\x26\\xb8\\xf3\\xb9\\x3c\\xbb\\x1f\\xe2\\xb0\\x22\\x77\\x43\\x6a\\x62\\x29\\x39\\x59\\xa6\\xe6\\xe5\\xcd\\x7b\\x83\\xc0\\x5b\\x8e\\x93\\x64\\xac\\xeb\\xca\\x4f\\x65\\xac\\x4a\\xbc\\x1e\\xcd\\x82\\xfa\\x3c\\x70\\x36\\xb6\\xb5\\xed\\x79\\xef\\xec\\x68\\x00\\xff\\x54\\xfa\\xb5\\xe3\\xf1\\xdb\\xe1\\xbe\\xce\\x76\\x17\\xaf\\x57\\xb6\\x6b\\x89\\x05\\x09\\xce\\x52\\xb9\\x01\\x2a\\x49\\xbe\\xd9\\xf4\\xd2\\xb8\\x7a\\xbf\\x91\\x02\\xf3\\x22\\x8c\\x13\\xf2\\x77\\xd8\\x8e\\x43\\x8b\\xe1\\x54\\x6e\\x5e\\x9d\\xc7\\x49\\x44\\x02\\x22\\xc7\\xa4\\x79\\x81\\x85\\xb8\\x65\\x3c\\x1c\\x93\\xe6\\x59\\xa2\\xf8\\x1c\\x51\\x95\\x05\\xd9\\x20\\x00\\x21\\x7e\\x60\\x21\\x58\\xa9\\x56\\xff\\xbe\\xb6\\x5a\\x5e\\x5b\\x3f\\x1f\\xd6\\xd3\\x3c\\xc4\\x4d\\xba\\x99\\xb4\\x63\\x6e\\x7d\\x3e\\x3d\\x57\\xd2\\x18\\x5f\\x47\\xe8\\xc3\\x06\\x8a\\x68\\x6c\\x7f\\x3b\\x72\\x0f\\xe7\\xe2\\x77\\x77\\xf1\\xd0\\x99\\xab\\xdf\\x2e\\xfe\\xd6\\xbb\\xcd\\x1a\\xb9\\x90\\xd1\\xaf\\xf2\\x38\\x3d\\xdb\\x74\\xf8\\xeb\\xe3\\xda\\xe8\\x2a\\x62\\xb7\\xda\\x1b\\x07\\xa9\\xdc\\x30\\x5e\\xbc\\x68\\xfb\\x6b\\x9f\\x97\\xf1\\xc6\\xb1\\xd8\\x5c\\x29\\x1e\\x49\\x30\\xc5\\xf7\\xde\\xad\\x91\\x42\\xf9\\xdd\\xed\\x89\\x80\\x25\\xbe\\x37\\xd7\\xe7\\x32\\x5c\\xe6\\x35\\xac\\xd4\\x0c\\x2d\\xf7\\x90\\xc4\\xe3\\xf5\\xe3\\x2f\\x7f\\x54\\x18\\x88\\xe3\\x61\\x47\\x85\\x64\\x7f\\xc0\\xd7\\x3f\\x1a\\x92\\x42\\xe9\\xc7\\x1e\\x0d\\x95\\x76\\xa7\\x51\\xa0\\x8f\\x02\\x1b\\x46\\x9e\\x06\\x42\\xd1\\xf2\\x01\\x07\\x02\\xde\\xe9\\x7d\\x1a\\x0b\\xa7\\x32\\x16\\xcc\\xc0\\xee\\xc4\\x90\\xd2\\x5f\\x6f\\x98\\x54\\x5d\\xf2\\x95\\xe1\\xa7\\x69\\x10\\x3a\\x06\\xe1\\x65\\xb3\\x17\\x47\\x58\\x78\\xd0\\x45\\xd6\\x5b\\xd5\\x5f\\x25\\x1d\\x71\\x49\\xa6\\x7a\\x64\\xda\\xd0\\x6f\\xc7\\x3a\\x4c\\xe3\\x09\\xc0\\x6e\\x96\\x2c\\xa7\\xa7\\x77\\x34\\x10\\x05\\x08\\x21\\x44\\x92\\x65\\x77\\xdf\\x20\\x5c\\xbc\\xe7\\x97\\x3f\\xf4\\x1a\\x45\\xd6\\xe7\\x27\\x4a\\xde\\x74\\x27\\x66\\x11\\x7d\\x70\\xba\\xd3\\x78\\xf9\\x1e\\x0d\\xca\\xc8\\x39\\xde\\x7c\\xb3\\xa6\\xe1\\xbc\\xd7\\xc1\\x6a\\x6f\\xb3\\x0e\\x52\\xbe\\xe4\\x98\\x8a\\x15\\x70\\x94\\x70\\x26\\x59\\xc0\\xa2\\xf2\\x1c\\xfb\\xd9\\xc5\\xf9\\xbc\\xd5\\x92\\x9c\\xa3\\xdf\\xe6\\x1e\\xb3\\x0d\\x49\\xba\\x87\\x50\\x5f\\x84\\xfe\\xe9\\xd6\\xf8\\xbb\\xe6\\xf0\\x7a\\xeb\\xa6\\x65\\x3b\\x86\\x8b\\x79\\x93\\xf5\\x59\\x20\\x6e\\xb4\\xa7\\x44\\xf4\\x3f\\xa5\\xfe\\x67\\x42\\x12\\xdb\\xd3\\xe7\\xbb\\xa5\\xa3\\x8c\\x5c\\x2b\\x97\\xbb\\xbb\\x7f\\x8e\\xc5\\x6e\\xed\\x43\\x5c\\xbf\\x74\\xc8\\x8f\\xff\\xe6\\xd6\\xbe\\x91\\xb6\\xf5\\x95\\xe4\\xed\\x93\\xc4\\xa8\\x5b\\xf9\\x76\\x4d\\x35\\xb7\\xd8\\x8c\\xb6\\x7d\\xaf\\x72\\xe0\\xb6\\xbd\\x01\\x63\\x9e\\x76\\xab\\x1a\\x32\\x76\\xe4\\x8c\\x76\\xc2\\xad\\x6c\\xa2\\x65\\xf7\\xcf\\xf8\\xa7\\xda\\x2a\\xb9\\x8c\\x3d\\x3c\\xa3\\x9d\\x64\\x33\\xe5\\x1a\\xb5\\x2d\\xfb\\x86\\xa2\\x5a\\x7f\\x19\\x5b\\x7f\\xc6\\x3f\\xd1\\x53\\xd3\\xe2\\x41\\x5b\\xd3\\x4f\\xf0\\xec\\xb0\\x42\\x73\\x43\\xd2\\x68\\x27\\xd3\\x6a\\x6a\\x34\\xf6\\x4e\\x1e\\x52\\x8b\\x87\\x6c\\xcc\\xae\\x44\\xfb\\x9e\\xa7\\x51\\x4f\\x9d\\x55\\x03\\x81\\x8e\\x67\\xfc\\xb4\\x69\\xf0\\x3a\\x18\\xf2\\x40\\xd0\\xf6\\xa8\\x34\\xe3\\xc9\\x98\\xaf\\xf6\\xda\\x24\\xd3\\xeb\\x60\\xb9\\x0e\\xd3\\x1f\\xa9\\xff\\xee\\x1f\\xfd\\x37\\x00\\x00\\xff\\xff\\x69\\x5d\\x0a\\x6a\\x39\\x9d\\x00\\x00\")\n\nfunc v2SchemaJSONBytes() ([]byte, error) {\n\treturn bindataRead(\n\t\t_v2SchemaJSON,\n\t\t\"v2/schema.json\",\n\t)\n}\n\nfunc v2SchemaJSON() (*asset, error) {\n\tbytes, err := v2SchemaJSONBytes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfo := bindataFileInfo{name: \"v2/schema.json\", size: 40249, mode: os.FileMode(436), modTime: time.Unix(1540282154, 0)}\n\ta := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcb, 0x25, 0x27, 0xe8, 0x46, 0xae, 0x22, 0xc4, 0xf4, 0x8b, 0x1, 0x32, 0x4d, 0x1f, 0xf8, 0xdf, 0x75, 0x15, 0xc8, 0x2d, 0xc7, 0xed, 0xe, 0x7e, 0x0, 0x75, 0xc0, 0xf9, 0xd2, 0x1f, 0x75, 0x57}}\n\treturn a, nil\n}\n\n// Asset loads and returns the asset for the given name.\n// It returns an error if the asset could not be found or\n// could not be loaded.\nfunc Asset(name string) ([]byte, error) {\n\tcanonicalName := strings.Replace(name, \"\\\\\", \"/\", -1)\n\tif f, ok := _bindata[canonicalName]; ok {\n\t\ta, err := f()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"Asset %s can't read by error: %v\", name, err)\n\t\t}\n\t\treturn a.bytes, nil\n\t}\n\treturn nil, fmt.Errorf(\"Asset %s not found\", name)\n}\n\n// AssetString returns the asset contents as a string (instead of a []byte).\nfunc AssetString(name string) (string, error) {\n\tdata, err := Asset(name)\n\treturn string(data), err\n}\n\n// MustAsset is like Asset but panics when Asset would return an error.\n// It simplifies safe initialization of global variables.\nfunc MustAsset(name string) []byte {\n\ta, err := Asset(name)\n\tif err != nil {\n\t\tpanic(\"asset: Asset(\" + name + \"): \" + err.Error())\n\t}\n\n\treturn a\n}\n\n// MustAssetString is like AssetString but panics when Asset would return an\n// error. It simplifies safe initialization of global variables.\nfunc MustAssetString(name string) string {\n\treturn string(MustAsset(name))\n}\n\n// AssetInfo loads and returns the asset info for the given name.\n// It returns an error if the asset could not be found or\n// could not be loaded.\nfunc AssetInfo(name string) (os.FileInfo, error) {\n\tcanonicalName := strings.Replace(name, \"\\\\\", \"/\", -1)\n\tif f, ok := _bindata[canonicalName]; ok {\n\t\ta, err := f()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"AssetInfo %s can't read by error: %v\", name, err)\n\t\t}\n\t\treturn a.info, nil\n\t}\n\treturn nil, fmt.Errorf(\"AssetInfo %s not found\", name)\n}\n\n// AssetDigest returns the digest of the file with the given name. It returns an\n// error if the asset could not be found or the digest could not be loaded.\nfunc AssetDigest(name string) ([sha256.Size]byte, error) {\n\tcanonicalName := strings.Replace(name, \"\\\\\", \"/\", -1)\n\tif f, ok := _bindata[canonicalName]; ok {\n\t\ta, err := f()\n\t\tif err != nil {\n\t\t\treturn [sha256.Size]byte{}, fmt.Errorf(\"AssetDigest %s can't read by error: %v\", name, err)\n\t\t}\n\t\treturn a.digest, nil\n\t}\n\treturn [sha256.Size]byte{}, fmt.Errorf(\"AssetDigest %s not found\", name)\n}\n\n// Digests returns a map of all known files and their checksums.\nfunc Digests() (map[string][sha256.Size]byte, error) {\n\tmp := make(map[string][sha256.Size]byte, len(_bindata))\n\tfor name := range _bindata {\n\t\ta, err := _bindata[name]()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tmp[name] = a.digest\n\t}\n\treturn mp, nil\n}\n\n// AssetNames returns the names of the assets.\nfunc AssetNames() []string {\n\tnames := make([]string, 0, len(_bindata))\n\tfor name := range _bindata {\n\t\tnames = append(names, name)\n\t}\n\treturn names\n}\n\n// _bindata is a table, holding each asset generator, mapped to its name.\nvar _bindata = map[string]func() (*asset, error){\n\t\"jsonschema-draft-04.json\": jsonschemaDraft04JSON,\n\n\t\"v2/schema.json\": v2SchemaJSON,\n}\n\n// AssetDir returns the file names below a certain\n// directory embedded in the file by go-bindata.\n// For example if you run go-bindata on data/... and data contains the\n// following hierarchy:\n//     data/\n//       foo.txt\n//       img/\n//         a.png\n//         b.png\n// then AssetDir(\"data\") would return []string{\"foo.txt\", \"img\"},\n// AssetDir(\"data/img\") would return []string{\"a.png\", \"b.png\"},\n// AssetDir(\"foo.txt\") and AssetDir(\"notexist\") would return an error, and\n// AssetDir(\"\") will return []string{\"data\"}.\nfunc AssetDir(name string) ([]string, error) {\n\tnode := _bintree\n\tif len(name) != 0 {\n\t\tcanonicalName := strings.Replace(name, \"\\\\\", \"/\", -1)\n\t\tpathList := strings.Split(canonicalName, \"/\")\n\t\tfor _, p := range pathList {\n\t\t\tnode = node.Children[p]\n\t\t\tif node == nil {\n\t\t\t\treturn nil, fmt.Errorf(\"Asset %s not found\", name)\n\t\t\t}\n\t\t}\n\t}\n\tif node.Func != nil {\n\t\treturn nil, fmt.Errorf(\"Asset %s not found\", name)\n\t}\n\trv := make([]string, 0, len(node.Children))\n\tfor childName := range node.Children {\n\t\trv = append(rv, childName)\n\t}\n\treturn rv, nil\n}\n\ntype bintree struct {\n\tFunc     func() (*asset, error)\n\tChildren map[string]*bintree\n}\n\nvar _bintree = &bintree{nil, map[string]*bintree{\n\t\"jsonschema-draft-04.json\": &bintree{jsonschemaDraft04JSON, map[string]*bintree{}},\n\t\"v2\": &bintree{nil, map[string]*bintree{\n\t\t\"schema.json\": &bintree{v2SchemaJSON, map[string]*bintree{}},\n\t}},\n}}\n\n// RestoreAsset restores an asset under the given directory.\nfunc RestoreAsset(dir, name string) error {\n\tdata, err := Asset(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\tinfo, err := AssetInfo(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())\n}\n\n// RestoreAssets restores an asset under the given directory recursively.\nfunc RestoreAssets(dir, name string) error {\n\tchildren, err := AssetDir(name)\n\t// File\n\tif err != nil {\n\t\treturn RestoreAsset(dir, name)\n\t}\n\t// Dir\n\tfor _, child := range children {\n\t\terr = RestoreAssets(dir, filepath.Join(name, child))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc _filePath(dir, name string) string {\n\tcanonicalName := strings.Replace(name, \"\\\\\", \"/\", -1)\n\treturn filepath.Join(append([]string{dir}, strings.Split(canonicalName, \"/\")...)...)\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/cache.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport \"sync\"\n\n// ResolutionCache a cache for resolving urls\ntype ResolutionCache interface {\n\tGet(string) (interface{}, bool)\n\tSet(string, interface{})\n}\n\ntype simpleCache struct {\n\tlock  sync.RWMutex\n\tstore map[string]interface{}\n}\n\n// Get retrieves a cached URI\nfunc (s *simpleCache) Get(uri string) (interface{}, bool) {\n\tdebugLog(\"getting %q from resolution cache\", uri)\n\ts.lock.RLock()\n\tv, ok := s.store[uri]\n\tdebugLog(\"got %q from resolution cache: %t\", uri, ok)\n\n\ts.lock.RUnlock()\n\treturn v, ok\n}\n\n// Set caches a URI\nfunc (s *simpleCache) Set(uri string, data interface{}) {\n\ts.lock.Lock()\n\ts.store[uri] = data\n\ts.lock.Unlock()\n}\n\nvar resCache ResolutionCache\n\nfunc init() {\n\tresCache = initResolutionCache()\n}\n\n// initResolutionCache initializes the URI resolution cache\nfunc initResolutionCache() ResolutionCache {\n\treturn &simpleCache{store: map[string]interface{}{\n\t\t\"http://swagger.io/v2/schema.json\":       MustLoadSwagger20Schema(),\n\t\t\"http://json-schema.org/draft-04/schema\": MustLoadJSONSchemaDraft04(),\n\t}}\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/contact_info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ContactInfo contact information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#contactObject\ntype ContactInfo struct {\n\tName  string `json:\"name,omitempty\"`\n\tURL   string `json:\"url,omitempty\"`\n\tEmail string `json:\"email,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/debug.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n)\n\nvar (\n\t// Debug is true when the SWAGGER_DEBUG env var is not empty.\n\t// It enables a more verbose logging of this package.\n\tDebug = os.Getenv(\"SWAGGER_DEBUG\") != \"\"\n\t// specLogger is a debug logger for this package\n\tspecLogger *log.Logger\n)\n\nfunc init() {\n\tdebugOptions()\n}\n\nfunc debugOptions() {\n\tspecLogger = log.New(os.Stdout, \"spec:\", log.LstdFlags)\n}\n\nfunc debugLog(msg string, args ...interface{}) {\n\t// A private, trivial trace logger, based on go-openapi/spec/expander.go:debugLog()\n\tif Debug {\n\t\t_, file1, pos1, _ := runtime.Caller(1)\n\t\tspecLogger.Printf(\"%s:%d: %s\", filepath.Base(file1), pos1, fmt.Sprintf(msg, args...))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/expander.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// ExpandOptions provides options for spec expand\ntype ExpandOptions struct {\n\tRelativeBase        string\n\tSkipSchemas         bool\n\tContinueOnError     bool\n\tAbsoluteCircularRef bool\n}\n\n// ResolveRefWithBase resolves a reference against a context root with preservation of base path\nfunc ResolveRefWithBase(root interface{}, ref *Ref, opts *ExpandOptions) (*Schema, error) {\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tspecBasePath := \"\"\n\tif opts != nil && opts.RelativeBase != \"\" {\n\t\tspecBasePath, _ = absPath(opts.RelativeBase)\n\t}\n\n\tresult := new(Schema)\n\tif err := resolver.Resolve(ref, result, specBasePath); err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ResolveRef resolves a reference against a context root\n// ref is guaranteed to be in root (no need to go to external files)\n// ResolveRef is ONLY called from the code generation module\nfunc ResolveRef(root interface{}, ref *Ref) (*Schema, error) {\n\tres, _, err := ref.GetPointer().Get(root)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tswitch sch := res.(type) {\n\tcase Schema:\n\t\treturn &sch, nil\n\tcase *Schema:\n\t\treturn sch, nil\n\tcase map[string]interface{}:\n\t\tb, _ := json.Marshal(sch)\n\t\tnewSch := new(Schema)\n\t\t_ = json.Unmarshal(b, newSch)\n\t\treturn newSch, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown type for the resolved reference\")\n\t}\n}\n\n// ResolveParameter resolves a parameter reference against a context root\nfunc ResolveParameter(root interface{}, ref Ref) (*Parameter, error) {\n\treturn ResolveParameterWithBase(root, ref, nil)\n}\n\n// ResolveParameterWithBase resolves a parameter reference against a context root and base path\nfunc ResolveParameterWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Parameter, error) {\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult := new(Parameter)\n\tif err := resolver.Resolve(&ref, result, \"\"); err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ResolveResponse resolves response a reference against a context root\nfunc ResolveResponse(root interface{}, ref Ref) (*Response, error) {\n\treturn ResolveResponseWithBase(root, ref, nil)\n}\n\n// ResolveResponseWithBase resolves response a reference against a context root and base path\nfunc ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Response, error) {\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult := new(Response)\n\tif err := resolver.Resolve(&ref, result, \"\"); err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ResolveItems resolves parameter items reference against a context root and base path.\n//\n// NOTE: stricly speaking, this construct is not supported by Swagger 2.0.\n// Similarly, $ref are forbidden in response headers.\nfunc ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error) {\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbasePath := \"\"\n\tif opts.RelativeBase != \"\" {\n\t\tbasePath = opts.RelativeBase\n\t}\n\tresult := new(Items)\n\tif err := resolver.Resolve(&ref, result, basePath); err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ResolvePathItem resolves response a path item against a context root and base path\nfunc ResolvePathItem(root interface{}, ref Ref, opts *ExpandOptions) (*PathItem, error) {\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbasePath := \"\"\n\tif opts.RelativeBase != \"\" {\n\t\tbasePath = opts.RelativeBase\n\t}\n\tresult := new(PathItem)\n\tif err := resolver.Resolve(&ref, result, basePath); err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ExpandSpec expands the references in a swagger spec\nfunc ExpandSpec(spec *Swagger, options *ExpandOptions) error {\n\tresolver, err := defaultSchemaLoader(spec, options, nil, nil)\n\t// Just in case this ever returns an error.\n\tif resolver.shouldStopOnError(err) {\n\t\treturn err\n\t}\n\n\t// getting the base path of the spec to adjust all subsequent reference resolutions\n\tspecBasePath := \"\"\n\tif options != nil && options.RelativeBase != \"\" {\n\t\tspecBasePath, _ = absPath(options.RelativeBase)\n\t}\n\n\tif options == nil || !options.SkipSchemas {\n\t\tfor key, definition := range spec.Definitions {\n\t\t\tvar def *Schema\n\t\t\tvar err error\n\t\t\tif def, err = expandSchema(definition, []string{fmt.Sprintf(\"#/definitions/%s\", key)}, resolver, specBasePath); resolver.shouldStopOnError(err) {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif def != nil {\n\t\t\t\tspec.Definitions[key] = *def\n\t\t\t}\n\t\t}\n\t}\n\n\tfor key := range spec.Parameters {\n\t\tparameter := spec.Parameters[key]\n\t\tif err := expandParameterOrResponse(&parameter, resolver, specBasePath); resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t\tspec.Parameters[key] = parameter\n\t}\n\n\tfor key := range spec.Responses {\n\t\tresponse := spec.Responses[key]\n\t\tif err := expandParameterOrResponse(&response, resolver, specBasePath); resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t\tspec.Responses[key] = response\n\t}\n\n\tif spec.Paths != nil {\n\t\tfor key := range spec.Paths.Paths {\n\t\t\tpath := spec.Paths.Paths[key]\n\t\t\tif err := expandPathItem(&path, resolver, specBasePath); resolver.shouldStopOnError(err) {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tspec.Paths.Paths[key] = path\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// baseForRoot loads in the cache the root document and produces a fake \"root\" base path entry\n// for further $ref resolution\nfunc baseForRoot(root interface{}, cache ResolutionCache) string {\n\t// cache the root document to resolve $ref's\n\tconst rootBase = \"root\"\n\tif root != nil {\n\t\tbase, _ := absPath(rootBase)\n\t\tnormalizedBase := normalizeAbsPath(base)\n\t\tdebugLog(\"setting root doc in cache at: %s\", normalizedBase)\n\t\tif cache == nil {\n\t\t\tcache = resCache\n\t\t}\n\t\tcache.Set(normalizedBase, root)\n\t\treturn rootBase\n\t}\n\treturn \"\"\n}\n\n// ExpandSchema expands the refs in the schema object with reference to the root object\n// go-openapi/validate uses this function\n// notice that it is impossible to reference a json schema in a different file other than root\nfunc ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error {\n\topts := &ExpandOptions{\n\t\t// when a root is specified, cache the root as an in-memory document for $ref retrieval\n\t\tRelativeBase:    baseForRoot(root, cache),\n\t\tSkipSchemas:     false,\n\t\tContinueOnError: false,\n\t\t// when no base path is specified, remaining $ref (circular) are rendered with an absolute path\n\t\tAbsoluteCircularRef: true,\n\t}\n\treturn ExpandSchemaWithBasePath(schema, cache, opts)\n}\n\n// ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options\nfunc ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error {\n\tif schema == nil {\n\t\treturn nil\n\t}\n\n\tvar basePath string\n\tif opts.RelativeBase != \"\" {\n\t\tbasePath, _ = absPath(opts.RelativeBase)\n\t}\n\n\tresolver, err := defaultSchemaLoader(nil, opts, cache, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trefs := []string{\"\"}\n\tvar s *Schema\n\tif s, err = expandSchema(*schema, refs, resolver, basePath); err != nil {\n\t\treturn err\n\t}\n\t*schema = *s\n\treturn nil\n}\n\nfunc expandItems(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {\n\tif target.Items != nil {\n\t\tif target.Items.Schema != nil {\n\t\t\tt, err := expandSchema(*target.Items.Schema, parentRefs, resolver, basePath)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\t*target.Items.Schema = *t\n\t\t}\n\t\tfor i := range target.Items.Schemas {\n\t\t\tt, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver, basePath)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\ttarget.Items.Schemas[i] = *t\n\t\t}\n\t}\n\treturn &target, nil\n}\n\nfunc expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {\n\tif target.Ref.String() == \"\" && target.Ref.IsRoot() {\n\t\t// normalizing is important\n\t\tnewRef := normalizeFileRef(&target.Ref, basePath)\n\t\ttarget.Ref = *newRef\n\t\treturn &target, nil\n\n\t}\n\n\t// change the base path of resolution when an ID is encountered\n\t// otherwise the basePath should inherit the parent's\n\t// important: ID can be relative path\n\tif target.ID != \"\" {\n\t\tdebugLog(\"schema has ID: %s\", target.ID)\n\t\t// handling the case when id is a folder\n\t\t// remember that basePath has to be a file\n\t\trefPath := target.ID\n\t\tif strings.HasSuffix(target.ID, \"/\") {\n\t\t\t// path.Clean here would not work correctly if basepath is http\n\t\t\trefPath = fmt.Sprintf(\"%s%s\", refPath, \"placeholder.json\")\n\t\t}\n\t\tbasePath = normalizePaths(refPath, basePath)\n\t}\n\n\tvar t *Schema\n\t// if Ref is found, everything else doesn't matter\n\t// Ref also changes the resolution scope of children expandSchema\n\tif target.Ref.String() != \"\" {\n\t\t// here the resolution scope is changed because a $ref was encountered\n\t\tnormalizedRef := normalizeFileRef(&target.Ref, basePath)\n\t\tnormalizedBasePath := normalizedRef.RemoteURI()\n\n\t\tif resolver.isCircular(normalizedRef, basePath, parentRefs...) {\n\t\t\t// this means there is a cycle in the recursion tree: return the Ref\n\t\t\t// - circular refs cannot be expanded. We leave them as ref.\n\t\t\t// - denormalization means that a new local file ref is set relative to the original basePath\n\t\t\tdebugLog(\"shortcut circular ref: basePath: %s, normalizedPath: %s, normalized ref: %s\",\n\t\t\t\tbasePath, normalizedBasePath, normalizedRef.String())\n\t\t\tif !resolver.options.AbsoluteCircularRef {\n\t\t\t\ttarget.Ref = *denormalizeFileRef(normalizedRef, normalizedBasePath, resolver.context.basePath)\n\t\t\t} else {\n\t\t\t\ttarget.Ref = *normalizedRef\n\t\t\t}\n\t\t\treturn &target, nil\n\t\t}\n\n\t\tdebugLog(\"basePath: %s: calling Resolve with target: %#v\", basePath, target)\n\t\tif err := resolver.Resolve(&target.Ref, &t, basePath); resolver.shouldStopOnError(err) {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif t != nil {\n\t\t\tparentRefs = append(parentRefs, normalizedRef.String())\n\t\t\tvar err error\n\t\t\ttransitiveResolver, err := resolver.transitiveResolver(basePath, target.Ref)\n\t\t\tif transitiveResolver.shouldStopOnError(err) {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tbasePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath)\n\n\t\t\treturn expandSchema(*t, parentRefs, transitiveResolver, basePath)\n\t\t}\n\t}\n\n\tt, err := expandItems(target, parentRefs, resolver, basePath)\n\tif resolver.shouldStopOnError(err) {\n\t\treturn &target, err\n\t}\n\tif t != nil {\n\t\ttarget = *t\n\t}\n\n\tfor i := range target.AllOf {\n\t\tt, err := expandSchema(target.AllOf[i], parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\ttarget.AllOf[i] = *t\n\t}\n\tfor i := range target.AnyOf {\n\t\tt, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\ttarget.AnyOf[i] = *t\n\t}\n\tfor i := range target.OneOf {\n\t\tt, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\ttarget.OneOf[i] = *t\n\t\t}\n\t}\n\tif target.Not != nil {\n\t\tt, err := expandSchema(*target.Not, parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\t*target.Not = *t\n\t\t}\n\t}\n\tfor k := range target.Properties {\n\t\tt, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\ttarget.Properties[k] = *t\n\t\t}\n\t}\n\tif target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil {\n\t\tt, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\t*target.AdditionalProperties.Schema = *t\n\t\t}\n\t}\n\tfor k := range target.PatternProperties {\n\t\tt, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\ttarget.PatternProperties[k] = *t\n\t\t}\n\t}\n\tfor k := range target.Dependencies {\n\t\tif target.Dependencies[k].Schema != nil {\n\t\t\tt, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath)\n\t\t\tif resolver.shouldStopOnError(err) {\n\t\t\t\treturn &target, err\n\t\t\t}\n\t\t\tif t != nil {\n\t\t\t\t*target.Dependencies[k].Schema = *t\n\t\t\t}\n\t\t}\n\t}\n\tif target.AdditionalItems != nil && target.AdditionalItems.Schema != nil {\n\t\tt, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\t*target.AdditionalItems.Schema = *t\n\t\t}\n\t}\n\tfor k := range target.Definitions {\n\t\tt, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn &target, err\n\t\t}\n\t\tif t != nil {\n\t\t\ttarget.Definitions[k] = *t\n\t\t}\n\t}\n\treturn &target, nil\n}\n\nfunc expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error {\n\tif pathItem == nil {\n\t\treturn nil\n\t}\n\n\tparentRefs := []string{}\n\tif err := resolver.deref(pathItem, parentRefs, basePath); resolver.shouldStopOnError(err) {\n\t\treturn err\n\t}\n\tif pathItem.Ref.String() != \"\" {\n\t\tvar err error\n\t\tresolver, err = resolver.transitiveResolver(basePath, pathItem.Ref)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t}\n\tpathItem.Ref = Ref{}\n\n\tfor idx := range pathItem.Parameters {\n\t\tif err := expandParameterOrResponse(&(pathItem.Parameters[idx]), resolver, basePath); resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t}\n\tops := []*Operation{\n\t\tpathItem.Get,\n\t\tpathItem.Head,\n\t\tpathItem.Options,\n\t\tpathItem.Put,\n\t\tpathItem.Post,\n\t\tpathItem.Patch,\n\t\tpathItem.Delete,\n\t}\n\tfor _, op := range ops {\n\t\tif err := expandOperation(op, resolver, basePath); resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc expandOperation(op *Operation, resolver *schemaLoader, basePath string) error {\n\tif op == nil {\n\t\treturn nil\n\t}\n\n\tfor i := range op.Parameters {\n\t\tparam := op.Parameters[i]\n\t\tif err := expandParameterOrResponse(&param, resolver, basePath); resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t\top.Parameters[i] = param\n\t}\n\n\tif op.Responses != nil {\n\t\tresponses := op.Responses\n\t\tif err := expandParameterOrResponse(responses.Default, resolver, basePath); resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t\tfor code := range responses.StatusCodeResponses {\n\t\t\tresponse := responses.StatusCodeResponses[code]\n\t\t\tif err := expandParameterOrResponse(&response, resolver, basePath); resolver.shouldStopOnError(err) {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tresponses.StatusCodeResponses[code] = response\n\t\t}\n\t}\n\treturn nil\n}\n\n// ExpandResponseWithRoot expands a response based on a root document, not a fetchable document\nfunc ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error {\n\topts := &ExpandOptions{\n\t\tRelativeBase:    baseForRoot(root, cache),\n\t\tSkipSchemas:     false,\n\t\tContinueOnError: false,\n\t\t// when no base path is specified, remaining $ref (circular) are rendered with an absolute path\n\t\tAbsoluteCircularRef: true,\n\t}\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn expandParameterOrResponse(response, resolver, opts.RelativeBase)\n}\n\n// ExpandResponse expands a response based on a basepath\n// This is the exported version of expandResponse\n// all refs inside response will be resolved relative to basePath\nfunc ExpandResponse(response *Response, basePath string) error {\n\tvar specBasePath string\n\tif basePath != \"\" {\n\t\tspecBasePath, _ = absPath(basePath)\n\t}\n\topts := &ExpandOptions{\n\t\tRelativeBase: specBasePath,\n\t}\n\tresolver, err := defaultSchemaLoader(nil, opts, nil, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn expandParameterOrResponse(response, resolver, opts.RelativeBase)\n}\n\n// ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document\nfunc ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error {\n\topts := &ExpandOptions{\n\t\tRelativeBase:    baseForRoot(root, cache),\n\t\tSkipSchemas:     false,\n\t\tContinueOnError: false,\n\t\t// when no base path is specified, remaining $ref (circular) are rendered with an absolute path\n\t\tAbsoluteCircularRef: true,\n\t}\n\tresolver, err := defaultSchemaLoader(root, opts, nil, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn expandParameterOrResponse(parameter, resolver, opts.RelativeBase)\n}\n\n// ExpandParameter expands a parameter based on a basepath.\n// This is the exported version of expandParameter\n// all refs inside parameter will be resolved relative to basePath\nfunc ExpandParameter(parameter *Parameter, basePath string) error {\n\tvar specBasePath string\n\tif basePath != \"\" {\n\t\tspecBasePath, _ = absPath(basePath)\n\t}\n\topts := &ExpandOptions{\n\t\tRelativeBase: specBasePath,\n\t}\n\tresolver, err := defaultSchemaLoader(nil, opts, nil, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn expandParameterOrResponse(parameter, resolver, opts.RelativeBase)\n}\n\nfunc getRefAndSchema(input interface{}) (*Ref, *Schema, error) {\n\tvar ref *Ref\n\tvar sch *Schema\n\tswitch refable := input.(type) {\n\tcase *Parameter:\n\t\tif refable == nil {\n\t\t\treturn nil, nil, nil\n\t\t}\n\t\tref = &refable.Ref\n\t\tsch = refable.Schema\n\tcase *Response:\n\t\tif refable == nil {\n\t\t\treturn nil, nil, nil\n\t\t}\n\t\tref = &refable.Ref\n\t\tsch = refable.Schema\n\tdefault:\n\t\treturn nil, nil, fmt.Errorf(\"expand: unsupported type %T. Input should be of type *Parameter or *Response\", input)\n\t}\n\treturn ref, sch, nil\n}\n\nfunc expandParameterOrResponse(input interface{}, resolver *schemaLoader, basePath string) error {\n\tref, _, err := getRefAndSchema(input)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif ref == nil {\n\t\treturn nil\n\t}\n\tparentRefs := []string{}\n\tif err := resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) {\n\t\treturn err\n\t}\n\tref, sch, _ := getRefAndSchema(input)\n\tif ref.String() != \"\" {\n\t\ttransitiveResolver, err := resolver.transitiveResolver(basePath, *ref)\n\t\tif transitiveResolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t\tbasePath = resolver.updateBasePath(transitiveResolver, basePath)\n\t\tresolver = transitiveResolver\n\t}\n\n\tif sch != nil && sch.Ref.String() != \"\" {\n\t\t// schema expanded to a $ref in another root\n\t\tvar ern error\n\t\tsch.Ref, ern = NewRef(normalizePaths(sch.Ref.String(), ref.RemoteURI()))\n\t\tif ern != nil {\n\t\t\treturn ern\n\t\t}\n\t}\n\tif ref != nil {\n\t\t*ref = Ref{}\n\t}\n\n\tif !resolver.options.SkipSchemas && sch != nil {\n\t\ts, err := expandSchema(*sch, parentRefs, resolver, basePath)\n\t\tif resolver.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\t\t*sch = *s\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/external_docs.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ExternalDocumentation allows referencing an external resource for\n// extended documentation.\n//\n// For more information: http://goo.gl/8us55a#externalDocumentationObject\ntype ExternalDocumentation struct {\n\tDescription string `json:\"description,omitempty\"`\n\tURL         string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/go.mod",
    "content": "module github.com/go-openapi/spec\n\nrequire (\n\tgithub.com/PuerkitoBio/purell v1.1.0 // indirect\n\tgithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/go-openapi/jsonpointer v0.17.0\n\tgithub.com/go-openapi/jsonreference v0.17.0\n\tgithub.com/go-openapi/swag v0.17.0\n\tgithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/stretchr/testify v1.2.2\n\tgolang.org/x/net v0.0.0-20181005035420-146acd28ed58 // indirect\n\tgolang.org/x/text v0.3.0 // indirect\n\tgopkg.in/yaml.v2 v2.2.1\n)\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/go.sum",
    "content": "github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=\ngithub.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/go-openapi/jsonpointer v0.17.0 h1:Bpl2DtZ6k7wKqfFs7e+4P08+M9I3FQgn09a1UsRUQbk=\ngithub.com/go-openapi/jsonpointer v0.17.0/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=\ngithub.com/go-openapi/jsonreference v0.17.0 h1:d/o7/fsLWWQZACbihvZxcyLQ59jfUVs7WOJv/ak7T7A=\ngithub.com/go-openapi/jsonreference v0.17.0/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=\ngithub.com/go-openapi/swag v0.17.0 h1:7wu+dZ5k83kvUWeAb+WUkFiUhDzwGqzTR/NhWzeo1JU=\ngithub.com/go-openapi/swag v0.17.0/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58 h1:otZG8yDCO4LVps5+9bxOeNiCvgmOyt96J3roHTYs7oE=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/header.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\nconst (\n\tjsonArray = \"array\"\n)\n\n// HeaderProps describes a response header\ntype HeaderProps struct {\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// Header describes a header for a response of the API\n//\n// For more information: http://goo.gl/8us55a#headerObject\ntype Header struct {\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tHeaderProps\n}\n\n// ResponseHeader creates a new header instance for use in a response\nfunc ResponseHeader() *Header {\n\treturn new(Header)\n}\n\n// WithDescription sets the description on this response, allows for chaining\nfunc (h *Header) WithDescription(description string) *Header {\n\th.Description = description\n\treturn h\n}\n\n// Typed a fluent builder method for the type of parameter\nfunc (h *Header) Typed(tpe, format string) *Header {\n\th.Type = tpe\n\th.Format = format\n\treturn h\n}\n\n// CollectionOf a fluent builder method for an array item\nfunc (h *Header) CollectionOf(items *Items, format string) *Header {\n\th.Type = jsonArray\n\th.Items = items\n\th.CollectionFormat = format\n\treturn h\n}\n\n// WithDefault sets the default value on this item\nfunc (h *Header) WithDefault(defaultValue interface{}) *Header {\n\th.Default = defaultValue\n\treturn h\n}\n\n// WithMaxLength sets a max length value\nfunc (h *Header) WithMaxLength(max int64) *Header {\n\th.MaxLength = &max\n\treturn h\n}\n\n// WithMinLength sets a min length value\nfunc (h *Header) WithMinLength(min int64) *Header {\n\th.MinLength = &min\n\treturn h\n}\n\n// WithPattern sets a pattern value\nfunc (h *Header) WithPattern(pattern string) *Header {\n\th.Pattern = pattern\n\treturn h\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (h *Header) WithMultipleOf(number float64) *Header {\n\th.MultipleOf = &number\n\treturn h\n}\n\n// WithMaximum sets a maximum number value\nfunc (h *Header) WithMaximum(max float64, exclusive bool) *Header {\n\th.Maximum = &max\n\th.ExclusiveMaximum = exclusive\n\treturn h\n}\n\n// WithMinimum sets a minimum number value\nfunc (h *Header) WithMinimum(min float64, exclusive bool) *Header {\n\th.Minimum = &min\n\th.ExclusiveMinimum = exclusive\n\treturn h\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (h *Header) WithEnum(values ...interface{}) *Header {\n\th.Enum = append([]interface{}{}, values...)\n\treturn h\n}\n\n// WithMaxItems sets the max items\nfunc (h *Header) WithMaxItems(size int64) *Header {\n\th.MaxItems = &size\n\treturn h\n}\n\n// WithMinItems sets the min items\nfunc (h *Header) WithMinItems(size int64) *Header {\n\th.MinItems = &size\n\treturn h\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (h *Header) UniqueValues() *Header {\n\th.UniqueItems = true\n\treturn h\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (h *Header) AllowDuplicates() *Header {\n\th.UniqueItems = false\n\treturn h\n}\n\n// MarshalJSON marshal this to JSON\nfunc (h Header) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(h.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\n// UnmarshalJSON unmarshals this header from JSON\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &h.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &h.HeaderProps)\n}\n\n// JSONLookup look up a value by the json property name\nfunc (h Header) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := h.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\n\tr, _, err := jsonpointer.GetForToken(h.CommonValidations, token)\n\tif err != nil && !strings.HasPrefix(err.Error(), \"object has no field\") {\n\t\treturn nil, err\n\t}\n\tif r != nil {\n\t\treturn r, nil\n\t}\n\tr, _, err = jsonpointer.GetForToken(h.SimpleSchema, token)\n\tif err != nil && !strings.HasPrefix(err.Error(), \"object has no field\") {\n\t\treturn nil, err\n\t}\n\tif r != nil {\n\t\treturn r, nil\n\t}\n\tr, _, err = jsonpointer.GetForToken(h.HeaderProps, token)\n\treturn r, err\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// Extensions vendor specific extensions\ntype Extensions map[string]interface{}\n\n// Add adds a value to these extensions\nfunc (e Extensions) Add(key string, value interface{}) {\n\trealKey := strings.ToLower(key)\n\te[realKey] = value\n}\n\n// GetString gets a string value from the extensions\nfunc (e Extensions) GetString(key string) (string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(string)\n\t\treturn str, ok\n\t}\n\treturn \"\", false\n}\n\n// GetBool gets a string value from the extensions\nfunc (e Extensions) GetBool(key string) (bool, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(bool)\n\t\treturn str, ok\n\t}\n\treturn false, false\n}\n\n// GetStringSlice gets a string value from the extensions\nfunc (e Extensions) GetStringSlice(key string) ([]string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tarr, isSlice := v.([]interface{})\n\t\tif !isSlice {\n\t\t\treturn nil, false\n\t\t}\n\t\tvar strs []string\n\t\tfor _, iface := range arr {\n\t\t\tstr, isString := iface.(string)\n\t\t\tif !isString {\n\t\t\t\treturn nil, false\n\t\t\t}\n\t\t\tstrs = append(strs, str)\n\t\t}\n\t\treturn strs, ok\n\t}\n\treturn nil, false\n}\n\n// VendorExtensible composition block.\ntype VendorExtensible struct {\n\tExtensions Extensions\n}\n\n// AddExtension adds an extension to this extensible object\nfunc (v *VendorExtensible) AddExtension(key string, value interface{}) {\n\tif value == nil {\n\t\treturn\n\t}\n\tif v.Extensions == nil {\n\t\tv.Extensions = make(map[string]interface{})\n\t}\n\tv.Extensions.Add(key, value)\n}\n\n// MarshalJSON marshals the extensions to json\nfunc (v VendorExtensible) MarshalJSON() ([]byte, error) {\n\ttoser := make(map[string]interface{})\n\tfor k, v := range v.Extensions {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\ttoser[k] = v\n\t\t}\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON for this extensible object\nfunc (v *VendorExtensible) UnmarshalJSON(data []byte) error {\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif v.Extensions == nil {\n\t\t\t\tv.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tv.Extensions[k] = vv\n\t\t}\n\t}\n\treturn nil\n}\n\n// InfoProps the properties for an info definition\ntype InfoProps struct {\n\tDescription    string       `json:\"description,omitempty\"`\n\tTitle          string       `json:\"title,omitempty\"`\n\tTermsOfService string       `json:\"termsOfService,omitempty\"`\n\tContact        *ContactInfo `json:\"contact,omitempty\"`\n\tLicense        *License     `json:\"license,omitempty\"`\n\tVersion        string       `json:\"version,omitempty\"`\n}\n\n// Info object provides metadata about the API.\n// The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.\n//\n// For more information: http://goo.gl/8us55a#infoObject\ntype Info struct {\n\tVendorExtensible\n\tInfoProps\n}\n\n// JSONLookup look up a value by the json property name\nfunc (i Info) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := i.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tr, _, err := jsonpointer.GetForToken(i.InfoProps, token)\n\treturn r, err\n}\n\n// MarshalJSON marshal this to JSON\nfunc (i Info) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(i.InfoProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (i *Info) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &i.InfoProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &i.VendorExtensible)\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/items.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\nconst (\n\tjsonRef = \"$ref\"\n)\n\n// SimpleSchema describe swagger simple schemas for parameters and headers\ntype SimpleSchema struct {\n\tType             string      `json:\"type,omitempty\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitempty\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// TypeName return the type (or format) of a simple schema\nfunc (s *SimpleSchema) TypeName() string {\n\tif s.Format != \"\" {\n\t\treturn s.Format\n\t}\n\treturn s.Type\n}\n\n// ItemsTypeName yields the type of items in a simple schema array\nfunc (s *SimpleSchema) ItemsTypeName() string {\n\tif s.Items == nil {\n\t\treturn \"\"\n\t}\n\treturn s.Items.TypeName()\n}\n\n// CommonValidations describe common JSON-schema validations\ntype CommonValidations struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitempty\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Items a limited subset of JSON-Schema's items object.\n// It is used by parameter definitions that are not located in \"body\".\n//\n// For more information: http://goo.gl/8us55a#items-object\ntype Items struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n}\n\n// NewItems creates a new instance of items\nfunc NewItems() *Items {\n\treturn &Items{}\n}\n\n// Typed a fluent builder method for the type of item\nfunc (i *Items) Typed(tpe, format string) *Items {\n\ti.Type = tpe\n\ti.Format = format\n\treturn i\n}\n\n// CollectionOf a fluent builder method for an array item\nfunc (i *Items) CollectionOf(items *Items, format string) *Items {\n\ti.Type = jsonArray\n\ti.Items = items\n\ti.CollectionFormat = format\n\treturn i\n}\n\n// WithDefault sets the default value on this item\nfunc (i *Items) WithDefault(defaultValue interface{}) *Items {\n\ti.Default = defaultValue\n\treturn i\n}\n\n// WithMaxLength sets a max length value\nfunc (i *Items) WithMaxLength(max int64) *Items {\n\ti.MaxLength = &max\n\treturn i\n}\n\n// WithMinLength sets a min length value\nfunc (i *Items) WithMinLength(min int64) *Items {\n\ti.MinLength = &min\n\treturn i\n}\n\n// WithPattern sets a pattern value\nfunc (i *Items) WithPattern(pattern string) *Items {\n\ti.Pattern = pattern\n\treturn i\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (i *Items) WithMultipleOf(number float64) *Items {\n\ti.MultipleOf = &number\n\treturn i\n}\n\n// WithMaximum sets a maximum number value\nfunc (i *Items) WithMaximum(max float64, exclusive bool) *Items {\n\ti.Maximum = &max\n\ti.ExclusiveMaximum = exclusive\n\treturn i\n}\n\n// WithMinimum sets a minimum number value\nfunc (i *Items) WithMinimum(min float64, exclusive bool) *Items {\n\ti.Minimum = &min\n\ti.ExclusiveMinimum = exclusive\n\treturn i\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (i *Items) WithEnum(values ...interface{}) *Items {\n\ti.Enum = append([]interface{}{}, values...)\n\treturn i\n}\n\n// WithMaxItems sets the max items\nfunc (i *Items) WithMaxItems(size int64) *Items {\n\ti.MaxItems = &size\n\treturn i\n}\n\n// WithMinItems sets the min items\nfunc (i *Items) WithMinItems(size int64) *Items {\n\ti.MinItems = &size\n\treturn i\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (i *Items) UniqueValues() *Items {\n\ti.UniqueItems = true\n\treturn i\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (i *Items) AllowDuplicates() *Items {\n\ti.UniqueItems = false\n\treturn i\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (i *Items) UnmarshalJSON(data []byte) error {\n\tvar validations CommonValidations\n\tif err := json.Unmarshal(data, &validations); err != nil {\n\t\treturn err\n\t}\n\tvar ref Refable\n\tif err := json.Unmarshal(data, &ref); err != nil {\n\t\treturn err\n\t}\n\tvar simpleSchema SimpleSchema\n\tif err := json.Unmarshal(data, &simpleSchema); err != nil {\n\t\treturn err\n\t}\n\tvar vendorExtensible VendorExtensible\n\tif err := json.Unmarshal(data, &vendorExtensible); err != nil {\n\t\treturn err\n\t}\n\ti.Refable = ref\n\ti.CommonValidations = validations\n\ti.SimpleSchema = simpleSchema\n\ti.VendorExtensible = vendorExtensible\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (i Items) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(i.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(i.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b4, b3, b1, b2), nil\n}\n\n// JSONLookup look up a value by the json property name\nfunc (i Items) JSONLookup(token string) (interface{}, error) {\n\tif token == jsonRef {\n\t\treturn &i.Ref, nil\n\t}\n\n\tr, _, err := jsonpointer.GetForToken(i.CommonValidations, token)\n\tif err != nil && !strings.HasPrefix(err.Error(), \"object has no field\") {\n\t\treturn nil, err\n\t}\n\tif r != nil {\n\t\treturn r, nil\n\t}\n\tr, _, err = jsonpointer.GetForToken(i.SimpleSchema, token)\n\treturn r, err\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/license.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// License information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#licenseObject\ntype License struct {\n\tName string `json:\"name,omitempty\"`\n\tURL  string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/normalizer.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\n// normalize absolute path for cache.\n// on Windows, drive letters should be converted to lower as scheme in net/url.URL\nfunc normalizeAbsPath(path string) string {\n\tu, err := url.Parse(path)\n\tif err != nil {\n\t\tdebugLog(\"normalize absolute path failed: %s\", err)\n\t\treturn path\n\t}\n\treturn u.String()\n}\n\n// base or refPath could be a file path or a URL\n// given a base absolute path and a ref path, return the absolute path of refPath\n// 1) if refPath is absolute, return it\n// 2) if refPath is relative, join it with basePath keeping the scheme, hosts, and ports if exists\n// base could be a directory or a full file path\nfunc normalizePaths(refPath, base string) string {\n\trefURL, _ := url.Parse(refPath)\n\tif path.IsAbs(refURL.Path) || filepath.IsAbs(refPath) {\n\t\t// refPath is actually absolute\n\t\tif refURL.Host != \"\" {\n\t\t\treturn refPath\n\t\t}\n\t\tparts := strings.Split(refPath, \"#\")\n\t\tresult := filepath.FromSlash(parts[0])\n\t\tif len(parts) == 2 {\n\t\t\tresult += \"#\" + parts[1]\n\t\t}\n\t\treturn result\n\t}\n\n\t// relative refPath\n\tbaseURL, _ := url.Parse(base)\n\tif !strings.HasPrefix(refPath, \"#\") {\n\t\t// combining paths\n\t\tif baseURL.Host != \"\" {\n\t\t\tbaseURL.Path = path.Join(path.Dir(baseURL.Path), refURL.Path)\n\t\t} else { // base is a file\n\t\t\tnewBase := fmt.Sprintf(\"%s#%s\", filepath.Join(filepath.Dir(base), filepath.FromSlash(refURL.Path)), refURL.Fragment)\n\t\t\treturn newBase\n\t\t}\n\n\t}\n\t// copying fragment from ref to base\n\tbaseURL.Fragment = refURL.Fragment\n\treturn baseURL.String()\n}\n\n// denormalizePaths returns to simplest notation on file $ref,\n// i.e. strips the absolute path and sets a path relative to the base path.\n//\n// This is currently used when we rewrite ref after a circular ref has been detected\nfunc denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref {\n\tdebugLog(\"denormalizeFileRef for: %s\", ref.String())\n\n\tif ref.String() == \"\" || ref.IsRoot() || ref.HasFragmentOnly {\n\t\treturn ref\n\t}\n\t// strip relativeBase from URI\n\trelativeBaseURL, _ := url.Parse(relativeBase)\n\trelativeBaseURL.Fragment = \"\"\n\n\tif relativeBaseURL.IsAbs() && strings.HasPrefix(ref.String(), relativeBase) {\n\t\t// this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix\n\t\tr, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase))\n\t\treturn &r\n\t}\n\n\tif relativeBaseURL.IsAbs() {\n\t\t// other absolute URL get unchanged (i.e. with a non-empty scheme)\n\t\treturn ref\n\t}\n\n\t// for relative file URIs:\n\toriginalRelativeBaseURL, _ := url.Parse(originalRelativeBase)\n\toriginalRelativeBaseURL.Fragment = \"\"\n\tif strings.HasPrefix(ref.String(), originalRelativeBaseURL.String()) {\n\t\t// the resulting ref is in the expanded spec: return a local ref\n\t\tr, _ := NewRef(strings.TrimPrefix(ref.String(), originalRelativeBaseURL.String()))\n\t\treturn &r\n\t}\n\n\t// check if we may set a relative path, considering the original base path for this spec.\n\t// Example:\n\t//   spec is located at /mypath/spec.json\n\t//   my normalized ref points to: /mypath/item.json#/target\n\t//   expected result: item.json#/target\n\tparts := strings.Split(ref.String(), \"#\")\n\trelativePath, err := filepath.Rel(path.Dir(originalRelativeBaseURL.String()), parts[0])\n\tif err != nil {\n\t\t// there is no common ancestor (e.g. different drives on windows)\n\t\t// leaves the ref unchanged\n\t\treturn ref\n\t}\n\tif len(parts) == 2 {\n\t\trelativePath += \"#\" + parts[1]\n\t}\n\tr, _ := NewRef(relativePath)\n\treturn &r\n}\n\n// relativeBase could be an ABSOLUTE file path or an ABSOLUTE URL\nfunc normalizeFileRef(ref *Ref, relativeBase string) *Ref {\n\t// This is important for when the reference is pointing to the root schema\n\tif ref.String() == \"\" {\n\t\tr, _ := NewRef(relativeBase)\n\t\treturn &r\n\t}\n\n\tdebugLog(\"normalizing %s against %s\", ref.String(), relativeBase)\n\n\ts := normalizePaths(ref.String(), relativeBase)\n\tr, _ := NewRef(s)\n\treturn &r\n}\n\n// absPath returns the absolute path of a file\nfunc absPath(fname string) (string, error) {\n\tif strings.HasPrefix(fname, \"http\") {\n\t\treturn fname, nil\n\t}\n\tif filepath.IsAbs(fname) {\n\t\treturn fname, nil\n\t}\n\twd, err := os.Getwd()\n\treturn filepath.Join(wd, fname), err\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/operation.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"bytes\"\n\t\"encoding/gob\"\n\t\"encoding/json\"\n\t\"sort\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\nfunc init() {\n\t//gob.Register(map[string][]interface{}{})\n\tgob.Register(map[string]interface{}{})\n\tgob.Register([]interface{}{})\n}\n\n// OperationProps describes an operation\n//\n// NOTES:\n// - schemes, when present must be from [http, https, ws, wss]: see validate\n// - Security is handled as a special case: see MarshalJSON function\ntype OperationProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitempty\"`\n}\n\n// MarshalJSON takes care of serializing operation properties to JSON\n//\n// We use a custom marhaller here to handle a special cases related to\n// the Security field. We need to preserve zero length slice\n// while omitting the field when the value is nil/unset.\nfunc (op OperationProps) MarshalJSON() ([]byte, error) {\n\ttype Alias OperationProps\n\tif op.Security == nil {\n\t\treturn json.Marshal(&struct {\n\t\t\tSecurity []map[string][]string `json:\"security,omitempty\"`\n\t\t\t*Alias\n\t\t}{\n\t\t\tSecurity: op.Security,\n\t\t\tAlias:    (*Alias)(&op),\n\t\t})\n\t}\n\treturn json.Marshal(&struct {\n\t\tSecurity []map[string][]string `json:\"security\"`\n\t\t*Alias\n\t}{\n\t\tSecurity: op.Security,\n\t\tAlias:    (*Alias)(&op),\n\t})\n}\n\n// Operation describes a single API operation on a path.\n//\n// For more information: http://goo.gl/8us55a#operationObject\ntype Operation struct {\n\tVendorExtensible\n\tOperationProps\n}\n\n// SuccessResponse gets a success response model\nfunc (o *Operation) SuccessResponse() (*Response, int, bool) {\n\tif o.Responses == nil {\n\t\treturn nil, 0, false\n\t}\n\n\tresponseCodes := make([]int, 0, len(o.Responses.StatusCodeResponses))\n\tfor k := range o.Responses.StatusCodeResponses {\n\t\tif k >= 200 && k < 300 {\n\t\t\tresponseCodes = append(responseCodes, k)\n\t\t}\n\t}\n\tif len(responseCodes) > 0 {\n\t\tsort.Ints(responseCodes)\n\t\tv := o.Responses.StatusCodeResponses[responseCodes[0]]\n\t\treturn &v, responseCodes[0], true\n\t}\n\n\treturn o.Responses.Default, 0, false\n}\n\n// JSONLookup look up a value by the json property name\nfunc (o Operation) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := o.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tr, _, err := jsonpointer.GetForToken(o.OperationProps, token)\n\treturn r, err\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (o Operation) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\n// NewOperation creates a new operation instance.\n// It expects an ID as parameter but not passing an ID is also valid.\nfunc NewOperation(id string) *Operation {\n\top := new(Operation)\n\top.ID = id\n\treturn op\n}\n\n// WithID sets the ID property on this operation, allows for chaining.\nfunc (o *Operation) WithID(id string) *Operation {\n\to.ID = id\n\treturn o\n}\n\n// WithDescription sets the description on this operation, allows for chaining\nfunc (o *Operation) WithDescription(description string) *Operation {\n\to.Description = description\n\treturn o\n}\n\n// WithSummary sets the summary on this operation, allows for chaining\nfunc (o *Operation) WithSummary(summary string) *Operation {\n\to.Summary = summary\n\treturn o\n}\n\n// WithExternalDocs sets/removes the external docs for/from this operation.\n// When you pass empty strings as params the external documents will be removed.\n// When you pass non-empty string as one value then those values will be used on the external docs object.\n// So when you pass a non-empty description, you should also pass the url and vice versa.\nfunc (o *Operation) WithExternalDocs(description, url string) *Operation {\n\tif description == \"\" && url == \"\" {\n\t\to.ExternalDocs = nil\n\t\treturn o\n\t}\n\n\tif o.ExternalDocs == nil {\n\t\to.ExternalDocs = &ExternalDocumentation{}\n\t}\n\to.ExternalDocs.Description = description\n\to.ExternalDocs.URL = url\n\treturn o\n}\n\n// Deprecate marks the operation as deprecated\nfunc (o *Operation) Deprecate() *Operation {\n\to.Deprecated = true\n\treturn o\n}\n\n// Undeprecate marks the operation as not deprected\nfunc (o *Operation) Undeprecate() *Operation {\n\to.Deprecated = false\n\treturn o\n}\n\n// WithConsumes adds media types for incoming body values\nfunc (o *Operation) WithConsumes(mediaTypes ...string) *Operation {\n\to.Consumes = append(o.Consumes, mediaTypes...)\n\treturn o\n}\n\n// WithProduces adds media types for outgoing body values\nfunc (o *Operation) WithProduces(mediaTypes ...string) *Operation {\n\to.Produces = append(o.Produces, mediaTypes...)\n\treturn o\n}\n\n// WithTags adds tags for this operation\nfunc (o *Operation) WithTags(tags ...string) *Operation {\n\to.Tags = append(o.Tags, tags...)\n\treturn o\n}\n\n// AddParam adds a parameter to this operation, when a parameter for that location\n// and with that name already exists it will be replaced\nfunc (o *Operation) AddParam(param *Parameter) *Operation {\n\tif param == nil {\n\t\treturn o\n\t}\n\n\tfor i, p := range o.Parameters {\n\t\tif p.Name == param.Name && p.In == param.In {\n\t\t\tparams := append(o.Parameters[:i], *param)\n\t\t\tparams = append(params, o.Parameters[i+1:]...)\n\t\t\to.Parameters = params\n\t\t\treturn o\n\t\t}\n\t}\n\n\to.Parameters = append(o.Parameters, *param)\n\treturn o\n}\n\n// RemoveParam removes a parameter from the operation\nfunc (o *Operation) RemoveParam(name, in string) *Operation {\n\tfor i, p := range o.Parameters {\n\t\tif p.Name == name && p.In == in {\n\t\t\to.Parameters = append(o.Parameters[:i], o.Parameters[i+1:]...)\n\t\t\treturn o\n\t\t}\n\t}\n\treturn o\n}\n\n// SecuredWith adds a security scope to this operation.\nfunc (o *Operation) SecuredWith(name string, scopes ...string) *Operation {\n\to.Security = append(o.Security, map[string][]string{name: scopes})\n\treturn o\n}\n\n// WithDefaultResponse adds a default response to the operation.\n// Passing a nil value will remove the response\nfunc (o *Operation) WithDefaultResponse(response *Response) *Operation {\n\treturn o.RespondsWith(0, response)\n}\n\n// RespondsWith adds a status code response to the operation.\n// When the code is 0 the value of the response will be used as default response value.\n// When the value of the response is nil it will be removed from the operation\nfunc (o *Operation) RespondsWith(code int, response *Response) *Operation {\n\tif o.Responses == nil {\n\t\to.Responses = new(Responses)\n\t}\n\tif code == 0 {\n\t\to.Responses.Default = response\n\t\treturn o\n\t}\n\tif response == nil {\n\t\tdelete(o.Responses.StatusCodeResponses, code)\n\t\treturn o\n\t}\n\tif o.Responses.StatusCodeResponses == nil {\n\t\to.Responses.StatusCodeResponses = make(map[int]Response)\n\t}\n\to.Responses.StatusCodeResponses[code] = *response\n\treturn o\n}\n\ntype opsAlias OperationProps\n\ntype gobAlias struct {\n\tSecurity []map[string]struct {\n\t\tList []string\n\t\tPad  bool\n\t}\n\tAlias           *opsAlias\n\tSecurityIsEmpty bool\n}\n\n// GobEncode provides a safe gob encoder for Operation, including empty security requirements\nfunc (o Operation) GobEncode() ([]byte, error) {\n\traw := struct {\n\t\tExt   VendorExtensible\n\t\tProps OperationProps\n\t}{\n\t\tExt:   o.VendorExtensible,\n\t\tProps: o.OperationProps,\n\t}\n\tvar b bytes.Buffer\n\terr := gob.NewEncoder(&b).Encode(raw)\n\treturn b.Bytes(), err\n}\n\n// GobDecode provides a safe gob decoder for Operation, including empty security requirements\nfunc (o *Operation) GobDecode(b []byte) error {\n\tvar raw struct {\n\t\tExt   VendorExtensible\n\t\tProps OperationProps\n\t}\n\n\tbuf := bytes.NewBuffer(b)\n\terr := gob.NewDecoder(buf).Decode(&raw)\n\tif err != nil {\n\t\treturn err\n\t}\n\to.VendorExtensible = raw.Ext\n\to.OperationProps = raw.Props\n\treturn nil\n}\n\n// GobEncode provides a safe gob encoder for Operation, including empty security requirements\nfunc (op OperationProps) GobEncode() ([]byte, error) {\n\traw := gobAlias{\n\t\tAlias: (*opsAlias)(&op),\n\t}\n\n\tvar b bytes.Buffer\n\tif op.Security == nil {\n\t\t// nil security requirement\n\t\terr := gob.NewEncoder(&b).Encode(raw)\n\t\treturn b.Bytes(), err\n\t}\n\n\tif len(op.Security) == 0 {\n\t\t// empty, but non-nil security requirement\n\t\traw.SecurityIsEmpty = true\n\t\traw.Alias.Security = nil\n\t\terr := gob.NewEncoder(&b).Encode(raw)\n\t\treturn b.Bytes(), err\n\t}\n\n\traw.Security = make([]map[string]struct {\n\t\tList []string\n\t\tPad  bool\n\t}, 0, len(op.Security))\n\tfor _, req := range op.Security {\n\t\tv := make(map[string]struct {\n\t\t\tList []string\n\t\t\tPad  bool\n\t\t}, len(req))\n\t\tfor k, val := range req {\n\t\t\tv[k] = struct {\n\t\t\t\tList []string\n\t\t\t\tPad  bool\n\t\t\t}{\n\t\t\t\tList: val,\n\t\t\t}\n\t\t}\n\t\traw.Security = append(raw.Security, v)\n\t}\n\n\terr := gob.NewEncoder(&b).Encode(raw)\n\treturn b.Bytes(), err\n}\n\n// GobDecode provides a safe gob decoder for Operation, including empty security requirements\nfunc (op *OperationProps) GobDecode(b []byte) error {\n\tvar raw gobAlias\n\n\tbuf := bytes.NewBuffer(b)\n\terr := gob.NewDecoder(buf).Decode(&raw)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif raw.Alias == nil {\n\t\treturn nil\n\t}\n\n\tswitch {\n\tcase raw.SecurityIsEmpty:\n\t\t// empty, but non-nil security requirement\n\t\traw.Alias.Security = []map[string][]string{}\n\tcase len(raw.Alias.Security) == 0:\n\t\t// nil security requirement\n\t\traw.Alias.Security = nil\n\tdefault:\n\t\traw.Alias.Security = make([]map[string][]string, 0, len(raw.Security))\n\t\tfor _, req := range raw.Security {\n\t\t\tv := make(map[string][]string, len(req))\n\t\t\tfor k, val := range req {\n\t\t\t\tv[k] = make([]string, 0, len(val.List))\n\t\t\t\tv[k] = append(v[k], val.List...)\n\t\t\t}\n\t\t\traw.Alias.Security = append(raw.Alias.Security, v)\n\t\t}\n\t}\n\n\t*op = *(*OperationProps)(raw.Alias)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/parameter.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// QueryParam creates a query parameter\nfunc QueryParam(name string) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name, In: \"query\"}}\n}\n\n// HeaderParam creates a header parameter, this is always required by default\nfunc HeaderParam(name string) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name, In: \"header\", Required: true}}\n}\n\n// PathParam creates a path parameter, this is always required\nfunc PathParam(name string) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name, In: \"path\", Required: true}}\n}\n\n// BodyParam creates a body parameter\nfunc BodyParam(name string, schema *Schema) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name, In: \"body\", Schema: schema},\n\t\tSimpleSchema: SimpleSchema{Type: \"object\"}}\n}\n\n// FormDataParam creates a body parameter\nfunc FormDataParam(name string) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name, In: \"formData\"}}\n}\n\n// FileParam creates a body parameter\nfunc FileParam(name string) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name, In: \"formData\"},\n\t\tSimpleSchema: SimpleSchema{Type: \"file\"}}\n}\n\n// SimpleArrayParam creates a param for a simple array (string, int, date etc)\nfunc SimpleArrayParam(name, tpe, fmt string) *Parameter {\n\treturn &Parameter{ParamProps: ParamProps{Name: name},\n\t\tSimpleSchema: SimpleSchema{Type: jsonArray, CollectionFormat: \"csv\",\n\t\t\tItems: &Items{SimpleSchema: SimpleSchema{Type: \"string\", Format: fmt}}}}\n}\n\n// ParamRef creates a parameter that's a json reference\nfunc ParamRef(uri string) *Parameter {\n\tp := new(Parameter)\n\tp.Ref = MustCreateRef(uri)\n\treturn p\n}\n\n// ParamProps describes the specific attributes of an operation parameter\n//\n// NOTE:\n// - Schema is defined when \"in\" == \"body\": see validate\n// - AllowEmptyValue is allowed where \"in\" == \"query\" || \"formData\"\ntype ParamProps struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitempty\"`\n\tSchema          *Schema `json:\"schema,omitempty\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitempty\"`\n}\n\n// Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).\n//\n// There are five possible parameter types.\n// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part\n//   of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`,\n//   the path parameter is `itemId`.\n// * Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.\n// * Header - Custom headers that are expected as part of the request.\n// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be\n//   _one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for\n//   documentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist\n//   together for the same operation.\n// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or\n//   `multipart/form-data` are used as the content type of the request (in Swagger's definition,\n//   the [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used\n//   to send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be\n//   declared together with a body parameter for the same operation. Form parameters have a different format based on\n//   the content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).\n//   * `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload.\n//   For example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple\n//   parameters that are being transferred.\n//   * `multipart/form-data` - each parameter takes a section in the payload with an internal header.\n//   For example, for the header `Content-Disposition: form-data; name=\"submit-name\"` the name of the parameter is\n//   `submit-name`. This type of form parameters is more commonly used for file transfers.\n//\n// For more information: http://goo.gl/8us55a#parameterObject\ntype Parameter struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tParamProps\n}\n\n// JSONLookup look up a value by the json property name\nfunc (p Parameter) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := p.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tif token == jsonRef {\n\t\treturn &p.Ref, nil\n\t}\n\n\tr, _, err := jsonpointer.GetForToken(p.CommonValidations, token)\n\tif err != nil && !strings.HasPrefix(err.Error(), \"object has no field\") {\n\t\treturn nil, err\n\t}\n\tif r != nil {\n\t\treturn r, nil\n\t}\n\tr, _, err = jsonpointer.GetForToken(p.SimpleSchema, token)\n\tif err != nil && !strings.HasPrefix(err.Error(), \"object has no field\") {\n\t\treturn nil, err\n\t}\n\tif r != nil {\n\t\treturn r, nil\n\t}\n\tr, _, err = jsonpointer.GetForToken(p.ParamProps, token)\n\treturn r, err\n}\n\n// WithDescription a fluent builder method for the description of the parameter\nfunc (p *Parameter) WithDescription(description string) *Parameter {\n\tp.Description = description\n\treturn p\n}\n\n// Named a fluent builder method to override the name of the parameter\nfunc (p *Parameter) Named(name string) *Parameter {\n\tp.Name = name\n\treturn p\n}\n\n// WithLocation a fluent builder method to override the location of the parameter\nfunc (p *Parameter) WithLocation(in string) *Parameter {\n\tp.In = in\n\treturn p\n}\n\n// Typed a fluent builder method for the type of the parameter value\nfunc (p *Parameter) Typed(tpe, format string) *Parameter {\n\tp.Type = tpe\n\tp.Format = format\n\treturn p\n}\n\n// CollectionOf a fluent builder method for an array parameter\nfunc (p *Parameter) CollectionOf(items *Items, format string) *Parameter {\n\tp.Type = jsonArray\n\tp.Items = items\n\tp.CollectionFormat = format\n\treturn p\n}\n\n// WithDefault sets the default value on this parameter\nfunc (p *Parameter) WithDefault(defaultValue interface{}) *Parameter {\n\tp.AsOptional() // with default implies optional\n\tp.Default = defaultValue\n\treturn p\n}\n\n// AllowsEmptyValues flags this parameter as being ok with empty values\nfunc (p *Parameter) AllowsEmptyValues() *Parameter {\n\tp.AllowEmptyValue = true\n\treturn p\n}\n\n// NoEmptyValues flags this parameter as not liking empty values\nfunc (p *Parameter) NoEmptyValues() *Parameter {\n\tp.AllowEmptyValue = false\n\treturn p\n}\n\n// AsOptional flags this parameter as optional\nfunc (p *Parameter) AsOptional() *Parameter {\n\tp.Required = false\n\treturn p\n}\n\n// AsRequired flags this parameter as required\nfunc (p *Parameter) AsRequired() *Parameter {\n\tif p.Default != nil { // with a default required makes no sense\n\t\treturn p\n\t}\n\tp.Required = true\n\treturn p\n}\n\n// WithMaxLength sets a max length value\nfunc (p *Parameter) WithMaxLength(max int64) *Parameter {\n\tp.MaxLength = &max\n\treturn p\n}\n\n// WithMinLength sets a min length value\nfunc (p *Parameter) WithMinLength(min int64) *Parameter {\n\tp.MinLength = &min\n\treturn p\n}\n\n// WithPattern sets a pattern value\nfunc (p *Parameter) WithPattern(pattern string) *Parameter {\n\tp.Pattern = pattern\n\treturn p\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (p *Parameter) WithMultipleOf(number float64) *Parameter {\n\tp.MultipleOf = &number\n\treturn p\n}\n\n// WithMaximum sets a maximum number value\nfunc (p *Parameter) WithMaximum(max float64, exclusive bool) *Parameter {\n\tp.Maximum = &max\n\tp.ExclusiveMaximum = exclusive\n\treturn p\n}\n\n// WithMinimum sets a minimum number value\nfunc (p *Parameter) WithMinimum(min float64, exclusive bool) *Parameter {\n\tp.Minimum = &min\n\tp.ExclusiveMinimum = exclusive\n\treturn p\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (p *Parameter) WithEnum(values ...interface{}) *Parameter {\n\tp.Enum = append([]interface{}{}, values...)\n\treturn p\n}\n\n// WithMaxItems sets the max items\nfunc (p *Parameter) WithMaxItems(size int64) *Parameter {\n\tp.MaxItems = &size\n\treturn p\n}\n\n// WithMinItems sets the min items\nfunc (p *Parameter) WithMinItems(size int64) *Parameter {\n\tp.MinItems = &size\n\treturn p\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (p *Parameter) UniqueValues() *Parameter {\n\tp.UniqueItems = true\n\treturn p\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (p *Parameter) AllowDuplicates() *Parameter {\n\tp.UniqueItems = false\n\treturn p\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &p.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.ParamProps)\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Parameter) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(p.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.ParamProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b3, b1, b2, b4, b5), nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/path_item.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// PathItemProps the path item specific properties\ntype PathItemProps struct {\n\tGet        *Operation  `json:\"get,omitempty\"`\n\tPut        *Operation  `json:\"put,omitempty\"`\n\tPost       *Operation  `json:\"post,omitempty\"`\n\tDelete     *Operation  `json:\"delete,omitempty\"`\n\tOptions    *Operation  `json:\"options,omitempty\"`\n\tHead       *Operation  `json:\"head,omitempty\"`\n\tPatch      *Operation  `json:\"patch,omitempty\"`\n\tParameters []Parameter `json:\"parameters,omitempty\"`\n}\n\n// PathItem describes the operations available on a single path.\n// A Path Item may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n// The path itself is still exposed to the documentation viewer but they will\n// not know which operations and parameters are available.\n//\n// For more information: http://goo.gl/8us55a#pathItemObject\ntype PathItem struct {\n\tRefable\n\tVendorExtensible\n\tPathItemProps\n}\n\n// JSONLookup look up a value by the json property name\nfunc (p PathItem) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := p.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tif token == jsonRef {\n\t\treturn &p.Ref, nil\n\t}\n\tr, _, err := jsonpointer.GetForToken(p.PathItemProps, token)\n\treturn r, err\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *PathItem) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.PathItemProps)\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p PathItem) MarshalJSON() ([]byte, error) {\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.PathItemProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b3, b4, b5)\n\treturn concated, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/paths.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n)\n\n// Paths holds the relative paths to the individual endpoints.\n// The path is appended to the [`basePath`](http://goo.gl/8us55a#swaggerBasePath) in order\n// to construct the full URL.\n// The Paths may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n//\n// For more information: http://goo.gl/8us55a#pathsObject\ntype Paths struct {\n\tVendorExtensible\n\tPaths map[string]PathItem `json:\"-\"` // custom serializer to flatten this, each entry must start with \"/\"\n}\n\n// JSONLookup look up a value by the json property name\nfunc (p Paths) JSONLookup(token string) (interface{}, error) {\n\tif pi, ok := p.Paths[token]; ok {\n\t\treturn &pi, nil\n\t}\n\tif ex, ok := p.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\treturn nil, fmt.Errorf(\"object has no field %q\", token)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t}\n\t\t\tvar pi PathItem\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Paths) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpths := make(map[string]PathItem)\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tpths[k] = v\n\t\t}\n\t}\n\tb2, err := json.Marshal(pths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/ref.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"bytes\"\n\t\"encoding/gob\"\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/go-openapi/jsonreference\"\n)\n\n// Refable is a struct for things that accept a $ref property\ntype Refable struct {\n\tRef Ref\n}\n\n// MarshalJSON marshals the ref to json\nfunc (r Refable) MarshalJSON() ([]byte, error) {\n\treturn r.Ref.MarshalJSON()\n}\n\n// UnmarshalJSON unmarshalss the ref from json\nfunc (r *Refable) UnmarshalJSON(d []byte) error {\n\treturn json.Unmarshal(d, &r.Ref)\n}\n\n// Ref represents a json reference that is potentially resolved\ntype Ref struct {\n\tjsonreference.Ref\n}\n\n// RemoteURI gets the remote uri part of the ref\nfunc (r *Ref) RemoteURI() string {\n\tif r.String() == \"\" {\n\t\treturn r.String()\n\t}\n\n\tu := *r.GetURL()\n\tu.Fragment = \"\"\n\treturn u.String()\n}\n\n// IsValidURI returns true when the url the ref points to can be found\nfunc (r *Ref) IsValidURI(basepaths ...string) bool {\n\tif r.String() == \"\" {\n\t\treturn true\n\t}\n\n\tv := r.RemoteURI()\n\tif v == \"\" {\n\t\treturn true\n\t}\n\n\tif r.HasFullURL {\n\t\trr, err := http.Get(v)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\treturn rr.StatusCode/100 == 2\n\t}\n\n\tif !(r.HasFileScheme || r.HasFullFilePath || r.HasURLPathOnly) {\n\t\treturn false\n\t}\n\n\t// check for local file\n\tpth := v\n\tif r.HasURLPathOnly {\n\t\tbase := \".\"\n\t\tif len(basepaths) > 0 {\n\t\t\tbase = filepath.Dir(filepath.Join(basepaths...))\n\t\t}\n\t\tp, e := filepath.Abs(filepath.ToSlash(filepath.Join(base, pth)))\n\t\tif e != nil {\n\t\t\treturn false\n\t\t}\n\t\tpth = p\n\t}\n\n\tfi, err := os.Stat(filepath.ToSlash(pth))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn !fi.IsDir()\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tref, err := r.Ref.Inherits(child.Ref)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{Ref: *ref}, nil\n}\n\n// NewRef creates a new instance of a ref object\n// returns an error when the reference uri is an invalid uri\nfunc NewRef(refURI string) (Ref, error) {\n\tref, err := jsonreference.New(refURI)\n\tif err != nil {\n\t\treturn Ref{}, err\n\t}\n\treturn Ref{Ref: ref}, nil\n}\n\n// MustCreateRef creates a ref object but panics when refURI is invalid.\n// Use the NewRef method for a version that returns an error.\nfunc MustCreateRef(refURI string) Ref {\n\treturn Ref{Ref: jsonreference.MustCreateRef(refURI)}\n}\n\n// MarshalJSON marshals this ref into a JSON object\nfunc (r Ref) MarshalJSON() ([]byte, error) {\n\tstr := r.String()\n\tif str == \"\" {\n\t\tif r.IsRoot() {\n\t\t\treturn []byte(`{\"$ref\":\"\"}`), nil\n\t\t}\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$ref\": str}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshals this ref from a JSON object\nfunc (r *Ref) UnmarshalJSON(d []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(d, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\n// GobEncode provides a safe gob encoder for Ref\nfunc (r Ref) GobEncode() ([]byte, error) {\n\tvar b bytes.Buffer\n\traw, err := r.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = gob.NewEncoder(&b).Encode(raw)\n\treturn b.Bytes(), err\n}\n\n// GobDecode provides a safe gob decoder for Ref\nfunc (r *Ref) GobDecode(b []byte) error {\n\tvar raw []byte\n\tbuf := bytes.NewBuffer(b)\n\terr := gob.NewDecoder(buf).Decode(&raw)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(raw, r)\n}\n\nfunc (r *Ref) fromMap(v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\n\tif vv, ok := v[\"$ref\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tref, err := jsonreference.New(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*r = Ref{Ref: ref}\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/response.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// ResponseProps properties specific to a response\ntype ResponseProps struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitempty\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Response describes a single response from an API Operation.\n//\n// For more information: http://goo.gl/8us55a#responseObject\ntype Response struct {\n\tRefable\n\tResponseProps\n\tVendorExtensible\n}\n\n// JSONLookup look up a value by the json property name\nfunc (r Response) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := r.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tif token == \"$ref\" {\n\t\treturn &r.Ref, nil\n\t}\n\tptr, _, err := jsonpointer.GetForToken(r.ResponseProps, token)\n\treturn ptr, err\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &r.VendorExtensible)\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Response) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\n// NewResponse creates a new response instance\nfunc NewResponse() *Response {\n\treturn new(Response)\n}\n\n// ResponseRef creates a response as a json reference\nfunc ResponseRef(url string) *Response {\n\tresp := NewResponse()\n\tresp.Ref = MustCreateRef(url)\n\treturn resp\n}\n\n// WithDescription sets the description on this response, allows for chaining\nfunc (r *Response) WithDescription(description string) *Response {\n\tr.Description = description\n\treturn r\n}\n\n// WithSchema sets the schema on this response, allows for chaining.\n// Passing a nil argument removes the schema from this response\nfunc (r *Response) WithSchema(schema *Schema) *Response {\n\tr.Schema = schema\n\treturn r\n}\n\n// AddHeader adds a header to this response\nfunc (r *Response) AddHeader(name string, header *Header) *Response {\n\tif header == nil {\n\t\treturn r.RemoveHeader(name)\n\t}\n\tif r.Headers == nil {\n\t\tr.Headers = make(map[string]Header)\n\t}\n\tr.Headers[name] = *header\n\treturn r\n}\n\n// RemoveHeader removes a header from this response\nfunc (r *Response) RemoveHeader(name string) *Response {\n\tdelete(r.Headers, name)\n\treturn r\n}\n\n// AddExample adds an example to this response\nfunc (r *Response) AddExample(mediaType string, example interface{}) *Response {\n\tif r.Examples == nil {\n\t\tr.Examples = make(map[string]interface{})\n\t}\n\tr.Examples[mediaType] = example\n\treturn r\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/responses.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n)\n\n// Responses is a container for the expected responses of an operation.\n// The container maps a HTTP response code to the expected response.\n// It is not expected from the documentation to necessarily cover all possible HTTP response codes,\n// since they may not be known in advance. However, it is expected from the documentation to cover\n// a successful operation response and any known errors.\n//\n// The `default` can be used a default response object for all HTTP codes that are not covered\n// individually by the specification.\n//\n// The `Responses Object` MUST contain at least one response code, and it SHOULD be the response\n// for a successful operation call.\n//\n// For more information: http://goo.gl/8us55a#responsesObject\ntype Responses struct {\n\tVendorExtensible\n\tResponsesProps\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (r Responses) JSONLookup(token string) (interface{}, error) {\n\tif token == \"default\" {\n\t\treturn r.Default, nil\n\t}\n\tif ex, ok := r.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tif i, err := strconv.Atoi(token); err == nil {\n\t\tif scr, ok := r.StatusCodeResponses[i]; ok {\n\t\t\treturn scr, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"object has no field %q\", token)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\tif reflect.DeepEqual(ResponsesProps{}, r.ResponsesProps) {\n\t\tr.ResponsesProps = ResponsesProps{}\n\t}\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Responses) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\n// ResponsesProps describes all responses for an operation.\n// It tells what is the default response and maps all responses with a\n// HTTP status code.\ntype ResponsesProps struct {\n\tDefault             *Response\n\tStatusCodeResponses map[int]Response\n}\n\n// MarshalJSON marshals responses as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = *r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tvar res map[string]Response\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn nil\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tr.Default = &v\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = v\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/schema.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// BooleanProperty creates a boolean property\nfunc BooleanProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"boolean\"}}}\n}\n\n// BoolProperty creates a boolean property\nfunc BoolProperty() *Schema { return BooleanProperty() }\n\n// StringProperty creates a string property\nfunc StringProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// CharProperty creates a string property\nfunc CharProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// Float64Property creates a float64/double property\nfunc Float64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"double\"}}\n}\n\n// Float32Property creates a float32/float property\nfunc Float32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"float\"}}\n}\n\n// Int8Property creates an int8 property\nfunc Int8Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int8\"}}\n}\n\n// Int16Property creates an int16 property\nfunc Int16Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int16\"}}\n}\n\n// Int32Property creates an int32 property\nfunc Int32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int32\"}}\n}\n\n// Int64Property creates an int64 property\nfunc Int64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int64\"}}\n}\n\n// StrFmtProperty creates a property for the named string format\nfunc StrFmtProperty(format string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: format}}\n}\n\n// DateProperty creates a date property\nfunc DateProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date\"}}\n}\n\n// DateTimeProperty creates a date time property\nfunc DateTimeProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date-time\"}}\n}\n\n// MapProperty creates a map property\nfunc MapProperty(property *Schema) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"object\"},\n\t\tAdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}\n}\n\n// RefProperty creates a ref property\nfunc RefProperty(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// RefSchema creates a ref property\nfunc RefSchema(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// ArrayProperty creates an array property\nfunc ArrayProperty(items *Schema) *Schema {\n\tif items == nil {\n\t\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"array\"}}}\n\t}\n\treturn &Schema{SchemaProps: SchemaProps{Items: &SchemaOrArray{Schema: items}, Type: []string{\"array\"}}}\n}\n\n// ComposedSchema creates a schema with allOf\nfunc ComposedSchema(schemas ...Schema) *Schema {\n\ts := new(Schema)\n\ts.AllOf = schemas\n\treturn s\n}\n\n// SchemaURL represents a schema url\ntype SchemaURL string\n\n// MarshalJSON marshal this to JSON\nfunc (r SchemaURL) MarshalJSON() ([]byte, error) {\n\tif r == \"\" {\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$schema\": string(r)}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshal this from JSON\nfunc (r *SchemaURL) UnmarshalJSON(data []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(data, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *SchemaURL) fromMap(v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$schema\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tu, err := url.Parse(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t*r = SchemaURL(u.String())\n\t\t}\n\t}\n\treturn nil\n}\n\n// SchemaProps describes a JSON schema (draft 4)\ntype SchemaProps struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitempty\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitempty\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitempty\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitempty\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitempty\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitempty\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitempty\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// SwaggerSchemaProps are additional properties supported by swagger schemas, but not JSON-schema (draft 4)\ntype SwaggerSchemaProps struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitempty\"`\n\tXML           *XMLObject             `json:\"xml,omitempty\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Schema the schema object allows the definition of input and output data types.\n// These types can be objects, but also primitives and arrays.\n// This object is based on the [JSON Schema Specification Draft 4](http://json-schema.org/)\n// and uses a predefined subset of it.\n// On top of this subset, there are extensions provided by this specification to allow for more complete documentation.\n//\n// For more information: http://goo.gl/8us55a#schemaObject\ntype Schema struct {\n\tVendorExtensible\n\tSchemaProps\n\tSwaggerSchemaProps\n\tExtraProps map[string]interface{} `json:\"-\"`\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (s Schema) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := s.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\n\tif ex, ok := s.ExtraProps[token]; ok {\n\t\treturn &ex, nil\n\t}\n\n\tr, _, err := jsonpointer.GetForToken(s.SchemaProps, token)\n\tif r != nil || (err != nil && !strings.HasPrefix(err.Error(), \"object has no field\")) {\n\t\treturn r, err\n\t}\n\tr, _, err = jsonpointer.GetForToken(s.SwaggerSchemaProps, token)\n\treturn r, err\n}\n\n// WithID sets the id for this schema, allows for chaining\nfunc (s *Schema) WithID(id string) *Schema {\n\ts.ID = id\n\treturn s\n}\n\n// WithTitle sets the title for this schema, allows for chaining\nfunc (s *Schema) WithTitle(title string) *Schema {\n\ts.Title = title\n\treturn s\n}\n\n// WithDescription sets the description for this schema, allows for chaining\nfunc (s *Schema) WithDescription(description string) *Schema {\n\ts.Description = description\n\treturn s\n}\n\n// WithProperties sets the properties for this schema\nfunc (s *Schema) WithProperties(schemas map[string]Schema) *Schema {\n\ts.Properties = schemas\n\treturn s\n}\n\n// SetProperty sets a property on this schema\nfunc (s *Schema) SetProperty(name string, schema Schema) *Schema {\n\tif s.Properties == nil {\n\t\ts.Properties = make(map[string]Schema)\n\t}\n\ts.Properties[name] = schema\n\treturn s\n}\n\n// WithAllOf sets the all of property\nfunc (s *Schema) WithAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = schemas\n\treturn s\n}\n\n// WithMaxProperties sets the max number of properties an object can have\nfunc (s *Schema) WithMaxProperties(max int64) *Schema {\n\ts.MaxProperties = &max\n\treturn s\n}\n\n// WithMinProperties sets the min number of properties an object must have\nfunc (s *Schema) WithMinProperties(min int64) *Schema {\n\ts.MinProperties = &min\n\treturn s\n}\n\n// Typed sets the type of this schema for a single value item\nfunc (s *Schema) Typed(tpe, format string) *Schema {\n\ts.Type = []string{tpe}\n\ts.Format = format\n\treturn s\n}\n\n// AddType adds a type with potential format to the types for this schema\nfunc (s *Schema) AddType(tpe, format string) *Schema {\n\ts.Type = append(s.Type, tpe)\n\tif format != \"\" {\n\t\ts.Format = format\n\t}\n\treturn s\n}\n\n// CollectionOf a fluent builder method for an array parameter\nfunc (s *Schema) CollectionOf(items Schema) *Schema {\n\ts.Type = []string{jsonArray}\n\ts.Items = &SchemaOrArray{Schema: &items}\n\treturn s\n}\n\n// WithDefault sets the default value on this parameter\nfunc (s *Schema) WithDefault(defaultValue interface{}) *Schema {\n\ts.Default = defaultValue\n\treturn s\n}\n\n// WithRequired flags this parameter as required\nfunc (s *Schema) WithRequired(items ...string) *Schema {\n\ts.Required = items\n\treturn s\n}\n\n// AddRequired  adds field names to the required properties array\nfunc (s *Schema) AddRequired(items ...string) *Schema {\n\ts.Required = append(s.Required, items...)\n\treturn s\n}\n\n// WithMaxLength sets a max length value\nfunc (s *Schema) WithMaxLength(max int64) *Schema {\n\ts.MaxLength = &max\n\treturn s\n}\n\n// WithMinLength sets a min length value\nfunc (s *Schema) WithMinLength(min int64) *Schema {\n\ts.MinLength = &min\n\treturn s\n}\n\n// WithPattern sets a pattern value\nfunc (s *Schema) WithPattern(pattern string) *Schema {\n\ts.Pattern = pattern\n\treturn s\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (s *Schema) WithMultipleOf(number float64) *Schema {\n\ts.MultipleOf = &number\n\treturn s\n}\n\n// WithMaximum sets a maximum number value\nfunc (s *Schema) WithMaximum(max float64, exclusive bool) *Schema {\n\ts.Maximum = &max\n\ts.ExclusiveMaximum = exclusive\n\treturn s\n}\n\n// WithMinimum sets a minimum number value\nfunc (s *Schema) WithMinimum(min float64, exclusive bool) *Schema {\n\ts.Minimum = &min\n\ts.ExclusiveMinimum = exclusive\n\treturn s\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (s *Schema) WithEnum(values ...interface{}) *Schema {\n\ts.Enum = append([]interface{}{}, values...)\n\treturn s\n}\n\n// WithMaxItems sets the max items\nfunc (s *Schema) WithMaxItems(size int64) *Schema {\n\ts.MaxItems = &size\n\treturn s\n}\n\n// WithMinItems sets the min items\nfunc (s *Schema) WithMinItems(size int64) *Schema {\n\ts.MinItems = &size\n\treturn s\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (s *Schema) UniqueValues() *Schema {\n\ts.UniqueItems = true\n\treturn s\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (s *Schema) AllowDuplicates() *Schema {\n\ts.UniqueItems = false\n\treturn s\n}\n\n// AddToAllOf adds a schema to the allOf property\nfunc (s *Schema) AddToAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = append(s.AllOf, schemas...)\n\treturn s\n}\n\n// WithDiscriminator sets the name of the discriminator field\nfunc (s *Schema) WithDiscriminator(discriminator string) *Schema {\n\ts.Discriminator = discriminator\n\treturn s\n}\n\n// AsReadOnly flags this schema as readonly\nfunc (s *Schema) AsReadOnly() *Schema {\n\ts.ReadOnly = true\n\treturn s\n}\n\n// AsWritable flags this schema as writeable (not read-only)\nfunc (s *Schema) AsWritable() *Schema {\n\ts.ReadOnly = false\n\treturn s\n}\n\n// WithExample sets the example for this schema\nfunc (s *Schema) WithExample(example interface{}) *Schema {\n\ts.Example = example\n\treturn s\n}\n\n// WithExternalDocs sets/removes the external docs for/from this schema.\n// When you pass empty strings as params the external documents will be removed.\n// When you pass non-empty string as one value then those values will be used on the external docs object.\n// So when you pass a non-empty description, you should also pass the url and vice versa.\nfunc (s *Schema) WithExternalDocs(description, url string) *Schema {\n\tif description == \"\" && url == \"\" {\n\t\ts.ExternalDocs = nil\n\t\treturn s\n\t}\n\n\tif s.ExternalDocs == nil {\n\t\ts.ExternalDocs = &ExternalDocumentation{}\n\t}\n\ts.ExternalDocs.Description = description\n\ts.ExternalDocs.URL = url\n\treturn s\n}\n\n// WithXMLName sets the xml name for the object\nfunc (s *Schema) WithXMLName(name string) *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Name = name\n\treturn s\n}\n\n// WithXMLNamespace sets the xml namespace for the object\nfunc (s *Schema) WithXMLNamespace(namespace string) *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Namespace = namespace\n\treturn s\n}\n\n// WithXMLPrefix sets the xml prefix for the object\nfunc (s *Schema) WithXMLPrefix(prefix string) *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Prefix = prefix\n\treturn s\n}\n\n// AsXMLAttribute flags this object as xml attribute\nfunc (s *Schema) AsXMLAttribute() *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Attribute = true\n\treturn s\n}\n\n// AsXMLElement flags this object as an xml node\nfunc (s *Schema) AsXMLElement() *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Attribute = false\n\treturn s\n}\n\n// AsWrappedXML flags this object as wrapped, this is mostly useful for array types\nfunc (s *Schema) AsWrappedXML() *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Wrapped = true\n\treturn s\n}\n\n// AsUnwrappedXML flags this object as an xml node\nfunc (s *Schema) AsUnwrappedXML() *Schema {\n\tif s.XML == nil {\n\t\ts.XML = new(XMLObject)\n\t}\n\ts.XML.Wrapped = false\n\treturn s\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s Schema) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(s.SchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema props %v\", err)\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"vendor props %v\", err)\n\t}\n\tb3, err := s.Ref.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ref prop %v\", err)\n\t}\n\tb4, err := s.Schema.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema prop %v\", err)\n\t}\n\tb5, err := json.Marshal(s.SwaggerSchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"common validations %v\", err)\n\t}\n\tvar b6 []byte\n\tif s.ExtraProps != nil {\n\t\tjj, err := json.Marshal(s.ExtraProps)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"extra props %v\", err)\n\t\t}\n\t\tb6 = jj\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4, b5, b6), nil\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *Schema) UnmarshalJSON(data []byte) error {\n\tprops := struct {\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}{}\n\tif err := json.Unmarshal(data, &props); err != nil {\n\t\treturn err\n\t}\n\n\tsch := Schema{\n\t\tSchemaProps:        props.SchemaProps,\n\t\tSwaggerSchemaProps: props.SwaggerSchemaProps,\n\t}\n\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\n\t_ = sch.Ref.fromMap(d)\n\t_ = sch.Schema.fromMap(d)\n\n\tdelete(d, \"$ref\")\n\tdelete(d, \"$schema\")\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(d, pn)\n\t}\n\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif sch.Extensions == nil {\n\t\t\t\tsch.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tsch.Extensions[k] = vv\n\t\t\tcontinue\n\t\t}\n\t\tif sch.ExtraProps == nil {\n\t\t\tsch.ExtraProps = map[string]interface{}{}\n\t\t}\n\t\tsch.ExtraProps[k] = vv\n\t}\n\n\t*s = sch\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/schema_loader.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n)\n\n// PathLoader function to use when loading remote refs\nvar PathLoader func(string) (json.RawMessage, error)\n\nfunc init() {\n\tPathLoader = func(path string) (json.RawMessage, error) {\n\t\tdata, err := swag.LoadFromFileOrHTTP(path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn json.RawMessage(data), nil\n\t}\n}\n\n// resolverContext allows to share a context during spec processing.\n// At the moment, it just holds the index of circular references found.\ntype resolverContext struct {\n\t// circulars holds all visited circular references, which allows shortcuts.\n\t// NOTE: this is not just a performance improvement: it is required to figure out\n\t// circular references which participate several cycles.\n\t// This structure is privately instantiated and needs not be locked against\n\t// concurrent access, unless we chose to implement a parallel spec walking.\n\tcirculars map[string]bool\n\tbasePath  string\n}\n\nfunc newResolverContext(originalBasePath string) *resolverContext {\n\treturn &resolverContext{\n\t\tcirculars: make(map[string]bool),\n\t\tbasePath:  originalBasePath, // keep the root base path in context\n\t}\n}\n\ntype schemaLoader struct {\n\troot    interface{}\n\toptions *ExpandOptions\n\tcache   ResolutionCache\n\tcontext *resolverContext\n\tloadDoc func(string) (json.RawMessage, error)\n}\n\nfunc (r *schemaLoader) transitiveResolver(basePath string, ref Ref) (*schemaLoader, error) {\n\tif ref.IsRoot() || ref.HasFragmentOnly {\n\t\treturn r, nil\n\t}\n\n\tbaseRef, _ := NewRef(basePath)\n\tcurrentRef := normalizeFileRef(&ref, basePath)\n\tif strings.HasPrefix(currentRef.String(), baseRef.String()) {\n\t\treturn r, nil\n\t}\n\n\t// Set a new root to resolve against\n\trootURL := currentRef.GetURL()\n\trootURL.Fragment = \"\"\n\troot, _ := r.cache.Get(rootURL.String())\n\n\t// shallow copy of resolver options to set a new RelativeBase when\n\t// traversing multiple documents\n\tnewOptions := r.options\n\tnewOptions.RelativeBase = rootURL.String()\n\tdebugLog(\"setting new root: %s\", newOptions.RelativeBase)\n\tresolver, err := defaultSchemaLoader(root, newOptions, r.cache, r.context)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn resolver, nil\n}\n\nfunc (r *schemaLoader) updateBasePath(transitive *schemaLoader, basePath string) string {\n\tif transitive != r {\n\t\tdebugLog(\"got a new resolver\")\n\t\tif transitive.options != nil && transitive.options.RelativeBase != \"\" {\n\t\t\tbasePath, _ = absPath(transitive.options.RelativeBase)\n\t\t\tdebugLog(\"new basePath = %s\", basePath)\n\t\t}\n\t}\n\treturn basePath\n}\n\nfunc (r *schemaLoader) resolveRef(ref *Ref, target interface{}, basePath string) error {\n\ttgt := reflect.ValueOf(target)\n\tif tgt.Kind() != reflect.Ptr {\n\t\treturn fmt.Errorf(\"resolve ref: target needs to be a pointer\")\n\t}\n\n\trefURL := ref.GetURL()\n\tif refURL == nil {\n\t\treturn nil\n\t}\n\n\tvar res interface{}\n\tvar data interface{}\n\tvar err error\n\t// Resolve against the root if it isn't nil, and if ref is pointing at the root, or has a fragment only which means\n\t// it is pointing somewhere in the root.\n\troot := r.root\n\tif (ref.IsRoot() || ref.HasFragmentOnly) && root == nil && basePath != \"\" {\n\t\tif baseRef, erb := NewRef(basePath); erb == nil {\n\t\t\troot, _, _, _ = r.load(baseRef.GetURL())\n\t\t}\n\t}\n\tif (ref.IsRoot() || ref.HasFragmentOnly) && root != nil {\n\t\tdata = root\n\t} else {\n\t\tbaseRef := normalizeFileRef(ref, basePath)\n\t\tdebugLog(\"current ref is: %s\", ref.String())\n\t\tdebugLog(\"current ref normalized file: %s\", baseRef.String())\n\t\tdata, _, _, err = r.load(baseRef.GetURL())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tres = data\n\tif ref.String() != \"\" {\n\t\tres, _, err = ref.GetPointer().Get(data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn swag.DynamicJSONToStruct(res, target)\n}\n\nfunc (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error) {\n\tdebugLog(\"loading schema from url: %s\", refURL)\n\ttoFetch := *refURL\n\ttoFetch.Fragment = \"\"\n\n\tnormalized := normalizeAbsPath(toFetch.String())\n\n\tdata, fromCache := r.cache.Get(normalized)\n\tif !fromCache {\n\t\tb, err := r.loadDoc(normalized)\n\t\tif err != nil {\n\t\t\treturn nil, url.URL{}, false, err\n\t\t}\n\n\t\tif err := json.Unmarshal(b, &data); err != nil {\n\t\t\treturn nil, url.URL{}, false, err\n\t\t}\n\t\tr.cache.Set(normalized, data)\n\t}\n\n\treturn data, toFetch, fromCache, nil\n}\n\n// isCircular detects cycles in sequences of $ref.\n// It relies on a private context (which needs not be locked).\nfunc (r *schemaLoader) isCircular(ref *Ref, basePath string, parentRefs ...string) (foundCycle bool) {\n\tnormalizedRef := normalizePaths(ref.String(), basePath)\n\tif _, ok := r.context.circulars[normalizedRef]; ok {\n\t\t// circular $ref has been already detected in another explored cycle\n\t\tfoundCycle = true\n\t\treturn\n\t}\n\tfoundCycle = swag.ContainsStringsCI(parentRefs, normalizedRef)\n\tif foundCycle {\n\t\tr.context.circulars[normalizedRef] = true\n\t}\n\treturn\n}\n\n// Resolve resolves a reference against basePath and stores the result in target\n// Resolve is not in charge of following references, it only resolves ref by following its URL\n// if the schema that ref is referring to has more refs in it. Resolve doesn't resolve them\n// if basePath is an empty string, ref is resolved against the root schema stored in the schemaLoader struct\nfunc (r *schemaLoader) Resolve(ref *Ref, target interface{}, basePath string) error {\n\treturn r.resolveRef(ref, target, basePath)\n}\n\nfunc (r *schemaLoader) deref(input interface{}, parentRefs []string, basePath string) error {\n\tvar ref *Ref\n\tswitch refable := input.(type) {\n\tcase *Schema:\n\t\tref = &refable.Ref\n\tcase *Parameter:\n\t\tref = &refable.Ref\n\tcase *Response:\n\t\tref = &refable.Ref\n\tcase *PathItem:\n\t\tref = &refable.Ref\n\tdefault:\n\t\treturn fmt.Errorf(\"deref: unsupported type %T\", input)\n\t}\n\n\tcurRef := ref.String()\n\tif curRef != \"\" {\n\t\tnormalizedRef := normalizeFileRef(ref, basePath)\n\t\tnormalizedBasePath := normalizedRef.RemoteURI()\n\n\t\tif r.isCircular(normalizedRef, basePath, parentRefs...) {\n\t\t\treturn nil\n\t\t}\n\n\t\tif err := r.resolveRef(ref, input, basePath); r.shouldStopOnError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\t// NOTE(fredbi): removed basePath check => needs more testing\n\t\tif ref.String() != \"\" && ref.String() != curRef {\n\t\t\tparentRefs = append(parentRefs, normalizedRef.String())\n\t\t\treturn r.deref(input, parentRefs, normalizedBasePath)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (r *schemaLoader) shouldStopOnError(err error) bool {\n\tif err != nil && !r.options.ContinueOnError {\n\t\treturn true\n\t}\n\n\tif err != nil {\n\t\tlog.Println(err)\n\t}\n\n\treturn false\n}\n\nfunc defaultSchemaLoader(\n\troot interface{},\n\texpandOptions *ExpandOptions,\n\tcache ResolutionCache,\n\tcontext *resolverContext) (*schemaLoader, error) {\n\n\tif cache == nil {\n\t\tcache = resCache\n\t}\n\tif expandOptions == nil {\n\t\texpandOptions = &ExpandOptions{}\n\t}\n\tabsBase, _ := absPath(expandOptions.RelativeBase)\n\tif context == nil {\n\t\tcontext = newResolverContext(absBase)\n\t}\n\treturn &schemaLoader{\n\t\troot:    root,\n\t\toptions: expandOptions,\n\t\tcache:   cache,\n\t\tcontext: context,\n\t\tloadDoc: func(path string) (json.RawMessage, error) {\n\t\t\tdebugLog(\"fetching document at %q\", path)\n\t\t\treturn PathLoader(path)\n\t\t},\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/security_scheme.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\nconst (\n\tbasic       = \"basic\"\n\tapiKey      = \"apiKey\"\n\toauth2      = \"oauth2\"\n\timplicit    = \"implicit\"\n\tpassword    = \"password\"\n\tapplication = \"application\"\n\taccessCode  = \"accessCode\"\n)\n\n// BasicAuth creates a basic auth security scheme\nfunc BasicAuth() *SecurityScheme {\n\treturn &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{Type: basic}}\n}\n\n// APIKeyAuth creates an api key auth security scheme\nfunc APIKeyAuth(fieldName, valueSource string) *SecurityScheme {\n\treturn &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{Type: apiKey, Name: fieldName, In: valueSource}}\n}\n\n// OAuth2Implicit creates an implicit flow oauth2 security scheme\nfunc OAuth2Implicit(authorizationURL string) *SecurityScheme {\n\treturn &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{\n\t\tType:             oauth2,\n\t\tFlow:             implicit,\n\t\tAuthorizationURL: authorizationURL,\n\t}}\n}\n\n// OAuth2Password creates a password flow oauth2 security scheme\nfunc OAuth2Password(tokenURL string) *SecurityScheme {\n\treturn &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{\n\t\tType:     oauth2,\n\t\tFlow:     password,\n\t\tTokenURL: tokenURL,\n\t}}\n}\n\n// OAuth2Application creates an application flow oauth2 security scheme\nfunc OAuth2Application(tokenURL string) *SecurityScheme {\n\treturn &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{\n\t\tType:     oauth2,\n\t\tFlow:     application,\n\t\tTokenURL: tokenURL,\n\t}}\n}\n\n// OAuth2AccessToken creates an access token flow oauth2 security scheme\nfunc OAuth2AccessToken(authorizationURL, tokenURL string) *SecurityScheme {\n\treturn &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{\n\t\tType:             oauth2,\n\t\tFlow:             accessCode,\n\t\tAuthorizationURL: authorizationURL,\n\t\tTokenURL:         tokenURL,\n\t}}\n}\n\n// SecuritySchemeProps describes a swagger security scheme in the securityDefinitions section\ntype SecuritySchemeProps struct {\n\tDescription      string            `json:\"description,omitempty\"`\n\tType             string            `json:\"type\"`\n\tName             string            `json:\"name,omitempty\"`             // api key\n\tIn               string            `json:\"in,omitempty\"`               // api key\n\tFlow             string            `json:\"flow,omitempty\"`             // oauth2\n\tAuthorizationURL string            `json:\"authorizationUrl,omitempty\"` // oauth2\n\tTokenURL         string            `json:\"tokenUrl,omitempty\"`         // oauth2\n\tScopes           map[string]string `json:\"scopes,omitempty\"`           // oauth2\n}\n\n// AddScope adds a scope to this security scheme\nfunc (s *SecuritySchemeProps) AddScope(scope, description string) {\n\tif s.Scopes == nil {\n\t\ts.Scopes = make(map[string]string)\n\t}\n\ts.Scopes[scope] = description\n}\n\n// SecurityScheme allows the definition of a security scheme that can be used by the operations.\n// Supported schemes are basic authentication, an API key (either as a header or as a query parameter)\n// and OAuth2's common flows (implicit, password, application and access code).\n//\n// For more information: http://goo.gl/8us55a#securitySchemeObject\ntype SecurityScheme struct {\n\tVendorExtensible\n\tSecuritySchemeProps\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (s SecurityScheme) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := s.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\n\tr, _, err := jsonpointer.GetForToken(s.SecuritySchemeProps, token)\n\treturn r, err\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s SecurityScheme) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.VendorExtensible)\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/spec.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport \"encoding/json\"\n\n//go:generate curl -L --progress -o ./schemas/v2/schema.json http://swagger.io/v2/schema.json\n//go:generate curl -L --progress  -o ./schemas/jsonschema-draft-04.json http://json-schema.org/draft-04/schema\n//go:generate go-bindata -pkg=spec -prefix=./schemas -ignore=.*\\.md ./schemas/...\n//go:generate perl -pi -e s,Json,JSON,g bindata.go\n\nconst (\n\t// SwaggerSchemaURL the url for the swagger 2.0 schema to validate specs\n\tSwaggerSchemaURL = \"http://swagger.io/v2/schema.json#\"\n\t// JSONSchemaURL the url for the json schema schema\n\tJSONSchemaURL = \"http://json-schema.org/draft-04/schema#\"\n)\n\nvar (\n\tjsonSchema    *Schema\n\tswaggerSchema *Schema\n)\n\nfunc init() {\n\tjsonSchema = MustLoadJSONSchemaDraft04()\n\tswaggerSchema = MustLoadSwagger20Schema()\n}\n\n// MustLoadJSONSchemaDraft04 panics when Swagger20Schema returns an error\nfunc MustLoadJSONSchemaDraft04() *Schema {\n\td, e := JSONSchemaDraft04()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn d\n}\n\n// JSONSchemaDraft04 loads the json schema document for json shema draft04\nfunc JSONSchemaDraft04() (*Schema, error) {\n\tb, err := Asset(\"jsonschema-draft-04.json\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tschema := new(Schema)\n\tif err := json.Unmarshal(b, schema); err != nil {\n\t\treturn nil, err\n\t}\n\treturn schema, nil\n}\n\n// MustLoadSwagger20Schema panics when Swagger20Schema returns an error\nfunc MustLoadSwagger20Schema() *Schema {\n\td, e := Swagger20Schema()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn d\n}\n\n// Swagger20Schema loads the swagger 2.0 schema from the embedded assets\nfunc Swagger20Schema() (*Schema, error) {\n\n\tb, err := Asset(\"v2/schema.json\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tschema := new(Schema)\n\tif err := json.Unmarshal(b, schema); err != nil {\n\t\treturn nil, err\n\t}\n\treturn schema, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/swagger.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// Swagger this is the root document object for the API specification.\n// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier)\n// together into one document.\n//\n// For more information: http://goo.gl/8us55a#swagger-object-\ntype Swagger struct {\n\tVendorExtensible\n\tSwaggerProps\n}\n\n// JSONLookup look up a value by the json property name\nfunc (s Swagger) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := s.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\tr, _, err := jsonpointer.GetForToken(s.SwaggerProps, token)\n\treturn r, err\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(s.SwaggerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON unmarshals a swagger spec from json\nfunc (s *Swagger) UnmarshalJSON(data []byte) error {\n\tvar sw Swagger\n\tif err := json.Unmarshal(data, &sw.SwaggerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &sw.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\t*s = sw\n\treturn nil\n}\n\n// SwaggerProps captures the top-level properties of an Api specification\n//\n// NOTE: validation rules\n// - the scheme, when present must be from [http, https, ws, wss]\n// - BasePath must start with a leading \"/\"\n// - Paths is required\ntype SwaggerProps struct {\n\tID                  string                 `json:\"id,omitempty\"`\n\tConsumes            []string               `json:\"consumes,omitempty\"`\n\tProduces            []string               `json:\"produces,omitempty\"`\n\tSchemes             []string               `json:\"schemes,omitempty\"`\n\tSwagger             string                 `json:\"swagger,omitempty\"`\n\tInfo                *Info                  `json:\"info,omitempty\"`\n\tHost                string                 `json:\"host,omitempty\"`\n\tBasePath            string                 `json:\"basePath,omitempty\"`\n\tPaths               *Paths                 `json:\"paths\"`\n\tDefinitions         Definitions            `json:\"definitions,omitempty\"`\n\tParameters          map[string]Parameter   `json:\"parameters,omitempty\"`\n\tResponses           map[string]Response    `json:\"responses,omitempty\"`\n\tSecurityDefinitions SecurityDefinitions    `json:\"securityDefinitions,omitempty\"`\n\tSecurity            []map[string][]string  `json:\"security,omitempty\"`\n\tTags                []Tag                  `json:\"tags,omitempty\"`\n\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Dependencies represent a dependencies property\ntype Dependencies map[string]SchemaOrStringArray\n\n// SchemaOrBool represents a schema or boolean value, is biased towards true for the boolean property\ntype SchemaOrBool struct {\n\tAllows bool\n\tSchema *Schema\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (s SchemaOrBool) JSONLookup(token string) (interface{}, error) {\n\tif token == \"allows\" {\n\t\treturn s.Allows, nil\n\t}\n\tr, _, err := jsonpointer.GetForToken(s.Schema, token)\n\treturn r, err\n}\n\nvar jsTrue = []byte(\"true\")\nvar jsFalse = []byte(\"false\")\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalJSON() ([]byte, error) {\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn jsFalse, nil\n\t}\n\treturn jsTrue, nil\n}\n\n// UnmarshalJSON converts this bool or schema object from a JSON structure\nfunc (s *SchemaOrBool) UnmarshalJSON(data []byte) error {\n\tvar nw SchemaOrBool\n\tif len(data) >= 4 {\n\t\tif data[0] == '{' {\n\t\t\tvar sch Schema\n\t\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tnw.Schema = &sch\n\t\t}\n\t\tnw.Allows = !(data[0] == 'f' && data[1] == 'a' && data[2] == 'l' && data[3] == 's' && data[4] == 'e')\n\t}\n\t*s = nw\n\treturn nil\n}\n\n// SchemaOrStringArray represents a schema or a string array\ntype SchemaOrStringArray struct {\n\tSchema   *Schema\n\tProperty []string\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (s SchemaOrStringArray) JSONLookup(token string) (interface{}, error) {\n\tr, _, err := jsonpointer.GetForToken(s.Schema, token)\n\treturn r, err\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalJSON() ([]byte, error) {\n\tif len(s.Property) > 0 {\n\t\treturn json.Marshal(s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\treturn []byte(\"null\"), nil\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrStringArray) UnmarshalJSON(data []byte) error {\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tvar nw SchemaOrStringArray\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Property); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\n// Definitions contains the models explicitly defined in this spec\n// An object to hold data types that can be consumed and produced by operations.\n// These data types can be primitives, arrays or models.\n//\n// For more information: http://goo.gl/8us55a#definitionsObject\ntype Definitions map[string]Schema\n\n// SecurityDefinitions a declaration of the security schemes available to be used in the specification.\n// This does not enforce the security schemes on the operations and only serves to provide\n// the relevant details for each scheme.\n//\n// For more information: http://goo.gl/8us55a#securityDefinitionsObject\ntype SecurityDefinitions map[string]*SecurityScheme\n\n// StringOrArray represents a value that can either be a string\n// or an array of strings. Mainly here for serialization purposes\ntype StringOrArray []string\n\n// Contains returns true when the value is contained in the slice\nfunc (s StringOrArray) Contains(value string) bool {\n\tfor _, str := range s {\n\t\tif str == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (s SchemaOrArray) JSONLookup(token string) (interface{}, error) {\n\tif _, err := strconv.Atoi(token); err == nil {\n\t\tr, _, err := jsonpointer.GetForToken(s.Schemas, token)\n\t\treturn r, err\n\t}\n\tr, _, err := jsonpointer.GetForToken(s.Schema, token)\n\treturn r, err\n}\n\n// UnmarshalJSON unmarshals this string or array object from a JSON array or JSON string\nfunc (s *StringOrArray) UnmarshalJSON(data []byte) error {\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\n\tif first == '[' {\n\t\tvar parsed []string\n\t\tif err := json.Unmarshal(data, &parsed); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*s = StringOrArray(parsed)\n\t\treturn nil\n\t}\n\n\tvar single interface{}\n\tif err := json.Unmarshal(data, &single); err != nil {\n\t\treturn err\n\t}\n\tif single == nil {\n\t\treturn nil\n\t}\n\tswitch v := single.(type) {\n\tcase string:\n\t\t*s = StringOrArray([]string{v})\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"only string or array is allowed, not %T\", single)\n\t}\n}\n\n// MarshalJSON converts this string or array to a JSON array or JSON string\nfunc (s StringOrArray) MarshalJSON() ([]byte, error) {\n\tif len(s) == 1 {\n\t\treturn json.Marshal([]string(s)[0])\n\t}\n\treturn json.Marshal([]string(s))\n}\n\n// SchemaOrArray represents a value that can either be a Schema\n// or an array of Schema. Mainly here for serialization purposes\ntype SchemaOrArray struct {\n\tSchema  *Schema\n\tSchemas []Schema\n}\n\n// Len returns the number of schemas in this property\nfunc (s SchemaOrArray) Len() int {\n\tif s.Schema != nil {\n\t\treturn 1\n\t}\n\treturn len(s.Schemas)\n}\n\n// ContainsType returns true when one of the schemas is of the specified type\nfunc (s *SchemaOrArray) ContainsType(name string) bool {\n\tif s.Schema != nil {\n\t\treturn s.Schema.Type != nil && s.Schema.Type.Contains(name)\n\t}\n\treturn false\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalJSON() ([]byte, error) {\n\tif len(s.Schemas) > 0 {\n\t\treturn json.Marshal(s.Schemas)\n\t}\n\treturn json.Marshal(s.Schema)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrArray) UnmarshalJSON(data []byte) error {\n\tvar nw SchemaOrArray\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Schemas); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\n// vim:set ft=go noet sts=2 sw=2 ts=2:\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/tag.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/swag\"\n)\n\n// TagProps describe a tag entry in the top level tags section of a swagger spec\ntype TagProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tName         string                 `json:\"name,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// NewTag creates a new tag\nfunc NewTag(name, description string, externalDocs *ExternalDocumentation) Tag {\n\treturn Tag{TagProps: TagProps{Description: description, Name: name, ExternalDocs: externalDocs}}\n}\n\n// Tag allows adding meta data to a single tag that is used by the\n// [Operation Object](http://goo.gl/8us55a#operationObject).\n// It is not mandatory to have a Tag Object per tag used there.\n//\n// For more information: http://goo.gl/8us55a#tagObject\ntype Tag struct {\n\tVendorExtensible\n\tTagProps\n}\n\n// JSONLookup implements an interface to customize json pointer lookup\nfunc (t Tag) JSONLookup(token string) (interface{}, error) {\n\tif ex, ok := t.Extensions[token]; ok {\n\t\treturn &ex, nil\n\t}\n\n\tr, _, err := jsonpointer.GetForToken(t.TagProps, token)\n\treturn r, err\n}\n\n// MarshalJSON marshal this to JSON\nfunc (t Tag) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(t.TagProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(t.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (t *Tag) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &t.TagProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &t.VendorExtensible)\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/unused.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n/*\n\nimport (\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n)\n\n  // Some currently unused functions and definitions that\n  // used to be part of the expander.\n\n  // Moved here for the record and possible future reuse\n\nvar (\n\tidPtr, _  = jsonpointer.New(\"/id\")\n\trefPtr, _ = jsonpointer.New(\"/$ref\")\n)\n\nfunc idFromNode(node interface{}) (*Ref, error) {\n\tif idValue, _, err := idPtr.Get(node); err == nil {\n\t\tif refStr, ok := idValue.(string); ok && refStr != \"\" {\n\t\t\tidRef, err := NewRef(refStr)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn &idRef, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\nfunc nextRef(startingNode interface{}, startingRef *Ref, ptr *jsonpointer.Pointer) *Ref {\n\tif startingRef == nil {\n\t\treturn nil\n\t}\n\n\tif ptr == nil {\n\t\treturn startingRef\n\t}\n\n\tret := startingRef\n\tvar idRef *Ref\n\tnode := startingNode\n\n\tfor _, tok := range ptr.DecodedTokens() {\n\t\tnode, _, _ = jsonpointer.GetForToken(node, tok)\n\t\tif node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tidRef, _ = idFromNode(node)\n\t\tif idRef != nil {\n\t\t\tnw, err := ret.Inherits(*idRef)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tret = nw\n\t\t}\n\n\t\trefRef, _, _ := refPtr.Get(node)\n\t\tif refRef != nil {\n\t\t\tvar rf Ref\n\t\t\tswitch value := refRef.(type) {\n\t\t\tcase string:\n\t\t\t\trf, _ = NewRef(value)\n\t\t\t}\n\t\t\tnw, err := ret.Inherits(rf)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tnwURL := nw.GetURL()\n\t\t\tif nwURL.Scheme == \"file\" || (nwURL.Scheme == \"\" && nwURL.Host == \"\") {\n\t\t\t\tnwpt := filepath.ToSlash(nwURL.Path)\n\t\t\t\tif filepath.IsAbs(nwpt) {\n\t\t\t\t\t_, err := os.Stat(nwpt)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tnwURL.Path = filepath.Join(\".\", nwpt)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tret = nw\n\t\t}\n\n\t}\n\n\treturn ret\n}\n\n// basePathFromSchemaID returns a new basePath based on an existing basePath and a schema ID\nfunc basePathFromSchemaID(oldBasePath, id string) string {\n\tu, err := url.Parse(oldBasePath)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tuid, err := url.Parse(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif path.IsAbs(uid.Path) {\n\t\treturn id\n\t}\n\tu.Path = path.Join(path.Dir(u.Path), uid.Path)\n\treturn u.String()\n}\n*/\n\n// type ExtraSchemaProps map[string]interface{}\n\n// // JSONSchema represents a structure that is a json schema draft 04\n// type JSONSchema struct {\n// \tSchemaProps\n// \tExtraSchemaProps\n// }\n\n// // MarshalJSON marshal this to JSON\n// func (s JSONSchema) MarshalJSON() ([]byte, error) {\n// \tb1, err := json.Marshal(s.SchemaProps)\n// \tif err != nil {\n// \t\treturn nil, err\n// \t}\n// \tb2, err := s.Ref.MarshalJSON()\n// \tif err != nil {\n// \t\treturn nil, err\n// \t}\n// \tb3, err := s.Schema.MarshalJSON()\n// \tif err != nil {\n// \t\treturn nil, err\n// \t}\n// \tb4, err := json.Marshal(s.ExtraSchemaProps)\n// \tif err != nil {\n// \t\treturn nil, err\n// \t}\n// \treturn swag.ConcatJSON(b1, b2, b3, b4), nil\n// }\n\n// // UnmarshalJSON marshal this from JSON\n// func (s *JSONSchema) UnmarshalJSON(data []byte) error {\n// \tvar sch JSONSchema\n// \tif err := json.Unmarshal(data, &sch.SchemaProps); err != nil {\n// \t\treturn err\n// \t}\n// \tif err := json.Unmarshal(data, &sch.Ref); err != nil {\n// \t\treturn err\n// \t}\n// \tif err := json.Unmarshal(data, &sch.Schema); err != nil {\n// \t\treturn err\n// \t}\n// \tif err := json.Unmarshal(data, &sch.ExtraSchemaProps); err != nil {\n// \t\treturn err\n// \t}\n// \t*s = sch\n// \treturn nil\n// }\n"
  },
  {
    "path": "vendor/github.com/go-openapi/spec/xml_object.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// XMLObject a metadata object that allows for more fine-tuned XML model definitions.\n//\n// For more information: http://goo.gl/8us55a#xmlObject\ntype XMLObject struct {\n\tName      string `json:\"name,omitempty\"`\n\tNamespace string `json:\"namespace,omitempty\"`\n\tPrefix    string `json:\"prefix,omitempty\"`\n\tAttribute bool   `json:\"attribute,omitempty\"`\n\tWrapped   bool   `json:\"wrapped,omitempty\"`\n}\n\n// WithName sets the xml name for the object\nfunc (x *XMLObject) WithName(name string) *XMLObject {\n\tx.Name = name\n\treturn x\n}\n\n// WithNamespace sets the xml namespace for the object\nfunc (x *XMLObject) WithNamespace(namespace string) *XMLObject {\n\tx.Namespace = namespace\n\treturn x\n}\n\n// WithPrefix sets the xml prefix for the object\nfunc (x *XMLObject) WithPrefix(prefix string) *XMLObject {\n\tx.Prefix = prefix\n\treturn x\n}\n\n// AsAttribute flags this object as xml attribute\nfunc (x *XMLObject) AsAttribute() *XMLObject {\n\tx.Attribute = true\n\treturn x\n}\n\n// AsElement flags this object as an xml node\nfunc (x *XMLObject) AsElement() *XMLObject {\n\tx.Attribute = false\n\treturn x\n}\n\n// AsWrapped flags this object as wrapped, this is mostly useful for array types\nfunc (x *XMLObject) AsWrapped() *XMLObject {\n\tx.Wrapped = true\n\treturn x\n}\n\n// AsUnwrapped flags this object as an xml node\nfunc (x *XMLObject) AsUnwrapped() *XMLObject {\n\tx.Wrapped = false\n\treturn x\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/.gitignore",
    "content": ".DS_Store\n.DS_Store?\n._*\n.Spotlight-V100\n.Trashes\nIcon?\nehthumbs.db\nThumbs.db\n.idea\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/.travis.yml",
    "content": "sudo: false\nlanguage: go\ngo:\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - 1.12.x\n  - master\n\nbefore_install:\n  - go get golang.org/x/tools/cmd/cover\n  - go get github.com/mattn/goveralls\n\nbefore_script:\n  - echo -e \"[server]\\ninnodb_log_file_size=256MB\\ninnodb_buffer_pool_size=512MB\\nmax_allowed_packet=16MB\" | sudo tee -a /etc/mysql/my.cnf\n  - sudo service mysql restart\n  - .travis/wait_mysql.sh\n  - mysql -e 'create database gotest;'\n\nmatrix:\n  include:\n    - env: DB=MYSQL8\n      sudo: required\n      dist: trusty\n      go: 1.10.x\n      services:\n        - docker\n      before_install:\n        - go get golang.org/x/tools/cmd/cover\n        - go get github.com/mattn/goveralls\n        - docker pull mysql:8.0\n        - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret\n          mysql:8.0 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1\n        - cp .travis/docker.cnf ~/.my.cnf\n        - .travis/wait_mysql.sh\n      before_script:\n        - export MYSQL_TEST_USER=gotest\n        - export MYSQL_TEST_PASS=secret\n        - export MYSQL_TEST_ADDR=127.0.0.1:3307\n        - export MYSQL_TEST_CONCURRENT=1\n\n    - env: DB=MYSQL57\n      sudo: required\n      dist: trusty\n      go: 1.10.x\n      services:\n        - docker\n      before_install:\n        - go get golang.org/x/tools/cmd/cover\n        - go get github.com/mattn/goveralls\n        - docker pull mysql:5.7\n        - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret\n          mysql:5.7 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1\n        - cp .travis/docker.cnf ~/.my.cnf\n        - .travis/wait_mysql.sh\n      before_script:\n        - export MYSQL_TEST_USER=gotest\n        - export MYSQL_TEST_PASS=secret\n        - export MYSQL_TEST_ADDR=127.0.0.1:3307\n        - export MYSQL_TEST_CONCURRENT=1\n\n    - env: DB=MARIA55\n      sudo: required\n      dist: trusty\n      go: 1.10.x\n      services:\n        - docker\n      before_install:\n        - go get golang.org/x/tools/cmd/cover\n        - go get github.com/mattn/goveralls\n        - docker pull mariadb:5.5\n        - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret\n          mariadb:5.5 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1\n        - cp .travis/docker.cnf ~/.my.cnf\n        - .travis/wait_mysql.sh\n      before_script:\n        - export MYSQL_TEST_USER=gotest\n        - export MYSQL_TEST_PASS=secret\n        - export MYSQL_TEST_ADDR=127.0.0.1:3307\n        - export MYSQL_TEST_CONCURRENT=1\n\n    - env: DB=MARIA10_1\n      sudo: required\n      dist: trusty\n      go: 1.10.x\n      services:\n        - docker\n      before_install:\n        - go get golang.org/x/tools/cmd/cover\n        - go get github.com/mattn/goveralls\n        - docker pull mariadb:10.1\n        - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret\n          mariadb:10.1 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1\n        - cp .travis/docker.cnf ~/.my.cnf\n        - .travis/wait_mysql.sh\n      before_script:\n        - export MYSQL_TEST_USER=gotest\n        - export MYSQL_TEST_PASS=secret\n        - export MYSQL_TEST_ADDR=127.0.0.1:3307\n        - export MYSQL_TEST_CONCURRENT=1\n\n    - os: osx\n      osx_image: xcode10.1\n      addons:\n        homebrew:\n          packages:\n            - mysql\n      go: 1.12.x\n      before_install:\n        - go get golang.org/x/tools/cmd/cover\n        - go get github.com/mattn/goveralls\n      before_script:\n        - echo -e \"[server]\\ninnodb_log_file_size=256MB\\ninnodb_buffer_pool_size=512MB\\nmax_allowed_packet=16MB\\nlocal_infile=1\" >> /usr/local/etc/my.cnf\n        - mysql.server start\n        - mysql -uroot -e 'CREATE USER gotest IDENTIFIED BY \"secret\"'\n        - mysql -uroot -e 'GRANT ALL ON *.* TO gotest'\n        - mysql -uroot -e 'create database gotest;'\n        - export MYSQL_TEST_USER=gotest\n        - export MYSQL_TEST_PASS=secret\n        - export MYSQL_TEST_ADDR=127.0.0.1:3306\n        - export MYSQL_TEST_CONCURRENT=1\n\nscript:\n  - go test -v -covermode=count -coverprofile=coverage.out\n  - go vet ./...\n  - .travis/gofmt.sh\nafter_script:\n  - $HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/AUTHORS",
    "content": "# This is the official list of Go-MySQL-Driver authors for copyright purposes.\n\n# If you are submitting a patch, please add your name or the name of the\n# organization which holds the copyright to this list in alphabetical order.\n\n# Names should be added to this file as\n#\tName <email address>\n# The email address is not required for organizations.\n# Please keep the list sorted.\n\n\n# Individual Persons\n\nAaron Hopkins <go-sql-driver at die.net>\nAchille Roussel <achille.roussel at gmail.com>\nAlexey Palazhchenko <alexey.palazhchenko at gmail.com>\nAndrew Reid <andrew.reid at tixtrack.com>\nArne Hormann <arnehormann at gmail.com>\nAsta Xie <xiemengjun at gmail.com>\nBulat Gaifullin <gaifullinbf at gmail.com>\nCarlos Nieto <jose.carlos at menteslibres.net>\nChris Moos <chris at tech9computers.com>\nCraig Wilson <craiggwilson at gmail.com>\nDaniel Montoya <dsmontoyam at gmail.com>\nDaniel Nichter <nil at codenode.com>\nDaniël van Eeden <git at myname.nl>\nDave Protasowski <dprotaso at gmail.com>\nDisposaBoy <disposaboy at dby.me>\nEgor Smolyakov <egorsmkv at gmail.com>\nErwan Martin <hello at erwan.io>\nEvan Shaw <evan at vendhq.com>\nFrederick Mayle <frederickmayle at gmail.com>\nGustavo Kristic <gkristic at gmail.com>\nHajime Nakagami <nakagami at gmail.com>\nHanno Braun <mail at hannobraun.com>\nHenri Yandell <flamefew at gmail.com>\nHirotaka Yamamoto <ymmt2005 at gmail.com>\nHuyiguang <hyg at webterren.com>\nICHINOSE Shogo <shogo82148 at gmail.com>\nIlia Cimpoes <ichimpoesh at gmail.com>\nINADA Naoki <songofacandy at gmail.com>\nJacek Szwec <szwec.jacek at gmail.com>\nJames Harr <james.harr at gmail.com>\nJeff Hodges <jeff at somethingsimilar.com>\nJeffrey Charles <jeffreycharles at gmail.com>\nJerome Meyer <jxmeyer at gmail.com>\nJian Zhen <zhenjl at gmail.com>\nJoshua Prunier <joshua.prunier at gmail.com>\nJulien Lefevre <julien.lefevr at gmail.com>\nJulien Schmidt <go-sql-driver at julienschmidt.com>\nJustin Li <jli at j-li.net>\nJustin Nuß <nuss.justin at gmail.com>\nKamil Dziedzic <kamil at klecza.pl>\nKevin Malachowski <kevin at chowski.com>\nKieron Woodhouse <kieron.woodhouse at infosum.com>\nLennart Rudolph <lrudolph at hmc.edu>\nLeonardo YongUk Kim <dalinaum at gmail.com>\nLinh Tran Tuan <linhduonggnu at gmail.com>\nLion Yang <lion at aosc.xyz>\nLuca Looz <luca.looz92 at gmail.com>\nLucas Liu <extrafliu at gmail.com>\nLuke Scott <luke at webconnex.com>\nMaciej Zimnoch <maciej.zimnoch at codilime.com>\nMichael Woolnough <michael.woolnough at gmail.com>\nNicola Peduzzi <thenikso at gmail.com>\nOlivier Mengué <dolmen at cpan.org>\noscarzhao <oscarzhaosl at gmail.com>\nPaul Bonser <misterpib at gmail.com>\nPeter Schultz <peter.schultz at classmarkets.com>\nRebecca Chin <rchin at pivotal.io>\nReed Allman <rdallman10 at gmail.com>\nRichard Wilkes <wilkes at me.com>\nRobert Russell <robert at rrbrussell.com>\nRunrioter Wung <runrioter at gmail.com>\nShuode Li <elemount at qq.com>\nSimon J Mudd <sjmudd at pobox.com>\nSoroush Pour <me at soroushjp.com>\nStan Putrya <root.vagner at gmail.com>\nStanley Gunawan <gunawan.stanley at gmail.com>\nSteven Hartland <steven.hartland at multiplay.co.uk>\nThomas Wodarek <wodarekwebpage at gmail.com>\nTim Ruffles <timruffles at gmail.com>\nTom Jenkinson <tom at tjenkinson.me>\nXiangyu Hu <xiangyu.hu at outlook.com>\nXiaobing Jiang <s7v7nislands at gmail.com>\nXiuming Chen <cc at cxm.cc>\nZhenye Xie <xiezhenye at gmail.com>\n\n# Organizations\n\nBarracuda Networks, Inc.\nCounting Ltd.\nFacebook Inc.\nGitHub Inc.\nGoogle Inc.\nInfoSum Ltd.\nKeybase Inc.\nMultiplay Ltd.\nPercona LLC\nPivotal Inc.\nStripe Inc.\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/CHANGELOG.md",
    "content": "## Version 1.4 (2018-06-03)\n\nChanges:\n\n - Documentation fixes (#530, #535, #567)\n - Refactoring (#575, #579, #580, #581, #603, #615, #704)\n - Cache column names (#444)\n - Sort the DSN parameters in DSNs generated from a config (#637)\n - Allow native password authentication by default (#644)\n - Use the default port if it is missing in the DSN (#668)\n - Removed the `strict` mode (#676)\n - Do not query `max_allowed_packet` by default (#680)\n - Dropped support Go 1.6 and lower (#696)\n - Updated `ConvertValue()` to match the database/sql/driver implementation (#760)\n - Document the usage of `0000-00-00T00:00:00` as the time.Time zero value (#783)\n - Improved the compatibility of the authentication system (#807)\n\nNew Features:\n\n - Multi-Results support (#537)\n - `rejectReadOnly` DSN option (#604)\n - `context.Context` support (#608, #612, #627, #761)\n - Transaction isolation level support (#619, #744)\n - Read-Only transactions support (#618, #634)\n - `NewConfig` function which initializes a config with default values (#679)\n - Implemented the `ColumnType` interfaces (#667, #724)\n - Support for custom string types in `ConvertValue` (#623)\n - Implemented `NamedValueChecker`, improving support for uint64 with high bit set (#690, #709, #710)\n - `caching_sha2_password` authentication plugin support (#794, #800, #801, #802)\n - Implemented `driver.SessionResetter` (#779)\n - `sha256_password` authentication plugin support (#808)\n\nBugfixes:\n\n - Use the DSN hostname as TLS default ServerName if `tls=true` (#564, #718)\n - Fixed LOAD LOCAL DATA INFILE for empty files (#590)\n - Removed columns definition cache since it sometimes cached invalid data (#592)\n - Don't mutate registered TLS configs (#600)\n - Make RegisterTLSConfig concurrency-safe (#613)\n - Handle missing auth data in the handshake packet correctly (#646)\n - Do not retry queries when data was written to avoid data corruption (#302, #736)\n - Cache the connection pointer for error handling before invalidating it (#678)\n - Fixed imports for appengine/cloudsql (#700)\n - Fix sending STMT_LONG_DATA for 0 byte data (#734)\n - Set correct capacity for []bytes read from length-encoded strings (#766)\n - Make RegisterDial concurrency-safe (#773)\n\n\n## Version 1.3 (2016-12-01)\n\nChanges:\n\n - Go 1.1 is no longer supported\n - Use decimals fields in MySQL to format time types (#249)\n - Buffer optimizations (#269)\n - TLS ServerName defaults to the host (#283)\n - Refactoring (#400, #410, #437)\n - Adjusted documentation for second generation CloudSQL (#485)\n - Documented DSN system var quoting rules (#502)\n - Made statement.Close() calls idempotent to avoid errors in Go 1.6+ (#512)\n\nNew Features:\n\n - Enable microsecond resolution on TIME, DATETIME and TIMESTAMP (#249)\n - Support for returning table alias on Columns() (#289, #359, #382)\n - Placeholder interpolation, can be actived with the DSN parameter `interpolateParams=true` (#309, #318, #490)\n - Support for uint64 parameters with high bit set (#332, #345)\n - Cleartext authentication plugin support (#327)\n - Exported ParseDSN function and the Config struct (#403, #419, #429)\n - Read / Write timeouts (#401)\n - Support for JSON field type (#414)\n - Support for multi-statements and multi-results (#411, #431)\n - DSN parameter to set the driver-side max_allowed_packet value manually (#489)\n - Native password authentication plugin support (#494, #524)\n\nBugfixes:\n\n - Fixed handling of queries without columns and rows (#255)\n - Fixed a panic when SetKeepAlive() failed (#298)\n - Handle ERR packets while reading rows (#321)\n - Fixed reading NULL length-encoded integers in MySQL 5.6+ (#349)\n - Fixed absolute paths support in LOAD LOCAL DATA INFILE (#356)\n - Actually zero out bytes in handshake response (#378)\n - Fixed race condition in registering LOAD DATA INFILE handler (#383)\n - Fixed tests with MySQL 5.7.9+ (#380)\n - QueryUnescape TLS config names (#397)\n - Fixed \"broken pipe\" error by writing to closed socket (#390)\n - Fixed LOAD LOCAL DATA INFILE buffering (#424)\n - Fixed parsing of floats into float64 when placeholders are used (#434)\n - Fixed DSN tests with Go 1.7+ (#459)\n - Handle ERR packets while waiting for EOF (#473)\n - Invalidate connection on error while discarding additional results (#513)\n - Allow terminating packets of length 0 (#516)\n\n\n## Version 1.2 (2014-06-03)\n\nChanges:\n\n - We switched back to a \"rolling release\". `go get` installs the current master branch again\n - Version v1 of the driver will not be maintained anymore. Go 1.0 is no longer supported by this driver\n - Exported errors to allow easy checking from application code\n - Enabled TCP Keepalives on TCP connections\n - Optimized INFILE handling (better buffer size calculation, lazy init, ...)\n - The DSN parser also checks for a missing separating slash\n - Faster binary date / datetime to string formatting\n - Also exported the MySQLWarning type\n - mysqlConn.Close returns the first error encountered instead of ignoring all errors\n - writePacket() automatically writes the packet size to the header\n - readPacket() uses an iterative approach instead of the recursive approach to merge splitted packets\n\nNew Features:\n\n - `RegisterDial` allows the usage of a custom dial function to establish the network connection\n - Setting the connection collation is possible with the `collation` DSN parameter. This parameter should be preferred over the `charset` parameter\n - Logging of critical errors is configurable with `SetLogger`\n - Google CloudSQL support\n\nBugfixes:\n\n - Allow more than 32 parameters in prepared statements\n - Various old_password fixes\n - Fixed TestConcurrent test to pass Go's race detection\n - Fixed appendLengthEncodedInteger for large numbers\n - Renamed readLengthEnodedString to readLengthEncodedString and skipLengthEnodedString to skipLengthEncodedString (fixed typo)\n\n\n## Version 1.1 (2013-11-02)\n\nChanges:\n\n  - Go-MySQL-Driver now requires Go 1.1\n  - Connections now use the collation `utf8_general_ci` by default. Adding `&charset=UTF8` to the DSN should not be necessary anymore\n  - Made closing rows and connections error tolerant. This allows for example deferring rows.Close() without checking for errors\n  - `[]byte(nil)` is now treated as a NULL value. Before, it was treated like an empty string / `[]byte(\"\")`\n  - DSN parameter values must now be url.QueryEscape'ed. This allows text values to contain special characters, such as '&'.\n  - Use the IO buffer also for writing. This results in zero allocations (by the driver) for most queries\n  - Optimized the buffer for reading\n  - stmt.Query now caches column metadata\n  - New Logo\n  - Changed the copyright header to include all contributors\n  - Improved the LOAD INFILE documentation\n  - The driver struct is now exported to make the driver directly accessible\n  - Refactored the driver tests\n  - Added more benchmarks and moved all to a separate file\n  - Other small refactoring\n\nNew Features:\n\n  - Added *old_passwords* support: Required in some cases, but must be enabled by adding `allowOldPasswords=true` to the DSN since it is insecure\n  - Added a `clientFoundRows` parameter: Return the number of matching rows instead of the number of rows changed on UPDATEs\n  - Added TLS/SSL support: Use a TLS/SSL encrypted connection to the server. Custom TLS configs can be registered and used\n\nBugfixes:\n\n  - Fixed MySQL 4.1 support: MySQL 4.1 sends packets with lengths which differ from the specification\n  - Convert to DB timezone when inserting `time.Time`\n  - Splitted packets (more than 16MB) are now merged correctly\n  - Fixed false positive `io.EOF` errors when the data was fully read\n  - Avoid panics on reuse of closed connections\n  - Fixed empty string producing false nil values\n  - Fixed sign byte for positive TIME fields\n\n\n## Version 1.0 (2013-05-14)\n\nInitial Release\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\n## Reporting Issues\n\nBefore creating a new Issue, please check first if a similar Issue [already exists](https://github.com/go-sql-driver/mysql/issues?state=open) or was [recently closed](https://github.com/go-sql-driver/mysql/issues?direction=desc&page=1&sort=updated&state=closed).\n\n## Contributing Code\n\nBy contributing to this project, you share your code under the Mozilla Public License 2, as specified in the LICENSE file.\nDon't forget to add yourself to the AUTHORS file.\n\n### Code Review\n\nEveryone is invited to review and comment on pull requests.\nIf it looks fine to you, comment with \"LGTM\" (Looks good to me).\n\nIf changes are required, notice the reviewers with \"PTAL\" (Please take another look) after committing the fixes.\n\nBefore merging the Pull Request, at least one [team member](https://github.com/go-sql-driver?tab=members) must have commented with \"LGTM\".\n\n## Development Ideas\n\nIf you are looking for ideas for code contributions, please check our [Development Ideas](https://github.com/go-sql-driver/mysql/wiki/Development-Ideas) Wiki page.\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/LICENSE",
    "content": "Mozilla Public License Version 2.0\n==================================\n\n1. Definitions\n--------------\n\n1.1. \"Contributor\"\n    means each individual or legal entity that creates, contributes to\n    the creation of, or owns Covered Software.\n\n1.2. \"Contributor Version\"\n    means the combination of the Contributions of others (if any) used\n    by a Contributor and that particular Contributor's Contribution.\n\n1.3. \"Contribution\"\n    means Covered Software of a particular Contributor.\n\n1.4. \"Covered Software\"\n    means Source Code Form to which the initial Contributor has attached\n    the notice in Exhibit A, the Executable Form of such Source Code\n    Form, and Modifications of such Source Code Form, in each case\n    including portions thereof.\n\n1.5. \"Incompatible With Secondary Licenses\"\n    means\n\n    (a) that the initial Contributor has attached the notice described\n        in Exhibit B to the Covered Software; or\n\n    (b) that the Covered Software was made available under the terms of\n        version 1.1 or earlier of the License, but not also under the\n        terms of a Secondary License.\n\n1.6. \"Executable Form\"\n    means any form of the work other than Source Code Form.\n\n1.7. \"Larger Work\"\n    means a work that combines Covered Software with other material, in \n    a separate file or files, that is not Covered Software.\n\n1.8. \"License\"\n    means this document.\n\n1.9. \"Licensable\"\n    means having the right to grant, to the maximum extent possible,\n    whether at the time of the initial grant or subsequently, any and\n    all of the rights conveyed by this License.\n\n1.10. \"Modifications\"\n    means any of the following:\n\n    (a) any file in Source Code Form that results from an addition to,\n        deletion from, or modification of the contents of Covered\n        Software; or\n\n    (b) any new file in Source Code Form that contains any Covered\n        Software.\n\n1.11. \"Patent Claims\" of a Contributor\n    means any patent claim(s), including without limitation, method,\n    process, and apparatus claims, in any patent Licensable by such\n    Contributor that would be infringed, but for the grant of the\n    License, by the making, using, selling, offering for sale, having\n    made, import, or transfer of either its Contributions or its\n    Contributor Version.\n\n1.12. \"Secondary License\"\n    means either the GNU General Public License, Version 2.0, the GNU\n    Lesser General Public License, Version 2.1, the GNU Affero General\n    Public License, Version 3.0, or any later versions of those\n    licenses.\n\n1.13. \"Source Code Form\"\n    means the form of the work preferred for making modifications.\n\n1.14. \"You\" (or \"Your\")\n    means an individual or a legal entity exercising rights under this\n    License. For legal entities, \"You\" includes any entity that\n    controls, is controlled by, or is under common control with You. For\n    purposes of this definition, \"control\" means (a) the power, direct\n    or indirect, to cause the direction or management of such entity,\n    whether by contract or otherwise, or (b) ownership of more than\n    fifty percent (50%) of the outstanding shares or beneficial\n    ownership of such entity.\n\n2. License Grants and Conditions\n--------------------------------\n\n2.1. Grants\n\nEach Contributor hereby grants You a world-wide, royalty-free,\nnon-exclusive license:\n\n(a) under intellectual property rights (other than patent or trademark)\n    Licensable by such Contributor to use, reproduce, make available,\n    modify, display, perform, distribute, and otherwise exploit its\n    Contributions, either on an unmodified basis, with Modifications, or\n    as part of a Larger Work; and\n\n(b) under Patent Claims of such Contributor to make, use, sell, offer\n    for sale, have made, import, and otherwise transfer either its\n    Contributions or its Contributor Version.\n\n2.2. Effective Date\n\nThe licenses granted in Section 2.1 with respect to any Contribution\nbecome effective for each Contribution on the date the Contributor first\ndistributes such Contribution.\n\n2.3. Limitations on Grant Scope\n\nThe licenses granted in this Section 2 are the only rights granted under\nthis License. No additional rights or licenses will be implied from the\ndistribution or licensing of Covered Software under this License.\nNotwithstanding Section 2.1(b) above, no patent license is granted by a\nContributor:\n\n(a) for any code that a Contributor has removed from Covered Software;\n    or\n\n(b) for infringements caused by: (i) Your and any other third party's\n    modifications of Covered Software, or (ii) the combination of its\n    Contributions with other software (except as part of its Contributor\n    Version); or\n\n(c) under Patent Claims infringed by Covered Software in the absence of\n    its Contributions.\n\nThis License does not grant any rights in the trademarks, service marks,\nor logos of any Contributor (except as may be necessary to comply with\nthe notice requirements in Section 3.4).\n\n2.4. Subsequent Licenses\n\nNo Contributor makes additional grants as a result of Your choice to\ndistribute the Covered Software under a subsequent version of this\nLicense (see Section 10.2) or under the terms of a Secondary License (if\npermitted under the terms of Section 3.3).\n\n2.5. Representation\n\nEach Contributor represents that the Contributor believes its\nContributions are its original creation(s) or it has sufficient rights\nto grant the rights to its Contributions conveyed by this License.\n\n2.6. Fair Use\n\nThis License is not intended to limit any rights You have under\napplicable copyright doctrines of fair use, fair dealing, or other\nequivalents.\n\n2.7. Conditions\n\nSections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted\nin Section 2.1.\n\n3. Responsibilities\n-------------------\n\n3.1. Distribution of Source Form\n\nAll distribution of Covered Software in Source Code Form, including any\nModifications that You create or to which You contribute, must be under\nthe terms of this License. You must inform recipients that the Source\nCode Form of the Covered Software is governed by the terms of this\nLicense, and how they can obtain a copy of this License. You may not\nattempt to alter or restrict the recipients' rights in the Source Code\nForm.\n\n3.2. Distribution of Executable Form\n\nIf You distribute Covered Software in Executable Form then:\n\n(a) such Covered Software must also be made available in Source Code\n    Form, as described in Section 3.1, and You must inform recipients of\n    the Executable Form how they can obtain a copy of such Source Code\n    Form by reasonable means in a timely manner, at a charge no more\n    than the cost of distribution to the recipient; and\n\n(b) You may distribute such Executable Form under the terms of this\n    License, or sublicense it under different terms, provided that the\n    license for the Executable Form does not attempt to limit or alter\n    the recipients' rights in the Source Code Form under this License.\n\n3.3. Distribution of a Larger Work\n\nYou may create and distribute a Larger Work under terms of Your choice,\nprovided that You also comply with the requirements of this License for\nthe Covered Software. If the Larger Work is a combination of Covered\nSoftware with a work governed by one or more Secondary Licenses, and the\nCovered Software is not Incompatible With Secondary Licenses, this\nLicense permits You to additionally distribute such Covered Software\nunder the terms of such Secondary License(s), so that the recipient of\nthe Larger Work may, at their option, further distribute the Covered\nSoftware under the terms of either this License or such Secondary\nLicense(s).\n\n3.4. Notices\n\nYou may not remove or alter the substance of any license notices\n(including copyright notices, patent notices, disclaimers of warranty,\nor limitations of liability) contained within the Source Code Form of\nthe Covered Software, except that You may alter any license notices to\nthe extent required to remedy known factual inaccuracies.\n\n3.5. Application of Additional Terms\n\nYou may choose to offer, and to charge a fee for, warranty, support,\nindemnity or liability obligations to one or more recipients of Covered\nSoftware. However, You may do so only on Your own behalf, and not on\nbehalf of any Contributor. You must make it absolutely clear that any\nsuch warranty, support, indemnity, or liability obligation is offered by\nYou alone, and You hereby agree to indemnify every Contributor for any\nliability incurred by such Contributor as a result of warranty, support,\nindemnity or liability terms You offer. You may include additional\ndisclaimers of warranty and limitations of liability specific to any\njurisdiction.\n\n4. Inability to Comply Due to Statute or Regulation\n---------------------------------------------------\n\nIf it is impossible for You to comply with any of the terms of this\nLicense with respect to some or all of the Covered Software due to\nstatute, judicial order, or regulation then You must: (a) comply with\nthe terms of this License to the maximum extent possible; and (b)\ndescribe the limitations and the code they affect. Such description must\nbe placed in a text file included with all distributions of the Covered\nSoftware under this License. Except to the extent prohibited by statute\nor regulation, such description must be sufficiently detailed for a\nrecipient of ordinary skill to be able to understand it.\n\n5. Termination\n--------------\n\n5.1. The rights granted under this License will terminate automatically\nif You fail to comply with any of its terms. However, if You become\ncompliant, then the rights granted under this License from a particular\nContributor are reinstated (a) provisionally, unless and until such\nContributor explicitly and finally terminates Your grants, and (b) on an\nongoing basis, if such Contributor fails to notify You of the\nnon-compliance by some reasonable means prior to 60 days after You have\ncome back into compliance. Moreover, Your grants from a particular\nContributor are reinstated on an ongoing basis if such Contributor\nnotifies You of the non-compliance by some reasonable means, this is the\nfirst time You have received notice of non-compliance with this License\nfrom such Contributor, and You become compliant prior to 30 days after\nYour receipt of the notice.\n\n5.2. If You initiate litigation against any entity by asserting a patent\ninfringement claim (excluding declaratory judgment actions,\ncounter-claims, and cross-claims) alleging that a Contributor Version\ndirectly or indirectly infringes any patent, then the rights granted to\nYou by any and all Contributors for the Covered Software under Section\n2.1 of this License shall terminate.\n\n5.3. In the event of termination under Sections 5.1 or 5.2 above, all\nend user license agreements (excluding distributors and resellers) which\nhave been validly granted by You or Your distributors under this License\nprior to termination shall survive termination.\n\n************************************************************************\n*                                                                      *\n*  6. Disclaimer of Warranty                                           *\n*  -------------------------                                           *\n*                                                                      *\n*  Covered Software is provided under this License on an \"as is\"       *\n*  basis, without warranty of any kind, either expressed, implied, or  *\n*  statutory, including, without limitation, warranties that the       *\n*  Covered Software is free of defects, merchantable, fit for a        *\n*  particular purpose or non-infringing. The entire risk as to the     *\n*  quality and performance of the Covered Software is with You.        *\n*  Should any Covered Software prove defective in any respect, You     *\n*  (not any Contributor) assume the cost of any necessary servicing,   *\n*  repair, or correction. This disclaimer of warranty constitutes an   *\n*  essential part of this License. No use of any Covered Software is   *\n*  authorized under this License except under this disclaimer.         *\n*                                                                      *\n************************************************************************\n\n************************************************************************\n*                                                                      *\n*  7. Limitation of Liability                                          *\n*  --------------------------                                          *\n*                                                                      *\n*  Under no circumstances and under no legal theory, whether tort      *\n*  (including negligence), contract, or otherwise, shall any           *\n*  Contributor, or anyone who distributes Covered Software as          *\n*  permitted above, be liable to You for any direct, indirect,         *\n*  special, incidental, or consequential damages of any character      *\n*  including, without limitation, damages for lost profits, loss of    *\n*  goodwill, work stoppage, computer failure or malfunction, or any    *\n*  and all other commercial damages or losses, even if such party      *\n*  shall have been informed of the possibility of such damages. This   *\n*  limitation of liability shall not apply to liability for death or   *\n*  personal injury resulting from such party's negligence to the       *\n*  extent applicable law prohibits such limitation. Some               *\n*  jurisdictions do not allow the exclusion or limitation of           *\n*  incidental or consequential damages, so this exclusion and          *\n*  limitation may not apply to You.                                    *\n*                                                                      *\n************************************************************************\n\n8. Litigation\n-------------\n\nAny litigation relating to this License may be brought only in the\ncourts of a jurisdiction where the defendant maintains its principal\nplace of business and such litigation shall be governed by laws of that\njurisdiction, without reference to its conflict-of-law provisions.\nNothing in this Section shall prevent a party's ability to bring\ncross-claims or counter-claims.\n\n9. Miscellaneous\n----------------\n\nThis License represents the complete agreement concerning the subject\nmatter hereof. If any provision of this License is held to be\nunenforceable, such provision shall be reformed only to the extent\nnecessary to make it enforceable. Any law or regulation which provides\nthat the language of a contract shall be construed against the drafter\nshall not be used to construe this License against a Contributor.\n\n10. Versions of the License\n---------------------------\n\n10.1. New Versions\n\nMozilla Foundation is the license steward. Except as provided in Section\n10.3, no one other than the license steward has the right to modify or\npublish new versions of this License. Each version will be given a\ndistinguishing version number.\n\n10.2. Effect of New Versions\n\nYou may distribute the Covered Software under the terms of the version\nof the License under which You originally received the Covered Software,\nor under the terms of any subsequent version published by the license\nsteward.\n\n10.3. Modified Versions\n\nIf you create software not governed by this License, and you want to\ncreate a new license for such software, you may create and use a\nmodified version of this License if you rename the license and remove\nany references to the name of the license steward (except to note that\nsuch modified license differs from this License).\n\n10.4. Distributing Source Code Form that is Incompatible With Secondary\nLicenses\n\nIf You choose to distribute Source Code Form that is Incompatible With\nSecondary Licenses under the terms of this version of the License, the\nnotice described in Exhibit B of this License must be attached.\n\nExhibit A - Source Code Form License Notice\n-------------------------------------------\n\n  This Source Code Form is subject to the terms of the Mozilla Public\n  License, v. 2.0. If a copy of the MPL was not distributed with this\n  file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\nIf it is not possible or desirable to put the notice in a particular\nfile, then You may include the notice in a location (such as a LICENSE\nfile in a relevant directory) where a recipient would be likely to look\nfor such a notice.\n\nYou may add additional accurate notices of copyright ownership.\n\nExhibit B - \"Incompatible With Secondary Licenses\" Notice\n---------------------------------------------------------\n\n  This Source Code Form is \"Incompatible With Secondary Licenses\", as\n  defined by the Mozilla Public License, v. 2.0.\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/README.md",
    "content": "# Go-MySQL-Driver\n\nA MySQL-Driver for Go's [database/sql](https://golang.org/pkg/database/sql/) package\n\n![Go-MySQL-Driver logo](https://raw.github.com/wiki/go-sql-driver/mysql/gomysql_m.png \"Golang Gopher holding the MySQL Dolphin\")\n\n---------------------------------------\n  * [Features](#features)\n  * [Requirements](#requirements)\n  * [Installation](#installation)\n  * [Usage](#usage)\n    * [DSN (Data Source Name)](#dsn-data-source-name)\n      * [Password](#password)\n      * [Protocol](#protocol)\n      * [Address](#address)\n      * [Parameters](#parameters)\n      * [Examples](#examples)\n    * [Connection pool and timeouts](#connection-pool-and-timeouts)\n    * [context.Context Support](#contextcontext-support)\n    * [ColumnType Support](#columntype-support)\n    * [LOAD DATA LOCAL INFILE support](#load-data-local-infile-support)\n    * [time.Time support](#timetime-support)\n    * [Unicode support](#unicode-support)\n  * [Testing / Development](#testing--development)\n  * [License](#license)\n\n---------------------------------------\n\n## Features\n  * Lightweight and [fast](https://github.com/go-sql-driver/sql-benchmark \"golang MySQL-Driver performance\")\n  * Native Go implementation. No C-bindings, just pure Go\n  * Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or [custom protocols](https://godoc.org/github.com/go-sql-driver/mysql#DialFunc)\n  * Automatic handling of broken connections\n  * Automatic Connection Pooling *(by database/sql package)*\n  * Supports queries larger than 16MB\n  * Full [`sql.RawBytes`](https://golang.org/pkg/database/sql/#RawBytes) support.\n  * Intelligent `LONG DATA` handling in prepared statements\n  * Secure `LOAD DATA LOCAL INFILE` support with file Whitelisting and `io.Reader` support\n  * Optional `time.Time` parsing\n  * Optional placeholder interpolation\n\n## Requirements\n  * Go 1.9 or higher. We aim to support the 3 latest versions of Go.\n  * MySQL (4.1+), MariaDB, Percona Server, Google CloudSQL or Sphinx (2.2.3+)\n\n---------------------------------------\n\n## Installation\nSimple install the package to your [$GOPATH](https://github.com/golang/go/wiki/GOPATH \"GOPATH\") with the [go tool](https://golang.org/cmd/go/ \"go command\") from shell:\n```bash\n$ go get -u github.com/go-sql-driver/mysql\n```\nMake sure [Git is installed](https://git-scm.com/downloads) on your machine and in your system's `PATH`.\n\n## Usage\n_Go MySQL Driver_ is an implementation of Go's `database/sql/driver` interface. You only need to import the driver and can use the full [`database/sql`](https://golang.org/pkg/database/sql/) API then.\n\nUse `mysql` as `driverName` and a valid [DSN](#dsn-data-source-name)  as `dataSourceName`:\n```go\nimport \"database/sql\"\nimport _ \"github.com/go-sql-driver/mysql\"\n\ndb, err := sql.Open(\"mysql\", \"user:password@/dbname\")\n```\n\n[Examples are available in our Wiki](https://github.com/go-sql-driver/mysql/wiki/Examples \"Go-MySQL-Driver Examples\").\n\n\n### DSN (Data Source Name)\n\nThe Data Source Name has a common format, like e.g. [PEAR DB](http://pear.php.net/manual/en/package.database.db.intro-dsn.php) uses it, but without type-prefix (optional parts marked by squared brackets):\n```\n[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]\n```\n\nA DSN in its fullest form:\n```\nusername:password@protocol(address)/dbname?param=value\n```\n\nExcept for the databasename, all values are optional. So the minimal DSN is:\n```\n/dbname\n```\n\nIf you do not want to preselect a database, leave `dbname` empty:\n```\n/\n```\nThis has the same effect as an empty DSN string:\n```\n\n```\n\nAlternatively, [Config.FormatDSN](https://godoc.org/github.com/go-sql-driver/mysql#Config.FormatDSN) can be used to create a DSN string by filling a struct.\n\n#### Password\nPasswords can consist of any character. Escaping is **not** necessary.\n\n#### Protocol\nSee [net.Dial](https://golang.org/pkg/net/#Dial) for more information which networks are available.\nIn general you should use an Unix domain socket if available and TCP otherwise for best performance.\n\n#### Address\nFor TCP and UDP networks, addresses have the form `host[:port]`.\nIf `port` is omitted, the default port will be used.\nIf `host` is a literal IPv6 address, it must be enclosed in square brackets.\nThe functions [net.JoinHostPort](https://golang.org/pkg/net/#JoinHostPort) and [net.SplitHostPort](https://golang.org/pkg/net/#SplitHostPort) manipulate addresses in this form.\n\nFor Unix domain sockets the address is the absolute path to the MySQL-Server-socket, e.g. `/var/run/mysqld/mysqld.sock` or `/tmp/mysql.sock`.\n\n#### Parameters\n*Parameters are case-sensitive!*\n\nNotice that any of `true`, `TRUE`, `True` or `1` is accepted to stand for a true boolean value. Not surprisingly, false can be specified as any of: `false`, `FALSE`, `False` or `0`.\n\n##### `allowAllFiles`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\n`allowAllFiles=true` disables the file Whitelist for `LOAD DATA LOCAL INFILE` and allows *all* files.\n[*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html)\n\n##### `allowCleartextPasswords`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\n`allowCleartextPasswords=true` allows using the [cleartext client side plugin](http://dev.mysql.com/doc/en/cleartext-authentication-plugin.html) if required by an account, such as one defined with the [PAM authentication plugin](http://dev.mysql.com/doc/en/pam-authentication-plugin.html). Sending passwords in clear text may be a security problem in some configurations. To avoid problems if there is any possibility that the password would be intercepted, clients should connect to MySQL Server using a method that protects the password. Possibilities include [TLS / SSL](#tls), IPsec, or a private network.\n\n##### `allowNativePasswords`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        true\n```\n`allowNativePasswords=false` disallows the usage of MySQL native password method.\n\n##### `allowOldPasswords`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n`allowOldPasswords=true` allows the usage of the insecure old password method. This should be avoided, but is necessary in some cases. See also [the old_passwords wiki page](https://github.com/go-sql-driver/mysql/wiki/old_passwords).\n\n##### `charset`\n\n```\nType:           string\nValid Values:   <name>\nDefault:        none\n```\n\nSets the charset used for client-server interaction (`\"SET NAMES <value>\"`). If multiple charsets are set (separated by a comma), the following charset is used if setting the charset failes. This enables for example support for `utf8mb4` ([introduced in MySQL 5.5.3](http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html)) with fallback to `utf8` for older servers (`charset=utf8mb4,utf8`).\n\nUsage of the `charset` parameter is discouraged because it issues additional queries to the server.\nUnless you need the fallback behavior, please use `collation` instead.\n\n##### `collation`\n\n```\nType:           string\nValid Values:   <name>\nDefault:        utf8mb4_general_ci\n```\n\nSets the collation used for client-server interaction on connection. In contrast to `charset`, `collation` does not issue additional queries. If the specified collation is unavailable on the target server, the connection will fail.\n\nA list of valid charsets for a server is retrievable with `SHOW COLLATION`.\n\nThe default collation (`utf8mb4_general_ci`) is supported from MySQL 5.5.  You should use an older collation (e.g. `utf8_general_ci`) for older MySQL.\n\nCollations for charset \"ucs2\", \"utf16\", \"utf16le\", and \"utf32\" can not be used ([ref](https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html#charset-connection-impermissible-client-charset)).\n\n\n##### `clientFoundRows`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\n`clientFoundRows=true` causes an UPDATE to return the number of matching rows instead of the number of rows changed.\n\n##### `columnsWithAlias`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\nWhen `columnsWithAlias` is true, calls to `sql.Rows.Columns()` will return the table alias and the column name separated by a dot. For example:\n\n```\nSELECT u.id FROM users as u\n```\n\nwill return `u.id` instead of just `id` if `columnsWithAlias=true`.\n\n##### `interpolateParams`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\nIf `interpolateParams` is true, placeholders (`?`) in calls to `db.Query()` and `db.Exec()` are interpolated into a single query string with given parameters. This reduces the number of roundtrips, since the driver has to prepare a statement, execute it with given parameters and close the statement again with `interpolateParams=false`.\n\n*This can not be used together with the multibyte encodings BIG5, CP932, GB2312, GBK or SJIS. These are blacklisted as they may [introduce a SQL injection vulnerability](http://stackoverflow.com/a/12118602/3430118)!*\n\n##### `loc`\n\n```\nType:           string\nValid Values:   <escaped name>\nDefault:        UTC\n```\n\nSets the location for time.Time values (when using `parseTime=true`). *\"Local\"* sets the system's location. See [time.LoadLocation](https://golang.org/pkg/time/#LoadLocation) for details.\n\nNote that this sets the location for time.Time values but does not change MySQL's [time_zone setting](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html). For that see the [time_zone system variable](#system-variables), which can also be set as a DSN parameter.\n\nPlease keep in mind, that param values must be [url.QueryEscape](https://golang.org/pkg/net/url/#QueryEscape)'ed. Alternatively you can manually replace the `/` with `%2F`. For example `US/Pacific` would be `loc=US%2FPacific`.\n\n##### `maxAllowedPacket`\n```\nType:          decimal number\nDefault:       4194304\n```\n\nMax packet size allowed in bytes. The default value is 4 MiB and should be adjusted to match the server settings. `maxAllowedPacket=0` can be used to automatically fetch the `max_allowed_packet` variable from server *on every connection*.\n\n##### `multiStatements`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\nAllow multiple statements in one query. While this allows batch queries, it also greatly increases the risk of SQL injections. Only the result of the first query is returned, all other results are silently discarded.\n\nWhen `multiStatements` is used, `?` parameters must only be used in the first statement.\n\n##### `parseTime`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\n`parseTime=true` changes the output type of `DATE` and `DATETIME` values to `time.Time` instead of `[]byte` / `string`\nThe date or datetime like `0000-00-00 00:00:00` is converted into zero value of `time.Time`.\n\n\n##### `readTimeout`\n\n```\nType:           duration\nDefault:        0\n```\n\nI/O read timeout. The value must be a decimal number with a unit suffix (*\"ms\"*, *\"s\"*, *\"m\"*, *\"h\"*), such as *\"30s\"*, *\"0.5m\"* or *\"1m30s\"*.\n\n##### `rejectReadOnly`\n\n```\nType:           bool\nValid Values:   true, false\nDefault:        false\n```\n\n\n`rejectReadOnly=true` causes the driver to reject read-only connections. This\nis for a possible race condition during an automatic failover, where the mysql\nclient gets connected to a read-only replica after the failover.\n\nNote that this should be a fairly rare case, as an automatic failover normally\nhappens when the primary is down, and the race condition shouldn't happen\nunless it comes back up online as soon as the failover is kicked off. On the\nother hand, when this happens, a MySQL application can get stuck on a\nread-only connection until restarted. It is however fairly easy to reproduce,\nfor example, using a manual failover on AWS Aurora's MySQL-compatible cluster.\n\nIf you are not relying on read-only transactions to reject writes that aren't\nsupposed to happen, setting this on some MySQL providers (such as AWS Aurora)\nis safer for failovers.\n\nNote that ERROR 1290 can be returned for a `read-only` server and this option will\ncause a retry for that error. However the same error number is used for some\nother cases. You should ensure your application will never cause an ERROR 1290\nexcept for `read-only` mode when enabling this option.\n\n\n##### `serverPubKey`\n\n```\nType:           string\nValid Values:   <name>\nDefault:        none\n```\n\nServer public keys can be registered with [`mysql.RegisterServerPubKey`](https://godoc.org/github.com/go-sql-driver/mysql#RegisterServerPubKey), which can then be used by the assigned name in the DSN.\nPublic keys are used to transmit encrypted data, e.g. for authentication.\nIf the server's public key is known, it should be set manually to avoid expensive and potentially insecure transmissions of the public key from the server to the client each time it is required.\n\n\n##### `timeout`\n\n```\nType:           duration\nDefault:        OS default\n```\n\nTimeout for establishing connections, aka dial timeout. The value must be a decimal number with a unit suffix (*\"ms\"*, *\"s\"*, *\"m\"*, *\"h\"*), such as *\"30s\"*, *\"0.5m\"* or *\"1m30s\"*.\n\n\n##### `tls`\n\n```\nType:           bool / string\nValid Values:   true, false, skip-verify, preferred, <name>\nDefault:        false\n```\n\n`tls=true` enables TLS / SSL encrypted connection to the server. Use `skip-verify` if you want to use a self-signed or invalid certificate (server side) or use `preferred` to use TLS only when advertised by the server. This is similar to `skip-verify`, but additionally allows a fallback to a connection which is not encrypted. Neither `skip-verify` nor `preferred` add any reliable security. You can use a custom TLS config after registering it with [`mysql.RegisterTLSConfig`](https://godoc.org/github.com/go-sql-driver/mysql#RegisterTLSConfig).\n\n\n##### `writeTimeout`\n\n```\nType:           duration\nDefault:        0\n```\n\nI/O write timeout. The value must be a decimal number with a unit suffix (*\"ms\"*, *\"s\"*, *\"m\"*, *\"h\"*), such as *\"30s\"*, *\"0.5m\"* or *\"1m30s\"*.\n\n\n##### System Variables\n\nAny other parameters are interpreted as system variables:\n  * `<boolean_var>=<value>`: `SET <boolean_var>=<value>`\n  * `<enum_var>=<value>`: `SET <enum_var>=<value>`\n  * `<string_var>=%27<value>%27`: `SET <string_var>='<value>'`\n\nRules:\n* The values for string variables must be quoted with `'`.\n* The values must also be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed!\n (which implies values of string variables must be wrapped with `%27`).\n\nExamples:\n  * `autocommit=1`: `SET autocommit=1`\n  * [`time_zone=%27Europe%2FParis%27`](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html): `SET time_zone='Europe/Paris'`\n  * [`tx_isolation=%27REPEATABLE-READ%27`](https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_tx_isolation): `SET tx_isolation='REPEATABLE-READ'`\n\n\n#### Examples\n```\nuser@unix(/path/to/socket)/dbname\n```\n\n```\nroot:pw@unix(/tmp/mysql.sock)/myDatabase?loc=Local\n```\n\n```\nuser:password@tcp(localhost:5555)/dbname?tls=skip-verify&autocommit=true\n```\n\nTreat warnings as errors by setting the system variable [`sql_mode`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html):\n```\nuser:password@/dbname?sql_mode=TRADITIONAL\n```\n\nTCP via IPv6:\n```\nuser:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname?timeout=90s&collation=utf8mb4_unicode_ci\n```\n\nTCP on a remote host, e.g. Amazon RDS:\n```\nid:password@tcp(your-amazonaws-uri.com:3306)/dbname\n```\n\nGoogle Cloud SQL on App Engine (First Generation MySQL Server):\n```\nuser@cloudsql(project-id:instance-name)/dbname\n```\n\nGoogle Cloud SQL on App Engine (Second Generation MySQL Server):\n```\nuser@cloudsql(project-id:regionname:instance-name)/dbname\n```\n\nTCP using default port (3306) on localhost:\n```\nuser:password@tcp/dbname?charset=utf8mb4,utf8&sys_var=esc%40ped\n```\n\nUse the default protocol (tcp) and host (localhost:3306):\n```\nuser:password@/dbname\n```\n\nNo Database preselected:\n```\nuser:password@/\n```\n\n\n### Connection pool and timeouts\nThe connection pool is managed by Go's database/sql package. For details on how to configure the size of the pool and how long connections stay in the pool see `*DB.SetMaxOpenConns`, `*DB.SetMaxIdleConns`, and `*DB.SetConnMaxLifetime` in the [database/sql documentation](https://golang.org/pkg/database/sql/). The read, write, and dial timeouts for each individual connection are configured with the DSN parameters [`readTimeout`](#readtimeout), [`writeTimeout`](#writetimeout), and [`timeout`](#timeout), respectively.\n\n## `ColumnType` Support\nThis driver supports the [`ColumnType` interface](https://golang.org/pkg/database/sql/#ColumnType) introduced in Go 1.8, with the exception of [`ColumnType.Length()`](https://golang.org/pkg/database/sql/#ColumnType.Length), which is currently not supported.\n\n## `context.Context` Support\nGo 1.8 added `database/sql` support for `context.Context`. This driver supports query timeouts and cancellation via contexts.\nSee [context support in the database/sql package](https://golang.org/doc/go1.8#database_sql) for more details.\n\n\n### `LOAD DATA LOCAL INFILE` support\nFor this feature you need direct access to the package. Therefore you must change the import path (no `_`):\n```go\nimport \"github.com/go-sql-driver/mysql\"\n```\n\nFiles must be whitelisted by registering them with `mysql.RegisterLocalFile(filepath)` (recommended) or the Whitelist check must be deactivated by using the DSN parameter `allowAllFiles=true` ([*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html)).\n\nTo use a `io.Reader` a handler function must be registered with `mysql.RegisterReaderHandler(name, handler)` which returns a `io.Reader` or `io.ReadCloser`. The Reader is available with the filepath `Reader::<name>` then. Choose different names for different handlers and `DeregisterReaderHandler` when you don't need it anymore.\n\nSee the [godoc of Go-MySQL-Driver](https://godoc.org/github.com/go-sql-driver/mysql \"golang mysql driver documentation\") for details.\n\n\n### `time.Time` support\nThe default internal output type of MySQL `DATE` and `DATETIME` values is `[]byte` which allows you to scan the value into a `[]byte`, `string` or `sql.RawBytes` variable in your program.\n\nHowever, many want to scan MySQL `DATE` and `DATETIME` values into `time.Time` variables, which is the logical equivalent in Go to `DATE` and `DATETIME` in MySQL. You can do that by changing the internal output type from `[]byte` to `time.Time` with the DSN parameter `parseTime=true`. You can set the default [`time.Time` location](https://golang.org/pkg/time/#Location) with the `loc` DSN parameter.\n\n**Caution:** As of Go 1.1, this makes `time.Time` the only variable type you can scan `DATE` and `DATETIME` values into. This breaks for example [`sql.RawBytes` support](https://github.com/go-sql-driver/mysql/wiki/Examples#rawbytes).\n\nAlternatively you can use the [`NullTime`](https://godoc.org/github.com/go-sql-driver/mysql#NullTime) type as the scan destination, which works with both `time.Time` and `string` / `[]byte`.\n\n\n### Unicode support\nSince version 1.1 Go-MySQL-Driver automatically uses the collation `utf8_general_ci` by default.\n\nOther collations / charsets can be set using the [`collation`](#collation) DSN parameter.\n\nVersion 1.0 of the driver recommended adding `&charset=utf8` (alias for `SET NAMES utf8`) to the DSN to enable proper UTF-8 support. This is not necessary anymore. The [`collation`](#collation) parameter should be preferred to set another collation / charset than the default.\n\nSee http://dev.mysql.com/doc/refman/5.7/en/charset-unicode.html for more details on MySQL's Unicode support.\n\n## Testing / Development\nTo run the driver tests you may need to adjust the configuration. See the [Testing Wiki-Page](https://github.com/go-sql-driver/mysql/wiki/Testing \"Testing\") for details.\n\nGo-MySQL-Driver is not feature-complete yet. Your help is very appreciated.\nIf you want to contribute, you can work on an [open issue](https://github.com/go-sql-driver/mysql/issues?state=open) or review a [pull request](https://github.com/go-sql-driver/mysql/pulls).\n\nSee the [Contribution Guidelines](https://github.com/go-sql-driver/mysql/blob/master/CONTRIBUTING.md) for details.\n\n---------------------------------------\n\n## License\nGo-MySQL-Driver is licensed under the [Mozilla Public License Version 2.0](https://raw.github.com/go-sql-driver/mysql/master/LICENSE)\n\nMozilla summarizes the license scope as follows:\n> MPL: The copyleft applies to any files containing MPLed code.\n\n\nThat means:\n  * You can **use** the **unchanged** source code both in private and commercially.\n  * When distributing, you **must publish** the source code of any **changed files** licensed under the MPL 2.0 under a) the MPL 2.0 itself or b) a compatible license (e.g. GPL 3.0 or Apache License 2.0).\n  * You **needn't publish** the source code of your library as long as the files licensed under the MPL 2.0 are **unchanged**.\n\nPlease read the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) if you have further questions regarding the license.\n\nYou can read the full terms here: [LICENSE](https://raw.github.com/go-sql-driver/mysql/master/LICENSE).\n\n![Go Gopher and MySQL Dolphin](https://raw.github.com/wiki/go-sql-driver/mysql/go-mysql-driver_m.jpg \"Golang Gopher transporting the MySQL Dolphin in a wheelbarrow\")\n\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/appengine.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\n// +build appengine\n\npackage mysql\n\nimport (\n\t\"context\"\n\t\"net\"\n\n\t\"google.golang.org/appengine/cloudsql\"\n)\n\nfunc init() {\n\tRegisterDialContext(\"cloudsql\", func(_ context.Context, instance string) (net.Conn, error) {\n\t\t// XXX: the cloudsql driver still does not export a Context-aware dialer.\n\t\treturn cloudsql.Dial(instance)\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/auth.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2018 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/sha1\"\n\t\"crypto/sha256\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"sync\"\n)\n\n// server pub keys registry\nvar (\n\tserverPubKeyLock     sync.RWMutex\n\tserverPubKeyRegistry map[string]*rsa.PublicKey\n)\n\n// RegisterServerPubKey registers a server RSA public key which can be used to\n// send data in a secure manner to the server without receiving the public key\n// in a potentially insecure way from the server first.\n// Registered keys can afterwards be used adding serverPubKey=<name> to the DSN.\n//\n// Note: The provided rsa.PublicKey instance is exclusively owned by the driver\n// after registering it and may not be modified.\n//\n//  data, err := ioutil.ReadFile(\"mykey.pem\")\n//  if err != nil {\n//  \tlog.Fatal(err)\n//  }\n//\n//  block, _ := pem.Decode(data)\n//  if block == nil || block.Type != \"PUBLIC KEY\" {\n//  \tlog.Fatal(\"failed to decode PEM block containing public key\")\n//  }\n//\n//  pub, err := x509.ParsePKIXPublicKey(block.Bytes)\n//  if err != nil {\n//  \tlog.Fatal(err)\n//  }\n//\n//  if rsaPubKey, ok := pub.(*rsa.PublicKey); ok {\n//  \tmysql.RegisterServerPubKey(\"mykey\", rsaPubKey)\n//  } else {\n//  \tlog.Fatal(\"not a RSA public key\")\n//  }\n//\nfunc RegisterServerPubKey(name string, pubKey *rsa.PublicKey) {\n\tserverPubKeyLock.Lock()\n\tif serverPubKeyRegistry == nil {\n\t\tserverPubKeyRegistry = make(map[string]*rsa.PublicKey)\n\t}\n\n\tserverPubKeyRegistry[name] = pubKey\n\tserverPubKeyLock.Unlock()\n}\n\n// DeregisterServerPubKey removes the public key registered with the given name.\nfunc DeregisterServerPubKey(name string) {\n\tserverPubKeyLock.Lock()\n\tif serverPubKeyRegistry != nil {\n\t\tdelete(serverPubKeyRegistry, name)\n\t}\n\tserverPubKeyLock.Unlock()\n}\n\nfunc getServerPubKey(name string) (pubKey *rsa.PublicKey) {\n\tserverPubKeyLock.RLock()\n\tif v, ok := serverPubKeyRegistry[name]; ok {\n\t\tpubKey = v\n\t}\n\tserverPubKeyLock.RUnlock()\n\treturn\n}\n\n// Hash password using pre 4.1 (old password) method\n// https://github.com/atcurtis/mariadb/blob/master/mysys/my_rnd.c\ntype myRnd struct {\n\tseed1, seed2 uint32\n}\n\nconst myRndMaxVal = 0x3FFFFFFF\n\n// Pseudo random number generator\nfunc newMyRnd(seed1, seed2 uint32) *myRnd {\n\treturn &myRnd{\n\t\tseed1: seed1 % myRndMaxVal,\n\t\tseed2: seed2 % myRndMaxVal,\n\t}\n}\n\n// Tested to be equivalent to MariaDB's floating point variant\n// http://play.golang.org/p/QHvhd4qved\n// http://play.golang.org/p/RG0q4ElWDx\nfunc (r *myRnd) NextByte() byte {\n\tr.seed1 = (r.seed1*3 + r.seed2) % myRndMaxVal\n\tr.seed2 = (r.seed1 + r.seed2 + 33) % myRndMaxVal\n\n\treturn byte(uint64(r.seed1) * 31 / myRndMaxVal)\n}\n\n// Generate binary hash from byte string using insecure pre 4.1 method\nfunc pwHash(password []byte) (result [2]uint32) {\n\tvar add uint32 = 7\n\tvar tmp uint32\n\n\tresult[0] = 1345345333\n\tresult[1] = 0x12345671\n\n\tfor _, c := range password {\n\t\t// skip spaces and tabs in password\n\t\tif c == ' ' || c == '\\t' {\n\t\t\tcontinue\n\t\t}\n\n\t\ttmp = uint32(c)\n\t\tresult[0] ^= (((result[0] & 63) + add) * tmp) + (result[0] << 8)\n\t\tresult[1] += (result[1] << 8) ^ result[0]\n\t\tadd += tmp\n\t}\n\n\t// Remove sign bit (1<<31)-1)\n\tresult[0] &= 0x7FFFFFFF\n\tresult[1] &= 0x7FFFFFFF\n\n\treturn\n}\n\n// Hash password using insecure pre 4.1 method\nfunc scrambleOldPassword(scramble []byte, password string) []byte {\n\tif len(password) == 0 {\n\t\treturn nil\n\t}\n\n\tscramble = scramble[:8]\n\n\thashPw := pwHash([]byte(password))\n\thashSc := pwHash(scramble)\n\n\tr := newMyRnd(hashPw[0]^hashSc[0], hashPw[1]^hashSc[1])\n\n\tvar out [8]byte\n\tfor i := range out {\n\t\tout[i] = r.NextByte() + 64\n\t}\n\n\tmask := r.NextByte()\n\tfor i := range out {\n\t\tout[i] ^= mask\n\t}\n\n\treturn out[:]\n}\n\n// Hash password using 4.1+ method (SHA1)\nfunc scramblePassword(scramble []byte, password string) []byte {\n\tif len(password) == 0 {\n\t\treturn nil\n\t}\n\n\t// stage1Hash = SHA1(password)\n\tcrypt := sha1.New()\n\tcrypt.Write([]byte(password))\n\tstage1 := crypt.Sum(nil)\n\n\t// scrambleHash = SHA1(scramble + SHA1(stage1Hash))\n\t// inner Hash\n\tcrypt.Reset()\n\tcrypt.Write(stage1)\n\thash := crypt.Sum(nil)\n\n\t// outer Hash\n\tcrypt.Reset()\n\tcrypt.Write(scramble)\n\tcrypt.Write(hash)\n\tscramble = crypt.Sum(nil)\n\n\t// token = scrambleHash XOR stage1Hash\n\tfor i := range scramble {\n\t\tscramble[i] ^= stage1[i]\n\t}\n\treturn scramble\n}\n\n// Hash password using MySQL 8+ method (SHA256)\nfunc scrambleSHA256Password(scramble []byte, password string) []byte {\n\tif len(password) == 0 {\n\t\treturn nil\n\t}\n\n\t// XOR(SHA256(password), SHA256(SHA256(SHA256(password)), scramble))\n\n\tcrypt := sha256.New()\n\tcrypt.Write([]byte(password))\n\tmessage1 := crypt.Sum(nil)\n\n\tcrypt.Reset()\n\tcrypt.Write(message1)\n\tmessage1Hash := crypt.Sum(nil)\n\n\tcrypt.Reset()\n\tcrypt.Write(message1Hash)\n\tcrypt.Write(scramble)\n\tmessage2 := crypt.Sum(nil)\n\n\tfor i := range message1 {\n\t\tmessage1[i] ^= message2[i]\n\t}\n\n\treturn message1\n}\n\nfunc encryptPassword(password string, seed []byte, pub *rsa.PublicKey) ([]byte, error) {\n\tplain := make([]byte, len(password)+1)\n\tcopy(plain, password)\n\tfor i := range plain {\n\t\tj := i % len(seed)\n\t\tplain[i] ^= seed[j]\n\t}\n\tsha1 := sha1.New()\n\treturn rsa.EncryptOAEP(sha1, rand.Reader, pub, plain, nil)\n}\n\nfunc (mc *mysqlConn) sendEncryptedPassword(seed []byte, pub *rsa.PublicKey) error {\n\tenc, err := encryptPassword(mc.cfg.Passwd, seed, pub)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn mc.writeAuthSwitchPacket(enc)\n}\n\nfunc (mc *mysqlConn) auth(authData []byte, plugin string) ([]byte, error) {\n\tswitch plugin {\n\tcase \"caching_sha2_password\":\n\t\tauthResp := scrambleSHA256Password(authData, mc.cfg.Passwd)\n\t\treturn authResp, nil\n\n\tcase \"mysql_old_password\":\n\t\tif !mc.cfg.AllowOldPasswords {\n\t\t\treturn nil, ErrOldPassword\n\t\t}\n\t\t// Note: there are edge cases where this should work but doesn't;\n\t\t// this is currently \"wontfix\":\n\t\t// https://github.com/go-sql-driver/mysql/issues/184\n\t\tauthResp := append(scrambleOldPassword(authData[:8], mc.cfg.Passwd), 0)\n\t\treturn authResp, nil\n\n\tcase \"mysql_clear_password\":\n\t\tif !mc.cfg.AllowCleartextPasswords {\n\t\t\treturn nil, ErrCleartextPassword\n\t\t}\n\t\t// http://dev.mysql.com/doc/refman/5.7/en/cleartext-authentication-plugin.html\n\t\t// http://dev.mysql.com/doc/refman/5.7/en/pam-authentication-plugin.html\n\t\treturn append([]byte(mc.cfg.Passwd), 0), nil\n\n\tcase \"mysql_native_password\":\n\t\tif !mc.cfg.AllowNativePasswords {\n\t\t\treturn nil, ErrNativePassword\n\t\t}\n\t\t// https://dev.mysql.com/doc/internals/en/secure-password-authentication.html\n\t\t// Native password authentication only need and will need 20-byte challenge.\n\t\tauthResp := scramblePassword(authData[:20], mc.cfg.Passwd)\n\t\treturn authResp, nil\n\n\tcase \"sha256_password\":\n\t\tif len(mc.cfg.Passwd) == 0 {\n\t\t\treturn []byte{0}, nil\n\t\t}\n\t\tif mc.cfg.tls != nil || mc.cfg.Net == \"unix\" {\n\t\t\t// write cleartext auth packet\n\t\t\treturn append([]byte(mc.cfg.Passwd), 0), nil\n\t\t}\n\n\t\tpubKey := mc.cfg.pubKey\n\t\tif pubKey == nil {\n\t\t\t// request public key from server\n\t\t\treturn []byte{1}, nil\n\t\t}\n\n\t\t// encrypted password\n\t\tenc, err := encryptPassword(mc.cfg.Passwd, authData, pubKey)\n\t\treturn enc, err\n\n\tdefault:\n\t\terrLog.Print(\"unknown auth plugin:\", plugin)\n\t\treturn nil, ErrUnknownPlugin\n\t}\n}\n\nfunc (mc *mysqlConn) handleAuthResult(oldAuthData []byte, plugin string) error {\n\t// Read Result Packet\n\tauthData, newPlugin, err := mc.readAuthResult()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// handle auth plugin switch, if requested\n\tif newPlugin != \"\" {\n\t\t// If CLIENT_PLUGIN_AUTH capability is not supported, no new cipher is\n\t\t// sent and we have to keep using the cipher sent in the init packet.\n\t\tif authData == nil {\n\t\t\tauthData = oldAuthData\n\t\t} else {\n\t\t\t// copy data from read buffer to owned slice\n\t\t\tcopy(oldAuthData, authData)\n\t\t}\n\n\t\tplugin = newPlugin\n\n\t\tauthResp, err := mc.auth(authData, plugin)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = mc.writeAuthSwitchPacket(authResp); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Read Result Packet\n\t\tauthData, newPlugin, err = mc.readAuthResult()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Do not allow to change the auth plugin more than once\n\t\tif newPlugin != \"\" {\n\t\t\treturn ErrMalformPkt\n\t\t}\n\t}\n\n\tswitch plugin {\n\n\t// https://insidemysql.com/preparing-your-community-connector-for-mysql-8-part-2-sha256/\n\tcase \"caching_sha2_password\":\n\t\tswitch len(authData) {\n\t\tcase 0:\n\t\t\treturn nil // auth successful\n\t\tcase 1:\n\t\t\tswitch authData[0] {\n\t\t\tcase cachingSha2PasswordFastAuthSuccess:\n\t\t\t\tif err = mc.readResultOK(); err == nil {\n\t\t\t\t\treturn nil // auth successful\n\t\t\t\t}\n\n\t\t\tcase cachingSha2PasswordPerformFullAuthentication:\n\t\t\t\tif mc.cfg.tls != nil || mc.cfg.Net == \"unix\" {\n\t\t\t\t\t// write cleartext auth packet\n\t\t\t\t\terr = mc.writeAuthSwitchPacket(append([]byte(mc.cfg.Passwd), 0))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpubKey := mc.cfg.pubKey\n\t\t\t\t\tif pubKey == nil {\n\t\t\t\t\t\t// request public key from server\n\t\t\t\t\t\tdata, err := mc.buf.takeSmallBuffer(4 + 1)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdata[4] = cachingSha2PasswordRequestPublicKey\n\t\t\t\t\t\tmc.writePacket(data)\n\n\t\t\t\t\t\t// parse public key\n\t\t\t\t\t\tif data, err = mc.readPacket(); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tblock, _ := pem.Decode(data[1:])\n\t\t\t\t\t\tpkix, err := x509.ParsePKIXPublicKey(block.Bytes)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpubKey = pkix.(*rsa.PublicKey)\n\t\t\t\t\t}\n\n\t\t\t\t\t// send encrypted password\n\t\t\t\t\terr = mc.sendEncryptedPassword(oldAuthData, pubKey)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn mc.readResultOK()\n\n\t\t\tdefault:\n\t\t\t\treturn ErrMalformPkt\n\t\t\t}\n\t\tdefault:\n\t\t\treturn ErrMalformPkt\n\t\t}\n\n\tcase \"sha256_password\":\n\t\tswitch len(authData) {\n\t\tcase 0:\n\t\t\treturn nil // auth successful\n\t\tdefault:\n\t\t\tblock, _ := pem.Decode(authData)\n\t\t\tpub, err := x509.ParsePKIXPublicKey(block.Bytes)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// send encrypted password\n\t\t\terr = mc.sendEncryptedPassword(oldAuthData, pub.(*rsa.PublicKey))\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn mc.readResultOK()\n\t\t}\n\n\tdefault:\n\t\treturn nil // auth successful\n\t}\n\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/buffer.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"io\"\n\t\"net\"\n\t\"time\"\n)\n\nconst defaultBufSize = 4096\nconst maxCachedBufSize = 256 * 1024\n\n// A buffer which is used for both reading and writing.\n// This is possible since communication on each connection is synchronous.\n// In other words, we can't write and read simultaneously on the same connection.\n// The buffer is similar to bufio.Reader / Writer but zero-copy-ish\n// Also highly optimized for this particular use case.\n// This buffer is backed by two byte slices in a double-buffering scheme\ntype buffer struct {\n\tbuf     []byte // buf is a byte buffer who's length and capacity are equal.\n\tnc      net.Conn\n\tidx     int\n\tlength  int\n\ttimeout time.Duration\n\tdbuf    [2][]byte // dbuf is an array with the two byte slices that back this buffer\n\tflipcnt uint      // flipccnt is the current buffer counter for double-buffering\n}\n\n// newBuffer allocates and returns a new buffer.\nfunc newBuffer(nc net.Conn) buffer {\n\tfg := make([]byte, defaultBufSize)\n\treturn buffer{\n\t\tbuf:  fg,\n\t\tnc:   nc,\n\t\tdbuf: [2][]byte{fg, nil},\n\t}\n}\n\n// flip replaces the active buffer with the background buffer\n// this is a delayed flip that simply increases the buffer counter;\n// the actual flip will be performed the next time we call `buffer.fill`\nfunc (b *buffer) flip() {\n\tb.flipcnt += 1\n}\n\n// fill reads into the buffer until at least _need_ bytes are in it\nfunc (b *buffer) fill(need int) error {\n\tn := b.length\n\t// fill data into its double-buffering target: if we've called\n\t// flip on this buffer, we'll be copying to the background buffer,\n\t// and then filling it with network data; otherwise we'll just move\n\t// the contents of the current buffer to the front before filling it\n\tdest := b.dbuf[b.flipcnt&1]\n\n\t// grow buffer if necessary to fit the whole packet.\n\tif need > len(dest) {\n\t\t// Round up to the next multiple of the default size\n\t\tdest = make([]byte, ((need/defaultBufSize)+1)*defaultBufSize)\n\n\t\t// if the allocated buffer is not too large, move it to backing storage\n\t\t// to prevent extra allocations on applications that perform large reads\n\t\tif len(dest) <= maxCachedBufSize {\n\t\t\tb.dbuf[b.flipcnt&1] = dest\n\t\t}\n\t}\n\n\t// if we're filling the fg buffer, move the existing data to the start of it.\n\t// if we're filling the bg buffer, copy over the data\n\tif n > 0 {\n\t\tcopy(dest[:n], b.buf[b.idx:])\n\t}\n\n\tb.buf = dest\n\tb.idx = 0\n\n\tfor {\n\t\tif b.timeout > 0 {\n\t\t\tif err := b.nc.SetReadDeadline(time.Now().Add(b.timeout)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tnn, err := b.nc.Read(b.buf[n:])\n\t\tn += nn\n\n\t\tswitch err {\n\t\tcase nil:\n\t\t\tif n < need {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tb.length = n\n\t\t\treturn nil\n\n\t\tcase io.EOF:\n\t\t\tif n >= need {\n\t\t\t\tb.length = n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn io.ErrUnexpectedEOF\n\n\t\tdefault:\n\t\t\treturn err\n\t\t}\n\t}\n}\n\n// returns next N bytes from buffer.\n// The returned slice is only guaranteed to be valid until the next read\nfunc (b *buffer) readNext(need int) ([]byte, error) {\n\tif b.length < need {\n\t\t// refill\n\t\tif err := b.fill(need); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\toffset := b.idx\n\tb.idx += need\n\tb.length -= need\n\treturn b.buf[offset:b.idx], nil\n}\n\n// takeBuffer returns a buffer with the requested size.\n// If possible, a slice from the existing buffer is returned.\n// Otherwise a bigger buffer is made.\n// Only one buffer (total) can be used at a time.\nfunc (b *buffer) takeBuffer(length int) ([]byte, error) {\n\tif b.length > 0 {\n\t\treturn nil, ErrBusyBuffer\n\t}\n\n\t// test (cheap) general case first\n\tif length <= cap(b.buf) {\n\t\treturn b.buf[:length], nil\n\t}\n\n\tif length < maxPacketSize {\n\t\tb.buf = make([]byte, length)\n\t\treturn b.buf, nil\n\t}\n\n\t// buffer is larger than we want to store.\n\treturn make([]byte, length), nil\n}\n\n// takeSmallBuffer is shortcut which can be used if length is\n// known to be smaller than defaultBufSize.\n// Only one buffer (total) can be used at a time.\nfunc (b *buffer) takeSmallBuffer(length int) ([]byte, error) {\n\tif b.length > 0 {\n\t\treturn nil, ErrBusyBuffer\n\t}\n\treturn b.buf[:length], nil\n}\n\n// takeCompleteBuffer returns the complete existing buffer.\n// This can be used if the necessary buffer size is unknown.\n// cap and len of the returned buffer will be equal.\n// Only one buffer (total) can be used at a time.\nfunc (b *buffer) takeCompleteBuffer() ([]byte, error) {\n\tif b.length > 0 {\n\t\treturn nil, ErrBusyBuffer\n\t}\n\treturn b.buf, nil\n}\n\n// store stores buf, an updated buffer, if its suitable to do so.\nfunc (b *buffer) store(buf []byte) error {\n\tif b.length > 0 {\n\t\treturn ErrBusyBuffer\n\t} else if cap(buf) <= maxPacketSize && cap(buf) > cap(b.buf) {\n\t\tb.buf = buf[:cap(buf)]\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/collations.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2014 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nconst defaultCollation = \"utf8mb4_general_ci\"\nconst binaryCollation = \"binary\"\n\n// A list of available collations mapped to the internal ID.\n// To update this map use the following MySQL query:\n//     SELECT COLLATION_NAME, ID FROM information_schema.COLLATIONS WHERE ID<256 ORDER BY ID\n//\n// Handshake packet have only 1 byte for collation_id.  So we can't use collations with ID > 255.\n//\n// ucs2, utf16, and utf32 can't be used for connection charset.\n// https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html#charset-connection-impermissible-client-charset\n// They are commented out to reduce this map.\nvar collations = map[string]byte{\n\t\"big5_chinese_ci\":      1,\n\t\"latin2_czech_cs\":      2,\n\t\"dec8_swedish_ci\":      3,\n\t\"cp850_general_ci\":     4,\n\t\"latin1_german1_ci\":    5,\n\t\"hp8_english_ci\":       6,\n\t\"koi8r_general_ci\":     7,\n\t\"latin1_swedish_ci\":    8,\n\t\"latin2_general_ci\":    9,\n\t\"swe7_swedish_ci\":      10,\n\t\"ascii_general_ci\":     11,\n\t\"ujis_japanese_ci\":     12,\n\t\"sjis_japanese_ci\":     13,\n\t\"cp1251_bulgarian_ci\":  14,\n\t\"latin1_danish_ci\":     15,\n\t\"hebrew_general_ci\":    16,\n\t\"tis620_thai_ci\":       18,\n\t\"euckr_korean_ci\":      19,\n\t\"latin7_estonian_cs\":   20,\n\t\"latin2_hungarian_ci\":  21,\n\t\"koi8u_general_ci\":     22,\n\t\"cp1251_ukrainian_ci\":  23,\n\t\"gb2312_chinese_ci\":    24,\n\t\"greek_general_ci\":     25,\n\t\"cp1250_general_ci\":    26,\n\t\"latin2_croatian_ci\":   27,\n\t\"gbk_chinese_ci\":       28,\n\t\"cp1257_lithuanian_ci\": 29,\n\t\"latin5_turkish_ci\":    30,\n\t\"latin1_german2_ci\":    31,\n\t\"armscii8_general_ci\":  32,\n\t\"utf8_general_ci\":      33,\n\t\"cp1250_czech_cs\":      34,\n\t//\"ucs2_general_ci\":          35,\n\t\"cp866_general_ci\":    36,\n\t\"keybcs2_general_ci\":  37,\n\t\"macce_general_ci\":    38,\n\t\"macroman_general_ci\": 39,\n\t\"cp852_general_ci\":    40,\n\t\"latin7_general_ci\":   41,\n\t\"latin7_general_cs\":   42,\n\t\"macce_bin\":           43,\n\t\"cp1250_croatian_ci\":  44,\n\t\"utf8mb4_general_ci\":  45,\n\t\"utf8mb4_bin\":         46,\n\t\"latin1_bin\":          47,\n\t\"latin1_general_ci\":   48,\n\t\"latin1_general_cs\":   49,\n\t\"cp1251_bin\":          50,\n\t\"cp1251_general_ci\":   51,\n\t\"cp1251_general_cs\":   52,\n\t\"macroman_bin\":        53,\n\t//\"utf16_general_ci\":         54,\n\t//\"utf16_bin\":                55,\n\t//\"utf16le_general_ci\":       56,\n\t\"cp1256_general_ci\": 57,\n\t\"cp1257_bin\":        58,\n\t\"cp1257_general_ci\": 59,\n\t//\"utf32_general_ci\":         60,\n\t//\"utf32_bin\":                61,\n\t//\"utf16le_bin\":              62,\n\t\"binary\":          63,\n\t\"armscii8_bin\":    64,\n\t\"ascii_bin\":       65,\n\t\"cp1250_bin\":      66,\n\t\"cp1256_bin\":      67,\n\t\"cp866_bin\":       68,\n\t\"dec8_bin\":        69,\n\t\"greek_bin\":       70,\n\t\"hebrew_bin\":      71,\n\t\"hp8_bin\":         72,\n\t\"keybcs2_bin\":     73,\n\t\"koi8r_bin\":       74,\n\t\"koi8u_bin\":       75,\n\t\"utf8_tolower_ci\": 76,\n\t\"latin2_bin\":      77,\n\t\"latin5_bin\":      78,\n\t\"latin7_bin\":      79,\n\t\"cp850_bin\":       80,\n\t\"cp852_bin\":       81,\n\t\"swe7_bin\":        82,\n\t\"utf8_bin\":        83,\n\t\"big5_bin\":        84,\n\t\"euckr_bin\":       85,\n\t\"gb2312_bin\":      86,\n\t\"gbk_bin\":         87,\n\t\"sjis_bin\":        88,\n\t\"tis620_bin\":      89,\n\t//\"ucs2_bin\":                 90,\n\t\"ujis_bin\":            91,\n\t\"geostd8_general_ci\":  92,\n\t\"geostd8_bin\":         93,\n\t\"latin1_spanish_ci\":   94,\n\t\"cp932_japanese_ci\":   95,\n\t\"cp932_bin\":           96,\n\t\"eucjpms_japanese_ci\": 97,\n\t\"eucjpms_bin\":         98,\n\t\"cp1250_polish_ci\":    99,\n\t//\"utf16_unicode_ci\":         101,\n\t//\"utf16_icelandic_ci\":       102,\n\t//\"utf16_latvian_ci\":         103,\n\t//\"utf16_romanian_ci\":        104,\n\t//\"utf16_slovenian_ci\":       105,\n\t//\"utf16_polish_ci\":          106,\n\t//\"utf16_estonian_ci\":        107,\n\t//\"utf16_spanish_ci\":         108,\n\t//\"utf16_swedish_ci\":         109,\n\t//\"utf16_turkish_ci\":         110,\n\t//\"utf16_czech_ci\":           111,\n\t//\"utf16_danish_ci\":          112,\n\t//\"utf16_lithuanian_ci\":      113,\n\t//\"utf16_slovak_ci\":          114,\n\t//\"utf16_spanish2_ci\":        115,\n\t//\"utf16_roman_ci\":           116,\n\t//\"utf16_persian_ci\":         117,\n\t//\"utf16_esperanto_ci\":       118,\n\t//\"utf16_hungarian_ci\":       119,\n\t//\"utf16_sinhala_ci\":         120,\n\t//\"utf16_german2_ci\":         121,\n\t//\"utf16_croatian_ci\":        122,\n\t//\"utf16_unicode_520_ci\":     123,\n\t//\"utf16_vietnamese_ci\":      124,\n\t//\"ucs2_unicode_ci\":          128,\n\t//\"ucs2_icelandic_ci\":        129,\n\t//\"ucs2_latvian_ci\":          130,\n\t//\"ucs2_romanian_ci\":         131,\n\t//\"ucs2_slovenian_ci\":        132,\n\t//\"ucs2_polish_ci\":           133,\n\t//\"ucs2_estonian_ci\":         134,\n\t//\"ucs2_spanish_ci\":          135,\n\t//\"ucs2_swedish_ci\":          136,\n\t//\"ucs2_turkish_ci\":          137,\n\t//\"ucs2_czech_ci\":            138,\n\t//\"ucs2_danish_ci\":           139,\n\t//\"ucs2_lithuanian_ci\":       140,\n\t//\"ucs2_slovak_ci\":           141,\n\t//\"ucs2_spanish2_ci\":         142,\n\t//\"ucs2_roman_ci\":            143,\n\t//\"ucs2_persian_ci\":          144,\n\t//\"ucs2_esperanto_ci\":        145,\n\t//\"ucs2_hungarian_ci\":        146,\n\t//\"ucs2_sinhala_ci\":          147,\n\t//\"ucs2_german2_ci\":          148,\n\t//\"ucs2_croatian_ci\":         149,\n\t//\"ucs2_unicode_520_ci\":      150,\n\t//\"ucs2_vietnamese_ci\":       151,\n\t//\"ucs2_general_mysql500_ci\": 159,\n\t//\"utf32_unicode_ci\":         160,\n\t//\"utf32_icelandic_ci\":       161,\n\t//\"utf32_latvian_ci\":         162,\n\t//\"utf32_romanian_ci\":        163,\n\t//\"utf32_slovenian_ci\":       164,\n\t//\"utf32_polish_ci\":          165,\n\t//\"utf32_estonian_ci\":        166,\n\t//\"utf32_spanish_ci\":         167,\n\t//\"utf32_swedish_ci\":         168,\n\t//\"utf32_turkish_ci\":         169,\n\t//\"utf32_czech_ci\":           170,\n\t//\"utf32_danish_ci\":          171,\n\t//\"utf32_lithuanian_ci\":      172,\n\t//\"utf32_slovak_ci\":          173,\n\t//\"utf32_spanish2_ci\":        174,\n\t//\"utf32_roman_ci\":           175,\n\t//\"utf32_persian_ci\":         176,\n\t//\"utf32_esperanto_ci\":       177,\n\t//\"utf32_hungarian_ci\":       178,\n\t//\"utf32_sinhala_ci\":         179,\n\t//\"utf32_german2_ci\":         180,\n\t//\"utf32_croatian_ci\":        181,\n\t//\"utf32_unicode_520_ci\":     182,\n\t//\"utf32_vietnamese_ci\":      183,\n\t\"utf8_unicode_ci\":          192,\n\t\"utf8_icelandic_ci\":        193,\n\t\"utf8_latvian_ci\":          194,\n\t\"utf8_romanian_ci\":         195,\n\t\"utf8_slovenian_ci\":        196,\n\t\"utf8_polish_ci\":           197,\n\t\"utf8_estonian_ci\":         198,\n\t\"utf8_spanish_ci\":          199,\n\t\"utf8_swedish_ci\":          200,\n\t\"utf8_turkish_ci\":          201,\n\t\"utf8_czech_ci\":            202,\n\t\"utf8_danish_ci\":           203,\n\t\"utf8_lithuanian_ci\":       204,\n\t\"utf8_slovak_ci\":           205,\n\t\"utf8_spanish2_ci\":         206,\n\t\"utf8_roman_ci\":            207,\n\t\"utf8_persian_ci\":          208,\n\t\"utf8_esperanto_ci\":        209,\n\t\"utf8_hungarian_ci\":        210,\n\t\"utf8_sinhala_ci\":          211,\n\t\"utf8_german2_ci\":          212,\n\t\"utf8_croatian_ci\":         213,\n\t\"utf8_unicode_520_ci\":      214,\n\t\"utf8_vietnamese_ci\":       215,\n\t\"utf8_general_mysql500_ci\": 223,\n\t\"utf8mb4_unicode_ci\":       224,\n\t\"utf8mb4_icelandic_ci\":     225,\n\t\"utf8mb4_latvian_ci\":       226,\n\t\"utf8mb4_romanian_ci\":      227,\n\t\"utf8mb4_slovenian_ci\":     228,\n\t\"utf8mb4_polish_ci\":        229,\n\t\"utf8mb4_estonian_ci\":      230,\n\t\"utf8mb4_spanish_ci\":       231,\n\t\"utf8mb4_swedish_ci\":       232,\n\t\"utf8mb4_turkish_ci\":       233,\n\t\"utf8mb4_czech_ci\":         234,\n\t\"utf8mb4_danish_ci\":        235,\n\t\"utf8mb4_lithuanian_ci\":    236,\n\t\"utf8mb4_slovak_ci\":        237,\n\t\"utf8mb4_spanish2_ci\":      238,\n\t\"utf8mb4_roman_ci\":         239,\n\t\"utf8mb4_persian_ci\":       240,\n\t\"utf8mb4_esperanto_ci\":     241,\n\t\"utf8mb4_hungarian_ci\":     242,\n\t\"utf8mb4_sinhala_ci\":       243,\n\t\"utf8mb4_german2_ci\":       244,\n\t\"utf8mb4_croatian_ci\":      245,\n\t\"utf8mb4_unicode_520_ci\":   246,\n\t\"utf8mb4_vietnamese_ci\":    247,\n\t\"gb18030_chinese_ci\":       248,\n\t\"gb18030_bin\":              249,\n\t\"gb18030_unicode_520_ci\":   250,\n\t\"utf8mb4_0900_ai_ci\":       255,\n}\n\n// A blacklist of collations which is unsafe to interpolate parameters.\n// These multibyte encodings may contains 0x5c (`\\`) in their trailing bytes.\nvar unsafeCollations = map[string]bool{\n\t\"big5_chinese_ci\":        true,\n\t\"sjis_japanese_ci\":       true,\n\t\"gbk_chinese_ci\":         true,\n\t\"big5_bin\":               true,\n\t\"gb2312_bin\":             true,\n\t\"gbk_bin\":                true,\n\t\"sjis_bin\":               true,\n\t\"cp932_japanese_ci\":      true,\n\t\"cp932_bin\":              true,\n\t\"gb18030_chinese_ci\":     true,\n\t\"gb18030_bin\":            true,\n\t\"gb18030_unicode_520_ci\": true,\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/conncheck.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2019 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\n// +build !windows,!appengine\n\npackage mysql\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"net\"\n\t\"syscall\"\n)\n\nvar errUnexpectedRead = errors.New(\"unexpected read from socket\")\n\nfunc connCheck(c net.Conn) error {\n\tvar (\n\t\tn    int\n\t\terr  error\n\t\tbuff [1]byte\n\t)\n\n\tsconn, ok := c.(syscall.Conn)\n\tif !ok {\n\t\treturn nil\n\t}\n\trc, err := sconn.SyscallConn()\n\tif err != nil {\n\t\treturn err\n\t}\n\trerr := rc.Read(func(fd uintptr) bool {\n\t\tn, err = syscall.Read(int(fd), buff[:])\n\t\treturn true\n\t})\n\tswitch {\n\tcase rerr != nil:\n\t\treturn rerr\n\tcase n == 0 && err == nil:\n\t\treturn io.EOF\n\tcase n > 0:\n\t\treturn errUnexpectedRead\n\tcase err == syscall.EAGAIN || err == syscall.EWOULDBLOCK:\n\t\treturn nil\n\tdefault:\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/conncheck_dummy.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2019 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\n// +build windows appengine\n\npackage mysql\n\nimport \"net\"\n\nfunc connCheck(c net.Conn) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/connection.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"io\"\n\t\"net\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype mysqlConn struct {\n\tbuf              buffer\n\tnetConn          net.Conn\n\trawConn          net.Conn // underlying connection when netConn is TLS connection.\n\taffectedRows     uint64\n\tinsertId         uint64\n\tcfg              *Config\n\tmaxAllowedPacket int\n\tmaxWriteSize     int\n\twriteTimeout     time.Duration\n\tflags            clientFlag\n\tstatus           statusFlag\n\tsequence         uint8\n\tparseTime        bool\n\treset            bool // set when the Go SQL package calls ResetSession\n\n\t// for context support (Go 1.8+)\n\twatching bool\n\twatcher  chan<- context.Context\n\tclosech  chan struct{}\n\tfinished chan<- struct{}\n\tcanceled atomicError // set non-nil if conn is canceled\n\tclosed   atomicBool  // set when conn is closed, before closech is closed\n}\n\n// Handles parameters set in DSN after the connection is established\nfunc (mc *mysqlConn) handleParams() (err error) {\n\tfor param, val := range mc.cfg.Params {\n\t\tswitch param {\n\t\t// Charset\n\t\tcase \"charset\":\n\t\t\tcharsets := strings.Split(val, \",\")\n\t\t\tfor i := range charsets {\n\t\t\t\t// ignore errors here - a charset may not exist\n\t\t\t\terr = mc.exec(\"SET NAMES \" + charsets[i])\n\t\t\t\tif err == nil {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t// System Vars\n\t\tdefault:\n\t\t\terr = mc.exec(\"SET \" + param + \"=\" + val + \"\")\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc (mc *mysqlConn) markBadConn(err error) error {\n\tif mc == nil {\n\t\treturn err\n\t}\n\tif err != errBadConnNoWrite {\n\t\treturn err\n\t}\n\treturn driver.ErrBadConn\n}\n\nfunc (mc *mysqlConn) Begin() (driver.Tx, error) {\n\treturn mc.begin(false)\n}\n\nfunc (mc *mysqlConn) begin(readOnly bool) (driver.Tx, error) {\n\tif mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn nil, driver.ErrBadConn\n\t}\n\tvar q string\n\tif readOnly {\n\t\tq = \"START TRANSACTION READ ONLY\"\n\t} else {\n\t\tq = \"START TRANSACTION\"\n\t}\n\terr := mc.exec(q)\n\tif err == nil {\n\t\treturn &mysqlTx{mc}, err\n\t}\n\treturn nil, mc.markBadConn(err)\n}\n\nfunc (mc *mysqlConn) Close() (err error) {\n\t// Makes Close idempotent\n\tif !mc.closed.IsSet() {\n\t\terr = mc.writeCommandPacket(comQuit)\n\t}\n\n\tmc.cleanup()\n\n\treturn\n}\n\n// Closes the network connection and unsets internal variables. Do not call this\n// function after successfully authentication, call Close instead. This function\n// is called before auth or on auth failure because MySQL will have already\n// closed the network connection.\nfunc (mc *mysqlConn) cleanup() {\n\tif !mc.closed.TrySet(true) {\n\t\treturn\n\t}\n\n\t// Makes cleanup idempotent\n\tclose(mc.closech)\n\tif mc.netConn == nil {\n\t\treturn\n\t}\n\tif err := mc.netConn.Close(); err != nil {\n\t\terrLog.Print(err)\n\t}\n}\n\nfunc (mc *mysqlConn) error() error {\n\tif mc.closed.IsSet() {\n\t\tif err := mc.canceled.Value(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn ErrInvalidConn\n\t}\n\treturn nil\n}\n\nfunc (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) {\n\tif mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn nil, driver.ErrBadConn\n\t}\n\t// Send command\n\terr := mc.writeCommandPacketStr(comStmtPrepare, query)\n\tif err != nil {\n\t\treturn nil, mc.markBadConn(err)\n\t}\n\n\tstmt := &mysqlStmt{\n\t\tmc: mc,\n\t}\n\n\t// Read Result\n\tcolumnCount, err := stmt.readPrepareResultPacket()\n\tif err == nil {\n\t\tif stmt.paramCount > 0 {\n\t\t\tif err = mc.readUntilEOF(); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\tif columnCount > 0 {\n\t\t\terr = mc.readUntilEOF()\n\t\t}\n\t}\n\n\treturn stmt, err\n}\n\nfunc (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (string, error) {\n\t// Number of ? should be same to len(args)\n\tif strings.Count(query, \"?\") != len(args) {\n\t\treturn \"\", driver.ErrSkip\n\t}\n\n\tbuf, err := mc.buf.takeCompleteBuffer()\n\tif err != nil {\n\t\t// can not take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn \"\", ErrInvalidConn\n\t}\n\tbuf = buf[:0]\n\targPos := 0\n\n\tfor i := 0; i < len(query); i++ {\n\t\tq := strings.IndexByte(query[i:], '?')\n\t\tif q == -1 {\n\t\t\tbuf = append(buf, query[i:]...)\n\t\t\tbreak\n\t\t}\n\t\tbuf = append(buf, query[i:i+q]...)\n\t\ti += q\n\n\t\targ := args[argPos]\n\t\targPos++\n\n\t\tif arg == nil {\n\t\t\tbuf = append(buf, \"NULL\"...)\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch v := arg.(type) {\n\t\tcase int64:\n\t\t\tbuf = strconv.AppendInt(buf, v, 10)\n\t\tcase uint64:\n\t\t\t// Handle uint64 explicitly because our custom ConvertValue emits unsigned values\n\t\t\tbuf = strconv.AppendUint(buf, v, 10)\n\t\tcase float64:\n\t\t\tbuf = strconv.AppendFloat(buf, v, 'g', -1, 64)\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tbuf = append(buf, '1')\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, '0')\n\t\t\t}\n\t\tcase time.Time:\n\t\t\tif v.IsZero() {\n\t\t\t\tbuf = append(buf, \"'0000-00-00'\"...)\n\t\t\t} else {\n\t\t\t\tv := v.In(mc.cfg.Loc)\n\t\t\t\tv = v.Add(time.Nanosecond * 500) // To round under microsecond\n\t\t\t\tyear := v.Year()\n\t\t\t\tyear100 := year / 100\n\t\t\t\tyear1 := year % 100\n\t\t\t\tmonth := v.Month()\n\t\t\t\tday := v.Day()\n\t\t\t\thour := v.Hour()\n\t\t\t\tminute := v.Minute()\n\t\t\t\tsecond := v.Second()\n\t\t\t\tmicro := v.Nanosecond() / 1000\n\n\t\t\t\tbuf = append(buf, []byte{\n\t\t\t\t\t'\\'',\n\t\t\t\t\tdigits10[year100], digits01[year100],\n\t\t\t\t\tdigits10[year1], digits01[year1],\n\t\t\t\t\t'-',\n\t\t\t\t\tdigits10[month], digits01[month],\n\t\t\t\t\t'-',\n\t\t\t\t\tdigits10[day], digits01[day],\n\t\t\t\t\t' ',\n\t\t\t\t\tdigits10[hour], digits01[hour],\n\t\t\t\t\t':',\n\t\t\t\t\tdigits10[minute], digits01[minute],\n\t\t\t\t\t':',\n\t\t\t\t\tdigits10[second], digits01[second],\n\t\t\t\t}...)\n\n\t\t\t\tif micro != 0 {\n\t\t\t\t\tmicro10000 := micro / 10000\n\t\t\t\t\tmicro100 := micro / 100 % 100\n\t\t\t\t\tmicro1 := micro % 100\n\t\t\t\t\tbuf = append(buf, []byte{\n\t\t\t\t\t\t'.',\n\t\t\t\t\t\tdigits10[micro10000], digits01[micro10000],\n\t\t\t\t\t\tdigits10[micro100], digits01[micro100],\n\t\t\t\t\t\tdigits10[micro1], digits01[micro1],\n\t\t\t\t\t}...)\n\t\t\t\t}\n\t\t\t\tbuf = append(buf, '\\'')\n\t\t\t}\n\t\tcase []byte:\n\t\t\tif v == nil {\n\t\t\t\tbuf = append(buf, \"NULL\"...)\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, \"_binary'\"...)\n\t\t\t\tif mc.status&statusNoBackslashEscapes == 0 {\n\t\t\t\t\tbuf = escapeBytesBackslash(buf, v)\n\t\t\t\t} else {\n\t\t\t\t\tbuf = escapeBytesQuotes(buf, v)\n\t\t\t\t}\n\t\t\t\tbuf = append(buf, '\\'')\n\t\t\t}\n\t\tcase string:\n\t\t\tbuf = append(buf, '\\'')\n\t\t\tif mc.status&statusNoBackslashEscapes == 0 {\n\t\t\t\tbuf = escapeStringBackslash(buf, v)\n\t\t\t} else {\n\t\t\t\tbuf = escapeStringQuotes(buf, v)\n\t\t\t}\n\t\t\tbuf = append(buf, '\\'')\n\t\tdefault:\n\t\t\treturn \"\", driver.ErrSkip\n\t\t}\n\n\t\tif len(buf)+4 > mc.maxAllowedPacket {\n\t\t\treturn \"\", driver.ErrSkip\n\t\t}\n\t}\n\tif argPos != len(args) {\n\t\treturn \"\", driver.ErrSkip\n\t}\n\treturn string(buf), nil\n}\n\nfunc (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, error) {\n\tif mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn nil, driver.ErrBadConn\n\t}\n\tif len(args) != 0 {\n\t\tif !mc.cfg.InterpolateParams {\n\t\t\treturn nil, driver.ErrSkip\n\t\t}\n\t\t// try to interpolate the parameters to save extra roundtrips for preparing and closing a statement\n\t\tprepared, err := mc.interpolateParams(query, args)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery = prepared\n\t}\n\tmc.affectedRows = 0\n\tmc.insertId = 0\n\n\terr := mc.exec(query)\n\tif err == nil {\n\t\treturn &mysqlResult{\n\t\t\taffectedRows: int64(mc.affectedRows),\n\t\t\tinsertId:     int64(mc.insertId),\n\t\t}, err\n\t}\n\treturn nil, mc.markBadConn(err)\n}\n\n// Internal function to execute commands\nfunc (mc *mysqlConn) exec(query string) error {\n\t// Send command\n\tif err := mc.writeCommandPacketStr(comQuery, query); err != nil {\n\t\treturn mc.markBadConn(err)\n\t}\n\n\t// Read Result\n\tresLen, err := mc.readResultSetHeaderPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif resLen > 0 {\n\t\t// columns\n\t\tif err := mc.readUntilEOF(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// rows\n\t\tif err := mc.readUntilEOF(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn mc.discardResults()\n}\n\nfunc (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) {\n\treturn mc.query(query, args)\n}\n\nfunc (mc *mysqlConn) query(query string, args []driver.Value) (*textRows, error) {\n\tif mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn nil, driver.ErrBadConn\n\t}\n\tif len(args) != 0 {\n\t\tif !mc.cfg.InterpolateParams {\n\t\t\treturn nil, driver.ErrSkip\n\t\t}\n\t\t// try client-side prepare to reduce roundtrip\n\t\tprepared, err := mc.interpolateParams(query, args)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery = prepared\n\t}\n\t// Send command\n\terr := mc.writeCommandPacketStr(comQuery, query)\n\tif err == nil {\n\t\t// Read Result\n\t\tvar resLen int\n\t\tresLen, err = mc.readResultSetHeaderPacket()\n\t\tif err == nil {\n\t\t\trows := new(textRows)\n\t\t\trows.mc = mc\n\n\t\t\tif resLen == 0 {\n\t\t\t\trows.rs.done = true\n\n\t\t\t\tswitch err := rows.NextResultSet(); err {\n\t\t\t\tcase nil, io.EOF:\n\t\t\t\t\treturn rows, nil\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Columns\n\t\t\trows.rs.columns, err = mc.readColumns(resLen)\n\t\t\treturn rows, err\n\t\t}\n\t}\n\treturn nil, mc.markBadConn(err)\n}\n\n// Gets the value of the given MySQL System Variable\n// The returned byte slice is only valid until the next read\nfunc (mc *mysqlConn) getSystemVar(name string) ([]byte, error) {\n\t// Send command\n\tif err := mc.writeCommandPacketStr(comQuery, \"SELECT @@\"+name); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Read Result\n\tresLen, err := mc.readResultSetHeaderPacket()\n\tif err == nil {\n\t\trows := new(textRows)\n\t\trows.mc = mc\n\t\trows.rs.columns = []mysqlField{{fieldType: fieldTypeVarChar}}\n\n\t\tif resLen > 0 {\n\t\t\t// Columns\n\t\t\tif err := mc.readUntilEOF(); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\tdest := make([]driver.Value, resLen)\n\t\tif err = rows.readRow(dest); err == nil {\n\t\t\treturn dest[0].([]byte), mc.readUntilEOF()\n\t\t}\n\t}\n\treturn nil, err\n}\n\n// finish is called when the query has canceled.\nfunc (mc *mysqlConn) cancel(err error) {\n\tmc.canceled.Set(err)\n\tmc.cleanup()\n}\n\n// finish is called when the query has succeeded.\nfunc (mc *mysqlConn) finish() {\n\tif !mc.watching || mc.finished == nil {\n\t\treturn\n\t}\n\tselect {\n\tcase mc.finished <- struct{}{}:\n\t\tmc.watching = false\n\tcase <-mc.closech:\n\t}\n}\n\n// Ping implements driver.Pinger interface\nfunc (mc *mysqlConn) Ping(ctx context.Context) (err error) {\n\tif mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn driver.ErrBadConn\n\t}\n\n\tif err = mc.watchCancel(ctx); err != nil {\n\t\treturn\n\t}\n\tdefer mc.finish()\n\n\tif err = mc.writeCommandPacket(comPing); err != nil {\n\t\treturn mc.markBadConn(err)\n\t}\n\n\treturn mc.readResultOK()\n}\n\n// BeginTx implements driver.ConnBeginTx interface\nfunc (mc *mysqlConn) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, error) {\n\tif err := mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\tdefer mc.finish()\n\n\tif sql.IsolationLevel(opts.Isolation) != sql.LevelDefault {\n\t\tlevel, err := mapIsolationLevel(opts.Isolation)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\terr = mc.exec(\"SET TRANSACTION ISOLATION LEVEL \" + level)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn mc.begin(opts.ReadOnly)\n}\n\nfunc (mc *mysqlConn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Rows, error) {\n\tdargs, err := namedValueToValue(args)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\n\trows, err := mc.query(query, dargs)\n\tif err != nil {\n\t\tmc.finish()\n\t\treturn nil, err\n\t}\n\trows.finish = mc.finish\n\treturn rows, err\n}\n\nfunc (mc *mysqlConn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error) {\n\tdargs, err := namedValueToValue(args)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\tdefer mc.finish()\n\n\treturn mc.Exec(query, dargs)\n}\n\nfunc (mc *mysqlConn) PrepareContext(ctx context.Context, query string) (driver.Stmt, error) {\n\tif err := mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\n\tstmt, err := mc.Prepare(query)\n\tmc.finish()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tselect {\n\tdefault:\n\tcase <-ctx.Done():\n\t\tstmt.Close()\n\t\treturn nil, ctx.Err()\n\t}\n\treturn stmt, nil\n}\n\nfunc (stmt *mysqlStmt) QueryContext(ctx context.Context, args []driver.NamedValue) (driver.Rows, error) {\n\tdargs, err := namedValueToValue(args)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := stmt.mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\n\trows, err := stmt.query(dargs)\n\tif err != nil {\n\t\tstmt.mc.finish()\n\t\treturn nil, err\n\t}\n\trows.finish = stmt.mc.finish\n\treturn rows, err\n}\n\nfunc (stmt *mysqlStmt) ExecContext(ctx context.Context, args []driver.NamedValue) (driver.Result, error) {\n\tdargs, err := namedValueToValue(args)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := stmt.mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\tdefer stmt.mc.finish()\n\n\treturn stmt.Exec(dargs)\n}\n\nfunc (mc *mysqlConn) watchCancel(ctx context.Context) error {\n\tif mc.watching {\n\t\t// Reach here if canceled,\n\t\t// so the connection is already invalid\n\t\tmc.cleanup()\n\t\treturn nil\n\t}\n\t// When ctx is already cancelled, don't watch it.\n\tif err := ctx.Err(); err != nil {\n\t\treturn err\n\t}\n\t// When ctx is not cancellable, don't watch it.\n\tif ctx.Done() == nil {\n\t\treturn nil\n\t}\n\t// When watcher is not alive, can't watch it.\n\tif mc.watcher == nil {\n\t\treturn nil\n\t}\n\n\tmc.watching = true\n\tmc.watcher <- ctx\n\treturn nil\n}\n\nfunc (mc *mysqlConn) startWatcher() {\n\twatcher := make(chan context.Context, 1)\n\tmc.watcher = watcher\n\tfinished := make(chan struct{})\n\tmc.finished = finished\n\tgo func() {\n\t\tfor {\n\t\t\tvar ctx context.Context\n\t\t\tselect {\n\t\t\tcase ctx = <-watcher:\n\t\t\tcase <-mc.closech:\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\tmc.cancel(ctx.Err())\n\t\t\tcase <-finished:\n\t\t\tcase <-mc.closech:\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n}\n\nfunc (mc *mysqlConn) CheckNamedValue(nv *driver.NamedValue) (err error) {\n\tnv.Value, err = converter{}.ConvertValue(nv.Value)\n\treturn\n}\n\n// ResetSession implements driver.SessionResetter.\n// (From Go 1.10)\nfunc (mc *mysqlConn) ResetSession(ctx context.Context) error {\n\tif mc.closed.IsSet() {\n\t\treturn driver.ErrBadConn\n\t}\n\tmc.reset = true\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/connector.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2018 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"context\"\n\t\"database/sql/driver\"\n\t\"net\"\n)\n\ntype connector struct {\n\tcfg *Config // immutable private copy.\n}\n\n// Connect implements driver.Connector interface.\n// Connect returns a connection to the database.\nfunc (c *connector) Connect(ctx context.Context) (driver.Conn, error) {\n\tvar err error\n\n\t// New mysqlConn\n\tmc := &mysqlConn{\n\t\tmaxAllowedPacket: maxPacketSize,\n\t\tmaxWriteSize:     maxPacketSize - 1,\n\t\tclosech:          make(chan struct{}),\n\t\tcfg:              c.cfg,\n\t}\n\tmc.parseTime = mc.cfg.ParseTime\n\n\t// Connect to Server\n\tdialsLock.RLock()\n\tdial, ok := dials[mc.cfg.Net]\n\tdialsLock.RUnlock()\n\tif ok {\n\t\tmc.netConn, err = dial(ctx, mc.cfg.Addr)\n\t} else {\n\t\tnd := net.Dialer{Timeout: mc.cfg.Timeout}\n\t\tmc.netConn, err = nd.DialContext(ctx, mc.cfg.Net, mc.cfg.Addr)\n\t}\n\n\tif err != nil {\n\t\tif nerr, ok := err.(net.Error); ok && nerr.Temporary() {\n\t\t\terrLog.Print(\"net.Error from Dial()': \", nerr.Error())\n\t\t\treturn nil, driver.ErrBadConn\n\t\t}\n\t\treturn nil, err\n\t}\n\n\t// Enable TCP Keepalives on TCP connections\n\tif tc, ok := mc.netConn.(*net.TCPConn); ok {\n\t\tif err := tc.SetKeepAlive(true); err != nil {\n\t\t\t// Don't send COM_QUIT before handshake.\n\t\t\tmc.netConn.Close()\n\t\t\tmc.netConn = nil\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Call startWatcher for context support (From Go 1.8)\n\tmc.startWatcher()\n\tif err := mc.watchCancel(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\tdefer mc.finish()\n\n\tmc.buf = newBuffer(mc.netConn)\n\n\t// Set I/O timeouts\n\tmc.buf.timeout = mc.cfg.ReadTimeout\n\tmc.writeTimeout = mc.cfg.WriteTimeout\n\n\t// Reading Handshake Initialization Packet\n\tauthData, plugin, err := mc.readHandshakePacket()\n\tif err != nil {\n\t\tmc.cleanup()\n\t\treturn nil, err\n\t}\n\n\tif plugin == \"\" {\n\t\tplugin = defaultAuthPlugin\n\t}\n\n\t// Send Client Authentication Packet\n\tauthResp, err := mc.auth(authData, plugin)\n\tif err != nil {\n\t\t// try the default auth plugin, if using the requested plugin failed\n\t\terrLog.Print(\"could not use requested auth plugin '\"+plugin+\"': \", err.Error())\n\t\tplugin = defaultAuthPlugin\n\t\tauthResp, err = mc.auth(authData, plugin)\n\t\tif err != nil {\n\t\t\tmc.cleanup()\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif err = mc.writeHandshakeResponsePacket(authResp, plugin); err != nil {\n\t\tmc.cleanup()\n\t\treturn nil, err\n\t}\n\n\t// Handle response to auth packet, switch methods if possible\n\tif err = mc.handleAuthResult(authData, plugin); err != nil {\n\t\t// Authentication failed and MySQL has already closed the connection\n\t\t// (https://dev.mysql.com/doc/internals/en/authentication-fails.html).\n\t\t// Do not send COM_QUIT, just cleanup and return the error.\n\t\tmc.cleanup()\n\t\treturn nil, err\n\t}\n\n\tif mc.cfg.MaxAllowedPacket > 0 {\n\t\tmc.maxAllowedPacket = mc.cfg.MaxAllowedPacket\n\t} else {\n\t\t// Get max allowed packet size\n\t\tmaxap, err := mc.getSystemVar(\"max_allowed_packet\")\n\t\tif err != nil {\n\t\t\tmc.Close()\n\t\t\treturn nil, err\n\t\t}\n\t\tmc.maxAllowedPacket = stringToInt(maxap) - 1\n\t}\n\tif mc.maxAllowedPacket < maxPacketSize {\n\t\tmc.maxWriteSize = mc.maxAllowedPacket\n\t}\n\n\t// Handle DSN Params\n\terr = mc.handleParams()\n\tif err != nil {\n\t\tmc.Close()\n\t\treturn nil, err\n\t}\n\n\treturn mc, nil\n}\n\n// Driver implements driver.Connector interface.\n// Driver returns &MySQLDriver{}.\nfunc (c *connector) Driver() driver.Driver {\n\treturn &MySQLDriver{}\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/const.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nconst (\n\tdefaultAuthPlugin       = \"mysql_native_password\"\n\tdefaultMaxAllowedPacket = 4 << 20 // 4 MiB\n\tminProtocolVersion      = 10\n\tmaxPacketSize           = 1<<24 - 1\n\ttimeFormat              = \"2006-01-02 15:04:05.999999\"\n)\n\n// MySQL constants documentation:\n// http://dev.mysql.com/doc/internals/en/client-server-protocol.html\n\nconst (\n\tiOK           byte = 0x00\n\tiAuthMoreData byte = 0x01\n\tiLocalInFile  byte = 0xfb\n\tiEOF          byte = 0xfe\n\tiERR          byte = 0xff\n)\n\n// https://dev.mysql.com/doc/internals/en/capability-flags.html#packet-Protocol::CapabilityFlags\ntype clientFlag uint32\n\nconst (\n\tclientLongPassword clientFlag = 1 << iota\n\tclientFoundRows\n\tclientLongFlag\n\tclientConnectWithDB\n\tclientNoSchema\n\tclientCompress\n\tclientODBC\n\tclientLocalFiles\n\tclientIgnoreSpace\n\tclientProtocol41\n\tclientInteractive\n\tclientSSL\n\tclientIgnoreSIGPIPE\n\tclientTransactions\n\tclientReserved\n\tclientSecureConn\n\tclientMultiStatements\n\tclientMultiResults\n\tclientPSMultiResults\n\tclientPluginAuth\n\tclientConnectAttrs\n\tclientPluginAuthLenEncClientData\n\tclientCanHandleExpiredPasswords\n\tclientSessionTrack\n\tclientDeprecateEOF\n)\n\nconst (\n\tcomQuit byte = iota + 1\n\tcomInitDB\n\tcomQuery\n\tcomFieldList\n\tcomCreateDB\n\tcomDropDB\n\tcomRefresh\n\tcomShutdown\n\tcomStatistics\n\tcomProcessInfo\n\tcomConnect\n\tcomProcessKill\n\tcomDebug\n\tcomPing\n\tcomTime\n\tcomDelayedInsert\n\tcomChangeUser\n\tcomBinlogDump\n\tcomTableDump\n\tcomConnectOut\n\tcomRegisterSlave\n\tcomStmtPrepare\n\tcomStmtExecute\n\tcomStmtSendLongData\n\tcomStmtClose\n\tcomStmtReset\n\tcomSetOption\n\tcomStmtFetch\n)\n\n// https://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnType\ntype fieldType byte\n\nconst (\n\tfieldTypeDecimal fieldType = iota\n\tfieldTypeTiny\n\tfieldTypeShort\n\tfieldTypeLong\n\tfieldTypeFloat\n\tfieldTypeDouble\n\tfieldTypeNULL\n\tfieldTypeTimestamp\n\tfieldTypeLongLong\n\tfieldTypeInt24\n\tfieldTypeDate\n\tfieldTypeTime\n\tfieldTypeDateTime\n\tfieldTypeYear\n\tfieldTypeNewDate\n\tfieldTypeVarChar\n\tfieldTypeBit\n)\nconst (\n\tfieldTypeJSON fieldType = iota + 0xf5\n\tfieldTypeNewDecimal\n\tfieldTypeEnum\n\tfieldTypeSet\n\tfieldTypeTinyBLOB\n\tfieldTypeMediumBLOB\n\tfieldTypeLongBLOB\n\tfieldTypeBLOB\n\tfieldTypeVarString\n\tfieldTypeString\n\tfieldTypeGeometry\n)\n\ntype fieldFlag uint16\n\nconst (\n\tflagNotNULL fieldFlag = 1 << iota\n\tflagPriKey\n\tflagUniqueKey\n\tflagMultipleKey\n\tflagBLOB\n\tflagUnsigned\n\tflagZeroFill\n\tflagBinary\n\tflagEnum\n\tflagAutoIncrement\n\tflagTimestamp\n\tflagSet\n\tflagUnknown1\n\tflagUnknown2\n\tflagUnknown3\n\tflagUnknown4\n)\n\n// http://dev.mysql.com/doc/internals/en/status-flags.html\ntype statusFlag uint16\n\nconst (\n\tstatusInTrans statusFlag = 1 << iota\n\tstatusInAutocommit\n\tstatusReserved // Not in documentation\n\tstatusMoreResultsExists\n\tstatusNoGoodIndexUsed\n\tstatusNoIndexUsed\n\tstatusCursorExists\n\tstatusLastRowSent\n\tstatusDbDropped\n\tstatusNoBackslashEscapes\n\tstatusMetadataChanged\n\tstatusQueryWasSlow\n\tstatusPsOutParams\n\tstatusInTransReadonly\n\tstatusSessionStateChanged\n)\n\nconst (\n\tcachingSha2PasswordRequestPublicKey          = 2\n\tcachingSha2PasswordFastAuthSuccess           = 3\n\tcachingSha2PasswordPerformFullAuthentication = 4\n)\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/driver.go",
    "content": "// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\n// Package mysql provides a MySQL driver for Go's database/sql package.\n//\n// The driver should be used via the database/sql package:\n//\n//  import \"database/sql\"\n//  import _ \"github.com/go-sql-driver/mysql\"\n//\n//  db, err := sql.Open(\"mysql\", \"user:password@/dbname\")\n//\n// See https://github.com/go-sql-driver/mysql#usage for details\npackage mysql\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"net\"\n\t\"sync\"\n)\n\n// MySQLDriver is exported to make the driver directly accessible.\n// In general the driver is used via the database/sql package.\ntype MySQLDriver struct{}\n\n// DialFunc is a function which can be used to establish the network connection.\n// Custom dial functions must be registered with RegisterDial\n//\n// Deprecated: users should register a DialContextFunc instead\ntype DialFunc func(addr string) (net.Conn, error)\n\n// DialContextFunc is a function which can be used to establish the network connection.\n// Custom dial functions must be registered with RegisterDialContext\ntype DialContextFunc func(ctx context.Context, addr string) (net.Conn, error)\n\nvar (\n\tdialsLock sync.RWMutex\n\tdials     map[string]DialContextFunc\n)\n\n// RegisterDialContext registers a custom dial function. It can then be used by the\n// network address mynet(addr), where mynet is the registered new network.\n// The current context for the connection and its address is passed to the dial function.\nfunc RegisterDialContext(net string, dial DialContextFunc) {\n\tdialsLock.Lock()\n\tdefer dialsLock.Unlock()\n\tif dials == nil {\n\t\tdials = make(map[string]DialContextFunc)\n\t}\n\tdials[net] = dial\n}\n\n// RegisterDial registers a custom dial function. It can then be used by the\n// network address mynet(addr), where mynet is the registered new network.\n// addr is passed as a parameter to the dial function.\n//\n// Deprecated: users should call RegisterDialContext instead\nfunc RegisterDial(network string, dial DialFunc) {\n\tRegisterDialContext(network, func(_ context.Context, addr string) (net.Conn, error) {\n\t\treturn dial(addr)\n\t})\n}\n\n// Open new Connection.\n// See https://github.com/go-sql-driver/mysql#dsn-data-source-name for how\n// the DSN string is formatted\nfunc (d MySQLDriver) Open(dsn string) (driver.Conn, error) {\n\tcfg, err := ParseDSN(dsn)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc := &connector{\n\t\tcfg: cfg,\n\t}\n\treturn c.Connect(context.Background())\n}\n\nfunc init() {\n\tsql.Register(\"mysql\", &MySQLDriver{})\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/driver_go110.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2018 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\n// +build go1.10\n\npackage mysql\n\nimport (\n\t\"database/sql/driver\"\n)\n\n// NewConnector returns new driver.Connector.\nfunc NewConnector(cfg *Config) (driver.Connector, error) {\n\tcfg = cfg.Clone()\n\t// normalize the contents of cfg so calls to NewConnector have the same\n\t// behavior as MySQLDriver.OpenConnector\n\tif err := cfg.normalize(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &connector{cfg: cfg}, nil\n}\n\n// OpenConnector implements driver.DriverContext.\nfunc (d MySQLDriver) OpenConnector(dsn string) (driver.Connector, error) {\n\tcfg, err := ParseDSN(dsn)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &connector{\n\t\tcfg: cfg,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/dsn.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2016 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"bytes\"\n\t\"crypto/rsa\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math/big\"\n\t\"net\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar (\n\terrInvalidDSNUnescaped       = errors.New(\"invalid DSN: did you forget to escape a param value?\")\n\terrInvalidDSNAddr            = errors.New(\"invalid DSN: network address not terminated (missing closing brace)\")\n\terrInvalidDSNNoSlash         = errors.New(\"invalid DSN: missing the slash separating the database name\")\n\terrInvalidDSNUnsafeCollation = errors.New(\"invalid DSN: interpolateParams can not be used with unsafe collations\")\n)\n\n// Config is a configuration parsed from a DSN string.\n// If a new Config is created instead of being parsed from a DSN string,\n// the NewConfig function should be used, which sets default values.\ntype Config struct {\n\tUser             string            // Username\n\tPasswd           string            // Password (requires User)\n\tNet              string            // Network type\n\tAddr             string            // Network address (requires Net)\n\tDBName           string            // Database name\n\tParams           map[string]string // Connection parameters\n\tCollation        string            // Connection collation\n\tLoc              *time.Location    // Location for time.Time values\n\tMaxAllowedPacket int               // Max packet size allowed\n\tServerPubKey     string            // Server public key name\n\tpubKey           *rsa.PublicKey    // Server public key\n\tTLSConfig        string            // TLS configuration name\n\ttls              *tls.Config       // TLS configuration\n\tTimeout          time.Duration     // Dial timeout\n\tReadTimeout      time.Duration     // I/O read timeout\n\tWriteTimeout     time.Duration     // I/O write timeout\n\n\tAllowAllFiles           bool // Allow all files to be used with LOAD DATA LOCAL INFILE\n\tAllowCleartextPasswords bool // Allows the cleartext client side plugin\n\tAllowNativePasswords    bool // Allows the native password authentication method\n\tAllowOldPasswords       bool // Allows the old insecure password method\n\tClientFoundRows         bool // Return number of matching rows instead of rows changed\n\tColumnsWithAlias        bool // Prepend table alias to column names\n\tInterpolateParams       bool // Interpolate placeholders into query string\n\tMultiStatements         bool // Allow multiple statements in one query\n\tParseTime               bool // Parse time values to time.Time\n\tRejectReadOnly          bool // Reject read-only connections\n}\n\n// NewConfig creates a new Config and sets default values.\nfunc NewConfig() *Config {\n\treturn &Config{\n\t\tCollation:            defaultCollation,\n\t\tLoc:                  time.UTC,\n\t\tMaxAllowedPacket:     defaultMaxAllowedPacket,\n\t\tAllowNativePasswords: true,\n\t}\n}\n\nfunc (cfg *Config) Clone() *Config {\n\tcp := *cfg\n\tif cp.tls != nil {\n\t\tcp.tls = cfg.tls.Clone()\n\t}\n\tif len(cp.Params) > 0 {\n\t\tcp.Params = make(map[string]string, len(cfg.Params))\n\t\tfor k, v := range cfg.Params {\n\t\t\tcp.Params[k] = v\n\t\t}\n\t}\n\tif cfg.pubKey != nil {\n\t\tcp.pubKey = &rsa.PublicKey{\n\t\t\tN: new(big.Int).Set(cfg.pubKey.N),\n\t\t\tE: cfg.pubKey.E,\n\t\t}\n\t}\n\treturn &cp\n}\n\nfunc (cfg *Config) normalize() error {\n\tif cfg.InterpolateParams && unsafeCollations[cfg.Collation] {\n\t\treturn errInvalidDSNUnsafeCollation\n\t}\n\n\t// Set default network if empty\n\tif cfg.Net == \"\" {\n\t\tcfg.Net = \"tcp\"\n\t}\n\n\t// Set default address if empty\n\tif cfg.Addr == \"\" {\n\t\tswitch cfg.Net {\n\t\tcase \"tcp\":\n\t\t\tcfg.Addr = \"127.0.0.1:3306\"\n\t\tcase \"unix\":\n\t\t\tcfg.Addr = \"/tmp/mysql.sock\"\n\t\tdefault:\n\t\t\treturn errors.New(\"default addr for network '\" + cfg.Net + \"' unknown\")\n\t\t}\n\t} else if cfg.Net == \"tcp\" {\n\t\tcfg.Addr = ensureHavePort(cfg.Addr)\n\t}\n\n\tswitch cfg.TLSConfig {\n\tcase \"false\", \"\":\n\t\t// don't set anything\n\tcase \"true\":\n\t\tcfg.tls = &tls.Config{}\n\tcase \"skip-verify\", \"preferred\":\n\t\tcfg.tls = &tls.Config{InsecureSkipVerify: true}\n\tdefault:\n\t\tcfg.tls = getTLSConfigClone(cfg.TLSConfig)\n\t\tif cfg.tls == nil {\n\t\t\treturn errors.New(\"invalid value / unknown config name: \" + cfg.TLSConfig)\n\t\t}\n\t}\n\n\tif cfg.tls != nil && cfg.tls.ServerName == \"\" && !cfg.tls.InsecureSkipVerify {\n\t\thost, _, err := net.SplitHostPort(cfg.Addr)\n\t\tif err == nil {\n\t\t\tcfg.tls.ServerName = host\n\t\t}\n\t}\n\n\tif cfg.ServerPubKey != \"\" {\n\t\tcfg.pubKey = getServerPubKey(cfg.ServerPubKey)\n\t\tif cfg.pubKey == nil {\n\t\t\treturn errors.New(\"invalid value / unknown server pub key name: \" + cfg.ServerPubKey)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// FormatDSN formats the given Config into a DSN string which can be passed to\n// the driver.\nfunc (cfg *Config) FormatDSN() string {\n\tvar buf bytes.Buffer\n\n\t// [username[:password]@]\n\tif len(cfg.User) > 0 {\n\t\tbuf.WriteString(cfg.User)\n\t\tif len(cfg.Passwd) > 0 {\n\t\t\tbuf.WriteByte(':')\n\t\t\tbuf.WriteString(cfg.Passwd)\n\t\t}\n\t\tbuf.WriteByte('@')\n\t}\n\n\t// [protocol[(address)]]\n\tif len(cfg.Net) > 0 {\n\t\tbuf.WriteString(cfg.Net)\n\t\tif len(cfg.Addr) > 0 {\n\t\t\tbuf.WriteByte('(')\n\t\t\tbuf.WriteString(cfg.Addr)\n\t\t\tbuf.WriteByte(')')\n\t\t}\n\t}\n\n\t// /dbname\n\tbuf.WriteByte('/')\n\tbuf.WriteString(cfg.DBName)\n\n\t// [?param1=value1&...&paramN=valueN]\n\thasParam := false\n\n\tif cfg.AllowAllFiles {\n\t\thasParam = true\n\t\tbuf.WriteString(\"?allowAllFiles=true\")\n\t}\n\n\tif cfg.AllowCleartextPasswords {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&allowCleartextPasswords=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?allowCleartextPasswords=true\")\n\t\t}\n\t}\n\n\tif !cfg.AllowNativePasswords {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&allowNativePasswords=false\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?allowNativePasswords=false\")\n\t\t}\n\t}\n\n\tif cfg.AllowOldPasswords {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&allowOldPasswords=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?allowOldPasswords=true\")\n\t\t}\n\t}\n\n\tif cfg.ClientFoundRows {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&clientFoundRows=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?clientFoundRows=true\")\n\t\t}\n\t}\n\n\tif col := cfg.Collation; col != defaultCollation && len(col) > 0 {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&collation=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?collation=\")\n\t\t}\n\t\tbuf.WriteString(col)\n\t}\n\n\tif cfg.ColumnsWithAlias {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&columnsWithAlias=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?columnsWithAlias=true\")\n\t\t}\n\t}\n\n\tif cfg.InterpolateParams {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&interpolateParams=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?interpolateParams=true\")\n\t\t}\n\t}\n\n\tif cfg.Loc != time.UTC && cfg.Loc != nil {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&loc=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?loc=\")\n\t\t}\n\t\tbuf.WriteString(url.QueryEscape(cfg.Loc.String()))\n\t}\n\n\tif cfg.MultiStatements {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&multiStatements=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?multiStatements=true\")\n\t\t}\n\t}\n\n\tif cfg.ParseTime {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&parseTime=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?parseTime=true\")\n\t\t}\n\t}\n\n\tif cfg.ReadTimeout > 0 {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&readTimeout=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?readTimeout=\")\n\t\t}\n\t\tbuf.WriteString(cfg.ReadTimeout.String())\n\t}\n\n\tif cfg.RejectReadOnly {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&rejectReadOnly=true\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?rejectReadOnly=true\")\n\t\t}\n\t}\n\n\tif len(cfg.ServerPubKey) > 0 {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&serverPubKey=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?serverPubKey=\")\n\t\t}\n\t\tbuf.WriteString(url.QueryEscape(cfg.ServerPubKey))\n\t}\n\n\tif cfg.Timeout > 0 {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&timeout=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?timeout=\")\n\t\t}\n\t\tbuf.WriteString(cfg.Timeout.String())\n\t}\n\n\tif len(cfg.TLSConfig) > 0 {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&tls=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?tls=\")\n\t\t}\n\t\tbuf.WriteString(url.QueryEscape(cfg.TLSConfig))\n\t}\n\n\tif cfg.WriteTimeout > 0 {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&writeTimeout=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?writeTimeout=\")\n\t\t}\n\t\tbuf.WriteString(cfg.WriteTimeout.String())\n\t}\n\n\tif cfg.MaxAllowedPacket != defaultMaxAllowedPacket {\n\t\tif hasParam {\n\t\t\tbuf.WriteString(\"&maxAllowedPacket=\")\n\t\t} else {\n\t\t\thasParam = true\n\t\t\tbuf.WriteString(\"?maxAllowedPacket=\")\n\t\t}\n\t\tbuf.WriteString(strconv.Itoa(cfg.MaxAllowedPacket))\n\n\t}\n\n\t// other params\n\tif cfg.Params != nil {\n\t\tvar params []string\n\t\tfor param := range cfg.Params {\n\t\t\tparams = append(params, param)\n\t\t}\n\t\tsort.Strings(params)\n\t\tfor _, param := range params {\n\t\t\tif hasParam {\n\t\t\t\tbuf.WriteByte('&')\n\t\t\t} else {\n\t\t\t\thasParam = true\n\t\t\t\tbuf.WriteByte('?')\n\t\t\t}\n\n\t\t\tbuf.WriteString(param)\n\t\t\tbuf.WriteByte('=')\n\t\t\tbuf.WriteString(url.QueryEscape(cfg.Params[param]))\n\t\t}\n\t}\n\n\treturn buf.String()\n}\n\n// ParseDSN parses the DSN string to a Config\nfunc ParseDSN(dsn string) (cfg *Config, err error) {\n\t// New config with some default values\n\tcfg = NewConfig()\n\n\t// [user[:password]@][net[(addr)]]/dbname[?param1=value1&paramN=valueN]\n\t// Find the last '/' (since the password or the net addr might contain a '/')\n\tfoundSlash := false\n\tfor i := len(dsn) - 1; i >= 0; i-- {\n\t\tif dsn[i] == '/' {\n\t\t\tfoundSlash = true\n\t\t\tvar j, k int\n\n\t\t\t// left part is empty if i <= 0\n\t\t\tif i > 0 {\n\t\t\t\t// [username[:password]@][protocol[(address)]]\n\t\t\t\t// Find the last '@' in dsn[:i]\n\t\t\t\tfor j = i; j >= 0; j-- {\n\t\t\t\t\tif dsn[j] == '@' {\n\t\t\t\t\t\t// username[:password]\n\t\t\t\t\t\t// Find the first ':' in dsn[:j]\n\t\t\t\t\t\tfor k = 0; k < j; k++ {\n\t\t\t\t\t\t\tif dsn[k] == ':' {\n\t\t\t\t\t\t\t\tcfg.Passwd = dsn[k+1 : j]\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcfg.User = dsn[:k]\n\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// [protocol[(address)]]\n\t\t\t\t// Find the first '(' in dsn[j+1:i]\n\t\t\t\tfor k = j + 1; k < i; k++ {\n\t\t\t\t\tif dsn[k] == '(' {\n\t\t\t\t\t\t// dsn[i-1] must be == ')' if an address is specified\n\t\t\t\t\t\tif dsn[i-1] != ')' {\n\t\t\t\t\t\t\tif strings.ContainsRune(dsn[k+1:i], ')') {\n\t\t\t\t\t\t\t\treturn nil, errInvalidDSNUnescaped\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn nil, errInvalidDSNAddr\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcfg.Addr = dsn[k+1 : i-1]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcfg.Net = dsn[j+1 : k]\n\t\t\t}\n\n\t\t\t// dbname[?param1=value1&...&paramN=valueN]\n\t\t\t// Find the first '?' in dsn[i+1:]\n\t\t\tfor j = i + 1; j < len(dsn); j++ {\n\t\t\t\tif dsn[j] == '?' {\n\t\t\t\t\tif err = parseDSNParams(cfg, dsn[j+1:]); err != nil {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tcfg.DBName = dsn[i+1 : j]\n\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !foundSlash && len(dsn) > 0 {\n\t\treturn nil, errInvalidDSNNoSlash\n\t}\n\n\tif err = cfg.normalize(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn\n}\n\n// parseDSNParams parses the DSN \"query string\"\n// Values must be url.QueryEscape'ed\nfunc parseDSNParams(cfg *Config, params string) (err error) {\n\tfor _, v := range strings.Split(params, \"&\") {\n\t\tparam := strings.SplitN(v, \"=\", 2)\n\t\tif len(param) != 2 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// cfg params\n\t\tswitch value := param[1]; param[0] {\n\t\t// Disable INFILE whitelist / enable all files\n\t\tcase \"allowAllFiles\":\n\t\t\tvar isBool bool\n\t\t\tcfg.AllowAllFiles, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Use cleartext authentication mode (MySQL 5.5.10+)\n\t\tcase \"allowCleartextPasswords\":\n\t\t\tvar isBool bool\n\t\t\tcfg.AllowCleartextPasswords, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Use native password authentication\n\t\tcase \"allowNativePasswords\":\n\t\t\tvar isBool bool\n\t\t\tcfg.AllowNativePasswords, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Use old authentication mode (pre MySQL 4.1)\n\t\tcase \"allowOldPasswords\":\n\t\t\tvar isBool bool\n\t\t\tcfg.AllowOldPasswords, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Switch \"rowsAffected\" mode\n\t\tcase \"clientFoundRows\":\n\t\t\tvar isBool bool\n\t\t\tcfg.ClientFoundRows, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Collation\n\t\tcase \"collation\":\n\t\t\tcfg.Collation = value\n\t\t\tbreak\n\n\t\tcase \"columnsWithAlias\":\n\t\t\tvar isBool bool\n\t\t\tcfg.ColumnsWithAlias, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Compression\n\t\tcase \"compress\":\n\t\t\treturn errors.New(\"compression not implemented yet\")\n\n\t\t// Enable client side placeholder substitution\n\t\tcase \"interpolateParams\":\n\t\t\tvar isBool bool\n\t\t\tcfg.InterpolateParams, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Time Location\n\t\tcase \"loc\":\n\t\t\tif value, err = url.QueryUnescape(value); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tcfg.Loc, err = time.LoadLocation(value)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t// multiple statements in one query\n\t\tcase \"multiStatements\":\n\t\t\tvar isBool bool\n\t\t\tcfg.MultiStatements, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// time.Time parsing\n\t\tcase \"parseTime\":\n\t\t\tvar isBool bool\n\t\t\tcfg.ParseTime, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// I/O read Timeout\n\t\tcase \"readTimeout\":\n\t\t\tcfg.ReadTimeout, err = time.ParseDuration(value)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t// Reject read-only connections\n\t\tcase \"rejectReadOnly\":\n\t\t\tvar isBool bool\n\t\t\tcfg.RejectReadOnly, isBool = readBool(value)\n\t\t\tif !isBool {\n\t\t\t\treturn errors.New(\"invalid bool value: \" + value)\n\t\t\t}\n\n\t\t// Server public key\n\t\tcase \"serverPubKey\":\n\t\t\tname, err := url.QueryUnescape(value)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"invalid value for server pub key name: %v\", err)\n\t\t\t}\n\t\t\tcfg.ServerPubKey = name\n\n\t\t// Strict mode\n\t\tcase \"strict\":\n\t\t\tpanic(\"strict mode has been removed. See https://github.com/go-sql-driver/mysql/wiki/strict-mode\")\n\n\t\t// Dial Timeout\n\t\tcase \"timeout\":\n\t\t\tcfg.Timeout, err = time.ParseDuration(value)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t// TLS-Encryption\n\t\tcase \"tls\":\n\t\t\tboolValue, isBool := readBool(value)\n\t\t\tif isBool {\n\t\t\t\tif boolValue {\n\t\t\t\t\tcfg.TLSConfig = \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tcfg.TLSConfig = \"false\"\n\t\t\t\t}\n\t\t\t} else if vl := strings.ToLower(value); vl == \"skip-verify\" || vl == \"preferred\" {\n\t\t\t\tcfg.TLSConfig = vl\n\t\t\t} else {\n\t\t\t\tname, err := url.QueryUnescape(value)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"invalid value for TLS config name: %v\", err)\n\t\t\t\t}\n\t\t\t\tcfg.TLSConfig = name\n\t\t\t}\n\n\t\t// I/O write Timeout\n\t\tcase \"writeTimeout\":\n\t\t\tcfg.WriteTimeout, err = time.ParseDuration(value)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\tcase \"maxAllowedPacket\":\n\t\t\tcfg.MaxAllowedPacket, err = strconv.Atoi(value)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\tdefault:\n\t\t\t// lazy init\n\t\t\tif cfg.Params == nil {\n\t\t\t\tcfg.Params = make(map[string]string)\n\t\t\t}\n\n\t\t\tif cfg.Params[param[0]], err = url.QueryUnescape(value); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc ensureHavePort(addr string) string {\n\tif _, _, err := net.SplitHostPort(addr); err != nil {\n\t\treturn net.JoinHostPort(addr, \"3306\")\n\t}\n\treturn addr\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/errors.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n)\n\n// Various errors the driver might return. Can change between driver versions.\nvar (\n\tErrInvalidConn       = errors.New(\"invalid connection\")\n\tErrMalformPkt        = errors.New(\"malformed packet\")\n\tErrNoTLS             = errors.New(\"TLS requested but server does not support TLS\")\n\tErrCleartextPassword = errors.New(\"this user requires clear text authentication. If you still want to use it, please add 'allowCleartextPasswords=1' to your DSN\")\n\tErrNativePassword    = errors.New(\"this user requires mysql native password authentication.\")\n\tErrOldPassword       = errors.New(\"this user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords\")\n\tErrUnknownPlugin     = errors.New(\"this authentication plugin is not supported\")\n\tErrOldProtocol       = errors.New(\"MySQL server does not support required protocol 41+\")\n\tErrPktSync           = errors.New(\"commands out of sync. You can't run this command now\")\n\tErrPktSyncMul        = errors.New(\"commands out of sync. Did you run multiple statements at once?\")\n\tErrPktTooLarge       = errors.New(\"packet for query is too large. Try adjusting the 'max_allowed_packet' variable on the server\")\n\tErrBusyBuffer        = errors.New(\"busy buffer\")\n\n\t// errBadConnNoWrite is used for connection errors where nothing was sent to the database yet.\n\t// If this happens first in a function starting a database interaction, it should be replaced by driver.ErrBadConn\n\t// to trigger a resend.\n\t// See https://github.com/go-sql-driver/mysql/pull/302\n\terrBadConnNoWrite = errors.New(\"bad connection\")\n)\n\nvar errLog = Logger(log.New(os.Stderr, \"[mysql] \", log.Ldate|log.Ltime|log.Lshortfile))\n\n// Logger is used to log critical error messages.\ntype Logger interface {\n\tPrint(v ...interface{})\n}\n\n// SetLogger is used to set the logger for critical errors.\n// The initial logger is os.Stderr.\nfunc SetLogger(logger Logger) error {\n\tif logger == nil {\n\t\treturn errors.New(\"logger is nil\")\n\t}\n\terrLog = logger\n\treturn nil\n}\n\n// MySQLError is an error type which represents a single MySQL error\ntype MySQLError struct {\n\tNumber  uint16\n\tMessage string\n}\n\nfunc (me *MySQLError) Error() string {\n\treturn fmt.Sprintf(\"Error %d: %s\", me.Number, me.Message)\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/fields.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2017 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"database/sql\"\n\t\"reflect\"\n)\n\nfunc (mf *mysqlField) typeDatabaseName() string {\n\tswitch mf.fieldType {\n\tcase fieldTypeBit:\n\t\treturn \"BIT\"\n\tcase fieldTypeBLOB:\n\t\tif mf.charSet != collations[binaryCollation] {\n\t\t\treturn \"TEXT\"\n\t\t}\n\t\treturn \"BLOB\"\n\tcase fieldTypeDate:\n\t\treturn \"DATE\"\n\tcase fieldTypeDateTime:\n\t\treturn \"DATETIME\"\n\tcase fieldTypeDecimal:\n\t\treturn \"DECIMAL\"\n\tcase fieldTypeDouble:\n\t\treturn \"DOUBLE\"\n\tcase fieldTypeEnum:\n\t\treturn \"ENUM\"\n\tcase fieldTypeFloat:\n\t\treturn \"FLOAT\"\n\tcase fieldTypeGeometry:\n\t\treturn \"GEOMETRY\"\n\tcase fieldTypeInt24:\n\t\treturn \"MEDIUMINT\"\n\tcase fieldTypeJSON:\n\t\treturn \"JSON\"\n\tcase fieldTypeLong:\n\t\treturn \"INT\"\n\tcase fieldTypeLongBLOB:\n\t\tif mf.charSet != collations[binaryCollation] {\n\t\t\treturn \"LONGTEXT\"\n\t\t}\n\t\treturn \"LONGBLOB\"\n\tcase fieldTypeLongLong:\n\t\treturn \"BIGINT\"\n\tcase fieldTypeMediumBLOB:\n\t\tif mf.charSet != collations[binaryCollation] {\n\t\t\treturn \"MEDIUMTEXT\"\n\t\t}\n\t\treturn \"MEDIUMBLOB\"\n\tcase fieldTypeNewDate:\n\t\treturn \"DATE\"\n\tcase fieldTypeNewDecimal:\n\t\treturn \"DECIMAL\"\n\tcase fieldTypeNULL:\n\t\treturn \"NULL\"\n\tcase fieldTypeSet:\n\t\treturn \"SET\"\n\tcase fieldTypeShort:\n\t\treturn \"SMALLINT\"\n\tcase fieldTypeString:\n\t\tif mf.charSet == collations[binaryCollation] {\n\t\t\treturn \"BINARY\"\n\t\t}\n\t\treturn \"CHAR\"\n\tcase fieldTypeTime:\n\t\treturn \"TIME\"\n\tcase fieldTypeTimestamp:\n\t\treturn \"TIMESTAMP\"\n\tcase fieldTypeTiny:\n\t\treturn \"TINYINT\"\n\tcase fieldTypeTinyBLOB:\n\t\tif mf.charSet != collations[binaryCollation] {\n\t\t\treturn \"TINYTEXT\"\n\t\t}\n\t\treturn \"TINYBLOB\"\n\tcase fieldTypeVarChar:\n\t\tif mf.charSet == collations[binaryCollation] {\n\t\t\treturn \"VARBINARY\"\n\t\t}\n\t\treturn \"VARCHAR\"\n\tcase fieldTypeVarString:\n\t\tif mf.charSet == collations[binaryCollation] {\n\t\t\treturn \"VARBINARY\"\n\t\t}\n\t\treturn \"VARCHAR\"\n\tcase fieldTypeYear:\n\t\treturn \"YEAR\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\nvar (\n\tscanTypeFloat32   = reflect.TypeOf(float32(0))\n\tscanTypeFloat64   = reflect.TypeOf(float64(0))\n\tscanTypeInt8      = reflect.TypeOf(int8(0))\n\tscanTypeInt16     = reflect.TypeOf(int16(0))\n\tscanTypeInt32     = reflect.TypeOf(int32(0))\n\tscanTypeInt64     = reflect.TypeOf(int64(0))\n\tscanTypeNullFloat = reflect.TypeOf(sql.NullFloat64{})\n\tscanTypeNullInt   = reflect.TypeOf(sql.NullInt64{})\n\tscanTypeNullTime  = reflect.TypeOf(NullTime{})\n\tscanTypeUint8     = reflect.TypeOf(uint8(0))\n\tscanTypeUint16    = reflect.TypeOf(uint16(0))\n\tscanTypeUint32    = reflect.TypeOf(uint32(0))\n\tscanTypeUint64    = reflect.TypeOf(uint64(0))\n\tscanTypeRawBytes  = reflect.TypeOf(sql.RawBytes{})\n\tscanTypeUnknown   = reflect.TypeOf(new(interface{}))\n)\n\ntype mysqlField struct {\n\ttableName string\n\tname      string\n\tlength    uint32\n\tflags     fieldFlag\n\tfieldType fieldType\n\tdecimals  byte\n\tcharSet   uint8\n}\n\nfunc (mf *mysqlField) scanType() reflect.Type {\n\tswitch mf.fieldType {\n\tcase fieldTypeTiny:\n\t\tif mf.flags&flagNotNULL != 0 {\n\t\t\tif mf.flags&flagUnsigned != 0 {\n\t\t\t\treturn scanTypeUint8\n\t\t\t}\n\t\t\treturn scanTypeInt8\n\t\t}\n\t\treturn scanTypeNullInt\n\n\tcase fieldTypeShort, fieldTypeYear:\n\t\tif mf.flags&flagNotNULL != 0 {\n\t\t\tif mf.flags&flagUnsigned != 0 {\n\t\t\t\treturn scanTypeUint16\n\t\t\t}\n\t\t\treturn scanTypeInt16\n\t\t}\n\t\treturn scanTypeNullInt\n\n\tcase fieldTypeInt24, fieldTypeLong:\n\t\tif mf.flags&flagNotNULL != 0 {\n\t\t\tif mf.flags&flagUnsigned != 0 {\n\t\t\t\treturn scanTypeUint32\n\t\t\t}\n\t\t\treturn scanTypeInt32\n\t\t}\n\t\treturn scanTypeNullInt\n\n\tcase fieldTypeLongLong:\n\t\tif mf.flags&flagNotNULL != 0 {\n\t\t\tif mf.flags&flagUnsigned != 0 {\n\t\t\t\treturn scanTypeUint64\n\t\t\t}\n\t\t\treturn scanTypeInt64\n\t\t}\n\t\treturn scanTypeNullInt\n\n\tcase fieldTypeFloat:\n\t\tif mf.flags&flagNotNULL != 0 {\n\t\t\treturn scanTypeFloat32\n\t\t}\n\t\treturn scanTypeNullFloat\n\n\tcase fieldTypeDouble:\n\t\tif mf.flags&flagNotNULL != 0 {\n\t\t\treturn scanTypeFloat64\n\t\t}\n\t\treturn scanTypeNullFloat\n\n\tcase fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar,\n\t\tfieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB,\n\t\tfieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB,\n\t\tfieldTypeVarString, fieldTypeString, fieldTypeGeometry, fieldTypeJSON,\n\t\tfieldTypeTime:\n\t\treturn scanTypeRawBytes\n\n\tcase fieldTypeDate, fieldTypeNewDate,\n\t\tfieldTypeTimestamp, fieldTypeDateTime:\n\t\t// NullTime is always returned for more consistent behavior as it can\n\t\t// handle both cases of parseTime regardless if the field is nullable.\n\t\treturn scanTypeNullTime\n\n\tdefault:\n\t\treturn scanTypeUnknown\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/infile.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n)\n\nvar (\n\tfileRegister       map[string]bool\n\tfileRegisterLock   sync.RWMutex\n\treaderRegister     map[string]func() io.Reader\n\treaderRegisterLock sync.RWMutex\n)\n\n// RegisterLocalFile adds the given file to the file whitelist,\n// so that it can be used by \"LOAD DATA LOCAL INFILE <filepath>\".\n// Alternatively you can allow the use of all local files with\n// the DSN parameter 'allowAllFiles=true'\n//\n//  filePath := \"/home/gopher/data.csv\"\n//  mysql.RegisterLocalFile(filePath)\n//  err := db.Exec(\"LOAD DATA LOCAL INFILE '\" + filePath + \"' INTO TABLE foo\")\n//  if err != nil {\n//  ...\n//\nfunc RegisterLocalFile(filePath string) {\n\tfileRegisterLock.Lock()\n\t// lazy map init\n\tif fileRegister == nil {\n\t\tfileRegister = make(map[string]bool)\n\t}\n\n\tfileRegister[strings.Trim(filePath, `\"`)] = true\n\tfileRegisterLock.Unlock()\n}\n\n// DeregisterLocalFile removes the given filepath from the whitelist.\nfunc DeregisterLocalFile(filePath string) {\n\tfileRegisterLock.Lock()\n\tdelete(fileRegister, strings.Trim(filePath, `\"`))\n\tfileRegisterLock.Unlock()\n}\n\n// RegisterReaderHandler registers a handler function which is used\n// to receive a io.Reader.\n// The Reader can be used by \"LOAD DATA LOCAL INFILE Reader::<name>\".\n// If the handler returns a io.ReadCloser Close() is called when the\n// request is finished.\n//\n//  mysql.RegisterReaderHandler(\"data\", func() io.Reader {\n//  \tvar csvReader io.Reader // Some Reader that returns CSV data\n//  \t... // Open Reader here\n//  \treturn csvReader\n//  })\n//  err := db.Exec(\"LOAD DATA LOCAL INFILE 'Reader::data' INTO TABLE foo\")\n//  if err != nil {\n//  ...\n//\nfunc RegisterReaderHandler(name string, handler func() io.Reader) {\n\treaderRegisterLock.Lock()\n\t// lazy map init\n\tif readerRegister == nil {\n\t\treaderRegister = make(map[string]func() io.Reader)\n\t}\n\n\treaderRegister[name] = handler\n\treaderRegisterLock.Unlock()\n}\n\n// DeregisterReaderHandler removes the ReaderHandler function with\n// the given name from the registry.\nfunc DeregisterReaderHandler(name string) {\n\treaderRegisterLock.Lock()\n\tdelete(readerRegister, name)\n\treaderRegisterLock.Unlock()\n}\n\nfunc deferredClose(err *error, closer io.Closer) {\n\tcloseErr := closer.Close()\n\tif *err == nil {\n\t\t*err = closeErr\n\t}\n}\n\nfunc (mc *mysqlConn) handleInFileRequest(name string) (err error) {\n\tvar rdr io.Reader\n\tvar data []byte\n\tpacketSize := 16 * 1024 // 16KB is small enough for disk readahead and large enough for TCP\n\tif mc.maxWriteSize < packetSize {\n\t\tpacketSize = mc.maxWriteSize\n\t}\n\n\tif idx := strings.Index(name, \"Reader::\"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader\n\t\t// The server might return an an absolute path. See issue #355.\n\t\tname = name[idx+8:]\n\n\t\treaderRegisterLock.RLock()\n\t\thandler, inMap := readerRegister[name]\n\t\treaderRegisterLock.RUnlock()\n\n\t\tif inMap {\n\t\t\trdr = handler()\n\t\t\tif rdr != nil {\n\t\t\t\tif cl, ok := rdr.(io.Closer); ok {\n\t\t\t\t\tdefer deferredClose(&err, cl)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr = fmt.Errorf(\"Reader '%s' is <nil>\", name)\n\t\t\t}\n\t\t} else {\n\t\t\terr = fmt.Errorf(\"Reader '%s' is not registered\", name)\n\t\t}\n\t} else { // File\n\t\tname = strings.Trim(name, `\"`)\n\t\tfileRegisterLock.RLock()\n\t\tfr := fileRegister[name]\n\t\tfileRegisterLock.RUnlock()\n\t\tif mc.cfg.AllowAllFiles || fr {\n\t\t\tvar file *os.File\n\t\t\tvar fi os.FileInfo\n\n\t\t\tif file, err = os.Open(name); err == nil {\n\t\t\t\tdefer deferredClose(&err, file)\n\n\t\t\t\t// get file size\n\t\t\t\tif fi, err = file.Stat(); err == nil {\n\t\t\t\t\trdr = file\n\t\t\t\t\tif fileSize := int(fi.Size()); fileSize < packetSize {\n\t\t\t\t\t\tpacketSize = fileSize\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\terr = fmt.Errorf(\"local file '%s' is not registered\", name)\n\t\t}\n\t}\n\n\t// send content packets\n\t// if packetSize == 0, the Reader contains no data\n\tif err == nil && packetSize > 0 {\n\t\tdata := make([]byte, 4+packetSize)\n\t\tvar n int\n\t\tfor err == nil {\n\t\t\tn, err = rdr.Read(data[4:])\n\t\t\tif n > 0 {\n\t\t\t\tif ioErr := mc.writePacket(data[:4+n]); ioErr != nil {\n\t\t\t\t\treturn ioErr\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif err == io.EOF {\n\t\t\terr = nil\n\t\t}\n\t}\n\n\t// send empty packet (termination)\n\tif data == nil {\n\t\tdata = make([]byte, 4)\n\t}\n\tif ioErr := mc.writePacket(data[:4]); ioErr != nil {\n\t\treturn ioErr\n\t}\n\n\t// read OK packet\n\tif err == nil {\n\t\treturn mc.readResultOK()\n\t}\n\n\tmc.readPacket()\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/packets.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"database/sql/driver\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"time\"\n)\n\n// Packets documentation:\n// http://dev.mysql.com/doc/internals/en/client-server-protocol.html\n\n// Read packet to buffer 'data'\nfunc (mc *mysqlConn) readPacket() ([]byte, error) {\n\tvar prevData []byte\n\tfor {\n\t\t// read packet header\n\t\tdata, err := mc.buf.readNext(4)\n\t\tif err != nil {\n\t\t\tif cerr := mc.canceled.Value(); cerr != nil {\n\t\t\t\treturn nil, cerr\n\t\t\t}\n\t\t\terrLog.Print(err)\n\t\t\tmc.Close()\n\t\t\treturn nil, ErrInvalidConn\n\t\t}\n\n\t\t// packet length [24 bit]\n\t\tpktLen := int(uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16)\n\n\t\t// check packet sync [8 bit]\n\t\tif data[3] != mc.sequence {\n\t\t\tif data[3] > mc.sequence {\n\t\t\t\treturn nil, ErrPktSyncMul\n\t\t\t}\n\t\t\treturn nil, ErrPktSync\n\t\t}\n\t\tmc.sequence++\n\n\t\t// packets with length 0 terminate a previous packet which is a\n\t\t// multiple of (2^24)-1 bytes long\n\t\tif pktLen == 0 {\n\t\t\t// there was no previous packet\n\t\t\tif prevData == nil {\n\t\t\t\terrLog.Print(ErrMalformPkt)\n\t\t\t\tmc.Close()\n\t\t\t\treturn nil, ErrInvalidConn\n\t\t\t}\n\n\t\t\treturn prevData, nil\n\t\t}\n\n\t\t// read packet body [pktLen bytes]\n\t\tdata, err = mc.buf.readNext(pktLen)\n\t\tif err != nil {\n\t\t\tif cerr := mc.canceled.Value(); cerr != nil {\n\t\t\t\treturn nil, cerr\n\t\t\t}\n\t\t\terrLog.Print(err)\n\t\t\tmc.Close()\n\t\t\treturn nil, ErrInvalidConn\n\t\t}\n\n\t\t// return data if this was the last packet\n\t\tif pktLen < maxPacketSize {\n\t\t\t// zero allocations for non-split packets\n\t\t\tif prevData == nil {\n\t\t\t\treturn data, nil\n\t\t\t}\n\n\t\t\treturn append(prevData, data...), nil\n\t\t}\n\n\t\tprevData = append(prevData, data...)\n\t}\n}\n\n// Write packet buffer 'data'\nfunc (mc *mysqlConn) writePacket(data []byte) error {\n\tpktLen := len(data) - 4\n\n\tif pktLen > mc.maxAllowedPacket {\n\t\treturn ErrPktTooLarge\n\t}\n\n\t// Perform a stale connection check. We only perform this check for\n\t// the first query on a connection that has been checked out of the\n\t// connection pool: a fresh connection from the pool is more likely\n\t// to be stale, and it has not performed any previous writes that\n\t// could cause data corruption, so it's safe to return ErrBadConn\n\t// if the check fails.\n\tif mc.reset {\n\t\tmc.reset = false\n\t\tconn := mc.netConn\n\t\tif mc.rawConn != nil {\n\t\t\tconn = mc.rawConn\n\t\t}\n\t\tvar err error\n\t\t// If this connection has a ReadTimeout which we've been setting on\n\t\t// reads, reset it to its default value before we attempt a non-blocking\n\t\t// read, otherwise the scheduler will just time us out before we can read\n\t\tif mc.cfg.ReadTimeout != 0 {\n\t\t\terr = conn.SetReadDeadline(time.Time{})\n\t\t}\n\t\tif err == nil {\n\t\t\terr = connCheck(conn)\n\t\t}\n\t\tif err != nil {\n\t\t\terrLog.Print(\"closing bad idle connection: \", err)\n\t\t\tmc.Close()\n\t\t\treturn driver.ErrBadConn\n\t\t}\n\t}\n\n\tfor {\n\t\tvar size int\n\t\tif pktLen >= maxPacketSize {\n\t\t\tdata[0] = 0xff\n\t\t\tdata[1] = 0xff\n\t\t\tdata[2] = 0xff\n\t\t\tsize = maxPacketSize\n\t\t} else {\n\t\t\tdata[0] = byte(pktLen)\n\t\t\tdata[1] = byte(pktLen >> 8)\n\t\t\tdata[2] = byte(pktLen >> 16)\n\t\t\tsize = pktLen\n\t\t}\n\t\tdata[3] = mc.sequence\n\n\t\t// Write packet\n\t\tif mc.writeTimeout > 0 {\n\t\t\tif err := mc.netConn.SetWriteDeadline(time.Now().Add(mc.writeTimeout)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tn, err := mc.netConn.Write(data[:4+size])\n\t\tif err == nil && n == 4+size {\n\t\t\tmc.sequence++\n\t\t\tif size != maxPacketSize {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tpktLen -= size\n\t\t\tdata = data[size:]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle error\n\t\tif err == nil { // n != len(data)\n\t\t\tmc.cleanup()\n\t\t\terrLog.Print(ErrMalformPkt)\n\t\t} else {\n\t\t\tif cerr := mc.canceled.Value(); cerr != nil {\n\t\t\t\treturn cerr\n\t\t\t}\n\t\t\tif n == 0 && pktLen == len(data)-4 {\n\t\t\t\t// only for the first loop iteration when nothing was written yet\n\t\t\t\treturn errBadConnNoWrite\n\t\t\t}\n\t\t\tmc.cleanup()\n\t\t\terrLog.Print(err)\n\t\t}\n\t\treturn ErrInvalidConn\n\t}\n}\n\n/******************************************************************************\n*                           Initialization Process                            *\n******************************************************************************/\n\n// Handshake Initialization Packet\n// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::Handshake\nfunc (mc *mysqlConn) readHandshakePacket() (data []byte, plugin string, err error) {\n\tdata, err = mc.readPacket()\n\tif err != nil {\n\t\t// for init we can rewrite this to ErrBadConn for sql.Driver to retry, since\n\t\t// in connection initialization we don't risk retrying non-idempotent actions.\n\t\tif err == ErrInvalidConn {\n\t\t\treturn nil, \"\", driver.ErrBadConn\n\t\t}\n\t\treturn\n\t}\n\n\tif data[0] == iERR {\n\t\treturn nil, \"\", mc.handleErrorPacket(data)\n\t}\n\n\t// protocol version [1 byte]\n\tif data[0] < minProtocolVersion {\n\t\treturn nil, \"\", fmt.Errorf(\n\t\t\t\"unsupported protocol version %d. Version %d or higher is required\",\n\t\t\tdata[0],\n\t\t\tminProtocolVersion,\n\t\t)\n\t}\n\n\t// server version [null terminated string]\n\t// connection id [4 bytes]\n\tpos := 1 + bytes.IndexByte(data[1:], 0x00) + 1 + 4\n\n\t// first part of the password cipher [8 bytes]\n\tauthData := data[pos : pos+8]\n\n\t// (filler) always 0x00 [1 byte]\n\tpos += 8 + 1\n\n\t// capability flags (lower 2 bytes) [2 bytes]\n\tmc.flags = clientFlag(binary.LittleEndian.Uint16(data[pos : pos+2]))\n\tif mc.flags&clientProtocol41 == 0 {\n\t\treturn nil, \"\", ErrOldProtocol\n\t}\n\tif mc.flags&clientSSL == 0 && mc.cfg.tls != nil {\n\t\tif mc.cfg.TLSConfig == \"preferred\" {\n\t\t\tmc.cfg.tls = nil\n\t\t} else {\n\t\t\treturn nil, \"\", ErrNoTLS\n\t\t}\n\t}\n\tpos += 2\n\n\tif len(data) > pos {\n\t\t// character set [1 byte]\n\t\t// status flags [2 bytes]\n\t\t// capability flags (upper 2 bytes) [2 bytes]\n\t\t// length of auth-plugin-data [1 byte]\n\t\t// reserved (all [00]) [10 bytes]\n\t\tpos += 1 + 2 + 2 + 1 + 10\n\n\t\t// second part of the password cipher [mininum 13 bytes],\n\t\t// where len=MAX(13, length of auth-plugin-data - 8)\n\t\t//\n\t\t// The web documentation is ambiguous about the length. However,\n\t\t// according to mysql-5.7/sql/auth/sql_authentication.cc line 538,\n\t\t// the 13th byte is \"\\0 byte, terminating the second part of\n\t\t// a scramble\". So the second part of the password cipher is\n\t\t// a NULL terminated string that's at least 13 bytes with the\n\t\t// last byte being NULL.\n\t\t//\n\t\t// The official Python library uses the fixed length 12\n\t\t// which seems to work but technically could have a hidden bug.\n\t\tauthData = append(authData, data[pos:pos+12]...)\n\t\tpos += 13\n\n\t\t// EOF if version (>= 5.5.7 and < 5.5.10) or (>= 5.6.0 and < 5.6.2)\n\t\t// \\NUL otherwise\n\t\tif end := bytes.IndexByte(data[pos:], 0x00); end != -1 {\n\t\t\tplugin = string(data[pos : pos+end])\n\t\t} else {\n\t\t\tplugin = string(data[pos:])\n\t\t}\n\n\t\t// make a memory safe copy of the cipher slice\n\t\tvar b [20]byte\n\t\tcopy(b[:], authData)\n\t\treturn b[:], plugin, nil\n\t}\n\n\t// make a memory safe copy of the cipher slice\n\tvar b [8]byte\n\tcopy(b[:], authData)\n\treturn b[:], plugin, nil\n}\n\n// Client Authentication Packet\n// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse\nfunc (mc *mysqlConn) writeHandshakeResponsePacket(authResp []byte, plugin string) error {\n\t// Adjust client flags based on server support\n\tclientFlags := clientProtocol41 |\n\t\tclientSecureConn |\n\t\tclientLongPassword |\n\t\tclientTransactions |\n\t\tclientLocalFiles |\n\t\tclientPluginAuth |\n\t\tclientMultiResults |\n\t\tmc.flags&clientLongFlag\n\n\tif mc.cfg.ClientFoundRows {\n\t\tclientFlags |= clientFoundRows\n\t}\n\n\t// To enable TLS / SSL\n\tif mc.cfg.tls != nil {\n\t\tclientFlags |= clientSSL\n\t}\n\n\tif mc.cfg.MultiStatements {\n\t\tclientFlags |= clientMultiStatements\n\t}\n\n\t// encode length of the auth plugin data\n\tvar authRespLEIBuf [9]byte\n\tauthRespLen := len(authResp)\n\tauthRespLEI := appendLengthEncodedInteger(authRespLEIBuf[:0], uint64(authRespLen))\n\tif len(authRespLEI) > 1 {\n\t\t// if the length can not be written in 1 byte, it must be written as a\n\t\t// length encoded integer\n\t\tclientFlags |= clientPluginAuthLenEncClientData\n\t}\n\n\tpktLen := 4 + 4 + 1 + 23 + len(mc.cfg.User) + 1 + len(authRespLEI) + len(authResp) + 21 + 1\n\n\t// To specify a db name\n\tif n := len(mc.cfg.DBName); n > 0 {\n\t\tclientFlags |= clientConnectWithDB\n\t\tpktLen += n + 1\n\t}\n\n\t// Calculate packet length and get buffer with that size\n\tdata, err := mc.buf.takeSmallBuffer(pktLen + 4)\n\tif err != nil {\n\t\t// cannot take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn errBadConnNoWrite\n\t}\n\n\t// ClientFlags [32 bit]\n\tdata[4] = byte(clientFlags)\n\tdata[5] = byte(clientFlags >> 8)\n\tdata[6] = byte(clientFlags >> 16)\n\tdata[7] = byte(clientFlags >> 24)\n\n\t// MaxPacketSize [32 bit] (none)\n\tdata[8] = 0x00\n\tdata[9] = 0x00\n\tdata[10] = 0x00\n\tdata[11] = 0x00\n\n\t// Charset [1 byte]\n\tvar found bool\n\tdata[12], found = collations[mc.cfg.Collation]\n\tif !found {\n\t\t// Note possibility for false negatives:\n\t\t// could be triggered  although the collation is valid if the\n\t\t// collations map does not contain entries the server supports.\n\t\treturn errors.New(\"unknown collation\")\n\t}\n\n\t// SSL Connection Request Packet\n\t// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::SSLRequest\n\tif mc.cfg.tls != nil {\n\t\t// Send TLS / SSL request packet\n\t\tif err := mc.writePacket(data[:(4+4+1+23)+4]); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Switch to TLS\n\t\ttlsConn := tls.Client(mc.netConn, mc.cfg.tls)\n\t\tif err := tlsConn.Handshake(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmc.rawConn = mc.netConn\n\t\tmc.netConn = tlsConn\n\t\tmc.buf.nc = tlsConn\n\t}\n\n\t// Filler [23 bytes] (all 0x00)\n\tpos := 13\n\tfor ; pos < 13+23; pos++ {\n\t\tdata[pos] = 0\n\t}\n\n\t// User [null terminated string]\n\tif len(mc.cfg.User) > 0 {\n\t\tpos += copy(data[pos:], mc.cfg.User)\n\t}\n\tdata[pos] = 0x00\n\tpos++\n\n\t// Auth Data [length encoded integer]\n\tpos += copy(data[pos:], authRespLEI)\n\tpos += copy(data[pos:], authResp)\n\n\t// Databasename [null terminated string]\n\tif len(mc.cfg.DBName) > 0 {\n\t\tpos += copy(data[pos:], mc.cfg.DBName)\n\t\tdata[pos] = 0x00\n\t\tpos++\n\t}\n\n\tpos += copy(data[pos:], plugin)\n\tdata[pos] = 0x00\n\tpos++\n\n\t// Send Auth packet\n\treturn mc.writePacket(data[:pos])\n}\n\n// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse\nfunc (mc *mysqlConn) writeAuthSwitchPacket(authData []byte) error {\n\tpktLen := 4 + len(authData)\n\tdata, err := mc.buf.takeSmallBuffer(pktLen)\n\tif err != nil {\n\t\t// cannot take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn errBadConnNoWrite\n\t}\n\n\t// Add the auth data [EOF]\n\tcopy(data[4:], authData)\n\treturn mc.writePacket(data)\n}\n\n/******************************************************************************\n*                             Command Packets                                 *\n******************************************************************************/\n\nfunc (mc *mysqlConn) writeCommandPacket(command byte) error {\n\t// Reset Packet Sequence\n\tmc.sequence = 0\n\n\tdata, err := mc.buf.takeSmallBuffer(4 + 1)\n\tif err != nil {\n\t\t// cannot take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn errBadConnNoWrite\n\t}\n\n\t// Add command byte\n\tdata[4] = command\n\n\t// Send CMD packet\n\treturn mc.writePacket(data)\n}\n\nfunc (mc *mysqlConn) writeCommandPacketStr(command byte, arg string) error {\n\t// Reset Packet Sequence\n\tmc.sequence = 0\n\n\tpktLen := 1 + len(arg)\n\tdata, err := mc.buf.takeBuffer(pktLen + 4)\n\tif err != nil {\n\t\t// cannot take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn errBadConnNoWrite\n\t}\n\n\t// Add command byte\n\tdata[4] = command\n\n\t// Add arg\n\tcopy(data[5:], arg)\n\n\t// Send CMD packet\n\treturn mc.writePacket(data)\n}\n\nfunc (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error {\n\t// Reset Packet Sequence\n\tmc.sequence = 0\n\n\tdata, err := mc.buf.takeSmallBuffer(4 + 1 + 4)\n\tif err != nil {\n\t\t// cannot take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn errBadConnNoWrite\n\t}\n\n\t// Add command byte\n\tdata[4] = command\n\n\t// Add arg [32 bit]\n\tdata[5] = byte(arg)\n\tdata[6] = byte(arg >> 8)\n\tdata[7] = byte(arg >> 16)\n\tdata[8] = byte(arg >> 24)\n\n\t// Send CMD packet\n\treturn mc.writePacket(data)\n}\n\n/******************************************************************************\n*                              Result Packets                                 *\n******************************************************************************/\n\nfunc (mc *mysqlConn) readAuthResult() ([]byte, string, error) {\n\tdata, err := mc.readPacket()\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\t// packet indicator\n\tswitch data[0] {\n\n\tcase iOK:\n\t\treturn nil, \"\", mc.handleOkPacket(data)\n\n\tcase iAuthMoreData:\n\t\treturn data[1:], \"\", err\n\n\tcase iEOF:\n\t\tif len(data) == 1 {\n\t\t\t// https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::OldAuthSwitchRequest\n\t\t\treturn nil, \"mysql_old_password\", nil\n\t\t}\n\t\tpluginEndIndex := bytes.IndexByte(data, 0x00)\n\t\tif pluginEndIndex < 0 {\n\t\t\treturn nil, \"\", ErrMalformPkt\n\t\t}\n\t\tplugin := string(data[1:pluginEndIndex])\n\t\tauthData := data[pluginEndIndex+1:]\n\t\treturn authData, plugin, nil\n\n\tdefault: // Error otherwise\n\t\treturn nil, \"\", mc.handleErrorPacket(data)\n\t}\n}\n\n// Returns error if Packet is not an 'Result OK'-Packet\nfunc (mc *mysqlConn) readResultOK() error {\n\tdata, err := mc.readPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif data[0] == iOK {\n\t\treturn mc.handleOkPacket(data)\n\t}\n\treturn mc.handleErrorPacket(data)\n}\n\n// Result Set Header Packet\n// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::Resultset\nfunc (mc *mysqlConn) readResultSetHeaderPacket() (int, error) {\n\tdata, err := mc.readPacket()\n\tif err == nil {\n\t\tswitch data[0] {\n\n\t\tcase iOK:\n\t\t\treturn 0, mc.handleOkPacket(data)\n\n\t\tcase iERR:\n\t\t\treturn 0, mc.handleErrorPacket(data)\n\n\t\tcase iLocalInFile:\n\t\t\treturn 0, mc.handleInFileRequest(string(data[1:]))\n\t\t}\n\n\t\t// column count\n\t\tnum, _, n := readLengthEncodedInteger(data)\n\t\tif n-len(data) == 0 {\n\t\t\treturn int(num), nil\n\t\t}\n\n\t\treturn 0, ErrMalformPkt\n\t}\n\treturn 0, err\n}\n\n// Error Packet\n// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-ERR_Packet\nfunc (mc *mysqlConn) handleErrorPacket(data []byte) error {\n\tif data[0] != iERR {\n\t\treturn ErrMalformPkt\n\t}\n\n\t// 0xff [1 byte]\n\n\t// Error Number [16 bit uint]\n\terrno := binary.LittleEndian.Uint16(data[1:3])\n\n\t// 1792: ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION\n\t// 1290: ER_OPTION_PREVENTS_STATEMENT (returned by Aurora during failover)\n\tif (errno == 1792 || errno == 1290) && mc.cfg.RejectReadOnly {\n\t\t// Oops; we are connected to a read-only connection, and won't be able\n\t\t// to issue any write statements. Since RejectReadOnly is configured,\n\t\t// we throw away this connection hoping this one would have write\n\t\t// permission. This is specifically for a possible race condition\n\t\t// during failover (e.g. on AWS Aurora). See README.md for more.\n\t\t//\n\t\t// We explicitly close the connection before returning\n\t\t// driver.ErrBadConn to ensure that `database/sql` purges this\n\t\t// connection and initiates a new one for next statement next time.\n\t\tmc.Close()\n\t\treturn driver.ErrBadConn\n\t}\n\n\tpos := 3\n\n\t// SQL State [optional: # + 5bytes string]\n\tif data[3] == 0x23 {\n\t\t//sqlstate := string(data[4 : 4+5])\n\t\tpos = 9\n\t}\n\n\t// Error Message [string]\n\treturn &MySQLError{\n\t\tNumber:  errno,\n\t\tMessage: string(data[pos:]),\n\t}\n}\n\nfunc readStatus(b []byte) statusFlag {\n\treturn statusFlag(b[0]) | statusFlag(b[1])<<8\n}\n\n// Ok Packet\n// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-OK_Packet\nfunc (mc *mysqlConn) handleOkPacket(data []byte) error {\n\tvar n, m int\n\n\t// 0x00 [1 byte]\n\n\t// Affected rows [Length Coded Binary]\n\tmc.affectedRows, _, n = readLengthEncodedInteger(data[1:])\n\n\t// Insert id [Length Coded Binary]\n\tmc.insertId, _, m = readLengthEncodedInteger(data[1+n:])\n\n\t// server_status [2 bytes]\n\tmc.status = readStatus(data[1+n+m : 1+n+m+2])\n\tif mc.status&statusMoreResultsExists != 0 {\n\t\treturn nil\n\t}\n\n\t// warning count [2 bytes]\n\n\treturn nil\n}\n\n// Read Packets as Field Packets until EOF-Packet or an Error appears\n// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnDefinition41\nfunc (mc *mysqlConn) readColumns(count int) ([]mysqlField, error) {\n\tcolumns := make([]mysqlField, count)\n\n\tfor i := 0; ; i++ {\n\t\tdata, err := mc.readPacket()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// EOF Packet\n\t\tif data[0] == iEOF && (len(data) == 5 || len(data) == 1) {\n\t\t\tif i == count {\n\t\t\t\treturn columns, nil\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"column count mismatch n:%d len:%d\", count, len(columns))\n\t\t}\n\n\t\t// Catalog\n\t\tpos, err := skipLengthEncodedString(data)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Database [len coded string]\n\t\tn, err := skipLengthEncodedString(data[pos:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tpos += n\n\n\t\t// Table [len coded string]\n\t\tif mc.cfg.ColumnsWithAlias {\n\t\t\ttableName, _, n, err := readLengthEncodedString(data[pos:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tpos += n\n\t\t\tcolumns[i].tableName = string(tableName)\n\t\t} else {\n\t\t\tn, err = skipLengthEncodedString(data[pos:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tpos += n\n\t\t}\n\n\t\t// Original table [len coded string]\n\t\tn, err = skipLengthEncodedString(data[pos:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tpos += n\n\n\t\t// Name [len coded string]\n\t\tname, _, n, err := readLengthEncodedString(data[pos:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tcolumns[i].name = string(name)\n\t\tpos += n\n\n\t\t// Original name [len coded string]\n\t\tn, err = skipLengthEncodedString(data[pos:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tpos += n\n\n\t\t// Filler [uint8]\n\t\tpos++\n\n\t\t// Charset [charset, collation uint8]\n\t\tcolumns[i].charSet = data[pos]\n\t\tpos += 2\n\n\t\t// Length [uint32]\n\t\tcolumns[i].length = binary.LittleEndian.Uint32(data[pos : pos+4])\n\t\tpos += 4\n\n\t\t// Field type [uint8]\n\t\tcolumns[i].fieldType = fieldType(data[pos])\n\t\tpos++\n\n\t\t// Flags [uint16]\n\t\tcolumns[i].flags = fieldFlag(binary.LittleEndian.Uint16(data[pos : pos+2]))\n\t\tpos += 2\n\n\t\t// Decimals [uint8]\n\t\tcolumns[i].decimals = data[pos]\n\t\t//pos++\n\n\t\t// Default value [len coded binary]\n\t\t//if pos < len(data) {\n\t\t//\tdefaultVal, _, err = bytesToLengthCodedBinary(data[pos:])\n\t\t//}\n\t}\n}\n\n// Read Packets as Field Packets until EOF-Packet or an Error appears\n// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::ResultsetRow\nfunc (rows *textRows) readRow(dest []driver.Value) error {\n\tmc := rows.mc\n\n\tif rows.rs.done {\n\t\treturn io.EOF\n\t}\n\n\tdata, err := mc.readPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// EOF Packet\n\tif data[0] == iEOF && len(data) == 5 {\n\t\t// server_status [2 bytes]\n\t\trows.mc.status = readStatus(data[3:])\n\t\trows.rs.done = true\n\t\tif !rows.HasNextResultSet() {\n\t\t\trows.mc = nil\n\t\t}\n\t\treturn io.EOF\n\t}\n\tif data[0] == iERR {\n\t\trows.mc = nil\n\t\treturn mc.handleErrorPacket(data)\n\t}\n\n\t// RowSet Packet\n\tvar n int\n\tvar isNull bool\n\tpos := 0\n\n\tfor i := range dest {\n\t\t// Read bytes and convert to string\n\t\tdest[i], isNull, n, err = readLengthEncodedString(data[pos:])\n\t\tpos += n\n\t\tif err == nil {\n\t\t\tif !isNull {\n\t\t\t\tif !mc.parseTime {\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\tswitch rows.rs.columns[i].fieldType {\n\t\t\t\t\tcase fieldTypeTimestamp, fieldTypeDateTime,\n\t\t\t\t\t\tfieldTypeDate, fieldTypeNewDate:\n\t\t\t\t\t\tdest[i], err = parseDateTime(\n\t\t\t\t\t\t\tstring(dest[i].([]byte)),\n\t\t\t\t\t\t\tmc.cfg.Loc,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif err == nil {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tdest[i] = nil\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\treturn err // err != nil\n\t}\n\n\treturn nil\n}\n\n// Reads Packets until EOF-Packet or an Error appears. Returns count of Packets read\nfunc (mc *mysqlConn) readUntilEOF() error {\n\tfor {\n\t\tdata, err := mc.readPacket()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tswitch data[0] {\n\t\tcase iERR:\n\t\t\treturn mc.handleErrorPacket(data)\n\t\tcase iEOF:\n\t\t\tif len(data) == 5 {\n\t\t\t\tmc.status = readStatus(data[3:])\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\n/******************************************************************************\n*                           Prepared Statements                               *\n******************************************************************************/\n\n// Prepare Result Packets\n// http://dev.mysql.com/doc/internals/en/com-stmt-prepare-response.html\nfunc (stmt *mysqlStmt) readPrepareResultPacket() (uint16, error) {\n\tdata, err := stmt.mc.readPacket()\n\tif err == nil {\n\t\t// packet indicator [1 byte]\n\t\tif data[0] != iOK {\n\t\t\treturn 0, stmt.mc.handleErrorPacket(data)\n\t\t}\n\n\t\t// statement id [4 bytes]\n\t\tstmt.id = binary.LittleEndian.Uint32(data[1:5])\n\n\t\t// Column count [16 bit uint]\n\t\tcolumnCount := binary.LittleEndian.Uint16(data[5:7])\n\n\t\t// Param count [16 bit uint]\n\t\tstmt.paramCount = int(binary.LittleEndian.Uint16(data[7:9]))\n\n\t\t// Reserved [8 bit]\n\n\t\t// Warning count [16 bit uint]\n\n\t\treturn columnCount, nil\n\t}\n\treturn 0, err\n}\n\n// http://dev.mysql.com/doc/internals/en/com-stmt-send-long-data.html\nfunc (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error {\n\tmaxLen := stmt.mc.maxAllowedPacket - 1\n\tpktLen := maxLen\n\n\t// After the header (bytes 0-3) follows before the data:\n\t// 1 byte command\n\t// 4 bytes stmtID\n\t// 2 bytes paramID\n\tconst dataOffset = 1 + 4 + 2\n\n\t// Cannot use the write buffer since\n\t// a) the buffer is too small\n\t// b) it is in use\n\tdata := make([]byte, 4+1+4+2+len(arg))\n\n\tcopy(data[4+dataOffset:], arg)\n\n\tfor argLen := len(arg); argLen > 0; argLen -= pktLen - dataOffset {\n\t\tif dataOffset+argLen < maxLen {\n\t\t\tpktLen = dataOffset + argLen\n\t\t}\n\n\t\tstmt.mc.sequence = 0\n\t\t// Add command byte [1 byte]\n\t\tdata[4] = comStmtSendLongData\n\n\t\t// Add stmtID [32 bit]\n\t\tdata[5] = byte(stmt.id)\n\t\tdata[6] = byte(stmt.id >> 8)\n\t\tdata[7] = byte(stmt.id >> 16)\n\t\tdata[8] = byte(stmt.id >> 24)\n\n\t\t// Add paramID [16 bit]\n\t\tdata[9] = byte(paramID)\n\t\tdata[10] = byte(paramID >> 8)\n\n\t\t// Send CMD packet\n\t\terr := stmt.mc.writePacket(data[:4+pktLen])\n\t\tif err == nil {\n\t\t\tdata = data[pktLen-dataOffset:]\n\t\t\tcontinue\n\t\t}\n\t\treturn err\n\n\t}\n\n\t// Reset Packet Sequence\n\tstmt.mc.sequence = 0\n\treturn nil\n}\n\n// Execute Prepared Statement\n// http://dev.mysql.com/doc/internals/en/com-stmt-execute.html\nfunc (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {\n\tif len(args) != stmt.paramCount {\n\t\treturn fmt.Errorf(\n\t\t\t\"argument count mismatch (got: %d; has: %d)\",\n\t\t\tlen(args),\n\t\t\tstmt.paramCount,\n\t\t)\n\t}\n\n\tconst minPktLen = 4 + 1 + 4 + 1 + 4\n\tmc := stmt.mc\n\n\t// Determine threshold dynamically to avoid packet size shortage.\n\tlongDataSize := mc.maxAllowedPacket / (stmt.paramCount + 1)\n\tif longDataSize < 64 {\n\t\tlongDataSize = 64\n\t}\n\n\t// Reset packet-sequence\n\tmc.sequence = 0\n\n\tvar data []byte\n\tvar err error\n\n\tif len(args) == 0 {\n\t\tdata, err = mc.buf.takeBuffer(minPktLen)\n\t} else {\n\t\tdata, err = mc.buf.takeCompleteBuffer()\n\t\t// In this case the len(data) == cap(data) which is used to optimise the flow below.\n\t}\n\tif err != nil {\n\t\t// cannot take the buffer. Something must be wrong with the connection\n\t\terrLog.Print(err)\n\t\treturn errBadConnNoWrite\n\t}\n\n\t// command [1 byte]\n\tdata[4] = comStmtExecute\n\n\t// statement_id [4 bytes]\n\tdata[5] = byte(stmt.id)\n\tdata[6] = byte(stmt.id >> 8)\n\tdata[7] = byte(stmt.id >> 16)\n\tdata[8] = byte(stmt.id >> 24)\n\n\t// flags (0: CURSOR_TYPE_NO_CURSOR) [1 byte]\n\tdata[9] = 0x00\n\n\t// iteration_count (uint32(1)) [4 bytes]\n\tdata[10] = 0x01\n\tdata[11] = 0x00\n\tdata[12] = 0x00\n\tdata[13] = 0x00\n\n\tif len(args) > 0 {\n\t\tpos := minPktLen\n\n\t\tvar nullMask []byte\n\t\tif maskLen, typesLen := (len(args)+7)/8, 1+2*len(args); pos+maskLen+typesLen >= cap(data) {\n\t\t\t// buffer has to be extended but we don't know by how much so\n\t\t\t// we depend on append after all data with known sizes fit.\n\t\t\t// We stop at that because we deal with a lot of columns here\n\t\t\t// which makes the required allocation size hard to guess.\n\t\t\ttmp := make([]byte, pos+maskLen+typesLen)\n\t\t\tcopy(tmp[:pos], data[:pos])\n\t\t\tdata = tmp\n\t\t\tnullMask = data[pos : pos+maskLen]\n\t\t\t// No need to clean nullMask as make ensures that.\n\t\t\tpos += maskLen\n\t\t} else {\n\t\t\tnullMask = data[pos : pos+maskLen]\n\t\t\tfor i := range nullMask {\n\t\t\t\tnullMask[i] = 0\n\t\t\t}\n\t\t\tpos += maskLen\n\t\t}\n\n\t\t// newParameterBoundFlag 1 [1 byte]\n\t\tdata[pos] = 0x01\n\t\tpos++\n\n\t\t// type of each parameter [len(args)*2 bytes]\n\t\tparamTypes := data[pos:]\n\t\tpos += len(args) * 2\n\n\t\t// value of each parameter [n bytes]\n\t\tparamValues := data[pos:pos]\n\t\tvaluesCap := cap(paramValues)\n\n\t\tfor i, arg := range args {\n\t\t\t// build NULL-bitmap\n\t\t\tif arg == nil {\n\t\t\t\tnullMask[i/8] |= 1 << (uint(i) & 7)\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeNULL)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// cache types and values\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int64:\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeLongLong)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\t\tif cap(paramValues)-len(paramValues)-8 >= 0 {\n\t\t\t\t\tparamValues = paramValues[:len(paramValues)+8]\n\t\t\t\t\tbinary.LittleEndian.PutUint64(\n\t\t\t\t\t\tparamValues[len(paramValues)-8:],\n\t\t\t\t\t\tuint64(v),\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tparamValues = append(paramValues,\n\t\t\t\t\t\tuint64ToBytes(uint64(v))...,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\tcase uint64:\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeLongLong)\n\t\t\t\tparamTypes[i+i+1] = 0x80 // type is unsigned\n\n\t\t\t\tif cap(paramValues)-len(paramValues)-8 >= 0 {\n\t\t\t\t\tparamValues = paramValues[:len(paramValues)+8]\n\t\t\t\t\tbinary.LittleEndian.PutUint64(\n\t\t\t\t\t\tparamValues[len(paramValues)-8:],\n\t\t\t\t\t\tuint64(v),\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tparamValues = append(paramValues,\n\t\t\t\t\t\tuint64ToBytes(uint64(v))...,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\tcase float64:\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeDouble)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\t\tif cap(paramValues)-len(paramValues)-8 >= 0 {\n\t\t\t\t\tparamValues = paramValues[:len(paramValues)+8]\n\t\t\t\t\tbinary.LittleEndian.PutUint64(\n\t\t\t\t\t\tparamValues[len(paramValues)-8:],\n\t\t\t\t\t\tmath.Float64bits(v),\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tparamValues = append(paramValues,\n\t\t\t\t\t\tuint64ToBytes(math.Float64bits(v))...,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\tcase bool:\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeTiny)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\t\tif v {\n\t\t\t\t\tparamValues = append(paramValues, 0x01)\n\t\t\t\t} else {\n\t\t\t\t\tparamValues = append(paramValues, 0x00)\n\t\t\t\t}\n\n\t\t\tcase []byte:\n\t\t\t\t// Common case (non-nil value) first\n\t\t\t\tif v != nil {\n\t\t\t\t\tparamTypes[i+i] = byte(fieldTypeString)\n\t\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\t\t\tif len(v) < longDataSize {\n\t\t\t\t\t\tparamValues = appendLengthEncodedInteger(paramValues,\n\t\t\t\t\t\t\tuint64(len(v)),\n\t\t\t\t\t\t)\n\t\t\t\t\t\tparamValues = append(paramValues, v...)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif err := stmt.writeCommandLongData(i, v); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Handle []byte(nil) as a NULL value\n\t\t\t\tnullMask[i/8] |= 1 << (uint(i) & 7)\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeNULL)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\tcase string:\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeString)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\t\tif len(v) < longDataSize {\n\t\t\t\t\tparamValues = appendLengthEncodedInteger(paramValues,\n\t\t\t\t\t\tuint64(len(v)),\n\t\t\t\t\t)\n\t\t\t\t\tparamValues = append(paramValues, v...)\n\t\t\t\t} else {\n\t\t\t\t\tif err := stmt.writeCommandLongData(i, []byte(v)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tcase time.Time:\n\t\t\t\tparamTypes[i+i] = byte(fieldTypeString)\n\t\t\t\tparamTypes[i+i+1] = 0x00\n\n\t\t\t\tvar a [64]byte\n\t\t\t\tvar b = a[:0]\n\n\t\t\t\tif v.IsZero() {\n\t\t\t\t\tb = append(b, \"0000-00-00\"...)\n\t\t\t\t} else {\n\t\t\t\t\tb = v.In(mc.cfg.Loc).AppendFormat(b, timeFormat)\n\t\t\t\t}\n\n\t\t\t\tparamValues = appendLengthEncodedInteger(paramValues,\n\t\t\t\t\tuint64(len(b)),\n\t\t\t\t)\n\t\t\t\tparamValues = append(paramValues, b...)\n\n\t\t\tdefault:\n\t\t\t\treturn fmt.Errorf(\"cannot convert type: %T\", arg)\n\t\t\t}\n\t\t}\n\n\t\t// Check if param values exceeded the available buffer\n\t\t// In that case we must build the data packet with the new values buffer\n\t\tif valuesCap != cap(paramValues) {\n\t\t\tdata = append(data[:pos], paramValues...)\n\t\t\tif err = mc.buf.store(data); err != nil {\n\t\t\t\terrLog.Print(err)\n\t\t\t\treturn errBadConnNoWrite\n\t\t\t}\n\t\t}\n\n\t\tpos += len(paramValues)\n\t\tdata = data[:pos]\n\t}\n\n\treturn mc.writePacket(data)\n}\n\nfunc (mc *mysqlConn) discardResults() error {\n\tfor mc.status&statusMoreResultsExists != 0 {\n\t\tresLen, err := mc.readResultSetHeaderPacket()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif resLen > 0 {\n\t\t\t// columns\n\t\t\tif err := mc.readUntilEOF(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// rows\n\t\t\tif err := mc.readUntilEOF(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// http://dev.mysql.com/doc/internals/en/binary-protocol-resultset-row.html\nfunc (rows *binaryRows) readRow(dest []driver.Value) error {\n\tdata, err := rows.mc.readPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// packet indicator [1 byte]\n\tif data[0] != iOK {\n\t\t// EOF Packet\n\t\tif data[0] == iEOF && len(data) == 5 {\n\t\t\trows.mc.status = readStatus(data[3:])\n\t\t\trows.rs.done = true\n\t\t\tif !rows.HasNextResultSet() {\n\t\t\t\trows.mc = nil\n\t\t\t}\n\t\t\treturn io.EOF\n\t\t}\n\t\tmc := rows.mc\n\t\trows.mc = nil\n\n\t\t// Error otherwise\n\t\treturn mc.handleErrorPacket(data)\n\t}\n\n\t// NULL-bitmap,  [(column-count + 7 + 2) / 8 bytes]\n\tpos := 1 + (len(dest)+7+2)>>3\n\tnullMask := data[1:pos]\n\n\tfor i := range dest {\n\t\t// Field is NULL\n\t\t// (byte >> bit-pos) % 2 == 1\n\t\tif ((nullMask[(i+2)>>3] >> uint((i+2)&7)) & 1) == 1 {\n\t\t\tdest[i] = nil\n\t\t\tcontinue\n\t\t}\n\n\t\t// Convert to byte-coded string\n\t\tswitch rows.rs.columns[i].fieldType {\n\t\tcase fieldTypeNULL:\n\t\t\tdest[i] = nil\n\t\t\tcontinue\n\n\t\t// Numeric Types\n\t\tcase fieldTypeTiny:\n\t\t\tif rows.rs.columns[i].flags&flagUnsigned != 0 {\n\t\t\t\tdest[i] = int64(data[pos])\n\t\t\t} else {\n\t\t\t\tdest[i] = int64(int8(data[pos]))\n\t\t\t}\n\t\t\tpos++\n\t\t\tcontinue\n\n\t\tcase fieldTypeShort, fieldTypeYear:\n\t\t\tif rows.rs.columns[i].flags&flagUnsigned != 0 {\n\t\t\t\tdest[i] = int64(binary.LittleEndian.Uint16(data[pos : pos+2]))\n\t\t\t} else {\n\t\t\t\tdest[i] = int64(int16(binary.LittleEndian.Uint16(data[pos : pos+2])))\n\t\t\t}\n\t\t\tpos += 2\n\t\t\tcontinue\n\n\t\tcase fieldTypeInt24, fieldTypeLong:\n\t\t\tif rows.rs.columns[i].flags&flagUnsigned != 0 {\n\t\t\t\tdest[i] = int64(binary.LittleEndian.Uint32(data[pos : pos+4]))\n\t\t\t} else {\n\t\t\t\tdest[i] = int64(int32(binary.LittleEndian.Uint32(data[pos : pos+4])))\n\t\t\t}\n\t\t\tpos += 4\n\t\t\tcontinue\n\n\t\tcase fieldTypeLongLong:\n\t\t\tif rows.rs.columns[i].flags&flagUnsigned != 0 {\n\t\t\t\tval := binary.LittleEndian.Uint64(data[pos : pos+8])\n\t\t\t\tif val > math.MaxInt64 {\n\t\t\t\t\tdest[i] = uint64ToString(val)\n\t\t\t\t} else {\n\t\t\t\t\tdest[i] = int64(val)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdest[i] = int64(binary.LittleEndian.Uint64(data[pos : pos+8]))\n\t\t\t}\n\t\t\tpos += 8\n\t\t\tcontinue\n\n\t\tcase fieldTypeFloat:\n\t\t\tdest[i] = math.Float32frombits(binary.LittleEndian.Uint32(data[pos : pos+4]))\n\t\t\tpos += 4\n\t\t\tcontinue\n\n\t\tcase fieldTypeDouble:\n\t\t\tdest[i] = math.Float64frombits(binary.LittleEndian.Uint64(data[pos : pos+8]))\n\t\t\tpos += 8\n\t\t\tcontinue\n\n\t\t// Length coded Binary Strings\n\t\tcase fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar,\n\t\t\tfieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB,\n\t\t\tfieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB,\n\t\t\tfieldTypeVarString, fieldTypeString, fieldTypeGeometry, fieldTypeJSON:\n\t\t\tvar isNull bool\n\t\t\tvar n int\n\t\t\tdest[i], isNull, n, err = readLengthEncodedString(data[pos:])\n\t\t\tpos += n\n\t\t\tif err == nil {\n\t\t\t\tif !isNull {\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\tdest[i] = nil\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn err\n\n\t\tcase\n\t\t\tfieldTypeDate, fieldTypeNewDate, // Date YYYY-MM-DD\n\t\t\tfieldTypeTime,                         // Time [-][H]HH:MM:SS[.fractal]\n\t\t\tfieldTypeTimestamp, fieldTypeDateTime: // Timestamp YYYY-MM-DD HH:MM:SS[.fractal]\n\n\t\t\tnum, isNull, n := readLengthEncodedInteger(data[pos:])\n\t\t\tpos += n\n\n\t\t\tswitch {\n\t\t\tcase isNull:\n\t\t\t\tdest[i] = nil\n\t\t\t\tcontinue\n\t\t\tcase rows.rs.columns[i].fieldType == fieldTypeTime:\n\t\t\t\t// database/sql does not support an equivalent to TIME, return a string\n\t\t\t\tvar dstlen uint8\n\t\t\t\tswitch decimals := rows.rs.columns[i].decimals; decimals {\n\t\t\t\tcase 0x00, 0x1f:\n\t\t\t\t\tdstlen = 8\n\t\t\t\tcase 1, 2, 3, 4, 5, 6:\n\t\t\t\t\tdstlen = 8 + 1 + decimals\n\t\t\t\tdefault:\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"protocol error, illegal decimals value %d\",\n\t\t\t\t\t\trows.rs.columns[i].decimals,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tdest[i], err = formatBinaryTime(data[pos:pos+int(num)], dstlen)\n\t\t\tcase rows.mc.parseTime:\n\t\t\t\tdest[i], err = parseBinaryDateTime(num, data[pos:], rows.mc.cfg.Loc)\n\t\t\tdefault:\n\t\t\t\tvar dstlen uint8\n\t\t\t\tif rows.rs.columns[i].fieldType == fieldTypeDate {\n\t\t\t\t\tdstlen = 10\n\t\t\t\t} else {\n\t\t\t\t\tswitch decimals := rows.rs.columns[i].decimals; decimals {\n\t\t\t\t\tcase 0x00, 0x1f:\n\t\t\t\t\t\tdstlen = 19\n\t\t\t\t\tcase 1, 2, 3, 4, 5, 6:\n\t\t\t\t\t\tdstlen = 19 + 1 + decimals\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\t\"protocol error, illegal decimals value %d\",\n\t\t\t\t\t\t\trows.rs.columns[i].decimals,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen)\n\t\t\t}\n\n\t\t\tif err == nil {\n\t\t\t\tpos += int(num)\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t// Please report if this happens!\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown field type %d\", rows.rs.columns[i].fieldType)\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/result.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\ntype mysqlResult struct {\n\taffectedRows int64\n\tinsertId     int64\n}\n\nfunc (res *mysqlResult) LastInsertId() (int64, error) {\n\treturn res.insertId, nil\n}\n\nfunc (res *mysqlResult) RowsAffected() (int64, error) {\n\treturn res.affectedRows, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/rows.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"database/sql/driver\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n)\n\ntype resultSet struct {\n\tcolumns     []mysqlField\n\tcolumnNames []string\n\tdone        bool\n}\n\ntype mysqlRows struct {\n\tmc     *mysqlConn\n\trs     resultSet\n\tfinish func()\n}\n\ntype binaryRows struct {\n\tmysqlRows\n}\n\ntype textRows struct {\n\tmysqlRows\n}\n\nfunc (rows *mysqlRows) Columns() []string {\n\tif rows.rs.columnNames != nil {\n\t\treturn rows.rs.columnNames\n\t}\n\n\tcolumns := make([]string, len(rows.rs.columns))\n\tif rows.mc != nil && rows.mc.cfg.ColumnsWithAlias {\n\t\tfor i := range columns {\n\t\t\tif tableName := rows.rs.columns[i].tableName; len(tableName) > 0 {\n\t\t\t\tcolumns[i] = tableName + \".\" + rows.rs.columns[i].name\n\t\t\t} else {\n\t\t\t\tcolumns[i] = rows.rs.columns[i].name\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor i := range columns {\n\t\t\tcolumns[i] = rows.rs.columns[i].name\n\t\t}\n\t}\n\n\trows.rs.columnNames = columns\n\treturn columns\n}\n\nfunc (rows *mysqlRows) ColumnTypeDatabaseTypeName(i int) string {\n\treturn rows.rs.columns[i].typeDatabaseName()\n}\n\n// func (rows *mysqlRows) ColumnTypeLength(i int) (length int64, ok bool) {\n// \treturn int64(rows.rs.columns[i].length), true\n// }\n\nfunc (rows *mysqlRows) ColumnTypeNullable(i int) (nullable, ok bool) {\n\treturn rows.rs.columns[i].flags&flagNotNULL == 0, true\n}\n\nfunc (rows *mysqlRows) ColumnTypePrecisionScale(i int) (int64, int64, bool) {\n\tcolumn := rows.rs.columns[i]\n\tdecimals := int64(column.decimals)\n\n\tswitch column.fieldType {\n\tcase fieldTypeDecimal, fieldTypeNewDecimal:\n\t\tif decimals > 0 {\n\t\t\treturn int64(column.length) - 2, decimals, true\n\t\t}\n\t\treturn int64(column.length) - 1, decimals, true\n\tcase fieldTypeTimestamp, fieldTypeDateTime, fieldTypeTime:\n\t\treturn decimals, decimals, true\n\tcase fieldTypeFloat, fieldTypeDouble:\n\t\tif decimals == 0x1f {\n\t\t\treturn math.MaxInt64, math.MaxInt64, true\n\t\t}\n\t\treturn math.MaxInt64, decimals, true\n\t}\n\n\treturn 0, 0, false\n}\n\nfunc (rows *mysqlRows) ColumnTypeScanType(i int) reflect.Type {\n\treturn rows.rs.columns[i].scanType()\n}\n\nfunc (rows *mysqlRows) Close() (err error) {\n\tif f := rows.finish; f != nil {\n\t\tf()\n\t\trows.finish = nil\n\t}\n\n\tmc := rows.mc\n\tif mc == nil {\n\t\treturn nil\n\t}\n\tif err := mc.error(); err != nil {\n\t\treturn err\n\t}\n\n\t// flip the buffer for this connection if we need to drain it.\n\t// note that for a successful query (i.e. one where rows.next()\n\t// has been called until it returns false), `rows.mc` will be nil\n\t// by the time the user calls `(*Rows).Close`, so we won't reach this\n\t// see: https://github.com/golang/go/commit/651ddbdb5056ded455f47f9c494c67b389622a47\n\tmc.buf.flip()\n\n\t// Remove unread packets from stream\n\tif !rows.rs.done {\n\t\terr = mc.readUntilEOF()\n\t}\n\tif err == nil {\n\t\tif err = mc.discardResults(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\trows.mc = nil\n\treturn err\n}\n\nfunc (rows *mysqlRows) HasNextResultSet() (b bool) {\n\tif rows.mc == nil {\n\t\treturn false\n\t}\n\treturn rows.mc.status&statusMoreResultsExists != 0\n}\n\nfunc (rows *mysqlRows) nextResultSet() (int, error) {\n\tif rows.mc == nil {\n\t\treturn 0, io.EOF\n\t}\n\tif err := rows.mc.error(); err != nil {\n\t\treturn 0, err\n\t}\n\n\t// Remove unread packets from stream\n\tif !rows.rs.done {\n\t\tif err := rows.mc.readUntilEOF(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\trows.rs.done = true\n\t}\n\n\tif !rows.HasNextResultSet() {\n\t\trows.mc = nil\n\t\treturn 0, io.EOF\n\t}\n\trows.rs = resultSet{}\n\treturn rows.mc.readResultSetHeaderPacket()\n}\n\nfunc (rows *mysqlRows) nextNotEmptyResultSet() (int, error) {\n\tfor {\n\t\tresLen, err := rows.nextResultSet()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tif resLen > 0 {\n\t\t\treturn resLen, nil\n\t\t}\n\n\t\trows.rs.done = true\n\t}\n}\n\nfunc (rows *binaryRows) NextResultSet() error {\n\tresLen, err := rows.nextNotEmptyResultSet()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trows.rs.columns, err = rows.mc.readColumns(resLen)\n\treturn err\n}\n\nfunc (rows *binaryRows) Next(dest []driver.Value) error {\n\tif mc := rows.mc; mc != nil {\n\t\tif err := mc.error(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Fetch next row from stream\n\t\treturn rows.readRow(dest)\n\t}\n\treturn io.EOF\n}\n\nfunc (rows *textRows) NextResultSet() (err error) {\n\tresLen, err := rows.nextNotEmptyResultSet()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trows.rs.columns, err = rows.mc.readColumns(resLen)\n\treturn err\n}\n\nfunc (rows *textRows) Next(dest []driver.Value) error {\n\tif mc := rows.mc; mc != nil {\n\t\tif err := mc.error(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Fetch next row from stream\n\t\treturn rows.readRow(dest)\n\t}\n\treturn io.EOF\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/statement.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n)\n\ntype mysqlStmt struct {\n\tmc         *mysqlConn\n\tid         uint32\n\tparamCount int\n}\n\nfunc (stmt *mysqlStmt) Close() error {\n\tif stmt.mc == nil || stmt.mc.closed.IsSet() {\n\t\t// driver.Stmt.Close can be called more than once, thus this function\n\t\t// has to be idempotent.\n\t\t// See also Issue #450 and golang/go#16019.\n\t\t//errLog.Print(ErrInvalidConn)\n\t\treturn driver.ErrBadConn\n\t}\n\n\terr := stmt.mc.writeCommandPacketUint32(comStmtClose, stmt.id)\n\tstmt.mc = nil\n\treturn err\n}\n\nfunc (stmt *mysqlStmt) NumInput() int {\n\treturn stmt.paramCount\n}\n\nfunc (stmt *mysqlStmt) ColumnConverter(idx int) driver.ValueConverter {\n\treturn converter{}\n}\n\nfunc (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) {\n\tif stmt.mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn nil, driver.ErrBadConn\n\t}\n\t// Send command\n\terr := stmt.writeExecutePacket(args)\n\tif err != nil {\n\t\treturn nil, stmt.mc.markBadConn(err)\n\t}\n\n\tmc := stmt.mc\n\n\tmc.affectedRows = 0\n\tmc.insertId = 0\n\n\t// Read Result\n\tresLen, err := mc.readResultSetHeaderPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif resLen > 0 {\n\t\t// Columns\n\t\tif err = mc.readUntilEOF(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Rows\n\t\tif err := mc.readUntilEOF(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := mc.discardResults(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &mysqlResult{\n\t\taffectedRows: int64(mc.affectedRows),\n\t\tinsertId:     int64(mc.insertId),\n\t}, nil\n}\n\nfunc (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) {\n\treturn stmt.query(args)\n}\n\nfunc (stmt *mysqlStmt) query(args []driver.Value) (*binaryRows, error) {\n\tif stmt.mc.closed.IsSet() {\n\t\terrLog.Print(ErrInvalidConn)\n\t\treturn nil, driver.ErrBadConn\n\t}\n\t// Send command\n\terr := stmt.writeExecutePacket(args)\n\tif err != nil {\n\t\treturn nil, stmt.mc.markBadConn(err)\n\t}\n\n\tmc := stmt.mc\n\n\t// Read Result\n\tresLen, err := mc.readResultSetHeaderPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trows := new(binaryRows)\n\n\tif resLen > 0 {\n\t\trows.mc = mc\n\t\trows.rs.columns, err = mc.readColumns(resLen)\n\t} else {\n\t\trows.rs.done = true\n\n\t\tswitch err := rows.NextResultSet(); err {\n\t\tcase nil, io.EOF:\n\t\t\treturn rows, nil\n\t\tdefault:\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn rows, err\n}\n\ntype converter struct{}\n\n// ConvertValue mirrors the reference/default converter in database/sql/driver\n// with _one_ exception.  We support uint64 with their high bit and the default\n// implementation does not.  This function should be kept in sync with\n// database/sql/driver defaultConverter.ConvertValue() except for that\n// deliberate difference.\nfunc (c converter) ConvertValue(v interface{}) (driver.Value, error) {\n\tif driver.IsValue(v) {\n\t\treturn v, nil\n\t}\n\n\tif vr, ok := v.(driver.Valuer); ok {\n\t\tsv, err := callValuerValue(vr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !driver.IsValue(sv) {\n\t\t\treturn nil, fmt.Errorf(\"non-Value type %T returned from Value\", sv)\n\t\t}\n\t\treturn sv, nil\n\t}\n\n\trv := reflect.ValueOf(v)\n\tswitch rv.Kind() {\n\tcase reflect.Ptr:\n\t\t// indirect pointers\n\t\tif rv.IsNil() {\n\t\t\treturn nil, nil\n\t\t} else {\n\t\t\treturn c.ConvertValue(rv.Elem().Interface())\n\t\t}\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn rv.Int(), nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn rv.Uint(), nil\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn rv.Float(), nil\n\tcase reflect.Bool:\n\t\treturn rv.Bool(), nil\n\tcase reflect.Slice:\n\t\tek := rv.Type().Elem().Kind()\n\t\tif ek == reflect.Uint8 {\n\t\t\treturn rv.Bytes(), nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"unsupported type %T, a slice of %s\", v, ek)\n\tcase reflect.String:\n\t\treturn rv.String(), nil\n\t}\n\treturn nil, fmt.Errorf(\"unsupported type %T, a %s\", v, rv.Kind())\n}\n\nvar valuerReflectType = reflect.TypeOf((*driver.Valuer)(nil)).Elem()\n\n// callValuerValue returns vr.Value(), with one exception:\n// If vr.Value is an auto-generated method on a pointer type and the\n// pointer is nil, it would panic at runtime in the panicwrap\n// method. Treat it like nil instead.\n//\n// This is so people can implement driver.Value on value types and\n// still use nil pointers to those types to mean nil/NULL, just like\n// string/*string.\n//\n// This is an exact copy of the same-named unexported function from the\n// database/sql package.\nfunc callValuerValue(vr driver.Valuer) (v driver.Value, err error) {\n\tif rv := reflect.ValueOf(vr); rv.Kind() == reflect.Ptr &&\n\t\trv.IsNil() &&\n\t\trv.Type().Elem().Implements(valuerReflectType) {\n\t\treturn nil, nil\n\t}\n\treturn vr.Value()\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/transaction.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\ntype mysqlTx struct {\n\tmc *mysqlConn\n}\n\nfunc (tx *mysqlTx) Commit() (err error) {\n\tif tx.mc == nil || tx.mc.closed.IsSet() {\n\t\treturn ErrInvalidConn\n\t}\n\terr = tx.mc.exec(\"COMMIT\")\n\ttx.mc = nil\n\treturn\n}\n\nfunc (tx *mysqlTx) Rollback() (err error) {\n\tif tx.mc == nil || tx.mc.closed.IsSet() {\n\t\treturn ErrInvalidConn\n\t}\n\terr = tx.mc.exec(\"ROLLBACK\")\n\ttx.mc = nil\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/go-sql-driver/mysql/utils.go",
    "content": "// Go MySQL Driver - A MySQL-Driver for Go's database/sql package\n//\n// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this file,\n// You can obtain one at http://mozilla.org/MPL/2.0/.\n\npackage mysql\n\nimport (\n\t\"crypto/tls\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\n// Registry for custom tls.Configs\nvar (\n\ttlsConfigLock     sync.RWMutex\n\ttlsConfigRegistry map[string]*tls.Config\n)\n\n// RegisterTLSConfig registers a custom tls.Config to be used with sql.Open.\n// Use the key as a value in the DSN where tls=value.\n//\n// Note: The provided tls.Config is exclusively owned by the driver after\n// registering it.\n//\n//  rootCertPool := x509.NewCertPool()\n//  pem, err := ioutil.ReadFile(\"/path/ca-cert.pem\")\n//  if err != nil {\n//      log.Fatal(err)\n//  }\n//  if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {\n//      log.Fatal(\"Failed to append PEM.\")\n//  }\n//  clientCert := make([]tls.Certificate, 0, 1)\n//  certs, err := tls.LoadX509KeyPair(\"/path/client-cert.pem\", \"/path/client-key.pem\")\n//  if err != nil {\n//      log.Fatal(err)\n//  }\n//  clientCert = append(clientCert, certs)\n//  mysql.RegisterTLSConfig(\"custom\", &tls.Config{\n//      RootCAs: rootCertPool,\n//      Certificates: clientCert,\n//  })\n//  db, err := sql.Open(\"mysql\", \"user@tcp(localhost:3306)/test?tls=custom\")\n//\nfunc RegisterTLSConfig(key string, config *tls.Config) error {\n\tif _, isBool := readBool(key); isBool || strings.ToLower(key) == \"skip-verify\" || strings.ToLower(key) == \"preferred\" {\n\t\treturn fmt.Errorf(\"key '%s' is reserved\", key)\n\t}\n\n\ttlsConfigLock.Lock()\n\tif tlsConfigRegistry == nil {\n\t\ttlsConfigRegistry = make(map[string]*tls.Config)\n\t}\n\n\ttlsConfigRegistry[key] = config\n\ttlsConfigLock.Unlock()\n\treturn nil\n}\n\n// DeregisterTLSConfig removes the tls.Config associated with key.\nfunc DeregisterTLSConfig(key string) {\n\ttlsConfigLock.Lock()\n\tif tlsConfigRegistry != nil {\n\t\tdelete(tlsConfigRegistry, key)\n\t}\n\ttlsConfigLock.Unlock()\n}\n\nfunc getTLSConfigClone(key string) (config *tls.Config) {\n\ttlsConfigLock.RLock()\n\tif v, ok := tlsConfigRegistry[key]; ok {\n\t\tconfig = v.Clone()\n\t}\n\ttlsConfigLock.RUnlock()\n\treturn\n}\n\n// Returns the bool value of the input.\n// The 2nd return value indicates if the input was a valid bool value\nfunc readBool(input string) (value bool, valid bool) {\n\tswitch input {\n\tcase \"1\", \"true\", \"TRUE\", \"True\":\n\t\treturn true, true\n\tcase \"0\", \"false\", \"FALSE\", \"False\":\n\t\treturn false, true\n\t}\n\n\t// Not a valid bool value\n\treturn\n}\n\n/******************************************************************************\n*                           Time related utils                                *\n******************************************************************************/\n\n// NullTime represents a time.Time that may be NULL.\n// NullTime implements the Scanner interface so\n// it can be used as a scan destination:\n//\n//  var nt NullTime\n//  err := db.QueryRow(\"SELECT time FROM foo WHERE id=?\", id).Scan(&nt)\n//  ...\n//  if nt.Valid {\n//     // use nt.Time\n//  } else {\n//     // NULL value\n//  }\n//\n// This NullTime implementation is not driver-specific\ntype NullTime struct {\n\tTime  time.Time\n\tValid bool // Valid is true if Time is not NULL\n}\n\n// Scan implements the Scanner interface.\n// The value type must be time.Time or string / []byte (formatted time-string),\n// otherwise Scan fails.\nfunc (nt *NullTime) Scan(value interface{}) (err error) {\n\tif value == nil {\n\t\tnt.Time, nt.Valid = time.Time{}, false\n\t\treturn\n\t}\n\n\tswitch v := value.(type) {\n\tcase time.Time:\n\t\tnt.Time, nt.Valid = v, true\n\t\treturn\n\tcase []byte:\n\t\tnt.Time, err = parseDateTime(string(v), time.UTC)\n\t\tnt.Valid = (err == nil)\n\t\treturn\n\tcase string:\n\t\tnt.Time, err = parseDateTime(v, time.UTC)\n\t\tnt.Valid = (err == nil)\n\t\treturn\n\t}\n\n\tnt.Valid = false\n\treturn fmt.Errorf(\"Can't convert %T to time.Time\", value)\n}\n\n// Value implements the driver Valuer interface.\nfunc (nt NullTime) Value() (driver.Value, error) {\n\tif !nt.Valid {\n\t\treturn nil, nil\n\t}\n\treturn nt.Time, nil\n}\n\nfunc parseDateTime(str string, loc *time.Location) (t time.Time, err error) {\n\tbase := \"0000-00-00 00:00:00.0000000\"\n\tswitch len(str) {\n\tcase 10, 19, 21, 22, 23, 24, 25, 26: // up to \"YYYY-MM-DD HH:MM:SS.MMMMMM\"\n\t\tif str == base[:len(str)] {\n\t\t\treturn\n\t\t}\n\t\tt, err = time.Parse(timeFormat[:len(str)], str)\n\tdefault:\n\t\terr = fmt.Errorf(\"invalid time string: %s\", str)\n\t\treturn\n\t}\n\n\t// Adjust location\n\tif err == nil && loc != time.UTC {\n\t\ty, mo, d := t.Date()\n\t\th, mi, s := t.Clock()\n\t\tt, err = time.Date(y, mo, d, h, mi, s, t.Nanosecond(), loc), nil\n\t}\n\n\treturn\n}\n\nfunc parseBinaryDateTime(num uint64, data []byte, loc *time.Location) (driver.Value, error) {\n\tswitch num {\n\tcase 0:\n\t\treturn time.Time{}, nil\n\tcase 4:\n\t\treturn time.Date(\n\t\t\tint(binary.LittleEndian.Uint16(data[:2])), // year\n\t\t\ttime.Month(data[2]),                       // month\n\t\t\tint(data[3]),                              // day\n\t\t\t0, 0, 0, 0,\n\t\t\tloc,\n\t\t), nil\n\tcase 7:\n\t\treturn time.Date(\n\t\t\tint(binary.LittleEndian.Uint16(data[:2])), // year\n\t\t\ttime.Month(data[2]),                       // month\n\t\t\tint(data[3]),                              // day\n\t\t\tint(data[4]),                              // hour\n\t\t\tint(data[5]),                              // minutes\n\t\t\tint(data[6]),                              // seconds\n\t\t\t0,\n\t\t\tloc,\n\t\t), nil\n\tcase 11:\n\t\treturn time.Date(\n\t\t\tint(binary.LittleEndian.Uint16(data[:2])), // year\n\t\t\ttime.Month(data[2]),                       // month\n\t\t\tint(data[3]),                              // day\n\t\t\tint(data[4]),                              // hour\n\t\t\tint(data[5]),                              // minutes\n\t\t\tint(data[6]),                              // seconds\n\t\t\tint(binary.LittleEndian.Uint32(data[7:11]))*1000, // nanoseconds\n\t\t\tloc,\n\t\t), nil\n\t}\n\treturn nil, fmt.Errorf(\"invalid DATETIME packet length %d\", num)\n}\n\n// zeroDateTime is used in formatBinaryDateTime to avoid an allocation\n// if the DATE or DATETIME has the zero value.\n// It must never be changed.\n// The current behavior depends on database/sql copying the result.\nvar zeroDateTime = []byte(\"0000-00-00 00:00:00.000000\")\n\nconst digits01 = \"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\"\nconst digits10 = \"0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999\"\n\nfunc appendMicrosecs(dst, src []byte, decimals int) []byte {\n\tif decimals <= 0 {\n\t\treturn dst\n\t}\n\tif len(src) == 0 {\n\t\treturn append(dst, \".000000\"[:decimals+1]...)\n\t}\n\n\tmicrosecs := binary.LittleEndian.Uint32(src[:4])\n\tp1 := byte(microsecs / 10000)\n\tmicrosecs -= 10000 * uint32(p1)\n\tp2 := byte(microsecs / 100)\n\tmicrosecs -= 100 * uint32(p2)\n\tp3 := byte(microsecs)\n\n\tswitch decimals {\n\tdefault:\n\t\treturn append(dst, '.',\n\t\t\tdigits10[p1], digits01[p1],\n\t\t\tdigits10[p2], digits01[p2],\n\t\t\tdigits10[p3], digits01[p3],\n\t\t)\n\tcase 1:\n\t\treturn append(dst, '.',\n\t\t\tdigits10[p1],\n\t\t)\n\tcase 2:\n\t\treturn append(dst, '.',\n\t\t\tdigits10[p1], digits01[p1],\n\t\t)\n\tcase 3:\n\t\treturn append(dst, '.',\n\t\t\tdigits10[p1], digits01[p1],\n\t\t\tdigits10[p2],\n\t\t)\n\tcase 4:\n\t\treturn append(dst, '.',\n\t\t\tdigits10[p1], digits01[p1],\n\t\t\tdigits10[p2], digits01[p2],\n\t\t)\n\tcase 5:\n\t\treturn append(dst, '.',\n\t\t\tdigits10[p1], digits01[p1],\n\t\t\tdigits10[p2], digits01[p2],\n\t\t\tdigits10[p3],\n\t\t)\n\t}\n}\n\nfunc formatBinaryDateTime(src []byte, length uint8) (driver.Value, error) {\n\t// length expects the deterministic length of the zero value,\n\t// negative time and 100+ hours are automatically added if needed\n\tif len(src) == 0 {\n\t\treturn zeroDateTime[:length], nil\n\t}\n\tvar dst []byte      // return value\n\tvar p1, p2, p3 byte // current digit pair\n\n\tswitch length {\n\tcase 10, 19, 21, 22, 23, 24, 25, 26:\n\tdefault:\n\t\tt := \"DATE\"\n\t\tif length > 10 {\n\t\t\tt += \"TIME\"\n\t\t}\n\t\treturn nil, fmt.Errorf(\"illegal %s length %d\", t, length)\n\t}\n\tswitch len(src) {\n\tcase 4, 7, 11:\n\tdefault:\n\t\tt := \"DATE\"\n\t\tif length > 10 {\n\t\t\tt += \"TIME\"\n\t\t}\n\t\treturn nil, fmt.Errorf(\"illegal %s packet length %d\", t, len(src))\n\t}\n\tdst = make([]byte, 0, length)\n\t// start with the date\n\tyear := binary.LittleEndian.Uint16(src[:2])\n\tpt := year / 100\n\tp1 = byte(year - 100*uint16(pt))\n\tp2, p3 = src[2], src[3]\n\tdst = append(dst,\n\t\tdigits10[pt], digits01[pt],\n\t\tdigits10[p1], digits01[p1], '-',\n\t\tdigits10[p2], digits01[p2], '-',\n\t\tdigits10[p3], digits01[p3],\n\t)\n\tif length == 10 {\n\t\treturn dst, nil\n\t}\n\tif len(src) == 4 {\n\t\treturn append(dst, zeroDateTime[10:length]...), nil\n\t}\n\tdst = append(dst, ' ')\n\tp1 = src[4] // hour\n\tsrc = src[5:]\n\n\t// p1 is 2-digit hour, src is after hour\n\tp2, p3 = src[0], src[1]\n\tdst = append(dst,\n\t\tdigits10[p1], digits01[p1], ':',\n\t\tdigits10[p2], digits01[p2], ':',\n\t\tdigits10[p3], digits01[p3],\n\t)\n\treturn appendMicrosecs(dst, src[2:], int(length)-20), nil\n}\n\nfunc formatBinaryTime(src []byte, length uint8) (driver.Value, error) {\n\t// length expects the deterministic length of the zero value,\n\t// negative time and 100+ hours are automatically added if needed\n\tif len(src) == 0 {\n\t\treturn zeroDateTime[11 : 11+length], nil\n\t}\n\tvar dst []byte // return value\n\n\tswitch length {\n\tcase\n\t\t8,                      // time (can be up to 10 when negative and 100+ hours)\n\t\t10, 11, 12, 13, 14, 15: // time with fractional seconds\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"illegal TIME length %d\", length)\n\t}\n\tswitch len(src) {\n\tcase 8, 12:\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"invalid TIME packet length %d\", len(src))\n\t}\n\t// +2 to enable negative time and 100+ hours\n\tdst = make([]byte, 0, length+2)\n\tif src[0] == 1 {\n\t\tdst = append(dst, '-')\n\t}\n\tdays := binary.LittleEndian.Uint32(src[1:5])\n\thours := int64(days)*24 + int64(src[5])\n\n\tif hours >= 100 {\n\t\tdst = strconv.AppendInt(dst, hours, 10)\n\t} else {\n\t\tdst = append(dst, digits10[hours], digits01[hours])\n\t}\n\n\tmin, sec := src[6], src[7]\n\tdst = append(dst, ':',\n\t\tdigits10[min], digits01[min], ':',\n\t\tdigits10[sec], digits01[sec],\n\t)\n\treturn appendMicrosecs(dst, src[8:], int(length)-9), nil\n}\n\n/******************************************************************************\n*                       Convert from and to bytes                             *\n******************************************************************************/\n\nfunc uint64ToBytes(n uint64) []byte {\n\treturn []byte{\n\t\tbyte(n),\n\t\tbyte(n >> 8),\n\t\tbyte(n >> 16),\n\t\tbyte(n >> 24),\n\t\tbyte(n >> 32),\n\t\tbyte(n >> 40),\n\t\tbyte(n >> 48),\n\t\tbyte(n >> 56),\n\t}\n}\n\nfunc uint64ToString(n uint64) []byte {\n\tvar a [20]byte\n\ti := 20\n\n\t// U+0030 = 0\n\t// ...\n\t// U+0039 = 9\n\n\tvar q uint64\n\tfor n >= 10 {\n\t\ti--\n\t\tq = n / 10\n\t\ta[i] = uint8(n-q*10) + 0x30\n\t\tn = q\n\t}\n\n\ti--\n\ta[i] = uint8(n) + 0x30\n\n\treturn a[i:]\n}\n\n// treats string value as unsigned integer representation\nfunc stringToInt(b []byte) int {\n\tval := 0\n\tfor i := range b {\n\t\tval *= 10\n\t\tval += int(b[i] - 0x30)\n\t}\n\treturn val\n}\n\n// returns the string read as a bytes slice, wheter the value is NULL,\n// the number of bytes read and an error, in case the string is longer than\n// the input slice\nfunc readLengthEncodedString(b []byte) ([]byte, bool, int, error) {\n\t// Get length\n\tnum, isNull, n := readLengthEncodedInteger(b)\n\tif num < 1 {\n\t\treturn b[n:n], isNull, n, nil\n\t}\n\n\tn += int(num)\n\n\t// Check data length\n\tif len(b) >= n {\n\t\treturn b[n-int(num) : n : n], false, n, nil\n\t}\n\treturn nil, false, n, io.EOF\n}\n\n// returns the number of bytes skipped and an error, in case the string is\n// longer than the input slice\nfunc skipLengthEncodedString(b []byte) (int, error) {\n\t// Get length\n\tnum, _, n := readLengthEncodedInteger(b)\n\tif num < 1 {\n\t\treturn n, nil\n\t}\n\n\tn += int(num)\n\n\t// Check data length\n\tif len(b) >= n {\n\t\treturn n, nil\n\t}\n\treturn n, io.EOF\n}\n\n// returns the number read, whether the value is NULL and the number of bytes read\nfunc readLengthEncodedInteger(b []byte) (uint64, bool, int) {\n\t// See issue #349\n\tif len(b) == 0 {\n\t\treturn 0, true, 1\n\t}\n\n\tswitch b[0] {\n\t// 251: NULL\n\tcase 0xfb:\n\t\treturn 0, true, 1\n\n\t// 252: value of following 2\n\tcase 0xfc:\n\t\treturn uint64(b[1]) | uint64(b[2])<<8, false, 3\n\n\t// 253: value of following 3\n\tcase 0xfd:\n\t\treturn uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16, false, 4\n\n\t// 254: value of following 8\n\tcase 0xfe:\n\t\treturn uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16 |\n\t\t\t\tuint64(b[4])<<24 | uint64(b[5])<<32 | uint64(b[6])<<40 |\n\t\t\t\tuint64(b[7])<<48 | uint64(b[8])<<56,\n\t\t\tfalse, 9\n\t}\n\n\t// 0-250: value of first byte\n\treturn uint64(b[0]), false, 1\n}\n\n// encodes a uint64 value and appends it to the given bytes slice\nfunc appendLengthEncodedInteger(b []byte, n uint64) []byte {\n\tswitch {\n\tcase n <= 250:\n\t\treturn append(b, byte(n))\n\n\tcase n <= 0xffff:\n\t\treturn append(b, 0xfc, byte(n), byte(n>>8))\n\n\tcase n <= 0xffffff:\n\t\treturn append(b, 0xfd, byte(n), byte(n>>8), byte(n>>16))\n\t}\n\treturn append(b, 0xfe, byte(n), byte(n>>8), byte(n>>16), byte(n>>24),\n\t\tbyte(n>>32), byte(n>>40), byte(n>>48), byte(n>>56))\n}\n\n// reserveBuffer checks cap(buf) and expand buffer to len(buf) + appendSize.\n// If cap(buf) is not enough, reallocate new buffer.\nfunc reserveBuffer(buf []byte, appendSize int) []byte {\n\tnewSize := len(buf) + appendSize\n\tif cap(buf) < newSize {\n\t\t// Grow buffer exponentially\n\t\tnewBuf := make([]byte, len(buf)*2+appendSize)\n\t\tcopy(newBuf, buf)\n\t\tbuf = newBuf\n\t}\n\treturn buf[:newSize]\n}\n\n// escapeBytesBackslash escapes []byte with backslashes (\\)\n// This escapes the contents of a string (provided as []byte) by adding backslashes before special\n// characters, and turning others into specific escape sequences, such as\n// turning newlines into \\n and null bytes into \\0.\n// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L823-L932\nfunc escapeBytesBackslash(buf, v []byte) []byte {\n\tpos := len(buf)\n\tbuf = reserveBuffer(buf, len(v)*2)\n\n\tfor _, c := range v {\n\t\tswitch c {\n\t\tcase '\\x00':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '0'\n\t\t\tpos += 2\n\t\tcase '\\n':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = 'n'\n\t\t\tpos += 2\n\t\tcase '\\r':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = 'r'\n\t\t\tpos += 2\n\t\tcase '\\x1a':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = 'Z'\n\t\t\tpos += 2\n\t\tcase '\\'':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '\\''\n\t\t\tpos += 2\n\t\tcase '\"':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '\"'\n\t\t\tpos += 2\n\t\tcase '\\\\':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '\\\\'\n\t\t\tpos += 2\n\t\tdefault:\n\t\t\tbuf[pos] = c\n\t\t\tpos++\n\t\t}\n\t}\n\n\treturn buf[:pos]\n}\n\n// escapeStringBackslash is similar to escapeBytesBackslash but for string.\nfunc escapeStringBackslash(buf []byte, v string) []byte {\n\tpos := len(buf)\n\tbuf = reserveBuffer(buf, len(v)*2)\n\n\tfor i := 0; i < len(v); i++ {\n\t\tc := v[i]\n\t\tswitch c {\n\t\tcase '\\x00':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '0'\n\t\t\tpos += 2\n\t\tcase '\\n':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = 'n'\n\t\t\tpos += 2\n\t\tcase '\\r':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = 'r'\n\t\t\tpos += 2\n\t\tcase '\\x1a':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = 'Z'\n\t\t\tpos += 2\n\t\tcase '\\'':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '\\''\n\t\t\tpos += 2\n\t\tcase '\"':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '\"'\n\t\t\tpos += 2\n\t\tcase '\\\\':\n\t\t\tbuf[pos] = '\\\\'\n\t\t\tbuf[pos+1] = '\\\\'\n\t\t\tpos += 2\n\t\tdefault:\n\t\t\tbuf[pos] = c\n\t\t\tpos++\n\t\t}\n\t}\n\n\treturn buf[:pos]\n}\n\n// escapeBytesQuotes escapes apostrophes in []byte by doubling them up.\n// This escapes the contents of a string by doubling up any apostrophes that\n// it contains. This is used when the NO_BACKSLASH_ESCAPES SQL_MODE is in\n// effect on the server.\n// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L963-L1038\nfunc escapeBytesQuotes(buf, v []byte) []byte {\n\tpos := len(buf)\n\tbuf = reserveBuffer(buf, len(v)*2)\n\n\tfor _, c := range v {\n\t\tif c == '\\'' {\n\t\t\tbuf[pos] = '\\''\n\t\t\tbuf[pos+1] = '\\''\n\t\t\tpos += 2\n\t\t} else {\n\t\t\tbuf[pos] = c\n\t\t\tpos++\n\t\t}\n\t}\n\n\treturn buf[:pos]\n}\n\n// escapeStringQuotes is similar to escapeBytesQuotes but for string.\nfunc escapeStringQuotes(buf []byte, v string) []byte {\n\tpos := len(buf)\n\tbuf = reserveBuffer(buf, len(v)*2)\n\n\tfor i := 0; i < len(v); i++ {\n\t\tc := v[i]\n\t\tif c == '\\'' {\n\t\t\tbuf[pos] = '\\''\n\t\t\tbuf[pos+1] = '\\''\n\t\t\tpos += 2\n\t\t} else {\n\t\t\tbuf[pos] = c\n\t\t\tpos++\n\t\t}\n\t}\n\n\treturn buf[:pos]\n}\n\n/******************************************************************************\n*                               Sync utils                                    *\n******************************************************************************/\n\n// noCopy may be embedded into structs which must not be copied\n// after the first use.\n//\n// See https://github.com/golang/go/issues/8005#issuecomment-190753527\n// for details.\ntype noCopy struct{}\n\n// Lock is a no-op used by -copylocks checker from `go vet`.\nfunc (*noCopy) Lock() {}\n\n// atomicBool is a wrapper around uint32 for usage as a boolean value with\n// atomic access.\ntype atomicBool struct {\n\t_noCopy noCopy\n\tvalue   uint32\n}\n\n// IsSet returns whether the current boolean value is true\nfunc (ab *atomicBool) IsSet() bool {\n\treturn atomic.LoadUint32(&ab.value) > 0\n}\n\n// Set sets the value of the bool regardless of the previous value\nfunc (ab *atomicBool) Set(value bool) {\n\tif value {\n\t\tatomic.StoreUint32(&ab.value, 1)\n\t} else {\n\t\tatomic.StoreUint32(&ab.value, 0)\n\t}\n}\n\n// TrySet sets the value of the bool and returns whether the value changed\nfunc (ab *atomicBool) TrySet(value bool) bool {\n\tif value {\n\t\treturn atomic.SwapUint32(&ab.value, 1) == 0\n\t}\n\treturn atomic.SwapUint32(&ab.value, 0) > 0\n}\n\n// atomicError is a wrapper for atomically accessed error values\ntype atomicError struct {\n\t_noCopy noCopy\n\tvalue   atomic.Value\n}\n\n// Set sets the error value regardless of the previous value.\n// The value must not be nil\nfunc (ae *atomicError) Set(value error) {\n\tae.value.Store(value)\n}\n\n// Value returns the current error value\nfunc (ae *atomicError) Value() error {\n\tif v := ae.value.Load(); v != nil {\n\t\t// this will panic if the value doesn't implement the error interface\n\t\treturn v.(error)\n\t}\n\treturn nil\n}\n\nfunc namedValueToValue(named []driver.NamedValue) ([]driver.Value, error) {\n\tdargs := make([]driver.Value, len(named))\n\tfor n, param := range named {\n\t\tif len(param.Name) > 0 {\n\t\t\t// TODO: support the use of Named Parameters #561\n\t\t\treturn nil, errors.New(\"mysql: driver does not support the use of Named Parameters\")\n\t\t}\n\t\tdargs[n] = param.Value\n\t}\n\treturn dargs, nil\n}\n\nfunc mapIsolationLevel(level driver.IsolationLevel) (string, error) {\n\tswitch sql.IsolationLevel(level) {\n\tcase sql.LevelRepeatableRead:\n\t\treturn \"REPEATABLE READ\", nil\n\tcase sql.LevelReadCommitted:\n\t\treturn \"READ COMMITTED\", nil\n\tcase sql.LevelReadUncommitted:\n\t\treturn \"READ UNCOMMITTED\", nil\n\tcase sql.LevelSerializable:\n\t\treturn \"SERIALIZABLE\", nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"mysql: unsupported isolation level: %v\", level)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/AUTHORS",
    "content": "# This is the official list of Freetype-Go authors for copyright purposes.\n# This file is distinct from the CONTRIBUTORS files.\n# See the latter for an explanation.\n#\n# Freetype-Go is derived from Freetype, which is written in C. The latter\n# is copyright 1996-2010 David Turner, Robert Wilhelm, and Werner Lemberg.\n\n# Names should be added to this file as\n#\tName or Organization <email address>\n# The email address is not required for organizations.\n\n# Please keep the list sorted.\n\nGoogle Inc.\nJeff R. Allen <jra@nella.org>\nMaksim Kochkin <maxxarts@gmail.com>\nMichael Fogleman <fogleman@gmail.com>\nRémy Oudompheng <oudomphe@phare.normalesup.org>\nRoger Peppe <rogpeppe@gmail.com>\nSteven Edwards <steven@stephenwithav.com>\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/CONTRIBUTORS",
    "content": "# This is the official list of people who can contribute\n# (and typically have contributed) code to the Freetype-Go repository.\n# The AUTHORS file lists the copyright holders; this file\n# lists people.  For example, Google employees are listed here\n# but not in AUTHORS, because Google holds the copyright.\n#\n# The submission process automatically checks to make sure\n# that people submitting code are listed in this file (by email address).\n#\n# Names should be added to this file only after verifying that\n# the individual or the individual's organization has agreed to\n# the appropriate Contributor License Agreement, found here:\n#\n#     http://code.google.com/legal/individual-cla-v1.0.html\n#     http://code.google.com/legal/corporate-cla-v1.0.html\n#\n# The agreement for individuals can be filled out on the web.\n#\n# When adding J Random Contributor's name to this file,\n# either J's name or J's organization's name should be\n# added to the AUTHORS file, depending on whether the\n# individual or corporate CLA was used.\n\n# Names should be added to this file like so:\n#     Name <email address>\n\n# Please keep the list sorted.\n\nAndrew Gerrand <adg@golang.org>\nJeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>\nMaksim Kochkin <maxxarts@gmail.com>\nMichael Fogleman <fogleman@gmail.com>\nNigel Tao <nigeltao@golang.org>\nRémy Oudompheng <oudomphe@phare.normalesup.org> <remyoudompheng@gmail.com>\nRob Pike <r@golang.org>\nRoger Peppe <rogpeppe@gmail.com>\nRuss Cox <rsc@golang.org>\nSteven Edwards <steven@stephenwithav.com>\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/LICENSE",
    "content": "Use of the Freetype-Go software is subject to your choice of exactly one of\nthe following two licenses:\n  * The FreeType License, which is similar to the original BSD license with\n    an advertising clause, or\n  * The GNU General Public License (GPL), version 2 or later.\n\nThe text of these licenses are available in the licenses/ftl.txt and the\nlicenses/gpl.txt files respectively. They are also available at\nhttp://freetype.sourceforge.net/license.html\n\nThe Luxi fonts in the testdata directory are licensed separately. See the\ntestdata/COPYING file for details.\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/README",
    "content": "The Freetype font rasterizer in the Go programming language.\n\nTo download and install from source:\n$ go get github.com/golang/freetype\n\nIt is an incomplete port:\n  * It only supports TrueType fonts, and not Type 1 fonts nor bitmap fonts.\n  * It only supports the Unicode encoding.\n\nThere are also some implementation differences:\n  * It uses a 26.6 fixed point co-ordinate system everywhere internally,\n    as opposed to the original Freetype's mix of 26.6 (or 10.6 for 16-bit\n    systems) in some places, and 24.8 in the \"smooth\" rasterizer.\n\nFreetype-Go is derived from Freetype, which is written in C. Freetype is\ncopyright 1996-2010 David Turner, Robert Wilhelm, and Werner Lemberg.\nFreetype-Go is copyright The Freetype-Go Authors, who are listed in the\nAUTHORS file.\n\nUnless otherwise noted, the Freetype-Go source files are distributed\nunder the BSD-style license found in the LICENSE file.\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/freetype.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\n// The freetype package provides a convenient API to draw text onto an image.\n// Use the freetype/raster and freetype/truetype packages for lower level\n// control over rasterization and TrueType parsing.\npackage freetype // import \"github.com/golang/freetype\"\n\nimport (\n\t\"errors\"\n\t\"image\"\n\t\"image/draw\"\n\n\t\"github.com/golang/freetype/raster\"\n\t\"github.com/golang/freetype/truetype\"\n\t\"golang.org/x/image/font\"\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// These constants determine the size of the glyph cache. The cache is keyed\n// primarily by the glyph index modulo nGlyphs, and secondarily by sub-pixel\n// position for the mask image. Sub-pixel positions are quantized to\n// nXFractions possible values in both the x and y directions.\nconst (\n\tnGlyphs     = 256\n\tnXFractions = 4\n\tnYFractions = 1\n)\n\n// An entry in the glyph cache is keyed explicitly by the glyph index and\n// implicitly by the quantized x and y fractional offset. It maps to a mask\n// image and an offset.\ntype cacheEntry struct {\n\tvalid        bool\n\tglyph        truetype.Index\n\tadvanceWidth fixed.Int26_6\n\tmask         *image.Alpha\n\toffset       image.Point\n}\n\n// ParseFont just calls the Parse function from the freetype/truetype package.\n// It is provided here so that code that imports this package doesn't need\n// to also include the freetype/truetype package.\nfunc ParseFont(b []byte) (*truetype.Font, error) {\n\treturn truetype.Parse(b)\n}\n\n// Pt converts from a co-ordinate pair measured in pixels to a fixed.Point26_6\n// co-ordinate pair measured in fixed.Int26_6 units.\nfunc Pt(x, y int) fixed.Point26_6 {\n\treturn fixed.Point26_6{\n\t\tX: fixed.Int26_6(x << 6),\n\t\tY: fixed.Int26_6(y << 6),\n\t}\n}\n\n// A Context holds the state for drawing text in a given font and size.\ntype Context struct {\n\tr        *raster.Rasterizer\n\tf        *truetype.Font\n\tglyphBuf truetype.GlyphBuf\n\t// clip is the clip rectangle for drawing.\n\tclip image.Rectangle\n\t// dst and src are the destination and source images for drawing.\n\tdst draw.Image\n\tsrc image.Image\n\t// fontSize and dpi are used to calculate scale. scale is the number of\n\t// 26.6 fixed point units in 1 em. hinting is the hinting policy.\n\tfontSize, dpi float64\n\tscale         fixed.Int26_6\n\thinting       font.Hinting\n\t// cache is the glyph cache.\n\tcache [nGlyphs * nXFractions * nYFractions]cacheEntry\n}\n\n// PointToFixed converts the given number of points (as in \"a 12 point font\")\n// into a 26.6 fixed point number of pixels.\nfunc (c *Context) PointToFixed(x float64) fixed.Int26_6 {\n\treturn fixed.Int26_6(x * float64(c.dpi) * (64.0 / 72.0))\n}\n\n// drawContour draws the given closed contour with the given offset.\nfunc (c *Context) drawContour(ps []truetype.Point, dx, dy fixed.Int26_6) {\n\tif len(ps) == 0 {\n\t\treturn\n\t}\n\n\t// The low bit of each point's Flags value is whether the point is on the\n\t// curve. Truetype fonts only have quadratic Bézier curves, not cubics.\n\t// Thus, two consecutive off-curve points imply an on-curve point in the\n\t// middle of those two.\n\t//\n\t// See http://chanae.walon.org/pub/ttf/ttf_glyphs.htm for more details.\n\n\t// ps[0] is a truetype.Point measured in FUnits and positive Y going\n\t// upwards. start is the same thing measured in fixed point units and\n\t// positive Y going downwards, and offset by (dx, dy).\n\tstart := fixed.Point26_6{\n\t\tX: dx + ps[0].X,\n\t\tY: dy - ps[0].Y,\n\t}\n\tothers := []truetype.Point(nil)\n\tif ps[0].Flags&0x01 != 0 {\n\t\tothers = ps[1:]\n\t} else {\n\t\tlast := fixed.Point26_6{\n\t\t\tX: dx + ps[len(ps)-1].X,\n\t\t\tY: dy - ps[len(ps)-1].Y,\n\t\t}\n\t\tif ps[len(ps)-1].Flags&0x01 != 0 {\n\t\t\tstart = last\n\t\t\tothers = ps[:len(ps)-1]\n\t\t} else {\n\t\t\tstart = fixed.Point26_6{\n\t\t\t\tX: (start.X + last.X) / 2,\n\t\t\t\tY: (start.Y + last.Y) / 2,\n\t\t\t}\n\t\t\tothers = ps\n\t\t}\n\t}\n\tc.r.Start(start)\n\tq0, on0 := start, true\n\tfor _, p := range others {\n\t\tq := fixed.Point26_6{\n\t\t\tX: dx + p.X,\n\t\t\tY: dy - p.Y,\n\t\t}\n\t\ton := p.Flags&0x01 != 0\n\t\tif on {\n\t\t\tif on0 {\n\t\t\t\tc.r.Add1(q)\n\t\t\t} else {\n\t\t\t\tc.r.Add2(q0, q)\n\t\t\t}\n\t\t} else {\n\t\t\tif on0 {\n\t\t\t\t// No-op.\n\t\t\t} else {\n\t\t\t\tmid := fixed.Point26_6{\n\t\t\t\t\tX: (q0.X + q.X) / 2,\n\t\t\t\t\tY: (q0.Y + q.Y) / 2,\n\t\t\t\t}\n\t\t\t\tc.r.Add2(q0, mid)\n\t\t\t}\n\t\t}\n\t\tq0, on0 = q, on\n\t}\n\t// Close the curve.\n\tif on0 {\n\t\tc.r.Add1(start)\n\t} else {\n\t\tc.r.Add2(q0, start)\n\t}\n}\n\n// rasterize returns the advance width, glyph mask and integer-pixel offset\n// to render the given glyph at the given sub-pixel offsets.\n// The 26.6 fixed point arguments fx and fy must be in the range [0, 1).\nfunc (c *Context) rasterize(glyph truetype.Index, fx, fy fixed.Int26_6) (\n\tfixed.Int26_6, *image.Alpha, image.Point, error) {\n\n\tif err := c.glyphBuf.Load(c.f, c.scale, glyph, c.hinting); err != nil {\n\t\treturn 0, nil, image.Point{}, err\n\t}\n\t// Calculate the integer-pixel bounds for the glyph.\n\txmin := int(fx+c.glyphBuf.Bounds.Min.X) >> 6\n\tymin := int(fy-c.glyphBuf.Bounds.Max.Y) >> 6\n\txmax := int(fx+c.glyphBuf.Bounds.Max.X+0x3f) >> 6\n\tymax := int(fy-c.glyphBuf.Bounds.Min.Y+0x3f) >> 6\n\tif xmin > xmax || ymin > ymax {\n\t\treturn 0, nil, image.Point{}, errors.New(\"freetype: negative sized glyph\")\n\t}\n\t// A TrueType's glyph's nodes can have negative co-ordinates, but the\n\t// rasterizer clips anything left of x=0 or above y=0. xmin and ymin are\n\t// the pixel offsets, based on the font's FUnit metrics, that let a\n\t// negative co-ordinate in TrueType space be non-negative in rasterizer\n\t// space. xmin and ymin are typically <= 0.\n\tfx -= fixed.Int26_6(xmin << 6)\n\tfy -= fixed.Int26_6(ymin << 6)\n\t// Rasterize the glyph's vectors.\n\tc.r.Clear()\n\te0 := 0\n\tfor _, e1 := range c.glyphBuf.Ends {\n\t\tc.drawContour(c.glyphBuf.Points[e0:e1], fx, fy)\n\t\te0 = e1\n\t}\n\ta := image.NewAlpha(image.Rect(0, 0, xmax-xmin, ymax-ymin))\n\tc.r.Rasterize(raster.NewAlphaSrcPainter(a))\n\treturn c.glyphBuf.AdvanceWidth, a, image.Point{xmin, ymin}, nil\n}\n\n// glyph returns the advance width, glyph mask and integer-pixel offset to\n// render the given glyph at the given sub-pixel point. It is a cache for the\n// rasterize method. Unlike rasterize, p's co-ordinates do not have to be in\n// the range [0, 1).\nfunc (c *Context) glyph(glyph truetype.Index, p fixed.Point26_6) (\n\tfixed.Int26_6, *image.Alpha, image.Point, error) {\n\n\t// Split p.X and p.Y into their integer and fractional parts.\n\tix, fx := int(p.X>>6), p.X&0x3f\n\tiy, fy := int(p.Y>>6), p.Y&0x3f\n\t// Calculate the index t into the cache array.\n\ttg := int(glyph) % nGlyphs\n\ttx := int(fx) / (64 / nXFractions)\n\tty := int(fy) / (64 / nYFractions)\n\tt := ((tg*nXFractions)+tx)*nYFractions + ty\n\t// Check for a cache hit.\n\tif e := c.cache[t]; e.valid && e.glyph == glyph {\n\t\treturn e.advanceWidth, e.mask, e.offset.Add(image.Point{ix, iy}), nil\n\t}\n\t// Rasterize the glyph and put the result into the cache.\n\tadvanceWidth, mask, offset, err := c.rasterize(glyph, fx, fy)\n\tif err != nil {\n\t\treturn 0, nil, image.Point{}, err\n\t}\n\tc.cache[t] = cacheEntry{true, glyph, advanceWidth, mask, offset}\n\treturn advanceWidth, mask, offset.Add(image.Point{ix, iy}), nil\n}\n\n// DrawString draws s at p and returns p advanced by the text extent. The text\n// is placed so that the left edge of the em square of the first character of s\n// and the baseline intersect at p. The majority of the affected pixels will be\n// above and to the right of the point, but some may be below or to the left.\n// For example, drawing a string that starts with a 'J' in an italic font may\n// affect pixels below and left of the point.\n//\n// p is a fixed.Point26_6 and can therefore represent sub-pixel positions.\nfunc (c *Context) DrawString(s string, p fixed.Point26_6) (fixed.Point26_6, error) {\n\tif c.f == nil {\n\t\treturn fixed.Point26_6{}, errors.New(\"freetype: DrawText called with a nil font\")\n\t}\n\tprev, hasPrev := truetype.Index(0), false\n\tfor _, rune := range s {\n\t\tindex := c.f.Index(rune)\n\t\tif hasPrev {\n\t\t\tkern := c.f.Kern(c.scale, prev, index)\n\t\t\tif c.hinting != font.HintingNone {\n\t\t\t\tkern = (kern + 32) &^ 63\n\t\t\t}\n\t\t\tp.X += kern\n\t\t}\n\t\tadvanceWidth, mask, offset, err := c.glyph(index, p)\n\t\tif err != nil {\n\t\t\treturn fixed.Point26_6{}, err\n\t\t}\n\t\tp.X += advanceWidth\n\t\tglyphRect := mask.Bounds().Add(offset)\n\t\tdr := c.clip.Intersect(glyphRect)\n\t\tif !dr.Empty() {\n\t\t\tmp := image.Point{0, dr.Min.Y - glyphRect.Min.Y}\n\t\t\tdraw.DrawMask(c.dst, dr, c.src, image.ZP, mask, mp, draw.Over)\n\t\t}\n\t\tprev, hasPrev = index, true\n\t}\n\treturn p, nil\n}\n\n// recalc recalculates scale and bounds values from the font size, screen\n// resolution and font metrics, and invalidates the glyph cache.\nfunc (c *Context) recalc() {\n\tc.scale = fixed.Int26_6(c.fontSize * c.dpi * (64.0 / 72.0))\n\tif c.f == nil {\n\t\tc.r.SetBounds(0, 0)\n\t} else {\n\t\t// Set the rasterizer's bounds to be big enough to handle the largest glyph.\n\t\tb := c.f.Bounds(c.scale)\n\t\txmin := +int(b.Min.X) >> 6\n\t\tymin := -int(b.Max.Y) >> 6\n\t\txmax := +int(b.Max.X+63) >> 6\n\t\tymax := -int(b.Min.Y-63) >> 6\n\t\tc.r.SetBounds(xmax-xmin, ymax-ymin)\n\t}\n\tfor i := range c.cache {\n\t\tc.cache[i] = cacheEntry{}\n\t}\n}\n\n// SetDPI sets the screen resolution in dots per inch.\nfunc (c *Context) SetDPI(dpi float64) {\n\tif c.dpi == dpi {\n\t\treturn\n\t}\n\tc.dpi = dpi\n\tc.recalc()\n}\n\n// SetFont sets the font used to draw text.\nfunc (c *Context) SetFont(f *truetype.Font) {\n\tif c.f == f {\n\t\treturn\n\t}\n\tc.f = f\n\tc.recalc()\n}\n\n// SetFontSize sets the font size in points (as in \"a 12 point font\").\nfunc (c *Context) SetFontSize(fontSize float64) {\n\tif c.fontSize == fontSize {\n\t\treturn\n\t}\n\tc.fontSize = fontSize\n\tc.recalc()\n}\n\n// SetHinting sets the hinting policy.\nfunc (c *Context) SetHinting(hinting font.Hinting) {\n\tc.hinting = hinting\n\tfor i := range c.cache {\n\t\tc.cache[i] = cacheEntry{}\n\t}\n}\n\n// SetDst sets the destination image for draw operations.\nfunc (c *Context) SetDst(dst draw.Image) {\n\tc.dst = dst\n}\n\n// SetSrc sets the source image for draw operations. This is typically an\n// image.Uniform.\nfunc (c *Context) SetSrc(src image.Image) {\n\tc.src = src\n}\n\n// SetClip sets the clip rectangle for drawing.\nfunc (c *Context) SetClip(clip image.Rectangle) {\n\tc.clip = clip\n}\n\n// TODO(nigeltao): implement Context.SetGamma.\n\n// NewContext creates a new Context.\nfunc NewContext() *Context {\n\treturn &Context{\n\t\tr:        raster.NewRasterizer(0, 0),\n\t\tfontSize: 12,\n\t\tdpi:      72,\n\t\tscale:    12 << 6,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/raster/geom.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage raster\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// maxAbs returns the maximum of abs(a) and abs(b).\nfunc maxAbs(a, b fixed.Int26_6) fixed.Int26_6 {\n\tif a < 0 {\n\t\ta = -a\n\t}\n\tif b < 0 {\n\t\tb = -b\n\t}\n\tif a < b {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// pNeg returns the vector -p, or equivalently p rotated by 180 degrees.\nfunc pNeg(p fixed.Point26_6) fixed.Point26_6 {\n\treturn fixed.Point26_6{-p.X, -p.Y}\n}\n\n// pDot returns the dot product p·q.\nfunc pDot(p fixed.Point26_6, q fixed.Point26_6) fixed.Int52_12 {\n\tpx, py := int64(p.X), int64(p.Y)\n\tqx, qy := int64(q.X), int64(q.Y)\n\treturn fixed.Int52_12(px*qx + py*qy)\n}\n\n// pLen returns the length of the vector p.\nfunc pLen(p fixed.Point26_6) fixed.Int26_6 {\n\t// TODO(nigeltao): use fixed point math.\n\tx := float64(p.X)\n\ty := float64(p.Y)\n\treturn fixed.Int26_6(math.Sqrt(x*x + y*y))\n}\n\n// pNorm returns the vector p normalized to the given length, or zero if p is\n// degenerate.\nfunc pNorm(p fixed.Point26_6, length fixed.Int26_6) fixed.Point26_6 {\n\td := pLen(p)\n\tif d == 0 {\n\t\treturn fixed.Point26_6{}\n\t}\n\ts, t := int64(length), int64(d)\n\tx := int64(p.X) * s / t\n\ty := int64(p.Y) * s / t\n\treturn fixed.Point26_6{fixed.Int26_6(x), fixed.Int26_6(y)}\n}\n\n// pRot45CW returns the vector p rotated clockwise by 45 degrees.\n//\n// Note that the Y-axis grows downwards, so {1, 0}.Rot45CW is {1/√2, 1/√2}.\nfunc pRot45CW(p fixed.Point26_6) fixed.Point26_6 {\n\t// 181/256 is approximately 1/√2, or sin(π/4).\n\tpx, py := int64(p.X), int64(p.Y)\n\tqx := (+px - py) * 181 / 256\n\tqy := (+px + py) * 181 / 256\n\treturn fixed.Point26_6{fixed.Int26_6(qx), fixed.Int26_6(qy)}\n}\n\n// pRot90CW returns the vector p rotated clockwise by 90 degrees.\n//\n// Note that the Y-axis grows downwards, so {1, 0}.Rot90CW is {0, 1}.\nfunc pRot90CW(p fixed.Point26_6) fixed.Point26_6 {\n\treturn fixed.Point26_6{-p.Y, p.X}\n}\n\n// pRot135CW returns the vector p rotated clockwise by 135 degrees.\n//\n// Note that the Y-axis grows downwards, so {1, 0}.Rot135CW is {-1/√2, 1/√2}.\nfunc pRot135CW(p fixed.Point26_6) fixed.Point26_6 {\n\t// 181/256 is approximately 1/√2, or sin(π/4).\n\tpx, py := int64(p.X), int64(p.Y)\n\tqx := (-px - py) * 181 / 256\n\tqy := (+px - py) * 181 / 256\n\treturn fixed.Point26_6{fixed.Int26_6(qx), fixed.Int26_6(qy)}\n}\n\n// pRot45CCW returns the vector p rotated counter-clockwise by 45 degrees.\n//\n// Note that the Y-axis grows downwards, so {1, 0}.Rot45CCW is {1/√2, -1/√2}.\nfunc pRot45CCW(p fixed.Point26_6) fixed.Point26_6 {\n\t// 181/256 is approximately 1/√2, or sin(π/4).\n\tpx, py := int64(p.X), int64(p.Y)\n\tqx := (+px + py) * 181 / 256\n\tqy := (-px + py) * 181 / 256\n\treturn fixed.Point26_6{fixed.Int26_6(qx), fixed.Int26_6(qy)}\n}\n\n// pRot90CCW returns the vector p rotated counter-clockwise by 90 degrees.\n//\n// Note that the Y-axis grows downwards, so {1, 0}.Rot90CCW is {0, -1}.\nfunc pRot90CCW(p fixed.Point26_6) fixed.Point26_6 {\n\treturn fixed.Point26_6{p.Y, -p.X}\n}\n\n// pRot135CCW returns the vector p rotated counter-clockwise by 135 degrees.\n//\n// Note that the Y-axis grows downwards, so {1, 0}.Rot135CCW is {-1/√2, -1/√2}.\nfunc pRot135CCW(p fixed.Point26_6) fixed.Point26_6 {\n\t// 181/256 is approximately 1/√2, or sin(π/4).\n\tpx, py := int64(p.X), int64(p.Y)\n\tqx := (-px + py) * 181 / 256\n\tqy := (-px - py) * 181 / 256\n\treturn fixed.Point26_6{fixed.Int26_6(qx), fixed.Int26_6(qy)}\n}\n\n// An Adder accumulates points on a curve.\ntype Adder interface {\n\t// Start starts a new curve at the given point.\n\tStart(a fixed.Point26_6)\n\t// Add1 adds a linear segment to the current curve.\n\tAdd1(b fixed.Point26_6)\n\t// Add2 adds a quadratic segment to the current curve.\n\tAdd2(b, c fixed.Point26_6)\n\t// Add3 adds a cubic segment to the current curve.\n\tAdd3(b, c, d fixed.Point26_6)\n}\n\n// A Path is a sequence of curves, and a curve is a start point followed by a\n// sequence of linear, quadratic or cubic segments.\ntype Path []fixed.Int26_6\n\n// String returns a human-readable representation of a Path.\nfunc (p Path) String() string {\n\ts := \"\"\n\tfor i := 0; i < len(p); {\n\t\tif i != 0 {\n\t\t\ts += \" \"\n\t\t}\n\t\tswitch p[i] {\n\t\tcase 0:\n\t\t\ts += \"S0\" + fmt.Sprint([]fixed.Int26_6(p[i+1:i+3]))\n\t\t\ti += 4\n\t\tcase 1:\n\t\t\ts += \"A1\" + fmt.Sprint([]fixed.Int26_6(p[i+1:i+3]))\n\t\t\ti += 4\n\t\tcase 2:\n\t\t\ts += \"A2\" + fmt.Sprint([]fixed.Int26_6(p[i+1:i+5]))\n\t\t\ti += 6\n\t\tcase 3:\n\t\t\ts += \"A3\" + fmt.Sprint([]fixed.Int26_6(p[i+1:i+7]))\n\t\t\ti += 8\n\t\tdefault:\n\t\t\tpanic(\"freetype/raster: bad path\")\n\t\t}\n\t}\n\treturn s\n}\n\n// Clear cancels any previous calls to p.Start or p.AddXxx.\nfunc (p *Path) Clear() {\n\t*p = (*p)[:0]\n}\n\n// Start starts a new curve at the given point.\nfunc (p *Path) Start(a fixed.Point26_6) {\n\t*p = append(*p, 0, a.X, a.Y, 0)\n}\n\n// Add1 adds a linear segment to the current curve.\nfunc (p *Path) Add1(b fixed.Point26_6) {\n\t*p = append(*p, 1, b.X, b.Y, 1)\n}\n\n// Add2 adds a quadratic segment to the current curve.\nfunc (p *Path) Add2(b, c fixed.Point26_6) {\n\t*p = append(*p, 2, b.X, b.Y, c.X, c.Y, 2)\n}\n\n// Add3 adds a cubic segment to the current curve.\nfunc (p *Path) Add3(b, c, d fixed.Point26_6) {\n\t*p = append(*p, 3, b.X, b.Y, c.X, c.Y, d.X, d.Y, 3)\n}\n\n// AddPath adds the Path q to p.\nfunc (p *Path) AddPath(q Path) {\n\t*p = append(*p, q...)\n}\n\n// AddStroke adds a stroked Path.\nfunc (p *Path) AddStroke(q Path, width fixed.Int26_6, cr Capper, jr Joiner) {\n\tStroke(p, q, width, cr, jr)\n}\n\n// firstPoint returns the first point in a non-empty Path.\nfunc (p Path) firstPoint() fixed.Point26_6 {\n\treturn fixed.Point26_6{p[1], p[2]}\n}\n\n// lastPoint returns the last point in a non-empty Path.\nfunc (p Path) lastPoint() fixed.Point26_6 {\n\treturn fixed.Point26_6{p[len(p)-3], p[len(p)-2]}\n}\n\n// addPathReversed adds q reversed to p.\n// For example, if q consists of a linear segment from A to B followed by a\n// quadratic segment from B to C to D, then the values of q looks like:\n// index: 01234567890123\n// value: 0AA01BB12CCDD2\n// So, when adding q backwards to p, we want to Add2(C, B) followed by Add1(A).\nfunc addPathReversed(p Adder, q Path) {\n\tif len(q) == 0 {\n\t\treturn\n\t}\n\ti := len(q) - 1\n\tfor {\n\t\tswitch q[i] {\n\t\tcase 0:\n\t\t\treturn\n\t\tcase 1:\n\t\t\ti -= 4\n\t\t\tp.Add1(\n\t\t\t\tfixed.Point26_6{q[i-2], q[i-1]},\n\t\t\t)\n\t\tcase 2:\n\t\t\ti -= 6\n\t\t\tp.Add2(\n\t\t\t\tfixed.Point26_6{q[i+2], q[i+3]},\n\t\t\t\tfixed.Point26_6{q[i-2], q[i-1]},\n\t\t\t)\n\t\tcase 3:\n\t\t\ti -= 8\n\t\t\tp.Add3(\n\t\t\t\tfixed.Point26_6{q[i+4], q[i+5]},\n\t\t\t\tfixed.Point26_6{q[i+2], q[i+3]},\n\t\t\t\tfixed.Point26_6{q[i-2], q[i-1]},\n\t\t\t)\n\t\tdefault:\n\t\t\tpanic(\"freetype/raster: bad path\")\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/raster/paint.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage raster\n\nimport (\n\t\"image\"\n\t\"image/color\"\n\t\"image/draw\"\n\t\"math\"\n)\n\n// A Span is a horizontal segment of pixels with constant alpha. X0 is an\n// inclusive bound and X1 is exclusive, the same as for slices. A fully opaque\n// Span has Alpha == 0xffff.\ntype Span struct {\n\tY, X0, X1 int\n\tAlpha     uint32\n}\n\n// A Painter knows how to paint a batch of Spans. Rasterization may involve\n// Painting multiple batches, and done will be true for the final batch. The\n// Spans' Y values are monotonically increasing during a rasterization. Paint\n// may use all of ss as scratch space during the call.\ntype Painter interface {\n\tPaint(ss []Span, done bool)\n}\n\n// The PainterFunc type adapts an ordinary function to the Painter interface.\ntype PainterFunc func(ss []Span, done bool)\n\n// Paint just delegates the call to f.\nfunc (f PainterFunc) Paint(ss []Span, done bool) { f(ss, done) }\n\n// An AlphaOverPainter is a Painter that paints Spans onto a *image.Alpha using\n// the Over Porter-Duff composition operator.\ntype AlphaOverPainter struct {\n\tImage *image.Alpha\n}\n\n// Paint satisfies the Painter interface.\nfunc (r AlphaOverPainter) Paint(ss []Span, done bool) {\n\tb := r.Image.Bounds()\n\tfor _, s := range ss {\n\t\tif s.Y < b.Min.Y {\n\t\t\tcontinue\n\t\t}\n\t\tif s.Y >= b.Max.Y {\n\t\t\treturn\n\t\t}\n\t\tif s.X0 < b.Min.X {\n\t\t\ts.X0 = b.Min.X\n\t\t}\n\t\tif s.X1 > b.Max.X {\n\t\t\ts.X1 = b.Max.X\n\t\t}\n\t\tif s.X0 >= s.X1 {\n\t\t\tcontinue\n\t\t}\n\t\tbase := (s.Y-r.Image.Rect.Min.Y)*r.Image.Stride - r.Image.Rect.Min.X\n\t\tp := r.Image.Pix[base+s.X0 : base+s.X1]\n\t\ta := int(s.Alpha >> 8)\n\t\tfor i, c := range p {\n\t\t\tv := int(c)\n\t\t\tp[i] = uint8((v*255 + (255-v)*a) / 255)\n\t\t}\n\t}\n}\n\n// NewAlphaOverPainter creates a new AlphaOverPainter for the given image.\nfunc NewAlphaOverPainter(m *image.Alpha) AlphaOverPainter {\n\treturn AlphaOverPainter{m}\n}\n\n// An AlphaSrcPainter is a Painter that paints Spans onto a *image.Alpha using\n// the Src Porter-Duff composition operator.\ntype AlphaSrcPainter struct {\n\tImage *image.Alpha\n}\n\n// Paint satisfies the Painter interface.\nfunc (r AlphaSrcPainter) Paint(ss []Span, done bool) {\n\tb := r.Image.Bounds()\n\tfor _, s := range ss {\n\t\tif s.Y < b.Min.Y {\n\t\t\tcontinue\n\t\t}\n\t\tif s.Y >= b.Max.Y {\n\t\t\treturn\n\t\t}\n\t\tif s.X0 < b.Min.X {\n\t\t\ts.X0 = b.Min.X\n\t\t}\n\t\tif s.X1 > b.Max.X {\n\t\t\ts.X1 = b.Max.X\n\t\t}\n\t\tif s.X0 >= s.X1 {\n\t\t\tcontinue\n\t\t}\n\t\tbase := (s.Y-r.Image.Rect.Min.Y)*r.Image.Stride - r.Image.Rect.Min.X\n\t\tp := r.Image.Pix[base+s.X0 : base+s.X1]\n\t\tcolor := uint8(s.Alpha >> 8)\n\t\tfor i := range p {\n\t\t\tp[i] = color\n\t\t}\n\t}\n}\n\n// NewAlphaSrcPainter creates a new AlphaSrcPainter for the given image.\nfunc NewAlphaSrcPainter(m *image.Alpha) AlphaSrcPainter {\n\treturn AlphaSrcPainter{m}\n}\n\n// An RGBAPainter is a Painter that paints Spans onto a *image.RGBA.\ntype RGBAPainter struct {\n\t// Image is the image to compose onto.\n\tImage *image.RGBA\n\t// Op is the Porter-Duff composition operator.\n\tOp draw.Op\n\t// cr, cg, cb and ca are the 16-bit color to paint the spans.\n\tcr, cg, cb, ca uint32\n}\n\n// Paint satisfies the Painter interface.\nfunc (r *RGBAPainter) Paint(ss []Span, done bool) {\n\tb := r.Image.Bounds()\n\tfor _, s := range ss {\n\t\tif s.Y < b.Min.Y {\n\t\t\tcontinue\n\t\t}\n\t\tif s.Y >= b.Max.Y {\n\t\t\treturn\n\t\t}\n\t\tif s.X0 < b.Min.X {\n\t\t\ts.X0 = b.Min.X\n\t\t}\n\t\tif s.X1 > b.Max.X {\n\t\t\ts.X1 = b.Max.X\n\t\t}\n\t\tif s.X0 >= s.X1 {\n\t\t\tcontinue\n\t\t}\n\t\t// This code mimics drawGlyphOver in $GOROOT/src/image/draw/draw.go.\n\t\tma := s.Alpha\n\t\tconst m = 1<<16 - 1\n\t\ti0 := (s.Y-r.Image.Rect.Min.Y)*r.Image.Stride + (s.X0-r.Image.Rect.Min.X)*4\n\t\ti1 := i0 + (s.X1-s.X0)*4\n\t\tif r.Op == draw.Over {\n\t\t\tfor i := i0; i < i1; i += 4 {\n\t\t\t\tdr := uint32(r.Image.Pix[i+0])\n\t\t\t\tdg := uint32(r.Image.Pix[i+1])\n\t\t\t\tdb := uint32(r.Image.Pix[i+2])\n\t\t\t\tda := uint32(r.Image.Pix[i+3])\n\t\t\t\ta := (m - (r.ca * ma / m)) * 0x101\n\t\t\t\tr.Image.Pix[i+0] = uint8((dr*a + r.cr*ma) / m >> 8)\n\t\t\t\tr.Image.Pix[i+1] = uint8((dg*a + r.cg*ma) / m >> 8)\n\t\t\t\tr.Image.Pix[i+2] = uint8((db*a + r.cb*ma) / m >> 8)\n\t\t\t\tr.Image.Pix[i+3] = uint8((da*a + r.ca*ma) / m >> 8)\n\t\t\t}\n\t\t} else {\n\t\t\tfor i := i0; i < i1; i += 4 {\n\t\t\t\tr.Image.Pix[i+0] = uint8(r.cr * ma / m >> 8)\n\t\t\t\tr.Image.Pix[i+1] = uint8(r.cg * ma / m >> 8)\n\t\t\t\tr.Image.Pix[i+2] = uint8(r.cb * ma / m >> 8)\n\t\t\t\tr.Image.Pix[i+3] = uint8(r.ca * ma / m >> 8)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// SetColor sets the color to paint the spans.\nfunc (r *RGBAPainter) SetColor(c color.Color) {\n\tr.cr, r.cg, r.cb, r.ca = c.RGBA()\n}\n\n// NewRGBAPainter creates a new RGBAPainter for the given image.\nfunc NewRGBAPainter(m *image.RGBA) *RGBAPainter {\n\treturn &RGBAPainter{Image: m}\n}\n\n// A MonochromePainter wraps another Painter, quantizing each Span's alpha to\n// be either fully opaque or fully transparent.\ntype MonochromePainter struct {\n\tPainter   Painter\n\ty, x0, x1 int\n}\n\n// Paint delegates to the wrapped Painter after quantizing each Span's alpha\n// value and merging adjacent fully opaque Spans.\nfunc (m *MonochromePainter) Paint(ss []Span, done bool) {\n\t// We compact the ss slice, discarding any Spans whose alpha quantizes to zero.\n\tj := 0\n\tfor _, s := range ss {\n\t\tif s.Alpha >= 0x8000 {\n\t\t\tif m.y == s.Y && m.x1 == s.X0 {\n\t\t\t\tm.x1 = s.X1\n\t\t\t} else {\n\t\t\t\tss[j] = Span{m.y, m.x0, m.x1, 1<<16 - 1}\n\t\t\t\tj++\n\t\t\t\tm.y, m.x0, m.x1 = s.Y, s.X0, s.X1\n\t\t\t}\n\t\t}\n\t}\n\tif done {\n\t\t// Flush the accumulated Span.\n\t\tfinalSpan := Span{m.y, m.x0, m.x1, 1<<16 - 1}\n\t\tif j < len(ss) {\n\t\t\tss[j] = finalSpan\n\t\t\tj++\n\t\t\tm.Painter.Paint(ss[:j], true)\n\t\t} else if j == len(ss) {\n\t\t\tm.Painter.Paint(ss, false)\n\t\t\tif cap(ss) > 0 {\n\t\t\t\tss = ss[:1]\n\t\t\t} else {\n\t\t\t\tss = make([]Span, 1)\n\t\t\t}\n\t\t\tss[0] = finalSpan\n\t\t\tm.Painter.Paint(ss, true)\n\t\t} else {\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\t\t// Reset the accumulator, so that this Painter can be re-used.\n\t\tm.y, m.x0, m.x1 = 0, 0, 0\n\t} else {\n\t\tm.Painter.Paint(ss[:j], false)\n\t}\n}\n\n// NewMonochromePainter creates a new MonochromePainter that wraps the given\n// Painter.\nfunc NewMonochromePainter(p Painter) *MonochromePainter {\n\treturn &MonochromePainter{Painter: p}\n}\n\n// A GammaCorrectionPainter wraps another Painter, performing gamma-correction\n// on each Span's alpha value.\ntype GammaCorrectionPainter struct {\n\t// Painter is the wrapped Painter.\n\tPainter Painter\n\t// a is the precomputed alpha values for linear interpolation, with fully\n\t// opaque == 0xffff.\n\ta [256]uint16\n\t// gammaIsOne is whether gamma correction is a no-op.\n\tgammaIsOne bool\n}\n\n// Paint delegates to the wrapped Painter after performing gamma-correction on\n// each Span.\nfunc (g *GammaCorrectionPainter) Paint(ss []Span, done bool) {\n\tif !g.gammaIsOne {\n\t\tconst n = 0x101\n\t\tfor i, s := range ss {\n\t\t\tif s.Alpha == 0 || s.Alpha == 0xffff {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp, q := s.Alpha/n, s.Alpha%n\n\t\t\t// The resultant alpha is a linear interpolation of g.a[p] and g.a[p+1].\n\t\t\ta := uint32(g.a[p])*(n-q) + uint32(g.a[p+1])*q\n\t\t\tss[i].Alpha = (a + n/2) / n\n\t\t}\n\t}\n\tg.Painter.Paint(ss, done)\n}\n\n// SetGamma sets the gamma value.\nfunc (g *GammaCorrectionPainter) SetGamma(gamma float64) {\n\tg.gammaIsOne = gamma == 1\n\tif g.gammaIsOne {\n\t\treturn\n\t}\n\tfor i := 0; i < 256; i++ {\n\t\ta := float64(i) / 0xff\n\t\ta = math.Pow(a, gamma)\n\t\tg.a[i] = uint16(0xffff * a)\n\t}\n}\n\n// NewGammaCorrectionPainter creates a new GammaCorrectionPainter that wraps\n// the given Painter.\nfunc NewGammaCorrectionPainter(p Painter, gamma float64) *GammaCorrectionPainter {\n\tg := &GammaCorrectionPainter{Painter: p}\n\tg.SetGamma(gamma)\n\treturn g\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/raster/raster.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\n// Package raster provides an anti-aliasing 2-D rasterizer.\n//\n// It is part of the larger Freetype suite of font-related packages, but the\n// raster package is not specific to font rasterization, and can be used\n// standalone without any other Freetype package.\n//\n// Rasterization is done by the same area/coverage accumulation algorithm as\n// the Freetype \"smooth\" module, and the Anti-Grain Geometry library. A\n// description of the area/coverage algorithm is at\n// http://projects.tuxee.net/cl-vectors/section-the-cl-aa-algorithm\npackage raster // import \"github.com/golang/freetype/raster\"\n\nimport (\n\t\"strconv\"\n\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// A cell is part of a linked list (for a given yi co-ordinate) of accumulated\n// area/coverage for the pixel at (xi, yi).\ntype cell struct {\n\txi          int\n\tarea, cover int\n\tnext        int\n}\n\ntype Rasterizer struct {\n\t// If false, the default behavior is to use the even-odd winding fill\n\t// rule during Rasterize.\n\tUseNonZeroWinding bool\n\t// An offset (in pixels) to the painted spans.\n\tDx, Dy int\n\n\t// The width of the Rasterizer. The height is implicit in len(cellIndex).\n\twidth int\n\t// splitScaleN is the scaling factor used to determine how many times\n\t// to decompose a quadratic or cubic segment into a linear approximation.\n\tsplitScale2, splitScale3 int\n\n\t// The current pen position.\n\ta fixed.Point26_6\n\t// The current cell and its area/coverage being accumulated.\n\txi, yi      int\n\tarea, cover int\n\n\t// Saved cells.\n\tcell []cell\n\t// Linked list of cells, one per row.\n\tcellIndex []int\n\t// Buffers.\n\tcellBuf      [256]cell\n\tcellIndexBuf [64]int\n\tspanBuf      [64]Span\n}\n\n// findCell returns the index in r.cell for the cell corresponding to\n// (r.xi, r.yi). The cell is created if necessary.\nfunc (r *Rasterizer) findCell() int {\n\tif r.yi < 0 || r.yi >= len(r.cellIndex) {\n\t\treturn -1\n\t}\n\txi := r.xi\n\tif xi < 0 {\n\t\txi = -1\n\t} else if xi > r.width {\n\t\txi = r.width\n\t}\n\ti, prev := r.cellIndex[r.yi], -1\n\tfor i != -1 && r.cell[i].xi <= xi {\n\t\tif r.cell[i].xi == xi {\n\t\t\treturn i\n\t\t}\n\t\ti, prev = r.cell[i].next, i\n\t}\n\tc := len(r.cell)\n\tif c == cap(r.cell) {\n\t\tbuf := make([]cell, c, 4*c)\n\t\tcopy(buf, r.cell)\n\t\tr.cell = buf[0 : c+1]\n\t} else {\n\t\tr.cell = r.cell[0 : c+1]\n\t}\n\tr.cell[c] = cell{xi, 0, 0, i}\n\tif prev == -1 {\n\t\tr.cellIndex[r.yi] = c\n\t} else {\n\t\tr.cell[prev].next = c\n\t}\n\treturn c\n}\n\n// saveCell saves any accumulated r.area/r.cover for (r.xi, r.yi).\nfunc (r *Rasterizer) saveCell() {\n\tif r.area != 0 || r.cover != 0 {\n\t\ti := r.findCell()\n\t\tif i != -1 {\n\t\t\tr.cell[i].area += r.area\n\t\t\tr.cell[i].cover += r.cover\n\t\t}\n\t\tr.area = 0\n\t\tr.cover = 0\n\t}\n}\n\n// setCell sets the (xi, yi) cell that r is accumulating area/coverage for.\nfunc (r *Rasterizer) setCell(xi, yi int) {\n\tif r.xi != xi || r.yi != yi {\n\t\tr.saveCell()\n\t\tr.xi, r.yi = xi, yi\n\t}\n}\n\n// scan accumulates area/coverage for the yi'th scanline, going from\n// x0 to x1 in the horizontal direction (in 26.6 fixed point co-ordinates)\n// and from y0f to y1f fractional vertical units within that scanline.\nfunc (r *Rasterizer) scan(yi int, x0, y0f, x1, y1f fixed.Int26_6) {\n\t// Break the 26.6 fixed point X co-ordinates into integral and fractional parts.\n\tx0i := int(x0) / 64\n\tx0f := x0 - fixed.Int26_6(64*x0i)\n\tx1i := int(x1) / 64\n\tx1f := x1 - fixed.Int26_6(64*x1i)\n\n\t// A perfectly horizontal scan.\n\tif y0f == y1f {\n\t\tr.setCell(x1i, yi)\n\t\treturn\n\t}\n\tdx, dy := x1-x0, y1f-y0f\n\t// A single cell scan.\n\tif x0i == x1i {\n\t\tr.area += int((x0f + x1f) * dy)\n\t\tr.cover += int(dy)\n\t\treturn\n\t}\n\t// There are at least two cells. Apart from the first and last cells,\n\t// all intermediate cells go through the full width of the cell,\n\t// or 64 units in 26.6 fixed point format.\n\tvar (\n\t\tp, q, edge0, edge1 fixed.Int26_6\n\t\txiDelta            int\n\t)\n\tif dx > 0 {\n\t\tp, q = (64-x0f)*dy, dx\n\t\tedge0, edge1, xiDelta = 0, 64, 1\n\t} else {\n\t\tp, q = x0f*dy, -dx\n\t\tedge0, edge1, xiDelta = 64, 0, -1\n\t}\n\tyDelta, yRem := p/q, p%q\n\tif yRem < 0 {\n\t\tyDelta -= 1\n\t\tyRem += q\n\t}\n\t// Do the first cell.\n\txi, y := x0i, y0f\n\tr.area += int((x0f + edge1) * yDelta)\n\tr.cover += int(yDelta)\n\txi, y = xi+xiDelta, y+yDelta\n\tr.setCell(xi, yi)\n\tif xi != x1i {\n\t\t// Do all the intermediate cells.\n\t\tp = 64 * (y1f - y + yDelta)\n\t\tfullDelta, fullRem := p/q, p%q\n\t\tif fullRem < 0 {\n\t\t\tfullDelta -= 1\n\t\t\tfullRem += q\n\t\t}\n\t\tyRem -= q\n\t\tfor xi != x1i {\n\t\t\tyDelta = fullDelta\n\t\t\tyRem += fullRem\n\t\t\tif yRem >= 0 {\n\t\t\t\tyDelta += 1\n\t\t\t\tyRem -= q\n\t\t\t}\n\t\t\tr.area += int(64 * yDelta)\n\t\t\tr.cover += int(yDelta)\n\t\t\txi, y = xi+xiDelta, y+yDelta\n\t\t\tr.setCell(xi, yi)\n\t\t}\n\t}\n\t// Do the last cell.\n\tyDelta = y1f - y\n\tr.area += int((edge0 + x1f) * yDelta)\n\tr.cover += int(yDelta)\n}\n\n// Start starts a new curve at the given point.\nfunc (r *Rasterizer) Start(a fixed.Point26_6) {\n\tr.setCell(int(a.X/64), int(a.Y/64))\n\tr.a = a\n}\n\n// Add1 adds a linear segment to the current curve.\nfunc (r *Rasterizer) Add1(b fixed.Point26_6) {\n\tx0, y0 := r.a.X, r.a.Y\n\tx1, y1 := b.X, b.Y\n\tdx, dy := x1-x0, y1-y0\n\t// Break the 26.6 fixed point Y co-ordinates into integral and fractional\n\t// parts.\n\ty0i := int(y0) / 64\n\ty0f := y0 - fixed.Int26_6(64*y0i)\n\ty1i := int(y1) / 64\n\ty1f := y1 - fixed.Int26_6(64*y1i)\n\n\tif y0i == y1i {\n\t\t// There is only one scanline.\n\t\tr.scan(y0i, x0, y0f, x1, y1f)\n\n\t} else if dx == 0 {\n\t\t// This is a vertical line segment. We avoid calling r.scan and instead\n\t\t// manipulate r.area and r.cover directly.\n\t\tvar (\n\t\t\tedge0, edge1 fixed.Int26_6\n\t\t\tyiDelta      int\n\t\t)\n\t\tif dy > 0 {\n\t\t\tedge0, edge1, yiDelta = 0, 64, 1\n\t\t} else {\n\t\t\tedge0, edge1, yiDelta = 64, 0, -1\n\t\t}\n\t\tx0i, yi := int(x0)/64, y0i\n\t\tx0fTimes2 := (int(x0) - (64 * x0i)) * 2\n\t\t// Do the first pixel.\n\t\tdcover := int(edge1 - y0f)\n\t\tdarea := int(x0fTimes2 * dcover)\n\t\tr.area += darea\n\t\tr.cover += dcover\n\t\tyi += yiDelta\n\t\tr.setCell(x0i, yi)\n\t\t// Do all the intermediate pixels.\n\t\tdcover = int(edge1 - edge0)\n\t\tdarea = int(x0fTimes2 * dcover)\n\t\tfor yi != y1i {\n\t\t\tr.area += darea\n\t\t\tr.cover += dcover\n\t\t\tyi += yiDelta\n\t\t\tr.setCell(x0i, yi)\n\t\t}\n\t\t// Do the last pixel.\n\t\tdcover = int(y1f - edge0)\n\t\tdarea = int(x0fTimes2 * dcover)\n\t\tr.area += darea\n\t\tr.cover += dcover\n\n\t} else {\n\t\t// There are at least two scanlines. Apart from the first and last\n\t\t// scanlines, all intermediate scanlines go through the full height of\n\t\t// the row, or 64 units in 26.6 fixed point format.\n\t\tvar (\n\t\t\tp, q, edge0, edge1 fixed.Int26_6\n\t\t\tyiDelta            int\n\t\t)\n\t\tif dy > 0 {\n\t\t\tp, q = (64-y0f)*dx, dy\n\t\t\tedge0, edge1, yiDelta = 0, 64, 1\n\t\t} else {\n\t\t\tp, q = y0f*dx, -dy\n\t\t\tedge0, edge1, yiDelta = 64, 0, -1\n\t\t}\n\t\txDelta, xRem := p/q, p%q\n\t\tif xRem < 0 {\n\t\t\txDelta -= 1\n\t\t\txRem += q\n\t\t}\n\t\t// Do the first scanline.\n\t\tx, yi := x0, y0i\n\t\tr.scan(yi, x, y0f, x+xDelta, edge1)\n\t\tx, yi = x+xDelta, yi+yiDelta\n\t\tr.setCell(int(x)/64, yi)\n\t\tif yi != y1i {\n\t\t\t// Do all the intermediate scanlines.\n\t\t\tp = 64 * dx\n\t\t\tfullDelta, fullRem := p/q, p%q\n\t\t\tif fullRem < 0 {\n\t\t\t\tfullDelta -= 1\n\t\t\t\tfullRem += q\n\t\t\t}\n\t\t\txRem -= q\n\t\t\tfor yi != y1i {\n\t\t\t\txDelta = fullDelta\n\t\t\t\txRem += fullRem\n\t\t\t\tif xRem >= 0 {\n\t\t\t\t\txDelta += 1\n\t\t\t\t\txRem -= q\n\t\t\t\t}\n\t\t\t\tr.scan(yi, x, edge0, x+xDelta, edge1)\n\t\t\t\tx, yi = x+xDelta, yi+yiDelta\n\t\t\t\tr.setCell(int(x)/64, yi)\n\t\t\t}\n\t\t}\n\t\t// Do the last scanline.\n\t\tr.scan(yi, x, edge0, x1, y1f)\n\t}\n\t// The next lineTo starts from b.\n\tr.a = b\n}\n\n// Add2 adds a quadratic segment to the current curve.\nfunc (r *Rasterizer) Add2(b, c fixed.Point26_6) {\n\t// Calculate nSplit (the number of recursive decompositions) based on how\n\t// 'curvy' it is. Specifically, how much the middle point b deviates from\n\t// (a+c)/2.\n\tdev := maxAbs(r.a.X-2*b.X+c.X, r.a.Y-2*b.Y+c.Y) / fixed.Int26_6(r.splitScale2)\n\tnsplit := 0\n\tfor dev > 0 {\n\t\tdev /= 4\n\t\tnsplit++\n\t}\n\t// dev is 32-bit, and nsplit++ every time we shift off 2 bits, so maxNsplit\n\t// is 16.\n\tconst maxNsplit = 16\n\tif nsplit > maxNsplit {\n\t\tpanic(\"freetype/raster: Add2 nsplit too large: \" + strconv.Itoa(nsplit))\n\t}\n\t// Recursively decompose the curve nSplit levels deep.\n\tvar (\n\t\tpStack [2*maxNsplit + 3]fixed.Point26_6\n\t\tsStack [maxNsplit + 1]int\n\t\ti      int\n\t)\n\tsStack[0] = nsplit\n\tpStack[0] = c\n\tpStack[1] = b\n\tpStack[2] = r.a\n\tfor i >= 0 {\n\t\ts := sStack[i]\n\t\tp := pStack[2*i:]\n\t\tif s > 0 {\n\t\t\t// Split the quadratic curve p[:3] into an equivalent set of two\n\t\t\t// shorter curves: p[:3] and p[2:5]. The new p[4] is the old p[2],\n\t\t\t// and p[0] is unchanged.\n\t\t\tmx := p[1].X\n\t\t\tp[4].X = p[2].X\n\t\t\tp[3].X = (p[4].X + mx) / 2\n\t\t\tp[1].X = (p[0].X + mx) / 2\n\t\t\tp[2].X = (p[1].X + p[3].X) / 2\n\t\t\tmy := p[1].Y\n\t\t\tp[4].Y = p[2].Y\n\t\t\tp[3].Y = (p[4].Y + my) / 2\n\t\t\tp[1].Y = (p[0].Y + my) / 2\n\t\t\tp[2].Y = (p[1].Y + p[3].Y) / 2\n\t\t\t// The two shorter curves have one less split to do.\n\t\t\tsStack[i] = s - 1\n\t\t\tsStack[i+1] = s - 1\n\t\t\ti++\n\t\t} else {\n\t\t\t// Replace the level-0 quadratic with a two-linear-piece\n\t\t\t// approximation.\n\t\t\tmidx := (p[0].X + 2*p[1].X + p[2].X) / 4\n\t\t\tmidy := (p[0].Y + 2*p[1].Y + p[2].Y) / 4\n\t\t\tr.Add1(fixed.Point26_6{midx, midy})\n\t\t\tr.Add1(p[0])\n\t\t\ti--\n\t\t}\n\t}\n}\n\n// Add3 adds a cubic segment to the current curve.\nfunc (r *Rasterizer) Add3(b, c, d fixed.Point26_6) {\n\t// Calculate nSplit (the number of recursive decompositions) based on how\n\t// 'curvy' it is.\n\tdev2 := maxAbs(r.a.X-3*(b.X+c.X)+d.X, r.a.Y-3*(b.Y+c.Y)+d.Y) / fixed.Int26_6(r.splitScale2)\n\tdev3 := maxAbs(r.a.X-2*b.X+d.X, r.a.Y-2*b.Y+d.Y) / fixed.Int26_6(r.splitScale3)\n\tnsplit := 0\n\tfor dev2 > 0 || dev3 > 0 {\n\t\tdev2 /= 8\n\t\tdev3 /= 4\n\t\tnsplit++\n\t}\n\t// devN is 32-bit, and nsplit++ every time we shift off 2 bits, so\n\t// maxNsplit is 16.\n\tconst maxNsplit = 16\n\tif nsplit > maxNsplit {\n\t\tpanic(\"freetype/raster: Add3 nsplit too large: \" + strconv.Itoa(nsplit))\n\t}\n\t// Recursively decompose the curve nSplit levels deep.\n\tvar (\n\t\tpStack [3*maxNsplit + 4]fixed.Point26_6\n\t\tsStack [maxNsplit + 1]int\n\t\ti      int\n\t)\n\tsStack[0] = nsplit\n\tpStack[0] = d\n\tpStack[1] = c\n\tpStack[2] = b\n\tpStack[3] = r.a\n\tfor i >= 0 {\n\t\ts := sStack[i]\n\t\tp := pStack[3*i:]\n\t\tif s > 0 {\n\t\t\t// Split the cubic curve p[:4] into an equivalent set of two\n\t\t\t// shorter curves: p[:4] and p[3:7]. The new p[6] is the old p[3],\n\t\t\t// and p[0] is unchanged.\n\t\t\tm01x := (p[0].X + p[1].X) / 2\n\t\t\tm12x := (p[1].X + p[2].X) / 2\n\t\t\tm23x := (p[2].X + p[3].X) / 2\n\t\t\tp[6].X = p[3].X\n\t\t\tp[5].X = m23x\n\t\t\tp[1].X = m01x\n\t\t\tp[2].X = (m01x + m12x) / 2\n\t\t\tp[4].X = (m12x + m23x) / 2\n\t\t\tp[3].X = (p[2].X + p[4].X) / 2\n\t\t\tm01y := (p[0].Y + p[1].Y) / 2\n\t\t\tm12y := (p[1].Y + p[2].Y) / 2\n\t\t\tm23y := (p[2].Y + p[3].Y) / 2\n\t\t\tp[6].Y = p[3].Y\n\t\t\tp[5].Y = m23y\n\t\t\tp[1].Y = m01y\n\t\t\tp[2].Y = (m01y + m12y) / 2\n\t\t\tp[4].Y = (m12y + m23y) / 2\n\t\t\tp[3].Y = (p[2].Y + p[4].Y) / 2\n\t\t\t// The two shorter curves have one less split to do.\n\t\t\tsStack[i] = s - 1\n\t\t\tsStack[i+1] = s - 1\n\t\t\ti++\n\t\t} else {\n\t\t\t// Replace the level-0 cubic with a two-linear-piece approximation.\n\t\t\tmidx := (p[0].X + 3*(p[1].X+p[2].X) + p[3].X) / 8\n\t\t\tmidy := (p[0].Y + 3*(p[1].Y+p[2].Y) + p[3].Y) / 8\n\t\t\tr.Add1(fixed.Point26_6{midx, midy})\n\t\t\tr.Add1(p[0])\n\t\t\ti--\n\t\t}\n\t}\n}\n\n// AddPath adds the given Path.\nfunc (r *Rasterizer) AddPath(p Path) {\n\tfor i := 0; i < len(p); {\n\t\tswitch p[i] {\n\t\tcase 0:\n\t\t\tr.Start(\n\t\t\t\tfixed.Point26_6{p[i+1], p[i+2]},\n\t\t\t)\n\t\t\ti += 4\n\t\tcase 1:\n\t\t\tr.Add1(\n\t\t\t\tfixed.Point26_6{p[i+1], p[i+2]},\n\t\t\t)\n\t\t\ti += 4\n\t\tcase 2:\n\t\t\tr.Add2(\n\t\t\t\tfixed.Point26_6{p[i+1], p[i+2]},\n\t\t\t\tfixed.Point26_6{p[i+3], p[i+4]},\n\t\t\t)\n\t\t\ti += 6\n\t\tcase 3:\n\t\t\tr.Add3(\n\t\t\t\tfixed.Point26_6{p[i+1], p[i+2]},\n\t\t\t\tfixed.Point26_6{p[i+3], p[i+4]},\n\t\t\t\tfixed.Point26_6{p[i+5], p[i+6]},\n\t\t\t)\n\t\t\ti += 8\n\t\tdefault:\n\t\t\tpanic(\"freetype/raster: bad path\")\n\t\t}\n\t}\n}\n\n// AddStroke adds a stroked Path.\nfunc (r *Rasterizer) AddStroke(q Path, width fixed.Int26_6, cr Capper, jr Joiner) {\n\tStroke(r, q, width, cr, jr)\n}\n\n// areaToAlpha converts an area value to a uint32 alpha value. A completely\n// filled pixel corresponds to an area of 64*64*2, and an alpha of 0xffff. The\n// conversion of area values greater than this depends on the winding rule:\n// even-odd or non-zero.\nfunc (r *Rasterizer) areaToAlpha(area int) uint32 {\n\t// The C Freetype implementation (version 2.3.12) does \"alpha := area>>1\"\n\t// without the +1. Round-to-nearest gives a more symmetric result than\n\t// round-down. The C implementation also returns 8-bit alpha, not 16-bit\n\t// alpha.\n\ta := (area + 1) >> 1\n\tif a < 0 {\n\t\ta = -a\n\t}\n\talpha := uint32(a)\n\tif r.UseNonZeroWinding {\n\t\tif alpha > 0x0fff {\n\t\t\talpha = 0x0fff\n\t\t}\n\t} else {\n\t\talpha &= 0x1fff\n\t\tif alpha > 0x1000 {\n\t\t\talpha = 0x2000 - alpha\n\t\t} else if alpha == 0x1000 {\n\t\t\talpha = 0x0fff\n\t\t}\n\t}\n\t// alpha is now in the range [0x0000, 0x0fff]. Convert that 12-bit alpha to\n\t// 16-bit alpha.\n\treturn alpha<<4 | alpha>>8\n}\n\n// Rasterize converts r's accumulated curves into Spans for p. The Spans passed\n// to p are non-overlapping, and sorted by Y and then X. They all have non-zero\n// width (and 0 <= X0 < X1 <= r.width) and non-zero A, except for the final\n// Span, which has Y, X0, X1 and A all equal to zero.\nfunc (r *Rasterizer) Rasterize(p Painter) {\n\tr.saveCell()\n\ts := 0\n\tfor yi := 0; yi < len(r.cellIndex); yi++ {\n\t\txi, cover := 0, 0\n\t\tfor c := r.cellIndex[yi]; c != -1; c = r.cell[c].next {\n\t\t\tif cover != 0 && r.cell[c].xi > xi {\n\t\t\t\talpha := r.areaToAlpha(cover * 64 * 2)\n\t\t\t\tif alpha != 0 {\n\t\t\t\t\txi0, xi1 := xi, r.cell[c].xi\n\t\t\t\t\tif xi0 < 0 {\n\t\t\t\t\t\txi0 = 0\n\t\t\t\t\t}\n\t\t\t\t\tif xi1 >= r.width {\n\t\t\t\t\t\txi1 = r.width\n\t\t\t\t\t}\n\t\t\t\t\tif xi0 < xi1 {\n\t\t\t\t\t\tr.spanBuf[s] = Span{yi + r.Dy, xi0 + r.Dx, xi1 + r.Dx, alpha}\n\t\t\t\t\t\ts++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcover += r.cell[c].cover\n\t\t\talpha := r.areaToAlpha(cover*64*2 - r.cell[c].area)\n\t\t\txi = r.cell[c].xi + 1\n\t\t\tif alpha != 0 {\n\t\t\t\txi0, xi1 := r.cell[c].xi, xi\n\t\t\t\tif xi0 < 0 {\n\t\t\t\t\txi0 = 0\n\t\t\t\t}\n\t\t\t\tif xi1 >= r.width {\n\t\t\t\t\txi1 = r.width\n\t\t\t\t}\n\t\t\t\tif xi0 < xi1 {\n\t\t\t\t\tr.spanBuf[s] = Span{yi + r.Dy, xi0 + r.Dx, xi1 + r.Dx, alpha}\n\t\t\t\t\ts++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif s > len(r.spanBuf)-2 {\n\t\t\t\tp.Paint(r.spanBuf[:s], false)\n\t\t\t\ts = 0\n\t\t\t}\n\t\t}\n\t}\n\tp.Paint(r.spanBuf[:s], true)\n}\n\n// Clear cancels any previous calls to r.Start or r.AddXxx.\nfunc (r *Rasterizer) Clear() {\n\tr.a = fixed.Point26_6{}\n\tr.xi = 0\n\tr.yi = 0\n\tr.area = 0\n\tr.cover = 0\n\tr.cell = r.cell[:0]\n\tfor i := 0; i < len(r.cellIndex); i++ {\n\t\tr.cellIndex[i] = -1\n\t}\n}\n\n// SetBounds sets the maximum width and height of the rasterized image and\n// calls Clear. The width and height are in pixels, not fixed.Int26_6 units.\nfunc (r *Rasterizer) SetBounds(width, height int) {\n\tif width < 0 {\n\t\twidth = 0\n\t}\n\tif height < 0 {\n\t\theight = 0\n\t}\n\t// Use the same ssN heuristic as the C Freetype (version 2.4.0)\n\t// implementation.\n\tss2, ss3 := 32, 16\n\tif width > 24 || height > 24 {\n\t\tss2, ss3 = 2*ss2, 2*ss3\n\t\tif width > 120 || height > 120 {\n\t\t\tss2, ss3 = 2*ss2, 2*ss3\n\t\t}\n\t}\n\tr.width = width\n\tr.splitScale2 = ss2\n\tr.splitScale3 = ss3\n\tr.cell = r.cellBuf[:0]\n\tif height > len(r.cellIndexBuf) {\n\t\tr.cellIndex = make([]int, height)\n\t} else {\n\t\tr.cellIndex = r.cellIndexBuf[:height]\n\t}\n\tr.Clear()\n}\n\n// NewRasterizer creates a new Rasterizer with the given bounds.\nfunc NewRasterizer(width, height int) *Rasterizer {\n\tr := new(Rasterizer)\n\tr.SetBounds(width, height)\n\treturn r\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/raster/stroke.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage raster\n\nimport (\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// Two points are considered practically equal if the square of the distance\n// between them is less than one quarter (i.e. 1024 / 4096).\nconst epsilon = fixed.Int52_12(1024)\n\n// A Capper signifies how to begin or end a stroked path.\ntype Capper interface {\n\t// Cap adds a cap to p given a pivot point and the normal vector of a\n\t// terminal segment. The normal's length is half of the stroke width.\n\tCap(p Adder, halfWidth fixed.Int26_6, pivot, n1 fixed.Point26_6)\n}\n\n// The CapperFunc type adapts an ordinary function to be a Capper.\ntype CapperFunc func(Adder, fixed.Int26_6, fixed.Point26_6, fixed.Point26_6)\n\nfunc (f CapperFunc) Cap(p Adder, halfWidth fixed.Int26_6, pivot, n1 fixed.Point26_6) {\n\tf(p, halfWidth, pivot, n1)\n}\n\n// A Joiner signifies how to join interior nodes of a stroked path.\ntype Joiner interface {\n\t// Join adds a join to the two sides of a stroked path given a pivot\n\t// point and the normal vectors of the trailing and leading segments.\n\t// Both normals have length equal to half of the stroke width.\n\tJoin(lhs, rhs Adder, halfWidth fixed.Int26_6, pivot, n0, n1 fixed.Point26_6)\n}\n\n// The JoinerFunc type adapts an ordinary function to be a Joiner.\ntype JoinerFunc func(lhs, rhs Adder, halfWidth fixed.Int26_6, pivot, n0, n1 fixed.Point26_6)\n\nfunc (f JoinerFunc) Join(lhs, rhs Adder, halfWidth fixed.Int26_6, pivot, n0, n1 fixed.Point26_6) {\n\tf(lhs, rhs, halfWidth, pivot, n0, n1)\n}\n\n// RoundCapper adds round caps to a stroked path.\nvar RoundCapper Capper = CapperFunc(roundCapper)\n\nfunc roundCapper(p Adder, halfWidth fixed.Int26_6, pivot, n1 fixed.Point26_6) {\n\t// The cubic Bézier approximation to a circle involves the magic number\n\t// (√2 - 1) * 4/3, which is approximately 35/64.\n\tconst k = 35\n\te := pRot90CCW(n1)\n\tside := pivot.Add(e)\n\tstart, end := pivot.Sub(n1), pivot.Add(n1)\n\td, e := n1.Mul(k), e.Mul(k)\n\tp.Add3(start.Add(e), side.Sub(d), side)\n\tp.Add3(side.Add(d), end.Add(e), end)\n}\n\n// ButtCapper adds butt caps to a stroked path.\nvar ButtCapper Capper = CapperFunc(buttCapper)\n\nfunc buttCapper(p Adder, halfWidth fixed.Int26_6, pivot, n1 fixed.Point26_6) {\n\tp.Add1(pivot.Add(n1))\n}\n\n// SquareCapper adds square caps to a stroked path.\nvar SquareCapper Capper = CapperFunc(squareCapper)\n\nfunc squareCapper(p Adder, halfWidth fixed.Int26_6, pivot, n1 fixed.Point26_6) {\n\te := pRot90CCW(n1)\n\tside := pivot.Add(e)\n\tp.Add1(side.Sub(n1))\n\tp.Add1(side.Add(n1))\n\tp.Add1(pivot.Add(n1))\n}\n\n// RoundJoiner adds round joins to a stroked path.\nvar RoundJoiner Joiner = JoinerFunc(roundJoiner)\n\nfunc roundJoiner(lhs, rhs Adder, haflWidth fixed.Int26_6, pivot, n0, n1 fixed.Point26_6) {\n\tdot := pDot(pRot90CW(n0), n1)\n\tif dot >= 0 {\n\t\taddArc(lhs, pivot, n0, n1)\n\t\trhs.Add1(pivot.Sub(n1))\n\t} else {\n\t\tlhs.Add1(pivot.Add(n1))\n\t\taddArc(rhs, pivot, pNeg(n0), pNeg(n1))\n\t}\n}\n\n// BevelJoiner adds bevel joins to a stroked path.\nvar BevelJoiner Joiner = JoinerFunc(bevelJoiner)\n\nfunc bevelJoiner(lhs, rhs Adder, haflWidth fixed.Int26_6, pivot, n0, n1 fixed.Point26_6) {\n\tlhs.Add1(pivot.Add(n1))\n\trhs.Add1(pivot.Sub(n1))\n}\n\n// addArc adds a circular arc from pivot+n0 to pivot+n1 to p. The shorter of\n// the two possible arcs is taken, i.e. the one spanning <= 180 degrees. The\n// two vectors n0 and n1 must be of equal length.\nfunc addArc(p Adder, pivot, n0, n1 fixed.Point26_6) {\n\t// r2 is the square of the length of n0.\n\tr2 := pDot(n0, n0)\n\tif r2 < epsilon {\n\t\t// The arc radius is so small that we collapse to a straight line.\n\t\tp.Add1(pivot.Add(n1))\n\t\treturn\n\t}\n\t// We approximate the arc by 0, 1, 2 or 3 45-degree quadratic segments plus\n\t// a final quadratic segment from s to n1. Each 45-degree segment has\n\t// control points {1, 0}, {1, tan(π/8)} and {1/√2, 1/√2} suitably scaled,\n\t// rotated and translated. tan(π/8) is approximately 27/64.\n\tconst tpo8 = 27\n\tvar s fixed.Point26_6\n\t// We determine which octant the angle between n0 and n1 is in via three\n\t// dot products. m0, m1 and m2 are n0 rotated clockwise by 45, 90 and 135\n\t// degrees.\n\tm0 := pRot45CW(n0)\n\tm1 := pRot90CW(n0)\n\tm2 := pRot90CW(m0)\n\tif pDot(m1, n1) >= 0 {\n\t\tif pDot(n0, n1) >= 0 {\n\t\t\tif pDot(m2, n1) <= 0 {\n\t\t\t\t// n1 is between 0 and 45 degrees clockwise of n0.\n\t\t\t\ts = n0\n\t\t\t} else {\n\t\t\t\t// n1 is between 45 and 90 degrees clockwise of n0.\n\t\t\t\tp.Add2(pivot.Add(n0).Add(m1.Mul(tpo8)), pivot.Add(m0))\n\t\t\t\ts = m0\n\t\t\t}\n\t\t} else {\n\t\t\tpm1, n0t := pivot.Add(m1), n0.Mul(tpo8)\n\t\t\tp.Add2(pivot.Add(n0).Add(m1.Mul(tpo8)), pivot.Add(m0))\n\t\t\tp.Add2(pm1.Add(n0t), pm1)\n\t\t\tif pDot(m0, n1) >= 0 {\n\t\t\t\t// n1 is between 90 and 135 degrees clockwise of n0.\n\t\t\t\ts = m1\n\t\t\t} else {\n\t\t\t\t// n1 is between 135 and 180 degrees clockwise of n0.\n\t\t\t\tp.Add2(pm1.Sub(n0t), pivot.Add(m2))\n\t\t\t\ts = m2\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif pDot(n0, n1) >= 0 {\n\t\t\tif pDot(m0, n1) >= 0 {\n\t\t\t\t// n1 is between 0 and 45 degrees counter-clockwise of n0.\n\t\t\t\ts = n0\n\t\t\t} else {\n\t\t\t\t// n1 is between 45 and 90 degrees counter-clockwise of n0.\n\t\t\t\tp.Add2(pivot.Add(n0).Sub(m1.Mul(tpo8)), pivot.Sub(m2))\n\t\t\t\ts = pNeg(m2)\n\t\t\t}\n\t\t} else {\n\t\t\tpm1, n0t := pivot.Sub(m1), n0.Mul(tpo8)\n\t\t\tp.Add2(pivot.Add(n0).Sub(m1.Mul(tpo8)), pivot.Sub(m2))\n\t\t\tp.Add2(pm1.Add(n0t), pm1)\n\t\t\tif pDot(m2, n1) <= 0 {\n\t\t\t\t// n1 is between 90 and 135 degrees counter-clockwise of n0.\n\t\t\t\ts = pNeg(m1)\n\t\t\t} else {\n\t\t\t\t// n1 is between 135 and 180 degrees counter-clockwise of n0.\n\t\t\t\tp.Add2(pm1.Sub(n0t), pivot.Sub(m0))\n\t\t\t\ts = pNeg(m0)\n\t\t\t}\n\t\t}\n\t}\n\t// The final quadratic segment has two endpoints s and n1 and the middle\n\t// control point is a multiple of s.Add(n1), i.e. it is on the angle\n\t// bisector of those two points. The multiple ranges between 128/256 and\n\t// 150/256 as the angle between s and n1 ranges between 0 and 45 degrees.\n\t//\n\t// When the angle is 0 degrees (i.e. s and n1 are coincident) then\n\t// s.Add(n1) is twice s and so the middle control point of the degenerate\n\t// quadratic segment should be half s.Add(n1), and half = 128/256.\n\t//\n\t// When the angle is 45 degrees then 150/256 is the ratio of the lengths of\n\t// the two vectors {1, tan(π/8)} and {1 + 1/√2, 1/√2}.\n\t//\n\t// d is the normalized dot product between s and n1. Since the angle ranges\n\t// between 0 and 45 degrees then d ranges between 256/256 and 181/256.\n\td := 256 * pDot(s, n1) / r2\n\tmultiple := fixed.Int26_6(150-(150-128)*(d-181)/(256-181)) >> 2\n\tp.Add2(pivot.Add(s.Add(n1).Mul(multiple)), pivot.Add(n1))\n}\n\n// midpoint returns the midpoint of two Points.\nfunc midpoint(a, b fixed.Point26_6) fixed.Point26_6 {\n\treturn fixed.Point26_6{(a.X + b.X) / 2, (a.Y + b.Y) / 2}\n}\n\n// angleGreaterThan45 returns whether the angle between two vectors is more\n// than 45 degrees.\nfunc angleGreaterThan45(v0, v1 fixed.Point26_6) bool {\n\tv := pRot45CCW(v0)\n\treturn pDot(v, v1) < 0 || pDot(pRot90CW(v), v1) < 0\n}\n\n// interpolate returns the point (1-t)*a + t*b.\nfunc interpolate(a, b fixed.Point26_6, t fixed.Int52_12) fixed.Point26_6 {\n\ts := 1<<12 - t\n\tx := s*fixed.Int52_12(a.X) + t*fixed.Int52_12(b.X)\n\ty := s*fixed.Int52_12(a.Y) + t*fixed.Int52_12(b.Y)\n\treturn fixed.Point26_6{fixed.Int26_6(x >> 12), fixed.Int26_6(y >> 12)}\n}\n\n// curviest2 returns the value of t for which the quadratic parametric curve\n// (1-t)²*a + 2*t*(1-t).b + t²*c has maximum curvature.\n//\n// The curvature of the parametric curve f(t) = (x(t), y(t)) is\n// |x′y″-y′x″| / (x′²+y′²)^(3/2).\n//\n// Let d = b-a and e = c-2*b+a, so that f′(t) = 2*d+2*e*t and f″(t) = 2*e.\n// The curvature's numerator is (2*dx+2*ex*t)*(2*ey)-(2*dy+2*ey*t)*(2*ex),\n// which simplifies to 4*dx*ey-4*dy*ex, which is constant with respect to t.\n//\n// Thus, curvature is extreme where the denominator is extreme, i.e. where\n// (x′²+y′²) is extreme. The first order condition is that\n// 2*x′*x″+2*y′*y″ = 0, or (dx+ex*t)*ex + (dy+ey*t)*ey = 0.\n// Solving for t gives t = -(dx*ex+dy*ey) / (ex*ex+ey*ey).\nfunc curviest2(a, b, c fixed.Point26_6) fixed.Int52_12 {\n\tdx := int64(b.X - a.X)\n\tdy := int64(b.Y - a.Y)\n\tex := int64(c.X - 2*b.X + a.X)\n\tey := int64(c.Y - 2*b.Y + a.Y)\n\tif ex == 0 && ey == 0 {\n\t\treturn 2048\n\t}\n\treturn fixed.Int52_12(-4096 * (dx*ex + dy*ey) / (ex*ex + ey*ey))\n}\n\n// A stroker holds state for stroking a path.\ntype stroker struct {\n\t// p is the destination that records the stroked path.\n\tp Adder\n\t// u is the half-width of the stroke.\n\tu fixed.Int26_6\n\t// cr and jr specify how to end and connect path segments.\n\tcr Capper\n\tjr Joiner\n\t// r is the reverse path. Stroking a path involves constructing two\n\t// parallel paths 2*u apart. The first path is added immediately to p,\n\t// the second path is accumulated in r and eventually added in reverse.\n\tr Path\n\t// a is the most recent segment point. anorm is the segment normal of\n\t// length u at that point.\n\ta, anorm fixed.Point26_6\n}\n\n// addNonCurvy2 adds a quadratic segment to the stroker, where the segment\n// defined by (k.a, b, c) achieves maximum curvature at either k.a or c.\nfunc (k *stroker) addNonCurvy2(b, c fixed.Point26_6) {\n\t// We repeatedly divide the segment at its middle until it is straight\n\t// enough to approximate the stroke by just translating the control points.\n\t// ds and ps are stacks of depths and points. t is the top of the stack.\n\tconst maxDepth = 5\n\tvar (\n\t\tds [maxDepth + 1]int\n\t\tps [2*maxDepth + 3]fixed.Point26_6\n\t\tt  int\n\t)\n\t// Initially the ps stack has one quadratic segment of depth zero.\n\tds[0] = 0\n\tps[2] = k.a\n\tps[1] = b\n\tps[0] = c\n\tanorm := k.anorm\n\tvar cnorm fixed.Point26_6\n\n\tfor {\n\t\tdepth := ds[t]\n\t\ta := ps[2*t+2]\n\t\tb := ps[2*t+1]\n\t\tc := ps[2*t+0]\n\t\tab := b.Sub(a)\n\t\tbc := c.Sub(b)\n\t\tabIsSmall := pDot(ab, ab) < fixed.Int52_12(1<<12)\n\t\tbcIsSmall := pDot(bc, bc) < fixed.Int52_12(1<<12)\n\t\tif abIsSmall && bcIsSmall {\n\t\t\t// Approximate the segment by a circular arc.\n\t\t\tcnorm = pRot90CCW(pNorm(bc, k.u))\n\t\t\tmac := midpoint(a, c)\n\t\t\taddArc(k.p, mac, anorm, cnorm)\n\t\t\taddArc(&k.r, mac, pNeg(anorm), pNeg(cnorm))\n\t\t} else if depth < maxDepth && angleGreaterThan45(ab, bc) {\n\t\t\t// Divide the segment in two and push both halves on the stack.\n\t\t\tmab := midpoint(a, b)\n\t\t\tmbc := midpoint(b, c)\n\t\t\tt++\n\t\t\tds[t+0] = depth + 1\n\t\t\tds[t-1] = depth + 1\n\t\t\tps[2*t+2] = a\n\t\t\tps[2*t+1] = mab\n\t\t\tps[2*t+0] = midpoint(mab, mbc)\n\t\t\tps[2*t-1] = mbc\n\t\t\tcontinue\n\t\t} else {\n\t\t\t// Translate the control points.\n\t\t\tbnorm := pRot90CCW(pNorm(c.Sub(a), k.u))\n\t\t\tcnorm = pRot90CCW(pNorm(bc, k.u))\n\t\t\tk.p.Add2(b.Add(bnorm), c.Add(cnorm))\n\t\t\tk.r.Add2(b.Sub(bnorm), c.Sub(cnorm))\n\t\t}\n\t\tif t == 0 {\n\t\t\tk.a, k.anorm = c, cnorm\n\t\t\treturn\n\t\t}\n\t\tt--\n\t\tanorm = cnorm\n\t}\n\tpanic(\"unreachable\")\n}\n\n// Add1 adds a linear segment to the stroker.\nfunc (k *stroker) Add1(b fixed.Point26_6) {\n\tbnorm := pRot90CCW(pNorm(b.Sub(k.a), k.u))\n\tif len(k.r) == 0 {\n\t\tk.p.Start(k.a.Add(bnorm))\n\t\tk.r.Start(k.a.Sub(bnorm))\n\t} else {\n\t\tk.jr.Join(k.p, &k.r, k.u, k.a, k.anorm, bnorm)\n\t}\n\tk.p.Add1(b.Add(bnorm))\n\tk.r.Add1(b.Sub(bnorm))\n\tk.a, k.anorm = b, bnorm\n}\n\n// Add2 adds a quadratic segment to the stroker.\nfunc (k *stroker) Add2(b, c fixed.Point26_6) {\n\tab := b.Sub(k.a)\n\tbc := c.Sub(b)\n\tabnorm := pRot90CCW(pNorm(ab, k.u))\n\tif len(k.r) == 0 {\n\t\tk.p.Start(k.a.Add(abnorm))\n\t\tk.r.Start(k.a.Sub(abnorm))\n\t} else {\n\t\tk.jr.Join(k.p, &k.r, k.u, k.a, k.anorm, abnorm)\n\t}\n\n\t// Approximate nearly-degenerate quadratics by linear segments.\n\tabIsSmall := pDot(ab, ab) < epsilon\n\tbcIsSmall := pDot(bc, bc) < epsilon\n\tif abIsSmall || bcIsSmall {\n\t\tacnorm := pRot90CCW(pNorm(c.Sub(k.a), k.u))\n\t\tk.p.Add1(c.Add(acnorm))\n\t\tk.r.Add1(c.Sub(acnorm))\n\t\tk.a, k.anorm = c, acnorm\n\t\treturn\n\t}\n\n\t// The quadratic segment (k.a, b, c) has a point of maximum curvature.\n\t// If this occurs at an end point, we process the segment as a whole.\n\tt := curviest2(k.a, b, c)\n\tif t <= 0 || 4096 <= t {\n\t\tk.addNonCurvy2(b, c)\n\t\treturn\n\t}\n\n\t// Otherwise, we perform a de Casteljau decomposition at the point of\n\t// maximum curvature and process the two straighter parts.\n\tmab := interpolate(k.a, b, t)\n\tmbc := interpolate(b, c, t)\n\tmabc := interpolate(mab, mbc, t)\n\n\t// If the vectors ab and bc are close to being in opposite directions,\n\t// then the decomposition can become unstable, so we approximate the\n\t// quadratic segment by two linear segments joined by an arc.\n\tbcnorm := pRot90CCW(pNorm(bc, k.u))\n\tif pDot(abnorm, bcnorm) < -fixed.Int52_12(k.u)*fixed.Int52_12(k.u)*2047/2048 {\n\t\tpArc := pDot(abnorm, bc) < 0\n\n\t\tk.p.Add1(mabc.Add(abnorm))\n\t\tif pArc {\n\t\t\tz := pRot90CW(abnorm)\n\t\t\taddArc(k.p, mabc, abnorm, z)\n\t\t\taddArc(k.p, mabc, z, bcnorm)\n\t\t}\n\t\tk.p.Add1(mabc.Add(bcnorm))\n\t\tk.p.Add1(c.Add(bcnorm))\n\n\t\tk.r.Add1(mabc.Sub(abnorm))\n\t\tif !pArc {\n\t\t\tz := pRot90CW(abnorm)\n\t\t\taddArc(&k.r, mabc, pNeg(abnorm), z)\n\t\t\taddArc(&k.r, mabc, z, pNeg(bcnorm))\n\t\t}\n\t\tk.r.Add1(mabc.Sub(bcnorm))\n\t\tk.r.Add1(c.Sub(bcnorm))\n\n\t\tk.a, k.anorm = c, bcnorm\n\t\treturn\n\t}\n\n\t// Process the decomposed parts.\n\tk.addNonCurvy2(mab, mabc)\n\tk.addNonCurvy2(mbc, c)\n}\n\n// Add3 adds a cubic segment to the stroker.\nfunc (k *stroker) Add3(b, c, d fixed.Point26_6) {\n\tpanic(\"freetype/raster: stroke unimplemented for cubic segments\")\n}\n\n// stroke adds the stroked Path q to p, where q consists of exactly one curve.\nfunc (k *stroker) stroke(q Path) {\n\t// Stroking is implemented by deriving two paths each k.u apart from q.\n\t// The left-hand-side path is added immediately to k.p; the right-hand-side\n\t// path is accumulated in k.r. Once we've finished adding the LHS to k.p,\n\t// we add the RHS in reverse order.\n\tk.r = make(Path, 0, len(q))\n\tk.a = fixed.Point26_6{q[1], q[2]}\n\tfor i := 4; i < len(q); {\n\t\tswitch q[i] {\n\t\tcase 1:\n\t\t\tk.Add1(\n\t\t\t\tfixed.Point26_6{q[i+1], q[i+2]},\n\t\t\t)\n\t\t\ti += 4\n\t\tcase 2:\n\t\t\tk.Add2(\n\t\t\t\tfixed.Point26_6{q[i+1], q[i+2]},\n\t\t\t\tfixed.Point26_6{q[i+3], q[i+4]},\n\t\t\t)\n\t\t\ti += 6\n\t\tcase 3:\n\t\t\tk.Add3(\n\t\t\t\tfixed.Point26_6{q[i+1], q[i+2]},\n\t\t\t\tfixed.Point26_6{q[i+3], q[i+4]},\n\t\t\t\tfixed.Point26_6{q[i+5], q[i+6]},\n\t\t\t)\n\t\t\ti += 8\n\t\tdefault:\n\t\t\tpanic(\"freetype/raster: bad path\")\n\t\t}\n\t}\n\tif len(k.r) == 0 {\n\t\treturn\n\t}\n\t// TODO(nigeltao): if q is a closed curve then we should join the first and\n\t// last segments instead of capping them.\n\tk.cr.Cap(k.p, k.u, q.lastPoint(), pNeg(k.anorm))\n\taddPathReversed(k.p, k.r)\n\tpivot := q.firstPoint()\n\tk.cr.Cap(k.p, k.u, pivot, pivot.Sub(fixed.Point26_6{k.r[1], k.r[2]}))\n}\n\n// Stroke adds q stroked with the given width to p. The result is typically\n// self-intersecting and should be rasterized with UseNonZeroWinding.\n// cr and jr may be nil, which defaults to a RoundCapper or RoundJoiner.\nfunc Stroke(p Adder, q Path, width fixed.Int26_6, cr Capper, jr Joiner) {\n\tif len(q) == 0 {\n\t\treturn\n\t}\n\tif cr == nil {\n\t\tcr = RoundCapper\n\t}\n\tif jr == nil {\n\t\tjr = RoundJoiner\n\t}\n\tif q[0] != 0 {\n\t\tpanic(\"freetype/raster: bad path\")\n\t}\n\ts := stroker{p: p, u: width / 2, cr: cr, jr: jr}\n\ti := 0\n\tfor j := 4; j < len(q); {\n\t\tswitch q[j] {\n\t\tcase 0:\n\t\t\ts.stroke(q[i:j])\n\t\t\ti, j = j, j+4\n\t\tcase 1:\n\t\t\tj += 4\n\t\tcase 2:\n\t\t\tj += 6\n\t\tcase 3:\n\t\t\tj += 8\n\t\tdefault:\n\t\t\tpanic(\"freetype/raster: bad path\")\n\t\t}\n\t}\n\ts.stroke(q[i:])\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/truetype/face.go",
    "content": "// Copyright 2015 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage truetype\n\nimport (\n\t\"image\"\n\t\"math\"\n\n\t\"github.com/golang/freetype/raster\"\n\t\"golang.org/x/image/font\"\n\t\"golang.org/x/image/math/fixed\"\n)\n\nfunc powerOf2(i int) bool {\n\treturn i != 0 && (i&(i-1)) == 0\n}\n\n// Options are optional arguments to NewFace.\ntype Options struct {\n\t// Size is the font size in points, as in \"a 10 point font size\".\n\t//\n\t// A zero value means to use a 12 point font size.\n\tSize float64\n\n\t// DPI is the dots-per-inch resolution.\n\t//\n\t// A zero value means to use 72 DPI.\n\tDPI float64\n\n\t// Hinting is how to quantize the glyph nodes.\n\t//\n\t// A zero value means to use no hinting.\n\tHinting font.Hinting\n\n\t// GlyphCacheEntries is the number of entries in the glyph mask image\n\t// cache.\n\t//\n\t// If non-zero, it must be a power of 2.\n\t//\n\t// A zero value means to use 512 entries.\n\tGlyphCacheEntries int\n\n\t// SubPixelsX is the number of sub-pixel locations a glyph's dot is\n\t// quantized to, in the horizontal direction. For example, a value of 8\n\t// means that the dot is quantized to 1/8th of a pixel. This quantization\n\t// only affects the glyph mask image, not its bounding box or advance\n\t// width. A higher value gives a more faithful glyph image, but reduces the\n\t// effectiveness of the glyph cache.\n\t//\n\t// If non-zero, it must be a power of 2, and be between 1 and 64 inclusive.\n\t//\n\t// A zero value means to use 4 sub-pixel locations.\n\tSubPixelsX int\n\n\t// SubPixelsY is the number of sub-pixel locations a glyph's dot is\n\t// quantized to, in the vertical direction. For example, a value of 8\n\t// means that the dot is quantized to 1/8th of a pixel. This quantization\n\t// only affects the glyph mask image, not its bounding box or advance\n\t// width. A higher value gives a more faithful glyph image, but reduces the\n\t// effectiveness of the glyph cache.\n\t//\n\t// If non-zero, it must be a power of 2, and be between 1 and 64 inclusive.\n\t//\n\t// A zero value means to use 1 sub-pixel location.\n\tSubPixelsY int\n}\n\nfunc (o *Options) size() float64 {\n\tif o != nil && o.Size > 0 {\n\t\treturn o.Size\n\t}\n\treturn 12\n}\n\nfunc (o *Options) dpi() float64 {\n\tif o != nil && o.DPI > 0 {\n\t\treturn o.DPI\n\t}\n\treturn 72\n}\n\nfunc (o *Options) hinting() font.Hinting {\n\tif o != nil {\n\t\tswitch o.Hinting {\n\t\tcase font.HintingVertical, font.HintingFull:\n\t\t\t// TODO: support vertical hinting.\n\t\t\treturn font.HintingFull\n\t\t}\n\t}\n\treturn font.HintingNone\n}\n\nfunc (o *Options) glyphCacheEntries() int {\n\tif o != nil && powerOf2(o.GlyphCacheEntries) {\n\t\treturn o.GlyphCacheEntries\n\t}\n\t// 512 is 128 * 4 * 1, which lets us cache 128 glyphs at 4 * 1 subpixel\n\t// locations in the X and Y direction.\n\treturn 512\n}\n\nfunc (o *Options) subPixelsX() (value uint32, halfQuantum, mask fixed.Int26_6) {\n\tif o != nil {\n\t\tswitch o.SubPixelsX {\n\t\tcase 1, 2, 4, 8, 16, 32, 64:\n\t\t\treturn subPixels(o.SubPixelsX)\n\t\t}\n\t}\n\t// This default value of 4 isn't based on anything scientific, merely as\n\t// small a number as possible that looks almost as good as no quantization,\n\t// or returning subPixels(64).\n\treturn subPixels(4)\n}\n\nfunc (o *Options) subPixelsY() (value uint32, halfQuantum, mask fixed.Int26_6) {\n\tif o != nil {\n\t\tswitch o.SubPixelsX {\n\t\tcase 1, 2, 4, 8, 16, 32, 64:\n\t\t\treturn subPixels(o.SubPixelsX)\n\t\t}\n\t}\n\t// This default value of 1 isn't based on anything scientific, merely that\n\t// vertical sub-pixel glyph rendering is pretty rare. Baseline locations\n\t// can usually afford to snap to the pixel grid, so the vertical direction\n\t// doesn't have the deal with the horizontal's fractional advance widths.\n\treturn subPixels(1)\n}\n\n// subPixels returns q and the bias and mask that leads to q quantized\n// sub-pixel locations per full pixel.\n//\n// For example, q == 4 leads to a bias of 8 and a mask of 0xfffffff0, or -16,\n// because we want to round fractions of fixed.Int26_6 as:\n//\t-  0 to  7 rounds to 0.\n//\t-  8 to 23 rounds to 16.\n//\t- 24 to 39 rounds to 32.\n//\t- 40 to 55 rounds to 48.\n//\t- 56 to 63 rounds to 64.\n// which means to add 8 and then bitwise-and with -16, in two's complement\n// representation.\n//\n// When q ==  1, we want bias == 32 and mask == -64.\n// When q ==  2, we want bias == 16 and mask == -32.\n// When q ==  4, we want bias ==  8 and mask == -16.\n// ...\n// When q == 64, we want bias ==  0 and mask ==  -1. (The no-op case).\n// The pattern is clear.\nfunc subPixels(q int) (value uint32, bias, mask fixed.Int26_6) {\n\treturn uint32(q), 32 / fixed.Int26_6(q), -64 / fixed.Int26_6(q)\n}\n\n// glyphCacheEntry caches the arguments and return values of rasterize.\ntype glyphCacheEntry struct {\n\tkey glyphCacheKey\n\tval glyphCacheVal\n}\n\ntype glyphCacheKey struct {\n\tindex  Index\n\tfx, fy uint8\n}\n\ntype glyphCacheVal struct {\n\tadvanceWidth fixed.Int26_6\n\toffset       image.Point\n\tgw           int\n\tgh           int\n}\n\ntype indexCacheEntry struct {\n\trune  rune\n\tindex Index\n}\n\n// NewFace returns a new font.Face for the given Font.\nfunc NewFace(f *Font, opts *Options) font.Face {\n\ta := &face{\n\t\tf:          f,\n\t\thinting:    opts.hinting(),\n\t\tscale:      fixed.Int26_6(0.5 + (opts.size() * opts.dpi() * 64 / 72)),\n\t\tglyphCache: make([]glyphCacheEntry, opts.glyphCacheEntries()),\n\t}\n\ta.subPixelX, a.subPixelBiasX, a.subPixelMaskX = opts.subPixelsX()\n\ta.subPixelY, a.subPixelBiasY, a.subPixelMaskY = opts.subPixelsY()\n\n\t// Fill the cache with invalid entries. Valid glyph cache entries have fx\n\t// and fy in the range [0, 64). Valid index cache entries have rune >= 0.\n\tfor i := range a.glyphCache {\n\t\ta.glyphCache[i].key.fy = 0xff\n\t}\n\tfor i := range a.indexCache {\n\t\ta.indexCache[i].rune = -1\n\t}\n\n\t// Set the rasterizer's bounds to be big enough to handle the largest glyph.\n\tb := f.Bounds(a.scale)\n\txmin := +int(b.Min.X) >> 6\n\tymin := -int(b.Max.Y) >> 6\n\txmax := +int(b.Max.X+63) >> 6\n\tymax := -int(b.Min.Y-63) >> 6\n\ta.maxw = xmax - xmin\n\ta.maxh = ymax - ymin\n\ta.masks = image.NewAlpha(image.Rect(0, 0, a.maxw, a.maxh*len(a.glyphCache)))\n\ta.r.SetBounds(a.maxw, a.maxh)\n\ta.p = facePainter{a}\n\n\treturn a\n}\n\ntype face struct {\n\tf             *Font\n\thinting       font.Hinting\n\tscale         fixed.Int26_6\n\tsubPixelX     uint32\n\tsubPixelBiasX fixed.Int26_6\n\tsubPixelMaskX fixed.Int26_6\n\tsubPixelY     uint32\n\tsubPixelBiasY fixed.Int26_6\n\tsubPixelMaskY fixed.Int26_6\n\tmasks         *image.Alpha\n\tglyphCache    []glyphCacheEntry\n\tr             raster.Rasterizer\n\tp             raster.Painter\n\tpaintOffset   int\n\tmaxw          int\n\tmaxh          int\n\tglyphBuf      GlyphBuf\n\tindexCache    [indexCacheLen]indexCacheEntry\n\n\t// TODO: clip rectangle?\n}\n\nconst indexCacheLen = 256\n\nfunc (a *face) index(r rune) Index {\n\tconst mask = indexCacheLen - 1\n\tc := &a.indexCache[r&mask]\n\tif c.rune == r {\n\t\treturn c.index\n\t}\n\ti := a.f.Index(r)\n\tc.rune = r\n\tc.index = i\n\treturn i\n}\n\n// Close satisfies the font.Face interface.\nfunc (a *face) Close() error { return nil }\n\n// Metrics satisfies the font.Face interface.\nfunc (a *face) Metrics() font.Metrics {\n\tscale := float64(a.scale)\n\tfupe := float64(a.f.FUnitsPerEm())\n\treturn font.Metrics{\n\t\tHeight:  a.scale,\n\t\tAscent:  fixed.Int26_6(math.Ceil(scale * float64(+a.f.ascent) / fupe)),\n\t\tDescent: fixed.Int26_6(math.Ceil(scale * float64(-a.f.descent) / fupe)),\n\t}\n}\n\n// Kern satisfies the font.Face interface.\nfunc (a *face) Kern(r0, r1 rune) fixed.Int26_6 {\n\ti0 := a.index(r0)\n\ti1 := a.index(r1)\n\tkern := a.f.Kern(a.scale, i0, i1)\n\tif a.hinting != font.HintingNone {\n\t\tkern = (kern + 32) &^ 63\n\t}\n\treturn kern\n}\n\n// Glyph satisfies the font.Face interface.\nfunc (a *face) Glyph(dot fixed.Point26_6, r rune) (\n\tdr image.Rectangle, mask image.Image, maskp image.Point, advance fixed.Int26_6, ok bool) {\n\n\t// Quantize to the sub-pixel granularity.\n\tdotX := (dot.X + a.subPixelBiasX) & a.subPixelMaskX\n\tdotY := (dot.Y + a.subPixelBiasY) & a.subPixelMaskY\n\n\t// Split the coordinates into their integer and fractional parts.\n\tix, fx := int(dotX>>6), dotX&0x3f\n\tiy, fy := int(dotY>>6), dotY&0x3f\n\n\tindex := a.index(r)\n\tcIndex := uint32(index)\n\tcIndex = cIndex*a.subPixelX - uint32(fx/a.subPixelMaskX)\n\tcIndex = cIndex*a.subPixelY - uint32(fy/a.subPixelMaskY)\n\tcIndex &= uint32(len(a.glyphCache) - 1)\n\ta.paintOffset = a.maxh * int(cIndex)\n\tk := glyphCacheKey{\n\t\tindex: index,\n\t\tfx:    uint8(fx),\n\t\tfy:    uint8(fy),\n\t}\n\tvar v glyphCacheVal\n\tif a.glyphCache[cIndex].key != k {\n\t\tvar ok bool\n\t\tv, ok = a.rasterize(index, fx, fy)\n\t\tif !ok {\n\t\t\treturn image.Rectangle{}, nil, image.Point{}, 0, false\n\t\t}\n\t\ta.glyphCache[cIndex] = glyphCacheEntry{k, v}\n\t} else {\n\t\tv = a.glyphCache[cIndex].val\n\t}\n\n\tdr.Min = image.Point{\n\t\tX: ix + v.offset.X,\n\t\tY: iy + v.offset.Y,\n\t}\n\tdr.Max = image.Point{\n\t\tX: dr.Min.X + v.gw,\n\t\tY: dr.Min.Y + v.gh,\n\t}\n\treturn dr, a.masks, image.Point{Y: a.paintOffset}, v.advanceWidth, true\n}\n\nfunc (a *face) GlyphBounds(r rune) (bounds fixed.Rectangle26_6, advance fixed.Int26_6, ok bool) {\n\tif err := a.glyphBuf.Load(a.f, a.scale, a.index(r), a.hinting); err != nil {\n\t\treturn fixed.Rectangle26_6{}, 0, false\n\t}\n\txmin := +a.glyphBuf.Bounds.Min.X\n\tymin := -a.glyphBuf.Bounds.Max.Y\n\txmax := +a.glyphBuf.Bounds.Max.X\n\tymax := -a.glyphBuf.Bounds.Min.Y\n\tif xmin > xmax || ymin > ymax {\n\t\treturn fixed.Rectangle26_6{}, 0, false\n\t}\n\treturn fixed.Rectangle26_6{\n\t\tMin: fixed.Point26_6{\n\t\t\tX: xmin,\n\t\t\tY: ymin,\n\t\t},\n\t\tMax: fixed.Point26_6{\n\t\t\tX: xmax,\n\t\t\tY: ymax,\n\t\t},\n\t}, a.glyphBuf.AdvanceWidth, true\n}\n\nfunc (a *face) GlyphAdvance(r rune) (advance fixed.Int26_6, ok bool) {\n\tif err := a.glyphBuf.Load(a.f, a.scale, a.index(r), a.hinting); err != nil {\n\t\treturn 0, false\n\t}\n\treturn a.glyphBuf.AdvanceWidth, true\n}\n\n// rasterize returns the advance width, integer-pixel offset to render at, and\n// the width and height of the given glyph at the given sub-pixel offsets.\n//\n// The 26.6 fixed point arguments fx and fy must be in the range [0, 1).\nfunc (a *face) rasterize(index Index, fx, fy fixed.Int26_6) (v glyphCacheVal, ok bool) {\n\tif err := a.glyphBuf.Load(a.f, a.scale, index, a.hinting); err != nil {\n\t\treturn glyphCacheVal{}, false\n\t}\n\t// Calculate the integer-pixel bounds for the glyph.\n\txmin := int(fx+a.glyphBuf.Bounds.Min.X) >> 6\n\tymin := int(fy-a.glyphBuf.Bounds.Max.Y) >> 6\n\txmax := int(fx+a.glyphBuf.Bounds.Max.X+0x3f) >> 6\n\tymax := int(fy-a.glyphBuf.Bounds.Min.Y+0x3f) >> 6\n\tif xmin > xmax || ymin > ymax {\n\t\treturn glyphCacheVal{}, false\n\t}\n\t// A TrueType's glyph's nodes can have negative co-ordinates, but the\n\t// rasterizer clips anything left of x=0 or above y=0. xmin and ymin are\n\t// the pixel offsets, based on the font's FUnit metrics, that let a\n\t// negative co-ordinate in TrueType space be non-negative in rasterizer\n\t// space. xmin and ymin are typically <= 0.\n\tfx -= fixed.Int26_6(xmin << 6)\n\tfy -= fixed.Int26_6(ymin << 6)\n\t// Rasterize the glyph's vectors.\n\ta.r.Clear()\n\tpixOffset := a.paintOffset * a.maxw\n\tclear(a.masks.Pix[pixOffset : pixOffset+a.maxw*a.maxh])\n\te0 := 0\n\tfor _, e1 := range a.glyphBuf.Ends {\n\t\ta.drawContour(a.glyphBuf.Points[e0:e1], fx, fy)\n\t\te0 = e1\n\t}\n\ta.r.Rasterize(a.p)\n\treturn glyphCacheVal{\n\t\ta.glyphBuf.AdvanceWidth,\n\t\timage.Point{xmin, ymin},\n\t\txmax - xmin,\n\t\tymax - ymin,\n\t}, true\n}\n\nfunc clear(pix []byte) {\n\tfor i := range pix {\n\t\tpix[i] = 0\n\t}\n}\n\n// drawContour draws the given closed contour with the given offset.\nfunc (a *face) drawContour(ps []Point, dx, dy fixed.Int26_6) {\n\tif len(ps) == 0 {\n\t\treturn\n\t}\n\n\t// The low bit of each point's Flags value is whether the point is on the\n\t// curve. Truetype fonts only have quadratic Bézier curves, not cubics.\n\t// Thus, two consecutive off-curve points imply an on-curve point in the\n\t// middle of those two.\n\t//\n\t// See http://chanae.walon.org/pub/ttf/ttf_glyphs.htm for more details.\n\n\t// ps[0] is a truetype.Point measured in FUnits and positive Y going\n\t// upwards. start is the same thing measured in fixed point units and\n\t// positive Y going downwards, and offset by (dx, dy).\n\tstart := fixed.Point26_6{\n\t\tX: dx + ps[0].X,\n\t\tY: dy - ps[0].Y,\n\t}\n\tvar others []Point\n\tif ps[0].Flags&0x01 != 0 {\n\t\tothers = ps[1:]\n\t} else {\n\t\tlast := fixed.Point26_6{\n\t\t\tX: dx + ps[len(ps)-1].X,\n\t\t\tY: dy - ps[len(ps)-1].Y,\n\t\t}\n\t\tif ps[len(ps)-1].Flags&0x01 != 0 {\n\t\t\tstart = last\n\t\t\tothers = ps[:len(ps)-1]\n\t\t} else {\n\t\t\tstart = fixed.Point26_6{\n\t\t\t\tX: (start.X + last.X) / 2,\n\t\t\t\tY: (start.Y + last.Y) / 2,\n\t\t\t}\n\t\t\tothers = ps\n\t\t}\n\t}\n\ta.r.Start(start)\n\tq0, on0 := start, true\n\tfor _, p := range others {\n\t\tq := fixed.Point26_6{\n\t\t\tX: dx + p.X,\n\t\t\tY: dy - p.Y,\n\t\t}\n\t\ton := p.Flags&0x01 != 0\n\t\tif on {\n\t\t\tif on0 {\n\t\t\t\ta.r.Add1(q)\n\t\t\t} else {\n\t\t\t\ta.r.Add2(q0, q)\n\t\t\t}\n\t\t} else {\n\t\t\tif on0 {\n\t\t\t\t// No-op.\n\t\t\t} else {\n\t\t\t\tmid := fixed.Point26_6{\n\t\t\t\t\tX: (q0.X + q.X) / 2,\n\t\t\t\t\tY: (q0.Y + q.Y) / 2,\n\t\t\t\t}\n\t\t\t\ta.r.Add2(q0, mid)\n\t\t\t}\n\t\t}\n\t\tq0, on0 = q, on\n\t}\n\t// Close the curve.\n\tif on0 {\n\t\ta.r.Add1(start)\n\t} else {\n\t\ta.r.Add2(q0, start)\n\t}\n}\n\n// facePainter is like a raster.AlphaSrcPainter, with an additional Y offset\n// (face.paintOffset) to the painted spans.\ntype facePainter struct {\n\ta *face\n}\n\nfunc (p facePainter) Paint(ss []raster.Span, done bool) {\n\tm := p.a.masks\n\tb := m.Bounds()\n\tb.Min.Y = p.a.paintOffset\n\tb.Max.Y = p.a.paintOffset + p.a.maxh\n\tfor _, s := range ss {\n\t\ts.Y += p.a.paintOffset\n\t\tif s.Y < b.Min.Y {\n\t\t\tcontinue\n\t\t}\n\t\tif s.Y >= b.Max.Y {\n\t\t\treturn\n\t\t}\n\t\tif s.X0 < b.Min.X {\n\t\t\ts.X0 = b.Min.X\n\t\t}\n\t\tif s.X1 > b.Max.X {\n\t\t\ts.X1 = b.Max.X\n\t\t}\n\t\tif s.X0 >= s.X1 {\n\t\t\tcontinue\n\t\t}\n\t\tbase := (s.Y-m.Rect.Min.Y)*m.Stride - m.Rect.Min.X\n\t\tp := m.Pix[base+s.X0 : base+s.X1]\n\t\tcolor := uint8(s.Alpha >> 8)\n\t\tfor i := range p {\n\t\t\tp[i] = color\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/truetype/glyph.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage truetype\n\nimport (\n\t\"golang.org/x/image/font\"\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// TODO: implement VerticalHinting.\n\n// A Point is a co-ordinate pair plus whether it is 'on' a contour or an 'off'\n// control point.\ntype Point struct {\n\tX, Y fixed.Int26_6\n\t// The Flags' LSB means whether or not this Point is 'on' the contour.\n\t// Other bits are reserved for internal use.\n\tFlags uint32\n}\n\n// A GlyphBuf holds a glyph's contours. A GlyphBuf can be re-used to load a\n// series of glyphs from a Font.\ntype GlyphBuf struct {\n\t// AdvanceWidth is the glyph's advance width.\n\tAdvanceWidth fixed.Int26_6\n\t// Bounds is the glyph's bounding box.\n\tBounds fixed.Rectangle26_6\n\t// Points contains all Points from all contours of the glyph. If hinting\n\t// was used to load a glyph then Unhinted contains those Points before they\n\t// were hinted, and InFontUnits contains those Points before they were\n\t// hinted and scaled.\n\tPoints, Unhinted, InFontUnits []Point\n\t// Ends is the point indexes of the end point of each contour. The length\n\t// of Ends is the number of contours in the glyph. The i'th contour\n\t// consists of points Points[Ends[i-1]:Ends[i]], where Ends[-1] is\n\t// interpreted to mean zero.\n\tEnds []int\n\n\tfont    *Font\n\tscale   fixed.Int26_6\n\thinting font.Hinting\n\thinter  hinter\n\t// phantomPoints are the co-ordinates of the synthetic phantom points\n\t// used for hinting and bounding box calculations.\n\tphantomPoints [4]Point\n\t// pp1x is the X co-ordinate of the first phantom point. The '1' is\n\t// using 1-based indexing; pp1x is almost always phantomPoints[0].X.\n\t// TODO: eliminate this and consistently use phantomPoints[0].X.\n\tpp1x fixed.Int26_6\n\t// metricsSet is whether the glyph's metrics have been set yet. For a\n\t// compound glyph, a sub-glyph may override the outer glyph's metrics.\n\tmetricsSet bool\n\t// tmp is a scratch buffer.\n\ttmp []Point\n}\n\n// Flags for decoding a glyph's contours. These flags are documented at\n// http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html.\nconst (\n\tflagOnCurve = 1 << iota\n\tflagXShortVector\n\tflagYShortVector\n\tflagRepeat\n\tflagPositiveXShortVector\n\tflagPositiveYShortVector\n\n\t// The remaining flags are for internal use.\n\tflagTouchedX\n\tflagTouchedY\n)\n\n// The same flag bits (0x10 and 0x20) are overloaded to have two meanings,\n// dependent on the value of the flag{X,Y}ShortVector bits.\nconst (\n\tflagThisXIsSame = flagPositiveXShortVector\n\tflagThisYIsSame = flagPositiveYShortVector\n)\n\n// Load loads a glyph's contours from a Font, overwriting any previously loaded\n// contours for this GlyphBuf. scale is the number of 26.6 fixed point units in\n// 1 em, i is the glyph index, and h is the hinting policy.\nfunc (g *GlyphBuf) Load(f *Font, scale fixed.Int26_6, i Index, h font.Hinting) error {\n\tg.Points = g.Points[:0]\n\tg.Unhinted = g.Unhinted[:0]\n\tg.InFontUnits = g.InFontUnits[:0]\n\tg.Ends = g.Ends[:0]\n\tg.font = f\n\tg.hinting = h\n\tg.scale = scale\n\tg.pp1x = 0\n\tg.phantomPoints = [4]Point{}\n\tg.metricsSet = false\n\n\tif h != font.HintingNone {\n\t\tif err := g.hinter.init(f, scale); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := g.load(0, i, true); err != nil {\n\t\treturn err\n\t}\n\t// TODO: this selection of either g.pp1x or g.phantomPoints[0].X isn't ideal,\n\t// and should be cleaned up once we have all the testScaling tests passing,\n\t// plus additional tests for Freetype-Go's bounding boxes matching C Freetype's.\n\tpp1x := g.pp1x\n\tif h != font.HintingNone {\n\t\tpp1x = g.phantomPoints[0].X\n\t}\n\tif pp1x != 0 {\n\t\tfor i := range g.Points {\n\t\t\tg.Points[i].X -= pp1x\n\t\t}\n\t}\n\n\tadvanceWidth := g.phantomPoints[1].X - g.phantomPoints[0].X\n\tif h != font.HintingNone {\n\t\tif len(f.hdmx) >= 8 {\n\t\t\tif n := u32(f.hdmx, 4); n > 3+uint32(i) {\n\t\t\t\tfor hdmx := f.hdmx[8:]; uint32(len(hdmx)) >= n; hdmx = hdmx[n:] {\n\t\t\t\t\tif fixed.Int26_6(hdmx[0]) == scale>>6 {\n\t\t\t\t\t\tadvanceWidth = fixed.Int26_6(hdmx[2+i]) << 6\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tadvanceWidth = (advanceWidth + 32) &^ 63\n\t}\n\tg.AdvanceWidth = advanceWidth\n\n\t// Set g.Bounds to the 'control box', which is the bounding box of the\n\t// Bézier curves' control points. This is easier to calculate, no smaller\n\t// than and often equal to the tightest possible bounding box of the curves\n\t// themselves. This approach is what C Freetype does. We can't just scale\n\t// the nominal bounding box in the glyf data as the hinting process and\n\t// phantom point adjustment may move points outside of that box.\n\tif len(g.Points) == 0 {\n\t\tg.Bounds = fixed.Rectangle26_6{}\n\t} else {\n\t\tp := g.Points[0]\n\t\tg.Bounds.Min.X = p.X\n\t\tg.Bounds.Max.X = p.X\n\t\tg.Bounds.Min.Y = p.Y\n\t\tg.Bounds.Max.Y = p.Y\n\t\tfor _, p := range g.Points[1:] {\n\t\t\tif g.Bounds.Min.X > p.X {\n\t\t\t\tg.Bounds.Min.X = p.X\n\t\t\t} else if g.Bounds.Max.X < p.X {\n\t\t\t\tg.Bounds.Max.X = p.X\n\t\t\t}\n\t\t\tif g.Bounds.Min.Y > p.Y {\n\t\t\t\tg.Bounds.Min.Y = p.Y\n\t\t\t} else if g.Bounds.Max.Y < p.Y {\n\t\t\t\tg.Bounds.Max.Y = p.Y\n\t\t\t}\n\t\t}\n\t\t// Snap the box to the grid, if hinting is on.\n\t\tif h != font.HintingNone {\n\t\t\tg.Bounds.Min.X &^= 63\n\t\t\tg.Bounds.Min.Y &^= 63\n\t\t\tg.Bounds.Max.X += 63\n\t\t\tg.Bounds.Max.X &^= 63\n\t\t\tg.Bounds.Max.Y += 63\n\t\t\tg.Bounds.Max.Y &^= 63\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (g *GlyphBuf) load(recursion uint32, i Index, useMyMetrics bool) (err error) {\n\t// The recursion limit here is arbitrary, but defends against malformed glyphs.\n\tif recursion >= 32 {\n\t\treturn UnsupportedError(\"excessive compound glyph recursion\")\n\t}\n\t// Find the relevant slice of g.font.glyf.\n\tvar g0, g1 uint32\n\tif g.font.locaOffsetFormat == locaOffsetFormatShort {\n\t\tg0 = 2 * uint32(u16(g.font.loca, 2*int(i)))\n\t\tg1 = 2 * uint32(u16(g.font.loca, 2*int(i)+2))\n\t} else {\n\t\tg0 = u32(g.font.loca, 4*int(i))\n\t\tg1 = u32(g.font.loca, 4*int(i)+4)\n\t}\n\n\t// Decode the contour count and nominal bounding box, from the first\n\t// 10 bytes of the glyf data. boundsYMin and boundsXMax, at offsets 4\n\t// and 6, are unused.\n\tglyf, ne, boundsXMin, boundsYMax := []byte(nil), 0, fixed.Int26_6(0), fixed.Int26_6(0)\n\tif g0+10 <= g1 {\n\t\tglyf = g.font.glyf[g0:g1]\n\t\tne = int(int16(u16(glyf, 0)))\n\t\tboundsXMin = fixed.Int26_6(int16(u16(glyf, 2)))\n\t\tboundsYMax = fixed.Int26_6(int16(u16(glyf, 8)))\n\t}\n\n\t// Create the phantom points.\n\tuhm, pp1x := g.font.unscaledHMetric(i), fixed.Int26_6(0)\n\tuvm := g.font.unscaledVMetric(i, boundsYMax)\n\tg.phantomPoints = [4]Point{\n\t\t{X: boundsXMin - uhm.LeftSideBearing},\n\t\t{X: boundsXMin - uhm.LeftSideBearing + uhm.AdvanceWidth},\n\t\t{X: uhm.AdvanceWidth / 2, Y: boundsYMax + uvm.TopSideBearing},\n\t\t{X: uhm.AdvanceWidth / 2, Y: boundsYMax + uvm.TopSideBearing - uvm.AdvanceHeight},\n\t}\n\tif len(glyf) == 0 {\n\t\tg.addPhantomsAndScale(len(g.Points), len(g.Points), true, true)\n\t\tcopy(g.phantomPoints[:], g.Points[len(g.Points)-4:])\n\t\tg.Points = g.Points[:len(g.Points)-4]\n\t\t// TODO: also trim g.InFontUnits and g.Unhinted?\n\t\treturn nil\n\t}\n\n\t// Load and hint the contours.\n\tif ne < 0 {\n\t\tif ne != -1 {\n\t\t\t// http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html says that\n\t\t\t// \"the values -2, -3, and so forth, are reserved for future use.\"\n\t\t\treturn UnsupportedError(\"negative number of contours\")\n\t\t}\n\t\tpp1x = g.font.scale(g.scale * (boundsXMin - uhm.LeftSideBearing))\n\t\tif err := g.loadCompound(recursion, uhm, i, glyf, useMyMetrics); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tnp0, ne0 := len(g.Points), len(g.Ends)\n\t\tprogram := g.loadSimple(glyf, ne)\n\t\tg.addPhantomsAndScale(np0, np0, true, true)\n\t\tpp1x = g.Points[len(g.Points)-4].X\n\t\tif g.hinting != font.HintingNone {\n\t\t\tif len(program) != 0 {\n\t\t\t\terr := g.hinter.run(\n\t\t\t\t\tprogram,\n\t\t\t\t\tg.Points[np0:],\n\t\t\t\t\tg.Unhinted[np0:],\n\t\t\t\t\tg.InFontUnits[np0:],\n\t\t\t\t\tg.Ends[ne0:],\n\t\t\t\t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Drop the four phantom points.\n\t\t\tg.InFontUnits = g.InFontUnits[:len(g.InFontUnits)-4]\n\t\t\tg.Unhinted = g.Unhinted[:len(g.Unhinted)-4]\n\t\t}\n\t\tif useMyMetrics {\n\t\t\tcopy(g.phantomPoints[:], g.Points[len(g.Points)-4:])\n\t\t}\n\t\tg.Points = g.Points[:len(g.Points)-4]\n\t\tif np0 != 0 {\n\t\t\t// The hinting program expects the []Ends values to be indexed\n\t\t\t// relative to the inner glyph, not the outer glyph, so we delay\n\t\t\t// adding np0 until after the hinting program (if any) has run.\n\t\t\tfor i := ne0; i < len(g.Ends); i++ {\n\t\t\t\tg.Ends[i] += np0\n\t\t\t}\n\t\t}\n\t}\n\tif useMyMetrics && !g.metricsSet {\n\t\tg.metricsSet = true\n\t\tg.pp1x = pp1x\n\t}\n\treturn nil\n}\n\n// loadOffset is the initial offset for loadSimple and loadCompound. The first\n// 10 bytes are the number of contours and the bounding box.\nconst loadOffset = 10\n\nfunc (g *GlyphBuf) loadSimple(glyf []byte, ne int) (program []byte) {\n\toffset := loadOffset\n\tfor i := 0; i < ne; i++ {\n\t\tg.Ends = append(g.Ends, 1+int(u16(glyf, offset)))\n\t\toffset += 2\n\t}\n\n\t// Note the TrueType hinting instructions.\n\tinstrLen := int(u16(glyf, offset))\n\toffset += 2\n\tprogram = glyf[offset : offset+instrLen]\n\toffset += instrLen\n\n\tif ne == 0 {\n\t\treturn program\n\t}\n\n\tnp0 := len(g.Points)\n\tnp1 := np0 + int(g.Ends[len(g.Ends)-1])\n\n\t// Decode the flags.\n\tfor i := np0; i < np1; {\n\t\tc := uint32(glyf[offset])\n\t\toffset++\n\t\tg.Points = append(g.Points, Point{Flags: c})\n\t\ti++\n\t\tif c&flagRepeat != 0 {\n\t\t\tcount := glyf[offset]\n\t\t\toffset++\n\t\t\tfor ; count > 0; count-- {\n\t\t\t\tg.Points = append(g.Points, Point{Flags: c})\n\t\t\t\ti++\n\t\t\t}\n\t\t}\n\t}\n\n\t// Decode the co-ordinates.\n\tvar x int16\n\tfor i := np0; i < np1; i++ {\n\t\tf := g.Points[i].Flags\n\t\tif f&flagXShortVector != 0 {\n\t\t\tdx := int16(glyf[offset])\n\t\t\toffset++\n\t\t\tif f&flagPositiveXShortVector == 0 {\n\t\t\t\tx -= dx\n\t\t\t} else {\n\t\t\t\tx += dx\n\t\t\t}\n\t\t} else if f&flagThisXIsSame == 0 {\n\t\t\tx += int16(u16(glyf, offset))\n\t\t\toffset += 2\n\t\t}\n\t\tg.Points[i].X = fixed.Int26_6(x)\n\t}\n\tvar y int16\n\tfor i := np0; i < np1; i++ {\n\t\tf := g.Points[i].Flags\n\t\tif f&flagYShortVector != 0 {\n\t\t\tdy := int16(glyf[offset])\n\t\t\toffset++\n\t\t\tif f&flagPositiveYShortVector == 0 {\n\t\t\t\ty -= dy\n\t\t\t} else {\n\t\t\t\ty += dy\n\t\t\t}\n\t\t} else if f&flagThisYIsSame == 0 {\n\t\t\ty += int16(u16(glyf, offset))\n\t\t\toffset += 2\n\t\t}\n\t\tg.Points[i].Y = fixed.Int26_6(y)\n\t}\n\n\treturn program\n}\n\nfunc (g *GlyphBuf) loadCompound(recursion uint32, uhm HMetric, i Index,\n\tglyf []byte, useMyMetrics bool) error {\n\n\t// Flags for decoding a compound glyph. These flags are documented at\n\t// http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html.\n\tconst (\n\t\tflagArg1And2AreWords = 1 << iota\n\t\tflagArgsAreXYValues\n\t\tflagRoundXYToGrid\n\t\tflagWeHaveAScale\n\t\tflagUnused\n\t\tflagMoreComponents\n\t\tflagWeHaveAnXAndYScale\n\t\tflagWeHaveATwoByTwo\n\t\tflagWeHaveInstructions\n\t\tflagUseMyMetrics\n\t\tflagOverlapCompound\n\t)\n\tnp0, ne0 := len(g.Points), len(g.Ends)\n\toffset := loadOffset\n\tfor {\n\t\tflags := u16(glyf, offset)\n\t\tcomponent := Index(u16(glyf, offset+2))\n\t\tdx, dy, transform, hasTransform := fixed.Int26_6(0), fixed.Int26_6(0), [4]int16{}, false\n\t\tif flags&flagArg1And2AreWords != 0 {\n\t\t\tdx = fixed.Int26_6(int16(u16(glyf, offset+4)))\n\t\t\tdy = fixed.Int26_6(int16(u16(glyf, offset+6)))\n\t\t\toffset += 8\n\t\t} else {\n\t\t\tdx = fixed.Int26_6(int16(int8(glyf[offset+4])))\n\t\t\tdy = fixed.Int26_6(int16(int8(glyf[offset+5])))\n\t\t\toffset += 6\n\t\t}\n\t\tif flags&flagArgsAreXYValues == 0 {\n\t\t\treturn UnsupportedError(\"compound glyph transform vector\")\n\t\t}\n\t\tif flags&(flagWeHaveAScale|flagWeHaveAnXAndYScale|flagWeHaveATwoByTwo) != 0 {\n\t\t\thasTransform = true\n\t\t\tswitch {\n\t\t\tcase flags&flagWeHaveAScale != 0:\n\t\t\t\ttransform[0] = int16(u16(glyf, offset+0))\n\t\t\t\ttransform[3] = transform[0]\n\t\t\t\toffset += 2\n\t\t\tcase flags&flagWeHaveAnXAndYScale != 0:\n\t\t\t\ttransform[0] = int16(u16(glyf, offset+0))\n\t\t\t\ttransform[3] = int16(u16(glyf, offset+2))\n\t\t\t\toffset += 4\n\t\t\tcase flags&flagWeHaveATwoByTwo != 0:\n\t\t\t\ttransform[0] = int16(u16(glyf, offset+0))\n\t\t\t\ttransform[1] = int16(u16(glyf, offset+2))\n\t\t\t\ttransform[2] = int16(u16(glyf, offset+4))\n\t\t\t\ttransform[3] = int16(u16(glyf, offset+6))\n\t\t\t\toffset += 8\n\t\t\t}\n\t\t}\n\t\tsavedPP := g.phantomPoints\n\t\tnp0 := len(g.Points)\n\t\tcomponentUMM := useMyMetrics && (flags&flagUseMyMetrics != 0)\n\t\tif err := g.load(recursion+1, component, componentUMM); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif flags&flagUseMyMetrics == 0 {\n\t\t\tg.phantomPoints = savedPP\n\t\t}\n\t\tif hasTransform {\n\t\t\tfor j := np0; j < len(g.Points); j++ {\n\t\t\t\tp := &g.Points[j]\n\t\t\t\tnewX := 0 +\n\t\t\t\t\tfixed.Int26_6((int64(p.X)*int64(transform[0])+1<<13)>>14) +\n\t\t\t\t\tfixed.Int26_6((int64(p.Y)*int64(transform[2])+1<<13)>>14)\n\t\t\t\tnewY := 0 +\n\t\t\t\t\tfixed.Int26_6((int64(p.X)*int64(transform[1])+1<<13)>>14) +\n\t\t\t\t\tfixed.Int26_6((int64(p.Y)*int64(transform[3])+1<<13)>>14)\n\t\t\t\tp.X, p.Y = newX, newY\n\t\t\t}\n\t\t}\n\t\tdx = g.font.scale(g.scale * dx)\n\t\tdy = g.font.scale(g.scale * dy)\n\t\tif flags&flagRoundXYToGrid != 0 {\n\t\t\tdx = (dx + 32) &^ 63\n\t\t\tdy = (dy + 32) &^ 63\n\t\t}\n\t\tfor j := np0; j < len(g.Points); j++ {\n\t\t\tp := &g.Points[j]\n\t\t\tp.X += dx\n\t\t\tp.Y += dy\n\t\t}\n\t\t// TODO: also adjust g.InFontUnits and g.Unhinted?\n\t\tif flags&flagMoreComponents == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tinstrLen := 0\n\tif g.hinting != font.HintingNone && offset+2 <= len(glyf) {\n\t\tinstrLen = int(u16(glyf, offset))\n\t\toffset += 2\n\t}\n\n\tg.addPhantomsAndScale(np0, len(g.Points), false, instrLen > 0)\n\tpoints, ends := g.Points[np0:], g.Ends[ne0:]\n\tg.Points = g.Points[:len(g.Points)-4]\n\tfor j := range points {\n\t\tpoints[j].Flags &^= flagTouchedX | flagTouchedY\n\t}\n\n\tif instrLen == 0 {\n\t\tif !g.metricsSet {\n\t\t\tcopy(g.phantomPoints[:], points[len(points)-4:])\n\t\t}\n\t\treturn nil\n\t}\n\n\t// Hint the compound glyph.\n\tprogram := glyf[offset : offset+instrLen]\n\t// Temporarily adjust the ends to be relative to this compound glyph.\n\tif np0 != 0 {\n\t\tfor i := range ends {\n\t\t\tends[i] -= np0\n\t\t}\n\t}\n\t// Hinting instructions of a composite glyph completely refer to the\n\t// (already) hinted subglyphs.\n\tg.tmp = append(g.tmp[:0], points...)\n\tif err := g.hinter.run(program, points, g.tmp, g.tmp, ends); err != nil {\n\t\treturn err\n\t}\n\tif np0 != 0 {\n\t\tfor i := range ends {\n\t\t\tends[i] += np0\n\t\t}\n\t}\n\tif !g.metricsSet {\n\t\tcopy(g.phantomPoints[:], points[len(points)-4:])\n\t}\n\treturn nil\n}\n\nfunc (g *GlyphBuf) addPhantomsAndScale(np0, np1 int, simple, adjust bool) {\n\t// Add the four phantom points.\n\tg.Points = append(g.Points, g.phantomPoints[:]...)\n\t// Scale the points.\n\tif simple && g.hinting != font.HintingNone {\n\t\tg.InFontUnits = append(g.InFontUnits, g.Points[np1:]...)\n\t}\n\tfor i := np1; i < len(g.Points); i++ {\n\t\tp := &g.Points[i]\n\t\tp.X = g.font.scale(g.scale * p.X)\n\t\tp.Y = g.font.scale(g.scale * p.Y)\n\t}\n\tif g.hinting == font.HintingNone {\n\t\treturn\n\t}\n\t// Round the 1st phantom point to the grid, shifting all other points equally.\n\t// Note that \"all other points\" starts from np0, not np1.\n\t// TODO: delete this adjustment and the np0/np1 distinction, when\n\t// we update the compatibility tests to C Freetype 2.5.3.\n\t// See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=05c786d990390a7ca18e62962641dac740bacb06\n\tif adjust {\n\t\tpp1x := g.Points[len(g.Points)-4].X\n\t\tif dx := ((pp1x + 32) &^ 63) - pp1x; dx != 0 {\n\t\t\tfor i := np0; i < len(g.Points); i++ {\n\t\t\t\tg.Points[i].X += dx\n\t\t\t}\n\t\t}\n\t}\n\tif simple {\n\t\tg.Unhinted = append(g.Unhinted, g.Points[np1:]...)\n\t}\n\t// Round the 2nd and 4th phantom point to the grid.\n\tp := &g.Points[len(g.Points)-3]\n\tp.X = (p.X + 32) &^ 63\n\tp = &g.Points[len(g.Points)-1]\n\tp.Y = (p.Y + 32) &^ 63\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/truetype/hint.go",
    "content": "// Copyright 2012 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage truetype\n\n// This file implements a Truetype bytecode interpreter.\n// The opcodes are described at https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"golang.org/x/image/math/fixed\"\n)\n\nconst (\n\ttwilightZone = 0\n\tglyphZone    = 1\n\tnumZone      = 2\n)\n\ntype pointType uint32\n\nconst (\n\tcurrent      pointType = 0\n\tunhinted     pointType = 1\n\tinFontUnits  pointType = 2\n\tnumPointType           = 3\n)\n\n// callStackEntry is a bytecode call stack entry.\ntype callStackEntry struct {\n\tprogram   []byte\n\tpc        int\n\tloopCount int32\n}\n\n// hinter implements bytecode hinting. A hinter can be re-used to hint a series\n// of glyphs from a Font.\ntype hinter struct {\n\tstack, store []int32\n\n\t// functions is a map from function number to bytecode.\n\tfunctions map[int32][]byte\n\n\t// font and scale are the font and scale last used for this hinter.\n\t// Changing the font will require running the new font's fpgm bytecode.\n\t// Changing either will require running the font's prep bytecode.\n\tfont  *Font\n\tscale fixed.Int26_6\n\n\t// gs and defaultGS are the current and default graphics state. The\n\t// default graphics state is the global default graphics state after\n\t// the font's fpgm and prep programs have been run.\n\tgs, defaultGS graphicsState\n\n\t// points and ends are the twilight zone's points, glyph's points\n\t// and glyph's contour boundaries.\n\tpoints [numZone][numPointType][]Point\n\tends   []int\n\n\t// scaledCVT is the lazily initialized scaled Control Value Table.\n\tscaledCVTInitialized bool\n\tscaledCVT            []fixed.Int26_6\n}\n\n// graphicsState is described at https://developer.apple.com/fonts/TTRefMan/RM04/Chap4.html\ntype graphicsState struct {\n\t// Projection vector, freedom vector and dual projection vector.\n\tpv, fv, dv [2]f2dot14\n\t// Reference points and zone pointers.\n\trp, zp [3]int32\n\t// Control Value / Single Width Cut-In.\n\tcontrolValueCutIn, singleWidthCutIn, singleWidth fixed.Int26_6\n\t// Delta base / shift.\n\tdeltaBase, deltaShift int32\n\t// Minimum distance.\n\tminDist fixed.Int26_6\n\t// Loop count.\n\tloop int32\n\t// Rounding policy.\n\troundPeriod, roundPhase, roundThreshold fixed.Int26_6\n\troundSuper45                            bool\n\t// Auto-flip.\n\tautoFlip bool\n}\n\nvar globalDefaultGS = graphicsState{\n\tpv:                [2]f2dot14{0x4000, 0}, // Unit vector along the X axis.\n\tfv:                [2]f2dot14{0x4000, 0},\n\tdv:                [2]f2dot14{0x4000, 0},\n\tzp:                [3]int32{1, 1, 1},\n\tcontrolValueCutIn: (17 << 6) / 16, // 17/16 as a fixed.Int26_6.\n\tdeltaBase:         9,\n\tdeltaShift:        3,\n\tminDist:           1 << 6, // 1 as a fixed.Int26_6.\n\tloop:              1,\n\troundPeriod:       1 << 6, // 1 as a fixed.Int26_6.\n\troundThreshold:    1 << 5, // 1/2 as a fixed.Int26_6.\n\troundSuper45:      false,\n\tautoFlip:          true,\n}\n\nfunc resetTwilightPoints(f *Font, p []Point) []Point {\n\tif n := int(f.maxTwilightPoints) + 4; n <= cap(p) {\n\t\tp = p[:n]\n\t\tfor i := range p {\n\t\t\tp[i] = Point{}\n\t\t}\n\t} else {\n\t\tp = make([]Point, n)\n\t}\n\treturn p\n}\n\nfunc (h *hinter) init(f *Font, scale fixed.Int26_6) error {\n\th.points[twilightZone][0] = resetTwilightPoints(f, h.points[twilightZone][0])\n\th.points[twilightZone][1] = resetTwilightPoints(f, h.points[twilightZone][1])\n\th.points[twilightZone][2] = resetTwilightPoints(f, h.points[twilightZone][2])\n\n\trescale := h.scale != scale\n\tif h.font != f {\n\t\th.font, rescale = f, true\n\t\tif h.functions == nil {\n\t\t\th.functions = make(map[int32][]byte)\n\t\t} else {\n\t\t\tfor k := range h.functions {\n\t\t\t\tdelete(h.functions, k)\n\t\t\t}\n\t\t}\n\n\t\tif x := int(f.maxStackElements); x > len(h.stack) {\n\t\t\tx += 255\n\t\t\tx &^= 255\n\t\t\th.stack = make([]int32, x)\n\t\t}\n\t\tif x := int(f.maxStorage); x > len(h.store) {\n\t\t\tx += 15\n\t\t\tx &^= 15\n\t\t\th.store = make([]int32, x)\n\t\t}\n\t\tif len(f.fpgm) != 0 {\n\t\t\tif err := h.run(f.fpgm, nil, nil, nil, nil); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\tif rescale {\n\t\th.scale = scale\n\t\th.scaledCVTInitialized = false\n\n\t\th.defaultGS = globalDefaultGS\n\n\t\tif len(f.prep) != 0 {\n\t\t\tif err := h.run(f.prep, nil, nil, nil, nil); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\th.defaultGS = h.gs\n\t\t\t// The MS rasterizer doesn't allow the following graphics state\n\t\t\t// variables to be modified by the CVT program.\n\t\t\th.defaultGS.pv = globalDefaultGS.pv\n\t\t\th.defaultGS.fv = globalDefaultGS.fv\n\t\t\th.defaultGS.dv = globalDefaultGS.dv\n\t\t\th.defaultGS.rp = globalDefaultGS.rp\n\t\t\th.defaultGS.zp = globalDefaultGS.zp\n\t\t\th.defaultGS.loop = globalDefaultGS.loop\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (h *hinter) run(program []byte, pCurrent, pUnhinted, pInFontUnits []Point, ends []int) error {\n\th.gs = h.defaultGS\n\th.points[glyphZone][current] = pCurrent\n\th.points[glyphZone][unhinted] = pUnhinted\n\th.points[glyphZone][inFontUnits] = pInFontUnits\n\th.ends = ends\n\n\tif len(program) > 50000 {\n\t\treturn errors.New(\"truetype: hinting: too many instructions\")\n\t}\n\tvar (\n\t\tsteps, pc, top int\n\t\topcode         uint8\n\n\t\tcallStack    [32]callStackEntry\n\t\tcallStackTop int\n\t)\n\n\tfor 0 <= pc && pc < len(program) {\n\t\tsteps++\n\t\tif steps == 100000 {\n\t\t\treturn errors.New(\"truetype: hinting: too many steps\")\n\t\t}\n\t\topcode = program[pc]\n\t\tif top < int(popCount[opcode]) {\n\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t}\n\t\tswitch opcode {\n\n\t\tcase opSVTCA0:\n\t\t\th.gs.pv = [2]f2dot14{0, 0x4000}\n\t\t\th.gs.fv = [2]f2dot14{0, 0x4000}\n\t\t\th.gs.dv = [2]f2dot14{0, 0x4000}\n\n\t\tcase opSVTCA1:\n\t\t\th.gs.pv = [2]f2dot14{0x4000, 0}\n\t\t\th.gs.fv = [2]f2dot14{0x4000, 0}\n\t\t\th.gs.dv = [2]f2dot14{0x4000, 0}\n\n\t\tcase opSPVTCA0:\n\t\t\th.gs.pv = [2]f2dot14{0, 0x4000}\n\t\t\th.gs.dv = [2]f2dot14{0, 0x4000}\n\n\t\tcase opSPVTCA1:\n\t\t\th.gs.pv = [2]f2dot14{0x4000, 0}\n\t\t\th.gs.dv = [2]f2dot14{0x4000, 0}\n\n\t\tcase opSFVTCA0:\n\t\t\th.gs.fv = [2]f2dot14{0, 0x4000}\n\n\t\tcase opSFVTCA1:\n\t\t\th.gs.fv = [2]f2dot14{0x4000, 0}\n\n\t\tcase opSPVTL0, opSPVTL1, opSFVTL0, opSFVTL1:\n\t\t\ttop -= 2\n\t\t\tp1 := h.point(0, current, h.stack[top+0])\n\t\t\tp2 := h.point(0, current, h.stack[top+1])\n\t\t\tif p1 == nil || p2 == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tdx := f2dot14(p1.X - p2.X)\n\t\t\tdy := f2dot14(p1.Y - p2.Y)\n\t\t\tif dx == 0 && dy == 0 {\n\t\t\t\tdx = 0x4000\n\t\t\t} else if opcode&1 != 0 {\n\t\t\t\t// Counter-clockwise rotation.\n\t\t\t\tdx, dy = -dy, dx\n\t\t\t}\n\t\t\tv := normalize(dx, dy)\n\t\t\tif opcode < opSFVTL0 {\n\t\t\t\th.gs.pv = v\n\t\t\t\th.gs.dv = v\n\t\t\t} else {\n\t\t\t\th.gs.fv = v\n\t\t\t}\n\n\t\tcase opSPVFS:\n\t\t\ttop -= 2\n\t\t\th.gs.pv = normalize(f2dot14(h.stack[top]), f2dot14(h.stack[top+1]))\n\t\t\th.gs.dv = h.gs.pv\n\n\t\tcase opSFVFS:\n\t\t\ttop -= 2\n\t\t\th.gs.fv = normalize(f2dot14(h.stack[top]), f2dot14(h.stack[top+1]))\n\n\t\tcase opGPV:\n\t\t\tif top+1 >= len(h.stack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack overflow\")\n\t\t\t}\n\t\t\th.stack[top+0] = int32(h.gs.pv[0])\n\t\t\th.stack[top+1] = int32(h.gs.pv[1])\n\t\t\ttop += 2\n\n\t\tcase opGFV:\n\t\t\tif top+1 >= len(h.stack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack overflow\")\n\t\t\t}\n\t\t\th.stack[top+0] = int32(h.gs.fv[0])\n\t\t\th.stack[top+1] = int32(h.gs.fv[1])\n\t\t\ttop += 2\n\n\t\tcase opSFVTPV:\n\t\t\th.gs.fv = h.gs.pv\n\n\t\tcase opISECT:\n\t\t\ttop -= 5\n\t\t\tp := h.point(2, current, h.stack[top+0])\n\t\t\ta0 := h.point(1, current, h.stack[top+1])\n\t\t\ta1 := h.point(1, current, h.stack[top+2])\n\t\t\tb0 := h.point(0, current, h.stack[top+3])\n\t\t\tb1 := h.point(0, current, h.stack[top+4])\n\t\t\tif p == nil || a0 == nil || a1 == nil || b0 == nil || b1 == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\n\t\t\tdbx := b1.X - b0.X\n\t\t\tdby := b1.Y - b0.Y\n\t\t\tdax := a1.X - a0.X\n\t\t\tday := a1.Y - a0.Y\n\t\t\tdx := b0.X - a0.X\n\t\t\tdy := b0.Y - a0.Y\n\t\t\tdiscriminant := mulDiv(int64(dax), int64(-dby), 0x40) +\n\t\t\t\tmulDiv(int64(day), int64(dbx), 0x40)\n\t\t\tdotProduct := mulDiv(int64(dax), int64(dbx), 0x40) +\n\t\t\t\tmulDiv(int64(day), int64(dby), 0x40)\n\t\t\t// The discriminant above is actually a cross product of vectors\n\t\t\t// da and db. Together with the dot product, they can be used as\n\t\t\t// surrogates for sine and cosine of the angle between the vectors.\n\t\t\t// Indeed,\n\t\t\t//       dotproduct   = |da||db|cos(angle)\n\t\t\t//       discriminant = |da||db|sin(angle)\n\t\t\t// We use these equations to reject grazing intersections by\n\t\t\t// thresholding abs(tan(angle)) at 1/19, corresponding to 3 degrees.\n\t\t\tabsDisc, absDotP := discriminant, dotProduct\n\t\t\tif absDisc < 0 {\n\t\t\t\tabsDisc = -absDisc\n\t\t\t}\n\t\t\tif absDotP < 0 {\n\t\t\t\tabsDotP = -absDotP\n\t\t\t}\n\t\t\tif 19*absDisc > absDotP {\n\t\t\t\tval := mulDiv(int64(dx), int64(-dby), 0x40) +\n\t\t\t\t\tmulDiv(int64(dy), int64(dbx), 0x40)\n\t\t\t\trx := mulDiv(val, int64(dax), discriminant)\n\t\t\t\try := mulDiv(val, int64(day), discriminant)\n\t\t\t\tp.X = a0.X + fixed.Int26_6(rx)\n\t\t\t\tp.Y = a0.Y + fixed.Int26_6(ry)\n\t\t\t} else {\n\t\t\t\tp.X = (a0.X + a1.X + b0.X + b1.X) / 4\n\t\t\t\tp.Y = (a0.Y + a1.Y + b0.Y + b1.Y) / 4\n\t\t\t}\n\t\t\tp.Flags |= flagTouchedX | flagTouchedY\n\n\t\tcase opSRP0, opSRP1, opSRP2:\n\t\t\ttop--\n\t\t\th.gs.rp[opcode-opSRP0] = h.stack[top]\n\n\t\tcase opSZP0, opSZP1, opSZP2:\n\t\t\ttop--\n\t\t\th.gs.zp[opcode-opSZP0] = h.stack[top]\n\n\t\tcase opSZPS:\n\t\t\ttop--\n\t\t\th.gs.zp[0] = h.stack[top]\n\t\t\th.gs.zp[1] = h.stack[top]\n\t\t\th.gs.zp[2] = h.stack[top]\n\n\t\tcase opSLOOP:\n\t\t\ttop--\n\t\t\t// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#SLOOP\n\t\t\t// says that \"Setting the loop variable to zero is an error\". In\n\t\t\t// theory, the inequality on the next line should be \"<=\" instead\n\t\t\t// of \"<\". In practice, some font files' bytecode, such as the '2'\n\t\t\t// glyph in the DejaVuSansMono.ttf that comes with Ubuntu 14.04,\n\t\t\t// issue SLOOP with a zero on top of the stack. Just like the C\n\t\t\t// Freetype code, we allow the zero.\n\t\t\tif h.stack[top] < 0 {\n\t\t\t\treturn errors.New(\"truetype: hinting: invalid data\")\n\t\t\t}\n\t\t\th.gs.loop = h.stack[top]\n\n\t\tcase opRTG:\n\t\t\th.gs.roundPeriod = 1 << 6\n\t\t\th.gs.roundPhase = 0\n\t\t\th.gs.roundThreshold = 1 << 5\n\t\t\th.gs.roundSuper45 = false\n\n\t\tcase opRTHG:\n\t\t\th.gs.roundPeriod = 1 << 6\n\t\t\th.gs.roundPhase = 1 << 5\n\t\t\th.gs.roundThreshold = 1 << 5\n\t\t\th.gs.roundSuper45 = false\n\n\t\tcase opSMD:\n\t\t\ttop--\n\t\t\th.gs.minDist = fixed.Int26_6(h.stack[top])\n\n\t\tcase opELSE:\n\t\t\topcode = 1\n\t\t\tgoto ifelse\n\n\t\tcase opJMPR:\n\t\t\ttop--\n\t\t\tpc += int(h.stack[top])\n\t\t\tcontinue\n\n\t\tcase opSCVTCI:\n\t\t\ttop--\n\t\t\th.gs.controlValueCutIn = fixed.Int26_6(h.stack[top])\n\n\t\tcase opSSWCI:\n\t\t\ttop--\n\t\t\th.gs.singleWidthCutIn = fixed.Int26_6(h.stack[top])\n\n\t\tcase opSSW:\n\t\t\ttop--\n\t\t\th.gs.singleWidth = h.font.scale(h.scale * fixed.Int26_6(h.stack[top]))\n\n\t\tcase opDUP:\n\t\t\tif top >= len(h.stack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack overflow\")\n\t\t\t}\n\t\t\th.stack[top] = h.stack[top-1]\n\t\t\ttop++\n\n\t\tcase opPOP:\n\t\t\ttop--\n\n\t\tcase opCLEAR:\n\t\t\ttop = 0\n\n\t\tcase opSWAP:\n\t\t\th.stack[top-1], h.stack[top-2] = h.stack[top-2], h.stack[top-1]\n\n\t\tcase opDEPTH:\n\t\t\tif top >= len(h.stack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack overflow\")\n\t\t\t}\n\t\t\th.stack[top] = int32(top)\n\t\t\ttop++\n\n\t\tcase opCINDEX, opMINDEX:\n\t\t\tx := int(h.stack[top-1])\n\t\t\tif x <= 0 || x >= top {\n\t\t\t\treturn errors.New(\"truetype: hinting: invalid data\")\n\t\t\t}\n\t\t\th.stack[top-1] = h.stack[top-1-x]\n\t\t\tif opcode == opMINDEX {\n\t\t\t\tcopy(h.stack[top-1-x:top-1], h.stack[top-x:top])\n\t\t\t\ttop--\n\t\t\t}\n\n\t\tcase opALIGNPTS:\n\t\t\ttop -= 2\n\t\t\tp := h.point(1, current, h.stack[top])\n\t\t\tq := h.point(0, current, h.stack[top+1])\n\t\t\tif p == nil || q == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\td := dotProduct(fixed.Int26_6(q.X-p.X), fixed.Int26_6(q.Y-p.Y), h.gs.pv) / 2\n\t\t\th.move(p, +d, true)\n\t\t\th.move(q, -d, true)\n\n\t\tcase opUTP:\n\t\t\ttop--\n\t\t\tp := h.point(0, current, h.stack[top])\n\t\t\tif p == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tp.Flags &^= flagTouchedX | flagTouchedY\n\n\t\tcase opLOOPCALL, opCALL:\n\t\t\tif callStackTop >= len(callStack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: call stack overflow\")\n\t\t\t}\n\t\t\ttop--\n\t\t\tf, ok := h.functions[h.stack[top]]\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"truetype: hinting: undefined function\")\n\t\t\t}\n\t\t\tcallStack[callStackTop] = callStackEntry{program, pc, 1}\n\t\t\tif opcode == opLOOPCALL {\n\t\t\t\ttop--\n\t\t\t\tif h.stack[top] == 0 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcallStack[callStackTop].loopCount = h.stack[top]\n\t\t\t}\n\t\t\tcallStackTop++\n\t\t\tprogram, pc = f, 0\n\t\t\tcontinue\n\n\t\tcase opFDEF:\n\t\t\t// Save all bytecode up until the next ENDF.\n\t\t\tstartPC := pc + 1\n\t\tfdefloop:\n\t\t\tfor {\n\t\t\t\tpc++\n\t\t\t\tif pc >= len(program) {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: unbalanced FDEF\")\n\t\t\t\t}\n\t\t\t\tswitch program[pc] {\n\t\t\t\tcase opFDEF:\n\t\t\t\t\treturn errors.New(\"truetype: hinting: nested FDEF\")\n\t\t\t\tcase opENDF:\n\t\t\t\t\ttop--\n\t\t\t\t\th.functions[h.stack[top]] = program[startPC : pc+1]\n\t\t\t\t\tbreak fdefloop\n\t\t\t\tdefault:\n\t\t\t\t\tvar ok bool\n\t\t\t\t\tpc, ok = skipInstructionPayload(program, pc)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn errors.New(\"truetype: hinting: unbalanced FDEF\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase opENDF:\n\t\t\tif callStackTop == 0 {\n\t\t\t\treturn errors.New(\"truetype: hinting: call stack underflow\")\n\t\t\t}\n\t\t\tcallStackTop--\n\t\t\tcallStack[callStackTop].loopCount--\n\t\t\tif callStack[callStackTop].loopCount != 0 {\n\t\t\t\tcallStackTop++\n\t\t\t\tpc = 0\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprogram, pc = callStack[callStackTop].program, callStack[callStackTop].pc\n\n\t\tcase opMDAP0, opMDAP1:\n\t\t\ttop--\n\t\t\ti := h.stack[top]\n\t\t\tp := h.point(0, current, i)\n\t\t\tif p == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tdistance := fixed.Int26_6(0)\n\t\t\tif opcode == opMDAP1 {\n\t\t\t\tdistance = dotProduct(p.X, p.Y, h.gs.pv)\n\t\t\t\t// TODO: metrics compensation.\n\t\t\t\tdistance = h.round(distance) - distance\n\t\t\t}\n\t\t\th.move(p, distance, true)\n\t\t\th.gs.rp[0] = i\n\t\t\th.gs.rp[1] = i\n\n\t\tcase opIUP0, opIUP1:\n\t\t\tiupY, mask := opcode == opIUP0, uint32(flagTouchedX)\n\t\t\tif iupY {\n\t\t\t\tmask = flagTouchedY\n\t\t\t}\n\t\t\tprevEnd := 0\n\t\t\tfor _, end := range h.ends {\n\t\t\t\tfor i := prevEnd; i < end; i++ {\n\t\t\t\t\tfor i < end && h.points[glyphZone][current][i].Flags&mask == 0 {\n\t\t\t\t\t\ti++\n\t\t\t\t\t}\n\t\t\t\t\tif i == end {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tfirstTouched, curTouched := i, i\n\t\t\t\t\ti++\n\t\t\t\t\tfor ; i < end; i++ {\n\t\t\t\t\t\tif h.points[glyphZone][current][i].Flags&mask != 0 {\n\t\t\t\t\t\t\th.iupInterp(iupY, curTouched+1, i-1, curTouched, i)\n\t\t\t\t\t\t\tcurTouched = i\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif curTouched == firstTouched {\n\t\t\t\t\t\th.iupShift(iupY, prevEnd, end, curTouched)\n\t\t\t\t\t} else {\n\t\t\t\t\t\th.iupInterp(iupY, curTouched+1, end-1, curTouched, firstTouched)\n\t\t\t\t\t\tif firstTouched > 0 {\n\t\t\t\t\t\t\th.iupInterp(iupY, prevEnd, firstTouched-1, curTouched, firstTouched)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprevEnd = end\n\t\t\t}\n\n\t\tcase opSHP0, opSHP1:\n\t\t\tif top < int(h.gs.loop) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t\t}\n\t\t\t_, _, d, ok := h.displacement(opcode&1 == 0)\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tfor ; h.gs.loop != 0; h.gs.loop-- {\n\t\t\t\ttop--\n\t\t\t\tp := h.point(2, current, h.stack[top])\n\t\t\t\tif p == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\th.move(p, d, true)\n\t\t\t}\n\t\t\th.gs.loop = 1\n\n\t\tcase opSHC0, opSHC1:\n\t\t\ttop--\n\t\t\tzonePointer, i, d, ok := h.displacement(opcode&1 == 0)\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tif h.gs.zp[2] == 0 {\n\t\t\t\t// TODO: implement this when we have a glyph that does this.\n\t\t\t\treturn errors.New(\"hinting: unimplemented SHC instruction\")\n\t\t\t}\n\t\t\tcontour := h.stack[top]\n\t\t\tif contour < 0 || len(ends) <= int(contour) {\n\t\t\t\treturn errors.New(\"truetype: hinting: contour out of range\")\n\t\t\t}\n\t\t\tj0, j1 := int32(0), int32(h.ends[contour])\n\t\t\tif contour > 0 {\n\t\t\t\tj0 = int32(h.ends[contour-1])\n\t\t\t}\n\t\t\tmove := h.gs.zp[zonePointer] != h.gs.zp[2]\n\t\t\tfor j := j0; j < j1; j++ {\n\t\t\t\tif move || j != i {\n\t\t\t\t\th.move(h.point(2, current, j), d, true)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase opSHZ0, opSHZ1:\n\t\t\ttop--\n\t\t\tzonePointer, i, d, ok := h.displacement(opcode&1 == 0)\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\n\t\t\t// As per C Freetype, SHZ doesn't move the phantom points, or mark\n\t\t\t// the points as touched.\n\t\t\tlimit := int32(len(h.points[h.gs.zp[2]][current]))\n\t\t\tif h.gs.zp[2] == glyphZone {\n\t\t\t\tlimit -= 4\n\t\t\t}\n\t\t\tfor j := int32(0); j < limit; j++ {\n\t\t\t\tif i != j || h.gs.zp[zonePointer] != h.gs.zp[2] {\n\t\t\t\t\th.move(h.point(2, current, j), d, false)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase opSHPIX:\n\t\t\ttop--\n\t\t\td := fixed.Int26_6(h.stack[top])\n\t\t\tif top < int(h.gs.loop) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t\t}\n\t\t\tfor ; h.gs.loop != 0; h.gs.loop-- {\n\t\t\t\ttop--\n\t\t\t\tp := h.point(2, current, h.stack[top])\n\t\t\t\tif p == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\th.move(p, d, true)\n\t\t\t}\n\t\t\th.gs.loop = 1\n\n\t\tcase opIP:\n\t\t\tif top < int(h.gs.loop) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t\t}\n\t\t\tpointType := inFontUnits\n\t\t\ttwilight := h.gs.zp[0] == 0 || h.gs.zp[1] == 0 || h.gs.zp[2] == 0\n\t\t\tif twilight {\n\t\t\t\tpointType = unhinted\n\t\t\t}\n\t\t\tp := h.point(1, pointType, h.gs.rp[2])\n\t\t\toldP := h.point(0, pointType, h.gs.rp[1])\n\t\t\toldRange := dotProduct(p.X-oldP.X, p.Y-oldP.Y, h.gs.dv)\n\n\t\t\tp = h.point(1, current, h.gs.rp[2])\n\t\t\tcurP := h.point(0, current, h.gs.rp[1])\n\t\t\tcurRange := dotProduct(p.X-curP.X, p.Y-curP.Y, h.gs.pv)\n\t\t\tfor ; h.gs.loop != 0; h.gs.loop-- {\n\t\t\t\ttop--\n\t\t\t\ti := h.stack[top]\n\t\t\t\tp = h.point(2, pointType, i)\n\t\t\t\toldDist := dotProduct(p.X-oldP.X, p.Y-oldP.Y, h.gs.dv)\n\t\t\t\tp = h.point(2, current, i)\n\t\t\t\tcurDist := dotProduct(p.X-curP.X, p.Y-curP.Y, h.gs.pv)\n\t\t\t\tnewDist := fixed.Int26_6(0)\n\t\t\t\tif oldDist != 0 {\n\t\t\t\t\tif oldRange != 0 {\n\t\t\t\t\t\tnewDist = fixed.Int26_6(mulDiv(int64(oldDist), int64(curRange), int64(oldRange)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewDist = -oldDist\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\th.move(p, newDist-curDist, true)\n\t\t\t}\n\t\t\th.gs.loop = 1\n\n\t\tcase opMSIRP0, opMSIRP1:\n\t\t\ttop -= 2\n\t\t\ti := h.stack[top]\n\t\t\tdistance := fixed.Int26_6(h.stack[top+1])\n\n\t\t\t// TODO: special case h.gs.zp[1] == 0 in C Freetype.\n\t\t\tref := h.point(0, current, h.gs.rp[0])\n\t\t\tp := h.point(1, current, i)\n\t\t\tif ref == nil || p == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tcurDist := dotProduct(p.X-ref.X, p.Y-ref.Y, h.gs.pv)\n\n\t\t\t// Set-RP0 bit.\n\t\t\tif opcode == opMSIRP1 {\n\t\t\t\th.gs.rp[0] = i\n\t\t\t}\n\t\t\th.gs.rp[1] = h.gs.rp[0]\n\t\t\th.gs.rp[2] = i\n\n\t\t\t// Move the point.\n\t\t\th.move(p, distance-curDist, true)\n\n\t\tcase opALIGNRP:\n\t\t\tif top < int(h.gs.loop) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t\t}\n\t\t\tref := h.point(0, current, h.gs.rp[0])\n\t\t\tif ref == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tfor ; h.gs.loop != 0; h.gs.loop-- {\n\t\t\t\ttop--\n\t\t\t\tp := h.point(1, current, h.stack[top])\n\t\t\t\tif p == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\th.move(p, -dotProduct(p.X-ref.X, p.Y-ref.Y, h.gs.pv), true)\n\t\t\t}\n\t\t\th.gs.loop = 1\n\n\t\tcase opRTDG:\n\t\t\th.gs.roundPeriod = 1 << 5\n\t\t\th.gs.roundPhase = 0\n\t\t\th.gs.roundThreshold = 1 << 4\n\t\t\th.gs.roundSuper45 = false\n\n\t\tcase opMIAP0, opMIAP1:\n\t\t\ttop -= 2\n\t\t\ti := h.stack[top]\n\t\t\tdistance := h.getScaledCVT(h.stack[top+1])\n\t\t\tif h.gs.zp[0] == 0 {\n\t\t\t\tp := h.point(0, unhinted, i)\n\t\t\t\tq := h.point(0, current, i)\n\t\t\t\tp.X = fixed.Int26_6((int64(distance) * int64(h.gs.fv[0])) >> 14)\n\t\t\t\tp.Y = fixed.Int26_6((int64(distance) * int64(h.gs.fv[1])) >> 14)\n\t\t\t\t*q = *p\n\t\t\t}\n\t\t\tp := h.point(0, current, i)\n\t\t\toldDist := dotProduct(p.X, p.Y, h.gs.pv)\n\t\t\tif opcode == opMIAP1 {\n\t\t\t\tif fabs(distance-oldDist) > h.gs.controlValueCutIn {\n\t\t\t\t\tdistance = oldDist\n\t\t\t\t}\n\t\t\t\t// TODO: metrics compensation.\n\t\t\t\tdistance = h.round(distance)\n\t\t\t}\n\t\t\th.move(p, distance-oldDist, true)\n\t\t\th.gs.rp[0] = i\n\t\t\th.gs.rp[1] = i\n\n\t\tcase opNPUSHB:\n\t\t\topcode = 0\n\t\t\tgoto push\n\n\t\tcase opNPUSHW:\n\t\t\topcode = 0x80\n\t\t\tgoto push\n\n\t\tcase opWS:\n\t\t\ttop -= 2\n\t\t\ti := int(h.stack[top])\n\t\t\tif i < 0 || len(h.store) <= i {\n\t\t\t\treturn errors.New(\"truetype: hinting: invalid data\")\n\t\t\t}\n\t\t\th.store[i] = h.stack[top+1]\n\n\t\tcase opRS:\n\t\t\ti := int(h.stack[top-1])\n\t\t\tif i < 0 || len(h.store) <= i {\n\t\t\t\treturn errors.New(\"truetype: hinting: invalid data\")\n\t\t\t}\n\t\t\th.stack[top-1] = h.store[i]\n\n\t\tcase opWCVTP:\n\t\t\ttop -= 2\n\t\t\th.setScaledCVT(h.stack[top], fixed.Int26_6(h.stack[top+1]))\n\n\t\tcase opRCVT:\n\t\t\th.stack[top-1] = int32(h.getScaledCVT(h.stack[top-1]))\n\n\t\tcase opGC0, opGC1:\n\t\t\ti := h.stack[top-1]\n\t\t\tif opcode == opGC0 {\n\t\t\t\tp := h.point(2, current, i)\n\t\t\t\th.stack[top-1] = int32(dotProduct(p.X, p.Y, h.gs.pv))\n\t\t\t} else {\n\t\t\t\tp := h.point(2, unhinted, i)\n\t\t\t\t// Using dv as per C Freetype.\n\t\t\t\th.stack[top-1] = int32(dotProduct(p.X, p.Y, h.gs.dv))\n\t\t\t}\n\n\t\tcase opSCFS:\n\t\t\ttop -= 2\n\t\t\ti := h.stack[top]\n\t\t\tp := h.point(2, current, i)\n\t\t\tif p == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tc := dotProduct(p.X, p.Y, h.gs.pv)\n\t\t\th.move(p, fixed.Int26_6(h.stack[top+1])-c, true)\n\t\t\tif h.gs.zp[2] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tq := h.point(2, unhinted, i)\n\t\t\tif q == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tq.X = p.X\n\t\t\tq.Y = p.Y\n\n\t\tcase opMD0, opMD1:\n\t\t\ttop--\n\t\t\tpt, v, scale := pointType(0), [2]f2dot14{}, false\n\t\t\tif opcode == opMD0 {\n\t\t\t\tpt = current\n\t\t\t\tv = h.gs.pv\n\t\t\t} else if h.gs.zp[0] == 0 || h.gs.zp[1] == 0 {\n\t\t\t\tpt = unhinted\n\t\t\t\tv = h.gs.dv\n\t\t\t} else {\n\t\t\t\tpt = inFontUnits\n\t\t\t\tv = h.gs.dv\n\t\t\t\tscale = true\n\t\t\t}\n\t\t\tp := h.point(0, pt, h.stack[top-1])\n\t\t\tq := h.point(1, pt, h.stack[top])\n\t\t\tif p == nil || q == nil {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\td := int32(dotProduct(p.X-q.X, p.Y-q.Y, v))\n\t\t\tif scale {\n\t\t\t\td = int32(int64(d*int32(h.scale)) / int64(h.font.fUnitsPerEm))\n\t\t\t}\n\t\t\th.stack[top-1] = d\n\n\t\tcase opMPPEM, opMPS:\n\t\t\tif top >= len(h.stack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack overflow\")\n\t\t\t}\n\t\t\t// For MPS, point size should be irrelevant; we return the PPEM.\n\t\t\th.stack[top] = int32(h.scale) >> 6\n\t\t\ttop++\n\n\t\tcase opFLIPON, opFLIPOFF:\n\t\t\th.gs.autoFlip = opcode == opFLIPON\n\n\t\tcase opDEBUG:\n\t\t\t// No-op.\n\n\t\tcase opLT:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] < h.stack[top])\n\n\t\tcase opLTEQ:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] <= h.stack[top])\n\n\t\tcase opGT:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] > h.stack[top])\n\n\t\tcase opGTEQ:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] >= h.stack[top])\n\n\t\tcase opEQ:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] == h.stack[top])\n\n\t\tcase opNEQ:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] != h.stack[top])\n\n\t\tcase opODD, opEVEN:\n\t\t\ti := h.round(fixed.Int26_6(h.stack[top-1])) >> 6\n\t\t\th.stack[top-1] = int32(i&1) ^ int32(opcode-opODD)\n\n\t\tcase opIF:\n\t\t\ttop--\n\t\t\tif h.stack[top] == 0 {\n\t\t\t\topcode = 0\n\t\t\t\tgoto ifelse\n\t\t\t}\n\n\t\tcase opEIF:\n\t\t\t// No-op.\n\n\t\tcase opAND:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] != 0 && h.stack[top] != 0)\n\n\t\tcase opOR:\n\t\t\ttop--\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1]|h.stack[top] != 0)\n\n\t\tcase opNOT:\n\t\t\th.stack[top-1] = bool2int32(h.stack[top-1] == 0)\n\n\t\tcase opDELTAP1:\n\t\t\tgoto delta\n\n\t\tcase opSDB:\n\t\t\ttop--\n\t\t\th.gs.deltaBase = h.stack[top]\n\n\t\tcase opSDS:\n\t\t\ttop--\n\t\t\th.gs.deltaShift = h.stack[top]\n\n\t\tcase opADD:\n\t\t\ttop--\n\t\t\th.stack[top-1] += h.stack[top]\n\n\t\tcase opSUB:\n\t\t\ttop--\n\t\t\th.stack[top-1] -= h.stack[top]\n\n\t\tcase opDIV:\n\t\t\ttop--\n\t\t\tif h.stack[top] == 0 {\n\t\t\t\treturn errors.New(\"truetype: hinting: division by zero\")\n\t\t\t}\n\t\t\th.stack[top-1] = int32(fdiv(fixed.Int26_6(h.stack[top-1]), fixed.Int26_6(h.stack[top])))\n\n\t\tcase opMUL:\n\t\t\ttop--\n\t\t\th.stack[top-1] = int32(fmul(fixed.Int26_6(h.stack[top-1]), fixed.Int26_6(h.stack[top])))\n\n\t\tcase opABS:\n\t\t\tif h.stack[top-1] < 0 {\n\t\t\t\th.stack[top-1] = -h.stack[top-1]\n\t\t\t}\n\n\t\tcase opNEG:\n\t\t\th.stack[top-1] = -h.stack[top-1]\n\n\t\tcase opFLOOR:\n\t\t\th.stack[top-1] &^= 63\n\n\t\tcase opCEILING:\n\t\t\th.stack[top-1] += 63\n\t\t\th.stack[top-1] &^= 63\n\n\t\tcase opROUND00, opROUND01, opROUND10, opROUND11:\n\t\t\t// The four flavors of opROUND are equivalent. See the comment below on\n\t\t\t// opNROUND for the rationale.\n\t\t\th.stack[top-1] = int32(h.round(fixed.Int26_6(h.stack[top-1])))\n\n\t\tcase opNROUND00, opNROUND01, opNROUND10, opNROUND11:\n\t\t\t// No-op. The spec says to add one of four \"compensations for the engine\n\t\t\t// characteristics\", to cater for things like \"different dot-size printers\".\n\t\t\t// https://developer.apple.com/fonts/TTRefMan/RM02/Chap2.html#engine_compensation\n\t\t\t// This code does not implement engine compensation, as we don't expect to\n\t\t\t// be used to output on dot-matrix printers.\n\n\t\tcase opWCVTF:\n\t\t\ttop -= 2\n\t\t\th.setScaledCVT(h.stack[top], h.font.scale(h.scale*fixed.Int26_6(h.stack[top+1])))\n\n\t\tcase opDELTAP2, opDELTAP3, opDELTAC1, opDELTAC2, opDELTAC3:\n\t\t\tgoto delta\n\n\t\tcase opSROUND, opS45ROUND:\n\t\t\ttop--\n\t\t\tswitch (h.stack[top] >> 6) & 0x03 {\n\t\t\tcase 0:\n\t\t\t\th.gs.roundPeriod = 1 << 5\n\t\t\tcase 1, 3:\n\t\t\t\th.gs.roundPeriod = 1 << 6\n\t\t\tcase 2:\n\t\t\t\th.gs.roundPeriod = 1 << 7\n\t\t\t}\n\t\t\th.gs.roundSuper45 = opcode == opS45ROUND\n\t\t\tif h.gs.roundSuper45 {\n\t\t\t\t// The spec says to multiply by √2, but the C Freetype code says 1/√2.\n\t\t\t\t// We go with 1/√2.\n\t\t\t\th.gs.roundPeriod *= 46341\n\t\t\t\th.gs.roundPeriod /= 65536\n\t\t\t}\n\t\t\th.gs.roundPhase = h.gs.roundPeriod * fixed.Int26_6((h.stack[top]>>4)&0x03) / 4\n\t\t\tif x := h.stack[top] & 0x0f; x != 0 {\n\t\t\t\th.gs.roundThreshold = h.gs.roundPeriod * fixed.Int26_6(x-4) / 8\n\t\t\t} else {\n\t\t\t\th.gs.roundThreshold = h.gs.roundPeriod - 1\n\t\t\t}\n\n\t\tcase opJROT:\n\t\t\ttop -= 2\n\t\t\tif h.stack[top+1] != 0 {\n\t\t\t\tpc += int(h.stack[top])\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\tcase opJROF:\n\t\t\ttop -= 2\n\t\t\tif h.stack[top+1] == 0 {\n\t\t\t\tpc += int(h.stack[top])\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\tcase opROFF:\n\t\t\th.gs.roundPeriod = 0\n\t\t\th.gs.roundPhase = 0\n\t\t\th.gs.roundThreshold = 0\n\t\t\th.gs.roundSuper45 = false\n\n\t\tcase opRUTG:\n\t\t\th.gs.roundPeriod = 1 << 6\n\t\t\th.gs.roundPhase = 0\n\t\t\th.gs.roundThreshold = 1<<6 - 1\n\t\t\th.gs.roundSuper45 = false\n\n\t\tcase opRDTG:\n\t\t\th.gs.roundPeriod = 1 << 6\n\t\t\th.gs.roundPhase = 0\n\t\t\th.gs.roundThreshold = 0\n\t\t\th.gs.roundSuper45 = false\n\n\t\tcase opSANGW, opAA:\n\t\t\t// These ops are \"anachronistic\" and no longer used.\n\t\t\ttop--\n\n\t\tcase opFLIPPT:\n\t\t\tif top < int(h.gs.loop) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t\t}\n\t\t\tpoints := h.points[glyphZone][current]\n\t\t\tfor ; h.gs.loop != 0; h.gs.loop-- {\n\t\t\t\ttop--\n\t\t\t\ti := h.stack[top]\n\t\t\t\tif i < 0 || len(points) <= int(i) {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\tpoints[i].Flags ^= flagOnCurve\n\t\t\t}\n\t\t\th.gs.loop = 1\n\n\t\tcase opFLIPRGON, opFLIPRGOFF:\n\t\t\ttop -= 2\n\t\t\ti, j, points := h.stack[top], h.stack[top+1], h.points[glyphZone][current]\n\t\t\tif i < 0 || len(points) <= int(i) || j < 0 || len(points) <= int(j) {\n\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t}\n\t\t\tfor ; i <= j; i++ {\n\t\t\t\tif opcode == opFLIPRGON {\n\t\t\t\t\tpoints[i].Flags |= flagOnCurve\n\t\t\t\t} else {\n\t\t\t\t\tpoints[i].Flags &^= flagOnCurve\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase opSCANCTRL:\n\t\t\t// We do not support dropout control, as we always rasterize grayscale glyphs.\n\t\t\ttop--\n\n\t\tcase opSDPVTL0, opSDPVTL1:\n\t\t\ttop -= 2\n\t\t\tfor i := 0; i < 2; i++ {\n\t\t\t\tpt := unhinted\n\t\t\t\tif i != 0 {\n\t\t\t\t\tpt = current\n\t\t\t\t}\n\t\t\t\tp := h.point(1, pt, h.stack[top])\n\t\t\t\tq := h.point(2, pt, h.stack[top+1])\n\t\t\t\tif p == nil || q == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\tdx := f2dot14(p.X - q.X)\n\t\t\t\tdy := f2dot14(p.Y - q.Y)\n\t\t\t\tif dx == 0 && dy == 0 {\n\t\t\t\t\tdx = 0x4000\n\t\t\t\t} else if opcode&1 != 0 {\n\t\t\t\t\t// Counter-clockwise rotation.\n\t\t\t\t\tdx, dy = -dy, dx\n\t\t\t\t}\n\t\t\t\tif i == 0 {\n\t\t\t\t\th.gs.dv = normalize(dx, dy)\n\t\t\t\t} else {\n\t\t\t\t\th.gs.pv = normalize(dx, dy)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase opGETINFO:\n\t\t\tres := int32(0)\n\t\t\tif h.stack[top-1]&(1<<0) != 0 {\n\t\t\t\t// Set the engine version. We hard-code this to 35, the same as\n\t\t\t\t// the C freetype code, which says that \"Version~35 corresponds\n\t\t\t\t// to MS rasterizer v.1.7 as used e.g. in Windows~98\".\n\t\t\t\tres |= 35\n\t\t\t}\n\t\t\tif h.stack[top-1]&(1<<5) != 0 {\n\t\t\t\t// Set that we support grayscale.\n\t\t\t\tres |= 1 << 12\n\t\t\t}\n\t\t\t// We set no other bits, as we do not support rotated or stretched glyphs.\n\t\t\th.stack[top-1] = res\n\n\t\tcase opIDEF:\n\t\t\t// IDEF is for ancient versions of the bytecode interpreter, and is no longer used.\n\t\t\treturn errors.New(\"truetype: hinting: unsupported IDEF instruction\")\n\n\t\tcase opROLL:\n\t\t\th.stack[top-1], h.stack[top-3], h.stack[top-2] =\n\t\t\t\th.stack[top-3], h.stack[top-2], h.stack[top-1]\n\n\t\tcase opMAX:\n\t\t\ttop--\n\t\t\tif h.stack[top-1] < h.stack[top] {\n\t\t\t\th.stack[top-1] = h.stack[top]\n\t\t\t}\n\n\t\tcase opMIN:\n\t\t\ttop--\n\t\t\tif h.stack[top-1] > h.stack[top] {\n\t\t\t\th.stack[top-1] = h.stack[top]\n\t\t\t}\n\n\t\tcase opSCANTYPE:\n\t\t\t// We do not support dropout control, as we always rasterize grayscale glyphs.\n\t\t\ttop--\n\n\t\tcase opINSTCTRL:\n\t\t\t// TODO: support instruction execution control? It seems rare, and even when\n\t\t\t// nominally used (e.g. Source Sans Pro), it seems conditional on extreme or\n\t\t\t// unusual rasterization conditions. For example, the code snippet at\n\t\t\t// https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html#INSTCTRL\n\t\t\t// uses INSTCTRL when grid-fitting a rotated or stretched glyph, but\n\t\t\t// freetype-go does not support rotated or stretched glyphs.\n\t\t\ttop -= 2\n\n\t\tdefault:\n\t\t\tif opcode < opPUSHB000 {\n\t\t\t\treturn errors.New(\"truetype: hinting: unrecognized instruction\")\n\t\t\t}\n\n\t\t\tif opcode < opMDRP00000 {\n\t\t\t\t// PUSHxxxx opcode.\n\n\t\t\t\tif opcode < opPUSHW000 {\n\t\t\t\t\topcode -= opPUSHB000 - 1\n\t\t\t\t} else {\n\t\t\t\t\topcode -= opPUSHW000 - 1 - 0x80\n\t\t\t\t}\n\t\t\t\tgoto push\n\t\t\t}\n\n\t\t\tif opcode < opMIRP00000 {\n\t\t\t\t// MDRPxxxxx opcode.\n\n\t\t\t\ttop--\n\t\t\t\ti := h.stack[top]\n\t\t\t\tref := h.point(0, current, h.gs.rp[0])\n\t\t\t\tp := h.point(1, current, i)\n\t\t\t\tif ref == nil || p == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\n\t\t\t\toldDist := fixed.Int26_6(0)\n\t\t\t\tif h.gs.zp[0] == 0 || h.gs.zp[1] == 0 {\n\t\t\t\t\tp0 := h.point(1, unhinted, i)\n\t\t\t\t\tp1 := h.point(0, unhinted, h.gs.rp[0])\n\t\t\t\t\toldDist = dotProduct(p0.X-p1.X, p0.Y-p1.Y, h.gs.dv)\n\t\t\t\t} else {\n\t\t\t\t\tp0 := h.point(1, inFontUnits, i)\n\t\t\t\t\tp1 := h.point(0, inFontUnits, h.gs.rp[0])\n\t\t\t\t\toldDist = dotProduct(p0.X-p1.X, p0.Y-p1.Y, h.gs.dv)\n\t\t\t\t\toldDist = h.font.scale(h.scale * oldDist)\n\t\t\t\t}\n\n\t\t\t\t// Single-width cut-in test.\n\t\t\t\tif x := fabs(oldDist - h.gs.singleWidth); x < h.gs.singleWidthCutIn {\n\t\t\t\t\tif oldDist >= 0 {\n\t\t\t\t\t\toldDist = +h.gs.singleWidth\n\t\t\t\t\t} else {\n\t\t\t\t\t\toldDist = -h.gs.singleWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Rounding bit.\n\t\t\t\t// TODO: metrics compensation.\n\t\t\t\tdistance := oldDist\n\t\t\t\tif opcode&0x04 != 0 {\n\t\t\t\t\tdistance = h.round(oldDist)\n\t\t\t\t}\n\n\t\t\t\t// Minimum distance bit.\n\t\t\t\tif opcode&0x08 != 0 {\n\t\t\t\t\tif oldDist >= 0 {\n\t\t\t\t\t\tif distance < h.gs.minDist {\n\t\t\t\t\t\t\tdistance = h.gs.minDist\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif distance > -h.gs.minDist {\n\t\t\t\t\t\t\tdistance = -h.gs.minDist\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Set-RP0 bit.\n\t\t\t\th.gs.rp[1] = h.gs.rp[0]\n\t\t\t\th.gs.rp[2] = i\n\t\t\t\tif opcode&0x10 != 0 {\n\t\t\t\t\th.gs.rp[0] = i\n\t\t\t\t}\n\n\t\t\t\t// Move the point.\n\t\t\t\toldDist = dotProduct(p.X-ref.X, p.Y-ref.Y, h.gs.pv)\n\t\t\t\th.move(p, distance-oldDist, true)\n\n\t\t\t} else {\n\t\t\t\t// MIRPxxxxx opcode.\n\n\t\t\t\ttop -= 2\n\t\t\t\ti := h.stack[top]\n\t\t\t\tcvtDist := h.getScaledCVT(h.stack[top+1])\n\t\t\t\tif fabs(cvtDist-h.gs.singleWidth) < h.gs.singleWidthCutIn {\n\t\t\t\t\tif cvtDist >= 0 {\n\t\t\t\t\t\tcvtDist = +h.gs.singleWidth\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcvtDist = -h.gs.singleWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif h.gs.zp[1] == 0 {\n\t\t\t\t\t// TODO: implement once we have a .ttf file that triggers\n\t\t\t\t\t// this, so that we can step through C's freetype.\n\t\t\t\t\treturn errors.New(\"truetype: hinting: unimplemented twilight point adjustment\")\n\t\t\t\t}\n\n\t\t\t\tref := h.point(0, unhinted, h.gs.rp[0])\n\t\t\t\tp := h.point(1, unhinted, i)\n\t\t\t\tif ref == nil || p == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\toldDist := dotProduct(p.X-ref.X, p.Y-ref.Y, h.gs.dv)\n\n\t\t\t\tref = h.point(0, current, h.gs.rp[0])\n\t\t\t\tp = h.point(1, current, i)\n\t\t\t\tif ref == nil || p == nil {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t}\n\t\t\t\tcurDist := dotProduct(p.X-ref.X, p.Y-ref.Y, h.gs.pv)\n\n\t\t\t\tif h.gs.autoFlip && oldDist^cvtDist < 0 {\n\t\t\t\t\tcvtDist = -cvtDist\n\t\t\t\t}\n\n\t\t\t\t// Rounding bit.\n\t\t\t\t// TODO: metrics compensation.\n\t\t\t\tdistance := cvtDist\n\t\t\t\tif opcode&0x04 != 0 {\n\t\t\t\t\t// The CVT value is only used if close enough to oldDist.\n\t\t\t\t\tif (h.gs.zp[0] == h.gs.zp[1]) &&\n\t\t\t\t\t\t(fabs(cvtDist-oldDist) > h.gs.controlValueCutIn) {\n\n\t\t\t\t\t\tdistance = oldDist\n\t\t\t\t\t}\n\t\t\t\t\tdistance = h.round(distance)\n\t\t\t\t}\n\n\t\t\t\t// Minimum distance bit.\n\t\t\t\tif opcode&0x08 != 0 {\n\t\t\t\t\tif oldDist >= 0 {\n\t\t\t\t\t\tif distance < h.gs.minDist {\n\t\t\t\t\t\t\tdistance = h.gs.minDist\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif distance > -h.gs.minDist {\n\t\t\t\t\t\t\tdistance = -h.gs.minDist\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Set-RP0 bit.\n\t\t\t\th.gs.rp[1] = h.gs.rp[0]\n\t\t\t\th.gs.rp[2] = i\n\t\t\t\tif opcode&0x10 != 0 {\n\t\t\t\t\th.gs.rp[0] = i\n\t\t\t\t}\n\n\t\t\t\t// Move the point.\n\t\t\t\th.move(p, distance-curDist, true)\n\t\t\t}\n\t\t}\n\t\tpc++\n\t\tcontinue\n\n\tifelse:\n\t\t// Skip past bytecode until the next ELSE (if opcode == 0) or the\n\t\t// next EIF (for all opcodes). Opcode == 0 means that we have come\n\t\t// from an IF. Opcode == 1 means that we have come from an ELSE.\n\t\t{\n\t\tifelseloop:\n\t\t\tfor depth := 0; ; {\n\t\t\t\tpc++\n\t\t\t\tif pc >= len(program) {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: unbalanced IF or ELSE\")\n\t\t\t\t}\n\t\t\t\tswitch program[pc] {\n\t\t\t\tcase opIF:\n\t\t\t\t\tdepth++\n\t\t\t\tcase opELSE:\n\t\t\t\t\tif depth == 0 && opcode == 0 {\n\t\t\t\t\t\tbreak ifelseloop\n\t\t\t\t\t}\n\t\t\t\tcase opEIF:\n\t\t\t\t\tdepth--\n\t\t\t\t\tif depth < 0 {\n\t\t\t\t\t\tbreak ifelseloop\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tvar ok bool\n\t\t\t\t\tpc, ok = skipInstructionPayload(program, pc)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn errors.New(\"truetype: hinting: unbalanced IF or ELSE\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpc++\n\t\t\tcontinue\n\t\t}\n\n\tpush:\n\t\t// Push n elements from the program to the stack, where n is the low 7 bits of\n\t\t// opcode. If the low 7 bits are zero, then n is the next byte from the program.\n\t\t// The high bit being 0 means that the elements are zero-extended bytes.\n\t\t// The high bit being 1 means that the elements are sign-extended words.\n\t\t{\n\t\t\twidth := 1\n\t\t\tif opcode&0x80 != 0 {\n\t\t\t\topcode &^= 0x80\n\t\t\t\twidth = 2\n\t\t\t}\n\t\t\tif opcode == 0 {\n\t\t\t\tpc++\n\t\t\t\tif pc >= len(program) {\n\t\t\t\t\treturn errors.New(\"truetype: hinting: insufficient data\")\n\t\t\t\t}\n\t\t\t\topcode = program[pc]\n\t\t\t}\n\t\t\tpc++\n\t\t\tif top+int(opcode) > len(h.stack) {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack overflow\")\n\t\t\t}\n\t\t\tif pc+width*int(opcode) > len(program) {\n\t\t\t\treturn errors.New(\"truetype: hinting: insufficient data\")\n\t\t\t}\n\t\t\tfor ; opcode > 0; opcode-- {\n\t\t\t\tif width == 1 {\n\t\t\t\t\th.stack[top] = int32(program[pc])\n\t\t\t\t} else {\n\t\t\t\t\th.stack[top] = int32(int8(program[pc]))<<8 | int32(program[pc+1])\n\t\t\t\t}\n\t\t\t\ttop++\n\t\t\t\tpc += width\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\tdelta:\n\t\t{\n\t\t\tif opcode >= opDELTAC1 && !h.scaledCVTInitialized {\n\t\t\t\th.initializeScaledCVT()\n\t\t\t}\n\t\t\ttop--\n\t\t\tn := h.stack[top]\n\t\t\tif int32(top) < 2*n {\n\t\t\t\treturn errors.New(\"truetype: hinting: stack underflow\")\n\t\t\t}\n\t\t\tfor ; n > 0; n-- {\n\t\t\t\ttop -= 2\n\t\t\t\tb := h.stack[top]\n\t\t\t\tc := (b & 0xf0) >> 4\n\t\t\t\tswitch opcode {\n\t\t\t\tcase opDELTAP2, opDELTAC2:\n\t\t\t\t\tc += 16\n\t\t\t\tcase opDELTAP3, opDELTAC3:\n\t\t\t\t\tc += 32\n\t\t\t\t}\n\t\t\t\tc += h.gs.deltaBase\n\t\t\t\tif ppem := (int32(h.scale) + 1<<5) >> 6; ppem != c {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tb = (b & 0x0f) - 8\n\t\t\t\tif b >= 0 {\n\t\t\t\t\tb++\n\t\t\t\t}\n\t\t\t\tb = b * 64 / (1 << uint32(h.gs.deltaShift))\n\t\t\t\tif opcode >= opDELTAC1 {\n\t\t\t\t\ta := h.stack[top+1]\n\t\t\t\t\tif a < 0 || len(h.scaledCVT) <= int(a) {\n\t\t\t\t\t\treturn errors.New(\"truetype: hinting: index out of range\")\n\t\t\t\t\t}\n\t\t\t\t\th.scaledCVT[a] += fixed.Int26_6(b)\n\t\t\t\t} else {\n\t\t\t\t\tp := h.point(0, current, h.stack[top+1])\n\t\t\t\t\tif p == nil {\n\t\t\t\t\t\treturn errors.New(\"truetype: hinting: point out of range\")\n\t\t\t\t\t}\n\t\t\t\t\th.move(p, fixed.Int26_6(b), true)\n\t\t\t\t}\n\t\t\t}\n\t\t\tpc++\n\t\t\tcontinue\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (h *hinter) initializeScaledCVT() {\n\th.scaledCVTInitialized = true\n\tif n := len(h.font.cvt) / 2; n <= cap(h.scaledCVT) {\n\t\th.scaledCVT = h.scaledCVT[:n]\n\t} else {\n\t\tif n < 32 {\n\t\t\tn = 32\n\t\t}\n\t\th.scaledCVT = make([]fixed.Int26_6, len(h.font.cvt)/2, n)\n\t}\n\tfor i := range h.scaledCVT {\n\t\tunscaled := uint16(h.font.cvt[2*i])<<8 | uint16(h.font.cvt[2*i+1])\n\t\th.scaledCVT[i] = h.font.scale(h.scale * fixed.Int26_6(int16(unscaled)))\n\t}\n}\n\n// getScaledCVT returns the scaled value from the font's Control Value Table.\nfunc (h *hinter) getScaledCVT(i int32) fixed.Int26_6 {\n\tif !h.scaledCVTInitialized {\n\t\th.initializeScaledCVT()\n\t}\n\tif i < 0 || len(h.scaledCVT) <= int(i) {\n\t\treturn 0\n\t}\n\treturn h.scaledCVT[i]\n}\n\n// setScaledCVT overrides the scaled value from the font's Control Value Table.\nfunc (h *hinter) setScaledCVT(i int32, v fixed.Int26_6) {\n\tif !h.scaledCVTInitialized {\n\t\th.initializeScaledCVT()\n\t}\n\tif i < 0 || len(h.scaledCVT) <= int(i) {\n\t\treturn\n\t}\n\th.scaledCVT[i] = v\n}\n\nfunc (h *hinter) point(zonePointer uint32, pt pointType, i int32) *Point {\n\tpoints := h.points[h.gs.zp[zonePointer]][pt]\n\tif i < 0 || len(points) <= int(i) {\n\t\treturn nil\n\t}\n\treturn &points[i]\n}\n\nfunc (h *hinter) move(p *Point, distance fixed.Int26_6, touch bool) {\n\tfvx := int64(h.gs.fv[0])\n\tpvx := int64(h.gs.pv[0])\n\tif fvx == 0x4000 && pvx == 0x4000 {\n\t\tp.X += fixed.Int26_6(distance)\n\t\tif touch {\n\t\t\tp.Flags |= flagTouchedX\n\t\t}\n\t\treturn\n\t}\n\n\tfvy := int64(h.gs.fv[1])\n\tpvy := int64(h.gs.pv[1])\n\tif fvy == 0x4000 && pvy == 0x4000 {\n\t\tp.Y += fixed.Int26_6(distance)\n\t\tif touch {\n\t\t\tp.Flags |= flagTouchedY\n\t\t}\n\t\treturn\n\t}\n\n\tfvDotPv := (fvx*pvx + fvy*pvy) >> 14\n\n\tif fvx != 0 {\n\t\tp.X += fixed.Int26_6(mulDiv(fvx, int64(distance), fvDotPv))\n\t\tif touch {\n\t\t\tp.Flags |= flagTouchedX\n\t\t}\n\t}\n\n\tif fvy != 0 {\n\t\tp.Y += fixed.Int26_6(mulDiv(fvy, int64(distance), fvDotPv))\n\t\tif touch {\n\t\t\tp.Flags |= flagTouchedY\n\t\t}\n\t}\n}\n\nfunc (h *hinter) iupInterp(interpY bool, p1, p2, ref1, ref2 int) {\n\tif p1 > p2 {\n\t\treturn\n\t}\n\tif ref1 >= len(h.points[glyphZone][current]) ||\n\t\tref2 >= len(h.points[glyphZone][current]) {\n\t\treturn\n\t}\n\n\tvar ifu1, ifu2 fixed.Int26_6\n\tif interpY {\n\t\tifu1 = h.points[glyphZone][inFontUnits][ref1].Y\n\t\tifu2 = h.points[glyphZone][inFontUnits][ref2].Y\n\t} else {\n\t\tifu1 = h.points[glyphZone][inFontUnits][ref1].X\n\t\tifu2 = h.points[glyphZone][inFontUnits][ref2].X\n\t}\n\tif ifu1 > ifu2 {\n\t\tifu1, ifu2 = ifu2, ifu1\n\t\tref1, ref2 = ref2, ref1\n\t}\n\n\tvar unh1, unh2, delta1, delta2 fixed.Int26_6\n\tif interpY {\n\t\tunh1 = h.points[glyphZone][unhinted][ref1].Y\n\t\tunh2 = h.points[glyphZone][unhinted][ref2].Y\n\t\tdelta1 = h.points[glyphZone][current][ref1].Y - unh1\n\t\tdelta2 = h.points[glyphZone][current][ref2].Y - unh2\n\t} else {\n\t\tunh1 = h.points[glyphZone][unhinted][ref1].X\n\t\tunh2 = h.points[glyphZone][unhinted][ref2].X\n\t\tdelta1 = h.points[glyphZone][current][ref1].X - unh1\n\t\tdelta2 = h.points[glyphZone][current][ref2].X - unh2\n\t}\n\n\tvar xy, ifuXY fixed.Int26_6\n\tif ifu1 == ifu2 {\n\t\tfor i := p1; i <= p2; i++ {\n\t\t\tif interpY {\n\t\t\t\txy = h.points[glyphZone][unhinted][i].Y\n\t\t\t} else {\n\t\t\t\txy = h.points[glyphZone][unhinted][i].X\n\t\t\t}\n\n\t\t\tif xy <= unh1 {\n\t\t\t\txy += delta1\n\t\t\t} else {\n\t\t\t\txy += delta2\n\t\t\t}\n\n\t\t\tif interpY {\n\t\t\t\th.points[glyphZone][current][i].Y = xy\n\t\t\t} else {\n\t\t\t\th.points[glyphZone][current][i].X = xy\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tscale, scaleOK := int64(0), false\n\tfor i := p1; i <= p2; i++ {\n\t\tif interpY {\n\t\t\txy = h.points[glyphZone][unhinted][i].Y\n\t\t\tifuXY = h.points[glyphZone][inFontUnits][i].Y\n\t\t} else {\n\t\t\txy = h.points[glyphZone][unhinted][i].X\n\t\t\tifuXY = h.points[glyphZone][inFontUnits][i].X\n\t\t}\n\n\t\tif xy <= unh1 {\n\t\t\txy += delta1\n\t\t} else if xy >= unh2 {\n\t\t\txy += delta2\n\t\t} else {\n\t\t\tif !scaleOK {\n\t\t\t\tscaleOK = true\n\t\t\t\tscale = mulDiv(int64(unh2+delta2-unh1-delta1), 0x10000, int64(ifu2-ifu1))\n\t\t\t}\n\t\t\tnumer := int64(ifuXY-ifu1) * scale\n\t\t\tif numer >= 0 {\n\t\t\t\tnumer += 0x8000\n\t\t\t} else {\n\t\t\t\tnumer -= 0x8000\n\t\t\t}\n\t\t\txy = unh1 + delta1 + fixed.Int26_6(numer/0x10000)\n\t\t}\n\n\t\tif interpY {\n\t\t\th.points[glyphZone][current][i].Y = xy\n\t\t} else {\n\t\t\th.points[glyphZone][current][i].X = xy\n\t\t}\n\t}\n}\n\nfunc (h *hinter) iupShift(interpY bool, p1, p2, p int) {\n\tvar delta fixed.Int26_6\n\tif interpY {\n\t\tdelta = h.points[glyphZone][current][p].Y - h.points[glyphZone][unhinted][p].Y\n\t} else {\n\t\tdelta = h.points[glyphZone][current][p].X - h.points[glyphZone][unhinted][p].X\n\t}\n\tif delta == 0 {\n\t\treturn\n\t}\n\tfor i := p1; i < p2; i++ {\n\t\tif i == p {\n\t\t\tcontinue\n\t\t}\n\t\tif interpY {\n\t\t\th.points[glyphZone][current][i].Y += delta\n\t\t} else {\n\t\t\th.points[glyphZone][current][i].X += delta\n\t\t}\n\t}\n}\n\nfunc (h *hinter) displacement(useZP1 bool) (zonePointer uint32, i int32, d fixed.Int26_6, ok bool) {\n\tzonePointer, i = uint32(0), h.gs.rp[1]\n\tif useZP1 {\n\t\tzonePointer, i = 1, h.gs.rp[2]\n\t}\n\tp := h.point(zonePointer, current, i)\n\tq := h.point(zonePointer, unhinted, i)\n\tif p == nil || q == nil {\n\t\treturn 0, 0, 0, false\n\t}\n\td = dotProduct(p.X-q.X, p.Y-q.Y, h.gs.pv)\n\treturn zonePointer, i, d, true\n}\n\n// skipInstructionPayload increments pc by the extra data that follows a\n// variable length PUSHB or PUSHW instruction.\nfunc skipInstructionPayload(program []byte, pc int) (newPC int, ok bool) {\n\tswitch program[pc] {\n\tcase opNPUSHB:\n\t\tpc++\n\t\tif pc >= len(program) {\n\t\t\treturn 0, false\n\t\t}\n\t\tpc += int(program[pc])\n\tcase opNPUSHW:\n\t\tpc++\n\t\tif pc >= len(program) {\n\t\t\treturn 0, false\n\t\t}\n\t\tpc += 2 * int(program[pc])\n\tcase opPUSHB000, opPUSHB001, opPUSHB010, opPUSHB011,\n\t\topPUSHB100, opPUSHB101, opPUSHB110, opPUSHB111:\n\t\tpc += int(program[pc] - (opPUSHB000 - 1))\n\tcase opPUSHW000, opPUSHW001, opPUSHW010, opPUSHW011,\n\t\topPUSHW100, opPUSHW101, opPUSHW110, opPUSHW111:\n\t\tpc += 2 * int(program[pc]-(opPUSHW000-1))\n\t}\n\treturn pc, true\n}\n\n// f2dot14 is a 2.14 fixed point number.\ntype f2dot14 int16\n\nfunc normalize(x, y f2dot14) [2]f2dot14 {\n\tfx, fy := float64(x), float64(y)\n\tl := 0x4000 / math.Hypot(fx, fy)\n\tfx *= l\n\tif fx >= 0 {\n\t\tfx += 0.5\n\t} else {\n\t\tfx -= 0.5\n\t}\n\tfy *= l\n\tif fy >= 0 {\n\t\tfy += 0.5\n\t} else {\n\t\tfy -= 0.5\n\t}\n\treturn [2]f2dot14{f2dot14(fx), f2dot14(fy)}\n}\n\n// fabs returns abs(x) in 26.6 fixed point arithmetic.\nfunc fabs(x fixed.Int26_6) fixed.Int26_6 {\n\tif x < 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\n// fdiv returns x/y in 26.6 fixed point arithmetic.\nfunc fdiv(x, y fixed.Int26_6) fixed.Int26_6 {\n\treturn fixed.Int26_6((int64(x) << 6) / int64(y))\n}\n\n// fmul returns x*y in 26.6 fixed point arithmetic.\nfunc fmul(x, y fixed.Int26_6) fixed.Int26_6 {\n\treturn fixed.Int26_6((int64(x)*int64(y) + 1<<5) >> 6)\n}\n\n// dotProduct returns the dot product of [x, y] and q. It is almost the same as\n//\tpx := int64(x)\n//\tpy := int64(y)\n//\tqx := int64(q[0])\n//\tqy := int64(q[1])\n//\treturn fixed.Int26_6((px*qx + py*qy + 1<<13) >> 14)\n// except that the computation is done with 32-bit integers to produce exactly\n// the same rounding behavior as C Freetype.\nfunc dotProduct(x, y fixed.Int26_6, q [2]f2dot14) fixed.Int26_6 {\n\t// Compute x*q[0] as 64-bit value.\n\tl := uint32((int32(x) & 0xFFFF) * int32(q[0]))\n\tm := (int32(x) >> 16) * int32(q[0])\n\n\tlo1 := l + (uint32(m) << 16)\n\thi1 := (m >> 16) + (int32(l) >> 31) + bool2int32(lo1 < l)\n\n\t// Compute y*q[1] as 64-bit value.\n\tl = uint32((int32(y) & 0xFFFF) * int32(q[1]))\n\tm = (int32(y) >> 16) * int32(q[1])\n\n\tlo2 := l + (uint32(m) << 16)\n\thi2 := (m >> 16) + (int32(l) >> 31) + bool2int32(lo2 < l)\n\n\t// Add them.\n\tlo := lo1 + lo2\n\thi := hi1 + hi2 + bool2int32(lo < lo1)\n\n\t// Divide the result by 2^14 with rounding.\n\ts := hi >> 31\n\tl = lo + uint32(s)\n\thi += s + bool2int32(l < lo)\n\tlo = l\n\n\tl = lo + 0x2000\n\thi += bool2int32(l < lo)\n\n\treturn fixed.Int26_6((uint32(hi) << 18) | (l >> 14))\n}\n\n// mulDiv returns x*y/z, rounded to the nearest integer.\nfunc mulDiv(x, y, z int64) int64 {\n\txy := x * y\n\tif z < 0 {\n\t\txy, z = -xy, -z\n\t}\n\tif xy >= 0 {\n\t\txy += z / 2\n\t} else {\n\t\txy -= z / 2\n\t}\n\treturn xy / z\n}\n\n// round rounds the given number. The rounding algorithm is described at\n// https://developer.apple.com/fonts/TTRefMan/RM02/Chap2.html#rounding\nfunc (h *hinter) round(x fixed.Int26_6) fixed.Int26_6 {\n\tif h.gs.roundPeriod == 0 {\n\t\t// Rounding is off.\n\t\treturn x\n\t}\n\tif x >= 0 {\n\t\tret := x - h.gs.roundPhase + h.gs.roundThreshold\n\t\tif h.gs.roundSuper45 {\n\t\t\tret /= h.gs.roundPeriod\n\t\t\tret *= h.gs.roundPeriod\n\t\t} else {\n\t\t\tret &= -h.gs.roundPeriod\n\t\t}\n\t\tif x != 0 && ret < 0 {\n\t\t\tret = 0\n\t\t}\n\t\treturn ret + h.gs.roundPhase\n\t}\n\tret := -x - h.gs.roundPhase + h.gs.roundThreshold\n\tif h.gs.roundSuper45 {\n\t\tret /= h.gs.roundPeriod\n\t\tret *= h.gs.roundPeriod\n\t} else {\n\t\tret &= -h.gs.roundPeriod\n\t}\n\tif ret < 0 {\n\t\tret = 0\n\t}\n\treturn -ret - h.gs.roundPhase\n}\n\nfunc bool2int32(b bool) int32 {\n\tif b {\n\t\treturn 1\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/truetype/opcodes.go",
    "content": "// Copyright 2012 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\npackage truetype\n\n// The Truetype opcodes are summarized at\n// https://developer.apple.com/fonts/TTRefMan/RM07/appendixA.html\n\nconst (\n\topSVTCA0    = 0x00 // Set freedom and projection Vectors To Coordinate Axis\n\topSVTCA1    = 0x01 // .\n\topSPVTCA0   = 0x02 // Set Projection Vector To Coordinate Axis\n\topSPVTCA1   = 0x03 // .\n\topSFVTCA0   = 0x04 // Set Freedom Vector to Coordinate Axis\n\topSFVTCA1   = 0x05 // .\n\topSPVTL0    = 0x06 // Set Projection Vector To Line\n\topSPVTL1    = 0x07 // .\n\topSFVTL0    = 0x08 // Set Freedom Vector To Line\n\topSFVTL1    = 0x09 // .\n\topSPVFS     = 0x0a // Set Projection Vector From Stack\n\topSFVFS     = 0x0b // Set Freedom Vector From Stack\n\topGPV       = 0x0c // Get Projection Vector\n\topGFV       = 0x0d // Get Freedom Vector\n\topSFVTPV    = 0x0e // Set Freedom Vector To Projection Vector\n\topISECT     = 0x0f // moves point p to the InterSECTion of two lines\n\topSRP0      = 0x10 // Set Reference Point 0\n\topSRP1      = 0x11 // Set Reference Point 1\n\topSRP2      = 0x12 // Set Reference Point 2\n\topSZP0      = 0x13 // Set Zone Pointer 0\n\topSZP1      = 0x14 // Set Zone Pointer 1\n\topSZP2      = 0x15 // Set Zone Pointer 2\n\topSZPS      = 0x16 // Set Zone PointerS\n\topSLOOP     = 0x17 // Set LOOP variable\n\topRTG       = 0x18 // Round To Grid\n\topRTHG      = 0x19 // Round To Half Grid\n\topSMD       = 0x1a // Set Minimum Distance\n\topELSE      = 0x1b // ELSE clause\n\topJMPR      = 0x1c // JuMP Relative\n\topSCVTCI    = 0x1d // Set Control Value Table Cut-In\n\topSSWCI     = 0x1e // Set Single Width Cut-In\n\topSSW       = 0x1f // Set Single Width\n\topDUP       = 0x20 // DUPlicate top stack element\n\topPOP       = 0x21 // POP top stack element\n\topCLEAR     = 0x22 // CLEAR the stack\n\topSWAP      = 0x23 // SWAP the top two elements on the stack\n\topDEPTH     = 0x24 // DEPTH of the stack\n\topCINDEX    = 0x25 // Copy the INDEXed element to the top of the stack\n\topMINDEX    = 0x26 // Move the INDEXed element to the top of the stack\n\topALIGNPTS  = 0x27 // ALIGN PoinTS\n\top_0x28     = 0x28 // deprecated\n\topUTP       = 0x29 // UnTouch Point\n\topLOOPCALL  = 0x2a // LOOP and CALL function\n\topCALL      = 0x2b // CALL function\n\topFDEF      = 0x2c // Function DEFinition\n\topENDF      = 0x2d // END Function definition\n\topMDAP0     = 0x2e // Move Direct Absolute Point\n\topMDAP1     = 0x2f // .\n\topIUP0      = 0x30 // Interpolate Untouched Points through the outline\n\topIUP1      = 0x31 // .\n\topSHP0      = 0x32 // SHift Point using reference point\n\topSHP1      = 0x33 // .\n\topSHC0      = 0x34 // SHift Contour using reference point\n\topSHC1      = 0x35 // .\n\topSHZ0      = 0x36 // SHift Zone using reference point\n\topSHZ1      = 0x37 // .\n\topSHPIX     = 0x38 // SHift point by a PIXel amount\n\topIP        = 0x39 // Interpolate Point\n\topMSIRP0    = 0x3a // Move Stack Indirect Relative Point\n\topMSIRP1    = 0x3b // .\n\topALIGNRP   = 0x3c // ALIGN to Reference Point\n\topRTDG      = 0x3d // Round To Double Grid\n\topMIAP0     = 0x3e // Move Indirect Absolute Point\n\topMIAP1     = 0x3f // .\n\topNPUSHB    = 0x40 // PUSH N Bytes\n\topNPUSHW    = 0x41 // PUSH N Words\n\topWS        = 0x42 // Write Store\n\topRS        = 0x43 // Read Store\n\topWCVTP     = 0x44 // Write Control Value Table in Pixel units\n\topRCVT      = 0x45 // Read Control Value Table entry\n\topGC0       = 0x46 // Get Coordinate projected onto the projection vector\n\topGC1       = 0x47 // .\n\topSCFS      = 0x48 // Sets Coordinate From the Stack using projection vector and freedom vector\n\topMD0       = 0x49 // Measure Distance\n\topMD1       = 0x4a // .\n\topMPPEM     = 0x4b // Measure Pixels Per EM\n\topMPS       = 0x4c // Measure Point Size\n\topFLIPON    = 0x4d // set the auto FLIP Boolean to ON\n\topFLIPOFF   = 0x4e // set the auto FLIP Boolean to OFF\n\topDEBUG     = 0x4f // DEBUG call\n\topLT        = 0x50 // Less Than\n\topLTEQ      = 0x51 // Less Than or EQual\n\topGT        = 0x52 // Greater Than\n\topGTEQ      = 0x53 // Greater Than or EQual\n\topEQ        = 0x54 // EQual\n\topNEQ       = 0x55 // Not EQual\n\topODD       = 0x56 // ODD\n\topEVEN      = 0x57 // EVEN\n\topIF        = 0x58 // IF test\n\topEIF       = 0x59 // End IF\n\topAND       = 0x5a // logical AND\n\topOR        = 0x5b // logical OR\n\topNOT       = 0x5c // logical NOT\n\topDELTAP1   = 0x5d // DELTA exception P1\n\topSDB       = 0x5e // Set Delta Base in the graphics state\n\topSDS       = 0x5f // Set Delta Shift in the graphics state\n\topADD       = 0x60 // ADD\n\topSUB       = 0x61 // SUBtract\n\topDIV       = 0x62 // DIVide\n\topMUL       = 0x63 // MULtiply\n\topABS       = 0x64 // ABSolute value\n\topNEG       = 0x65 // NEGate\n\topFLOOR     = 0x66 // FLOOR\n\topCEILING   = 0x67 // CEILING\n\topROUND00   = 0x68 // ROUND value\n\topROUND01   = 0x69 // .\n\topROUND10   = 0x6a // .\n\topROUND11   = 0x6b // .\n\topNROUND00  = 0x6c // No ROUNDing of value\n\topNROUND01  = 0x6d // .\n\topNROUND10  = 0x6e // .\n\topNROUND11  = 0x6f // .\n\topWCVTF     = 0x70 // Write Control Value Table in Funits\n\topDELTAP2   = 0x71 // DELTA exception P2\n\topDELTAP3   = 0x72 // DELTA exception P3\n\topDELTAC1   = 0x73 // DELTA exception C1\n\topDELTAC2   = 0x74 // DELTA exception C2\n\topDELTAC3   = 0x75 // DELTA exception C3\n\topSROUND    = 0x76 // Super ROUND\n\topS45ROUND  = 0x77 // Super ROUND 45 degrees\n\topJROT      = 0x78 // Jump Relative On True\n\topJROF      = 0x79 // Jump Relative On False\n\topROFF      = 0x7a // Round OFF\n\top_0x7b     = 0x7b // deprecated\n\topRUTG      = 0x7c // Round Up To Grid\n\topRDTG      = 0x7d // Round Down To Grid\n\topSANGW     = 0x7e // Set ANGle Weight\n\topAA        = 0x7f // Adjust Angle\n\topFLIPPT    = 0x80 // FLIP PoinT\n\topFLIPRGON  = 0x81 // FLIP RanGe ON\n\topFLIPRGOFF = 0x82 // FLIP RanGe OFF\n\top_0x83     = 0x83 // deprecated\n\top_0x84     = 0x84 // deprecated\n\topSCANCTRL  = 0x85 // SCAN conversion ConTRoL\n\topSDPVTL0   = 0x86 // Set Dual Projection Vector To Line\n\topSDPVTL1   = 0x87 // .\n\topGETINFO   = 0x88 // GET INFOrmation\n\topIDEF      = 0x89 // Instruction DEFinition\n\topROLL      = 0x8a // ROLL the top three stack elements\n\topMAX       = 0x8b // MAXimum of top two stack elements\n\topMIN       = 0x8c // MINimum of top two stack elements\n\topSCANTYPE  = 0x8d // SCANTYPE\n\topINSTCTRL  = 0x8e // INSTRuction execution ConTRoL\n\top_0x8f     = 0x8f\n\top_0x90     = 0x90\n\top_0x91     = 0x91\n\top_0x92     = 0x92\n\top_0x93     = 0x93\n\top_0x94     = 0x94\n\top_0x95     = 0x95\n\top_0x96     = 0x96\n\top_0x97     = 0x97\n\top_0x98     = 0x98\n\top_0x99     = 0x99\n\top_0x9a     = 0x9a\n\top_0x9b     = 0x9b\n\top_0x9c     = 0x9c\n\top_0x9d     = 0x9d\n\top_0x9e     = 0x9e\n\top_0x9f     = 0x9f\n\top_0xa0     = 0xa0\n\top_0xa1     = 0xa1\n\top_0xa2     = 0xa2\n\top_0xa3     = 0xa3\n\top_0xa4     = 0xa4\n\top_0xa5     = 0xa5\n\top_0xa6     = 0xa6\n\top_0xa7     = 0xa7\n\top_0xa8     = 0xa8\n\top_0xa9     = 0xa9\n\top_0xaa     = 0xaa\n\top_0xab     = 0xab\n\top_0xac     = 0xac\n\top_0xad     = 0xad\n\top_0xae     = 0xae\n\top_0xaf     = 0xaf\n\topPUSHB000  = 0xb0 // PUSH Bytes\n\topPUSHB001  = 0xb1 // .\n\topPUSHB010  = 0xb2 // .\n\topPUSHB011  = 0xb3 // .\n\topPUSHB100  = 0xb4 // .\n\topPUSHB101  = 0xb5 // .\n\topPUSHB110  = 0xb6 // .\n\topPUSHB111  = 0xb7 // .\n\topPUSHW000  = 0xb8 // PUSH Words\n\topPUSHW001  = 0xb9 // .\n\topPUSHW010  = 0xba // .\n\topPUSHW011  = 0xbb // .\n\topPUSHW100  = 0xbc // .\n\topPUSHW101  = 0xbd // .\n\topPUSHW110  = 0xbe // .\n\topPUSHW111  = 0xbf // .\n\topMDRP00000 = 0xc0 // Move Direct Relative Point\n\topMDRP00001 = 0xc1 // .\n\topMDRP00010 = 0xc2 // .\n\topMDRP00011 = 0xc3 // .\n\topMDRP00100 = 0xc4 // .\n\topMDRP00101 = 0xc5 // .\n\topMDRP00110 = 0xc6 // .\n\topMDRP00111 = 0xc7 // .\n\topMDRP01000 = 0xc8 // .\n\topMDRP01001 = 0xc9 // .\n\topMDRP01010 = 0xca // .\n\topMDRP01011 = 0xcb // .\n\topMDRP01100 = 0xcc // .\n\topMDRP01101 = 0xcd // .\n\topMDRP01110 = 0xce // .\n\topMDRP01111 = 0xcf // .\n\topMDRP10000 = 0xd0 // .\n\topMDRP10001 = 0xd1 // .\n\topMDRP10010 = 0xd2 // .\n\topMDRP10011 = 0xd3 // .\n\topMDRP10100 = 0xd4 // .\n\topMDRP10101 = 0xd5 // .\n\topMDRP10110 = 0xd6 // .\n\topMDRP10111 = 0xd7 // .\n\topMDRP11000 = 0xd8 // .\n\topMDRP11001 = 0xd9 // .\n\topMDRP11010 = 0xda // .\n\topMDRP11011 = 0xdb // .\n\topMDRP11100 = 0xdc // .\n\topMDRP11101 = 0xdd // .\n\topMDRP11110 = 0xde // .\n\topMDRP11111 = 0xdf // .\n\topMIRP00000 = 0xe0 // Move Indirect Relative Point\n\topMIRP00001 = 0xe1 // .\n\topMIRP00010 = 0xe2 // .\n\topMIRP00011 = 0xe3 // .\n\topMIRP00100 = 0xe4 // .\n\topMIRP00101 = 0xe5 // .\n\topMIRP00110 = 0xe6 // .\n\topMIRP00111 = 0xe7 // .\n\topMIRP01000 = 0xe8 // .\n\topMIRP01001 = 0xe9 // .\n\topMIRP01010 = 0xea // .\n\topMIRP01011 = 0xeb // .\n\topMIRP01100 = 0xec // .\n\topMIRP01101 = 0xed // .\n\topMIRP01110 = 0xee // .\n\topMIRP01111 = 0xef // .\n\topMIRP10000 = 0xf0 // .\n\topMIRP10001 = 0xf1 // .\n\topMIRP10010 = 0xf2 // .\n\topMIRP10011 = 0xf3 // .\n\topMIRP10100 = 0xf4 // .\n\topMIRP10101 = 0xf5 // .\n\topMIRP10110 = 0xf6 // .\n\topMIRP10111 = 0xf7 // .\n\topMIRP11000 = 0xf8 // .\n\topMIRP11001 = 0xf9 // .\n\topMIRP11010 = 0xfa // .\n\topMIRP11011 = 0xfb // .\n\topMIRP11100 = 0xfc // .\n\topMIRP11101 = 0xfd // .\n\topMIRP11110 = 0xfe // .\n\topMIRP11111 = 0xff // .\n)\n\n// popCount is the number of stack elements that each opcode pops.\nvar popCount = [256]uint8{\n\t// 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f\n\t0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 5, // 0x00 - 0x0f\n\t1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, // 0x10 - 0x1f\n\t1, 1, 0, 2, 0, 1, 1, 2, 0, 1, 2, 1, 1, 0, 1, 1, // 0x20 - 0x2f\n\t0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 2, 2, 0, 0, 2, 2, // 0x30 - 0x3f\n\t0, 0, 2, 1, 2, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, // 0x40 - 0x4f\n\t2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 2, 2, 1, 1, 1, 1, // 0x50 - 0x5f\n\t2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6f\n\t2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 1, 1, // 0x70 - 0x7f\n\t0, 2, 2, 0, 0, 1, 2, 2, 1, 1, 3, 2, 2, 1, 2, 0, // 0x80 - 0x8f\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x90 - 0x9f\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xa0 - 0xaf\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xb0 - 0xbf\n\t1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xc0 - 0xcf\n\t1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xd0 - 0xdf\n\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xe0 - 0xef\n\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xf0 - 0xff\n}\n"
  },
  {
    "path": "vendor/github.com/golang/freetype/truetype/truetype.go",
    "content": "// Copyright 2010 The Freetype-Go Authors. All rights reserved.\n// Use of this source code is governed by your choice of either the\n// FreeType License or the GNU General Public License version 2 (or\n// any later version), both of which can be found in the LICENSE file.\n\n// Package truetype provides a parser for the TTF and TTC file formats.\n// Those formats are documented at http://developer.apple.com/fonts/TTRefMan/\n// and http://www.microsoft.com/typography/otspec/\n//\n// Some of a font's methods provide lengths or co-ordinates, e.g. bounds, font\n// metrics and control points. All these methods take a scale parameter, which\n// is the number of pixels in 1 em, expressed as a 26.6 fixed point value. For\n// example, if 1 em is 10 pixels then scale is fixed.I(10), which is equal to\n// fixed.Int26_6(10 << 6).\n//\n// To measure a TrueType font in ideal FUnit space, use scale equal to\n// font.FUnitsPerEm().\npackage truetype // import \"github.com/golang/freetype/truetype\"\n\nimport (\n\t\"fmt\"\n\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// An Index is a Font's index of a rune.\ntype Index uint16\n\n// A NameID identifies a name table entry.\n//\n// See https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html\ntype NameID uint16\n\nconst (\n\tNameIDCopyright          NameID = 0\n\tNameIDFontFamily                = 1\n\tNameIDFontSubfamily             = 2\n\tNameIDUniqueSubfamilyID         = 3\n\tNameIDFontFullName              = 4\n\tNameIDNameTableVersion          = 5\n\tNameIDPostscriptName            = 6\n\tNameIDTrademarkNotice           = 7\n\tNameIDManufacturerName          = 8\n\tNameIDDesignerName              = 9\n\tNameIDFontDescription           = 10\n\tNameIDFontVendorURL             = 11\n\tNameIDFontDesignerURL           = 12\n\tNameIDFontLicense               = 13\n\tNameIDFontLicenseURL            = 14\n\tNameIDPreferredFamily           = 16\n\tNameIDPreferredSubfamily        = 17\n\tNameIDCompatibleName            = 18\n\tNameIDSampleText                = 19\n)\n\nconst (\n\t// A 32-bit encoding consists of a most-significant 16-bit Platform ID and a\n\t// least-significant 16-bit Platform Specific ID. The magic numbers are\n\t// specified at https://www.microsoft.com/typography/otspec/name.htm\n\tunicodeEncodingBMPOnly  = 0x00000003 // PID = 0 (Unicode), PSID = 3 (Unicode 2.0 BMP Only)\n\tunicodeEncodingFull     = 0x00000004 // PID = 0 (Unicode), PSID = 4 (Unicode 2.0 Full Repertoire)\n\tmicrosoftSymbolEncoding = 0x00030000 // PID = 3 (Microsoft), PSID = 0 (Symbol)\n\tmicrosoftUCS2Encoding   = 0x00030001 // PID = 3 (Microsoft), PSID = 1 (UCS-2)\n\tmicrosoftUCS4Encoding   = 0x0003000a // PID = 3 (Microsoft), PSID = 10 (UCS-4)\n)\n\n// An HMetric holds the horizontal metrics of a single glyph.\ntype HMetric struct {\n\tAdvanceWidth, LeftSideBearing fixed.Int26_6\n}\n\n// A VMetric holds the vertical metrics of a single glyph.\ntype VMetric struct {\n\tAdvanceHeight, TopSideBearing fixed.Int26_6\n}\n\n// A FormatError reports that the input is not a valid TrueType font.\ntype FormatError string\n\nfunc (e FormatError) Error() string {\n\treturn \"freetype: invalid TrueType format: \" + string(e)\n}\n\n// An UnsupportedError reports that the input uses a valid but unimplemented\n// TrueType feature.\ntype UnsupportedError string\n\nfunc (e UnsupportedError) Error() string {\n\treturn \"freetype: unsupported TrueType feature: \" + string(e)\n}\n\n// u32 returns the big-endian uint32 at b[i:].\nfunc u32(b []byte, i int) uint32 {\n\treturn uint32(b[i])<<24 | uint32(b[i+1])<<16 | uint32(b[i+2])<<8 | uint32(b[i+3])\n}\n\n// u16 returns the big-endian uint16 at b[i:].\nfunc u16(b []byte, i int) uint16 {\n\treturn uint16(b[i])<<8 | uint16(b[i+1])\n}\n\n// readTable returns a slice of the TTF data given by a table's directory entry.\nfunc readTable(ttf []byte, offsetLength []byte) ([]byte, error) {\n\toffset := int(u32(offsetLength, 0))\n\tif offset < 0 {\n\t\treturn nil, FormatError(fmt.Sprintf(\"offset too large: %d\", uint32(offset)))\n\t}\n\tlength := int(u32(offsetLength, 4))\n\tif length < 0 {\n\t\treturn nil, FormatError(fmt.Sprintf(\"length too large: %d\", uint32(length)))\n\t}\n\tend := offset + length\n\tif end < 0 || end > len(ttf) {\n\t\treturn nil, FormatError(fmt.Sprintf(\"offset + length too large: %d\", uint32(offset)+uint32(length)))\n\t}\n\treturn ttf[offset:end], nil\n}\n\n// parseSubtables returns the offset and platformID of the best subtable in\n// table, where best favors a Unicode cmap encoding, and failing that, a\n// Microsoft cmap encoding. offset is the offset of the first subtable in\n// table, and size is the size of each subtable.\n//\n// If pred is non-nil, then only subtables that satisfy that predicate will be\n// considered.\nfunc parseSubtables(table []byte, name string, offset, size int, pred func([]byte) bool) (\n\tbestOffset int, bestPID uint32, retErr error) {\n\n\tif len(table) < 4 {\n\t\treturn 0, 0, FormatError(name + \" too short\")\n\t}\n\tnSubtables := int(u16(table, 2))\n\tif len(table) < size*nSubtables+offset {\n\t\treturn 0, 0, FormatError(name + \" too short\")\n\t}\n\tok := false\n\tfor i := 0; i < nSubtables; i, offset = i+1, offset+size {\n\t\tif pred != nil && !pred(table[offset:]) {\n\t\t\tcontinue\n\t\t}\n\t\t// We read the 16-bit Platform ID and 16-bit Platform Specific ID as a single uint32.\n\t\t// All values are big-endian.\n\t\tpidPsid := u32(table, offset)\n\t\t// We prefer the Unicode cmap encoding. Failing to find that, we fall\n\t\t// back onto the Microsoft cmap encoding.\n\t\tif pidPsid == unicodeEncodingBMPOnly || pidPsid == unicodeEncodingFull {\n\t\t\tbestOffset, bestPID, ok = offset, pidPsid>>16, true\n\t\t\tbreak\n\n\t\t} else if pidPsid == microsoftSymbolEncoding ||\n\t\t\tpidPsid == microsoftUCS2Encoding ||\n\t\t\tpidPsid == microsoftUCS4Encoding {\n\n\t\t\tbestOffset, bestPID, ok = offset, pidPsid>>16, true\n\t\t\t// We don't break out of the for loop, so that Unicode can override Microsoft.\n\t\t}\n\t}\n\tif !ok {\n\t\treturn 0, 0, UnsupportedError(name + \" encoding\")\n\t}\n\treturn bestOffset, bestPID, nil\n}\n\nconst (\n\tlocaOffsetFormatUnknown int = iota\n\tlocaOffsetFormatShort\n\tlocaOffsetFormatLong\n)\n\n// A cm holds a parsed cmap entry.\ntype cm struct {\n\tstart, end, delta, offset uint32\n}\n\n// A Font represents a Truetype font.\ntype Font struct {\n\t// Tables sliced from the TTF data. The different tables are documented\n\t// at http://developer.apple.com/fonts/TTRefMan/RM06/Chap6.html\n\tcmap, cvt, fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, name, os2, prep, vmtx []byte\n\n\tcmapIndexes []byte\n\n\t// Cached values derived from the raw ttf data.\n\tcm                      []cm\n\tlocaOffsetFormat        int\n\tnGlyph, nHMetric, nKern int\n\tfUnitsPerEm             int32\n\tascent                  int32               // In FUnits.\n\tdescent                 int32               // In FUnits; typically negative.\n\tbounds                  fixed.Rectangle26_6 // In FUnits.\n\t// Values from the maxp section.\n\tmaxTwilightPoints, maxStorage, maxFunctionDefs, maxStackElements uint16\n}\n\nfunc (f *Font) parseCmap() error {\n\tconst (\n\t\tcmapFormat4         = 4\n\t\tcmapFormat12        = 12\n\t\tlanguageIndependent = 0\n\t)\n\n\toffset, _, err := parseSubtables(f.cmap, \"cmap\", 4, 8, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\toffset = int(u32(f.cmap, offset+4))\n\tif offset <= 0 || offset > len(f.cmap) {\n\t\treturn FormatError(\"bad cmap offset\")\n\t}\n\n\tcmapFormat := u16(f.cmap, offset)\n\tswitch cmapFormat {\n\tcase cmapFormat4:\n\t\tlanguage := u16(f.cmap, offset+4)\n\t\tif language != languageIndependent {\n\t\t\treturn UnsupportedError(fmt.Sprintf(\"language: %d\", language))\n\t\t}\n\t\tsegCountX2 := int(u16(f.cmap, offset+6))\n\t\tif segCountX2%2 == 1 {\n\t\t\treturn FormatError(fmt.Sprintf(\"bad segCountX2: %d\", segCountX2))\n\t\t}\n\t\tsegCount := segCountX2 / 2\n\t\toffset += 14\n\t\tf.cm = make([]cm, segCount)\n\t\tfor i := 0; i < segCount; i++ {\n\t\t\tf.cm[i].end = uint32(u16(f.cmap, offset))\n\t\t\toffset += 2\n\t\t}\n\t\toffset += 2\n\t\tfor i := 0; i < segCount; i++ {\n\t\t\tf.cm[i].start = uint32(u16(f.cmap, offset))\n\t\t\toffset += 2\n\t\t}\n\t\tfor i := 0; i < segCount; i++ {\n\t\t\tf.cm[i].delta = uint32(u16(f.cmap, offset))\n\t\t\toffset += 2\n\t\t}\n\t\tfor i := 0; i < segCount; i++ {\n\t\t\tf.cm[i].offset = uint32(u16(f.cmap, offset))\n\t\t\toffset += 2\n\t\t}\n\t\tf.cmapIndexes = f.cmap[offset:]\n\t\treturn nil\n\n\tcase cmapFormat12:\n\t\tif u16(f.cmap, offset+2) != 0 {\n\t\t\treturn FormatError(fmt.Sprintf(\"cmap format: % x\", f.cmap[offset:offset+4]))\n\t\t}\n\t\tlength := u32(f.cmap, offset+4)\n\t\tlanguage := u32(f.cmap, offset+8)\n\t\tif language != languageIndependent {\n\t\t\treturn UnsupportedError(fmt.Sprintf(\"language: %d\", language))\n\t\t}\n\t\tnGroups := u32(f.cmap, offset+12)\n\t\tif length != 12*nGroups+16 {\n\t\t\treturn FormatError(\"inconsistent cmap length\")\n\t\t}\n\t\toffset += 16\n\t\tf.cm = make([]cm, nGroups)\n\t\tfor i := uint32(0); i < nGroups; i++ {\n\t\t\tf.cm[i].start = u32(f.cmap, offset+0)\n\t\t\tf.cm[i].end = u32(f.cmap, offset+4)\n\t\t\tf.cm[i].delta = u32(f.cmap, offset+8) - f.cm[i].start\n\t\t\toffset += 12\n\t\t}\n\t\treturn nil\n\t}\n\treturn UnsupportedError(fmt.Sprintf(\"cmap format: %d\", cmapFormat))\n}\n\nfunc (f *Font) parseHead() error {\n\tif len(f.head) != 54 {\n\t\treturn FormatError(fmt.Sprintf(\"bad head length: %d\", len(f.head)))\n\t}\n\tf.fUnitsPerEm = int32(u16(f.head, 18))\n\tf.bounds.Min.X = fixed.Int26_6(int16(u16(f.head, 36)))\n\tf.bounds.Min.Y = fixed.Int26_6(int16(u16(f.head, 38)))\n\tf.bounds.Max.X = fixed.Int26_6(int16(u16(f.head, 40)))\n\tf.bounds.Max.Y = fixed.Int26_6(int16(u16(f.head, 42)))\n\tswitch i := u16(f.head, 50); i {\n\tcase 0:\n\t\tf.locaOffsetFormat = locaOffsetFormatShort\n\tcase 1:\n\t\tf.locaOffsetFormat = locaOffsetFormatLong\n\tdefault:\n\t\treturn FormatError(fmt.Sprintf(\"bad indexToLocFormat: %d\", i))\n\t}\n\treturn nil\n}\n\nfunc (f *Font) parseHhea() error {\n\tif len(f.hhea) != 36 {\n\t\treturn FormatError(fmt.Sprintf(\"bad hhea length: %d\", len(f.hhea)))\n\t}\n\tf.ascent = int32(int16(u16(f.hhea, 4)))\n\tf.descent = int32(int16(u16(f.hhea, 6)))\n\tf.nHMetric = int(u16(f.hhea, 34))\n\tif 4*f.nHMetric+2*(f.nGlyph-f.nHMetric) != len(f.hmtx) {\n\t\treturn FormatError(fmt.Sprintf(\"bad hmtx length: %d\", len(f.hmtx)))\n\t}\n\treturn nil\n}\n\nfunc (f *Font) parseKern() error {\n\t// Apple's TrueType documentation (http://developer.apple.com/fonts/TTRefMan/RM06/Chap6kern.html) says:\n\t// \"Previous versions of the 'kern' table defined both the version and nTables fields in the header\n\t// as UInt16 values and not UInt32 values. Use of the older format on the Mac OS is discouraged\n\t// (although AAT can sense an old kerning table and still make correct use of it). Microsoft\n\t// Windows still uses the older format for the 'kern' table and will not recognize the newer one.\n\t// Fonts targeted for the Mac OS only should use the new format; fonts targeted for both the Mac OS\n\t// and Windows should use the old format.\"\n\t// Since we expect that almost all fonts aim to be Windows-compatible, we only parse the \"older\" format,\n\t// just like the C Freetype implementation.\n\tif len(f.kern) == 0 {\n\t\tif f.nKern != 0 {\n\t\t\treturn FormatError(\"bad kern table length\")\n\t\t}\n\t\treturn nil\n\t}\n\tif len(f.kern) < 18 {\n\t\treturn FormatError(\"kern data too short\")\n\t}\n\tversion, offset := u16(f.kern, 0), 2\n\tif version != 0 {\n\t\treturn UnsupportedError(fmt.Sprintf(\"kern version: %d\", version))\n\t}\n\n\tn, offset := u16(f.kern, offset), offset+2\n\tif n == 0 {\n\t\treturn UnsupportedError(\"kern nTables: 0\")\n\t}\n\t// TODO: support multiple subtables. In practice, almost all .ttf files\n\t// have only one subtable, if they have a kern table at all. But it's not\n\t// impossible. Xolonium Regular (https://fontlibrary.org/en/font/xolonium)\n\t// has 3 subtables. Those subtables appear to be disjoint, rather than\n\t// being the same kerning pairs encoded in three different ways.\n\t//\n\t// For now, we'll use only the first subtable.\n\n\toffset += 2 // Skip the version.\n\tlength, offset := int(u16(f.kern, offset)), offset+2\n\tcoverage, offset := u16(f.kern, offset), offset+2\n\tif coverage != 0x0001 {\n\t\t// We only support horizontal kerning.\n\t\treturn UnsupportedError(fmt.Sprintf(\"kern coverage: 0x%04x\", coverage))\n\t}\n\tf.nKern, offset = int(u16(f.kern, offset)), offset+2\n\tif 6*f.nKern != length-14 {\n\t\treturn FormatError(\"bad kern table length\")\n\t}\n\treturn nil\n}\n\nfunc (f *Font) parseMaxp() error {\n\tif len(f.maxp) != 32 {\n\t\treturn FormatError(fmt.Sprintf(\"bad maxp length: %d\", len(f.maxp)))\n\t}\n\tf.nGlyph = int(u16(f.maxp, 4))\n\tf.maxTwilightPoints = u16(f.maxp, 16)\n\tf.maxStorage = u16(f.maxp, 18)\n\tf.maxFunctionDefs = u16(f.maxp, 20)\n\tf.maxStackElements = u16(f.maxp, 24)\n\treturn nil\n}\n\n// scale returns x divided by f.fUnitsPerEm, rounded to the nearest integer.\nfunc (f *Font) scale(x fixed.Int26_6) fixed.Int26_6 {\n\tif x >= 0 {\n\t\tx += fixed.Int26_6(f.fUnitsPerEm) / 2\n\t} else {\n\t\tx -= fixed.Int26_6(f.fUnitsPerEm) / 2\n\t}\n\treturn x / fixed.Int26_6(f.fUnitsPerEm)\n}\n\n// Bounds returns the union of a Font's glyphs' bounds.\nfunc (f *Font) Bounds(scale fixed.Int26_6) fixed.Rectangle26_6 {\n\tb := f.bounds\n\tb.Min.X = f.scale(scale * b.Min.X)\n\tb.Min.Y = f.scale(scale * b.Min.Y)\n\tb.Max.X = f.scale(scale * b.Max.X)\n\tb.Max.Y = f.scale(scale * b.Max.Y)\n\treturn b\n}\n\n// FUnitsPerEm returns the number of FUnits in a Font's em-square's side.\nfunc (f *Font) FUnitsPerEm() int32 {\n\treturn f.fUnitsPerEm\n}\n\n// Index returns a Font's index for the given rune.\nfunc (f *Font) Index(x rune) Index {\n\tc := uint32(x)\n\tfor i, j := 0, len(f.cm); i < j; {\n\t\th := i + (j-i)/2\n\t\tcm := &f.cm[h]\n\t\tif c < cm.start {\n\t\t\tj = h\n\t\t} else if cm.end < c {\n\t\t\ti = h + 1\n\t\t} else if cm.offset == 0 {\n\t\t\treturn Index(c + cm.delta)\n\t\t} else {\n\t\t\toffset := int(cm.offset) + 2*(h-len(f.cm)+int(c-cm.start))\n\t\t\treturn Index(u16(f.cmapIndexes, offset))\n\t\t}\n\t}\n\treturn 0\n}\n\n// Name returns the Font's name value for the given NameID. It returns \"\" if\n// there was an error, or if that name was not found.\nfunc (f *Font) Name(id NameID) string {\n\tx, platformID, err := parseSubtables(f.name, \"name\", 6, 12, func(b []byte) bool {\n\t\treturn NameID(u16(b, 6)) == id\n\t})\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\toffset, length := u16(f.name, 4)+u16(f.name, x+10), u16(f.name, x+8)\n\t// Return the ASCII value of the encoded string.\n\t// The string is encoded as UTF-16 on non-Apple platformIDs; Apple is platformID 1.\n\tsrc := f.name[offset : offset+length]\n\tvar dst []byte\n\tif platformID != 1 { // UTF-16.\n\t\tif len(src)&1 != 0 {\n\t\t\treturn \"\"\n\t\t}\n\t\tdst = make([]byte, len(src)/2)\n\t\tfor i := range dst {\n\t\t\tdst[i] = printable(u16(src, 2*i))\n\t\t}\n\t} else { // ASCII.\n\t\tdst = make([]byte, len(src))\n\t\tfor i, c := range src {\n\t\t\tdst[i] = printable(uint16(c))\n\t\t}\n\t}\n\treturn string(dst)\n}\n\nfunc printable(r uint16) byte {\n\tif 0x20 <= r && r < 0x7f {\n\t\treturn byte(r)\n\t}\n\treturn '?'\n}\n\n// unscaledHMetric returns the unscaled horizontal metrics for the glyph with\n// the given index.\nfunc (f *Font) unscaledHMetric(i Index) (h HMetric) {\n\tj := int(i)\n\tif j < 0 || f.nGlyph <= j {\n\t\treturn HMetric{}\n\t}\n\tif j >= f.nHMetric {\n\t\tp := 4 * (f.nHMetric - 1)\n\t\treturn HMetric{\n\t\t\tAdvanceWidth:    fixed.Int26_6(u16(f.hmtx, p)),\n\t\t\tLeftSideBearing: fixed.Int26_6(int16(u16(f.hmtx, p+2*(j-f.nHMetric)+4))),\n\t\t}\n\t}\n\treturn HMetric{\n\t\tAdvanceWidth:    fixed.Int26_6(u16(f.hmtx, 4*j)),\n\t\tLeftSideBearing: fixed.Int26_6(int16(u16(f.hmtx, 4*j+2))),\n\t}\n}\n\n// HMetric returns the horizontal metrics for the glyph with the given index.\nfunc (f *Font) HMetric(scale fixed.Int26_6, i Index) HMetric {\n\th := f.unscaledHMetric(i)\n\th.AdvanceWidth = f.scale(scale * h.AdvanceWidth)\n\th.LeftSideBearing = f.scale(scale * h.LeftSideBearing)\n\treturn h\n}\n\n// unscaledVMetric returns the unscaled vertical metrics for the glyph with\n// the given index. yMax is the top of the glyph's bounding box.\nfunc (f *Font) unscaledVMetric(i Index, yMax fixed.Int26_6) (v VMetric) {\n\tj := int(i)\n\tif j < 0 || f.nGlyph <= j {\n\t\treturn VMetric{}\n\t}\n\tif 4*j+4 <= len(f.vmtx) {\n\t\treturn VMetric{\n\t\t\tAdvanceHeight:  fixed.Int26_6(u16(f.vmtx, 4*j)),\n\t\t\tTopSideBearing: fixed.Int26_6(int16(u16(f.vmtx, 4*j+2))),\n\t\t}\n\t}\n\t// The OS/2 table has grown over time.\n\t// https://developer.apple.com/fonts/TTRefMan/RM06/Chap6OS2.html\n\t// says that it was originally 68 bytes. Optional fields, including\n\t// the ascender and descender, are described at\n\t// http://www.microsoft.com/typography/otspec/os2.htm\n\tif len(f.os2) >= 72 {\n\t\tsTypoAscender := fixed.Int26_6(int16(u16(f.os2, 68)))\n\t\tsTypoDescender := fixed.Int26_6(int16(u16(f.os2, 70)))\n\t\treturn VMetric{\n\t\t\tAdvanceHeight:  sTypoAscender - sTypoDescender,\n\t\t\tTopSideBearing: sTypoAscender - yMax,\n\t\t}\n\t}\n\treturn VMetric{\n\t\tAdvanceHeight:  fixed.Int26_6(f.fUnitsPerEm),\n\t\tTopSideBearing: 0,\n\t}\n}\n\n// VMetric returns the vertical metrics for the glyph with the given index.\nfunc (f *Font) VMetric(scale fixed.Int26_6, i Index) VMetric {\n\t// TODO: should 0 be bounds.YMax?\n\tv := f.unscaledVMetric(i, 0)\n\tv.AdvanceHeight = f.scale(scale * v.AdvanceHeight)\n\tv.TopSideBearing = f.scale(scale * v.TopSideBearing)\n\treturn v\n}\n\n// Kern returns the horizontal adjustment for the given glyph pair. A positive\n// kern means to move the glyphs further apart.\nfunc (f *Font) Kern(scale fixed.Int26_6, i0, i1 Index) fixed.Int26_6 {\n\tif f.nKern == 0 {\n\t\treturn 0\n\t}\n\tg := uint32(i0)<<16 | uint32(i1)\n\tlo, hi := 0, f.nKern\n\tfor lo < hi {\n\t\ti := (lo + hi) / 2\n\t\tig := u32(f.kern, 18+6*i)\n\t\tif ig < g {\n\t\t\tlo = i + 1\n\t\t} else if ig > g {\n\t\t\thi = i\n\t\t} else {\n\t\t\treturn f.scale(scale * fixed.Int26_6(int16(u16(f.kern, 22+6*i))))\n\t\t}\n\t}\n\treturn 0\n}\n\n// Parse returns a new Font for the given TTF or TTC data.\n//\n// For TrueType Collections, the first font in the collection is parsed.\nfunc Parse(ttf []byte) (font *Font, err error) {\n\treturn parse(ttf, 0)\n}\n\nfunc parse(ttf []byte, offset int) (font *Font, err error) {\n\tif len(ttf)-offset < 12 {\n\t\terr = FormatError(\"TTF data is too short\")\n\t\treturn\n\t}\n\toriginalOffset := offset\n\tmagic, offset := u32(ttf, offset), offset+4\n\tswitch magic {\n\tcase 0x00010000:\n\t\t// No-op.\n\tcase 0x74746366: // \"ttcf\" as a big-endian uint32.\n\t\tif originalOffset != 0 {\n\t\t\terr = FormatError(\"recursive TTC\")\n\t\t\treturn\n\t\t}\n\t\tttcVersion, offset := u32(ttf, offset), offset+4\n\t\tif ttcVersion != 0x00010000 && ttcVersion != 0x00020000 {\n\t\t\terr = FormatError(\"bad TTC version\")\n\t\t\treturn\n\t\t}\n\t\tnumFonts, offset := int(u32(ttf, offset)), offset+4\n\t\tif numFonts <= 0 {\n\t\t\terr = FormatError(\"bad number of TTC fonts\")\n\t\t\treturn\n\t\t}\n\t\tif len(ttf[offset:])/4 < numFonts {\n\t\t\terr = FormatError(\"TTC offset table is too short\")\n\t\t\treturn\n\t\t}\n\t\t// TODO: provide an API to select which font in a TrueType collection to return,\n\t\t// not just the first one. This may require an API to parse a TTC's name tables,\n\t\t// so users of this package can select the font in a TTC by name.\n\t\toffset = int(u32(ttf, offset))\n\t\tif offset <= 0 || offset > len(ttf) {\n\t\t\terr = FormatError(\"bad TTC offset\")\n\t\t\treturn\n\t\t}\n\t\treturn parse(ttf, offset)\n\tdefault:\n\t\terr = FormatError(\"bad TTF version\")\n\t\treturn\n\t}\n\tn, offset := int(u16(ttf, offset)), offset+2\n\toffset += 6 // Skip the searchRange, entrySelector and rangeShift.\n\tif len(ttf) < 16*n+offset {\n\t\terr = FormatError(\"TTF data is too short\")\n\t\treturn\n\t}\n\tf := new(Font)\n\t// Assign the table slices.\n\tfor i := 0; i < n; i++ {\n\t\tx := 16*i + offset\n\t\tswitch string(ttf[x : x+4]) {\n\t\tcase \"cmap\":\n\t\t\tf.cmap, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"cvt \":\n\t\t\tf.cvt, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"fpgm\":\n\t\t\tf.fpgm, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"glyf\":\n\t\t\tf.glyf, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"hdmx\":\n\t\t\tf.hdmx, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"head\":\n\t\t\tf.head, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"hhea\":\n\t\t\tf.hhea, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"hmtx\":\n\t\t\tf.hmtx, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"kern\":\n\t\t\tf.kern, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"loca\":\n\t\t\tf.loca, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"maxp\":\n\t\t\tf.maxp, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"name\":\n\t\t\tf.name, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"OS/2\":\n\t\t\tf.os2, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"prep\":\n\t\t\tf.prep, err = readTable(ttf, ttf[x+8:x+16])\n\t\tcase \"vmtx\":\n\t\t\tf.vmtx, err = readTable(ttf, ttf[x+8:x+16])\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\t// Parse and sanity-check the TTF data.\n\tif err = f.parseHead(); err != nil {\n\t\treturn\n\t}\n\tif err = f.parseMaxp(); err != nil {\n\t\treturn\n\t}\n\tif err = f.parseCmap(); err != nil {\n\t\treturn\n\t}\n\tif err = f.parseKern(); err != nil {\n\t\treturn\n\t}\n\tif err = f.parseHhea(); err != nil {\n\t\treturn\n\t}\n\tfont = f\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/LICENSE",
    "content": "Copyright 2010 The Go Authors.  All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n    * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/clone.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Protocol buffer deep copy and merge.\n// TODO: RawMessage.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Clone returns a deep copy of a protocol buffer.\nfunc Clone(src Message) Message {\n\tin := reflect.ValueOf(src)\n\tif in.IsNil() {\n\t\treturn src\n\t}\n\tout := reflect.New(in.Type().Elem())\n\tdst := out.Interface().(Message)\n\tMerge(dst, src)\n\treturn dst\n}\n\n// Merger is the interface representing objects that can merge messages of the same type.\ntype Merger interface {\n\t// Merge merges src into this message.\n\t// Required and optional fields that are set in src will be set to that value in dst.\n\t// Elements of repeated fields will be appended.\n\t//\n\t// Merge may panic if called with a different argument type than the receiver.\n\tMerge(src Message)\n}\n\n// generatedMerger is the custom merge method that generated protos will have.\n// We must add this method since a generate Merge method will conflict with\n// many existing protos that have a Merge data field already defined.\ntype generatedMerger interface {\n\tXXX_Merge(src Message)\n}\n\n// Merge merges src into dst.\n// Required and optional fields that are set in src will be set to that value in dst.\n// Elements of repeated fields will be appended.\n// Merge panics if src and dst are not the same type, or if dst is nil.\nfunc Merge(dst, src Message) {\n\tif m, ok := dst.(Merger); ok {\n\t\tm.Merge(src)\n\t\treturn\n\t}\n\n\tin := reflect.ValueOf(src)\n\tout := reflect.ValueOf(dst)\n\tif out.IsNil() {\n\t\tpanic(\"proto: nil destination\")\n\t}\n\tif in.Type() != out.Type() {\n\t\tpanic(fmt.Sprintf(\"proto.Merge(%T, %T) type mismatch\", dst, src))\n\t}\n\tif in.IsNil() {\n\t\treturn // Merge from nil src is a noop\n\t}\n\tif m, ok := dst.(generatedMerger); ok {\n\t\tm.XXX_Merge(src)\n\t\treturn\n\t}\n\tmergeStruct(out.Elem(), in.Elem())\n}\n\nfunc mergeStruct(out, in reflect.Value) {\n\tsprop := GetProperties(in.Type())\n\tfor i := 0; i < in.NumField(); i++ {\n\t\tf := in.Type().Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tmergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i])\n\t}\n\n\tif emIn, err := extendable(in.Addr().Interface()); err == nil {\n\t\temOut, _ := extendable(out.Addr().Interface())\n\t\tmIn, muIn := emIn.extensionsRead()\n\t\tif mIn != nil {\n\t\t\tmOut := emOut.extensionsWrite()\n\t\t\tmuIn.Lock()\n\t\t\tmergeExtension(mOut, mIn)\n\t\t\tmuIn.Unlock()\n\t\t}\n\t}\n\n\tuf := in.FieldByName(\"XXX_unrecognized\")\n\tif !uf.IsValid() {\n\t\treturn\n\t}\n\tuin := uf.Bytes()\n\tif len(uin) > 0 {\n\t\tout.FieldByName(\"XXX_unrecognized\").SetBytes(append([]byte(nil), uin...))\n\t}\n}\n\n// mergeAny performs a merge between two values of the same type.\n// viaPtr indicates whether the values were indirected through a pointer (implying proto2).\n// prop is set if this is a struct field (it may be nil).\nfunc mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) {\n\tif in.Type() == protoMessageType {\n\t\tif !in.IsNil() {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.ValueOf(Clone(in.Interface().(Message))))\n\t\t\t} else {\n\t\t\t\tMerge(out.Interface().(Message), in.Interface().(Message))\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,\n\t\treflect.String, reflect.Uint32, reflect.Uint64:\n\t\tif !viaPtr && isProto3Zero(in) {\n\t\t\treturn\n\t\t}\n\t\tout.Set(in)\n\tcase reflect.Interface:\n\t\t// Probably a oneof field; copy non-nil values.\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\t// Allocate destination if it is not set, or set to a different type.\n\t\t// Otherwise we will merge as normal.\n\t\tif out.IsNil() || out.Elem().Type() != in.Elem().Type() {\n\t\t\tout.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T)\n\t\t}\n\t\tmergeAny(out.Elem(), in.Elem(), false, nil)\n\tcase reflect.Map:\n\t\tif in.Len() == 0 {\n\t\t\treturn\n\t\t}\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.MakeMap(in.Type()))\n\t\t}\n\t\t// For maps with value types of *T or []byte we need to deep copy each value.\n\t\telemKind := in.Type().Elem().Kind()\n\t\tfor _, key := range in.MapKeys() {\n\t\t\tvar val reflect.Value\n\t\t\tswitch elemKind {\n\t\t\tcase reflect.Ptr:\n\t\t\t\tval = reflect.New(in.Type().Elem().Elem())\n\t\t\t\tmergeAny(val, in.MapIndex(key), false, nil)\n\t\t\tcase reflect.Slice:\n\t\t\t\tval = in.MapIndex(key)\n\t\t\t\tval = reflect.ValueOf(append([]byte{}, val.Bytes()...))\n\t\t\tdefault:\n\t\t\t\tval = in.MapIndex(key)\n\t\t\t}\n\t\t\tout.SetMapIndex(key, val)\n\t\t}\n\tcase reflect.Ptr:\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.New(in.Elem().Type()))\n\t\t}\n\t\tmergeAny(out.Elem(), in.Elem(), true, nil)\n\tcase reflect.Slice:\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\tif in.Type().Elem().Kind() == reflect.Uint8 {\n\t\t\t// []byte is a scalar bytes field, not a repeated field.\n\n\t\t\t// Edge case: if this is in a proto3 message, a zero length\n\t\t\t// bytes field is considered the zero value, and should not\n\t\t\t// be merged.\n\t\t\tif prop != nil && prop.proto3 && in.Len() == 0 {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Make a deep copy.\n\t\t\t// Append to []byte{} instead of []byte(nil) so that we never end up\n\t\t\t// with a nil result.\n\t\t\tout.SetBytes(append([]byte{}, in.Bytes()...))\n\t\t\treturn\n\t\t}\n\t\tn := in.Len()\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.MakeSlice(in.Type(), 0, n))\n\t\t}\n\t\tswitch in.Type().Elem().Kind() {\n\t\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,\n\t\t\treflect.String, reflect.Uint32, reflect.Uint64:\n\t\t\tout.Set(reflect.AppendSlice(out, in))\n\t\tdefault:\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tx := reflect.Indirect(reflect.New(in.Type().Elem()))\n\t\t\t\tmergeAny(x, in.Index(i), false, nil)\n\t\t\t\tout.Set(reflect.Append(out, x))\n\t\t\t}\n\t\t}\n\tcase reflect.Struct:\n\t\tmergeStruct(out, in)\n\tdefault:\n\t\t// unknown type, so not a protocol buffer\n\t\tlog.Printf(\"proto: don't know how to copy %v\", in)\n\t}\n}\n\nfunc mergeExtension(out, in map[int32]Extension) {\n\tfor extNum, eIn := range in {\n\t\teOut := Extension{desc: eIn.desc}\n\t\tif eIn.value != nil {\n\t\t\tv := reflect.New(reflect.TypeOf(eIn.value)).Elem()\n\t\t\tmergeAny(v, reflect.ValueOf(eIn.value), false, nil)\n\t\t\teOut.value = v.Interface()\n\t\t}\n\t\tif eIn.enc != nil {\n\t\t\teOut.enc = make([]byte, len(eIn.enc))\n\t\t\tcopy(eOut.enc, eIn.enc)\n\t\t}\n\n\t\tout[extNum] = eOut\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/decode.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for decoding protocol buffer data to construct in-memory representations.\n */\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n)\n\n// errOverflow is returned when an integer is too large to be represented.\nvar errOverflow = errors.New(\"proto: integer overflow\")\n\n// ErrInternalBadWireType is returned by generated code when an incorrect\n// wire type is encountered. It does not get returned to user code.\nvar ErrInternalBadWireType = errors.New(\"proto: internal error: bad wiretype for oneof\")\n\n// DecodeVarint reads a varint-encoded integer from the slice.\n// It returns the integer and the number of bytes consumed, or\n// zero if there is not enough.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc DecodeVarint(buf []byte) (x uint64, n int) {\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif n >= len(buf) {\n\t\t\treturn 0, 0\n\t\t}\n\t\tb := uint64(buf[n])\n\t\tn++\n\t\tx |= (b & 0x7F) << shift\n\t\tif (b & 0x80) == 0 {\n\t\t\treturn x, n\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\treturn 0, 0\n}\n\nfunc (p *Buffer) decodeVarintSlow() (x uint64, err error) {\n\ti := p.index\n\tl := len(p.buf)\n\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif i >= l {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t\treturn\n\t\t}\n\t\tb := p.buf[i]\n\t\ti++\n\t\tx |= (uint64(b) & 0x7F) << shift\n\t\tif b < 0x80 {\n\t\t\tp.index = i\n\t\t\treturn\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\terr = errOverflow\n\treturn\n}\n\n// DecodeVarint reads a varint-encoded integer from the Buffer.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc (p *Buffer) DecodeVarint() (x uint64, err error) {\n\ti := p.index\n\tbuf := p.buf\n\n\tif i >= len(buf) {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t} else if buf[i] < 0x80 {\n\t\tp.index++\n\t\treturn uint64(buf[i]), nil\n\t} else if len(buf)-i < 10 {\n\t\treturn p.decodeVarintSlow()\n\t}\n\n\tvar b uint64\n\t// we already checked the first byte\n\tx = uint64(buf[i]) - 0x80\n\ti++\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 7\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 7\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 14\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 14\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 21\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 21\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 28\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 28\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 35\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 35\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 42\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 42\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 49\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 49\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 56\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 56\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 63\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\n\treturn 0, errOverflow\n\ndone:\n\tp.index = i\n\treturn x, nil\n}\n\n// DecodeFixed64 reads a 64-bit integer from the Buffer.\n// This is the format for the\n// fixed64, sfixed64, and double protocol buffer types.\nfunc (p *Buffer) DecodeFixed64() (x uint64, err error) {\n\t// x, err already 0\n\ti := p.index + 8\n\tif i < 0 || i > len(p.buf) {\n\t\terr = io.ErrUnexpectedEOF\n\t\treturn\n\t}\n\tp.index = i\n\n\tx = uint64(p.buf[i-8])\n\tx |= uint64(p.buf[i-7]) << 8\n\tx |= uint64(p.buf[i-6]) << 16\n\tx |= uint64(p.buf[i-5]) << 24\n\tx |= uint64(p.buf[i-4]) << 32\n\tx |= uint64(p.buf[i-3]) << 40\n\tx |= uint64(p.buf[i-2]) << 48\n\tx |= uint64(p.buf[i-1]) << 56\n\treturn\n}\n\n// DecodeFixed32 reads a 32-bit integer from the Buffer.\n// This is the format for the\n// fixed32, sfixed32, and float protocol buffer types.\nfunc (p *Buffer) DecodeFixed32() (x uint64, err error) {\n\t// x, err already 0\n\ti := p.index + 4\n\tif i < 0 || i > len(p.buf) {\n\t\terr = io.ErrUnexpectedEOF\n\t\treturn\n\t}\n\tp.index = i\n\n\tx = uint64(p.buf[i-4])\n\tx |= uint64(p.buf[i-3]) << 8\n\tx |= uint64(p.buf[i-2]) << 16\n\tx |= uint64(p.buf[i-1]) << 24\n\treturn\n}\n\n// DecodeZigzag64 reads a zigzag-encoded 64-bit integer\n// from the Buffer.\n// This is the format used for the sint64 protocol buffer type.\nfunc (p *Buffer) DecodeZigzag64() (x uint64, err error) {\n\tx, err = p.DecodeVarint()\n\tif err != nil {\n\t\treturn\n\t}\n\tx = (x >> 1) ^ uint64((int64(x&1)<<63)>>63)\n\treturn\n}\n\n// DecodeZigzag32 reads a zigzag-encoded 32-bit integer\n// from  the Buffer.\n// This is the format used for the sint32 protocol buffer type.\nfunc (p *Buffer) DecodeZigzag32() (x uint64, err error) {\n\tx, err = p.DecodeVarint()\n\tif err != nil {\n\t\treturn\n\t}\n\tx = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31))\n\treturn\n}\n\n// DecodeRawBytes reads a count-delimited byte buffer from the Buffer.\n// This is the format used for the bytes protocol buffer\n// type and for embedded messages.\nfunc (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) {\n\tn, err := p.DecodeVarint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnb := int(n)\n\tif nb < 0 {\n\t\treturn nil, fmt.Errorf(\"proto: bad byte length %d\", nb)\n\t}\n\tend := p.index + nb\n\tif end < p.index || end > len(p.buf) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\n\tif !alloc {\n\t\t// todo: check if can get more uses of alloc=false\n\t\tbuf = p.buf[p.index:end]\n\t\tp.index += nb\n\t\treturn\n\t}\n\n\tbuf = make([]byte, nb)\n\tcopy(buf, p.buf[p.index:])\n\tp.index += nb\n\treturn\n}\n\n// DecodeStringBytes reads an encoded string from the Buffer.\n// This is the format used for the proto2 string type.\nfunc (p *Buffer) DecodeStringBytes() (s string, err error) {\n\tbuf, err := p.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn string(buf), nil\n}\n\n// Unmarshaler is the interface representing objects that can\n// unmarshal themselves.  The argument points to data that may be\n// overwritten, so implementations should not keep references to the\n// buffer.\n// Unmarshal implementations should not clear the receiver.\n// Any unmarshaled data should be merged into the receiver.\n// Callers of Unmarshal that do not want to retain existing data\n// should Reset the receiver before calling Unmarshal.\ntype Unmarshaler interface {\n\tUnmarshal([]byte) error\n}\n\n// newUnmarshaler is the interface representing objects that can\n// unmarshal themselves. The semantics are identical to Unmarshaler.\n//\n// This exists to support protoc-gen-go generated messages.\n// The proto package will stop type-asserting to this interface in the future.\n//\n// DO NOT DEPEND ON THIS.\ntype newUnmarshaler interface {\n\tXXX_Unmarshal([]byte) error\n}\n\n// Unmarshal parses the protocol buffer representation in buf and places the\n// decoded result in pb.  If the struct underlying pb does not match\n// the data in buf, the results can be unpredictable.\n//\n// Unmarshal resets pb before starting to unmarshal, so any\n// existing data in pb is always removed. Use UnmarshalMerge\n// to preserve and append to existing data.\nfunc Unmarshal(buf []byte, pb Message) error {\n\tpb.Reset()\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\treturn u.XXX_Unmarshal(buf)\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\treturn u.Unmarshal(buf)\n\t}\n\treturn NewBuffer(buf).Unmarshal(pb)\n}\n\n// UnmarshalMerge parses the protocol buffer representation in buf and\n// writes the decoded result to pb.  If the struct underlying pb does not match\n// the data in buf, the results can be unpredictable.\n//\n// UnmarshalMerge merges into existing data in pb.\n// Most code should use Unmarshal instead.\nfunc UnmarshalMerge(buf []byte, pb Message) error {\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\treturn u.XXX_Unmarshal(buf)\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\t// NOTE: The history of proto have unfortunately been inconsistent\n\t\t// whether Unmarshaler should or should not implicitly clear itself.\n\t\t// Some implementations do, most do not.\n\t\t// Thus, calling this here may or may not do what people want.\n\t\t//\n\t\t// See https://github.com/golang/protobuf/issues/424\n\t\treturn u.Unmarshal(buf)\n\t}\n\treturn NewBuffer(buf).Unmarshal(pb)\n}\n\n// DecodeMessage reads a count-delimited message from the Buffer.\nfunc (p *Buffer) DecodeMessage(pb Message) error {\n\tenc, err := p.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn NewBuffer(enc).Unmarshal(pb)\n}\n\n// DecodeGroup reads a tag-delimited group from the Buffer.\n// StartGroup tag is already consumed. This function consumes\n// EndGroup tag.\nfunc (p *Buffer) DecodeGroup(pb Message) error {\n\tb := p.buf[p.index:]\n\tx, y := findEndGroup(b)\n\tif x < 0 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\terr := Unmarshal(b[:x], pb)\n\tp.index += y\n\treturn err\n}\n\n// Unmarshal parses the protocol buffer representation in the\n// Buffer and places the decoded result in pb.  If the struct\n// underlying pb does not match the data in the buffer, the results can be\n// unpredictable.\n//\n// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal.\nfunc (p *Buffer) Unmarshal(pb Message) error {\n\t// If the object can unmarshal itself, let it.\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\terr := u.XXX_Unmarshal(p.buf[p.index:])\n\t\tp.index = len(p.buf)\n\t\treturn err\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\t// NOTE: The history of proto have unfortunately been inconsistent\n\t\t// whether Unmarshaler should or should not implicitly clear itself.\n\t\t// Some implementations do, most do not.\n\t\t// Thus, calling this here may or may not do what people want.\n\t\t//\n\t\t// See https://github.com/golang/protobuf/issues/424\n\t\terr := u.Unmarshal(p.buf[p.index:])\n\t\tp.index = len(p.buf)\n\t\treturn err\n\t}\n\n\t// Slow workaround for messages that aren't Unmarshalers.\n\t// This includes some hand-coded .pb.go files and\n\t// bootstrap protos.\n\t// TODO: fix all of those and then add Unmarshal to\n\t// the Message interface. Then:\n\t// The cast above and code below can be deleted.\n\t// The old unmarshaler can be deleted.\n\t// Clients can call Unmarshal directly (can already do that, actually).\n\tvar info InternalMessageInfo\n\terr := info.Unmarshal(pb, p.buf[p.index:])\n\tp.index = len(p.buf)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/deprecated.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2018 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport \"errors\"\n\n// Deprecated: do not use.\ntype Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }\n\n// Deprecated: do not use.\nfunc GetStats() Stats { return Stats{} }\n\n// Deprecated: do not use.\nfunc MarshalMessageSet(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc UnmarshalMessageSet([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc MarshalMessageSetJSON(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc UnmarshalMessageSetJSON([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc RegisterMessageSetType(Message, int32, string) {}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/discard.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2017 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\ntype generatedDiscarder interface {\n\tXXX_DiscardUnknown()\n}\n\n// DiscardUnknown recursively discards all unknown fields from this message\n// and all embedded messages.\n//\n// When unmarshaling a message with unrecognized fields, the tags and values\n// of such fields are preserved in the Message. This allows a later call to\n// marshal to be able to produce a message that continues to have those\n// unrecognized fields. To avoid this, DiscardUnknown is used to\n// explicitly clear the unknown fields after unmarshaling.\n//\n// For proto2 messages, the unknown fields of message extensions are only\n// discarded from messages that have been accessed via GetExtension.\nfunc DiscardUnknown(m Message) {\n\tif m, ok := m.(generatedDiscarder); ok {\n\t\tm.XXX_DiscardUnknown()\n\t\treturn\n\t}\n\t// TODO: Dynamically populate a InternalMessageInfo for legacy messages,\n\t// but the master branch has no implementation for InternalMessageInfo,\n\t// so it would be more work to replicate that approach.\n\tdiscardLegacy(m)\n}\n\n// DiscardUnknown recursively discards all unknown fields.\nfunc (a *InternalMessageInfo) DiscardUnknown(m Message) {\n\tdi := atomicLoadDiscardInfo(&a.discard)\n\tif di == nil {\n\t\tdi = getDiscardInfo(reflect.TypeOf(m).Elem())\n\t\tatomicStoreDiscardInfo(&a.discard, di)\n\t}\n\tdi.discard(toPointer(&m))\n}\n\ntype discardInfo struct {\n\ttyp reflect.Type\n\n\tinitialized int32 // 0: only typ is valid, 1: everything is valid\n\tlock        sync.Mutex\n\n\tfields       []discardFieldInfo\n\tunrecognized field\n}\n\ntype discardFieldInfo struct {\n\tfield   field // Offset of field, guaranteed to be valid\n\tdiscard func(src pointer)\n}\n\nvar (\n\tdiscardInfoMap  = map[reflect.Type]*discardInfo{}\n\tdiscardInfoLock sync.Mutex\n)\n\nfunc getDiscardInfo(t reflect.Type) *discardInfo {\n\tdiscardInfoLock.Lock()\n\tdefer discardInfoLock.Unlock()\n\tdi := discardInfoMap[t]\n\tif di == nil {\n\t\tdi = &discardInfo{typ: t}\n\t\tdiscardInfoMap[t] = di\n\t}\n\treturn di\n}\n\nfunc (di *discardInfo) discard(src pointer) {\n\tif src.isNil() {\n\t\treturn // Nothing to do.\n\t}\n\n\tif atomic.LoadInt32(&di.initialized) == 0 {\n\t\tdi.computeDiscardInfo()\n\t}\n\n\tfor _, fi := range di.fields {\n\t\tsfp := src.offset(fi.field)\n\t\tfi.discard(sfp)\n\t}\n\n\t// For proto2 messages, only discard unknown fields in message extensions\n\t// that have been accessed via GetExtension.\n\tif em, err := extendable(src.asPointerTo(di.typ).Interface()); err == nil {\n\t\t// Ignore lock since DiscardUnknown is not concurrency safe.\n\t\temm, _ := em.extensionsRead()\n\t\tfor _, mx := range emm {\n\t\t\tif m, ok := mx.value.(Message); ok {\n\t\t\t\tDiscardUnknown(m)\n\t\t\t}\n\t\t}\n\t}\n\n\tif di.unrecognized.IsValid() {\n\t\t*src.offset(di.unrecognized).toBytes() = nil\n\t}\n}\n\nfunc (di *discardInfo) computeDiscardInfo() {\n\tdi.lock.Lock()\n\tdefer di.lock.Unlock()\n\tif di.initialized != 0 {\n\t\treturn\n\t}\n\tt := di.typ\n\tn := t.NumField()\n\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tdfi := discardFieldInfo{field: toField(&f)}\n\t\ttf := f.Type\n\n\t\t// Unwrap tf to get its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a slice of pointers to primitive types\", t, f.Name))\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a direct struct value\", t, f.Name))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tdi := getDiscardInfo(tf)\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsps := src.getPointerSlice()\n\t\t\t\t\tfor _, sp := range sps {\n\t\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\t\tdi.discard(sp)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tdi := getDiscardInfo(tf)\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsp := src.getPointer()\n\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\tdi.discard(sp)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a pointer to a map or a slice of map values\", t, f.Name))\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\tif tf.Elem().Kind() == reflect.Ptr { // Proto struct (e.g., *T)\n\t\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\t\tsm := src.asPointerTo(tf).Elem()\n\t\t\t\t\t\tif sm.Len() == 0 {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tDiscardUnknown(val.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdfi.discard = func(pointer) {} // Noop\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a pointer to a interface or a slice of interface values\", t, f.Name))\n\t\t\tdefault: // E.g., interface{}\n\t\t\t\t// TODO: Make this faster?\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsu := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif !su.IsNil() {\n\t\t\t\t\t\tsv := su.Elem().Elem().Field(0)\n\t\t\t\t\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch sv.Type().Kind() {\n\t\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\t\tDiscardUnknown(sv.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\t\tdi.fields = append(di.fields, dfi)\n\t}\n\n\tdi.unrecognized = invalidField\n\tif f, ok := t.FieldByName(\"XXX_unrecognized\"); ok {\n\t\tif f.Type != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tdi.unrecognized = toField(&f)\n\t}\n\n\tatomic.StoreInt32(&di.initialized, 1)\n}\n\nfunc discardLegacy(m Message) {\n\tv := reflect.ValueOf(m)\n\tif v.Kind() != reflect.Ptr || v.IsNil() {\n\t\treturn\n\t}\n\tv = v.Elem()\n\tif v.Kind() != reflect.Struct {\n\t\treturn\n\t}\n\tt := v.Type()\n\n\tfor i := 0; i < v.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tvf := v.Field(i)\n\t\ttf := f.Type\n\n\t\t// Unwrap tf to get its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a slice of pointers to primitive types\", m, f.Name))\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a direct struct value\", m, f.Name))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tfor j := 0; j < vf.Len(); j++ {\n\t\t\t\t\tdiscardLegacy(vf.Index(j).Interface().(Message))\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tdiscardLegacy(vf.Interface().(Message))\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a pointer to a map or a slice of map values\", m, f.Name))\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\ttv := vf.Type().Elem()\n\t\t\t\tif tv.Kind() == reflect.Ptr && tv.Implements(protoMessageType) { // Proto struct (e.g., *T)\n\t\t\t\t\tfor _, key := range vf.MapKeys() {\n\t\t\t\t\t\tval := vf.MapIndex(key)\n\t\t\t\t\t\tdiscardLegacy(val.Interface().(Message))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a pointer to a interface or a slice of interface values\", m, f.Name))\n\t\t\tdefault: // E.g., test_proto.isCommunique_Union interface\n\t\t\t\tif !vf.IsNil() && f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\t\t\tvf = vf.Elem() // E.g., *test_proto.Communique_Msg\n\t\t\t\t\tif !vf.IsNil() {\n\t\t\t\t\t\tvf = vf.Elem()   // E.g., test_proto.Communique_Msg\n\t\t\t\t\t\tvf = vf.Field(0) // E.g., Proto struct (e.g., *T) or primitive value\n\t\t\t\t\t\tif vf.Kind() == reflect.Ptr {\n\t\t\t\t\t\t\tdiscardLegacy(vf.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif vf := v.FieldByName(\"XXX_unrecognized\"); vf.IsValid() {\n\t\tif vf.Type() != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tvf.Set(reflect.ValueOf([]byte(nil)))\n\t}\n\n\t// For proto2 messages, only discard unknown fields in message extensions\n\t// that have been accessed via GetExtension.\n\tif em, err := extendable(m); err == nil {\n\t\t// Ignore lock since discardLegacy is not concurrency safe.\n\t\temm, _ := em.extensionsRead()\n\t\tfor _, mx := range emm {\n\t\t\tif m, ok := mx.value.(Message); ok {\n\t\t\t\tdiscardLegacy(m)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/encode.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for encoding data into the wire format for protocol buffers.\n */\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n)\n\nvar (\n\t// errRepeatedHasNil is the error returned if Marshal is called with\n\t// a struct with a repeated field containing a nil element.\n\terrRepeatedHasNil = errors.New(\"proto: repeated field has nil element\")\n\n\t// errOneofHasNil is the error returned if Marshal is called with\n\t// a struct with a oneof field containing a nil element.\n\terrOneofHasNil = errors.New(\"proto: oneof field has nil value\")\n\n\t// ErrNil is the error returned if Marshal is called with nil.\n\tErrNil = errors.New(\"proto: Marshal called with nil\")\n\n\t// ErrTooLarge is the error returned if Marshal is called with a\n\t// message that encodes to >2GB.\n\tErrTooLarge = errors.New(\"proto: message encodes to over 2 GB\")\n)\n\n// The fundamental encoders that put bytes on the wire.\n// Those that take integer types all accept uint64 and are\n// therefore of type valueEncoder.\n\nconst maxVarintBytes = 10 // maximum length of a varint\n\n// EncodeVarint returns the varint encoding of x.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\n// Not used by the package itself, but helpful to clients\n// wishing to use the same encoding.\nfunc EncodeVarint(x uint64) []byte {\n\tvar buf [maxVarintBytes]byte\n\tvar n int\n\tfor n = 0; x > 127; n++ {\n\t\tbuf[n] = 0x80 | uint8(x&0x7F)\n\t\tx >>= 7\n\t}\n\tbuf[n] = uint8(x)\n\tn++\n\treturn buf[0:n]\n}\n\n// EncodeVarint writes a varint-encoded integer to the Buffer.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc (p *Buffer) EncodeVarint(x uint64) error {\n\tfor x >= 1<<7 {\n\t\tp.buf = append(p.buf, uint8(x&0x7f|0x80))\n\t\tx >>= 7\n\t}\n\tp.buf = append(p.buf, uint8(x))\n\treturn nil\n}\n\n// SizeVarint returns the varint encoding size of an integer.\nfunc SizeVarint(x uint64) int {\n\tswitch {\n\tcase x < 1<<7:\n\t\treturn 1\n\tcase x < 1<<14:\n\t\treturn 2\n\tcase x < 1<<21:\n\t\treturn 3\n\tcase x < 1<<28:\n\t\treturn 4\n\tcase x < 1<<35:\n\t\treturn 5\n\tcase x < 1<<42:\n\t\treturn 6\n\tcase x < 1<<49:\n\t\treturn 7\n\tcase x < 1<<56:\n\t\treturn 8\n\tcase x < 1<<63:\n\t\treturn 9\n\t}\n\treturn 10\n}\n\n// EncodeFixed64 writes a 64-bit integer to the Buffer.\n// This is the format for the\n// fixed64, sfixed64, and double protocol buffer types.\nfunc (p *Buffer) EncodeFixed64(x uint64) error {\n\tp.buf = append(p.buf,\n\t\tuint8(x),\n\t\tuint8(x>>8),\n\t\tuint8(x>>16),\n\t\tuint8(x>>24),\n\t\tuint8(x>>32),\n\t\tuint8(x>>40),\n\t\tuint8(x>>48),\n\t\tuint8(x>>56))\n\treturn nil\n}\n\n// EncodeFixed32 writes a 32-bit integer to the Buffer.\n// This is the format for the\n// fixed32, sfixed32, and float protocol buffer types.\nfunc (p *Buffer) EncodeFixed32(x uint64) error {\n\tp.buf = append(p.buf,\n\t\tuint8(x),\n\t\tuint8(x>>8),\n\t\tuint8(x>>16),\n\t\tuint8(x>>24))\n\treturn nil\n}\n\n// EncodeZigzag64 writes a zigzag-encoded 64-bit integer\n// to the Buffer.\n// This is the format used for the sint64 protocol buffer type.\nfunc (p *Buffer) EncodeZigzag64(x uint64) error {\n\t// use signed number to get arithmetic right shift.\n\treturn p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\n\n// EncodeZigzag32 writes a zigzag-encoded 32-bit integer\n// to the Buffer.\n// This is the format used for the sint32 protocol buffer type.\nfunc (p *Buffer) EncodeZigzag32(x uint64) error {\n\t// use signed number to get arithmetic right shift.\n\treturn p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31))))\n}\n\n// EncodeRawBytes writes a count-delimited byte buffer to the Buffer.\n// This is the format used for the bytes protocol buffer\n// type and for embedded messages.\nfunc (p *Buffer) EncodeRawBytes(b []byte) error {\n\tp.EncodeVarint(uint64(len(b)))\n\tp.buf = append(p.buf, b...)\n\treturn nil\n}\n\n// EncodeStringBytes writes an encoded string to the Buffer.\n// This is the format used for the proto2 string type.\nfunc (p *Buffer) EncodeStringBytes(s string) error {\n\tp.EncodeVarint(uint64(len(s)))\n\tp.buf = append(p.buf, s...)\n\treturn nil\n}\n\n// Marshaler is the interface representing objects that can marshal themselves.\ntype Marshaler interface {\n\tMarshal() ([]byte, error)\n}\n\n// EncodeMessage writes the protocol buffer to the Buffer,\n// prefixed by a varint-encoded length.\nfunc (p *Buffer) EncodeMessage(pb Message) error {\n\tsiz := Size(pb)\n\tp.EncodeVarint(uint64(siz))\n\treturn p.Marshal(pb)\n}\n\n// All protocol buffer fields are nillable, but be careful.\nfunc isNil(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/equal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Protocol buffer comparison.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n/*\nEqual returns true iff protocol buffers a and b are equal.\nThe arguments must both be pointers to protocol buffer structs.\n\nEquality is defined in this way:\n  - Two messages are equal iff they are the same type,\n    corresponding fields are equal, unknown field sets\n    are equal, and extensions sets are equal.\n  - Two set scalar fields are equal iff their values are equal.\n    If the fields are of a floating-point type, remember that\n    NaN != x for all x, including NaN. If the message is defined\n    in a proto3 .proto file, fields are not \"set\"; specifically,\n    zero length proto3 \"bytes\" fields are equal (nil == {}).\n  - Two repeated fields are equal iff their lengths are the same,\n    and their corresponding elements are equal. Note a \"bytes\" field,\n    although represented by []byte, is not a repeated field and the\n    rule for the scalar fields described above applies.\n  - Two unset fields are equal.\n  - Two unknown field sets are equal if their current\n    encoded state is equal.\n  - Two extension sets are equal iff they have corresponding\n    elements that are pairwise equal.\n  - Two map fields are equal iff their lengths are the same,\n    and they contain the same set of elements. Zero-length map\n    fields are equal.\n  - Every other combination of things are not equal.\n\nThe return value is undefined if a and b are not protocol buffers.\n*/\nfunc Equal(a, b Message) bool {\n\tif a == nil || b == nil {\n\t\treturn a == b\n\t}\n\tv1, v2 := reflect.ValueOf(a), reflect.ValueOf(b)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif v1.Kind() == reflect.Ptr {\n\t\tif v1.IsNil() {\n\t\t\treturn v2.IsNil()\n\t\t}\n\t\tif v2.IsNil() {\n\t\t\treturn false\n\t\t}\n\t\tv1, v2 = v1.Elem(), v2.Elem()\n\t}\n\tif v1.Kind() != reflect.Struct {\n\t\treturn false\n\t}\n\treturn equalStruct(v1, v2)\n}\n\n// v1 and v2 are known to have the same type.\nfunc equalStruct(v1, v2 reflect.Value) bool {\n\tsprop := GetProperties(v1.Type())\n\tfor i := 0; i < v1.NumField(); i++ {\n\t\tf := v1.Type().Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tf1, f2 := v1.Field(i), v2.Field(i)\n\t\tif f.Type.Kind() == reflect.Ptr {\n\t\t\tif n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 {\n\t\t\t\t// both unset\n\t\t\t\tcontinue\n\t\t\t} else if n1 != n2 {\n\t\t\t\t// set/unset mismatch\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tf1, f2 = f1.Elem(), f2.Elem()\n\t\t}\n\t\tif !equalAny(f1, f2, sprop.Prop[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif em1 := v1.FieldByName(\"XXX_InternalExtensions\"); em1.IsValid() {\n\t\tem2 := v2.FieldByName(\"XXX_InternalExtensions\")\n\t\tif !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif em1 := v1.FieldByName(\"XXX_extensions\"); em1.IsValid() {\n\t\tem2 := v2.FieldByName(\"XXX_extensions\")\n\t\tif !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tuf := v1.FieldByName(\"XXX_unrecognized\")\n\tif !uf.IsValid() {\n\t\treturn true\n\t}\n\n\tu1 := uf.Bytes()\n\tu2 := v2.FieldByName(\"XXX_unrecognized\").Bytes()\n\treturn bytes.Equal(u1, u2)\n}\n\n// v1 and v2 are known to have the same type.\n// prop may be nil.\nfunc equalAny(v1, v2 reflect.Value, prop *Properties) bool {\n\tif v1.Type() == protoMessageType {\n\t\tm1, _ := v1.Interface().(Message)\n\t\tm2, _ := v2.Interface().(Message)\n\t\treturn Equal(m1, m2)\n\t}\n\tswitch v1.Kind() {\n\tcase reflect.Bool:\n\t\treturn v1.Bool() == v2.Bool()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v1.Float() == v2.Float()\n\tcase reflect.Int32, reflect.Int64:\n\t\treturn v1.Int() == v2.Int()\n\tcase reflect.Interface:\n\t\t// Probably a oneof field; compare the inner values.\n\t\tn1, n2 := v1.IsNil(), v2.IsNil()\n\t\tif n1 || n2 {\n\t\t\treturn n1 == n2\n\t\t}\n\t\te1, e2 := v1.Elem(), v2.Elem()\n\t\tif e1.Type() != e2.Type() {\n\t\t\treturn false\n\t\t}\n\t\treturn equalAny(e1, e2, nil)\n\tcase reflect.Map:\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tfor _, key := range v1.MapKeys() {\n\t\t\tval2 := v2.MapIndex(key)\n\t\t\tif !val2.IsValid() {\n\t\t\t\t// This key was not found in the second map.\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !equalAny(v1.MapIndex(key), val2, nil) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Ptr:\n\t\t// Maps may have nil values in them, so check for nil.\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\treturn false\n\t\t}\n\t\treturn equalAny(v1.Elem(), v2.Elem(), prop)\n\tcase reflect.Slice:\n\t\tif v1.Type().Elem().Kind() == reflect.Uint8 {\n\t\t\t// short circuit: []byte\n\n\t\t\t// Edge case: if this is in a proto3 message, a zero length\n\t\t\t// bytes field is considered the zero value.\n\t\t\tif prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte))\n\t\t}\n\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !equalAny(v1.Index(i), v2.Index(i), prop) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.String:\n\t\treturn v1.Interface().(string) == v2.Interface().(string)\n\tcase reflect.Struct:\n\t\treturn equalStruct(v1, v2)\n\tcase reflect.Uint32, reflect.Uint64:\n\t\treturn v1.Uint() == v2.Uint()\n\t}\n\n\t// unknown type, so not a protocol buffer\n\tlog.Printf(\"proto: don't know how to compare %v\", v1)\n\treturn false\n}\n\n// base is the struct type that the extensions are based on.\n// x1 and x2 are InternalExtensions.\nfunc equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool {\n\tem1, _ := x1.extensionsRead()\n\tem2, _ := x2.extensionsRead()\n\treturn equalExtMap(base, em1, em2)\n}\n\nfunc equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool {\n\tif len(em1) != len(em2) {\n\t\treturn false\n\t}\n\n\tfor extNum, e1 := range em1 {\n\t\te2, ok := em2[extNum]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\n\t\tm1 := extensionAsLegacyType(e1.value)\n\t\tm2 := extensionAsLegacyType(e2.value)\n\n\t\tif m1 == nil && m2 == nil {\n\t\t\t// Both have only encoded form.\n\t\t\tif bytes.Equal(e1.enc, e2.enc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The bytes are different, but the extensions might still be\n\t\t\t// equal. We need to decode them to compare.\n\t\t}\n\n\t\tif m1 != nil && m2 != nil {\n\t\t\t// Both are unencoded.\n\t\t\tif !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// At least one is encoded. To do a semantically correct comparison\n\t\t// we need to unmarshal them first.\n\t\tvar desc *ExtensionDesc\n\t\tif m := extensionMaps[base]; m != nil {\n\t\t\tdesc = m[extNum]\n\t\t}\n\t\tif desc == nil {\n\t\t\t// If both have only encoded form and the bytes are the same,\n\t\t\t// it is handled above. We get here when the bytes are different.\n\t\t\t// We don't know how to decode it, so just compare them as byte\n\t\t\t// slices.\n\t\t\tlog.Printf(\"proto: don't know how to compare extension %d of %v\", extNum, base)\n\t\t\treturn false\n\t\t}\n\t\tvar err error\n\t\tif m1 == nil {\n\t\t\tm1, err = decodeExtension(e1.enc, desc)\n\t\t}\n\t\tif m2 == nil && err == nil {\n\t\t\tm2, err = decodeExtension(e2.enc, desc)\n\t\t}\n\t\tif err != nil {\n\t\t\t// The encoded form is invalid.\n\t\t\tlog.Printf(\"proto: badly encoded extension %d of %v: %v\", extNum, base, err)\n\t\t\treturn false\n\t\t}\n\t\tif !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/extensions.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Types and routines for supporting protocol buffer extensions.\n */\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message.\nvar ErrMissingExtension = errors.New(\"proto: missing extension\")\n\n// ExtensionRange represents a range of message extensions for a protocol buffer.\n// Used in code generated by the protocol compiler.\ntype ExtensionRange struct {\n\tStart, End int32 // both inclusive\n}\n\n// extendableProto is an interface implemented by any protocol buffer generated by the current\n// proto compiler that may be extended.\ntype extendableProto interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\textensionsWrite() map[int32]Extension\n\textensionsRead() (map[int32]Extension, sync.Locker)\n}\n\n// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous\n// version of the proto compiler that may be extended.\ntype extendableProtoV1 interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\tExtensionMap() map[int32]Extension\n}\n\n// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto.\ntype extensionAdapter struct {\n\textendableProtoV1\n}\n\nfunc (e extensionAdapter) extensionsWrite() map[int32]Extension {\n\treturn e.ExtensionMap()\n}\n\nfunc (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) {\n\treturn e.ExtensionMap(), notLocker{}\n}\n\n// notLocker is a sync.Locker whose Lock and Unlock methods are nops.\ntype notLocker struct{}\n\nfunc (n notLocker) Lock()   {}\nfunc (n notLocker) Unlock() {}\n\n// extendable returns the extendableProto interface for the given generated proto message.\n// If the proto message has the old extension format, it returns a wrapper that implements\n// the extendableProto interface.\nfunc extendable(p interface{}) (extendableProto, error) {\n\tswitch p := p.(type) {\n\tcase extendableProto:\n\t\tif isNilPtr(p) {\n\t\t\treturn nil, fmt.Errorf(\"proto: nil %T is not extendable\", p)\n\t\t}\n\t\treturn p, nil\n\tcase extendableProtoV1:\n\t\tif isNilPtr(p) {\n\t\t\treturn nil, fmt.Errorf(\"proto: nil %T is not extendable\", p)\n\t\t}\n\t\treturn extensionAdapter{p}, nil\n\t}\n\t// Don't allocate a specific error containing %T:\n\t// this is the hot path for Clone and MarshalText.\n\treturn nil, errNotExtendable\n}\n\nvar errNotExtendable = errors.New(\"proto: not an extendable proto.Message\")\n\nfunc isNilPtr(x interface{}) bool {\n\tv := reflect.ValueOf(x)\n\treturn v.Kind() == reflect.Ptr && v.IsNil()\n}\n\n// XXX_InternalExtensions is an internal representation of proto extensions.\n//\n// Each generated message struct type embeds an anonymous XXX_InternalExtensions field,\n// thus gaining the unexported 'extensions' method, which can be called only from the proto package.\n//\n// The methods of XXX_InternalExtensions are not concurrency safe in general,\n// but calls to logically read-only methods such as has and get may be executed concurrently.\ntype XXX_InternalExtensions struct {\n\t// The struct must be indirect so that if a user inadvertently copies a\n\t// generated message and its embedded XXX_InternalExtensions, they\n\t// avoid the mayhem of a copied mutex.\n\t//\n\t// The mutex serializes all logically read-only operations to p.extensionMap.\n\t// It is up to the client to ensure that write operations to p.extensionMap are\n\t// mutually exclusive with other accesses.\n\tp *struct {\n\t\tmu           sync.Mutex\n\t\textensionMap map[int32]Extension\n\t}\n}\n\n// extensionsWrite returns the extension map, creating it on first use.\nfunc (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension {\n\tif e.p == nil {\n\t\te.p = new(struct {\n\t\t\tmu           sync.Mutex\n\t\t\textensionMap map[int32]Extension\n\t\t})\n\t\te.p.extensionMap = make(map[int32]Extension)\n\t}\n\treturn e.p.extensionMap\n}\n\n// extensionsRead returns the extensions map for read-only use.  It may be nil.\n// The caller must hold the returned mutex's lock when accessing Elements within the map.\nfunc (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) {\n\tif e.p == nil {\n\t\treturn nil, nil\n\t}\n\treturn e.p.extensionMap, &e.p.mu\n}\n\n// ExtensionDesc represents an extension specification.\n// Used in generated code from the protocol compiler.\ntype ExtensionDesc struct {\n\tExtendedType  Message     // nil pointer to the type that is being extended\n\tExtensionType interface{} // nil pointer to the extension type\n\tField         int32       // field number\n\tName          string      // fully-qualified name of extension, for text formatting\n\tTag           string      // protobuf tag style\n\tFilename      string      // name of the file in which the extension is defined\n}\n\nfunc (ed *ExtensionDesc) repeated() bool {\n\tt := reflect.TypeOf(ed.ExtensionType)\n\treturn t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n}\n\n// Extension represents an extension in a message.\ntype Extension struct {\n\t// When an extension is stored in a message using SetExtension\n\t// only desc and value are set. When the message is marshaled\n\t// enc will be set to the encoded form of the message.\n\t//\n\t// When a message is unmarshaled and contains extensions, each\n\t// extension will have only enc set. When such an extension is\n\t// accessed using GetExtension (or GetExtensions) desc and value\n\t// will be set.\n\tdesc *ExtensionDesc\n\n\t// value is a concrete value for the extension field. Let the type of\n\t// desc.ExtensionType be the \"API type\" and the type of Extension.value\n\t// be the \"storage type\". The API type and storage type are the same except:\n\t//\t* For scalars (except []byte), the API type uses *T,\n\t//\twhile the storage type uses T.\n\t//\t* For repeated fields, the API type uses []T, while the storage type\n\t//\tuses *[]T.\n\t//\n\t// The reason for the divergence is so that the storage type more naturally\n\t// matches what is expected of when retrieving the values through the\n\t// protobuf reflection APIs.\n\t//\n\t// The value may only be populated if desc is also populated.\n\tvalue interface{}\n\n\t// enc is the raw bytes for the extension field.\n\tenc []byte\n}\n\n// SetRawExtension is for testing only.\nfunc SetRawExtension(base Message, id int32, b []byte) {\n\tepb, err := extendable(base)\n\tif err != nil {\n\t\treturn\n\t}\n\textmap := epb.extensionsWrite()\n\textmap[id] = Extension{enc: b}\n}\n\n// isExtensionField returns true iff the given field number is in an extension range.\nfunc isExtensionField(pb extendableProto, field int32) bool {\n\tfor _, er := range pb.ExtensionRangeArray() {\n\t\tif er.Start <= field && field <= er.End {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// checkExtensionTypes checks that the given extension is valid for pb.\nfunc checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error {\n\tvar pbi interface{} = pb\n\t// Check the extended type.\n\tif ea, ok := pbi.(extensionAdapter); ok {\n\t\tpbi = ea.extendableProtoV1\n\t}\n\tif a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %v does not extend %v\", b, a)\n\t}\n\t// Check the range.\n\tif !isExtensionField(pb, extension.Field) {\n\t\treturn errors.New(\"proto: bad extension number; not in declared ranges\")\n\t}\n\treturn nil\n}\n\n// extPropKey is sufficient to uniquely identify an extension.\ntype extPropKey struct {\n\tbase  reflect.Type\n\tfield int32\n}\n\nvar extProp = struct {\n\tsync.RWMutex\n\tm map[extPropKey]*Properties\n}{\n\tm: make(map[extPropKey]*Properties),\n}\n\nfunc extensionProperties(ed *ExtensionDesc) *Properties {\n\tkey := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field}\n\n\textProp.RLock()\n\tif prop, ok := extProp.m[key]; ok {\n\t\textProp.RUnlock()\n\t\treturn prop\n\t}\n\textProp.RUnlock()\n\n\textProp.Lock()\n\tdefer extProp.Unlock()\n\t// Check again.\n\tif prop, ok := extProp.m[key]; ok {\n\t\treturn prop\n\t}\n\n\tprop := new(Properties)\n\tprop.Init(reflect.TypeOf(ed.ExtensionType), \"unknown_name\", ed.Tag, nil)\n\textProp.m[key] = prop\n\treturn prop\n}\n\n// HasExtension returns whether the given extension is present in pb.\nfunc HasExtension(pb Message, extension *ExtensionDesc) bool {\n\t// TODO: Check types, field numbers, etc.?\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn false\n\t}\n\textmap, mu := epb.extensionsRead()\n\tif extmap == nil {\n\t\treturn false\n\t}\n\tmu.Lock()\n\t_, ok := extmap[extension.Field]\n\tmu.Unlock()\n\treturn ok\n}\n\n// ClearExtension removes the given extension from pb.\nfunc ClearExtension(pb Message, extension *ExtensionDesc) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO: Check types, field numbers, etc.?\n\textmap := epb.extensionsWrite()\n\tdelete(extmap, extension.Field)\n}\n\n// GetExtension retrieves a proto2 extended field from pb.\n//\n// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil),\n// then GetExtension parses the encoded field and returns a Go value of the specified type.\n// If the field is not present, then the default value is returned (if one is specified),\n// otherwise ErrMissingExtension is reported.\n//\n// If the descriptor is not type complete (i.e., ExtensionDesc.ExtensionType is nil),\n// then GetExtension returns the raw encoded bytes of the field extension.\nfunc GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif extension.ExtendedType != nil {\n\t\t// can only check type if this is a complete descriptor\n\t\tif err := checkExtensionTypes(epb, extension); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\temap, mu := epb.extensionsRead()\n\tif emap == nil {\n\t\treturn defaultExtensionValue(extension)\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\te, ok := emap[extension.Field]\n\tif !ok {\n\t\t// defaultExtensionValue returns the default value or\n\t\t// ErrMissingExtension if there is no default.\n\t\treturn defaultExtensionValue(extension)\n\t}\n\n\tif e.value != nil {\n\t\t// Already decoded. Check the descriptor, though.\n\t\tif e.desc != extension {\n\t\t\t// This shouldn't happen. If it does, it means that\n\t\t\t// GetExtension was called twice with two different\n\t\t\t// descriptors with the same field number.\n\t\t\treturn nil, errors.New(\"proto: descriptor conflict\")\n\t\t}\n\t\treturn extensionAsLegacyType(e.value), nil\n\t}\n\n\tif extension.ExtensionType == nil {\n\t\t// incomplete descriptor\n\t\treturn e.enc, nil\n\t}\n\n\tv, err := decodeExtension(e.enc, extension)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Remember the decoded version and drop the encoded version.\n\t// That way it is safe to mutate what we return.\n\te.value = extensionAsStorageType(v)\n\te.desc = extension\n\te.enc = nil\n\temap[extension.Field] = e\n\treturn extensionAsLegacyType(e.value), nil\n}\n\n// defaultExtensionValue returns the default value for extension.\n// If no default for an extension is defined ErrMissingExtension is returned.\nfunc defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) {\n\tif extension.ExtensionType == nil {\n\t\t// incomplete descriptor, so no default\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tt := reflect.TypeOf(extension.ExtensionType)\n\tprops := extensionProperties(extension)\n\n\tsf, _, err := fieldDefault(t, props)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif sf == nil || sf.value == nil {\n\t\t// There is no default value.\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tif t.Kind() != reflect.Ptr {\n\t\t// We do not need to return a Ptr, we can directly return sf.value.\n\t\treturn sf.value, nil\n\t}\n\n\t// We need to return an interface{} that is a pointer to sf.value.\n\tvalue := reflect.New(t).Elem()\n\tvalue.Set(reflect.New(value.Type().Elem()))\n\tif sf.kind == reflect.Int32 {\n\t\t// We may have an int32 or an enum, but the underlying data is int32.\n\t\t// Since we can't set an int32 into a non int32 reflect.value directly\n\t\t// set it as a int32.\n\t\tvalue.Elem().SetInt(int64(sf.value.(int32)))\n\t} else {\n\t\tvalue.Elem().Set(reflect.ValueOf(sf.value))\n\t}\n\treturn value.Interface(), nil\n}\n\n// decodeExtension decodes an extension encoded in b.\nfunc decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) {\n\tt := reflect.TypeOf(extension.ExtensionType)\n\tunmarshal := typeUnmarshaler(t, extension.Tag)\n\n\t// t is a pointer to a struct, pointer to basic type or a slice.\n\t// Allocate space to store the pointer/slice.\n\tvalue := reflect.New(t).Elem()\n\n\tvar err error\n\tfor {\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\twire := int(x) & 7\n\n\t\tb, err = unmarshal(b, valToPointer(value.Addr()), wire)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif len(b) == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn value.Interface(), nil\n}\n\n// GetExtensions returns a slice of the extensions present in pb that are also listed in es.\n// The returned slice has the same length as es; missing extensions will appear as nil elements.\nfunc GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\textensions = make([]interface{}, len(es))\n\tfor i, e := range es {\n\t\textensions[i], err = GetExtension(epb, e)\n\t\tif err == ErrMissingExtension {\n\t\t\terr = nil\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order.\n// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing\n// just the Field field, which defines the extension's field number.\nfunc ExtensionDescs(pb Message) ([]*ExtensionDesc, error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tregisteredExtensions := RegisteredExtensions(pb)\n\n\temap, mu := epb.extensionsRead()\n\tif emap == nil {\n\t\treturn nil, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\textensions := make([]*ExtensionDesc, 0, len(emap))\n\tfor extid, e := range emap {\n\t\tdesc := e.desc\n\t\tif desc == nil {\n\t\t\tdesc = registeredExtensions[extid]\n\t\t\tif desc == nil {\n\t\t\t\tdesc = &ExtensionDesc{Field: extid}\n\t\t\t}\n\t\t}\n\n\t\textensions = append(extensions, desc)\n\t}\n\treturn extensions, nil\n}\n\n// SetExtension sets the specified extension of pb to the specified value.\nfunc SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := checkExtensionTypes(epb, extension); err != nil {\n\t\treturn err\n\t}\n\ttyp := reflect.TypeOf(extension.ExtensionType)\n\tif typ != reflect.TypeOf(value) {\n\t\treturn fmt.Errorf(\"proto: bad extension value type. got: %T, want: %T\", value, extension.ExtensionType)\n\t}\n\t// nil extension values need to be caught early, because the\n\t// encoder can't distinguish an ErrNil due to a nil extension\n\t// from an ErrNil due to a missing field. Extensions are\n\t// always optional, so the encoder would just swallow the error\n\t// and drop all the extensions from the encoded message.\n\tif reflect.ValueOf(value).IsNil() {\n\t\treturn fmt.Errorf(\"proto: SetExtension called with nil value of type %T\", value)\n\t}\n\n\textmap := epb.extensionsWrite()\n\textmap[extension.Field] = Extension{desc: extension, value: extensionAsStorageType(value)}\n\treturn nil\n}\n\n// ClearAllExtensions clears all extensions from pb.\nfunc ClearAllExtensions(pb Message) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn\n\t}\n\tm := epb.extensionsWrite()\n\tfor k := range m {\n\t\tdelete(m, k)\n\t}\n}\n\n// A global registry of extensions.\n// The generated code will register the generated descriptors by calling RegisterExtension.\n\nvar extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc)\n\n// RegisterExtension is called from the generated code.\nfunc RegisterExtension(desc *ExtensionDesc) {\n\tst := reflect.TypeOf(desc.ExtendedType).Elem()\n\tm := extensionMaps[st]\n\tif m == nil {\n\t\tm = make(map[int32]*ExtensionDesc)\n\t\textensionMaps[st] = m\n\t}\n\tif _, ok := m[desc.Field]; ok {\n\t\tpanic(\"proto: duplicate extension registered: \" + st.String() + \" \" + strconv.Itoa(int(desc.Field)))\n\t}\n\tm[desc.Field] = desc\n}\n\n// RegisteredExtensions returns a map of the registered extensions of a\n// protocol buffer struct, indexed by the extension number.\n// The argument pb should be a nil pointer to the struct type.\nfunc RegisteredExtensions(pb Message) map[int32]*ExtensionDesc {\n\treturn extensionMaps[reflect.TypeOf(pb).Elem()]\n}\n\n// extensionAsLegacyType converts an value in the storage type as the API type.\n// See Extension.value.\nfunc extensionAsLegacyType(v interface{}) interface{} {\n\tswitch rv := reflect.ValueOf(v); rv.Kind() {\n\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\t// Represent primitive types as a pointer to the value.\n\t\trv2 := reflect.New(rv.Type())\n\t\trv2.Elem().Set(rv)\n\t\tv = rv2.Interface()\n\tcase reflect.Ptr:\n\t\t// Represent slice types as the value itself.\n\t\tswitch rv.Type().Elem().Kind() {\n\t\tcase reflect.Slice:\n\t\t\tif rv.IsNil() {\n\t\t\t\tv = reflect.Zero(rv.Type().Elem()).Interface()\n\t\t\t} else {\n\t\t\t\tv = rv.Elem().Interface()\n\t\t\t}\n\t\t}\n\t}\n\treturn v\n}\n\n// extensionAsStorageType converts an value in the API type as the storage type.\n// See Extension.value.\nfunc extensionAsStorageType(v interface{}) interface{} {\n\tswitch rv := reflect.ValueOf(v); rv.Kind() {\n\tcase reflect.Ptr:\n\t\t// Represent slice types as the value itself.\n\t\tswitch rv.Type().Elem().Kind() {\n\t\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\t\tif rv.IsNil() {\n\t\t\t\tv = reflect.Zero(rv.Type().Elem()).Interface()\n\t\t\t} else {\n\t\t\t\tv = rv.Elem().Interface()\n\t\t\t}\n\t\t}\n\tcase reflect.Slice:\n\t\t// Represent slice types as a pointer to the value.\n\t\tif rv.Type().Elem().Kind() != reflect.Uint8 {\n\t\t\trv2 := reflect.New(rv.Type())\n\t\t\trv2.Elem().Set(rv)\n\t\t\tv = rv2.Interface()\n\t\t}\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/lib.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/*\nPackage proto converts data structures to and from the wire format of\nprotocol buffers.  It works in concert with the Go source code generated\nfor .proto files by the protocol compiler.\n\nA summary of the properties of the protocol buffer interface\nfor a protocol buffer variable v:\n\n  - Names are turned from camel_case to CamelCase for export.\n  - There are no methods on v to set fields; just treat\n\tthem as structure fields.\n  - There are getters that return a field's value if set,\n\tand return the field's default value if unset.\n\tThe getters work even if the receiver is a nil message.\n  - The zero value for a struct is its correct initialization state.\n\tAll desired fields must be set before marshaling.\n  - A Reset() method will restore a protobuf struct to its zero state.\n  - Non-repeated fields are pointers to the values; nil means unset.\n\tThat is, optional or required field int32 f becomes F *int32.\n  - Repeated fields are slices.\n  - Helper functions are available to aid the setting of fields.\n\tmsg.Foo = proto.String(\"hello\") // set field\n  - Constants are defined to hold the default values of all fields that\n\thave them.  They have the form Default_StructName_FieldName.\n\tBecause the getter methods handle defaulted values,\n\tdirect use of these constants should be rare.\n  - Enums are given type names and maps from names to values.\n\tEnum values are prefixed by the enclosing message's name, or by the\n\tenum's type name if it is a top-level enum. Enum types have a String\n\tmethod, and a Enum method to assist in message construction.\n  - Nested messages, groups and enums have type names prefixed with the name of\n\tthe surrounding message type.\n  - Extensions are given descriptor names that start with E_,\n\tfollowed by an underscore-delimited list of the nested messages\n\tthat contain it (if any) followed by the CamelCased name of the\n\textension field itself.  HasExtension, ClearExtension, GetExtension\n\tand SetExtension are functions for manipulating extensions.\n  - Oneof field sets are given a single field in their message,\n\twith distinguished wrapper types for each possible field value.\n  - Marshal and Unmarshal are functions to encode and decode the wire format.\n\nWhen the .proto file specifies `syntax=\"proto3\"`, there are some differences:\n\n  - Non-repeated fields of non-message type are values instead of pointers.\n  - Enum types do not get an Enum method.\n\nThe simplest way to describe this is to see an example.\nGiven file test.proto, containing\n\n\tpackage example;\n\n\tenum FOO { X = 17; }\n\n\tmessage Test {\n\t  required string label = 1;\n\t  optional int32 type = 2 [default=77];\n\t  repeated int64 reps = 3;\n\t  optional group OptionalGroup = 4 {\n\t    required string RequiredField = 5;\n\t  }\n\t  oneof union {\n\t    int32 number = 6;\n\t    string name = 7;\n\t  }\n\t}\n\nThe resulting file, test.pb.go, is:\n\n\tpackage example\n\n\timport proto \"github.com/golang/protobuf/proto\"\n\timport math \"math\"\n\n\ttype FOO int32\n\tconst (\n\t\tFOO_X FOO = 17\n\t)\n\tvar FOO_name = map[int32]string{\n\t\t17: \"X\",\n\t}\n\tvar FOO_value = map[string]int32{\n\t\t\"X\": 17,\n\t}\n\n\tfunc (x FOO) Enum() *FOO {\n\t\tp := new(FOO)\n\t\t*p = x\n\t\treturn p\n\t}\n\tfunc (x FOO) String() string {\n\t\treturn proto.EnumName(FOO_name, int32(x))\n\t}\n\tfunc (x *FOO) UnmarshalJSON(data []byte) error {\n\t\tvalue, err := proto.UnmarshalJSONEnum(FOO_value, data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*x = FOO(value)\n\t\treturn nil\n\t}\n\n\ttype Test struct {\n\t\tLabel         *string             `protobuf:\"bytes,1,req,name=label\" json:\"label,omitempty\"`\n\t\tType          *int32              `protobuf:\"varint,2,opt,name=type,def=77\" json:\"type,omitempty\"`\n\t\tReps          []int64             `protobuf:\"varint,3,rep,name=reps\" json:\"reps,omitempty\"`\n\t\tOptionalgroup *Test_OptionalGroup `protobuf:\"group,4,opt,name=OptionalGroup\" json:\"optionalgroup,omitempty\"`\n\t\t// Types that are valid to be assigned to Union:\n\t\t//\t*Test_Number\n\t\t//\t*Test_Name\n\t\tUnion            isTest_Union `protobuf_oneof:\"union\"`\n\t\tXXX_unrecognized []byte       `json:\"-\"`\n\t}\n\tfunc (m *Test) Reset()         { *m = Test{} }\n\tfunc (m *Test) String() string { return proto.CompactTextString(m) }\n\tfunc (*Test) ProtoMessage() {}\n\n\ttype isTest_Union interface {\n\t\tisTest_Union()\n\t}\n\n\ttype Test_Number struct {\n\t\tNumber int32 `protobuf:\"varint,6,opt,name=number\"`\n\t}\n\ttype Test_Name struct {\n\t\tName string `protobuf:\"bytes,7,opt,name=name\"`\n\t}\n\n\tfunc (*Test_Number) isTest_Union() {}\n\tfunc (*Test_Name) isTest_Union()   {}\n\n\tfunc (m *Test) GetUnion() isTest_Union {\n\t\tif m != nil {\n\t\t\treturn m.Union\n\t\t}\n\t\treturn nil\n\t}\n\tconst Default_Test_Type int32 = 77\n\n\tfunc (m *Test) GetLabel() string {\n\t\tif m != nil && m.Label != nil {\n\t\t\treturn *m.Label\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc (m *Test) GetType() int32 {\n\t\tif m != nil && m.Type != nil {\n\t\t\treturn *m.Type\n\t\t}\n\t\treturn Default_Test_Type\n\t}\n\n\tfunc (m *Test) GetOptionalgroup() *Test_OptionalGroup {\n\t\tif m != nil {\n\t\t\treturn m.Optionalgroup\n\t\t}\n\t\treturn nil\n\t}\n\n\ttype Test_OptionalGroup struct {\n\t\tRequiredField *string `protobuf:\"bytes,5,req\" json:\"RequiredField,omitempty\"`\n\t}\n\tfunc (m *Test_OptionalGroup) Reset()         { *m = Test_OptionalGroup{} }\n\tfunc (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) }\n\n\tfunc (m *Test_OptionalGroup) GetRequiredField() string {\n\t\tif m != nil && m.RequiredField != nil {\n\t\t\treturn *m.RequiredField\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc (m *Test) GetNumber() int32 {\n\t\tif x, ok := m.GetUnion().(*Test_Number); ok {\n\t\t\treturn x.Number\n\t\t}\n\t\treturn 0\n\t}\n\n\tfunc (m *Test) GetName() string {\n\t\tif x, ok := m.GetUnion().(*Test_Name); ok {\n\t\t\treturn x.Name\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc init() {\n\t\tproto.RegisterEnum(\"example.FOO\", FOO_name, FOO_value)\n\t}\n\nTo create and play with a Test object:\n\n\tpackage main\n\n\timport (\n\t\t\"log\"\n\n\t\t\"github.com/golang/protobuf/proto\"\n\t\tpb \"./example.pb\"\n\t)\n\n\tfunc main() {\n\t\ttest := &pb.Test{\n\t\t\tLabel: proto.String(\"hello\"),\n\t\t\tType:  proto.Int32(17),\n\t\t\tReps:  []int64{1, 2, 3},\n\t\t\tOptionalgroup: &pb.Test_OptionalGroup{\n\t\t\t\tRequiredField: proto.String(\"good bye\"),\n\t\t\t},\n\t\t\tUnion: &pb.Test_Name{\"fred\"},\n\t\t}\n\t\tdata, err := proto.Marshal(test)\n\t\tif err != nil {\n\t\t\tlog.Fatal(\"marshaling error: \", err)\n\t\t}\n\t\tnewTest := &pb.Test{}\n\t\terr = proto.Unmarshal(data, newTest)\n\t\tif err != nil {\n\t\t\tlog.Fatal(\"unmarshaling error: \", err)\n\t\t}\n\t\t// Now test and newTest contain the same data.\n\t\tif test.GetLabel() != newTest.GetLabel() {\n\t\t\tlog.Fatalf(\"data mismatch %q != %q\", test.GetLabel(), newTest.GetLabel())\n\t\t}\n\t\t// Use a type switch to determine which oneof was set.\n\t\tswitch u := test.Union.(type) {\n\t\tcase *pb.Test_Number: // u.Number contains the number.\n\t\tcase *pb.Test_Name: // u.Name contains the string.\n\t\t}\n\t\t// etc.\n\t}\n*/\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// RequiredNotSetError is an error type returned by either Marshal or Unmarshal.\n// Marshal reports this when a required field is not initialized.\n// Unmarshal reports this when a required field is missing from the wire data.\ntype RequiredNotSetError struct{ field string }\n\nfunc (e *RequiredNotSetError) Error() string {\n\tif e.field == \"\" {\n\t\treturn fmt.Sprintf(\"proto: required field not set\")\n\t}\n\treturn fmt.Sprintf(\"proto: required field %q not set\", e.field)\n}\nfunc (e *RequiredNotSetError) RequiredNotSet() bool {\n\treturn true\n}\n\ntype invalidUTF8Error struct{ field string }\n\nfunc (e *invalidUTF8Error) Error() string {\n\tif e.field == \"\" {\n\t\treturn \"proto: invalid UTF-8 detected\"\n\t}\n\treturn fmt.Sprintf(\"proto: field %q contains invalid UTF-8\", e.field)\n}\nfunc (e *invalidUTF8Error) InvalidUTF8() bool {\n\treturn true\n}\n\n// errInvalidUTF8 is a sentinel error to identify fields with invalid UTF-8.\n// This error should not be exposed to the external API as such errors should\n// be recreated with the field information.\nvar errInvalidUTF8 = &invalidUTF8Error{}\n\n// isNonFatal reports whether the error is either a RequiredNotSet error\n// or a InvalidUTF8 error.\nfunc isNonFatal(err error) bool {\n\tif re, ok := err.(interface{ RequiredNotSet() bool }); ok && re.RequiredNotSet() {\n\t\treturn true\n\t}\n\tif re, ok := err.(interface{ InvalidUTF8() bool }); ok && re.InvalidUTF8() {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype nonFatal struct{ E error }\n\n// Merge merges err into nf and reports whether it was successful.\n// Otherwise it returns false for any fatal non-nil errors.\nfunc (nf *nonFatal) Merge(err error) (ok bool) {\n\tif err == nil {\n\t\treturn true // not an error\n\t}\n\tif !isNonFatal(err) {\n\t\treturn false // fatal error\n\t}\n\tif nf.E == nil {\n\t\tnf.E = err // store first instance of non-fatal error\n\t}\n\treturn true\n}\n\n// Message is implemented by generated protocol buffer messages.\ntype Message interface {\n\tReset()\n\tString() string\n\tProtoMessage()\n}\n\n// A Buffer is a buffer manager for marshaling and unmarshaling\n// protocol buffers.  It may be reused between invocations to\n// reduce memory usage.  It is not necessary to use a Buffer;\n// the global functions Marshal and Unmarshal create a\n// temporary Buffer and are fine for most applications.\ntype Buffer struct {\n\tbuf   []byte // encode/decode byte stream\n\tindex int    // read point\n\n\tdeterministic bool\n}\n\n// NewBuffer allocates a new Buffer and initializes its internal data to\n// the contents of the argument slice.\nfunc NewBuffer(e []byte) *Buffer {\n\treturn &Buffer{buf: e}\n}\n\n// Reset resets the Buffer, ready for marshaling a new protocol buffer.\nfunc (p *Buffer) Reset() {\n\tp.buf = p.buf[0:0] // for reading/writing\n\tp.index = 0        // for reading\n}\n\n// SetBuf replaces the internal buffer with the slice,\n// ready for unmarshaling the contents of the slice.\nfunc (p *Buffer) SetBuf(s []byte) {\n\tp.buf = s\n\tp.index = 0\n}\n\n// Bytes returns the contents of the Buffer.\nfunc (p *Buffer) Bytes() []byte { return p.buf }\n\n// SetDeterministic sets whether to use deterministic serialization.\n//\n// Deterministic serialization guarantees that for a given binary, equal\n// messages will always be serialized to the same bytes. This implies:\n//\n//   - Repeated serialization of a message will return the same bytes.\n//   - Different processes of the same binary (which may be executing on\n//     different machines) will serialize equal messages to the same bytes.\n//\n// Note that the deterministic serialization is NOT canonical across\n// languages. It is not guaranteed to remain stable over time. It is unstable\n// across different builds with schema changes due to unknown fields.\n// Users who need canonical serialization (e.g., persistent storage in a\n// canonical form, fingerprinting, etc.) should define their own\n// canonicalization specification and implement their own serializer rather\n// than relying on this API.\n//\n// If deterministic serialization is requested, map entries will be sorted\n// by keys in lexographical order. This is an implementation detail and\n// subject to change.\nfunc (p *Buffer) SetDeterministic(deterministic bool) {\n\tp.deterministic = deterministic\n}\n\n/*\n * Helper routines for simplifying the creation of optional fields of basic type.\n */\n\n// Bool is a helper routine that allocates a new bool value\n// to store v and returns a pointer to it.\nfunc Bool(v bool) *bool {\n\treturn &v\n}\n\n// Int32 is a helper routine that allocates a new int32 value\n// to store v and returns a pointer to it.\nfunc Int32(v int32) *int32 {\n\treturn &v\n}\n\n// Int is a helper routine that allocates a new int32 value\n// to store v and returns a pointer to it, but unlike Int32\n// its argument value is an int.\nfunc Int(v int) *int32 {\n\tp := new(int32)\n\t*p = int32(v)\n\treturn p\n}\n\n// Int64 is a helper routine that allocates a new int64 value\n// to store v and returns a pointer to it.\nfunc Int64(v int64) *int64 {\n\treturn &v\n}\n\n// Float32 is a helper routine that allocates a new float32 value\n// to store v and returns a pointer to it.\nfunc Float32(v float32) *float32 {\n\treturn &v\n}\n\n// Float64 is a helper routine that allocates a new float64 value\n// to store v and returns a pointer to it.\nfunc Float64(v float64) *float64 {\n\treturn &v\n}\n\n// Uint32 is a helper routine that allocates a new uint32 value\n// to store v and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 {\n\treturn &v\n}\n\n// Uint64 is a helper routine that allocates a new uint64 value\n// to store v and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 {\n\treturn &v\n}\n\n// String is a helper routine that allocates a new string value\n// to store v and returns a pointer to it.\nfunc String(v string) *string {\n\treturn &v\n}\n\n// EnumName is a helper function to simplify printing protocol buffer enums\n// by name.  Given an enum map and a value, it returns a useful string.\nfunc EnumName(m map[int32]string, v int32) string {\n\ts, ok := m[v]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(v))\n}\n\n// UnmarshalJSONEnum is a helper function to simplify recovering enum int values\n// from their JSON-encoded representation. Given a map from the enum's symbolic\n// names to its int values, and a byte buffer containing the JSON-encoded\n// value, it returns an int32 that can be cast to the enum type by the caller.\n//\n// The function can deal with both JSON representations, numeric and symbolic.\nfunc UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) {\n\tif data[0] == '\"' {\n\t\t// New style: enums are strings.\n\t\tvar repr string\n\t\tif err := json.Unmarshal(data, &repr); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t\tval, ok := m[repr]\n\t\tif !ok {\n\t\t\treturn 0, fmt.Errorf(\"unrecognized enum %s value %q\", enumName, repr)\n\t\t}\n\t\treturn val, nil\n\t}\n\t// Old style: enums are ints.\n\tvar val int32\n\tif err := json.Unmarshal(data, &val); err != nil {\n\t\treturn 0, fmt.Errorf(\"cannot unmarshal %#q into enum %s\", data, enumName)\n\t}\n\treturn val, nil\n}\n\n// DebugPrint dumps the encoded data in b in a debugging format with a header\n// including the string s. Used in testing but made available for general debugging.\nfunc (p *Buffer) DebugPrint(s string, b []byte) {\n\tvar u uint64\n\n\tobuf := p.buf\n\tindex := p.index\n\tp.buf = b\n\tp.index = 0\n\tdepth := 0\n\n\tfmt.Printf(\"\\n--- %s ---\\n\", s)\n\nout:\n\tfor {\n\t\tfor i := 0; i < depth; i++ {\n\t\t\tfmt.Print(\"  \")\n\t\t}\n\n\t\tindex := p.index\n\t\tif index == len(p.buf) {\n\t\t\tbreak\n\t\t}\n\n\t\top, err := p.DecodeVarint()\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"%3d: fetching op err %v\\n\", index, err)\n\t\t\tbreak out\n\t\t}\n\t\ttag := op >> 3\n\t\twire := op & 7\n\n\t\tswitch wire {\n\t\tdefault:\n\t\t\tfmt.Printf(\"%3d: t=%3d unknown wire=%d\\n\",\n\t\t\t\tindex, tag, wire)\n\t\t\tbreak out\n\n\t\tcase WireBytes:\n\t\t\tvar r []byte\n\n\t\t\tr, err = p.DecodeRawBytes(false)\n\t\t\tif err != nil {\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d bytes [%d]\", index, tag, len(r))\n\t\t\tif len(r) <= 6 {\n\t\t\t\tfor i := 0; i < len(r); i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor i := 0; i < 3; i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t\tfmt.Printf(\" ..\")\n\t\t\t\tfor i := len(r) - 3; i < len(r); i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\tfmt.Printf(\"\\n\")\n\n\t\tcase WireFixed32:\n\t\t\tu, err = p.DecodeFixed32()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d fix32 err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d fix32 %d\\n\", index, tag, u)\n\n\t\tcase WireFixed64:\n\t\t\tu, err = p.DecodeFixed64()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d fix64 err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d fix64 %d\\n\", index, tag, u)\n\n\t\tcase WireVarint:\n\t\t\tu, err = p.DecodeVarint()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d varint err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d varint %d\\n\", index, tag, u)\n\n\t\tcase WireStartGroup:\n\t\t\tfmt.Printf(\"%3d: t=%3d start\\n\", index, tag)\n\t\t\tdepth++\n\n\t\tcase WireEndGroup:\n\t\t\tdepth--\n\t\t\tfmt.Printf(\"%3d: t=%3d end\\n\", index, tag)\n\t\t}\n\t}\n\n\tif depth != 0 {\n\t\tfmt.Printf(\"%3d: start-end not balanced %d\\n\", p.index, depth)\n\t}\n\tfmt.Printf(\"\\n\")\n\n\tp.buf = obuf\n\tp.index = index\n}\n\n// SetDefaults sets unset protocol buffer fields to their default values.\n// It only modifies fields that are both unset and have defined defaults.\n// It recursively sets default values in any non-nil sub-messages.\nfunc SetDefaults(pb Message) {\n\tsetDefaults(reflect.ValueOf(pb), true, false)\n}\n\n// v is a pointer to a struct.\nfunc setDefaults(v reflect.Value, recur, zeros bool) {\n\tv = v.Elem()\n\n\tdefaultMu.RLock()\n\tdm, ok := defaults[v.Type()]\n\tdefaultMu.RUnlock()\n\tif !ok {\n\t\tdm = buildDefaultMessage(v.Type())\n\t\tdefaultMu.Lock()\n\t\tdefaults[v.Type()] = dm\n\t\tdefaultMu.Unlock()\n\t}\n\n\tfor _, sf := range dm.scalars {\n\t\tf := v.Field(sf.index)\n\t\tif !f.IsNil() {\n\t\t\t// field already set\n\t\t\tcontinue\n\t\t}\n\t\tdv := sf.value\n\t\tif dv == nil && !zeros {\n\t\t\t// no explicit default, and don't want to set zeros\n\t\t\tcontinue\n\t\t}\n\t\tfptr := f.Addr().Interface() // **T\n\t\t// TODO: Consider batching the allocations we do here.\n\t\tswitch sf.kind {\n\t\tcase reflect.Bool:\n\t\t\tb := new(bool)\n\t\t\tif dv != nil {\n\t\t\t\t*b = dv.(bool)\n\t\t\t}\n\t\t\t*(fptr.(**bool)) = b\n\t\tcase reflect.Float32:\n\t\t\tf := new(float32)\n\t\t\tif dv != nil {\n\t\t\t\t*f = dv.(float32)\n\t\t\t}\n\t\t\t*(fptr.(**float32)) = f\n\t\tcase reflect.Float64:\n\t\t\tf := new(float64)\n\t\t\tif dv != nil {\n\t\t\t\t*f = dv.(float64)\n\t\t\t}\n\t\t\t*(fptr.(**float64)) = f\n\t\tcase reflect.Int32:\n\t\t\t// might be an enum\n\t\t\tif ft := f.Type(); ft != int32PtrType {\n\t\t\t\t// enum\n\t\t\t\tf.Set(reflect.New(ft.Elem()))\n\t\t\t\tif dv != nil {\n\t\t\t\t\tf.Elem().SetInt(int64(dv.(int32)))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// int32 field\n\t\t\t\ti := new(int32)\n\t\t\t\tif dv != nil {\n\t\t\t\t\t*i = dv.(int32)\n\t\t\t\t}\n\t\t\t\t*(fptr.(**int32)) = i\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\ti := new(int64)\n\t\t\tif dv != nil {\n\t\t\t\t*i = dv.(int64)\n\t\t\t}\n\t\t\t*(fptr.(**int64)) = i\n\t\tcase reflect.String:\n\t\t\ts := new(string)\n\t\t\tif dv != nil {\n\t\t\t\t*s = dv.(string)\n\t\t\t}\n\t\t\t*(fptr.(**string)) = s\n\t\tcase reflect.Uint8:\n\t\t\t// exceptional case: []byte\n\t\t\tvar b []byte\n\t\t\tif dv != nil {\n\t\t\t\tdb := dv.([]byte)\n\t\t\t\tb = make([]byte, len(db))\n\t\t\t\tcopy(b, db)\n\t\t\t} else {\n\t\t\t\tb = []byte{}\n\t\t\t}\n\t\t\t*(fptr.(*[]byte)) = b\n\t\tcase reflect.Uint32:\n\t\t\tu := new(uint32)\n\t\t\tif dv != nil {\n\t\t\t\t*u = dv.(uint32)\n\t\t\t}\n\t\t\t*(fptr.(**uint32)) = u\n\t\tcase reflect.Uint64:\n\t\t\tu := new(uint64)\n\t\t\tif dv != nil {\n\t\t\t\t*u = dv.(uint64)\n\t\t\t}\n\t\t\t*(fptr.(**uint64)) = u\n\t\tdefault:\n\t\t\tlog.Printf(\"proto: can't set default for field %v (sf.kind=%v)\", f, sf.kind)\n\t\t}\n\t}\n\n\tfor _, ni := range dm.nested {\n\t\tf := v.Field(ni)\n\t\t// f is *T or []*T or map[T]*T\n\t\tswitch f.Kind() {\n\t\tcase reflect.Ptr:\n\t\t\tif f.IsNil() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsetDefaults(f, recur, zeros)\n\n\t\tcase reflect.Slice:\n\t\t\tfor i := 0; i < f.Len(); i++ {\n\t\t\t\te := f.Index(i)\n\t\t\t\tif e.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsetDefaults(e, recur, zeros)\n\t\t\t}\n\n\t\tcase reflect.Map:\n\t\t\tfor _, k := range f.MapKeys() {\n\t\t\t\te := f.MapIndex(k)\n\t\t\t\tif e.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsetDefaults(e, recur, zeros)\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar (\n\t// defaults maps a protocol buffer struct type to a slice of the fields,\n\t// with its scalar fields set to their proto-declared non-zero default values.\n\tdefaultMu sync.RWMutex\n\tdefaults  = make(map[reflect.Type]defaultMessage)\n\n\tint32PtrType = reflect.TypeOf((*int32)(nil))\n)\n\n// defaultMessage represents information about the default values of a message.\ntype defaultMessage struct {\n\tscalars []scalarField\n\tnested  []int // struct field index of nested messages\n}\n\ntype scalarField struct {\n\tindex int          // struct field index\n\tkind  reflect.Kind // element type (the T in *T or []T)\n\tvalue interface{}  // the proto-declared default value, or nil\n}\n\n// t is a struct type.\nfunc buildDefaultMessage(t reflect.Type) (dm defaultMessage) {\n\tsprop := GetProperties(t)\n\tfor _, prop := range sprop.Prop {\n\t\tfi, ok := sprop.decoderTags.get(prop.Tag)\n\t\tif !ok {\n\t\t\t// XXX_unrecognized\n\t\t\tcontinue\n\t\t}\n\t\tft := t.Field(fi).Type\n\n\t\tsf, nested, err := fieldDefault(ft, prop)\n\t\tswitch {\n\t\tcase err != nil:\n\t\t\tlog.Print(err)\n\t\tcase nested:\n\t\t\tdm.nested = append(dm.nested, fi)\n\t\tcase sf != nil:\n\t\t\tsf.index = fi\n\t\t\tdm.scalars = append(dm.scalars, *sf)\n\t\t}\n\t}\n\n\treturn dm\n}\n\n// fieldDefault returns the scalarField for field type ft.\n// sf will be nil if the field can not have a default.\n// nestedMessage will be true if this is a nested message.\n// Note that sf.index is not set on return.\nfunc fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) {\n\tvar canHaveDefault bool\n\tswitch ft.Kind() {\n\tcase reflect.Ptr:\n\t\tif ft.Elem().Kind() == reflect.Struct {\n\t\t\tnestedMessage = true\n\t\t} else {\n\t\t\tcanHaveDefault = true // proto2 scalar field\n\t\t}\n\n\tcase reflect.Slice:\n\t\tswitch ft.Elem().Kind() {\n\t\tcase reflect.Ptr:\n\t\t\tnestedMessage = true // repeated message\n\t\tcase reflect.Uint8:\n\t\t\tcanHaveDefault = true // bytes field\n\t\t}\n\n\tcase reflect.Map:\n\t\tif ft.Elem().Kind() == reflect.Ptr {\n\t\t\tnestedMessage = true // map with message values\n\t\t}\n\t}\n\n\tif !canHaveDefault {\n\t\tif nestedMessage {\n\t\t\treturn nil, true, nil\n\t\t}\n\t\treturn nil, false, nil\n\t}\n\n\t// We now know that ft is a pointer or slice.\n\tsf = &scalarField{kind: ft.Elem().Kind()}\n\n\t// scalar fields without defaults\n\tif !prop.HasDefault {\n\t\treturn sf, false, nil\n\t}\n\n\t// a scalar field: either *T or []byte\n\tswitch ft.Elem().Kind() {\n\tcase reflect.Bool:\n\t\tx, err := strconv.ParseBool(prop.Default)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default bool %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.Float32:\n\t\tx, err := strconv.ParseFloat(prop.Default, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default float32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = float32(x)\n\tcase reflect.Float64:\n\t\tx, err := strconv.ParseFloat(prop.Default, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default float64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.Int32:\n\t\tx, err := strconv.ParseInt(prop.Default, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default int32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = int32(x)\n\tcase reflect.Int64:\n\t\tx, err := strconv.ParseInt(prop.Default, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default int64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.String:\n\t\tsf.value = prop.Default\n\tcase reflect.Uint8:\n\t\t// []byte (not *uint8)\n\t\tsf.value = []byte(prop.Default)\n\tcase reflect.Uint32:\n\t\tx, err := strconv.ParseUint(prop.Default, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default uint32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = uint32(x)\n\tcase reflect.Uint64:\n\t\tx, err := strconv.ParseUint(prop.Default, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default uint64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tdefault:\n\t\treturn nil, false, fmt.Errorf(\"proto: unhandled def kind %v\", ft.Elem().Kind())\n\t}\n\n\treturn sf, false, nil\n}\n\n// mapKeys returns a sort.Interface to be used for sorting the map keys.\n// Map fields may have key types of non-float scalars, strings and enums.\nfunc mapKeys(vs []reflect.Value) sort.Interface {\n\ts := mapKeySorter{vs: vs}\n\n\t// Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps.\n\tif len(vs) == 0 {\n\t\treturn s\n\t}\n\tswitch vs[0].Kind() {\n\tcase reflect.Int32, reflect.Int64:\n\t\ts.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() }\n\tcase reflect.Uint32, reflect.Uint64:\n\t\ts.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() }\n\tcase reflect.Bool:\n\t\ts.less = func(a, b reflect.Value) bool { return !a.Bool() && b.Bool() } // false < true\n\tcase reflect.String:\n\t\ts.less = func(a, b reflect.Value) bool { return a.String() < b.String() }\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported map key type: %v\", vs[0].Kind()))\n\t}\n\n\treturn s\n}\n\ntype mapKeySorter struct {\n\tvs   []reflect.Value\n\tless func(a, b reflect.Value) bool\n}\n\nfunc (s mapKeySorter) Len() int      { return len(s.vs) }\nfunc (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] }\nfunc (s mapKeySorter) Less(i, j int) bool {\n\treturn s.less(s.vs[i], s.vs[j])\n}\n\n// isProto3Zero reports whether v is a zero proto3 value.\nfunc isProto3Zero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint32, reflect.Uint64:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.String:\n\t\treturn v.String() == \"\"\n\t}\n\treturn false\n}\n\nconst (\n\t// ProtoPackageIsVersion3 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tProtoPackageIsVersion3 = true\n\n\t// ProtoPackageIsVersion2 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tProtoPackageIsVersion2 = true\n\n\t// ProtoPackageIsVersion1 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tProtoPackageIsVersion1 = true\n)\n\n// InternalMessageInfo is a type used internally by generated .pb.go files.\n// This type is not intended to be used by non-generated code.\n// This type is not subject to any compatibility guarantee.\ntype InternalMessageInfo struct {\n\tmarshal   *marshalInfo\n\tunmarshal *unmarshalInfo\n\tmerge     *mergeInfo\n\tdiscard   *discardInfo\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/message_set.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Support for message sets.\n */\n\nimport (\n\t\"errors\"\n)\n\n// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID.\n// A message type ID is required for storing a protocol buffer in a message set.\nvar errNoMessageTypeID = errors.New(\"proto does not have a message type ID\")\n\n// The first two types (_MessageSet_Item and messageSet)\n// model what the protocol compiler produces for the following protocol message:\n//   message MessageSet {\n//     repeated group Item = 1 {\n//       required int32 type_id = 2;\n//       required string message = 3;\n//     };\n//   }\n// That is the MessageSet wire format. We can't use a proto to generate these\n// because that would introduce a circular dependency between it and this package.\n\ntype _MessageSet_Item struct {\n\tTypeId  *int32 `protobuf:\"varint,2,req,name=type_id\"`\n\tMessage []byte `protobuf:\"bytes,3,req,name=message\"`\n}\n\ntype messageSet struct {\n\tItem             []*_MessageSet_Item `protobuf:\"group,1,rep\"`\n\tXXX_unrecognized []byte\n\t// TODO: caching?\n}\n\n// Make sure messageSet is a Message.\nvar _ Message = (*messageSet)(nil)\n\n// messageTypeIder is an interface satisfied by a protocol buffer type\n// that may be stored in a MessageSet.\ntype messageTypeIder interface {\n\tMessageTypeId() int32\n}\n\nfunc (ms *messageSet) find(pb Message) *_MessageSet_Item {\n\tmti, ok := pb.(messageTypeIder)\n\tif !ok {\n\t\treturn nil\n\t}\n\tid := mti.MessageTypeId()\n\tfor _, item := range ms.Item {\n\t\tif *item.TypeId == id {\n\t\t\treturn item\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (ms *messageSet) Has(pb Message) bool {\n\treturn ms.find(pb) != nil\n}\n\nfunc (ms *messageSet) Unmarshal(pb Message) error {\n\tif item := ms.find(pb); item != nil {\n\t\treturn Unmarshal(item.Message, pb)\n\t}\n\tif _, ok := pb.(messageTypeIder); !ok {\n\t\treturn errNoMessageTypeID\n\t}\n\treturn nil // TODO: return error instead?\n}\n\nfunc (ms *messageSet) Marshal(pb Message) error {\n\tmsg, err := Marshal(pb)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif item := ms.find(pb); item != nil {\n\t\t// reuse existing item\n\t\titem.Message = msg\n\t\treturn nil\n\t}\n\n\tmti, ok := pb.(messageTypeIder)\n\tif !ok {\n\t\treturn errNoMessageTypeID\n\t}\n\n\tmtid := mti.MessageTypeId()\n\tms.Item = append(ms.Item, &_MessageSet_Item{\n\t\tTypeId:  &mtid,\n\t\tMessage: msg,\n\t})\n\treturn nil\n}\n\nfunc (ms *messageSet) Reset()         { *ms = messageSet{} }\nfunc (ms *messageSet) String() string { return CompactTextString(ms) }\nfunc (*messageSet) ProtoMessage()     {}\n\n// Support for the message_set_wire_format message option.\n\nfunc skipVarint(buf []byte) []byte {\n\ti := 0\n\tfor ; buf[i]&0x80 != 0; i++ {\n\t}\n\treturn buf[i+1:]\n}\n\n// unmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.\n// It is called by Unmarshal methods on protocol buffer messages with the message_set_wire_format option.\nfunc unmarshalMessageSet(buf []byte, exts interface{}) error {\n\tvar m map[int32]Extension\n\tswitch exts := exts.(type) {\n\tcase *XXX_InternalExtensions:\n\t\tm = exts.extensionsWrite()\n\tcase map[int32]Extension:\n\t\tm = exts\n\tdefault:\n\t\treturn errors.New(\"proto: not an extension map\")\n\t}\n\n\tms := new(messageSet)\n\tif err := Unmarshal(buf, ms); err != nil {\n\t\treturn err\n\t}\n\tfor _, item := range ms.Item {\n\t\tid := *item.TypeId\n\t\tmsg := item.Message\n\n\t\t// Restore wire type and field number varint, plus length varint.\n\t\t// Be careful to preserve duplicate items.\n\t\tb := EncodeVarint(uint64(id)<<3 | WireBytes)\n\t\tif ext, ok := m[id]; ok {\n\t\t\t// Existing data; rip off the tag and length varint\n\t\t\t// so we join the new data correctly.\n\t\t\t// We can assume that ext.enc is set because we are unmarshaling.\n\t\t\to := ext.enc[len(b):]   // skip wire type and field number\n\t\t\t_, n := DecodeVarint(o) // calculate length of length varint\n\t\t\to = o[n:]               // skip length varint\n\t\t\tmsg = append(o, msg...) // join old data and new data\n\t\t}\n\t\tb = append(b, EncodeVarint(uint64(len(msg)))...)\n\t\tb = append(b, msg...)\n\n\t\tm[id] = Extension{enc: b}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/pointer_reflect.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build purego appengine js\n\n// This file contains an implementation of proto field accesses using package reflect.\n// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can\n// be used on App Engine.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n)\n\nconst unsafeAllowed = false\n\n// A field identifies a field in a struct, accessible from a pointer.\n// In this implementation, a field is identified by the sequence of field indices\n// passed to reflect's FieldByIndex.\ntype field []int\n\n// toField returns a field equivalent to the given reflect field.\nfunc toField(f *reflect.StructField) field {\n\treturn f.Index\n}\n\n// invalidField is an invalid field identifier.\nvar invalidField = field(nil)\n\n// zeroField is a noop when calling pointer.offset.\nvar zeroField = field([]int{})\n\n// IsValid reports whether the field identifier is valid.\nfunc (f field) IsValid() bool { return f != nil }\n\n// The pointer type is for the table-driven decoder.\n// The implementation here uses a reflect.Value of pointer type to\n// create a generic pointer. In pointer_unsafe.go we use unsafe\n// instead of reflect to implement the same (but faster) interface.\ntype pointer struct {\n\tv reflect.Value\n}\n\n// toPointer converts an interface of pointer type to a pointer\n// that points to the same target.\nfunc toPointer(i *Message) pointer {\n\treturn pointer{v: reflect.ValueOf(*i)}\n}\n\n// toAddrPointer converts an interface to a pointer that points to\n// the interface data.\nfunc toAddrPointer(i *interface{}, isptr, deref bool) pointer {\n\tv := reflect.ValueOf(*i)\n\tu := reflect.New(v.Type())\n\tu.Elem().Set(v)\n\tif deref {\n\t\tu = u.Elem()\n\t}\n\treturn pointer{v: u}\n}\n\n// valToPointer converts v to a pointer.  v must be of pointer type.\nfunc valToPointer(v reflect.Value) pointer {\n\treturn pointer{v: v}\n}\n\n// offset converts from a pointer to a structure to a pointer to\n// one of its fields.\nfunc (p pointer) offset(f field) pointer {\n\treturn pointer{v: p.v.Elem().FieldByIndex(f).Addr()}\n}\n\nfunc (p pointer) isNil() bool {\n\treturn p.v.IsNil()\n}\n\n// grow updates the slice s in place to make it one element longer.\n// s must be addressable.\n// Returns the (addressable) new element.\nfunc grow(s reflect.Value) reflect.Value {\n\tn, m := s.Len(), s.Cap()\n\tif n < m {\n\t\ts.SetLen(n + 1)\n\t} else {\n\t\ts.Set(reflect.Append(s, reflect.Zero(s.Type().Elem())))\n\t}\n\treturn s.Index(n)\n}\n\nfunc (p pointer) toInt64() *int64 {\n\treturn p.v.Interface().(*int64)\n}\nfunc (p pointer) toInt64Ptr() **int64 {\n\treturn p.v.Interface().(**int64)\n}\nfunc (p pointer) toInt64Slice() *[]int64 {\n\treturn p.v.Interface().(*[]int64)\n}\n\nvar int32ptr = reflect.TypeOf((*int32)(nil))\n\nfunc (p pointer) toInt32() *int32 {\n\treturn p.v.Convert(int32ptr).Interface().(*int32)\n}\n\n// The toInt32Ptr/Slice methods don't work because of enums.\n// Instead, we must use set/get methods for the int32ptr/slice case.\n/*\n\tfunc (p pointer) toInt32Ptr() **int32 {\n\t\treturn p.v.Interface().(**int32)\n}\n\tfunc (p pointer) toInt32Slice() *[]int32 {\n\t\treturn p.v.Interface().(*[]int32)\n}\n*/\nfunc (p pointer) getInt32Ptr() *int32 {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\treturn p.v.Elem().Interface().(*int32)\n\t}\n\t// an enum\n\treturn p.v.Elem().Convert(int32PtrType).Interface().(*int32)\n}\nfunc (p pointer) setInt32Ptr(v int32) {\n\t// Allocate value in a *int32. Possibly convert that to a *enum.\n\t// Then assign it to a **int32 or **enum.\n\t// Note: we can convert *int32 to *enum, but we can't convert\n\t// **int32 to **enum!\n\tp.v.Elem().Set(reflect.ValueOf(&v).Convert(p.v.Type().Elem()))\n}\n\n// getInt32Slice copies []int32 from p as a new slice.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) getInt32Slice() []int32 {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\treturn p.v.Elem().Interface().([]int32)\n\t}\n\t// an enum\n\t// Allocate a []int32, then assign []enum's values into it.\n\t// Note: we can't convert []enum to []int32.\n\tslice := p.v.Elem()\n\ts := make([]int32, slice.Len())\n\tfor i := 0; i < slice.Len(); i++ {\n\t\ts[i] = int32(slice.Index(i).Int())\n\t}\n\treturn s\n}\n\n// setInt32Slice copies []int32 into p as a new slice.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) setInt32Slice(v []int32) {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\tp.v.Elem().Set(reflect.ValueOf(v))\n\t\treturn\n\t}\n\t// an enum\n\t// Allocate a []enum, then assign []int32's values into it.\n\t// Note: we can't convert []enum to []int32.\n\tslice := reflect.MakeSlice(p.v.Type().Elem(), len(v), cap(v))\n\tfor i, x := range v {\n\t\tslice.Index(i).SetInt(int64(x))\n\t}\n\tp.v.Elem().Set(slice)\n}\nfunc (p pointer) appendInt32Slice(v int32) {\n\tgrow(p.v.Elem()).SetInt(int64(v))\n}\n\nfunc (p pointer) toUint64() *uint64 {\n\treturn p.v.Interface().(*uint64)\n}\nfunc (p pointer) toUint64Ptr() **uint64 {\n\treturn p.v.Interface().(**uint64)\n}\nfunc (p pointer) toUint64Slice() *[]uint64 {\n\treturn p.v.Interface().(*[]uint64)\n}\nfunc (p pointer) toUint32() *uint32 {\n\treturn p.v.Interface().(*uint32)\n}\nfunc (p pointer) toUint32Ptr() **uint32 {\n\treturn p.v.Interface().(**uint32)\n}\nfunc (p pointer) toUint32Slice() *[]uint32 {\n\treturn p.v.Interface().(*[]uint32)\n}\nfunc (p pointer) toBool() *bool {\n\treturn p.v.Interface().(*bool)\n}\nfunc (p pointer) toBoolPtr() **bool {\n\treturn p.v.Interface().(**bool)\n}\nfunc (p pointer) toBoolSlice() *[]bool {\n\treturn p.v.Interface().(*[]bool)\n}\nfunc (p pointer) toFloat64() *float64 {\n\treturn p.v.Interface().(*float64)\n}\nfunc (p pointer) toFloat64Ptr() **float64 {\n\treturn p.v.Interface().(**float64)\n}\nfunc (p pointer) toFloat64Slice() *[]float64 {\n\treturn p.v.Interface().(*[]float64)\n}\nfunc (p pointer) toFloat32() *float32 {\n\treturn p.v.Interface().(*float32)\n}\nfunc (p pointer) toFloat32Ptr() **float32 {\n\treturn p.v.Interface().(**float32)\n}\nfunc (p pointer) toFloat32Slice() *[]float32 {\n\treturn p.v.Interface().(*[]float32)\n}\nfunc (p pointer) toString() *string {\n\treturn p.v.Interface().(*string)\n}\nfunc (p pointer) toStringPtr() **string {\n\treturn p.v.Interface().(**string)\n}\nfunc (p pointer) toStringSlice() *[]string {\n\treturn p.v.Interface().(*[]string)\n}\nfunc (p pointer) toBytes() *[]byte {\n\treturn p.v.Interface().(*[]byte)\n}\nfunc (p pointer) toBytesSlice() *[][]byte {\n\treturn p.v.Interface().(*[][]byte)\n}\nfunc (p pointer) toExtensions() *XXX_InternalExtensions {\n\treturn p.v.Interface().(*XXX_InternalExtensions)\n}\nfunc (p pointer) toOldExtensions() *map[int32]Extension {\n\treturn p.v.Interface().(*map[int32]Extension)\n}\nfunc (p pointer) getPointer() pointer {\n\treturn pointer{v: p.v.Elem()}\n}\nfunc (p pointer) setPointer(q pointer) {\n\tp.v.Elem().Set(q.v)\n}\nfunc (p pointer) appendPointer(q pointer) {\n\tgrow(p.v.Elem()).Set(q.v)\n}\n\n// getPointerSlice copies []*T from p as a new []pointer.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) getPointerSlice() []pointer {\n\tif p.v.IsNil() {\n\t\treturn nil\n\t}\n\tn := p.v.Elem().Len()\n\ts := make([]pointer, n)\n\tfor i := 0; i < n; i++ {\n\t\ts[i] = pointer{v: p.v.Elem().Index(i)}\n\t}\n\treturn s\n}\n\n// setPointerSlice copies []pointer into p as a new []*T.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) setPointerSlice(v []pointer) {\n\tif v == nil {\n\t\tp.v.Elem().Set(reflect.New(p.v.Elem().Type()).Elem())\n\t\treturn\n\t}\n\ts := reflect.MakeSlice(p.v.Elem().Type(), 0, len(v))\n\tfor _, p := range v {\n\t\ts = reflect.Append(s, p.v)\n\t}\n\tp.v.Elem().Set(s)\n}\n\n// getInterfacePointer returns a pointer that points to the\n// interface data of the interface pointed by p.\nfunc (p pointer) getInterfacePointer() pointer {\n\tif p.v.Elem().IsNil() {\n\t\treturn pointer{v: p.v.Elem()}\n\t}\n\treturn pointer{v: p.v.Elem().Elem().Elem().Field(0).Addr()} // *interface -> interface -> *struct -> struct\n}\n\nfunc (p pointer) asPointerTo(t reflect.Type) reflect.Value {\n\t// TODO: check that p.v.Type().Elem() == t?\n\treturn p.v\n}\n\nfunc atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadDiscardInfo(p **discardInfo) *discardInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\n\nvar atomicLock sync.Mutex\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/pointer_unsafe.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build !purego,!appengine,!js\n\n// This file contains the implementation of the proto field accesses using package unsafe.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nconst unsafeAllowed = true\n\n// A field identifies a field in a struct, accessible from a pointer.\n// In this implementation, a field is identified by its byte offset from the start of the struct.\ntype field uintptr\n\n// toField returns a field equivalent to the given reflect field.\nfunc toField(f *reflect.StructField) field {\n\treturn field(f.Offset)\n}\n\n// invalidField is an invalid field identifier.\nconst invalidField = ^field(0)\n\n// zeroField is a noop when calling pointer.offset.\nconst zeroField = field(0)\n\n// IsValid reports whether the field identifier is valid.\nfunc (f field) IsValid() bool {\n\treturn f != invalidField\n}\n\n// The pointer type below is for the new table-driven encoder/decoder.\n// The implementation here uses unsafe.Pointer to create a generic pointer.\n// In pointer_reflect.go we use reflect instead of unsafe to implement\n// the same (but slower) interface.\ntype pointer struct {\n\tp unsafe.Pointer\n}\n\n// size of pointer\nvar ptrSize = unsafe.Sizeof(uintptr(0))\n\n// toPointer converts an interface of pointer type to a pointer\n// that points to the same target.\nfunc toPointer(i *Message) pointer {\n\t// Super-tricky - read pointer out of data word of interface value.\n\t// Saves ~25ns over the equivalent:\n\t// return valToPointer(reflect.ValueOf(*i))\n\treturn pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n}\n\n// toAddrPointer converts an interface to a pointer that points to\n// the interface data.\nfunc toAddrPointer(i *interface{}, isptr, deref bool) (p pointer) {\n\t// Super-tricky - read or get the address of data word of interface value.\n\tif isptr {\n\t\t// The interface is of pointer type, thus it is a direct interface.\n\t\t// The data word is the pointer data itself. We take its address.\n\t\tp = pointer{p: unsafe.Pointer(uintptr(unsafe.Pointer(i)) + ptrSize)}\n\t} else {\n\t\t// The interface is not of pointer type. The data word is the pointer\n\t\t// to the data.\n\t\tp = pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n\t}\n\tif deref {\n\t\tp.p = *(*unsafe.Pointer)(p.p)\n\t}\n\treturn p\n}\n\n// valToPointer converts v to a pointer. v must be of pointer type.\nfunc valToPointer(v reflect.Value) pointer {\n\treturn pointer{p: unsafe.Pointer(v.Pointer())}\n}\n\n// offset converts from a pointer to a structure to a pointer to\n// one of its fields.\nfunc (p pointer) offset(f field) pointer {\n\t// For safety, we should panic if !f.IsValid, however calling panic causes\n\t// this to no longer be inlineable, which is a serious performance cost.\n\t/*\n\t\tif !f.IsValid() {\n\t\t\tpanic(\"invalid field\")\n\t\t}\n\t*/\n\treturn pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))}\n}\n\nfunc (p pointer) isNil() bool {\n\treturn p.p == nil\n}\n\nfunc (p pointer) toInt64() *int64 {\n\treturn (*int64)(p.p)\n}\nfunc (p pointer) toInt64Ptr() **int64 {\n\treturn (**int64)(p.p)\n}\nfunc (p pointer) toInt64Slice() *[]int64 {\n\treturn (*[]int64)(p.p)\n}\nfunc (p pointer) toInt32() *int32 {\n\treturn (*int32)(p.p)\n}\n\n// See pointer_reflect.go for why toInt32Ptr/Slice doesn't exist.\n/*\n\tfunc (p pointer) toInt32Ptr() **int32 {\n\t\treturn (**int32)(p.p)\n\t}\n\tfunc (p pointer) toInt32Slice() *[]int32 {\n\t\treturn (*[]int32)(p.p)\n\t}\n*/\nfunc (p pointer) getInt32Ptr() *int32 {\n\treturn *(**int32)(p.p)\n}\nfunc (p pointer) setInt32Ptr(v int32) {\n\t*(**int32)(p.p) = &v\n}\n\n// getInt32Slice loads a []int32 from p.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) getInt32Slice() []int32 {\n\treturn *(*[]int32)(p.p)\n}\n\n// setInt32Slice stores a []int32 to p.\n// The value set is aliased with the input slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) setInt32Slice(v []int32) {\n\t*(*[]int32)(p.p) = v\n}\n\n// TODO: Can we get rid of appendInt32Slice and use setInt32Slice instead?\nfunc (p pointer) appendInt32Slice(v int32) {\n\ts := (*[]int32)(p.p)\n\t*s = append(*s, v)\n}\n\nfunc (p pointer) toUint64() *uint64 {\n\treturn (*uint64)(p.p)\n}\nfunc (p pointer) toUint64Ptr() **uint64 {\n\treturn (**uint64)(p.p)\n}\nfunc (p pointer) toUint64Slice() *[]uint64 {\n\treturn (*[]uint64)(p.p)\n}\nfunc (p pointer) toUint32() *uint32 {\n\treturn (*uint32)(p.p)\n}\nfunc (p pointer) toUint32Ptr() **uint32 {\n\treturn (**uint32)(p.p)\n}\nfunc (p pointer) toUint32Slice() *[]uint32 {\n\treturn (*[]uint32)(p.p)\n}\nfunc (p pointer) toBool() *bool {\n\treturn (*bool)(p.p)\n}\nfunc (p pointer) toBoolPtr() **bool {\n\treturn (**bool)(p.p)\n}\nfunc (p pointer) toBoolSlice() *[]bool {\n\treturn (*[]bool)(p.p)\n}\nfunc (p pointer) toFloat64() *float64 {\n\treturn (*float64)(p.p)\n}\nfunc (p pointer) toFloat64Ptr() **float64 {\n\treturn (**float64)(p.p)\n}\nfunc (p pointer) toFloat64Slice() *[]float64 {\n\treturn (*[]float64)(p.p)\n}\nfunc (p pointer) toFloat32() *float32 {\n\treturn (*float32)(p.p)\n}\nfunc (p pointer) toFloat32Ptr() **float32 {\n\treturn (**float32)(p.p)\n}\nfunc (p pointer) toFloat32Slice() *[]float32 {\n\treturn (*[]float32)(p.p)\n}\nfunc (p pointer) toString() *string {\n\treturn (*string)(p.p)\n}\nfunc (p pointer) toStringPtr() **string {\n\treturn (**string)(p.p)\n}\nfunc (p pointer) toStringSlice() *[]string {\n\treturn (*[]string)(p.p)\n}\nfunc (p pointer) toBytes() *[]byte {\n\treturn (*[]byte)(p.p)\n}\nfunc (p pointer) toBytesSlice() *[][]byte {\n\treturn (*[][]byte)(p.p)\n}\nfunc (p pointer) toExtensions() *XXX_InternalExtensions {\n\treturn (*XXX_InternalExtensions)(p.p)\n}\nfunc (p pointer) toOldExtensions() *map[int32]Extension {\n\treturn (*map[int32]Extension)(p.p)\n}\n\n// getPointerSlice loads []*T from p as a []pointer.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) getPointerSlice() []pointer {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We load it as []pointer.\n\treturn *(*[]pointer)(p.p)\n}\n\n// setPointerSlice stores []pointer into p as a []*T.\n// The value set is aliased with the input slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) setPointerSlice(v []pointer) {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We store it as []pointer.\n\t*(*[]pointer)(p.p) = v\n}\n\n// getPointer loads the pointer at p and returns it.\nfunc (p pointer) getPointer() pointer {\n\treturn pointer{p: *(*unsafe.Pointer)(p.p)}\n}\n\n// setPointer stores the pointer q at p.\nfunc (p pointer) setPointer(q pointer) {\n\t*(*unsafe.Pointer)(p.p) = q.p\n}\n\n// append q to the slice pointed to by p.\nfunc (p pointer) appendPointer(q pointer) {\n\ts := (*[]unsafe.Pointer)(p.p)\n\t*s = append(*s, q.p)\n}\n\n// getInterfacePointer returns a pointer that points to the\n// interface data of the interface pointed by p.\nfunc (p pointer) getInterfacePointer() pointer {\n\t// Super-tricky - read pointer out of data word of interface value.\n\treturn pointer{p: (*(*[2]unsafe.Pointer)(p.p))[1]}\n}\n\n// asPointerTo returns a reflect.Value that is a pointer to an\n// object of type t stored at p.\nfunc (p pointer) asPointerTo(t reflect.Type) reflect.Value {\n\treturn reflect.NewAt(t, p.p)\n}\n\nfunc atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {\n\treturn (*unmarshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {\n\treturn (*marshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {\n\treturn (*mergeInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadDiscardInfo(p **discardInfo) *discardInfo {\n\treturn (*discardInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/properties.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for encoding data into the wire format for protocol buffers.\n */\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\nconst debug bool = false\n\n// Constants that identify the encoding of a value on the wire.\nconst (\n\tWireVarint     = 0\n\tWireFixed64    = 1\n\tWireBytes      = 2\n\tWireStartGroup = 3\n\tWireEndGroup   = 4\n\tWireFixed32    = 5\n)\n\n// tagMap is an optimization over map[int]int for typical protocol buffer\n// use-cases. Encoded protocol buffers are often in tag order with small tag\n// numbers.\ntype tagMap struct {\n\tfastTags []int\n\tslowTags map[int]int\n}\n\n// tagMapFastLimit is the upper bound on the tag number that will be stored in\n// the tagMap slice rather than its map.\nconst tagMapFastLimit = 1024\n\nfunc (p *tagMap) get(t int) (int, bool) {\n\tif t > 0 && t < tagMapFastLimit {\n\t\tif t >= len(p.fastTags) {\n\t\t\treturn 0, false\n\t\t}\n\t\tfi := p.fastTags[t]\n\t\treturn fi, fi >= 0\n\t}\n\tfi, ok := p.slowTags[t]\n\treturn fi, ok\n}\n\nfunc (p *tagMap) put(t int, fi int) {\n\tif t > 0 && t < tagMapFastLimit {\n\t\tfor len(p.fastTags) < t+1 {\n\t\t\tp.fastTags = append(p.fastTags, -1)\n\t\t}\n\t\tp.fastTags[t] = fi\n\t\treturn\n\t}\n\tif p.slowTags == nil {\n\t\tp.slowTags = make(map[int]int)\n\t}\n\tp.slowTags[t] = fi\n}\n\n// StructProperties represents properties for all the fields of a struct.\n// decoderTags and decoderOrigNames should only be used by the decoder.\ntype StructProperties struct {\n\tProp             []*Properties  // properties for each field\n\treqCount         int            // required count\n\tdecoderTags      tagMap         // map from proto tag to struct field number\n\tdecoderOrigNames map[string]int // map from original name to struct field number\n\torder            []int          // list of struct field numbers in tag order\n\n\t// OneofTypes contains information about the oneof fields in this message.\n\t// It is keyed by the original name of a field.\n\tOneofTypes map[string]*OneofProperties\n}\n\n// OneofProperties represents information about a specific field in a oneof.\ntype OneofProperties struct {\n\tType  reflect.Type // pointer to generated struct type for this oneof field\n\tField int          // struct field number of the containing oneof in the message\n\tProp  *Properties\n}\n\n// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec.\n// See encode.go, (*Buffer).enc_struct.\n\nfunc (sp *StructProperties) Len() int { return len(sp.order) }\nfunc (sp *StructProperties) Less(i, j int) bool {\n\treturn sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag\n}\nfunc (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] }\n\n// Properties represents the protocol-specific behavior of a single struct field.\ntype Properties struct {\n\tName     string // name of the field, for error messages\n\tOrigName string // original name before protocol compiler (always set)\n\tJSONName string // name to use for JSON; determined by protoc\n\tWire     string\n\tWireType int\n\tTag      int\n\tRequired bool\n\tOptional bool\n\tRepeated bool\n\tPacked   bool   // relevant for repeated primitives only\n\tEnum     string // set for enum types only\n\tproto3   bool   // whether this is known to be a proto3 field\n\toneof    bool   // whether this is a oneof field\n\n\tDefault    string // default value\n\tHasDefault bool   // whether an explicit default was provided\n\n\tstype reflect.Type      // set for struct types only\n\tsprop *StructProperties // set for struct types only\n\n\tmtype      reflect.Type // set for map types only\n\tMapKeyProp *Properties  // set for map types only\n\tMapValProp *Properties  // set for map types only\n}\n\n// String formats the properties in the protobuf struct field tag style.\nfunc (p *Properties) String() string {\n\ts := p.Wire\n\ts += \",\"\n\ts += strconv.Itoa(p.Tag)\n\tif p.Required {\n\t\ts += \",req\"\n\t}\n\tif p.Optional {\n\t\ts += \",opt\"\n\t}\n\tif p.Repeated {\n\t\ts += \",rep\"\n\t}\n\tif p.Packed {\n\t\ts += \",packed\"\n\t}\n\ts += \",name=\" + p.OrigName\n\tif p.JSONName != p.OrigName {\n\t\ts += \",json=\" + p.JSONName\n\t}\n\tif p.proto3 {\n\t\ts += \",proto3\"\n\t}\n\tif p.oneof {\n\t\ts += \",oneof\"\n\t}\n\tif len(p.Enum) > 0 {\n\t\ts += \",enum=\" + p.Enum\n\t}\n\tif p.HasDefault {\n\t\ts += \",def=\" + p.Default\n\t}\n\treturn s\n}\n\n// Parse populates p by parsing a string in the protobuf struct field tag style.\nfunc (p *Properties) Parse(s string) {\n\t// \"bytes,49,opt,name=foo,def=hello!\"\n\tfields := strings.Split(s, \",\") // breaks def=, but handled below.\n\tif len(fields) < 2 {\n\t\tfmt.Fprintf(os.Stderr, \"proto: tag has too few fields: %q\\n\", s)\n\t\treturn\n\t}\n\n\tp.Wire = fields[0]\n\tswitch p.Wire {\n\tcase \"varint\":\n\t\tp.WireType = WireVarint\n\tcase \"fixed32\":\n\t\tp.WireType = WireFixed32\n\tcase \"fixed64\":\n\t\tp.WireType = WireFixed64\n\tcase \"zigzag32\":\n\t\tp.WireType = WireVarint\n\tcase \"zigzag64\":\n\t\tp.WireType = WireVarint\n\tcase \"bytes\", \"group\":\n\t\tp.WireType = WireBytes\n\t\t// no numeric converter for non-numeric types\n\tdefault:\n\t\tfmt.Fprintf(os.Stderr, \"proto: tag has unknown wire type: %q\\n\", s)\n\t\treturn\n\t}\n\n\tvar err error\n\tp.Tag, err = strconv.Atoi(fields[1])\n\tif err != nil {\n\t\treturn\n\t}\n\nouter:\n\tfor i := 2; i < len(fields); i++ {\n\t\tf := fields[i]\n\t\tswitch {\n\t\tcase f == \"req\":\n\t\t\tp.Required = true\n\t\tcase f == \"opt\":\n\t\t\tp.Optional = true\n\t\tcase f == \"rep\":\n\t\t\tp.Repeated = true\n\t\tcase f == \"packed\":\n\t\t\tp.Packed = true\n\t\tcase strings.HasPrefix(f, \"name=\"):\n\t\t\tp.OrigName = f[5:]\n\t\tcase strings.HasPrefix(f, \"json=\"):\n\t\t\tp.JSONName = f[5:]\n\t\tcase strings.HasPrefix(f, \"enum=\"):\n\t\t\tp.Enum = f[5:]\n\t\tcase f == \"proto3\":\n\t\t\tp.proto3 = true\n\t\tcase f == \"oneof\":\n\t\t\tp.oneof = true\n\t\tcase strings.HasPrefix(f, \"def=\"):\n\t\t\tp.HasDefault = true\n\t\t\tp.Default = f[4:] // rest of string\n\t\t\tif i+1 < len(fields) {\n\t\t\t\t// Commas aren't escaped, and def is always last.\n\t\t\t\tp.Default += \",\" + strings.Join(fields[i+1:], \",\")\n\t\t\t\tbreak outer\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar protoMessageType = reflect.TypeOf((*Message)(nil)).Elem()\n\n// setFieldProps initializes the field properties for submessages and maps.\nfunc (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, lockGetProp bool) {\n\tswitch t1 := typ; t1.Kind() {\n\tcase reflect.Ptr:\n\t\tif t1.Elem().Kind() == reflect.Struct {\n\t\t\tp.stype = t1.Elem()\n\t\t}\n\n\tcase reflect.Slice:\n\t\tif t2 := t1.Elem(); t2.Kind() == reflect.Ptr && t2.Elem().Kind() == reflect.Struct {\n\t\t\tp.stype = t2.Elem()\n\t\t}\n\n\tcase reflect.Map:\n\t\tp.mtype = t1\n\t\tp.MapKeyProp = &Properties{}\n\t\tp.MapKeyProp.init(reflect.PtrTo(p.mtype.Key()), \"Key\", f.Tag.Get(\"protobuf_key\"), nil, lockGetProp)\n\t\tp.MapValProp = &Properties{}\n\t\tvtype := p.mtype.Elem()\n\t\tif vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice {\n\t\t\t// The value type is not a message (*T) or bytes ([]byte),\n\t\t\t// so we need encoders for the pointer to this type.\n\t\t\tvtype = reflect.PtrTo(vtype)\n\t\t}\n\t\tp.MapValProp.init(vtype, \"Value\", f.Tag.Get(\"protobuf_val\"), nil, lockGetProp)\n\t}\n\n\tif p.stype != nil {\n\t\tif lockGetProp {\n\t\t\tp.sprop = GetProperties(p.stype)\n\t\t} else {\n\t\t\tp.sprop = getPropertiesLocked(p.stype)\n\t\t}\n\t}\n}\n\nvar (\n\tmarshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem()\n)\n\n// Init populates the properties from a protocol buffer struct tag.\nfunc (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) {\n\tp.init(typ, name, tag, f, true)\n}\n\nfunc (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) {\n\t// \"bytes,49,opt,def=hello!\"\n\tp.Name = name\n\tp.OrigName = name\n\tif tag == \"\" {\n\t\treturn\n\t}\n\tp.Parse(tag)\n\tp.setFieldProps(typ, f, lockGetProp)\n}\n\nvar (\n\tpropertiesMu  sync.RWMutex\n\tpropertiesMap = make(map[reflect.Type]*StructProperties)\n)\n\n// GetProperties returns the list of properties for the type represented by t.\n// t must represent a generated struct type of a protocol message.\nfunc GetProperties(t reflect.Type) *StructProperties {\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(\"proto: type must have kind struct\")\n\t}\n\n\t// Most calls to GetProperties in a long-running program will be\n\t// retrieving details for types we have seen before.\n\tpropertiesMu.RLock()\n\tsprop, ok := propertiesMap[t]\n\tpropertiesMu.RUnlock()\n\tif ok {\n\t\treturn sprop\n\t}\n\n\tpropertiesMu.Lock()\n\tsprop = getPropertiesLocked(t)\n\tpropertiesMu.Unlock()\n\treturn sprop\n}\n\ntype (\n\toneofFuncsIface interface {\n\t\tXXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})\n\t}\n\toneofWrappersIface interface {\n\t\tXXX_OneofWrappers() []interface{}\n\t}\n)\n\n// getPropertiesLocked requires that propertiesMu is held.\nfunc getPropertiesLocked(t reflect.Type) *StructProperties {\n\tif prop, ok := propertiesMap[t]; ok {\n\t\treturn prop\n\t}\n\n\tprop := new(StructProperties)\n\t// in case of recursive protos, fill this in now.\n\tpropertiesMap[t] = prop\n\n\t// build properties\n\tprop.Prop = make([]*Properties, t.NumField())\n\tprop.order = make([]int, t.NumField())\n\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tp := new(Properties)\n\t\tname := f.Name\n\t\tp.init(f.Type, name, f.Tag.Get(\"protobuf\"), &f, false)\n\n\t\toneof := f.Tag.Get(\"protobuf_oneof\") // special case\n\t\tif oneof != \"\" {\n\t\t\t// Oneof fields don't use the traditional protobuf tag.\n\t\t\tp.OrigName = oneof\n\t\t}\n\t\tprop.Prop[i] = p\n\t\tprop.order[i] = i\n\t\tif debug {\n\t\t\tprint(i, \" \", f.Name, \" \", t.String(), \" \")\n\t\t\tif p.Tag > 0 {\n\t\t\t\tprint(p.String())\n\t\t\t}\n\t\t\tprint(\"\\n\")\n\t\t}\n\t}\n\n\t// Re-order prop.order.\n\tsort.Sort(prop)\n\n\tvar oots []interface{}\n\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\tcase oneofFuncsIface:\n\t\t_, _, _, oots = m.XXX_OneofFuncs()\n\tcase oneofWrappersIface:\n\t\toots = m.XXX_OneofWrappers()\n\t}\n\tif len(oots) > 0 {\n\t\t// Interpret oneof metadata.\n\t\tprop.OneofTypes = make(map[string]*OneofProperties)\n\t\tfor _, oot := range oots {\n\t\t\toop := &OneofProperties{\n\t\t\t\tType: reflect.ValueOf(oot).Type(), // *T\n\t\t\t\tProp: new(Properties),\n\t\t\t}\n\t\t\tsft := oop.Type.Elem().Field(0)\n\t\t\toop.Prop.Name = sft.Name\n\t\t\toop.Prop.Parse(sft.Tag.Get(\"protobuf\"))\n\t\t\t// There will be exactly one interface field that\n\t\t\t// this new value is assignable to.\n\t\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\t\tf := t.Field(i)\n\t\t\t\tif f.Type.Kind() != reflect.Interface {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif !oop.Type.AssignableTo(f.Type) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\toop.Field = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tprop.OneofTypes[oop.Prop.OrigName] = oop\n\t\t}\n\t}\n\n\t// build required counts\n\t// build tags\n\treqCount := 0\n\tprop.decoderOrigNames = make(map[string]int)\n\tfor i, p := range prop.Prop {\n\t\tif strings.HasPrefix(p.Name, \"XXX_\") {\n\t\t\t// Internal fields should not appear in tags/origNames maps.\n\t\t\t// They are handled specially when encoding and decoding.\n\t\t\tcontinue\n\t\t}\n\t\tif p.Required {\n\t\t\treqCount++\n\t\t}\n\t\tprop.decoderTags.put(p.Tag, i)\n\t\tprop.decoderOrigNames[p.OrigName] = i\n\t}\n\tprop.reqCount = reqCount\n\n\treturn prop\n}\n\n// A global registry of enum types.\n// The generated code will register the generated maps by calling RegisterEnum.\n\nvar enumValueMaps = make(map[string]map[string]int32)\n\n// RegisterEnum is called from the generated code to install the enum descriptor\n// maps into the global table to aid parsing text format protocol buffers.\nfunc RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) {\n\tif _, ok := enumValueMaps[typeName]; ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + typeName)\n\t}\n\tenumValueMaps[typeName] = valueMap\n}\n\n// EnumValueMap returns the mapping from names to integers of the\n// enum type enumType, or a nil if not found.\nfunc EnumValueMap(enumType string) map[string]int32 {\n\treturn enumValueMaps[enumType]\n}\n\n// A registry of all linked message types.\n// The string is a fully-qualified proto name (\"pkg.Message\").\nvar (\n\tprotoTypedNils = make(map[string]Message)      // a map from proto names to typed nil pointers\n\tprotoMapTypes  = make(map[string]reflect.Type) // a map from proto names to map types\n\trevProtoTypes  = make(map[reflect.Type]string)\n)\n\n// RegisterType is called from generated code and maps from the fully qualified\n// proto name to the type (pointer to struct) of the protocol buffer.\nfunc RegisterType(x Message, name string) {\n\tif _, ok := protoTypedNils[name]; ok {\n\t\t// TODO: Some day, make this a panic.\n\t\tlog.Printf(\"proto: duplicate proto type registered: %s\", name)\n\t\treturn\n\t}\n\tt := reflect.TypeOf(x)\n\tif v := reflect.ValueOf(x); v.Kind() == reflect.Ptr && v.Pointer() == 0 {\n\t\t// Generated code always calls RegisterType with nil x.\n\t\t// This check is just for extra safety.\n\t\tprotoTypedNils[name] = x\n\t} else {\n\t\tprotoTypedNils[name] = reflect.Zero(t).Interface().(Message)\n\t}\n\trevProtoTypes[t] = name\n}\n\n// RegisterMapType is called from generated code and maps from the fully qualified\n// proto name to the native map type of the proto map definition.\nfunc RegisterMapType(x interface{}, name string) {\n\tif reflect.TypeOf(x).Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"RegisterMapType(%T, %q); want map\", x, name))\n\t}\n\tif _, ok := protoMapTypes[name]; ok {\n\t\tlog.Printf(\"proto: duplicate proto type registered: %s\", name)\n\t\treturn\n\t}\n\tt := reflect.TypeOf(x)\n\tprotoMapTypes[name] = t\n\trevProtoTypes[t] = name\n}\n\n// MessageName returns the fully-qualified proto name for the given message type.\nfunc MessageName(x Message) string {\n\ttype xname interface {\n\t\tXXX_MessageName() string\n\t}\n\tif m, ok := x.(xname); ok {\n\t\treturn m.XXX_MessageName()\n\t}\n\treturn revProtoTypes[reflect.TypeOf(x)]\n}\n\n// MessageType returns the message type (pointer to struct) for a named message.\n// The type is not guaranteed to implement proto.Message if the name refers to a\n// map entry.\nfunc MessageType(name string) reflect.Type {\n\tif t, ok := protoTypedNils[name]; ok {\n\t\treturn reflect.TypeOf(t)\n\t}\n\treturn protoMapTypes[name]\n}\n\n// A registry of all linked proto files.\nvar (\n\tprotoFiles = make(map[string][]byte) // file name => fileDescriptor\n)\n\n// RegisterFile is called from generated code and maps from the\n// full file name of a .proto file to its compressed FileDescriptorProto.\nfunc RegisterFile(filename string, fileDescriptor []byte) {\n\tprotoFiles[filename] = fileDescriptor\n}\n\n// FileDescriptor returns the compressed FileDescriptorProto for a .proto file.\nfunc FileDescriptor(filename string) []byte { return protoFiles[filename] }\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/table_marshal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"unicode/utf8\"\n)\n\n// a sizer takes a pointer to a field and the size of its tag, computes the size of\n// the encoded data.\ntype sizer func(pointer, int) int\n\n// a marshaler takes a byte slice, a pointer to a field, and its tag (in wire format),\n// marshals the field to the end of the slice, returns the slice and error (if any).\ntype marshaler func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error)\n\n// marshalInfo is the information used for marshaling a message.\ntype marshalInfo struct {\n\ttyp          reflect.Type\n\tfields       []*marshalFieldInfo\n\tunrecognized field                      // offset of XXX_unrecognized\n\textensions   field                      // offset of XXX_InternalExtensions\n\tv1extensions field                      // offset of XXX_extensions\n\tsizecache    field                      // offset of XXX_sizecache\n\tinitialized  int32                      // 0 -- only typ is set, 1 -- fully initialized\n\tmessageset   bool                       // uses message set wire format\n\thasmarshaler bool                       // has custom marshaler\n\tsync.RWMutex                            // protect extElems map, also for initialization\n\textElems     map[int32]*marshalElemInfo // info of extension elements\n}\n\n// marshalFieldInfo is the information used for marshaling a field of a message.\ntype marshalFieldInfo struct {\n\tfield      field\n\twiretag    uint64 // tag in wire format\n\ttagsize    int    // size of tag in wire format\n\tsizer      sizer\n\tmarshaler  marshaler\n\tisPointer  bool\n\trequired   bool                              // field is required\n\tname       string                            // name of the field, for error reporting\n\toneofElems map[reflect.Type]*marshalElemInfo // info of oneof elements\n}\n\n// marshalElemInfo is the information used for marshaling an extension or oneof element.\ntype marshalElemInfo struct {\n\twiretag   uint64 // tag in wire format\n\ttagsize   int    // size of tag in wire format\n\tsizer     sizer\n\tmarshaler marshaler\n\tisptr     bool // elem is pointer typed, thus interface of this type is a direct interface (extension only)\n\tderef     bool // dereference the pointer before operating on it; implies isptr\n}\n\nvar (\n\tmarshalInfoMap  = map[reflect.Type]*marshalInfo{}\n\tmarshalInfoLock sync.Mutex\n)\n\n// getMarshalInfo returns the information to marshal a given type of message.\n// The info it returns may not necessarily initialized.\n// t is the type of the message (NOT the pointer to it).\nfunc getMarshalInfo(t reflect.Type) *marshalInfo {\n\tmarshalInfoLock.Lock()\n\tu, ok := marshalInfoMap[t]\n\tif !ok {\n\t\tu = &marshalInfo{typ: t}\n\t\tmarshalInfoMap[t] = u\n\t}\n\tmarshalInfoLock.Unlock()\n\treturn u\n}\n\n// Size is the entry point from generated code,\n// and should be ONLY called by generated code.\n// It computes the size of encoded data of msg.\n// a is a pointer to a place to store cached marshal info.\nfunc (a *InternalMessageInfo) Size(msg Message) int {\n\tu := getMessageMarshalInfo(msg, a)\n\tptr := toPointer(&msg)\n\tif ptr.isNil() {\n\t\t// We get here if msg is a typed nil ((*SomeMessage)(nil)),\n\t\t// so it satisfies the interface, and msg == nil wouldn't\n\t\t// catch it. We don't want crash in this case.\n\t\treturn 0\n\t}\n\treturn u.size(ptr)\n}\n\n// Marshal is the entry point from generated code,\n// and should be ONLY called by generated code.\n// It marshals msg to the end of b.\n// a is a pointer to a place to store cached marshal info.\nfunc (a *InternalMessageInfo) Marshal(b []byte, msg Message, deterministic bool) ([]byte, error) {\n\tu := getMessageMarshalInfo(msg, a)\n\tptr := toPointer(&msg)\n\tif ptr.isNil() {\n\t\t// We get here if msg is a typed nil ((*SomeMessage)(nil)),\n\t\t// so it satisfies the interface, and msg == nil wouldn't\n\t\t// catch it. We don't want crash in this case.\n\t\treturn b, ErrNil\n\t}\n\treturn u.marshal(b, ptr, deterministic)\n}\n\nfunc getMessageMarshalInfo(msg interface{}, a *InternalMessageInfo) *marshalInfo {\n\t// u := a.marshal, but atomically.\n\t// We use an atomic here to ensure memory consistency.\n\tu := atomicLoadMarshalInfo(&a.marshal)\n\tif u == nil {\n\t\t// Get marshal information from type of message.\n\t\tt := reflect.ValueOf(msg).Type()\n\t\tif t.Kind() != reflect.Ptr {\n\t\t\tpanic(fmt.Sprintf(\"cannot handle non-pointer message type %v\", t))\n\t\t}\n\t\tu = getMarshalInfo(t.Elem())\n\t\t// Store it in the cache for later users.\n\t\t// a.marshal = u, but atomically.\n\t\tatomicStoreMarshalInfo(&a.marshal, u)\n\t}\n\treturn u\n}\n\n// size is the main function to compute the size of the encoded data of a message.\n// ptr is the pointer to the message.\nfunc (u *marshalInfo) size(ptr pointer) int {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeMarshalInfo()\n\t}\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif u.hasmarshaler {\n\t\tm := ptr.asPointerTo(u.typ).Interface().(Marshaler)\n\t\tb, _ := m.Marshal()\n\t\treturn len(b)\n\t}\n\n\tn := 0\n\tfor _, f := range u.fields {\n\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t// nil pointer always marshals to nothing\n\t\t\tcontinue\n\t\t}\n\t\tn += f.sizer(ptr.offset(f.field), f.tagsize)\n\t}\n\tif u.extensions.IsValid() {\n\t\te := ptr.offset(u.extensions).toExtensions()\n\t\tif u.messageset {\n\t\t\tn += u.sizeMessageSet(e)\n\t\t} else {\n\t\t\tn += u.sizeExtensions(e)\n\t\t}\n\t}\n\tif u.v1extensions.IsValid() {\n\t\tm := *ptr.offset(u.v1extensions).toOldExtensions()\n\t\tn += u.sizeV1Extensions(m)\n\t}\n\tif u.unrecognized.IsValid() {\n\t\ts := *ptr.offset(u.unrecognized).toBytes()\n\t\tn += len(s)\n\t}\n\t// cache the result for use in marshal\n\tif u.sizecache.IsValid() {\n\t\tatomic.StoreInt32(ptr.offset(u.sizecache).toInt32(), int32(n))\n\t}\n\treturn n\n}\n\n// cachedsize gets the size from cache. If there is no cache (i.e. message is not generated),\n// fall back to compute the size.\nfunc (u *marshalInfo) cachedsize(ptr pointer) int {\n\tif u.sizecache.IsValid() {\n\t\treturn int(atomic.LoadInt32(ptr.offset(u.sizecache).toInt32()))\n\t}\n\treturn u.size(ptr)\n}\n\n// marshal is the main function to marshal a message. It takes a byte slice and appends\n// the encoded data to the end of the slice, returns the slice and error (if any).\n// ptr is the pointer to the message.\n// If deterministic is true, map is marshaled in deterministic order.\nfunc (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte, error) {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeMarshalInfo()\n\t}\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif u.hasmarshaler {\n\t\tm := ptr.asPointerTo(u.typ).Interface().(Marshaler)\n\t\tb1, err := m.Marshal()\n\t\tb = append(b, b1...)\n\t\treturn b, err\n\t}\n\n\tvar err, errLater error\n\t// The old marshaler encodes extensions at beginning.\n\tif u.extensions.IsValid() {\n\t\te := ptr.offset(u.extensions).toExtensions()\n\t\tif u.messageset {\n\t\t\tb, err = u.appendMessageSet(b, e, deterministic)\n\t\t} else {\n\t\t\tb, err = u.appendExtensions(b, e, deterministic)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.v1extensions.IsValid() {\n\t\tm := *ptr.offset(u.v1extensions).toOldExtensions()\n\t\tb, err = u.appendV1Extensions(b, m, deterministic)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tfor _, f := range u.fields {\n\t\tif f.required {\n\t\t\tif ptr.offset(f.field).getPointer().isNil() {\n\t\t\t\t// Required field is not set.\n\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = &RequiredNotSetError{f.name}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t// nil pointer always marshals to nothing\n\t\t\tcontinue\n\t\t}\n\t\tb, err = f.marshaler(b, ptr.offset(f.field), f.wiretag, deterministic)\n\t\tif err != nil {\n\t\t\tif err1, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t// Required field in submessage is not set.\n\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = &RequiredNotSetError{f.name + \".\" + err1.field}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err == errRepeatedHasNil {\n\t\t\t\terr = errors.New(\"proto: repeated field \" + f.name + \" has nil element\")\n\t\t\t}\n\t\t\tif err == errInvalidUTF8 {\n\t\t\t\tif errLater == nil {\n\t\t\t\t\tfullName := revProtoTypes[reflect.PtrTo(u.typ)] + \".\" + f.name\n\t\t\t\t\terrLater = &invalidUTF8Error{fullName}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.unrecognized.IsValid() {\n\t\ts := *ptr.offset(u.unrecognized).toBytes()\n\t\tb = append(b, s...)\n\t}\n\treturn b, errLater\n}\n\n// computeMarshalInfo initializes the marshal info.\nfunc (u *marshalInfo) computeMarshalInfo() {\n\tu.Lock()\n\tdefer u.Unlock()\n\tif u.initialized != 0 { // non-atomic read is ok as it is protected by the lock\n\t\treturn\n\t}\n\n\tt := u.typ\n\tu.unrecognized = invalidField\n\tu.extensions = invalidField\n\tu.v1extensions = invalidField\n\tu.sizecache = invalidField\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif reflect.PtrTo(t).Implements(marshalerType) {\n\t\tu.hasmarshaler = true\n\t\tatomic.StoreInt32(&u.initialized, 1)\n\t\treturn\n\t}\n\n\t// get oneof implementers\n\tvar oneofImplementers []interface{}\n\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\tcase oneofFuncsIface:\n\t\t_, _, _, oneofImplementers = m.XXX_OneofFuncs()\n\tcase oneofWrappersIface:\n\t\toneofImplementers = m.XXX_OneofWrappers()\n\t}\n\n\tn := t.NumField()\n\n\t// deal with XXX fields first\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tif !strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tswitch f.Name {\n\t\tcase \"XXX_sizecache\":\n\t\t\tu.sizecache = toField(&f)\n\t\tcase \"XXX_unrecognized\":\n\t\t\tu.unrecognized = toField(&f)\n\t\tcase \"XXX_InternalExtensions\":\n\t\t\tu.extensions = toField(&f)\n\t\t\tu.messageset = f.Tag.Get(\"protobuf_messageset\") == \"1\"\n\t\tcase \"XXX_extensions\":\n\t\t\tu.v1extensions = toField(&f)\n\t\tcase \"XXX_NoUnkeyedLiteral\":\n\t\t\t// nothing to do\n\t\tdefault:\n\t\t\tpanic(\"unknown XXX field: \" + f.Name)\n\t\t}\n\t\tn--\n\t}\n\n\t// normal fields\n\tfields := make([]marshalFieldInfo, n) // batch allocation\n\tu.fields = make([]*marshalFieldInfo, 0, n)\n\tfor i, j := 0, 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := &fields[j]\n\t\tj++\n\t\tfield.name = f.Name\n\t\tu.fields = append(u.fields, field)\n\t\tif f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\tfield.computeOneofFieldInfo(&f, oneofImplementers)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Tag.Get(\"protobuf\") == \"\" {\n\t\t\t// field has no tag (not in generated message), ignore it\n\t\t\tu.fields = u.fields[:len(u.fields)-1]\n\t\t\tj--\n\t\t\tcontinue\n\t\t}\n\t\tfield.computeMarshalFieldInfo(&f)\n\t}\n\n\t// fields are marshaled in tag order on the wire.\n\tsort.Sort(byTag(u.fields))\n\n\tatomic.StoreInt32(&u.initialized, 1)\n}\n\n// helper for sorting fields by tag\ntype byTag []*marshalFieldInfo\n\nfunc (a byTag) Len() int           { return len(a) }\nfunc (a byTag) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\nfunc (a byTag) Less(i, j int) bool { return a[i].wiretag < a[j].wiretag }\n\n// getExtElemInfo returns the information to marshal an extension element.\n// The info it returns is initialized.\nfunc (u *marshalInfo) getExtElemInfo(desc *ExtensionDesc) *marshalElemInfo {\n\t// get from cache first\n\tu.RLock()\n\te, ok := u.extElems[desc.Field]\n\tu.RUnlock()\n\tif ok {\n\t\treturn e\n\t}\n\n\tt := reflect.TypeOf(desc.ExtensionType) // pointer or slice to basic type or struct\n\ttags := strings.Split(desc.Tag, \",\")\n\ttag, err := strconv.Atoi(tags[1])\n\tif err != nil {\n\t\tpanic(\"tag is not an integer\")\n\t}\n\twt := wiretype(tags[0])\n\tif t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct {\n\t\tt = t.Elem()\n\t}\n\tsizer, marshaler := typeMarshaler(t, tags, false, false)\n\tvar deref bool\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tt = reflect.PtrTo(t)\n\t\tderef = true\n\t}\n\te = &marshalElemInfo{\n\t\twiretag:   uint64(tag)<<3 | wt,\n\t\ttagsize:   SizeVarint(uint64(tag) << 3),\n\t\tsizer:     sizer,\n\t\tmarshaler: marshaler,\n\t\tisptr:     t.Kind() == reflect.Ptr,\n\t\tderef:     deref,\n\t}\n\n\t// update cache\n\tu.Lock()\n\tif u.extElems == nil {\n\t\tu.extElems = make(map[int32]*marshalElemInfo)\n\t}\n\tu.extElems[desc.Field] = e\n\tu.Unlock()\n\treturn e\n}\n\n// computeMarshalFieldInfo fills up the information to marshal a field.\nfunc (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructField) {\n\t// parse protobuf tag of the field.\n\t// tag has format of \"bytes,49,opt,name=foo,def=hello!\"\n\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tif tags[0] == \"\" {\n\t\treturn\n\t}\n\ttag, err := strconv.Atoi(tags[1])\n\tif err != nil {\n\t\tpanic(\"tag is not an integer\")\n\t}\n\twt := wiretype(tags[0])\n\tif tags[2] == \"req\" {\n\t\tfi.required = true\n\t}\n\tfi.setTag(f, tag, wt)\n\tfi.setMarshaler(f, tags)\n}\n\nfunc (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofImplementers []interface{}) {\n\tfi.field = toField(f)\n\tfi.wiretag = math.MaxInt32 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire.\n\tfi.isPointer = true\n\tfi.sizer, fi.marshaler = makeOneOfMarshaler(fi, f)\n\tfi.oneofElems = make(map[reflect.Type]*marshalElemInfo)\n\n\tityp := f.Type // interface type\n\tfor _, o := range oneofImplementers {\n\t\tt := reflect.TypeOf(o)\n\t\tif !t.Implements(ityp) {\n\t\t\tcontinue\n\t\t}\n\t\tsf := t.Elem().Field(0) // oneof implementer is a struct with a single field\n\t\ttags := strings.Split(sf.Tag.Get(\"protobuf\"), \",\")\n\t\ttag, err := strconv.Atoi(tags[1])\n\t\tif err != nil {\n\t\t\tpanic(\"tag is not an integer\")\n\t\t}\n\t\twt := wiretype(tags[0])\n\t\tsizer, marshaler := typeMarshaler(sf.Type, tags, false, true) // oneof should not omit any zero value\n\t\tfi.oneofElems[t.Elem()] = &marshalElemInfo{\n\t\t\twiretag:   uint64(tag)<<3 | wt,\n\t\t\ttagsize:   SizeVarint(uint64(tag) << 3),\n\t\t\tsizer:     sizer,\n\t\t\tmarshaler: marshaler,\n\t\t}\n\t}\n}\n\n// wiretype returns the wire encoding of the type.\nfunc wiretype(encoding string) uint64 {\n\tswitch encoding {\n\tcase \"fixed32\":\n\t\treturn WireFixed32\n\tcase \"fixed64\":\n\t\treturn WireFixed64\n\tcase \"varint\", \"zigzag32\", \"zigzag64\":\n\t\treturn WireVarint\n\tcase \"bytes\":\n\t\treturn WireBytes\n\tcase \"group\":\n\t\treturn WireStartGroup\n\t}\n\tpanic(\"unknown wire type \" + encoding)\n}\n\n// setTag fills up the tag (in wire format) and its size in the info of a field.\nfunc (fi *marshalFieldInfo) setTag(f *reflect.StructField, tag int, wt uint64) {\n\tfi.field = toField(f)\n\tfi.wiretag = uint64(tag)<<3 | wt\n\tfi.tagsize = SizeVarint(uint64(tag) << 3)\n}\n\n// setMarshaler fills up the sizer and marshaler in the info of a field.\nfunc (fi *marshalFieldInfo) setMarshaler(f *reflect.StructField, tags []string) {\n\tswitch f.Type.Kind() {\n\tcase reflect.Map:\n\t\t// map field\n\t\tfi.isPointer = true\n\t\tfi.sizer, fi.marshaler = makeMapMarshaler(f)\n\t\treturn\n\tcase reflect.Ptr, reflect.Slice:\n\t\tfi.isPointer = true\n\t}\n\tfi.sizer, fi.marshaler = typeMarshaler(f.Type, tags, true, false)\n}\n\n// typeMarshaler returns the sizer and marshaler of a given field.\n// t is the type of the field.\n// tags is the generated \"protobuf\" tag of the field.\n// If nozero is true, zero value is not marshaled to the wire.\n// If oneof is true, it is a oneof field.\nfunc typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, marshaler) {\n\tencoding := tags[0]\n\n\tpointer := false\n\tslice := false\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tslice = true\n\t\tt = t.Elem()\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tpointer = true\n\t\tt = t.Elem()\n\t}\n\n\tpacked := false\n\tproto3 := false\n\tvalidateUTF8 := true\n\tfor i := 2; i < len(tags); i++ {\n\t\tif tags[i] == \"packed\" {\n\t\t\tpacked = true\n\t\t}\n\t\tif tags[i] == \"proto3\" {\n\t\t\tproto3 = true\n\t\t}\n\t}\n\tvalidateUTF8 = validateUTF8 && proto3\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\tif pointer {\n\t\t\treturn sizeBoolPtr, appendBoolPtr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeBoolPackedSlice, appendBoolPackedSlice\n\t\t\t}\n\t\t\treturn sizeBoolSlice, appendBoolSlice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeBoolValueNoZero, appendBoolValueNoZero\n\t\t}\n\t\treturn sizeBoolValue, appendBoolValue\n\tcase reflect.Uint32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixed32Ptr, appendFixed32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixed32PackedSlice, appendFixed32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixed32Slice, appendFixed32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixed32ValueNoZero, appendFixed32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixed32Value, appendFixed32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarint32Ptr, appendVarint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarint32PackedSlice, appendVarint32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarint32Slice, appendVarint32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarint32ValueNoZero, appendVarint32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarint32Value, appendVarint32Value\n\t\t}\n\tcase reflect.Int32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixedS32Ptr, appendFixedS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixedS32PackedSlice, appendFixedS32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixedS32Slice, appendFixedS32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixedS32ValueNoZero, appendFixedS32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixedS32Value, appendFixedS32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarintS32Ptr, appendVarintS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarintS32PackedSlice, appendVarintS32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarintS32Slice, appendVarintS32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarintS32ValueNoZero, appendVarintS32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarintS32Value, appendVarintS32Value\n\t\tcase \"zigzag32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeZigzag32Ptr, appendZigzag32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeZigzag32PackedSlice, appendZigzag32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeZigzag32Slice, appendZigzag32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeZigzag32ValueNoZero, appendZigzag32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeZigzag32Value, appendZigzag32Value\n\t\t}\n\tcase reflect.Uint64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixed64Ptr, appendFixed64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixed64PackedSlice, appendFixed64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixed64Slice, appendFixed64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixed64ValueNoZero, appendFixed64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixed64Value, appendFixed64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarint64Ptr, appendVarint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarint64PackedSlice, appendVarint64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarint64Slice, appendVarint64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarint64ValueNoZero, appendVarint64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarint64Value, appendVarint64Value\n\t\t}\n\tcase reflect.Int64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixedS64Ptr, appendFixedS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixedS64PackedSlice, appendFixedS64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixedS64Slice, appendFixedS64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixedS64ValueNoZero, appendFixedS64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixedS64Value, appendFixedS64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarintS64Ptr, appendVarintS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarintS64PackedSlice, appendVarintS64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarintS64Slice, appendVarintS64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarintS64ValueNoZero, appendVarintS64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarintS64Value, appendVarintS64Value\n\t\tcase \"zigzag64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeZigzag64Ptr, appendZigzag64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeZigzag64PackedSlice, appendZigzag64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeZigzag64Slice, appendZigzag64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeZigzag64ValueNoZero, appendZigzag64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeZigzag64Value, appendZigzag64Value\n\t\t}\n\tcase reflect.Float32:\n\t\tif pointer {\n\t\t\treturn sizeFloat32Ptr, appendFloat32Ptr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeFloat32PackedSlice, appendFloat32PackedSlice\n\t\t\t}\n\t\t\treturn sizeFloat32Slice, appendFloat32Slice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeFloat32ValueNoZero, appendFloat32ValueNoZero\n\t\t}\n\t\treturn sizeFloat32Value, appendFloat32Value\n\tcase reflect.Float64:\n\t\tif pointer {\n\t\t\treturn sizeFloat64Ptr, appendFloat64Ptr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeFloat64PackedSlice, appendFloat64PackedSlice\n\t\t\t}\n\t\t\treturn sizeFloat64Slice, appendFloat64Slice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeFloat64ValueNoZero, appendFloat64ValueNoZero\n\t\t}\n\t\treturn sizeFloat64Value, appendFloat64Value\n\tcase reflect.String:\n\t\tif validateUTF8 {\n\t\t\tif pointer {\n\t\t\t\treturn sizeStringPtr, appendUTF8StringPtr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn sizeStringSlice, appendUTF8StringSlice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeStringValueNoZero, appendUTF8StringValueNoZero\n\t\t\t}\n\t\t\treturn sizeStringValue, appendUTF8StringValue\n\t\t}\n\t\tif pointer {\n\t\t\treturn sizeStringPtr, appendStringPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn sizeStringSlice, appendStringSlice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeStringValueNoZero, appendStringValueNoZero\n\t\t}\n\t\treturn sizeStringValue, appendStringValue\n\tcase reflect.Slice:\n\t\tif slice {\n\t\t\treturn sizeBytesSlice, appendBytesSlice\n\t\t}\n\t\tif oneof {\n\t\t\t// Oneof bytes field may also have \"proto3\" tag.\n\t\t\t// We want to marshal it as a oneof field. Do this\n\t\t\t// check before the proto3 check.\n\t\t\treturn sizeBytesOneof, appendBytesOneof\n\t\t}\n\t\tif proto3 {\n\t\t\treturn sizeBytes3, appendBytes3\n\t\t}\n\t\treturn sizeBytes, appendBytes\n\tcase reflect.Struct:\n\t\tswitch encoding {\n\t\tcase \"group\":\n\t\t\tif slice {\n\t\t\t\treturn makeGroupSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeGroupMarshaler(getMarshalInfo(t))\n\t\tcase \"bytes\":\n\t\t\tif slice {\n\t\t\t\treturn makeMessageSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeMessageMarshaler(getMarshalInfo(t))\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"unknown or mismatched type: type: %v, wire type: %v\", t, encoding))\n}\n\n// Below are functions to size/marshal a specific type of a field.\n// They are stored in the field's info, and called by function pointers.\n// They have type sizer or marshaler.\n\nfunc sizeFixed32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFixed32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixed32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixed32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFixed32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFixedS32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFixedS32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFloat32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFloat32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFloat32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toFloat32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFloat32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFloat32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFixed64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFixed64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixed64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixed64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFixed64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeFixedS64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFixedS64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeFloat64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFloat64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFloat64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toFloat64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFloat64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFloat64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeVarint32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarint32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarint32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarint32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarint32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarintS32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarintS32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarintS32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarint64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\treturn SizeVarint(v) + tagsize\n}\nfunc sizeVarint64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(v) + tagsize\n}\nfunc sizeVarint64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(*p) + tagsize\n}\nfunc sizeVarint64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarint64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v)\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarintS64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarintS64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarintS64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeZigzag32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeZigzag32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeZigzag64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeZigzag64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63)))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeBoolValue(_ pointer, tagsize int) int {\n\treturn 1 + tagsize\n}\nfunc sizeBoolValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toBool()\n\tif !v {\n\t\treturn 0\n\t}\n\treturn 1 + tagsize\n}\nfunc sizeBoolPtr(ptr pointer, tagsize int) int {\n\tp := *ptr.toBoolPtr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 1 + tagsize\n}\nfunc sizeBoolSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBoolSlice()\n\treturn (1 + tagsize) * len(s)\n}\nfunc sizeBoolPackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBoolSlice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn len(s) + SizeVarint(uint64(len(s))) + tagsize\n}\nfunc sizeStringValue(ptr pointer, tagsize int) int {\n\tv := *ptr.toString()\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringPtr(ptr pointer, tagsize int) int {\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toStringSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += len(v) + SizeVarint(uint64(len(v))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeBytes(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\tif v == nil {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytes3(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytesOneof(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytesSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBytesSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += len(v) + SizeVarint(uint64(len(v))) + tagsize\n\t}\n\treturn n\n}\n\n// appendFixed32 appends an encoded fixed32 to b.\nfunc appendFixed32(b []byte, v uint32) []byte {\n\tb = append(b,\n\t\tbyte(v),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24))\n\treturn b\n}\n\n// appendFixed64 appends an encoded fixed64 to b.\nfunc appendFixed64(b []byte, v uint64) []byte {\n\tb = append(b,\n\t\tbyte(v),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24),\n\t\tbyte(v>>32),\n\t\tbyte(v>>40),\n\t\tbyte(v>>48),\n\t\tbyte(v>>56))\n\treturn b\n}\n\n// appendVarint appends an encoded varint to b.\nfunc appendVarint(b []byte, v uint64) []byte {\n\t// TODO: make 1-byte (maybe 2-byte) case inline-able, once we\n\t// have non-leaf inliner.\n\tswitch {\n\tcase v < 1<<7:\n\t\tb = append(b, byte(v))\n\tcase v < 1<<14:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte(v>>7))\n\tcase v < 1<<21:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte(v>>14))\n\tcase v < 1<<28:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte(v>>21))\n\tcase v < 1<<35:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte(v>>28))\n\tcase v < 1<<42:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte(v>>35))\n\tcase v < 1<<49:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte(v>>42))\n\tcase v < 1<<56:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte(v>>49))\n\tcase v < 1<<63:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte(v>>56))\n\tdefault:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte((v>>56)&0x7f|0x80),\n\t\t\t1)\n\t}\n\treturn b\n}\n\nfunc appendFixed32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFixed32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFixed32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, *p)\n\treturn b, nil\n}\nfunc appendFixed32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixed32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixedS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(v))\n\treturn b, nil\n}\nfunc appendFixedS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(v))\n\treturn b, nil\n}\nfunc appendFixedS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(*p))\n\treturn b, nil\n}\nfunc appendFixedS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixedS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFloat32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFloat32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toFloat32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, math.Float32bits(*p))\n\treturn b, nil\n}\nfunc appendFloat32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixed64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFixed64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFixed64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, *p)\n\treturn b, nil\n}\nfunc appendFixed64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixed64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixedS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(v))\n\treturn b, nil\n}\nfunc appendFixedS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(v))\n\treturn b, nil\n}\nfunc appendFixedS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendFixedS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixedS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFloat64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFloat64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toFloat64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, math.Float64bits(*p))\n\treturn b, nil\n}\nfunc appendFloat64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarint32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarint32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarint32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarintS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, v)\n\treturn b, nil\n}\nfunc appendVarint64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, v)\n\treturn b, nil\n}\nfunc appendVarint64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, *p)\n\treturn b, nil\n}\nfunc appendVarint64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendVarint64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v)\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendVarintS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarintS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tv := *p\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tv := *p\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63)))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\t}\n\treturn b, nil\n}\nfunc appendBoolValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBool()\n\tb = appendVarint(b, wiretag)\n\tif v {\n\t\tb = append(b, 1)\n\t} else {\n\t\tb = append(b, 0)\n\t}\n\treturn b, nil\n}\nfunc appendBoolValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBool()\n\tif !v {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = append(b, 1)\n\treturn b, nil\n}\n\nfunc appendBoolPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toBoolPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tif *p {\n\t\tb = append(b, 1)\n\t} else {\n\t\tb = append(b, 0)\n\t}\n\treturn b, nil\n}\nfunc appendBoolSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBoolSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tif v {\n\t\t\tb = append(b, 1)\n\t\t} else {\n\t\t\tb = append(b, 0)\n\t\t}\n\t}\n\treturn b, nil\n}\nfunc appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBoolSlice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(len(s)))\n\tfor _, v := range s {\n\t\tif v {\n\t\t\tb = append(b, 1)\n\t\t} else {\n\t\t\tb = append(b, 0)\n\t\t}\n\t}\n\treturn b, nil\n}\nfunc appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toString()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tv := *p\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toStringSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tv := *ptr.toString()\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn b, nil\n\t}\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tv := *p\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\ts := *ptr.toStringSlice()\n\tfor _, v := range s {\n\t\tif !utf8.ValidString(v) {\n\t\t\tinvalidUTF8 = true\n\t\t}\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tif v == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytes3(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytesOneof(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytesSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBytesSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\treturn b, nil\n}\n\n// makeGroupMarshaler returns the sizer and marshaler for a group.\n// u is the marshal info of the underlying message.\nfunc makeGroupMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn u.size(p) + 2*tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tvar err error\n\t\t\tb = appendVarint(b, wiretag) // start group\n\t\t\tb, err = u.marshal(b, p, deterministic)\n\t\t\tb = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group\n\t\t\treturn b, err\n\t\t}\n}\n\n// makeGroupSliceMarshaler returns the sizer and marshaler for a group slice.\n// u is the marshal info of the underlying message.\nfunc makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tn := 0\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tn += u.size(v) + 2*tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tvar err error\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\treturn b, errRepeatedHasNil\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag) // start group\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\t\t\t\tb = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeMessageMarshaler returns the sizer and marshaler for a message field.\n// u is the marshal info of the message.\nfunc makeMessageMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := u.size(p)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tsiz := u.cachedsize(p)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\treturn u.marshal(b, p, deterministic)\n\t\t}\n}\n\n// makeMessageSliceMarshaler returns the sizer and marshaler for a message slice.\n// u is the marshal info of the message.\nfunc makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tn := 0\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tvar err error\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\treturn b, errRepeatedHasNil\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tsiz := u.cachedsize(v)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeMapMarshaler returns the sizer and marshaler for a map field.\n// f is the pointer to the reflect data structure of the field.\nfunc makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) {\n\t// figure out key and value type\n\tt := f.Type\n\tkeyType := t.Key()\n\tvalType := t.Elem()\n\tkeyTags := strings.Split(f.Tag.Get(\"protobuf_key\"), \",\")\n\tvalTags := strings.Split(f.Tag.Get(\"protobuf_val\"), \",\")\n\tkeySizer, keyMarshaler := typeMarshaler(keyType, keyTags, false, false) // don't omit zero value in map\n\tvalSizer, valMarshaler := typeMarshaler(valType, valTags, false, false) // don't omit zero value in map\n\tkeyWireTag := 1<<3 | wiretype(keyTags[0])\n\tvalWireTag := 2<<3 | wiretype(valTags[0])\n\n\t// We create an interface to get the addresses of the map key and value.\n\t// If value is pointer-typed, the interface is a direct interface, the\n\t// idata itself is the value. Otherwise, the idata is the pointer to the\n\t// value.\n\t// Key cannot be pointer-typed.\n\tvalIsPtr := valType.Kind() == reflect.Ptr\n\n\t// If value is a message with nested maps, calling\n\t// valSizer in marshal may be quadratic. We should use\n\t// cached version in marshal (but not in size).\n\t// If value is not message type, we don't have size cache,\n\t// but it cannot be nested either. Just use valSizer.\n\tvalCachedSizer := valSizer\n\tif valIsPtr && valType.Elem().Kind() == reflect.Struct {\n\t\tu := getMarshalInfo(valType.Elem())\n\t\tvalCachedSizer = func(ptr pointer, tagsize int) int {\n\t\t\t// Same as message sizer, but use cache.\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := u.cachedsize(p)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t}\n\t}\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tm := ptr.asPointerTo(t).Elem() // the map\n\t\t\tn := 0\n\t\t\tfor _, k := range m.MapKeys() {\n\t\t\t\tki := k.Interface()\n\t\t\t\tvi := m.MapIndex(k).Interface()\n\t\t\t\tkaddr := toAddrPointer(&ki, false, false)      // pointer to key\n\t\t\t\tvaddr := toAddrPointer(&vi, valIsPtr, false)   // pointer to value\n\t\t\t\tsiz := keySizer(kaddr, 1) + valSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, tag uint64, deterministic bool) ([]byte, error) {\n\t\t\tm := ptr.asPointerTo(t).Elem() // the map\n\t\t\tvar err error\n\t\t\tkeys := m.MapKeys()\n\t\t\tif len(keys) > 1 && deterministic {\n\t\t\t\tsort.Sort(mapKeys(keys))\n\t\t\t}\n\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, k := range keys {\n\t\t\t\tki := k.Interface()\n\t\t\t\tvi := m.MapIndex(k).Interface()\n\t\t\t\tkaddr := toAddrPointer(&ki, false, false)    // pointer to key\n\t\t\t\tvaddr := toAddrPointer(&vi, valIsPtr, false) // pointer to value\n\t\t\t\tb = appendVarint(b, tag)\n\t\t\t\tsiz := keySizer(kaddr, 1) + valCachedSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = keyMarshaler(b, kaddr, keyWireTag, deterministic)\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t\tb, err = valMarshaler(b, vaddr, valWireTag, deterministic)\n\t\t\t\tif err != ErrNil && !nerr.Merge(err) { // allow nil value in map\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeOneOfMarshaler returns the sizer and marshaler for a oneof field.\n// fi is the marshal info of the field.\n// f is the pointer to the reflect data structure of the field.\nfunc makeOneOfMarshaler(fi *marshalFieldInfo, f *reflect.StructField) (sizer, marshaler) {\n\t// Oneof field is an interface. We need to get the actual data type on the fly.\n\tt := f.Type\n\treturn func(ptr pointer, _ int) int {\n\t\t\tp := ptr.getInterfacePointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tv := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct\n\t\t\ttelem := v.Type()\n\t\t\te := fi.oneofElems[telem]\n\t\t\treturn e.sizer(p, e.tagsize)\n\t\t},\n\t\tfunc(b []byte, ptr pointer, _ uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getInterfacePointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tv := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct\n\t\t\ttelem := v.Type()\n\t\t\tif telem.Field(0).Type.Kind() == reflect.Ptr && p.getPointer().isNil() {\n\t\t\t\treturn b, errOneofHasNil\n\t\t\t}\n\t\t\te := fi.oneofElems[telem]\n\t\t\treturn e.marshaler(b, p, e.wiretag, deterministic)\n\t\t}\n}\n\n// sizeExtensions computes the size of encoded data for a XXX_InternalExtensions field.\nfunc (u *marshalInfo) sizeExtensions(ext *XXX_InternalExtensions) int {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmu.Lock()\n\n\tn := 0\n\tfor _, e := range m {\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tn += len(e.enc)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\tn += ei.sizer(p, ei.tagsize)\n\t}\n\tmu.Unlock()\n\treturn n\n}\n\n// appendExtensions marshals a XXX_InternalExtensions field to the end of byte slice b.\nfunc (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\n\tvar err error\n\tvar nerr nonFatal\n\n\t// Fast-path for common cases: zero or one extensions.\n\t// Don't bother sorting the keys.\n\tif len(m) <= 1 {\n\t\tfor _, e := range m {\n\t\t\tif e.value == nil || e.desc == nil {\n\t\t\t\t// Extension is only in its encoded form.\n\t\t\t\tb = append(b, e.enc...)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We don't skip extensions that have an encoded form set,\n\t\t\t// because the extension value may have been mutated after\n\t\t\t// the last time this function was called.\n\n\t\t\tei := u.getExtElemInfo(e.desc)\n\t\t\tv := e.value\n\t\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\t\tif !nerr.Merge(err) {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\treturn b, nerr.E\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\t// Not sure this is required, but the old code does it.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tfor _, k := range keys {\n\t\te := m[int32(k)]\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tb = append(b, e.enc...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// message set format is:\n//   message MessageSet {\n//     repeated group Item = 1 {\n//       required int32 type_id = 2;\n//       required string message = 3;\n//     };\n//   }\n\n// sizeMessageSet computes the size of encoded data for a XXX_InternalExtensions field\n// in message set format (above).\nfunc (u *marshalInfo) sizeMessageSet(ext *XXX_InternalExtensions) int {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmu.Lock()\n\n\tn := 0\n\tfor id, e := range m {\n\t\tn += 2                          // start group, end group. tag = 1 (size=1)\n\t\tn += SizeVarint(uint64(id)) + 1 // type_id, tag = 2 (size=1)\n\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\tsiz := len(msgWithLen)\n\t\t\tn += siz + 1 // message, tag = 3 (size=1)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\tn += ei.sizer(p, 1) // message, tag = 3 (size=1)\n\t}\n\tmu.Unlock()\n\treturn n\n}\n\n// appendMessageSet marshals a XXX_InternalExtensions field in message set format (above)\n// to the end of byte slice b.\nfunc (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\n\tvar err error\n\tvar nerr nonFatal\n\n\t// Fast-path for common cases: zero or one extensions.\n\t// Don't bother sorting the keys.\n\tif len(m) <= 1 {\n\t\tfor id, e := range m {\n\t\t\tb = append(b, 1<<3|WireStartGroup)\n\t\t\tb = append(b, 2<<3|WireVarint)\n\t\t\tb = appendVarint(b, uint64(id))\n\n\t\t\tif e.value == nil || e.desc == nil {\n\t\t\t\t// Extension is only in its encoded form.\n\t\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\t\tb = append(b, 3<<3|WireBytes)\n\t\t\t\tb = append(b, msgWithLen...)\n\t\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We don't skip extensions that have an encoded form set,\n\t\t\t// because the extension value may have been mutated after\n\t\t\t// the last time this function was called.\n\n\t\t\tei := u.getExtElemInfo(e.desc)\n\t\t\tv := e.value\n\t\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\t\tb, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic)\n\t\t\tif !nerr.Merge(err) {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t}\n\t\treturn b, nerr.E\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tfor _, id := range keys {\n\t\te := m[int32(id)]\n\t\tb = append(b, 1<<3|WireStartGroup)\n\t\tb = append(b, 2<<3|WireVarint)\n\t\tb = appendVarint(b, uint64(id))\n\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\tb = append(b, 3<<3|WireBytes)\n\t\t\tb = append(b, msgWithLen...)\n\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\tb, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic)\n\t\tb = append(b, 1<<3|WireEndGroup)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// sizeV1Extensions computes the size of encoded data for a V1-API extension field.\nfunc (u *marshalInfo) sizeV1Extensions(m map[int32]Extension) int {\n\tif m == nil {\n\t\treturn 0\n\t}\n\n\tn := 0\n\tfor _, e := range m {\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tn += len(e.enc)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\tn += ei.sizer(p, ei.tagsize)\n\t}\n\treturn n\n}\n\n// appendV1Extensions marshals a V1-API extension field to the end of byte slice b.\nfunc (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, deterministic bool) ([]byte, error) {\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tvar err error\n\tvar nerr nonFatal\n\tfor _, k := range keys {\n\t\te := m[int32(k)]\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tb = append(b, e.enc...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr, ei.deref)\n\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// newMarshaler is the interface representing objects that can marshal themselves.\n//\n// This exists to support protoc-gen-go generated messages.\n// The proto package will stop type-asserting to this interface in the future.\n//\n// DO NOT DEPEND ON THIS.\ntype newMarshaler interface {\n\tXXX_Size() int\n\tXXX_Marshal(b []byte, deterministic bool) ([]byte, error)\n}\n\n// Size returns the encoded size of a protocol buffer message.\n// This is the main entry point.\nfunc Size(pb Message) int {\n\tif m, ok := pb.(newMarshaler); ok {\n\t\treturn m.XXX_Size()\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\tb, _ := m.Marshal()\n\t\treturn len(b)\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn 0\n\t}\n\tvar info InternalMessageInfo\n\treturn info.Size(pb)\n}\n\n// Marshal takes a protocol buffer message\n// and encodes it into the wire format, returning the data.\n// This is the main entry point.\nfunc Marshal(pb Message) ([]byte, error) {\n\tif m, ok := pb.(newMarshaler); ok {\n\t\tsiz := m.XXX_Size()\n\t\tb := make([]byte, 0, siz)\n\t\treturn m.XXX_Marshal(b, false)\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\treturn m.Marshal()\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn nil, ErrNil\n\t}\n\tvar info InternalMessageInfo\n\tsiz := info.Size(pb)\n\tb := make([]byte, 0, siz)\n\treturn info.Marshal(b, pb, false)\n}\n\n// Marshal takes a protocol buffer message\n// and encodes it into the wire format, writing the result to the\n// Buffer.\n// This is an alternative entry point. It is not necessary to use\n// a Buffer for most applications.\nfunc (p *Buffer) Marshal(pb Message) error {\n\tvar err error\n\tif m, ok := pb.(newMarshaler); ok {\n\t\tsiz := m.XXX_Size()\n\t\tp.grow(siz) // make sure buf has enough capacity\n\t\tp.buf, err = m.XXX_Marshal(p.buf, p.deterministic)\n\t\treturn err\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\tb, err := m.Marshal()\n\t\tp.buf = append(p.buf, b...)\n\t\treturn err\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn ErrNil\n\t}\n\tvar info InternalMessageInfo\n\tsiz := info.Size(pb)\n\tp.grow(siz) // make sure buf has enough capacity\n\tp.buf, err = info.Marshal(p.buf, pb, p.deterministic)\n\treturn err\n}\n\n// grow grows the buffer's capacity, if necessary, to guarantee space for\n// another n bytes. After grow(n), at least n bytes can be written to the\n// buffer without another allocation.\nfunc (p *Buffer) grow(n int) {\n\tneed := len(p.buf) + n\n\tif need <= cap(p.buf) {\n\t\treturn\n\t}\n\tnewCap := len(p.buf) * 2\n\tif newCap < need {\n\t\tnewCap = need\n\t}\n\tp.buf = append(make([]byte, 0, newCap), p.buf...)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/table_merge.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Merge merges the src message into dst.\n// This assumes that dst and src of the same type and are non-nil.\nfunc (a *InternalMessageInfo) Merge(dst, src Message) {\n\tmi := atomicLoadMergeInfo(&a.merge)\n\tif mi == nil {\n\t\tmi = getMergeInfo(reflect.TypeOf(dst).Elem())\n\t\tatomicStoreMergeInfo(&a.merge, mi)\n\t}\n\tmi.merge(toPointer(&dst), toPointer(&src))\n}\n\ntype mergeInfo struct {\n\ttyp reflect.Type\n\n\tinitialized int32 // 0: only typ is valid, 1: everything is valid\n\tlock        sync.Mutex\n\n\tfields       []mergeFieldInfo\n\tunrecognized field // Offset of XXX_unrecognized\n}\n\ntype mergeFieldInfo struct {\n\tfield field // Offset of field, guaranteed to be valid\n\n\t// isPointer reports whether the value in the field is a pointer.\n\t// This is true for the following situations:\n\t//\t* Pointer to struct\n\t//\t* Pointer to basic type (proto2 only)\n\t//\t* Slice (first value in slice header is a pointer)\n\t//\t* String (first value in string header is a pointer)\n\tisPointer bool\n\n\t// basicWidth reports the width of the field assuming that it is directly\n\t// embedded in the struct (as is the case for basic types in proto3).\n\t// The possible values are:\n\t// \t0: invalid\n\t//\t1: bool\n\t//\t4: int32, uint32, float32\n\t//\t8: int64, uint64, float64\n\tbasicWidth int\n\n\t// Where dst and src are pointers to the types being merged.\n\tmerge func(dst, src pointer)\n}\n\nvar (\n\tmergeInfoMap  = map[reflect.Type]*mergeInfo{}\n\tmergeInfoLock sync.Mutex\n)\n\nfunc getMergeInfo(t reflect.Type) *mergeInfo {\n\tmergeInfoLock.Lock()\n\tdefer mergeInfoLock.Unlock()\n\tmi := mergeInfoMap[t]\n\tif mi == nil {\n\t\tmi = &mergeInfo{typ: t}\n\t\tmergeInfoMap[t] = mi\n\t}\n\treturn mi\n}\n\n// merge merges src into dst assuming they are both of type *mi.typ.\nfunc (mi *mergeInfo) merge(dst, src pointer) {\n\tif dst.isNil() {\n\t\tpanic(\"proto: nil destination\")\n\t}\n\tif src.isNil() {\n\t\treturn // Nothing to do.\n\t}\n\n\tif atomic.LoadInt32(&mi.initialized) == 0 {\n\t\tmi.computeMergeInfo()\n\t}\n\n\tfor _, fi := range mi.fields {\n\t\tsfp := src.offset(fi.field)\n\n\t\t// As an optimization, we can avoid the merge function call cost\n\t\t// if we know for sure that the source will have no effect\n\t\t// by checking if it is the zero value.\n\t\tif unsafeAllowed {\n\t\t\tif fi.isPointer && sfp.getPointer().isNil() { // Could be slice or string\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif fi.basicWidth > 0 {\n\t\t\t\tswitch {\n\t\t\t\tcase fi.basicWidth == 1 && !*sfp.toBool():\n\t\t\t\t\tcontinue\n\t\t\t\tcase fi.basicWidth == 4 && *sfp.toUint32() == 0:\n\t\t\t\t\tcontinue\n\t\t\t\tcase fi.basicWidth == 8 && *sfp.toUint64() == 0:\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdfp := dst.offset(fi.field)\n\t\tfi.merge(dfp, sfp)\n\t}\n\n\t// TODO: Make this faster?\n\tout := dst.asPointerTo(mi.typ).Elem()\n\tin := src.asPointerTo(mi.typ).Elem()\n\tif emIn, err := extendable(in.Addr().Interface()); err == nil {\n\t\temOut, _ := extendable(out.Addr().Interface())\n\t\tmIn, muIn := emIn.extensionsRead()\n\t\tif mIn != nil {\n\t\t\tmOut := emOut.extensionsWrite()\n\t\t\tmuIn.Lock()\n\t\t\tmergeExtension(mOut, mIn)\n\t\t\tmuIn.Unlock()\n\t\t}\n\t}\n\n\tif mi.unrecognized.IsValid() {\n\t\tif b := *src.offset(mi.unrecognized).toBytes(); len(b) > 0 {\n\t\t\t*dst.offset(mi.unrecognized).toBytes() = append([]byte(nil), b...)\n\t\t}\n\t}\n}\n\nfunc (mi *mergeInfo) computeMergeInfo() {\n\tmi.lock.Lock()\n\tdefer mi.lock.Unlock()\n\tif mi.initialized != 0 {\n\t\treturn\n\t}\n\tt := mi.typ\n\tn := t.NumField()\n\n\tprops := GetProperties(t)\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tmfi := mergeFieldInfo{field: toField(&f)}\n\t\ttf := f.Type\n\n\t\t// As an optimization, we can avoid the merge function call cost\n\t\t// if we know for sure that the source will have no effect\n\t\t// by checking if it is the zero value.\n\t\tif unsafeAllowed {\n\t\t\tswitch tf.Kind() {\n\t\t\tcase reflect.Ptr, reflect.Slice, reflect.String:\n\t\t\t\t// As a special case, we assume slices and strings are pointers\n\t\t\t\t// since we know that the first field in the SliceSlice or\n\t\t\t\t// StringHeader is a data pointer.\n\t\t\t\tmfi.isPointer = true\n\t\t\tcase reflect.Bool:\n\t\t\t\tmfi.basicWidth = 1\n\t\t\tcase reflect.Int32, reflect.Uint32, reflect.Float32:\n\t\t\t\tmfi.basicWidth = 4\n\t\t\tcase reflect.Int64, reflect.Uint64, reflect.Float64:\n\t\t\t\tmfi.basicWidth = 8\n\t\t\t}\n\t\t}\n\n\t\t// Unwrap tf to get at its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(\"both pointer and slice for basic type in \" + tf.Name())\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Int32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// NOTE: toInt32Slice is not defined (see pointer_reflect.go).\n\t\t\t\t\t/*\n\t\t\t\t\t\tsfsp := src.toInt32Slice()\n\t\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\t\tdfsp := dst.toInt32Slice()\n\t\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t\t*dfsp = []int64{}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tsfs := src.getInt32Slice()\n\t\t\t\t\tif sfs != nil {\n\t\t\t\t\t\tdfs := dst.getInt32Slice()\n\t\t\t\t\t\tdfs = append(dfs, sfs...)\n\t\t\t\t\t\tif dfs == nil {\n\t\t\t\t\t\t\tdfs = []int32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdst.setInt32Slice(dfs)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// NOTE: toInt32Ptr is not defined (see pointer_reflect.go).\n\t\t\t\t\t/*\n\t\t\t\t\t\tsfpp := src.toInt32Ptr()\n\t\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\t\tdfpp := dst.toInt32Ptr()\n\t\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t\t*dfpp = Int32(**sfpp)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tsfp := src.getInt32Ptr()\n\t\t\t\t\tif sfp != nil {\n\t\t\t\t\t\tdfp := dst.getInt32Ptr()\n\t\t\t\t\t\tif dfp == nil {\n\t\t\t\t\t\t\tdst.setInt32Ptr(*sfp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t*dfp = *sfp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toInt32(); v != 0 {\n\t\t\t\t\t\t*dst.toInt32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toInt64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toInt64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []int64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toInt64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toInt64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Int64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toInt64(); v != 0 {\n\t\t\t\t\t\t*dst.toInt64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Uint32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toUint32Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toUint32Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []uint32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toUint32Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toUint32Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Uint32(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toUint32(); v != 0 {\n\t\t\t\t\t\t*dst.toUint32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Uint64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toUint64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toUint64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []uint64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toUint64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toUint64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Uint64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toUint64(); v != 0 {\n\t\t\t\t\t\t*dst.toUint64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Float32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toFloat32Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toFloat32Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []float32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toFloat32Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toFloat32Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Float32(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toFloat32(); v != 0 {\n\t\t\t\t\t\t*dst.toFloat32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Float64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toFloat64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toFloat64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []float64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toFloat64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toFloat64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Float64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toFloat64(); v != 0 {\n\t\t\t\t\t\t*dst.toFloat64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Bool:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toBoolSlice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toBoolSlice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []bool{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toBoolPtr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toBoolPtr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Bool(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toBool(); v {\n\t\t\t\t\t\t*dst.toBool() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.String:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toStringSlice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toStringSlice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []string{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toStringPtr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toStringPtr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = String(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toString(); v != \"\" {\n\t\t\t\t\t\t*dst.toString() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Slice:\n\t\t\tisProto3 := props.Prop[i].proto3\n\t\t\tswitch {\n\t\t\tcase isPointer:\n\t\t\t\tpanic(\"bad pointer in byte slice case in \" + tf.Name())\n\t\t\tcase tf.Elem().Kind() != reflect.Uint8:\n\t\t\t\tpanic(\"bad element kind in byte slice case in \" + tf.Name())\n\t\t\tcase isSlice: // E.g., [][]byte\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsbsp := src.toBytesSlice()\n\t\t\t\t\tif *sbsp != nil {\n\t\t\t\t\t\tdbsp := dst.toBytesSlice()\n\t\t\t\t\t\tfor _, sb := range *sbsp {\n\t\t\t\t\t\t\tif sb == nil {\n\t\t\t\t\t\t\t\t*dbsp = append(*dbsp, nil)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t*dbsp = append(*dbsp, append([]byte{}, sb...))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif *dbsp == nil {\n\t\t\t\t\t\t\t*dbsp = [][]byte{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., []byte\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsbp := src.toBytes()\n\t\t\t\t\tif *sbp != nil {\n\t\t\t\t\t\tdbp := dst.toBytes()\n\t\t\t\t\t\tif !isProto3 || len(*sbp) > 0 {\n\t\t\t\t\t\t\t*dbp = append([]byte{}, *sbp...)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"message field %s without pointer\", tf))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tmi := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsps := src.getPointerSlice()\n\t\t\t\t\tif sps != nil {\n\t\t\t\t\t\tdps := dst.getPointerSlice()\n\t\t\t\t\t\tfor _, sp := range sps {\n\t\t\t\t\t\t\tvar dp pointer\n\t\t\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\t\t\tdp = valToPointer(reflect.New(tf))\n\t\t\t\t\t\t\t\tmi.merge(dp, sp)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdps = append(dps, dp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif dps == nil {\n\t\t\t\t\t\t\tdps = []pointer{}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdst.setPointerSlice(dps)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tmi := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsp := src.getPointer()\n\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\tdp := dst.getPointer()\n\t\t\t\t\t\tif dp.isNil() {\n\t\t\t\t\t\t\tdp = valToPointer(reflect.New(tf))\n\t\t\t\t\t\t\tdst.setPointer(dp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmi.merge(dp, sp)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(\"bad pointer or slice in map case in \" + tf.Name())\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsm := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif sm.Len() == 0 {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tdm := dst.asPointerTo(tf).Elem()\n\t\t\t\t\tif dm.IsNil() {\n\t\t\t\t\t\tdm.Set(reflect.MakeMap(tf))\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch tf.Elem().Kind() {\n\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tval = reflect.ValueOf(Clone(val.Interface().(Message)))\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase reflect.Slice: // E.g. Bytes type (e.g., []byte)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tval = reflect.ValueOf(append([]byte{}, val.Bytes()...))\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault: // Basic type (e.g., string)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(\"bad pointer or slice in interface case in \" + tf.Name())\n\t\t\tdefault: // E.g., interface{}\n\t\t\t\t// TODO: Make this faster?\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsu := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif !su.IsNil() {\n\t\t\t\t\t\tdu := dst.asPointerTo(tf).Elem()\n\t\t\t\t\t\ttyp := su.Elem().Type()\n\t\t\t\t\t\tif du.IsNil() || du.Elem().Type() != typ {\n\t\t\t\t\t\t\tdu.Set(reflect.New(typ.Elem())) // Initialize interface if empty\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsv := su.Elem().Elem().Field(0)\n\t\t\t\t\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdv := du.Elem().Elem().Field(0)\n\t\t\t\t\t\tif dv.Kind() == reflect.Ptr && dv.IsNil() {\n\t\t\t\t\t\t\tdv.Set(reflect.New(sv.Type().Elem())) // Initialize proto message if empty\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch sv.Type().Kind() {\n\t\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\t\tMerge(dv.Interface().(Message), sv.Interface().(Message))\n\t\t\t\t\t\tcase reflect.Slice: // E.g. Bytes type (e.g., []byte)\n\t\t\t\t\t\t\tdv.Set(reflect.ValueOf(append([]byte{}, sv.Bytes()...)))\n\t\t\t\t\t\tdefault: // Basic type (e.g., string)\n\t\t\t\t\t\t\tdv.Set(sv)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"merger not found for type:%s\", tf))\n\t\t}\n\t\tmi.fields = append(mi.fields, mfi)\n\t}\n\n\tmi.unrecognized = invalidField\n\tif f, ok := t.FieldByName(\"XXX_unrecognized\"); ok {\n\t\tif f.Type != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tmi.unrecognized = toField(&f)\n\t}\n\n\tatomic.StoreInt32(&mi.initialized, 1)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/table_unmarshal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"unicode/utf8\"\n)\n\n// Unmarshal is the entry point from the generated .pb.go files.\n// This function is not intended to be used by non-generated code.\n// This function is not subject to any compatibility guarantee.\n// msg contains a pointer to a protocol buffer struct.\n// b is the data to be unmarshaled into the protocol buffer.\n// a is a pointer to a place to store cached unmarshal information.\nfunc (a *InternalMessageInfo) Unmarshal(msg Message, b []byte) error {\n\t// Load the unmarshal information for this message type.\n\t// The atomic load ensures memory consistency.\n\tu := atomicLoadUnmarshalInfo(&a.unmarshal)\n\tif u == nil {\n\t\t// Slow path: find unmarshal info for msg, update a with it.\n\t\tu = getUnmarshalInfo(reflect.TypeOf(msg).Elem())\n\t\tatomicStoreUnmarshalInfo(&a.unmarshal, u)\n\t}\n\t// Then do the unmarshaling.\n\terr := u.unmarshal(toPointer(&msg), b)\n\treturn err\n}\n\ntype unmarshalInfo struct {\n\ttyp reflect.Type // type of the protobuf struct\n\n\t// 0 = only typ field is initialized\n\t// 1 = completely initialized\n\tinitialized     int32\n\tlock            sync.Mutex                    // prevents double initialization\n\tdense           []unmarshalFieldInfo          // fields indexed by tag #\n\tsparse          map[uint64]unmarshalFieldInfo // fields indexed by tag #\n\treqFields       []string                      // names of required fields\n\treqMask         uint64                        // 1<<len(reqFields)-1\n\tunrecognized    field                         // offset of []byte to put unrecognized data (or invalidField if we should throw it away)\n\textensions      field                         // offset of extensions field (of type proto.XXX_InternalExtensions), or invalidField if it does not exist\n\toldExtensions   field                         // offset of old-form extensions field (of type map[int]Extension)\n\textensionRanges []ExtensionRange              // if non-nil, implies extensions field is valid\n\tisMessageSet    bool                          // if true, implies extensions field is valid\n}\n\n// An unmarshaler takes a stream of bytes and a pointer to a field of a message.\n// It decodes the field, stores it at f, and returns the unused bytes.\n// w is the wire encoding.\n// b is the data after the tag and wire encoding have been read.\ntype unmarshaler func(b []byte, f pointer, w int) ([]byte, error)\n\ntype unmarshalFieldInfo struct {\n\t// location of the field in the proto message structure.\n\tfield field\n\n\t// function to unmarshal the data for the field.\n\tunmarshal unmarshaler\n\n\t// if a required field, contains a single set bit at this field's index in the required field list.\n\treqMask uint64\n\n\tname string // name of the field, for error reporting\n}\n\nvar (\n\tunmarshalInfoMap  = map[reflect.Type]*unmarshalInfo{}\n\tunmarshalInfoLock sync.Mutex\n)\n\n// getUnmarshalInfo returns the data structure which can be\n// subsequently used to unmarshal a message of the given type.\n// t is the type of the message (note: not pointer to message).\nfunc getUnmarshalInfo(t reflect.Type) *unmarshalInfo {\n\t// It would be correct to return a new unmarshalInfo\n\t// unconditionally. We would end up allocating one\n\t// per occurrence of that type as a message or submessage.\n\t// We use a cache here just to reduce memory usage.\n\tunmarshalInfoLock.Lock()\n\tdefer unmarshalInfoLock.Unlock()\n\tu := unmarshalInfoMap[t]\n\tif u == nil {\n\t\tu = &unmarshalInfo{typ: t}\n\t\t// Note: we just set the type here. The rest of the fields\n\t\t// will be initialized on first use.\n\t\tunmarshalInfoMap[t] = u\n\t}\n\treturn u\n}\n\n// unmarshal does the main work of unmarshaling a message.\n// u provides type information used to unmarshal the message.\n// m is a pointer to a protocol buffer message.\n// b is a byte stream to unmarshal into m.\n// This is top routine used when recursively unmarshaling submessages.\nfunc (u *unmarshalInfo) unmarshal(m pointer, b []byte) error {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeUnmarshalInfo()\n\t}\n\tif u.isMessageSet {\n\t\treturn unmarshalMessageSet(b, m.offset(u.extensions).toExtensions())\n\t}\n\tvar reqMask uint64 // bitmask of required fields we've seen.\n\tvar errLater error\n\tfor len(b) > 0 {\n\t\t// Read tag and wire type.\n\t\t// Special case 1 and 2 byte varints.\n\t\tvar x uint64\n\t\tif b[0] < 128 {\n\t\t\tx = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\tx = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\ttag := x >> 3\n\t\twire := int(x) & 7\n\n\t\t// Dispatch on the tag to one of the unmarshal* functions below.\n\t\tvar f unmarshalFieldInfo\n\t\tif tag < uint64(len(u.dense)) {\n\t\t\tf = u.dense[tag]\n\t\t} else {\n\t\t\tf = u.sparse[tag]\n\t\t}\n\t\tif fn := f.unmarshal; fn != nil {\n\t\t\tvar err error\n\t\t\tb, err = fn(b, m.offset(f.field), wire)\n\t\t\tif err == nil {\n\t\t\t\treqMask |= f.reqMask\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t// Remember this error, but keep parsing. We need to produce\n\t\t\t\t// a full parse even if a required field is missing.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = r\n\t\t\t\t}\n\t\t\t\treqMask |= f.reqMask\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errInternalBadWireType {\n\t\t\t\tif err == errInvalidUTF8 {\n\t\t\t\t\tif errLater == nil {\n\t\t\t\t\t\tfullName := revProtoTypes[reflect.PtrTo(u.typ)] + \".\" + f.name\n\t\t\t\t\t\terrLater = &invalidUTF8Error{fullName}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// Fragments with bad wire type are treated as unknown fields.\n\t\t}\n\n\t\t// Unknown tag.\n\t\tif !u.unrecognized.IsValid() {\n\t\t\t// Don't keep unrecognized data; just skip it.\n\t\t\tvar err error\n\t\t\tb, err = skipField(b, wire)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// Keep unrecognized data around.\n\t\t// maybe in extensions, maybe in the unrecognized field.\n\t\tz := m.offset(u.unrecognized).toBytes()\n\t\tvar emap map[int32]Extension\n\t\tvar e Extension\n\t\tfor _, r := range u.extensionRanges {\n\t\t\tif uint64(r.Start) <= tag && tag <= uint64(r.End) {\n\t\t\t\tif u.extensions.IsValid() {\n\t\t\t\t\tmp := m.offset(u.extensions).toExtensions()\n\t\t\t\t\temap = mp.extensionsWrite()\n\t\t\t\t\te = emap[int32(tag)]\n\t\t\t\t\tz = &e.enc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif u.oldExtensions.IsValid() {\n\t\t\t\t\tp := m.offset(u.oldExtensions).toOldExtensions()\n\t\t\t\t\temap = *p\n\t\t\t\t\tif emap == nil {\n\t\t\t\t\t\temap = map[int32]Extension{}\n\t\t\t\t\t\t*p = emap\n\t\t\t\t\t}\n\t\t\t\t\te = emap[int32(tag)]\n\t\t\t\t\tz = &e.enc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tpanic(\"no extensions field available\")\n\t\t\t}\n\t\t}\n\n\t\t// Use wire type to skip data.\n\t\tvar err error\n\t\tb0 := b\n\t\tb, err = skipField(b, wire)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*z = encodeVarint(*z, tag<<3|uint64(wire))\n\t\t*z = append(*z, b0[:len(b0)-len(b)]...)\n\n\t\tif emap != nil {\n\t\t\temap[int32(tag)] = e\n\t\t}\n\t}\n\tif reqMask != u.reqMask && errLater == nil {\n\t\t// A required field of this message is missing.\n\t\tfor _, n := range u.reqFields {\n\t\t\tif reqMask&1 == 0 {\n\t\t\t\terrLater = &RequiredNotSetError{n}\n\t\t\t}\n\t\t\treqMask >>= 1\n\t\t}\n\t}\n\treturn errLater\n}\n\n// computeUnmarshalInfo fills in u with information for use\n// in unmarshaling protocol buffers of type u.typ.\nfunc (u *unmarshalInfo) computeUnmarshalInfo() {\n\tu.lock.Lock()\n\tdefer u.lock.Unlock()\n\tif u.initialized != 0 {\n\t\treturn\n\t}\n\tt := u.typ\n\tn := t.NumField()\n\n\t// Set up the \"not found\" value for the unrecognized byte buffer.\n\t// This is the default for proto3.\n\tu.unrecognized = invalidField\n\tu.extensions = invalidField\n\tu.oldExtensions = invalidField\n\n\t// List of the generated type and offset for each oneof field.\n\ttype oneofField struct {\n\t\tityp  reflect.Type // interface type of oneof field\n\t\tfield field        // offset in containing message\n\t}\n\tvar oneofFields []oneofField\n\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif f.Name == \"XXX_unrecognized\" {\n\t\t\t// The byte slice used to hold unrecognized input is special.\n\t\t\tif f.Type != reflect.TypeOf(([]byte)(nil)) {\n\t\t\t\tpanic(\"bad type for XXX_unrecognized field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.unrecognized = toField(&f)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_InternalExtensions\" {\n\t\t\t// Ditto here.\n\t\t\tif f.Type != reflect.TypeOf(XXX_InternalExtensions{}) {\n\t\t\t\tpanic(\"bad type for XXX_InternalExtensions field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.extensions = toField(&f)\n\t\t\tif f.Tag.Get(\"protobuf_messageset\") == \"1\" {\n\t\t\t\tu.isMessageSet = true\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_extensions\" {\n\t\t\t// An older form of the extensions field.\n\t\t\tif f.Type != reflect.TypeOf((map[int32]Extension)(nil)) {\n\t\t\t\tpanic(\"bad type for XXX_extensions field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.oldExtensions = toField(&f)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_NoUnkeyedLiteral\" || f.Name == \"XXX_sizecache\" {\n\t\t\tcontinue\n\t\t}\n\n\t\toneof := f.Tag.Get(\"protobuf_oneof\")\n\t\tif oneof != \"\" {\n\t\t\toneofFields = append(oneofFields, oneofField{f.Type, toField(&f)})\n\t\t\t// The rest of oneof processing happens below.\n\t\t\tcontinue\n\t\t}\n\n\t\ttags := f.Tag.Get(\"protobuf\")\n\t\ttagArray := strings.Split(tags, \",\")\n\t\tif len(tagArray) < 2 {\n\t\t\tpanic(\"protobuf tag not enough fields in \" + t.Name() + \".\" + f.Name + \": \" + tags)\n\t\t}\n\t\ttag, err := strconv.Atoi(tagArray[1])\n\t\tif err != nil {\n\t\t\tpanic(\"protobuf tag field not an integer: \" + tagArray[1])\n\t\t}\n\n\t\tname := \"\"\n\t\tfor _, tag := range tagArray[3:] {\n\t\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\t\tname = tag[5:]\n\t\t\t}\n\t\t}\n\n\t\t// Extract unmarshaling function from the field (its type and tags).\n\t\tunmarshal := fieldUnmarshaler(&f)\n\n\t\t// Required field?\n\t\tvar reqMask uint64\n\t\tif tagArray[2] == \"req\" {\n\t\t\tbit := len(u.reqFields)\n\t\t\tu.reqFields = append(u.reqFields, name)\n\t\t\treqMask = uint64(1) << uint(bit)\n\t\t\t// TODO: if we have more than 64 required fields, we end up\n\t\t\t// not verifying that all required fields are present.\n\t\t\t// Fix this, perhaps using a count of required fields?\n\t\t}\n\n\t\t// Store the info in the correct slot in the message.\n\t\tu.setTag(tag, toField(&f), unmarshal, reqMask, name)\n\t}\n\n\t// Find any types associated with oneof fields.\n\tvar oneofImplementers []interface{}\n\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\tcase oneofFuncsIface:\n\t\t_, _, _, oneofImplementers = m.XXX_OneofFuncs()\n\tcase oneofWrappersIface:\n\t\toneofImplementers = m.XXX_OneofWrappers()\n\t}\n\tfor _, v := range oneofImplementers {\n\t\ttptr := reflect.TypeOf(v) // *Msg_X\n\t\ttyp := tptr.Elem()        // Msg_X\n\n\t\tf := typ.Field(0) // oneof implementers have one field\n\t\tbaseUnmarshal := fieldUnmarshaler(&f)\n\t\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\t\tfieldNum, err := strconv.Atoi(tags[1])\n\t\tif err != nil {\n\t\t\tpanic(\"protobuf tag field not an integer: \" + tags[1])\n\t\t}\n\t\tvar name string\n\t\tfor _, tag := range tags {\n\t\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\t\tname = strings.TrimPrefix(tag, \"name=\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Find the oneof field that this struct implements.\n\t\t// Might take O(n^2) to process all of the oneofs, but who cares.\n\t\tfor _, of := range oneofFields {\n\t\t\tif tptr.Implements(of.ityp) {\n\t\t\t\t// We have found the corresponding interface for this struct.\n\t\t\t\t// That lets us know where this struct should be stored\n\t\t\t\t// when we encounter it during unmarshaling.\n\t\t\t\tunmarshal := makeUnmarshalOneof(typ, of.ityp, baseUnmarshal)\n\t\t\t\tu.setTag(fieldNum, of.field, unmarshal, 0, name)\n\t\t\t}\n\t\t}\n\n\t}\n\n\t// Get extension ranges, if any.\n\tfn := reflect.Zero(reflect.PtrTo(t)).MethodByName(\"ExtensionRangeArray\")\n\tif fn.IsValid() {\n\t\tif !u.extensions.IsValid() && !u.oldExtensions.IsValid() {\n\t\t\tpanic(\"a message with extensions, but no extensions field in \" + t.Name())\n\t\t}\n\t\tu.extensionRanges = fn.Call(nil)[0].Interface().([]ExtensionRange)\n\t}\n\n\t// Explicitly disallow tag 0. This will ensure we flag an error\n\t// when decoding a buffer of all zeros. Without this code, we\n\t// would decode and skip an all-zero buffer of even length.\n\t// [0 0] is [tag=0/wiretype=varint varint-encoded-0].\n\tu.setTag(0, zeroField, func(b []byte, f pointer, w int) ([]byte, error) {\n\t\treturn nil, fmt.Errorf(\"proto: %s: illegal tag 0 (wire type %d)\", t, w)\n\t}, 0, \"\")\n\n\t// Set mask for required field check.\n\tu.reqMask = uint64(1)<<uint(len(u.reqFields)) - 1\n\n\tatomic.StoreInt32(&u.initialized, 1)\n}\n\n// setTag stores the unmarshal information for the given tag.\n// tag = tag # for field\n// field/unmarshal = unmarshal info for that field.\n// reqMask = if required, bitmask for field position in required field list. 0 otherwise.\n// name = short name of the field.\nfunc (u *unmarshalInfo) setTag(tag int, field field, unmarshal unmarshaler, reqMask uint64, name string) {\n\ti := unmarshalFieldInfo{field: field, unmarshal: unmarshal, reqMask: reqMask, name: name}\n\tn := u.typ.NumField()\n\tif tag >= 0 && (tag < 16 || tag < 2*n) { // TODO: what are the right numbers here?\n\t\tfor len(u.dense) <= tag {\n\t\t\tu.dense = append(u.dense, unmarshalFieldInfo{})\n\t\t}\n\t\tu.dense[tag] = i\n\t\treturn\n\t}\n\tif u.sparse == nil {\n\t\tu.sparse = map[uint64]unmarshalFieldInfo{}\n\t}\n\tu.sparse[uint64(tag)] = i\n}\n\n// fieldUnmarshaler returns an unmarshaler for the given field.\nfunc fieldUnmarshaler(f *reflect.StructField) unmarshaler {\n\tif f.Type.Kind() == reflect.Map {\n\t\treturn makeUnmarshalMap(f)\n\t}\n\treturn typeUnmarshaler(f.Type, f.Tag.Get(\"protobuf\"))\n}\n\n// typeUnmarshaler returns an unmarshaler for the given field type / field tag pair.\nfunc typeUnmarshaler(t reflect.Type, tags string) unmarshaler {\n\ttagArray := strings.Split(tags, \",\")\n\tencoding := tagArray[0]\n\tname := \"unknown\"\n\tproto3 := false\n\tvalidateUTF8 := true\n\tfor _, tag := range tagArray[3:] {\n\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\tname = tag[5:]\n\t\t}\n\t\tif tag == \"proto3\" {\n\t\t\tproto3 = true\n\t\t}\n\t}\n\tvalidateUTF8 = validateUTF8 && proto3\n\n\t// Figure out packaging (pointer, slice, or both)\n\tslice := false\n\tpointer := false\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tslice = true\n\t\tt = t.Elem()\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tpointer = true\n\t\tt = t.Elem()\n\t}\n\n\t// We'll never have both pointer and slice for basic types.\n\tif pointer && slice && t.Kind() != reflect.Struct {\n\t\tpanic(\"both pointer and slice for basic type in \" + t.Name())\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\tif pointer {\n\t\t\treturn unmarshalBoolPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalBoolSlice\n\t\t}\n\t\treturn unmarshalBoolValue\n\tcase reflect.Int32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixedS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixedS32Slice\n\t\t\t}\n\t\t\treturn unmarshalFixedS32Value\n\t\tcase \"varint\":\n\t\t\t// this could be int32 or enum\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalInt32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalInt32Slice\n\t\t\t}\n\t\t\treturn unmarshalInt32Value\n\t\tcase \"zigzag32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalSint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalSint32Slice\n\t\t\t}\n\t\t\treturn unmarshalSint32Value\n\t\t}\n\tcase reflect.Int64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixedS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixedS64Slice\n\t\t\t}\n\t\t\treturn unmarshalFixedS64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalInt64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalInt64Slice\n\t\t\t}\n\t\t\treturn unmarshalInt64Value\n\t\tcase \"zigzag64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalSint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalSint64Slice\n\t\t\t}\n\t\t\treturn unmarshalSint64Value\n\t\t}\n\tcase reflect.Uint32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixed32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixed32Slice\n\t\t\t}\n\t\t\treturn unmarshalFixed32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUint32Slice\n\t\t\t}\n\t\t\treturn unmarshalUint32Value\n\t\t}\n\tcase reflect.Uint64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixed64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixed64Slice\n\t\t\t}\n\t\t\treturn unmarshalFixed64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUint64Slice\n\t\t\t}\n\t\t\treturn unmarshalUint64Value\n\t\t}\n\tcase reflect.Float32:\n\t\tif pointer {\n\t\t\treturn unmarshalFloat32Ptr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalFloat32Slice\n\t\t}\n\t\treturn unmarshalFloat32Value\n\tcase reflect.Float64:\n\t\tif pointer {\n\t\t\treturn unmarshalFloat64Ptr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalFloat64Slice\n\t\t}\n\t\treturn unmarshalFloat64Value\n\tcase reflect.Map:\n\t\tpanic(\"map type in typeUnmarshaler in \" + t.Name())\n\tcase reflect.Slice:\n\t\tif pointer {\n\t\t\tpanic(\"bad pointer in slice case in \" + t.Name())\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalBytesSlice\n\t\t}\n\t\treturn unmarshalBytesValue\n\tcase reflect.String:\n\t\tif validateUTF8 {\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUTF8StringPtr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUTF8StringSlice\n\t\t\t}\n\t\t\treturn unmarshalUTF8StringValue\n\t\t}\n\t\tif pointer {\n\t\t\treturn unmarshalStringPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalStringSlice\n\t\t}\n\t\treturn unmarshalStringValue\n\tcase reflect.Struct:\n\t\t// message or group field\n\t\tif !pointer {\n\t\t\tpanic(fmt.Sprintf(\"message/group field %s:%s without pointer\", t, encoding))\n\t\t}\n\t\tswitch encoding {\n\t\tcase \"bytes\":\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalMessageSlicePtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalMessagePtr(getUnmarshalInfo(t), name)\n\t\tcase \"group\":\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalGroupSlicePtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalGroupPtr(getUnmarshalInfo(t), name)\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"unmarshaler not found type:%s encoding:%s\", t, encoding))\n}\n\n// Below are all the unmarshalers for individual fields of various types.\n\nfunc unmarshalInt64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\t*f.toInt64() = v\n\treturn b, nil\n}\n\nfunc unmarshalInt64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\t*f.toInt64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalInt64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int64(x)\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalSint64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t*f.toInt64() = v\n\treturn b, nil\n}\n\nfunc unmarshalSint64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t*f.toInt64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalSint64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalUint64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\t*f.toUint64() = v\n\treturn b, nil\n}\n\nfunc unmarshalUint64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\t*f.toUint64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalUint64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := uint64(x)\n\t\t\ts := f.toUint64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\ts := f.toUint64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalInt32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\t*f.toInt32() = v\n\treturn b, nil\n}\n\nfunc unmarshalInt32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\tf.setInt32Ptr(v)\n\treturn b, nil\n}\n\nfunc unmarshalInt32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int32(x)\n\t\t\tf.appendInt32Slice(v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\tf.appendInt32Slice(v)\n\treturn b, nil\n}\n\nfunc unmarshalSint32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\t*f.toInt32() = v\n\treturn b, nil\n}\n\nfunc unmarshalSint32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\tf.setInt32Ptr(v)\n\treturn b, nil\n}\n\nfunc unmarshalSint32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int32(x>>1) ^ int32(x)<<31>>31\n\t\t\tf.appendInt32Slice(v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\tf.appendInt32Slice(v)\n\treturn b, nil\n}\n\nfunc unmarshalUint32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\t*f.toUint32() = v\n\treturn b, nil\n}\n\nfunc unmarshalUint32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\t*f.toUint32Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalUint32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := uint32(x)\n\t\t\ts := f.toUint32Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\ts := f.toUint32Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalFixed64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\t*f.toUint64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\t*f.toUint64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\t\t\ts := f.toUint64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\ts := f.toUint64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t*f.toInt64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t*f.toInt64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t*f.toUint32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixed32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t*f.toUint32Ptr() = &v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixed32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t\t\ts := f.toUint32Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\ts := f.toUint32Slice()\n\t*s = append(*s, v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\t*f.toInt32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\tf.setInt32Ptr(v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\t\t\tf.appendInt32Slice(v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\tf.appendInt32Slice(v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalBoolValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\t// Note: any length varint is allowed, even though any sane\n\t// encoder will use one byte.\n\t// See https://github.com/golang/protobuf/issues/76\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\t// TODO: check if x>1? Tests seem to indicate no.\n\tv := x != 0\n\t*f.toBool() = v\n\treturn b[n:], nil\n}\n\nfunc unmarshalBoolPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := x != 0\n\t*f.toBoolPtr() = &v\n\treturn b[n:], nil\n}\n\nfunc unmarshalBoolSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := x != 0\n\t\t\ts := f.toBoolSlice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := x != 0\n\ts := f.toBoolSlice()\n\t*s = append(*s, v)\n\treturn b[n:], nil\n}\n\nfunc unmarshalFloat64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\t*f.toFloat64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\t*f.toFloat64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\t\t\ts := f.toFloat64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\ts := f.toFloat64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t*f.toFloat32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFloat32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t*f.toFloat32Ptr() = &v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFloat32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t\t\ts := f.toFloat32Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\ts := f.toFloat32Slice()\n\t*s = append(*s, v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toString() = v\n\treturn b[x:], nil\n}\n\nfunc unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toStringPtr() = &v\n\treturn b[x:], nil\n}\n\nfunc unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\ts := f.toStringSlice()\n\t*s = append(*s, v)\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toString() = v\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toStringPtr() = &v\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\ts := f.toStringSlice()\n\t*s = append(*s, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nvar emptyBuf [0]byte\n\nfunc unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\t// The use of append here is a trick which avoids the zeroing\n\t// that would be required if we used a make/copy pair.\n\t// We append to emptyBuf instead of nil because we want\n\t// a non-nil result even when the length is 0.\n\tv := append(emptyBuf[:], b[:x]...)\n\t*f.toBytes() = v\n\treturn b[x:], nil\n}\n\nfunc unmarshalBytesSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := append(emptyBuf[:], b[:x]...)\n\ts := f.toBytesSlice()\n\t*s = append(*s, v)\n\treturn b[x:], nil\n}\n\nfunc makeUnmarshalMessagePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\t// First read the message field to see if something is there.\n\t\t// The semantics of multiple submessages are weird.  Instead of\n\t\t// the last one winning (as it is for all other fields), multiple\n\t\t// submessages are merged.\n\t\tv := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalMessageSlicePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendPointer(v)\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalGroupPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireStartGroup {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, y := findEndGroup(b)\n\t\tif x < 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[y:], err\n\t}\n}\n\nfunc makeUnmarshalGroupSlicePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireStartGroup {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, y := findEndGroup(b)\n\t\tif x < 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendPointer(v)\n\t\treturn b[y:], err\n\t}\n}\n\nfunc makeUnmarshalMap(f *reflect.StructField) unmarshaler {\n\tt := f.Type\n\tkt := t.Key()\n\tvt := t.Elem()\n\tunmarshalKey := typeUnmarshaler(kt, f.Tag.Get(\"protobuf_key\"))\n\tunmarshalVal := typeUnmarshaler(vt, f.Tag.Get(\"protobuf_val\"))\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\t// The map entry is a submessage. Figure out how big it is.\n\t\tif w != WireBytes {\n\t\t\treturn nil, fmt.Errorf(\"proto: bad wiretype for map field: got %d want %d\", w, WireBytes)\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tr := b[x:] // unused data to return\n\t\tb = b[:x]  // data for map entry\n\n\t\t// Note: we could use #keys * #values ~= 200 functions\n\t\t// to do map decoding without reflection. Probably not worth it.\n\t\t// Maps will be somewhat slow. Oh well.\n\n\t\t// Read key and value from data.\n\t\tvar nerr nonFatal\n\t\tk := reflect.New(kt)\n\t\tv := reflect.New(vt)\n\t\tfor len(b) > 0 {\n\t\t\tx, n := decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\twire := int(x) & 7\n\t\t\tb = b[n:]\n\n\t\t\tvar err error\n\t\t\tswitch x >> 3 {\n\t\t\tcase 1:\n\t\t\t\tb, err = unmarshalKey(b, valToPointer(k), wire)\n\t\t\tcase 2:\n\t\t\t\tb, err = unmarshalVal(b, valToPointer(v), wire)\n\t\t\tdefault:\n\t\t\t\terr = errInternalBadWireType // skip unknown tag\n\t\t\t}\n\n\t\t\tif nerr.Merge(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errInternalBadWireType {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Skip past unknown fields.\n\t\t\tb, err = skipField(b, wire)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\t// Get map, allocate if needed.\n\t\tm := f.asPointerTo(t).Elem() // an addressable map[K]T\n\t\tif m.IsNil() {\n\t\t\tm.Set(reflect.MakeMap(t))\n\t\t}\n\n\t\t// Insert into map.\n\t\tm.SetMapIndex(k.Elem(), v.Elem())\n\n\t\treturn r, nerr.E\n\t}\n}\n\n// makeUnmarshalOneof makes an unmarshaler for oneof fields.\n// for:\n// message Msg {\n//   oneof F {\n//     int64 X = 1;\n//     float64 Y = 2;\n//   }\n// }\n// typ is the type of the concrete entry for a oneof case (e.g. Msg_X).\n// ityp is the interface type of the oneof field (e.g. isMsg_F).\n// unmarshal is the unmarshaler for the base type of the oneof case (e.g. int64).\n// Note that this function will be called once for each case in the oneof.\nfunc makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) unmarshaler {\n\tsf := typ.Field(0)\n\tfield0 := toField(&sf)\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\t// Allocate holder for value.\n\t\tv := reflect.New(typ)\n\n\t\t// Unmarshal data into holder.\n\t\t// We unmarshal into the first field of the holder object.\n\t\tvar err error\n\t\tvar nerr nonFatal\n\t\tb, err = unmarshal(b, valToPointer(v).offset(field0), w)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Write pointer to holder into target field.\n\t\tf.asPointerTo(ityp).Elem().Set(v)\n\n\t\treturn b, nerr.E\n\t}\n}\n\n// Error used by decode internally.\nvar errInternalBadWireType = errors.New(\"proto: internal error: bad wiretype\")\n\n// skipField skips past a field of type wire and returns the remaining bytes.\nfunc skipField(b []byte, wire int) ([]byte, error) {\n\tswitch wire {\n\tcase WireVarint:\n\t\t_, k := decodeVarint(b)\n\t\tif k == 0 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[k:]\n\tcase WireFixed32:\n\t\tif len(b) < 4 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[4:]\n\tcase WireFixed64:\n\t\tif len(b) < 8 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[8:]\n\tcase WireBytes:\n\t\tm, k := decodeVarint(b)\n\t\tif k == 0 || uint64(len(b)-k) < m {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[uint64(k)+m:]\n\tcase WireStartGroup:\n\t\t_, i := findEndGroup(b)\n\t\tif i == -1 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[i:]\n\tdefault:\n\t\treturn b, fmt.Errorf(\"proto: can't skip unknown wire type %d\", wire)\n\t}\n\treturn b, nil\n}\n\n// findEndGroup finds the index of the next EndGroup tag.\n// Groups may be nested, so the \"next\" EndGroup tag is the first\n// unpaired EndGroup.\n// findEndGroup returns the indexes of the start and end of the EndGroup tag.\n// Returns (-1,-1) if it can't find one.\nfunc findEndGroup(b []byte) (int, int) {\n\tdepth := 1\n\ti := 0\n\tfor {\n\t\tx, n := decodeVarint(b[i:])\n\t\tif n == 0 {\n\t\t\treturn -1, -1\n\t\t}\n\t\tj := i\n\t\ti += n\n\t\tswitch x & 7 {\n\t\tcase WireVarint:\n\t\t\t_, k := decodeVarint(b[i:])\n\t\t\tif k == 0 {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += k\n\t\tcase WireFixed32:\n\t\t\tif len(b)-4 < i {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += 4\n\t\tcase WireFixed64:\n\t\t\tif len(b)-8 < i {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += 8\n\t\tcase WireBytes:\n\t\t\tm, k := decodeVarint(b[i:])\n\t\t\tif k == 0 {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += k\n\t\t\tif uint64(len(b)-i) < m {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += int(m)\n\t\tcase WireStartGroup:\n\t\t\tdepth++\n\t\tcase WireEndGroup:\n\t\t\tdepth--\n\t\t\tif depth == 0 {\n\t\t\t\treturn j, i\n\t\t\t}\n\t\tdefault:\n\t\t\treturn -1, -1\n\t\t}\n\t}\n}\n\n// encodeVarint appends a varint-encoded integer to b and returns the result.\nfunc encodeVarint(b []byte, x uint64) []byte {\n\tfor x >= 1<<7 {\n\t\tb = append(b, byte(x&0x7f|0x80))\n\t\tx >>= 7\n\t}\n\treturn append(b, byte(x))\n}\n\n// decodeVarint reads a varint-encoded integer from b.\n// Returns the decoded integer and the number of bytes read.\n// If there is an error, it returns 0,0.\nfunc decodeVarint(b []byte) (uint64, int) {\n\tvar x, y uint64\n\tif len(b) == 0 {\n\t\tgoto bad\n\t}\n\tx = uint64(b[0])\n\tif x < 0x80 {\n\t\treturn x, 1\n\t}\n\tx -= 0x80\n\n\tif len(b) <= 1 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[1])\n\tx += y << 7\n\tif y < 0x80 {\n\t\treturn x, 2\n\t}\n\tx -= 0x80 << 7\n\n\tif len(b) <= 2 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[2])\n\tx += y << 14\n\tif y < 0x80 {\n\t\treturn x, 3\n\t}\n\tx -= 0x80 << 14\n\n\tif len(b) <= 3 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[3])\n\tx += y << 21\n\tif y < 0x80 {\n\t\treturn x, 4\n\t}\n\tx -= 0x80 << 21\n\n\tif len(b) <= 4 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[4])\n\tx += y << 28\n\tif y < 0x80 {\n\t\treturn x, 5\n\t}\n\tx -= 0x80 << 28\n\n\tif len(b) <= 5 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[5])\n\tx += y << 35\n\tif y < 0x80 {\n\t\treturn x, 6\n\t}\n\tx -= 0x80 << 35\n\n\tif len(b) <= 6 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[6])\n\tx += y << 42\n\tif y < 0x80 {\n\t\treturn x, 7\n\t}\n\tx -= 0x80 << 42\n\n\tif len(b) <= 7 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[7])\n\tx += y << 49\n\tif y < 0x80 {\n\t\treturn x, 8\n\t}\n\tx -= 0x80 << 49\n\n\tif len(b) <= 8 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[8])\n\tx += y << 56\n\tif y < 0x80 {\n\t\treturn x, 9\n\t}\n\tx -= 0x80 << 56\n\n\tif len(b) <= 9 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[9])\n\tx += y << 63\n\tif y < 2 {\n\t\treturn x, 10\n\t}\n\nbad:\n\treturn 0, 0\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/text.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// Functions for writing the text protocol buffer format.\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n)\n\nvar (\n\tnewline         = []byte(\"\\n\")\n\tspaces          = []byte(\"                                        \")\n\tendBraceNewline = []byte(\"}\\n\")\n\tbackslashN      = []byte{'\\\\', 'n'}\n\tbackslashR      = []byte{'\\\\', 'r'}\n\tbackslashT      = []byte{'\\\\', 't'}\n\tbackslashDQ     = []byte{'\\\\', '\"'}\n\tbackslashBS     = []byte{'\\\\', '\\\\'}\n\tposInf          = []byte(\"inf\")\n\tnegInf          = []byte(\"-inf\")\n\tnan             = []byte(\"nan\")\n)\n\ntype writer interface {\n\tio.Writer\n\tWriteByte(byte) error\n}\n\n// textWriter is an io.Writer that tracks its indentation level.\ntype textWriter struct {\n\tind      int\n\tcomplete bool // if the current position is a complete line\n\tcompact  bool // whether to write out as a one-liner\n\tw        writer\n}\n\nfunc (w *textWriter) WriteString(s string) (n int, err error) {\n\tif !strings.Contains(s, \"\\n\") {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.complete = false\n\t\treturn io.WriteString(w.w, s)\n\t}\n\t// WriteString is typically called without newlines, so this\n\t// codepath and its copy are rare.  We copy to avoid\n\t// duplicating all of Write's logic here.\n\treturn w.Write([]byte(s))\n}\n\nfunc (w *textWriter) Write(p []byte) (n int, err error) {\n\tnewlines := bytes.Count(p, newline)\n\tif newlines == 0 {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tn, err = w.w.Write(p)\n\t\tw.complete = false\n\t\treturn n, err\n\t}\n\n\tfrags := bytes.SplitN(p, newline, newlines+1)\n\tif w.compact {\n\t\tfor i, frag := range frags {\n\t\t\tif i > 0 {\n\t\t\t\tif err := w.w.WriteByte(' '); err != nil {\n\t\t\t\t\treturn n, err\n\t\t\t\t}\n\t\t\t\tn++\n\t\t\t}\n\t\t\tnn, err := w.w.Write(frag)\n\t\t\tn += nn\n\t\t\tif err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tfor i, frag := range frags {\n\t\tif w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tnn, err := w.w.Write(frag)\n\t\tn += nn\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tif i+1 < len(frags) {\n\t\t\tif err := w.w.WriteByte('\\n'); err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t\tn++\n\t\t}\n\t}\n\tw.complete = len(frags[len(frags)-1]) == 0\n\treturn n, nil\n}\n\nfunc (w *textWriter) WriteByte(c byte) error {\n\tif w.compact && c == '\\n' {\n\t\tc = ' '\n\t}\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\terr := w.w.WriteByte(c)\n\tw.complete = c == '\\n'\n\treturn err\n}\n\nfunc (w *textWriter) indent() { w.ind++ }\n\nfunc (w *textWriter) unindent() {\n\tif w.ind == 0 {\n\t\tlog.Print(\"proto: textWriter unindented too far\")\n\t\treturn\n\t}\n\tw.ind--\n}\n\nfunc writeName(w *textWriter, props *Properties) error {\n\tif _, err := w.WriteString(props.OrigName); err != nil {\n\t\treturn err\n\t}\n\tif props.Wire != \"group\" {\n\t\treturn w.WriteByte(':')\n\t}\n\treturn nil\n}\n\nfunc requiresQuotes(u string) bool {\n\t// When type URL contains any characters except [0-9A-Za-z./\\-]*, it must be quoted.\n\tfor _, ch := range u {\n\t\tswitch {\n\t\tcase ch == '.' || ch == '/' || ch == '_':\n\t\t\tcontinue\n\t\tcase '0' <= ch && ch <= '9':\n\t\t\tcontinue\n\t\tcase 'A' <= ch && ch <= 'Z':\n\t\t\tcontinue\n\t\tcase 'a' <= ch && ch <= 'z':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// isAny reports whether sv is a google.protobuf.Any message\nfunc isAny(sv reflect.Value) bool {\n\ttype wkt interface {\n\t\tXXX_WellKnownType() string\n\t}\n\tt, ok := sv.Addr().Interface().(wkt)\n\treturn ok && t.XXX_WellKnownType() == \"Any\"\n}\n\n// writeProto3Any writes an expanded google.protobuf.Any message.\n//\n// It returns (false, nil) if sv value can't be unmarshaled (e.g. because\n// required messages are not linked in).\n//\n// It returns (true, error) when sv was written in expanded format or an error\n// was encountered.\nfunc (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) {\n\tturl := sv.FieldByName(\"TypeUrl\")\n\tval := sv.FieldByName(\"Value\")\n\tif !turl.IsValid() || !val.IsValid() {\n\t\treturn true, errors.New(\"proto: invalid google.protobuf.Any message\")\n\t}\n\n\tb, ok := val.Interface().([]byte)\n\tif !ok {\n\t\treturn true, errors.New(\"proto: invalid google.protobuf.Any message\")\n\t}\n\n\tparts := strings.Split(turl.String(), \"/\")\n\tmt := MessageType(parts[len(parts)-1])\n\tif mt == nil {\n\t\treturn false, nil\n\t}\n\tm := reflect.New(mt.Elem())\n\tif err := Unmarshal(b, m.Interface().(Message)); err != nil {\n\t\treturn false, nil\n\t}\n\tw.Write([]byte(\"[\"))\n\tu := turl.String()\n\tif requiresQuotes(u) {\n\t\twriteString(w, u)\n\t} else {\n\t\tw.Write([]byte(u))\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"]:<\"))\n\t} else {\n\t\tw.Write([]byte(\"]: <\\n\"))\n\t\tw.ind++\n\t}\n\tif err := tm.writeStruct(w, m.Elem()); err != nil {\n\t\treturn true, err\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"> \"))\n\t} else {\n\t\tw.ind--\n\t\tw.Write([]byte(\">\\n\"))\n\t}\n\treturn true, nil\n}\n\nfunc (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {\n\tif tm.ExpandAny && isAny(sv) {\n\t\tif canExpand, err := tm.writeProto3Any(w, sv); canExpand {\n\t\t\treturn err\n\t\t}\n\t}\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\tfor i := 0; i < sv.NumField(); i++ {\n\t\tfv := sv.Field(i)\n\t\tprops := sprops.Prop[i]\n\t\tname := st.Field(i).Name\n\n\t\tif name == \"XXX_NoUnkeyedLiteral\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tif strings.HasPrefix(name, \"XXX_\") {\n\t\t\t// There are two XXX_ fields:\n\t\t\t//   XXX_unrecognized []byte\n\t\t\t//   XXX_extensions   map[int32]proto.Extension\n\t\t\t// The first is handled here;\n\t\t\t// the second is handled at the bottom of this function.\n\t\t\tif name == \"XXX_unrecognized\" && !fv.IsNil() {\n\t\t\t\tif err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Ptr && fv.IsNil() {\n\t\t\t// Field not filled in. This could be an optional field or\n\t\t\t// a required field that wasn't filled in. Either way, there\n\t\t\t// isn't anything we can show for it.\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Slice && fv.IsNil() {\n\t\t\t// Repeated field that is empty, or a bytes field that is unused.\n\t\t\tcontinue\n\t\t}\n\n\t\tif props.Repeated && fv.Kind() == reflect.Slice {\n\t\t\t// Repeated field.\n\t\t\tfor j := 0; j < fv.Len(); j++ {\n\t\t\t\tif err := writeName(w, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tv := fv.Index(j)\n\t\t\t\tif v.Kind() == reflect.Ptr && v.IsNil() {\n\t\t\t\t\t// A nil message in a repeated field is not valid,\n\t\t\t\t\t// but we can handle that more gracefully than panicking.\n\t\t\t\t\tif _, err := w.Write([]byte(\"<nil>\\n\")); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif err := tm.writeAny(w, v, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Map {\n\t\t\t// Map fields are rendered as a repeated struct with key/value fields.\n\t\t\tkeys := fv.MapKeys()\n\t\t\tsort.Sort(mapKeys(keys))\n\t\t\tfor _, key := range keys {\n\t\t\t\tval := fv.MapIndex(key)\n\t\t\t\tif err := writeName(w, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// open struct\n\t\t\t\tif err := w.WriteByte('<'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tw.indent()\n\t\t\t\t// key\n\t\t\t\tif _, err := w.WriteString(\"key:\"); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err := tm.writeAny(w, key, props.MapKeyProp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// nil values aren't legal, but we can avoid panicking because of them.\n\t\t\t\tif val.Kind() != reflect.Ptr || !val.IsNil() {\n\t\t\t\t\t// value\n\t\t\t\t\tif _, err := w.WriteString(\"value:\"); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif !w.compact {\n\t\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif err := tm.writeAny(w, val, props.MapValProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// close struct\n\t\t\t\tw.unindent()\n\t\t\t\tif err := w.WriteByte('>'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 {\n\t\t\t// empty bytes field\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice {\n\t\t\t// proto3 non-repeated scalar field; skip if zero value\n\t\t\tif isProto3Zero(fv) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif fv.Kind() == reflect.Interface {\n\t\t\t// Check if it is a oneof.\n\t\t\tif st.Field(i).Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\t\t// fv is nil, or holds a pointer to generated struct.\n\t\t\t\t// That generated struct has exactly one field,\n\t\t\t\t// which has a protobuf struct tag.\n\t\t\t\tif fv.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tinner := fv.Elem().Elem() // interface -> *T -> T\n\t\t\t\ttag := inner.Type().Field(0).Tag.Get(\"protobuf\")\n\t\t\t\tprops = new(Properties) // Overwrite the outer props var, but not its pointee.\n\t\t\t\tprops.Parse(tag)\n\t\t\t\t// Write the value in the oneof, not the oneof itself.\n\t\t\t\tfv = inner.Field(0)\n\n\t\t\t\t// Special case to cope with malformed messages gracefully:\n\t\t\t\t// If the value in the oneof is a nil pointer, don't panic\n\t\t\t\t// in writeAny.\n\t\t\t\tif fv.Kind() == reflect.Ptr && fv.IsNil() {\n\t\t\t\t\t// Use errors.New so writeAny won't render quotes.\n\t\t\t\t\tmsg := errors.New(\"/* nil */\")\n\t\t\t\t\tfv = reflect.ValueOf(&msg).Elem()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif err := writeName(w, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !w.compact {\n\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\t// Enums have a String method, so writeAny will work fine.\n\t\tif err := tm.writeAny(w, fv, props); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Extensions (the XXX_extensions field).\n\tpv := sv.Addr()\n\tif _, err := extendable(pv.Interface()); err == nil {\n\t\tif err := tm.writeExtensions(w, pv); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// writeAny writes an arbitrary field.\nfunc (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {\n\tv = reflect.Indirect(v)\n\n\t// Floats have special cases.\n\tif v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 {\n\t\tx := v.Float()\n\t\tvar b []byte\n\t\tswitch {\n\t\tcase math.IsInf(x, 1):\n\t\t\tb = posInf\n\t\tcase math.IsInf(x, -1):\n\t\t\tb = negInf\n\t\tcase math.IsNaN(x):\n\t\t\tb = nan\n\t\t}\n\t\tif b != nil {\n\t\t\t_, err := w.Write(b)\n\t\t\treturn err\n\t\t}\n\t\t// Other values are handled below.\n\t}\n\n\t// We don't attempt to serialise every possible value type; only those\n\t// that can occur in protocol buffers.\n\tswitch v.Kind() {\n\tcase reflect.Slice:\n\t\t// Should only be a []byte; repeated fields are handled in writeStruct.\n\t\tif err := writeString(w, string(v.Bytes())); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.String:\n\t\tif err := writeString(w, v.String()); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.Struct:\n\t\t// Required/optional group/message.\n\t\tvar bra, ket byte = '<', '>'\n\t\tif props != nil && props.Wire == \"group\" {\n\t\t\tbra, ket = '{', '}'\n\t\t}\n\t\tif err := w.WriteByte(bra); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !w.compact {\n\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tw.indent()\n\t\tif v.CanAddr() {\n\t\t\t// Calling v.Interface on a struct causes the reflect package to\n\t\t\t// copy the entire struct. This is racy with the new Marshaler\n\t\t\t// since we atomically update the XXX_sizecache.\n\t\t\t//\n\t\t\t// Thus, we retrieve a pointer to the struct if possible to avoid\n\t\t\t// a race since v.Interface on the pointer doesn't copy the struct.\n\t\t\t//\n\t\t\t// If v is not addressable, then we are not worried about a race\n\t\t\t// since it implies that the binary Marshaler cannot possibly be\n\t\t\t// mutating this value.\n\t\t\tv = v.Addr()\n\t\t}\n\t\tif etm, ok := v.Interface().(encoding.TextMarshaler); ok {\n\t\t\ttext, err := etm.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif _, err = w.Write(text); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tv = v.Elem()\n\t\t\t}\n\t\t\tif err := tm.writeStruct(w, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tw.unindent()\n\t\tif err := w.WriteByte(ket); err != nil {\n\t\t\treturn err\n\t\t}\n\tdefault:\n\t\t_, err := fmt.Fprint(w, v.Interface())\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// equivalent to C's isprint.\nfunc isprint(c byte) bool {\n\treturn c >= 0x20 && c < 0x7f\n}\n\n// writeString writes a string in the protocol buffer text format.\n// It is similar to strconv.Quote except we don't use Go escape sequences,\n// we treat the string as a byte sequence, and we use octal escapes.\n// These differences are to maintain interoperability with the other\n// languages' implementations of the text format.\nfunc writeString(w *textWriter, s string) error {\n\t// use WriteByte here to get any needed indent\n\tif err := w.WriteByte('\"'); err != nil {\n\t\treturn err\n\t}\n\t// Loop over the bytes, not the runes.\n\tfor i := 0; i < len(s); i++ {\n\t\tvar err error\n\t\t// Divergence from C++: we don't escape apostrophes.\n\t\t// There's no need to escape them, and the C++ parser\n\t\t// copes with a naked apostrophe.\n\t\tswitch c := s[i]; c {\n\t\tcase '\\n':\n\t\t\t_, err = w.w.Write(backslashN)\n\t\tcase '\\r':\n\t\t\t_, err = w.w.Write(backslashR)\n\t\tcase '\\t':\n\t\t\t_, err = w.w.Write(backslashT)\n\t\tcase '\"':\n\t\t\t_, err = w.w.Write(backslashDQ)\n\t\tcase '\\\\':\n\t\t\t_, err = w.w.Write(backslashBS)\n\t\tdefault:\n\t\t\tif isprint(c) {\n\t\t\t\terr = w.w.WriteByte(c)\n\t\t\t} else {\n\t\t\t\t_, err = fmt.Fprintf(w.w, \"\\\\%03o\", c)\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn w.WriteByte('\"')\n}\n\nfunc writeUnknownStruct(w *textWriter, data []byte) (err error) {\n\tif !w.compact {\n\t\tif _, err := fmt.Fprintf(w, \"/* %d unknown bytes */\\n\", len(data)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tb := NewBuffer(data)\n\tfor b.index < len(b.buf) {\n\t\tx, err := b.DecodeVarint()\n\t\tif err != nil {\n\t\t\t_, err := fmt.Fprintf(w, \"/* %v */\\n\", err)\n\t\t\treturn err\n\t\t}\n\t\twire, tag := x&7, x>>3\n\t\tif wire == WireEndGroup {\n\t\t\tw.unindent()\n\t\t\tif _, err := w.Write(endBraceNewline); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif _, err := fmt.Fprint(w, tag); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif wire != WireStartGroup {\n\t\t\tif err := w.WriteByte(':'); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif !w.compact || wire == WireStartGroup {\n\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tswitch wire {\n\t\tcase WireBytes:\n\t\t\tbuf, e := b.DecodeRawBytes(false)\n\t\t\tif e == nil {\n\t\t\t\t_, err = fmt.Fprintf(w, \"%q\", buf)\n\t\t\t} else {\n\t\t\t\t_, err = fmt.Fprintf(w, \"/* %v */\", e)\n\t\t\t}\n\t\tcase WireFixed32:\n\t\t\tx, err = b.DecodeFixed32()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tcase WireFixed64:\n\t\t\tx, err = b.DecodeFixed64()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tcase WireStartGroup:\n\t\t\terr = w.WriteByte('{')\n\t\t\tw.indent()\n\t\tcase WireVarint:\n\t\t\tx, err = b.DecodeVarint()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tdefault:\n\t\t\t_, err = fmt.Fprintf(w, \"/* unknown wire type %d */\", wire)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err = w.WriteByte('\\n'); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc writeUnknownInt(w *textWriter, x uint64, err error) error {\n\tif err == nil {\n\t\t_, err = fmt.Fprint(w, x)\n\t} else {\n\t\t_, err = fmt.Fprintf(w, \"/* %v */\", err)\n\t}\n\treturn err\n}\n\ntype int32Slice []int32\n\nfunc (s int32Slice) Len() int           { return len(s) }\nfunc (s int32Slice) Less(i, j int) bool { return s[i] < s[j] }\nfunc (s int32Slice) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\n\n// writeExtensions writes all the extensions in pv.\n// pv is assumed to be a pointer to a protocol message struct that is extendable.\nfunc (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error {\n\temap := extensionMaps[pv.Type().Elem()]\n\tep, _ := extendable(pv.Interface())\n\n\t// Order the extensions by ID.\n\t// This isn't strictly necessary, but it will give us\n\t// canonical output, which will also make testing easier.\n\tm, mu := ep.extensionsRead()\n\tif m == nil {\n\t\treturn nil\n\t}\n\tmu.Lock()\n\tids := make([]int32, 0, len(m))\n\tfor id := range m {\n\t\tids = append(ids, id)\n\t}\n\tsort.Sort(int32Slice(ids))\n\tmu.Unlock()\n\n\tfor _, extNum := range ids {\n\t\text := m[extNum]\n\t\tvar desc *ExtensionDesc\n\t\tif emap != nil {\n\t\t\tdesc = emap[extNum]\n\t\t}\n\t\tif desc == nil {\n\t\t\t// Unknown extension.\n\t\t\tif err := writeUnknownStruct(w, ext.enc); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tpb, err := GetExtension(ep, desc)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed getting extension: %v\", err)\n\t\t}\n\n\t\t// Repeated extensions will appear as a slice.\n\t\tif !desc.repeated() {\n\t\t\tif err := tm.writeExtension(w, desc.Name, pb); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tv := reflect.ValueOf(pb)\n\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\tif err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error {\n\tif _, err := fmt.Fprintf(w, \"[%s]:\", name); err != nil {\n\t\treturn err\n\t}\n\tif !w.compact {\n\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil {\n\t\treturn err\n\t}\n\tif err := w.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (w *textWriter) writeIndent() {\n\tif !w.complete {\n\t\treturn\n\t}\n\tremain := w.ind * 2\n\tfor remain > 0 {\n\t\tn := remain\n\t\tif n > len(spaces) {\n\t\t\tn = len(spaces)\n\t\t}\n\t\tw.w.Write(spaces[:n])\n\t\tremain -= n\n\t}\n\tw.complete = false\n}\n\n// TextMarshaler is a configurable text format marshaler.\ntype TextMarshaler struct {\n\tCompact   bool // use compact text format (one line).\n\tExpandAny bool // expand google.protobuf.Any messages of known types\n}\n\n// Marshal writes a given protocol buffer in text format.\n// The only errors returned are from w.\nfunc (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error {\n\tval := reflect.ValueOf(pb)\n\tif pb == nil || val.IsNil() {\n\t\tw.Write([]byte(\"<nil>\"))\n\t\treturn nil\n\t}\n\tvar bw *bufio.Writer\n\tww, ok := w.(writer)\n\tif !ok {\n\t\tbw = bufio.NewWriter(w)\n\t\tww = bw\n\t}\n\taw := &textWriter{\n\t\tw:        ww,\n\t\tcomplete: true,\n\t\tcompact:  tm.Compact,\n\t}\n\n\tif etm, ok := pb.(encoding.TextMarshaler); ok {\n\t\ttext, err := etm.MarshalText()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err = aw.Write(text); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif bw != nil {\n\t\t\treturn bw.Flush()\n\t\t}\n\t\treturn nil\n\t}\n\t// Dereference the received pointer so we don't have outer < and >.\n\tv := reflect.Indirect(val)\n\tif err := tm.writeStruct(aw, v); err != nil {\n\t\treturn err\n\t}\n\tif bw != nil {\n\t\treturn bw.Flush()\n\t}\n\treturn nil\n}\n\n// Text is the same as Marshal, but returns the string directly.\nfunc (tm *TextMarshaler) Text(pb Message) string {\n\tvar buf bytes.Buffer\n\ttm.Marshal(&buf, pb)\n\treturn buf.String()\n}\n\nvar (\n\tdefaultTextMarshaler = TextMarshaler{}\n\tcompactTextMarshaler = TextMarshaler{Compact: true}\n)\n\n// TODO: consider removing some of the Marshal functions below.\n\n// MarshalText writes a given protocol buffer in text format.\n// The only errors returned are from w.\nfunc MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) }\n\n// MarshalTextString is the same as MarshalText, but returns the string directly.\nfunc MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) }\n\n// CompactText writes a given protocol buffer in compact text format (one line).\nfunc CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) }\n\n// CompactTextString is the same as CompactText, but returns the string directly.\nfunc CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) }\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/text_parser.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// Functions for parsing the Text protocol buffer format.\n// TODO: message sets.\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// Error string emitted when deserializing Any and fields are already set\nconst anyRepeatedlyUnpacked = \"Any message unpacked multiple times, or %q already set\"\n\ntype ParseError struct {\n\tMessage string\n\tLine    int // 1-based line number\n\tOffset  int // 0-based byte offset from start of input\n}\n\nfunc (p *ParseError) Error() string {\n\tif p.Line == 1 {\n\t\t// show offset only for first line\n\t\treturn fmt.Sprintf(\"line 1.%d: %v\", p.Offset, p.Message)\n\t}\n\treturn fmt.Sprintf(\"line %d: %v\", p.Line, p.Message)\n}\n\ntype token struct {\n\tvalue    string\n\terr      *ParseError\n\tline     int    // line number\n\toffset   int    // byte number from start of input, not start of line\n\tunquoted string // the unquoted version of value, if it was a quoted string\n}\n\nfunc (t *token) String() string {\n\tif t.err == nil {\n\t\treturn fmt.Sprintf(\"%q (line=%d, offset=%d)\", t.value, t.line, t.offset)\n\t}\n\treturn fmt.Sprintf(\"parse error: %v\", t.err)\n}\n\ntype textParser struct {\n\ts            string // remaining input\n\tdone         bool   // whether the parsing is finished (success or error)\n\tbacked       bool   // whether back() was called\n\toffset, line int\n\tcur          token\n}\n\nfunc newTextParser(s string) *textParser {\n\tp := new(textParser)\n\tp.s = s\n\tp.line = 1\n\tp.cur.line = 1\n\treturn p\n}\n\nfunc (p *textParser) errorf(format string, a ...interface{}) *ParseError {\n\tpe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset}\n\tp.cur.err = pe\n\tp.done = true\n\treturn pe\n}\n\n// Numbers and identifiers are matched by [-+._A-Za-z0-9]\nfunc isIdentOrNumberChar(c byte) bool {\n\tswitch {\n\tcase 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z':\n\t\treturn true\n\tcase '0' <= c && c <= '9':\n\t\treturn true\n\t}\n\tswitch c {\n\tcase '-', '+', '.', '_':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isWhitespace(c byte) bool {\n\tswitch c {\n\tcase ' ', '\\t', '\\n', '\\r':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isQuote(c byte) bool {\n\tswitch c {\n\tcase '\"', '\\'':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (p *textParser) skipWhitespace() {\n\ti := 0\n\tfor i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') {\n\t\tif p.s[i] == '#' {\n\t\t\t// comment; skip to end of line or input\n\t\t\tfor i < len(p.s) && p.s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == len(p.s) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif p.s[i] == '\\n' {\n\t\t\tp.line++\n\t\t}\n\t\ti++\n\t}\n\tp.offset += i\n\tp.s = p.s[i:len(p.s)]\n\tif len(p.s) == 0 {\n\t\tp.done = true\n\t}\n}\n\nfunc (p *textParser) advance() {\n\t// Skip whitespace\n\tp.skipWhitespace()\n\tif p.done {\n\t\treturn\n\t}\n\n\t// Start of non-whitespace\n\tp.cur.err = nil\n\tp.cur.offset, p.cur.line = p.offset, p.line\n\tp.cur.unquoted = \"\"\n\tswitch p.s[0] {\n\tcase '<', '>', '{', '}', ':', '[', ']', ';', ',', '/':\n\t\t// Single symbol\n\t\tp.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)]\n\tcase '\"', '\\'':\n\t\t// Quoted string\n\t\ti := 1\n\t\tfor i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\\n' {\n\t\t\tif p.s[i] == '\\\\' && i+1 < len(p.s) {\n\t\t\t\t// skip escaped char\n\t\t\t\ti++\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t\tif i >= len(p.s) || p.s[i] != p.s[0] {\n\t\t\tp.errorf(\"unmatched quote\")\n\t\t\treturn\n\t\t}\n\t\tunq, err := unquoteC(p.s[1:i], rune(p.s[0]))\n\t\tif err != nil {\n\t\t\tp.errorf(\"invalid quoted string %s: %v\", p.s[0:i+1], err)\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)]\n\t\tp.cur.unquoted = unq\n\tdefault:\n\t\ti := 0\n\t\tfor i < len(p.s) && isIdentOrNumberChar(p.s[i]) {\n\t\t\ti++\n\t\t}\n\t\tif i == 0 {\n\t\t\tp.errorf(\"unexpected byte %#x\", p.s[0])\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)]\n\t}\n\tp.offset += len(p.cur.value)\n}\n\nvar (\n\terrBadUTF8 = errors.New(\"proto: bad UTF-8\")\n)\n\nfunc unquoteC(s string, quote rune) (string, error) {\n\t// This is based on C++'s tokenizer.cc.\n\t// Despite its name, this is *not* parsing C syntax.\n\t// For instance, \"\\0\" is an invalid quoted string.\n\n\t// Avoid allocation in trivial cases.\n\tsimple := true\n\tfor _, r := range s {\n\t\tif r == '\\\\' || r == quote {\n\t\t\tsimple = false\n\t\t\tbreak\n\t\t}\n\t}\n\tif simple {\n\t\treturn s, nil\n\t}\n\n\tbuf := make([]byte, 0, 3*len(s)/2)\n\tfor len(s) > 0 {\n\t\tr, n := utf8.DecodeRuneInString(s)\n\t\tif r == utf8.RuneError && n == 1 {\n\t\t\treturn \"\", errBadUTF8\n\t\t}\n\t\ts = s[n:]\n\t\tif r != '\\\\' {\n\t\t\tif r < utf8.RuneSelf {\n\t\t\t\tbuf = append(buf, byte(r))\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, string(r)...)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tch, tail, err := unescape(s)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbuf = append(buf, ch...)\n\t\ts = tail\n\t}\n\treturn string(buf), nil\n}\n\nfunc unescape(s string) (ch string, tail string, err error) {\n\tr, n := utf8.DecodeRuneInString(s)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn \"\", \"\", errBadUTF8\n\t}\n\ts = s[n:]\n\tswitch r {\n\tcase 'a':\n\t\treturn \"\\a\", s, nil\n\tcase 'b':\n\t\treturn \"\\b\", s, nil\n\tcase 'f':\n\t\treturn \"\\f\", s, nil\n\tcase 'n':\n\t\treturn \"\\n\", s, nil\n\tcase 'r':\n\t\treturn \"\\r\", s, nil\n\tcase 't':\n\t\treturn \"\\t\", s, nil\n\tcase 'v':\n\t\treturn \"\\v\", s, nil\n\tcase '?':\n\t\treturn \"?\", s, nil // trigraph workaround\n\tcase '\\'', '\"', '\\\\':\n\t\treturn string(r), s, nil\n\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\tif len(s) < 2 {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires 2 following digits`, r)\n\t\t}\n\t\tss := string(r) + s[:2]\n\t\ts = s[2:]\n\t\ti, err := strconv.ParseUint(ss, 8, 8)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%s contains non-octal digits`, ss)\n\t\t}\n\t\treturn string([]byte{byte(i)}), s, nil\n\tcase 'x', 'X', 'u', 'U':\n\t\tvar n int\n\t\tswitch r {\n\t\tcase 'x', 'X':\n\t\t\tn = 2\n\t\tcase 'u':\n\t\t\tn = 4\n\t\tcase 'U':\n\t\t\tn = 8\n\t\t}\n\t\tif len(s) < n {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires %d following digits`, r, n)\n\t\t}\n\t\tss := s[:n]\n\t\ts = s[n:]\n\t\ti, err := strconv.ParseUint(ss, 16, 64)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s contains non-hexadecimal digits`, r, ss)\n\t\t}\n\t\tif r == 'x' || r == 'X' {\n\t\t\treturn string([]byte{byte(i)}), s, nil\n\t\t}\n\t\tif i > utf8.MaxRune {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s is not a valid Unicode code point`, r, ss)\n\t\t}\n\t\treturn string(i), s, nil\n\t}\n\treturn \"\", \"\", fmt.Errorf(`unknown escape \\%c`, r)\n}\n\n// Back off the parser by one token. Can only be done between calls to next().\n// It makes the next advance() a no-op.\nfunc (p *textParser) back() { p.backed = true }\n\n// Advances the parser and returns the new current token.\nfunc (p *textParser) next() *token {\n\tif p.backed || p.done {\n\t\tp.backed = false\n\t\treturn &p.cur\n\t}\n\tp.advance()\n\tif p.done {\n\t\tp.cur.value = \"\"\n\t} else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) {\n\t\t// Look for multiple quoted strings separated by whitespace,\n\t\t// and concatenate them.\n\t\tcat := p.cur\n\t\tfor {\n\t\t\tp.skipWhitespace()\n\t\t\tif p.done || !isQuote(p.s[0]) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tp.advance()\n\t\t\tif p.cur.err != nil {\n\t\t\t\treturn &p.cur\n\t\t\t}\n\t\t\tcat.value += \" \" + p.cur.value\n\t\t\tcat.unquoted += p.cur.unquoted\n\t\t}\n\t\tp.done = false // parser may have seen EOF, but we want to return cat\n\t\tp.cur = cat\n\t}\n\treturn &p.cur\n}\n\nfunc (p *textParser) consumeToken(s string) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != s {\n\t\tp.back()\n\t\treturn p.errorf(\"expected %q, found %q\", s, tok.value)\n\t}\n\treturn nil\n}\n\n// Return a RequiredNotSetError indicating which required field was not set.\nfunc (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError {\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tif !isNil(sv.Field(i)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tprops := sprops.Prop[i]\n\t\tif props.Required {\n\t\t\treturn &RequiredNotSetError{fmt.Sprintf(\"%v.%v\", st, props.OrigName)}\n\t\t}\n\t}\n\treturn &RequiredNotSetError{fmt.Sprintf(\"%v.<unknown field name>\", st)} // should not happen\n}\n\n// Returns the index in the struct for the named field, as well as the parsed tag properties.\nfunc structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) {\n\ti, ok := sprops.decoderOrigNames[name]\n\tif ok {\n\t\treturn i, sprops.Prop[i], true\n\t}\n\treturn -1, nil, false\n}\n\n// Consume a ':' from the input stream (if the next token is a colon),\n// returning an error if a colon is needed but not present.\nfunc (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \":\" {\n\t\t// Colon is optional when the field is a group or message.\n\t\tneedColon := true\n\t\tswitch props.Wire {\n\t\tcase \"group\":\n\t\t\tneedColon = false\n\t\tcase \"bytes\":\n\t\t\t// A \"bytes\" field is either a message, a string, or a repeated field;\n\t\t\t// those three become *T, *string and []T respectively, so we can check for\n\t\t\t// this field being a pointer to a non-string.\n\t\t\tif typ.Kind() == reflect.Ptr {\n\t\t\t\t// *T or *string\n\t\t\t\tif typ.Elem().Kind() == reflect.String {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else if typ.Kind() == reflect.Slice {\n\t\t\t\t// []T or []*T\n\t\t\t\tif typ.Elem().Kind() != reflect.Ptr {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else if typ.Kind() == reflect.String {\n\t\t\t\t// The proto3 exception is for a string field,\n\t\t\t\t// which requires a colon.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tneedColon = false\n\t\t}\n\t\tif needColon {\n\t\t\treturn p.errorf(\"expected ':', found %q\", tok.value)\n\t\t}\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) readStruct(sv reflect.Value, terminator string) error {\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\treqCount := sprops.reqCount\n\tvar reqFieldErr error\n\tfieldSet := make(map[string]bool)\n\t// A struct is a sequence of \"name: value\", terminated by one of\n\t// '>' or '}', or the end of the input.  A name may also be\n\t// \"[extension]\" or \"[type/url]\".\n\t//\n\t// The whole struct can also be an expanded Any message, like:\n\t// [type/url] < ... struct contents ... >\n\tfor {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\tif tok.value == terminator {\n\t\t\tbreak\n\t\t}\n\t\tif tok.value == \"[\" {\n\t\t\t// Looks like an extension or an Any.\n\t\t\t//\n\t\t\t// TODO: Check whether we need to handle\n\t\t\t// namespace rooted names (e.g. \".something.Foo\").\n\t\t\textName, err := p.consumeExtName()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif s := strings.LastIndex(extName, \"/\"); s >= 0 {\n\t\t\t\t// If it contains a slash, it's an Any type URL.\n\t\t\t\tmessageName := extName[s+1:]\n\t\t\t\tmt := MessageType(messageName)\n\t\t\t\tif mt == nil {\n\t\t\t\t\treturn p.errorf(\"unrecognized message %q in google.protobuf.Any\", messageName)\n\t\t\t\t}\n\t\t\t\ttok = p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\t// consume an optional colon\n\t\t\t\tif tok.value == \":\" {\n\t\t\t\t\ttok = p.next()\n\t\t\t\t\tif tok.err != nil {\n\t\t\t\t\t\treturn tok.err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar terminator string\n\t\t\t\tswitch tok.value {\n\t\t\t\tcase \"<\":\n\t\t\t\t\tterminator = \">\"\n\t\t\t\tcase \"{\":\n\t\t\t\t\tterminator = \"}\"\n\t\t\t\tdefault:\n\t\t\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t\t\t}\n\t\t\t\tv := reflect.New(mt.Elem())\n\t\t\t\tif pe := p.readStruct(v.Elem(), terminator); pe != nil {\n\t\t\t\t\treturn pe\n\t\t\t\t}\n\t\t\t\tb, err := Marshal(v.Interface().(Message))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn p.errorf(\"failed to marshal message of type %q: %v\", messageName, err)\n\t\t\t\t}\n\t\t\t\tif fieldSet[\"type_url\"] {\n\t\t\t\t\treturn p.errorf(anyRepeatedlyUnpacked, \"type_url\")\n\t\t\t\t}\n\t\t\t\tif fieldSet[\"value\"] {\n\t\t\t\t\treturn p.errorf(anyRepeatedlyUnpacked, \"value\")\n\t\t\t\t}\n\t\t\t\tsv.FieldByName(\"TypeUrl\").SetString(extName)\n\t\t\t\tsv.FieldByName(\"Value\").SetBytes(b)\n\t\t\t\tfieldSet[\"type_url\"] = true\n\t\t\t\tfieldSet[\"value\"] = true\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar desc *ExtensionDesc\n\t\t\t// This could be faster, but it's functional.\n\t\t\t// TODO: Do something smarter than a linear scan.\n\t\t\tfor _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) {\n\t\t\t\tif d.Name == extName {\n\t\t\t\t\tdesc = d\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif desc == nil {\n\t\t\t\treturn p.errorf(\"unrecognized extension %q\", extName)\n\t\t\t}\n\n\t\t\tprops := &Properties{}\n\t\t\tprops.Parse(desc.Tag)\n\n\t\t\ttyp := reflect.TypeOf(desc.ExtensionType)\n\t\t\tif err := p.checkForColon(props, typ); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\trep := desc.repeated()\n\n\t\t\t// Read the extension structure, and set it in\n\t\t\t// the value we're constructing.\n\t\t\tvar ext reflect.Value\n\t\t\tif !rep {\n\t\t\t\text = reflect.New(typ).Elem()\n\t\t\t} else {\n\t\t\t\text = reflect.New(typ.Elem()).Elem()\n\t\t\t}\n\t\t\tif err := p.readAny(ext, props); err != nil {\n\t\t\t\tif _, ok := err.(*RequiredNotSetError); !ok {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treqFieldErr = err\n\t\t\t}\n\t\t\tep := sv.Addr().Interface().(Message)\n\t\t\tif !rep {\n\t\t\t\tSetExtension(ep, desc, ext.Interface())\n\t\t\t} else {\n\t\t\t\told, err := GetExtension(ep, desc)\n\t\t\t\tvar sl reflect.Value\n\t\t\t\tif err == nil {\n\t\t\t\t\tsl = reflect.ValueOf(old) // existing slice\n\t\t\t\t} else {\n\t\t\t\t\tsl = reflect.MakeSlice(typ, 0, 1)\n\t\t\t\t}\n\t\t\t\tsl = reflect.Append(sl, ext)\n\t\t\t\tSetExtension(ep, desc, sl.Interface())\n\t\t\t}\n\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// This is a normal, non-extension field.\n\t\tname := tok.value\n\t\tvar dst reflect.Value\n\t\tfi, props, ok := structFieldByName(sprops, name)\n\t\tif ok {\n\t\t\tdst = sv.Field(fi)\n\t\t} else if oop, ok := sprops.OneofTypes[name]; ok {\n\t\t\t// It is a oneof.\n\t\t\tprops = oop.Prop\n\t\t\tnv := reflect.New(oop.Type.Elem())\n\t\t\tdst = nv.Elem().Field(0)\n\t\t\tfield := sv.Field(oop.Field)\n\t\t\tif !field.IsNil() {\n\t\t\t\treturn p.errorf(\"field '%s' would overwrite already parsed oneof '%s'\", name, sv.Type().Field(oop.Field).Name)\n\t\t\t}\n\t\t\tfield.Set(nv)\n\t\t}\n\t\tif !dst.IsValid() {\n\t\t\treturn p.errorf(\"unknown field name %q in %v\", name, st)\n\t\t}\n\n\t\tif dst.Kind() == reflect.Map {\n\t\t\t// Consume any colon.\n\t\t\tif err := p.checkForColon(props, dst.Type()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Construct the map if it doesn't already exist.\n\t\t\tif dst.IsNil() {\n\t\t\t\tdst.Set(reflect.MakeMap(dst.Type()))\n\t\t\t}\n\t\t\tkey := reflect.New(dst.Type().Key()).Elem()\n\t\t\tval := reflect.New(dst.Type().Elem()).Elem()\n\n\t\t\t// The map entry should be this sequence of tokens:\n\t\t\t//\t< key : KEY value : VALUE >\n\t\t\t// However, implementations may omit key or value, and technically\n\t\t\t// we should support them in any order.  See b/28924776 for a time\n\t\t\t// this went wrong.\n\n\t\t\ttok := p.next()\n\t\t\tvar terminator string\n\t\t\tswitch tok.value {\n\t\t\tcase \"<\":\n\t\t\t\tterminator = \">\"\n\t\t\tcase \"{\":\n\t\t\t\tterminator = \"}\"\n\t\t\tdefault:\n\t\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t\t}\n\t\t\tfor {\n\t\t\t\ttok := p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\tif tok.value == terminator {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tswitch tok.value {\n\t\t\t\tcase \"key\":\n\t\t\t\t\tif err := p.consumeToken(\":\"); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.readAny(key, props.MapKeyProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\tcase \"value\":\n\t\t\t\t\tif err := p.checkForColon(props.MapValProp, dst.Type().Elem()); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.readAny(val, props.MapValProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tp.back()\n\t\t\t\t\treturn p.errorf(`expected \"key\", \"value\", or %q, found %q`, terminator, tok.value)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdst.SetMapIndex(key, val)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check that it's not already set if it's not a repeated field.\n\t\tif !props.Repeated && fieldSet[name] {\n\t\t\treturn p.errorf(\"non-repeated field %q was repeated\", name)\n\t\t}\n\n\t\tif err := p.checkForColon(props, dst.Type()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Parse into the field.\n\t\tfieldSet[name] = true\n\t\tif err := p.readAny(dst, props); err != nil {\n\t\t\tif _, ok := err.(*RequiredNotSetError); !ok {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treqFieldErr = err\n\t\t}\n\t\tif props.Required {\n\t\t\treqCount--\n\t\t}\n\n\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\n\tif reqCount > 0 {\n\t\treturn p.missingRequiredFieldError(sv)\n\t}\n\treturn reqFieldErr\n}\n\n// consumeExtName consumes extension name or expanded Any type URL and the\n// following ']'. It returns the name or URL consumed.\nfunc (p *textParser) consumeExtName() (string, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn \"\", tok.err\n\t}\n\n\t// If extension name or type url is quoted, it's a single token.\n\tif len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] {\n\t\tname, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0]))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn name, p.consumeToken(\"]\")\n\t}\n\n\t// Consume everything up to \"]\"\n\tvar parts []string\n\tfor tok.value != \"]\" {\n\t\tparts = append(parts, tok.value)\n\t\ttok = p.next()\n\t\tif tok.err != nil {\n\t\t\treturn \"\", p.errorf(\"unrecognized type_url or extension name: %s\", tok.err)\n\t\t}\n\t\tif p.done && tok.value != \"]\" {\n\t\t\treturn \"\", p.errorf(\"unclosed type_url or extension name\")\n\t\t}\n\t}\n\treturn strings.Join(parts, \"\"), nil\n}\n\n// consumeOptionalSeparator consumes an optional semicolon or comma.\n// It is used in readStruct to provide backward compatibility.\nfunc (p *textParser) consumeOptionalSeparator() error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \";\" && tok.value != \",\" {\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) readAny(v reflect.Value, props *Properties) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn p.errorf(\"unexpected EOF\")\n\t}\n\n\tswitch fv := v; fv.Kind() {\n\tcase reflect.Slice:\n\t\tat := v.Type()\n\t\tif at.Elem().Kind() == reflect.Uint8 {\n\t\t\t// Special case for []byte\n\t\t\tif tok.value[0] != '\"' && tok.value[0] != '\\'' {\n\t\t\t\t// Deliberately written out here, as the error after\n\t\t\t\t// this switch statement would write \"invalid []byte: ...\",\n\t\t\t\t// which is not as user-friendly.\n\t\t\t\treturn p.errorf(\"invalid string: %v\", tok.value)\n\t\t\t}\n\t\t\tbytes := []byte(tok.unquoted)\n\t\t\tfv.Set(reflect.ValueOf(bytes))\n\t\t\treturn nil\n\t\t}\n\t\t// Repeated field.\n\t\tif tok.value == \"[\" {\n\t\t\t// Repeated field with list notation, like [1,2,3].\n\t\t\tfor {\n\t\t\t\tfv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))\n\t\t\t\terr := p.readAny(fv.Index(fv.Len()-1), props)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\ttok := p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\tif tok.value == \"]\" {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif tok.value != \",\" {\n\t\t\t\t\treturn p.errorf(\"Expected ']' or ',' found %q\", tok.value)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\t// One value of the repeated field.\n\t\tp.back()\n\t\tfv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))\n\t\treturn p.readAny(fv.Index(fv.Len()-1), props)\n\tcase reflect.Bool:\n\t\t// true/1/t/True or false/f/0/False.\n\t\tswitch tok.value {\n\t\tcase \"true\", \"1\", \"t\", \"True\":\n\t\t\tfv.SetBool(true)\n\t\t\treturn nil\n\t\tcase \"false\", \"0\", \"f\", \"False\":\n\t\t\tfv.SetBool(false)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tv := tok.value\n\t\t// Ignore 'f' for compatibility with output generated by C++, but don't\n\t\t// remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tif strings.HasSuffix(v, \"f\") && tok.value != \"-inf\" && tok.value != \"inf\" {\n\t\t\tv = v[:len(v)-1]\n\t\t}\n\t\tif f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil {\n\t\t\tfv.SetFloat(f)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int32:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\n\t\tif len(props.Enum) == 0 {\n\t\t\tbreak\n\t\t}\n\t\tm, ok := enumValueMaps[props.Enum]\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tx, ok := m[tok.value]\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tfv.SetInt(int64(x))\n\t\treturn nil\n\tcase reflect.Int64:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 64); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// A basic field (indirected through pointer), or a repeated message/group\n\t\tp.back()\n\t\tfv.Set(reflect.New(fv.Type().Elem()))\n\t\treturn p.readAny(fv.Elem(), props)\n\tcase reflect.String:\n\t\tif tok.value[0] == '\"' || tok.value[0] == '\\'' {\n\t\t\tfv.SetString(tok.unquoted)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Struct:\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tdefault:\n\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\t\t// TODO: Handle nested messages which implement encoding.TextUnmarshaler.\n\t\treturn p.readStruct(fv, terminator)\n\tcase reflect.Uint32:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\tfv.SetUint(uint64(x))\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint64:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn p.errorf(\"invalid %v: %v\", v.Type(), tok.value)\n}\n\n// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb\n// before starting to unmarshal, so any existing data in pb is always removed.\n// If a required field is not set and no other error occurs,\n// UnmarshalText returns *RequiredNotSetError.\nfunc UnmarshalText(s string, pb Message) error {\n\tif um, ok := pb.(encoding.TextUnmarshaler); ok {\n\t\treturn um.UnmarshalText([]byte(s))\n\t}\n\tpb.Reset()\n\tv := reflect.ValueOf(pb)\n\treturn newTextParser(s).readStruct(v.Elem(), \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/internal/commandinfo.go",
    "content": "// Copyright 2014 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage internal // import \"github.com/gomodule/redigo/internal\"\n\nimport (\n\t\"strings\"\n)\n\nconst (\n\tWatchState = 1 << iota\n\tMultiState\n\tSubscribeState\n\tMonitorState\n)\n\ntype CommandInfo struct {\n\tSet, Clear int\n}\n\nvar commandInfos = map[string]CommandInfo{\n\t\"WATCH\":      {Set: WatchState},\n\t\"UNWATCH\":    {Clear: WatchState},\n\t\"MULTI\":      {Set: MultiState},\n\t\"EXEC\":       {Clear: WatchState | MultiState},\n\t\"DISCARD\":    {Clear: WatchState | MultiState},\n\t\"PSUBSCRIBE\": {Set: SubscribeState},\n\t\"SUBSCRIBE\":  {Set: SubscribeState},\n\t\"MONITOR\":    {Set: MonitorState},\n}\n\nfunc init() {\n\tfor n, ci := range commandInfos {\n\t\tcommandInfos[strings.ToLower(n)] = ci\n\t}\n}\n\nfunc LookupCommandInfo(commandName string) CommandInfo {\n\tif ci, ok := commandInfos[commandName]; ok {\n\t\treturn ci\n\t}\n\treturn commandInfos[strings.ToUpper(commandName)]\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/conn.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/url\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar (\n\t_ ConnWithTimeout = (*conn)(nil)\n)\n\n// conn is the low-level implementation of Conn\ntype conn struct {\n\t// Shared\n\tmu      sync.Mutex\n\tpending int\n\terr     error\n\tconn    net.Conn\n\n\t// Read\n\treadTimeout time.Duration\n\tbr          *bufio.Reader\n\n\t// Write\n\twriteTimeout time.Duration\n\tbw           *bufio.Writer\n\n\t// Scratch space for formatting argument length.\n\t// '*' or '$', length, \"\\r\\n\"\n\tlenScratch [32]byte\n\n\t// Scratch space for formatting integers and floats.\n\tnumScratch [40]byte\n}\n\n// DialTimeout acts like Dial but takes timeouts for establishing the\n// connection to the server, writing a command and reading a reply.\n//\n// Deprecated: Use Dial with options instead.\nfunc DialTimeout(network, address string, connectTimeout, readTimeout, writeTimeout time.Duration) (Conn, error) {\n\treturn Dial(network, address,\n\t\tDialConnectTimeout(connectTimeout),\n\t\tDialReadTimeout(readTimeout),\n\t\tDialWriteTimeout(writeTimeout))\n}\n\n// DialOption specifies an option for dialing a Redis server.\ntype DialOption struct {\n\tf func(*dialOptions)\n}\n\ntype dialOptions struct {\n\treadTimeout  time.Duration\n\twriteTimeout time.Duration\n\tdialer       *net.Dialer\n\tdial         func(network, addr string) (net.Conn, error)\n\tdb           int\n\tpassword     string\n\tuseTLS       bool\n\tskipVerify   bool\n\ttlsConfig    *tls.Config\n}\n\n// DialReadTimeout specifies the timeout for reading a single command reply.\nfunc DialReadTimeout(d time.Duration) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.readTimeout = d\n\t}}\n}\n\n// DialWriteTimeout specifies the timeout for writing a single command.\nfunc DialWriteTimeout(d time.Duration) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.writeTimeout = d\n\t}}\n}\n\n// DialConnectTimeout specifies the timeout for connecting to the Redis server when\n// no DialNetDial option is specified.\nfunc DialConnectTimeout(d time.Duration) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.dialer.Timeout = d\n\t}}\n}\n\n// DialKeepAlive specifies the keep-alive period for TCP connections to the Redis server\n// when no DialNetDial option is specified.\n// If zero, keep-alives are not enabled. If no DialKeepAlive option is specified then\n// the default of 5 minutes is used to ensure that half-closed TCP sessions are detected.\nfunc DialKeepAlive(d time.Duration) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.dialer.KeepAlive = d\n\t}}\n}\n\n// DialNetDial specifies a custom dial function for creating TCP\n// connections, otherwise a net.Dialer customized via the other options is used.\n// DialNetDial overrides DialConnectTimeout and DialKeepAlive.\nfunc DialNetDial(dial func(network, addr string) (net.Conn, error)) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.dial = dial\n\t}}\n}\n\n// DialDatabase specifies the database to select when dialing a connection.\nfunc DialDatabase(db int) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.db = db\n\t}}\n}\n\n// DialPassword specifies the password to use when connecting to\n// the Redis server.\nfunc DialPassword(password string) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.password = password\n\t}}\n}\n\n// DialTLSConfig specifies the config to use when a TLS connection is dialed.\n// Has no effect when not dialing a TLS connection.\nfunc DialTLSConfig(c *tls.Config) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.tlsConfig = c\n\t}}\n}\n\n// DialTLSSkipVerify disables server name verification when connecting over\n// TLS. Has no effect when not dialing a TLS connection.\nfunc DialTLSSkipVerify(skip bool) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.skipVerify = skip\n\t}}\n}\n\n// DialUseTLS specifies whether TLS should be used when connecting to the\n// server. This option is ignore by DialURL.\nfunc DialUseTLS(useTLS bool) DialOption {\n\treturn DialOption{func(do *dialOptions) {\n\t\tdo.useTLS = useTLS\n\t}}\n}\n\n// Dial connects to the Redis server at the given network and\n// address using the specified options.\nfunc Dial(network, address string, options ...DialOption) (Conn, error) {\n\tdo := dialOptions{\n\t\tdialer: &net.Dialer{\n\t\t\tKeepAlive: time.Minute * 5,\n\t\t},\n\t}\n\tfor _, option := range options {\n\t\toption.f(&do)\n\t}\n\tif do.dial == nil {\n\t\tdo.dial = do.dialer.Dial\n\t}\n\n\tnetConn, err := do.dial(network, address)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif do.useTLS {\n\t\tvar tlsConfig *tls.Config\n\t\tif do.tlsConfig == nil {\n\t\t\ttlsConfig = &tls.Config{InsecureSkipVerify: do.skipVerify}\n\t\t} else {\n\t\t\ttlsConfig = cloneTLSConfig(do.tlsConfig)\n\t\t}\n\t\tif tlsConfig.ServerName == \"\" {\n\t\t\thost, _, err := net.SplitHostPort(address)\n\t\t\tif err != nil {\n\t\t\t\tnetConn.Close()\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\ttlsConfig.ServerName = host\n\t\t}\n\n\t\ttlsConn := tls.Client(netConn, tlsConfig)\n\t\tif err := tlsConn.Handshake(); err != nil {\n\t\t\tnetConn.Close()\n\t\t\treturn nil, err\n\t\t}\n\t\tnetConn = tlsConn\n\t}\n\n\tc := &conn{\n\t\tconn:         netConn,\n\t\tbw:           bufio.NewWriter(netConn),\n\t\tbr:           bufio.NewReader(netConn),\n\t\treadTimeout:  do.readTimeout,\n\t\twriteTimeout: do.writeTimeout,\n\t}\n\n\tif do.password != \"\" {\n\t\tif _, err := c.Do(\"AUTH\", do.password); err != nil {\n\t\t\tnetConn.Close()\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif do.db != 0 {\n\t\tif _, err := c.Do(\"SELECT\", do.db); err != nil {\n\t\t\tnetConn.Close()\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn c, nil\n}\n\nvar pathDBRegexp = regexp.MustCompile(`/(\\d*)\\z`)\n\n// DialURL connects to a Redis server at the given URL using the Redis\n// URI scheme. URLs should follow the draft IANA specification for the\n// scheme (https://www.iana.org/assignments/uri-schemes/prov/redis).\nfunc DialURL(rawurl string, options ...DialOption) (Conn, error) {\n\tu, err := url.Parse(rawurl)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif u.Scheme != \"redis\" && u.Scheme != \"rediss\" {\n\t\treturn nil, fmt.Errorf(\"invalid redis URL scheme: %s\", u.Scheme)\n\t}\n\n\t// As per the IANA draft spec, the host defaults to localhost and\n\t// the port defaults to 6379.\n\thost, port, err := net.SplitHostPort(u.Host)\n\tif err != nil {\n\t\t// assume port is missing\n\t\thost = u.Host\n\t\tport = \"6379\"\n\t}\n\tif host == \"\" {\n\t\thost = \"localhost\"\n\t}\n\taddress := net.JoinHostPort(host, port)\n\n\tif u.User != nil {\n\t\tpassword, isSet := u.User.Password()\n\t\tif isSet {\n\t\t\toptions = append(options, DialPassword(password))\n\t\t}\n\t}\n\n\tmatch := pathDBRegexp.FindStringSubmatch(u.Path)\n\tif len(match) == 2 {\n\t\tdb := 0\n\t\tif len(match[1]) > 0 {\n\t\t\tdb, err = strconv.Atoi(match[1])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid database: %s\", u.Path[1:])\n\t\t\t}\n\t\t}\n\t\tif db != 0 {\n\t\t\toptions = append(options, DialDatabase(db))\n\t\t}\n\t} else if u.Path != \"\" {\n\t\treturn nil, fmt.Errorf(\"invalid database: %s\", u.Path[1:])\n\t}\n\n\toptions = append(options, DialUseTLS(u.Scheme == \"rediss\"))\n\n\treturn Dial(\"tcp\", address, options...)\n}\n\n// NewConn returns a new Redigo connection for the given net connection.\nfunc NewConn(netConn net.Conn, readTimeout, writeTimeout time.Duration) Conn {\n\treturn &conn{\n\t\tconn:         netConn,\n\t\tbw:           bufio.NewWriter(netConn),\n\t\tbr:           bufio.NewReader(netConn),\n\t\treadTimeout:  readTimeout,\n\t\twriteTimeout: writeTimeout,\n\t}\n}\n\nfunc (c *conn) Close() error {\n\tc.mu.Lock()\n\terr := c.err\n\tif c.err == nil {\n\t\tc.err = errors.New(\"redigo: closed\")\n\t\terr = c.conn.Close()\n\t}\n\tc.mu.Unlock()\n\treturn err\n}\n\nfunc (c *conn) fatal(err error) error {\n\tc.mu.Lock()\n\tif c.err == nil {\n\t\tc.err = err\n\t\t// Close connection to force errors on subsequent calls and to unblock\n\t\t// other reader or writer.\n\t\tc.conn.Close()\n\t}\n\tc.mu.Unlock()\n\treturn err\n}\n\nfunc (c *conn) Err() error {\n\tc.mu.Lock()\n\terr := c.err\n\tc.mu.Unlock()\n\treturn err\n}\n\nfunc (c *conn) writeLen(prefix byte, n int) error {\n\tc.lenScratch[len(c.lenScratch)-1] = '\\n'\n\tc.lenScratch[len(c.lenScratch)-2] = '\\r'\n\ti := len(c.lenScratch) - 3\n\tfor {\n\t\tc.lenScratch[i] = byte('0' + n%10)\n\t\ti -= 1\n\t\tn = n / 10\n\t\tif n == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\tc.lenScratch[i] = prefix\n\t_, err := c.bw.Write(c.lenScratch[i:])\n\treturn err\n}\n\nfunc (c *conn) writeString(s string) error {\n\tc.writeLen('$', len(s))\n\tc.bw.WriteString(s)\n\t_, err := c.bw.WriteString(\"\\r\\n\")\n\treturn err\n}\n\nfunc (c *conn) writeBytes(p []byte) error {\n\tc.writeLen('$', len(p))\n\tc.bw.Write(p)\n\t_, err := c.bw.WriteString(\"\\r\\n\")\n\treturn err\n}\n\nfunc (c *conn) writeInt64(n int64) error {\n\treturn c.writeBytes(strconv.AppendInt(c.numScratch[:0], n, 10))\n}\n\nfunc (c *conn) writeFloat64(n float64) error {\n\treturn c.writeBytes(strconv.AppendFloat(c.numScratch[:0], n, 'g', -1, 64))\n}\n\nfunc (c *conn) writeCommand(cmd string, args []interface{}) error {\n\tc.writeLen('*', 1+len(args))\n\tif err := c.writeString(cmd); err != nil {\n\t\treturn err\n\t}\n\tfor _, arg := range args {\n\t\tif err := c.writeArg(arg, true); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (c *conn) writeArg(arg interface{}, argumentTypeOK bool) (err error) {\n\tswitch arg := arg.(type) {\n\tcase string:\n\t\treturn c.writeString(arg)\n\tcase []byte:\n\t\treturn c.writeBytes(arg)\n\tcase int:\n\t\treturn c.writeInt64(int64(arg))\n\tcase int64:\n\t\treturn c.writeInt64(arg)\n\tcase float64:\n\t\treturn c.writeFloat64(arg)\n\tcase bool:\n\t\tif arg {\n\t\t\treturn c.writeString(\"1\")\n\t\t} else {\n\t\t\treturn c.writeString(\"0\")\n\t\t}\n\tcase nil:\n\t\treturn c.writeString(\"\")\n\tcase Argument:\n\t\tif argumentTypeOK {\n\t\t\treturn c.writeArg(arg.RedisArg(), false)\n\t\t}\n\t\t// See comment in default clause below.\n\t\tvar buf bytes.Buffer\n\t\tfmt.Fprint(&buf, arg)\n\t\treturn c.writeBytes(buf.Bytes())\n\tdefault:\n\t\t// This default clause is intended to handle builtin numeric types.\n\t\t// The function should return an error for other types, but this is not\n\t\t// done for compatibility with previous versions of the package.\n\t\tvar buf bytes.Buffer\n\t\tfmt.Fprint(&buf, arg)\n\t\treturn c.writeBytes(buf.Bytes())\n\t}\n}\n\ntype protocolError string\n\nfunc (pe protocolError) Error() string {\n\treturn fmt.Sprintf(\"redigo: %s (possible server error or unsupported concurrent read by application)\", string(pe))\n}\n\nfunc (c *conn) readLine() ([]byte, error) {\n\tp, err := c.br.ReadSlice('\\n')\n\tif err == bufio.ErrBufferFull {\n\t\treturn nil, protocolError(\"long response line\")\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ti := len(p) - 2\n\tif i < 0 || p[i] != '\\r' {\n\t\treturn nil, protocolError(\"bad response line terminator\")\n\t}\n\treturn p[:i], nil\n}\n\n// parseLen parses bulk string and array lengths.\nfunc parseLen(p []byte) (int, error) {\n\tif len(p) == 0 {\n\t\treturn -1, protocolError(\"malformed length\")\n\t}\n\n\tif p[0] == '-' && len(p) == 2 && p[1] == '1' {\n\t\t// handle $-1 and $-1 null replies.\n\t\treturn -1, nil\n\t}\n\n\tvar n int\n\tfor _, b := range p {\n\t\tn *= 10\n\t\tif b < '0' || b > '9' {\n\t\t\treturn -1, protocolError(\"illegal bytes in length\")\n\t\t}\n\t\tn += int(b - '0')\n\t}\n\n\treturn n, nil\n}\n\n// parseInt parses an integer reply.\nfunc parseInt(p []byte) (interface{}, error) {\n\tif len(p) == 0 {\n\t\treturn 0, protocolError(\"malformed integer\")\n\t}\n\n\tvar negate bool\n\tif p[0] == '-' {\n\t\tnegate = true\n\t\tp = p[1:]\n\t\tif len(p) == 0 {\n\t\t\treturn 0, protocolError(\"malformed integer\")\n\t\t}\n\t}\n\n\tvar n int64\n\tfor _, b := range p {\n\t\tn *= 10\n\t\tif b < '0' || b > '9' {\n\t\t\treturn 0, protocolError(\"illegal bytes in length\")\n\t\t}\n\t\tn += int64(b - '0')\n\t}\n\n\tif negate {\n\t\tn = -n\n\t}\n\treturn n, nil\n}\n\nvar (\n\tokReply   interface{} = \"OK\"\n\tpongReply interface{} = \"PONG\"\n)\n\nfunc (c *conn) readReply() (interface{}, error) {\n\tline, err := c.readLine()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(line) == 0 {\n\t\treturn nil, protocolError(\"short response line\")\n\t}\n\tswitch line[0] {\n\tcase '+':\n\t\tswitch {\n\t\tcase len(line) == 3 && line[1] == 'O' && line[2] == 'K':\n\t\t\t// Avoid allocation for frequent \"+OK\" response.\n\t\t\treturn okReply, nil\n\t\tcase len(line) == 5 && line[1] == 'P' && line[2] == 'O' && line[3] == 'N' && line[4] == 'G':\n\t\t\t// Avoid allocation in PING command benchmarks :)\n\t\t\treturn pongReply, nil\n\t\tdefault:\n\t\t\treturn string(line[1:]), nil\n\t\t}\n\tcase '-':\n\t\treturn Error(string(line[1:])), nil\n\tcase ':':\n\t\treturn parseInt(line[1:])\n\tcase '$':\n\t\tn, err := parseLen(line[1:])\n\t\tif n < 0 || err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tp := make([]byte, n)\n\t\t_, err = io.ReadFull(c.br, p)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif line, err := c.readLine(); err != nil {\n\t\t\treturn nil, err\n\t\t} else if len(line) != 0 {\n\t\t\treturn nil, protocolError(\"bad bulk string format\")\n\t\t}\n\t\treturn p, nil\n\tcase '*':\n\t\tn, err := parseLen(line[1:])\n\t\tif n < 0 || err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tr := make([]interface{}, n)\n\t\tfor i := range r {\n\t\t\tr[i], err = c.readReply()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn r, nil\n\t}\n\treturn nil, protocolError(\"unexpected response line\")\n}\n\nfunc (c *conn) Send(cmd string, args ...interface{}) error {\n\tc.mu.Lock()\n\tc.pending += 1\n\tc.mu.Unlock()\n\tif c.writeTimeout != 0 {\n\t\tc.conn.SetWriteDeadline(time.Now().Add(c.writeTimeout))\n\t}\n\tif err := c.writeCommand(cmd, args); err != nil {\n\t\treturn c.fatal(err)\n\t}\n\treturn nil\n}\n\nfunc (c *conn) Flush() error {\n\tif c.writeTimeout != 0 {\n\t\tc.conn.SetWriteDeadline(time.Now().Add(c.writeTimeout))\n\t}\n\tif err := c.bw.Flush(); err != nil {\n\t\treturn c.fatal(err)\n\t}\n\treturn nil\n}\n\nfunc (c *conn) Receive() (interface{}, error) {\n\treturn c.ReceiveWithTimeout(c.readTimeout)\n}\n\nfunc (c *conn) ReceiveWithTimeout(timeout time.Duration) (reply interface{}, err error) {\n\tvar deadline time.Time\n\tif timeout != 0 {\n\t\tdeadline = time.Now().Add(timeout)\n\t}\n\tc.conn.SetReadDeadline(deadline)\n\n\tif reply, err = c.readReply(); err != nil {\n\t\treturn nil, c.fatal(err)\n\t}\n\t// When using pub/sub, the number of receives can be greater than the\n\t// number of sends. To enable normal use of the connection after\n\t// unsubscribing from all channels, we do not decrement pending to a\n\t// negative value.\n\t//\n\t// The pending field is decremented after the reply is read to handle the\n\t// case where Receive is called before Send.\n\tc.mu.Lock()\n\tif c.pending > 0 {\n\t\tc.pending -= 1\n\t}\n\tc.mu.Unlock()\n\tif err, ok := reply.(Error); ok {\n\t\treturn nil, err\n\t}\n\treturn\n}\n\nfunc (c *conn) Do(cmd string, args ...interface{}) (interface{}, error) {\n\treturn c.DoWithTimeout(c.readTimeout, cmd, args...)\n}\n\nfunc (c *conn) DoWithTimeout(readTimeout time.Duration, cmd string, args ...interface{}) (interface{}, error) {\n\tc.mu.Lock()\n\tpending := c.pending\n\tc.pending = 0\n\tc.mu.Unlock()\n\n\tif cmd == \"\" && pending == 0 {\n\t\treturn nil, nil\n\t}\n\n\tif c.writeTimeout != 0 {\n\t\tc.conn.SetWriteDeadline(time.Now().Add(c.writeTimeout))\n\t}\n\n\tif cmd != \"\" {\n\t\tif err := c.writeCommand(cmd, args); err != nil {\n\t\t\treturn nil, c.fatal(err)\n\t\t}\n\t}\n\n\tif err := c.bw.Flush(); err != nil {\n\t\treturn nil, c.fatal(err)\n\t}\n\n\tvar deadline time.Time\n\tif readTimeout != 0 {\n\t\tdeadline = time.Now().Add(readTimeout)\n\t}\n\tc.conn.SetReadDeadline(deadline)\n\n\tif cmd == \"\" {\n\t\treply := make([]interface{}, pending)\n\t\tfor i := range reply {\n\t\t\tr, e := c.readReply()\n\t\t\tif e != nil {\n\t\t\t\treturn nil, c.fatal(e)\n\t\t\t}\n\t\t\treply[i] = r\n\t\t}\n\t\treturn reply, nil\n\t}\n\n\tvar err error\n\tvar reply interface{}\n\tfor i := 0; i <= pending; i++ {\n\t\tvar e error\n\t\tif reply, e = c.readReply(); e != nil {\n\t\t\treturn nil, c.fatal(e)\n\t\t}\n\t\tif e, ok := reply.(Error); ok && err == nil {\n\t\t\terr = e\n\t\t}\n\t}\n\treturn reply, err\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/doc.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\n// Package redis is a client for the Redis database.\n//\n// The Redigo FAQ (https://github.com/gomodule/redigo/wiki/FAQ) contains more\n// documentation about this package.\n//\n// Connections\n//\n// The Conn interface is the primary interface for working with Redis.\n// Applications create connections by calling the Dial, DialWithTimeout or\n// NewConn functions. In the future, functions will be added for creating\n// sharded and other types of connections.\n//\n// The application must call the connection Close method when the application\n// is done with the connection.\n//\n// Executing Commands\n//\n// The Conn interface has a generic method for executing Redis commands:\n//\n//  Do(commandName string, args ...interface{}) (reply interface{}, err error)\n//\n// The Redis command reference (http://redis.io/commands) lists the available\n// commands. An example of using the Redis APPEND command is:\n//\n//  n, err := conn.Do(\"APPEND\", \"key\", \"value\")\n//\n// The Do method converts command arguments to bulk strings for transmission\n// to the server as follows:\n//\n//  Go Type                 Conversion\n//  []byte                  Sent as is\n//  string                  Sent as is\n//  int, int64              strconv.FormatInt(v)\n//  float64                 strconv.FormatFloat(v, 'g', -1, 64)\n//  bool                    true -> \"1\", false -> \"0\"\n//  nil                     \"\"\n//  all other types         fmt.Fprint(w, v)\n//\n// Redis command reply types are represented using the following Go types:\n//\n//  Redis type              Go type\n//  error                   redis.Error\n//  integer                 int64\n//  simple string           string\n//  bulk string             []byte or nil if value not present.\n//  array                   []interface{} or nil if value not present.\n//\n// Use type assertions or the reply helper functions to convert from\n// interface{} to the specific Go type for the command result.\n//\n// Pipelining\n//\n// Connections support pipelining using the Send, Flush and Receive methods.\n//\n//  Send(commandName string, args ...interface{}) error\n//  Flush() error\n//  Receive() (reply interface{}, err error)\n//\n// Send writes the command to the connection's output buffer. Flush flushes the\n// connection's output buffer to the server. Receive reads a single reply from\n// the server. The following example shows a simple pipeline.\n//\n//  c.Send(\"SET\", \"foo\", \"bar\")\n//  c.Send(\"GET\", \"foo\")\n//  c.Flush()\n//  c.Receive() // reply from SET\n//  v, err = c.Receive() // reply from GET\n//\n// The Do method combines the functionality of the Send, Flush and Receive\n// methods. The Do method starts by writing the command and flushing the output\n// buffer. Next, the Do method receives all pending replies including the reply\n// for the command just sent by Do. If any of the received replies is an error,\n// then Do returns the error. If there are no errors, then Do returns the last\n// reply. If the command argument to the Do method is \"\", then the Do method\n// will flush the output buffer and receive pending replies without sending a\n// command.\n//\n// Use the Send and Do methods to implement pipelined transactions.\n//\n//  c.Send(\"MULTI\")\n//  c.Send(\"INCR\", \"foo\")\n//  c.Send(\"INCR\", \"bar\")\n//  r, err := c.Do(\"EXEC\")\n//  fmt.Println(r) // prints [1, 1]\n//\n// Concurrency\n//\n// Connections support one concurrent caller to the Receive method and one\n// concurrent caller to the Send and Flush methods. No other concurrency is\n// supported including concurrent calls to the Do method.\n//\n// For full concurrent access to Redis, use the thread-safe Pool to get, use\n// and release a connection from within a goroutine. Connections returned from\n// a Pool have the concurrency restrictions described in the previous\n// paragraph.\n//\n// Publish and Subscribe\n//\n// Use the Send, Flush and Receive methods to implement Pub/Sub subscribers.\n//\n//  c.Send(\"SUBSCRIBE\", \"example\")\n//  c.Flush()\n//  for {\n//      reply, err := c.Receive()\n//      if err != nil {\n//          return err\n//      }\n//      // process pushed message\n//  }\n//\n// The PubSubConn type wraps a Conn with convenience methods for implementing\n// subscribers. The Subscribe, PSubscribe, Unsubscribe and PUnsubscribe methods\n// send and flush a subscription management command. The receive method\n// converts a pushed message to convenient types for use in a type switch.\n//\n//  psc := redis.PubSubConn{Conn: c}\n//  psc.Subscribe(\"example\")\n//  for {\n//      switch v := psc.Receive().(type) {\n//      case redis.Message:\n//          fmt.Printf(\"%s: message: %s\\n\", v.Channel, v.Data)\n//      case redis.Subscription:\n//          fmt.Printf(\"%s: %s %d\\n\", v.Channel, v.Kind, v.Count)\n//      case error:\n//          return v\n//      }\n//  }\n//\n// Reply Helpers\n//\n// The Bool, Int, Bytes, String, Strings and Values functions convert a reply\n// to a value of a specific type. To allow convenient wrapping of calls to the\n// connection Do and Receive methods, the functions take a second argument of\n// type error.  If the error is non-nil, then the helper function returns the\n// error. If the error is nil, the function converts the reply to the specified\n// type:\n//\n//  exists, err := redis.Bool(c.Do(\"EXISTS\", \"foo\"))\n//  if err != nil {\n//      // handle error return from c.Do or type conversion error.\n//  }\n//\n// The Scan function converts elements of a array reply to Go types:\n//\n//  var value1 int\n//  var value2 string\n//  reply, err := redis.Values(c.Do(\"MGET\", \"key1\", \"key2\"))\n//  if err != nil {\n//      // handle error\n//  }\n//   if _, err := redis.Scan(reply, &value1, &value2); err != nil {\n//      // handle error\n//  }\n//\n// Errors\n//\n// Connection methods return error replies from the server as type redis.Error.\n//\n// Call the connection Err() method to determine if the connection encountered\n// non-recoverable error such as a network error or protocol parsing error. If\n// Err() returns a non-nil value, then the connection is not usable and should\n// be closed.\npackage redis // import \"github.com/gomodule/redigo/redis\"\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/go16.go",
    "content": "// +build !go1.7\n\npackage redis\n\nimport \"crypto/tls\"\n\nfunc cloneTLSConfig(cfg *tls.Config) *tls.Config {\n\treturn &tls.Config{\n\t\tRand:                     cfg.Rand,\n\t\tTime:                     cfg.Time,\n\t\tCertificates:             cfg.Certificates,\n\t\tNameToCertificate:        cfg.NameToCertificate,\n\t\tGetCertificate:           cfg.GetCertificate,\n\t\tRootCAs:                  cfg.RootCAs,\n\t\tNextProtos:               cfg.NextProtos,\n\t\tServerName:               cfg.ServerName,\n\t\tClientAuth:               cfg.ClientAuth,\n\t\tClientCAs:                cfg.ClientCAs,\n\t\tInsecureSkipVerify:       cfg.InsecureSkipVerify,\n\t\tCipherSuites:             cfg.CipherSuites,\n\t\tPreferServerCipherSuites: cfg.PreferServerCipherSuites,\n\t\tClientSessionCache:       cfg.ClientSessionCache,\n\t\tMinVersion:               cfg.MinVersion,\n\t\tMaxVersion:               cfg.MaxVersion,\n\t\tCurvePreferences:         cfg.CurvePreferences,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/go17.go",
    "content": "// +build go1.7,!go1.8\n\npackage redis\n\nimport \"crypto/tls\"\n\nfunc cloneTLSConfig(cfg *tls.Config) *tls.Config {\n\treturn &tls.Config{\n\t\tRand:                        cfg.Rand,\n\t\tTime:                        cfg.Time,\n\t\tCertificates:                cfg.Certificates,\n\t\tNameToCertificate:           cfg.NameToCertificate,\n\t\tGetCertificate:              cfg.GetCertificate,\n\t\tRootCAs:                     cfg.RootCAs,\n\t\tNextProtos:                  cfg.NextProtos,\n\t\tServerName:                  cfg.ServerName,\n\t\tClientAuth:                  cfg.ClientAuth,\n\t\tClientCAs:                   cfg.ClientCAs,\n\t\tInsecureSkipVerify:          cfg.InsecureSkipVerify,\n\t\tCipherSuites:                cfg.CipherSuites,\n\t\tPreferServerCipherSuites:    cfg.PreferServerCipherSuites,\n\t\tClientSessionCache:          cfg.ClientSessionCache,\n\t\tMinVersion:                  cfg.MinVersion,\n\t\tMaxVersion:                  cfg.MaxVersion,\n\t\tCurvePreferences:            cfg.CurvePreferences,\n\t\tDynamicRecordSizingDisabled: cfg.DynamicRecordSizingDisabled,\n\t\tRenegotiation:               cfg.Renegotiation,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/go18.go",
    "content": "// +build go1.8\n\npackage redis\n\nimport \"crypto/tls\"\n\nfunc cloneTLSConfig(cfg *tls.Config) *tls.Config {\n\treturn cfg.Clone()\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/log.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"time\"\n)\n\nvar (\n\t_ ConnWithTimeout = (*loggingConn)(nil)\n)\n\n// NewLoggingConn returns a logging wrapper around a connection.\nfunc NewLoggingConn(conn Conn, logger *log.Logger, prefix string) Conn {\n\tif prefix != \"\" {\n\t\tprefix = prefix + \".\"\n\t}\n\treturn &loggingConn{conn, logger, prefix}\n}\n\ntype loggingConn struct {\n\tConn\n\tlogger *log.Logger\n\tprefix string\n}\n\nfunc (c *loggingConn) Close() error {\n\terr := c.Conn.Close()\n\tvar buf bytes.Buffer\n\tfmt.Fprintf(&buf, \"%sClose() -> (%v)\", c.prefix, err)\n\tc.logger.Output(2, buf.String())\n\treturn err\n}\n\nfunc (c *loggingConn) printValue(buf *bytes.Buffer, v interface{}) {\n\tconst chop = 32\n\tswitch v := v.(type) {\n\tcase []byte:\n\t\tif len(v) > chop {\n\t\t\tfmt.Fprintf(buf, \"%q...\", v[:chop])\n\t\t} else {\n\t\t\tfmt.Fprintf(buf, \"%q\", v)\n\t\t}\n\tcase string:\n\t\tif len(v) > chop {\n\t\t\tfmt.Fprintf(buf, \"%q...\", v[:chop])\n\t\t} else {\n\t\t\tfmt.Fprintf(buf, \"%q\", v)\n\t\t}\n\tcase []interface{}:\n\t\tif len(v) == 0 {\n\t\t\tbuf.WriteString(\"[]\")\n\t\t} else {\n\t\t\tsep := \"[\"\n\t\t\tfin := \"]\"\n\t\t\tif len(v) > chop {\n\t\t\t\tv = v[:chop]\n\t\t\t\tfin = \"...]\"\n\t\t\t}\n\t\t\tfor _, vv := range v {\n\t\t\t\tbuf.WriteString(sep)\n\t\t\t\tc.printValue(buf, vv)\n\t\t\t\tsep = \", \"\n\t\t\t}\n\t\t\tbuf.WriteString(fin)\n\t\t}\n\tdefault:\n\t\tfmt.Fprint(buf, v)\n\t}\n}\n\nfunc (c *loggingConn) print(method, commandName string, args []interface{}, reply interface{}, err error) {\n\tvar buf bytes.Buffer\n\tfmt.Fprintf(&buf, \"%s%s(\", c.prefix, method)\n\tif method != \"Receive\" {\n\t\tbuf.WriteString(commandName)\n\t\tfor _, arg := range args {\n\t\t\tbuf.WriteString(\", \")\n\t\t\tc.printValue(&buf, arg)\n\t\t}\n\t}\n\tbuf.WriteString(\") -> (\")\n\tif method != \"Send\" {\n\t\tc.printValue(&buf, reply)\n\t\tbuf.WriteString(\", \")\n\t}\n\tfmt.Fprintf(&buf, \"%v)\", err)\n\tc.logger.Output(3, buf.String())\n}\n\nfunc (c *loggingConn) Do(commandName string, args ...interface{}) (interface{}, error) {\n\treply, err := c.Conn.Do(commandName, args...)\n\tc.print(\"Do\", commandName, args, reply, err)\n\treturn reply, err\n}\n\nfunc (c *loggingConn) DoWithTimeout(timeout time.Duration, commandName string, args ...interface{}) (interface{}, error) {\n\treply, err := DoWithTimeout(c.Conn, timeout, commandName, args...)\n\tc.print(\"DoWithTimeout\", commandName, args, reply, err)\n\treturn reply, err\n}\n\nfunc (c *loggingConn) Send(commandName string, args ...interface{}) error {\n\terr := c.Conn.Send(commandName, args...)\n\tc.print(\"Send\", commandName, args, nil, err)\n\treturn err\n}\n\nfunc (c *loggingConn) Receive() (interface{}, error) {\n\treply, err := c.Conn.Receive()\n\tc.print(\"Receive\", \"\", nil, reply, err)\n\treturn reply, err\n}\n\nfunc (c *loggingConn) ReceiveWithTimeout(timeout time.Duration) (interface{}, error) {\n\treply, err := ReceiveWithTimeout(c.Conn, timeout)\n\tc.print(\"ReceiveWithTimeout\", \"\", nil, reply, err)\n\treturn reply, err\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/pool.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"bytes\"\n\t\"crypto/rand\"\n\t\"crypto/sha1\"\n\t\"errors\"\n\t\"io\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/gomodule/redigo/internal\"\n)\n\nvar (\n\t_ ConnWithTimeout = (*activeConn)(nil)\n\t_ ConnWithTimeout = (*errorConn)(nil)\n)\n\nvar nowFunc = time.Now // for testing\n\n// ErrPoolExhausted is returned from a pool connection method (Do, Send,\n// Receive, Flush, Err) when the maximum number of database connections in the\n// pool has been reached.\nvar ErrPoolExhausted = errors.New(\"redigo: connection pool exhausted\")\n\nvar (\n\terrPoolClosed = errors.New(\"redigo: connection pool closed\")\n\terrConnClosed = errors.New(\"redigo: connection closed\")\n)\n\n// Pool maintains a pool of connections. The application calls the Get method\n// to get a connection from the pool and the connection's Close method to\n// return the connection's resources to the pool.\n//\n// The following example shows how to use a pool in a web application. The\n// application creates a pool at application startup and makes it available to\n// request handlers using a package level variable. The pool configuration used\n// here is an example, not a recommendation.\n//\n//  func newPool(addr string) *redis.Pool {\n//    return &redis.Pool{\n//      MaxIdle: 3,\n//      IdleTimeout: 240 * time.Second,\n//      Dial: func () (redis.Conn, error) { return redis.Dial(\"tcp\", addr) },\n//    }\n//  }\n//\n//  var (\n//    pool *redis.Pool\n//    redisServer = flag.String(\"redisServer\", \":6379\", \"\")\n//  )\n//\n//  func main() {\n//    flag.Parse()\n//    pool = newPool(*redisServer)\n//    ...\n//  }\n//\n// A request handler gets a connection from the pool and closes the connection\n// when the handler is done:\n//\n//  func serveHome(w http.ResponseWriter, r *http.Request) {\n//      conn := pool.Get()\n//      defer conn.Close()\n//      ...\n//  }\n//\n// Use the Dial function to authenticate connections with the AUTH command or\n// select a database with the SELECT command:\n//\n//  pool := &redis.Pool{\n//    // Other pool configuration not shown in this example.\n//    Dial: func () (redis.Conn, error) {\n//      c, err := redis.Dial(\"tcp\", server)\n//      if err != nil {\n//        return nil, err\n//      }\n//      if _, err := c.Do(\"AUTH\", password); err != nil {\n//        c.Close()\n//        return nil, err\n//      }\n//      if _, err := c.Do(\"SELECT\", db); err != nil {\n//        c.Close()\n//        return nil, err\n//      }\n//      return c, nil\n//    },\n//  }\n//\n// Use the TestOnBorrow function to check the health of an idle connection\n// before the connection is returned to the application. This example PINGs\n// connections that have been idle more than a minute:\n//\n//  pool := &redis.Pool{\n//    // Other pool configuration not shown in this example.\n//    TestOnBorrow: func(c redis.Conn, t time.Time) error {\n//      if time.Since(t) < time.Minute {\n//        return nil\n//      }\n//      _, err := c.Do(\"PING\")\n//      return err\n//    },\n//  }\n//\ntype Pool struct {\n\t// Dial is an application supplied function for creating and configuring a\n\t// connection.\n\t//\n\t// The connection returned from Dial must not be in a special state\n\t// (subscribed to pubsub channel, transaction started, ...).\n\tDial func() (Conn, error)\n\n\t// TestOnBorrow is an optional application supplied function for checking\n\t// the health of an idle connection before the connection is used again by\n\t// the application. Argument t is the time that the connection was returned\n\t// to the pool. If the function returns an error, then the connection is\n\t// closed.\n\tTestOnBorrow func(c Conn, t time.Time) error\n\n\t// Maximum number of idle connections in the pool.\n\tMaxIdle int\n\n\t// Maximum number of connections allocated by the pool at a given time.\n\t// When zero, there is no limit on the number of connections in the pool.\n\tMaxActive int\n\n\t// Close connections after remaining idle for this duration. If the value\n\t// is zero, then idle connections are not closed. Applications should set\n\t// the timeout to a value less than the server's timeout.\n\tIdleTimeout time.Duration\n\n\t// If Wait is true and the pool is at the MaxActive limit, then Get() waits\n\t// for a connection to be returned to the pool before returning.\n\tWait bool\n\n\t// Close connections older than this duration. If the value is zero, then\n\t// the pool does not close connections based on age.\n\tMaxConnLifetime time.Duration\n\n\tchInitialized uint32 // set to 1 when field ch is initialized\n\n\tmu     sync.Mutex    // mu protects the following fields\n\tclosed bool          // set to true when the pool is closed.\n\tactive int           // the number of open connections in the pool\n\tch     chan struct{} // limits open connections when p.Wait is true\n\tidle   idleList      // idle connections\n}\n\n// NewPool creates a new pool.\n//\n// Deprecated: Initialize the Pool directory as shown in the example.\nfunc NewPool(newFn func() (Conn, error), maxIdle int) *Pool {\n\treturn &Pool{Dial: newFn, MaxIdle: maxIdle}\n}\n\n// Get gets a connection. The application must close the returned connection.\n// This method always returns a valid connection so that applications can defer\n// error handling to the first use of the connection. If there is an error\n// getting an underlying connection, then the connection Err, Do, Send, Flush\n// and Receive methods return that error.\nfunc (p *Pool) Get() Conn {\n\tpc, err := p.get(nil)\n\tif err != nil {\n\t\treturn errorConn{err}\n\t}\n\treturn &activeConn{p: p, pc: pc}\n}\n\n// PoolStats contains pool statistics.\ntype PoolStats struct {\n\t// ActiveCount is the number of connections in the pool. The count includes\n\t// idle connections and connections in use.\n\tActiveCount int\n\t// IdleCount is the number of idle connections in the pool.\n\tIdleCount int\n}\n\n// Stats returns pool's statistics.\nfunc (p *Pool) Stats() PoolStats {\n\tp.mu.Lock()\n\tstats := PoolStats{\n\t\tActiveCount: p.active,\n\t\tIdleCount:   p.idle.count,\n\t}\n\tp.mu.Unlock()\n\n\treturn stats\n}\n\n// ActiveCount returns the number of connections in the pool. The count\n// includes idle connections and connections in use.\nfunc (p *Pool) ActiveCount() int {\n\tp.mu.Lock()\n\tactive := p.active\n\tp.mu.Unlock()\n\treturn active\n}\n\n// IdleCount returns the number of idle connections in the pool.\nfunc (p *Pool) IdleCount() int {\n\tp.mu.Lock()\n\tidle := p.idle.count\n\tp.mu.Unlock()\n\treturn idle\n}\n\n// Close releases the resources used by the pool.\nfunc (p *Pool) Close() error {\n\tp.mu.Lock()\n\tif p.closed {\n\t\tp.mu.Unlock()\n\t\treturn nil\n\t}\n\tp.closed = true\n\tp.active -= p.idle.count\n\tpc := p.idle.front\n\tp.idle.count = 0\n\tp.idle.front, p.idle.back = nil, nil\n\tif p.ch != nil {\n\t\tclose(p.ch)\n\t}\n\tp.mu.Unlock()\n\tfor ; pc != nil; pc = pc.next {\n\t\tpc.c.Close()\n\t}\n\treturn nil\n}\n\nfunc (p *Pool) lazyInit() {\n\t// Fast path.\n\tif atomic.LoadUint32(&p.chInitialized) == 1 {\n\t\treturn\n\t}\n\t// Slow path.\n\tp.mu.Lock()\n\tif p.chInitialized == 0 {\n\t\tp.ch = make(chan struct{}, p.MaxActive)\n\t\tif p.closed {\n\t\t\tclose(p.ch)\n\t\t} else {\n\t\t\tfor i := 0; i < p.MaxActive; i++ {\n\t\t\t\tp.ch <- struct{}{}\n\t\t\t}\n\t\t}\n\t\tatomic.StoreUint32(&p.chInitialized, 1)\n\t}\n\tp.mu.Unlock()\n}\n\n// get prunes stale connections and returns a connection from the idle list or\n// creates a new connection.\nfunc (p *Pool) get(ctx interface {\n\tDone() <-chan struct{}\n\tErr() error\n}) (*poolConn, error) {\n\n\t// Handle limit for p.Wait == true.\n\tif p.Wait && p.MaxActive > 0 {\n\t\tp.lazyInit()\n\t\tif ctx == nil {\n\t\t\t<-p.ch\n\t\t} else {\n\t\t\tselect {\n\t\t\tcase <-p.ch:\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn nil, ctx.Err()\n\t\t\t}\n\t\t}\n\t}\n\n\tp.mu.Lock()\n\n\t// Prune stale connections at the back of the idle list.\n\tif p.IdleTimeout > 0 {\n\t\tn := p.idle.count\n\t\tfor i := 0; i < n && p.idle.back != nil && p.idle.back.t.Add(p.IdleTimeout).Before(nowFunc()); i++ {\n\t\t\tpc := p.idle.back\n\t\t\tp.idle.popBack()\n\t\t\tp.mu.Unlock()\n\t\t\tpc.c.Close()\n\t\t\tp.mu.Lock()\n\t\t\tp.active--\n\t\t}\n\t}\n\n\t// Get idle connection from the front of idle list.\n\tfor p.idle.front != nil {\n\t\tpc := p.idle.front\n\t\tp.idle.popFront()\n\t\tp.mu.Unlock()\n\t\tif (p.TestOnBorrow == nil || p.TestOnBorrow(pc.c, pc.t) == nil) &&\n\t\t\t(p.MaxConnLifetime == 0 || nowFunc().Sub(pc.created) < p.MaxConnLifetime) {\n\t\t\treturn pc, nil\n\t\t}\n\t\tpc.c.Close()\n\t\tp.mu.Lock()\n\t\tp.active--\n\t}\n\n\t// Check for pool closed before dialing a new connection.\n\tif p.closed {\n\t\tp.mu.Unlock()\n\t\treturn nil, errors.New(\"redigo: get on closed pool\")\n\t}\n\n\t// Handle limit for p.Wait == false.\n\tif !p.Wait && p.MaxActive > 0 && p.active >= p.MaxActive {\n\t\tp.mu.Unlock()\n\t\treturn nil, ErrPoolExhausted\n\t}\n\n\tp.active++\n\tp.mu.Unlock()\n\tc, err := p.Dial()\n\tif err != nil {\n\t\tc = nil\n\t\tp.mu.Lock()\n\t\tp.active--\n\t\tif p.ch != nil && !p.closed {\n\t\t\tp.ch <- struct{}{}\n\t\t}\n\t\tp.mu.Unlock()\n\t}\n\treturn &poolConn{c: c, created: nowFunc()}, err\n}\n\nfunc (p *Pool) put(pc *poolConn, forceClose bool) error {\n\tp.mu.Lock()\n\tif !p.closed && !forceClose {\n\t\tpc.t = nowFunc()\n\t\tp.idle.pushFront(pc)\n\t\tif p.idle.count > p.MaxIdle {\n\t\t\tpc = p.idle.back\n\t\t\tp.idle.popBack()\n\t\t} else {\n\t\t\tpc = nil\n\t\t}\n\t}\n\n\tif pc != nil {\n\t\tp.mu.Unlock()\n\t\tpc.c.Close()\n\t\tp.mu.Lock()\n\t\tp.active--\n\t}\n\n\tif p.ch != nil && !p.closed {\n\t\tp.ch <- struct{}{}\n\t}\n\tp.mu.Unlock()\n\treturn nil\n}\n\ntype activeConn struct {\n\tp     *Pool\n\tpc    *poolConn\n\tstate int\n}\n\nvar (\n\tsentinel     []byte\n\tsentinelOnce sync.Once\n)\n\nfunc initSentinel() {\n\tp := make([]byte, 64)\n\tif _, err := rand.Read(p); err == nil {\n\t\tsentinel = p\n\t} else {\n\t\th := sha1.New()\n\t\tio.WriteString(h, \"Oops, rand failed. Use time instead.\")\n\t\tio.WriteString(h, strconv.FormatInt(time.Now().UnixNano(), 10))\n\t\tsentinel = h.Sum(nil)\n\t}\n}\n\nfunc (ac *activeConn) Close() error {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn nil\n\t}\n\tac.pc = nil\n\n\tif ac.state&internal.MultiState != 0 {\n\t\tpc.c.Send(\"DISCARD\")\n\t\tac.state &^= (internal.MultiState | internal.WatchState)\n\t} else if ac.state&internal.WatchState != 0 {\n\t\tpc.c.Send(\"UNWATCH\")\n\t\tac.state &^= internal.WatchState\n\t}\n\tif ac.state&internal.SubscribeState != 0 {\n\t\tpc.c.Send(\"UNSUBSCRIBE\")\n\t\tpc.c.Send(\"PUNSUBSCRIBE\")\n\t\t// To detect the end of the message stream, ask the server to echo\n\t\t// a sentinel value and read until we see that value.\n\t\tsentinelOnce.Do(initSentinel)\n\t\tpc.c.Send(\"ECHO\", sentinel)\n\t\tpc.c.Flush()\n\t\tfor {\n\t\t\tp, err := pc.c.Receive()\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif p, ok := p.([]byte); ok && bytes.Equal(p, sentinel) {\n\t\t\t\tac.state &^= internal.SubscribeState\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tpc.c.Do(\"\")\n\tac.p.put(pc, ac.state != 0 || pc.c.Err() != nil)\n\treturn nil\n}\n\nfunc (ac *activeConn) Err() error {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn errConnClosed\n\t}\n\treturn pc.c.Err()\n}\n\nfunc (ac *activeConn) Do(commandName string, args ...interface{}) (reply interface{}, err error) {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn nil, errConnClosed\n\t}\n\tci := internal.LookupCommandInfo(commandName)\n\tac.state = (ac.state | ci.Set) &^ ci.Clear\n\treturn pc.c.Do(commandName, args...)\n}\n\nfunc (ac *activeConn) DoWithTimeout(timeout time.Duration, commandName string, args ...interface{}) (reply interface{}, err error) {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn nil, errConnClosed\n\t}\n\tcwt, ok := pc.c.(ConnWithTimeout)\n\tif !ok {\n\t\treturn nil, errTimeoutNotSupported\n\t}\n\tci := internal.LookupCommandInfo(commandName)\n\tac.state = (ac.state | ci.Set) &^ ci.Clear\n\treturn cwt.DoWithTimeout(timeout, commandName, args...)\n}\n\nfunc (ac *activeConn) Send(commandName string, args ...interface{}) error {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn errConnClosed\n\t}\n\tci := internal.LookupCommandInfo(commandName)\n\tac.state = (ac.state | ci.Set) &^ ci.Clear\n\treturn pc.c.Send(commandName, args...)\n}\n\nfunc (ac *activeConn) Flush() error {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn errConnClosed\n\t}\n\treturn pc.c.Flush()\n}\n\nfunc (ac *activeConn) Receive() (reply interface{}, err error) {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn nil, errConnClosed\n\t}\n\treturn pc.c.Receive()\n}\n\nfunc (ac *activeConn) ReceiveWithTimeout(timeout time.Duration) (reply interface{}, err error) {\n\tpc := ac.pc\n\tif pc == nil {\n\t\treturn nil, errConnClosed\n\t}\n\tcwt, ok := pc.c.(ConnWithTimeout)\n\tif !ok {\n\t\treturn nil, errTimeoutNotSupported\n\t}\n\treturn cwt.ReceiveWithTimeout(timeout)\n}\n\ntype errorConn struct{ err error }\n\nfunc (ec errorConn) Do(string, ...interface{}) (interface{}, error) { return nil, ec.err }\nfunc (ec errorConn) DoWithTimeout(time.Duration, string, ...interface{}) (interface{}, error) {\n\treturn nil, ec.err\n}\nfunc (ec errorConn) Send(string, ...interface{}) error                     { return ec.err }\nfunc (ec errorConn) Err() error                                            { return ec.err }\nfunc (ec errorConn) Close() error                                          { return nil }\nfunc (ec errorConn) Flush() error                                          { return ec.err }\nfunc (ec errorConn) Receive() (interface{}, error)                         { return nil, ec.err }\nfunc (ec errorConn) ReceiveWithTimeout(time.Duration) (interface{}, error) { return nil, ec.err }\n\ntype idleList struct {\n\tcount       int\n\tfront, back *poolConn\n}\n\ntype poolConn struct {\n\tc          Conn\n\tt          time.Time\n\tcreated    time.Time\n\tnext, prev *poolConn\n}\n\nfunc (l *idleList) pushFront(pc *poolConn) {\n\tpc.next = l.front\n\tpc.prev = nil\n\tif l.count == 0 {\n\t\tl.back = pc\n\t} else {\n\t\tl.front.prev = pc\n\t}\n\tl.front = pc\n\tl.count++\n\treturn\n}\n\nfunc (l *idleList) popFront() {\n\tpc := l.front\n\tl.count--\n\tif l.count == 0 {\n\t\tl.front, l.back = nil, nil\n\t} else {\n\t\tpc.next.prev = nil\n\t\tl.front = pc.next\n\t}\n\tpc.next, pc.prev = nil, nil\n}\n\nfunc (l *idleList) popBack() {\n\tpc := l.back\n\tl.count--\n\tif l.count == 0 {\n\t\tl.front, l.back = nil, nil\n\t} else {\n\t\tpc.prev.next = nil\n\t\tl.back = pc.prev\n\t}\n\tpc.next, pc.prev = nil, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/pool17.go",
    "content": "// Copyright 2018 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\n// +build go1.7\n\npackage redis\n\nimport \"context\"\n\n// GetContext gets a connection using the provided context.\n//\n// The provided Context must be non-nil. If the context expires before the\n// connection is complete, an error is returned. Any expiration on the context\n// will not affect the returned connection.\n//\n// If the function completes without error, then the application must close the\n// returned connection.\nfunc (p *Pool) GetContext(ctx context.Context) (Conn, error) {\n\tpc, err := p.get(ctx)\n\tif err != nil {\n\t\treturn errorConn{err}, err\n\t}\n\treturn &activeConn{p: p, pc: pc}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/pubsub.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"errors\"\n\t\"time\"\n)\n\n// Subscription represents a subscribe or unsubscribe notification.\ntype Subscription struct {\n\t// Kind is \"subscribe\", \"unsubscribe\", \"psubscribe\" or \"punsubscribe\"\n\tKind string\n\n\t// The channel that was changed.\n\tChannel string\n\n\t// The current number of subscriptions for connection.\n\tCount int\n}\n\n// Message represents a message notification.\ntype Message struct {\n\t// The originating channel.\n\tChannel string\n\n\t// The matched pattern, if any\n\tPattern string\n\n\t// The message data.\n\tData []byte\n}\n\n// Pong represents a pubsub pong notification.\ntype Pong struct {\n\tData string\n}\n\n// PubSubConn wraps a Conn with convenience methods for subscribers.\ntype PubSubConn struct {\n\tConn Conn\n}\n\n// Close closes the connection.\nfunc (c PubSubConn) Close() error {\n\treturn c.Conn.Close()\n}\n\n// Subscribe subscribes the connection to the specified channels.\nfunc (c PubSubConn) Subscribe(channel ...interface{}) error {\n\tc.Conn.Send(\"SUBSCRIBE\", channel...)\n\treturn c.Conn.Flush()\n}\n\n// PSubscribe subscribes the connection to the given patterns.\nfunc (c PubSubConn) PSubscribe(channel ...interface{}) error {\n\tc.Conn.Send(\"PSUBSCRIBE\", channel...)\n\treturn c.Conn.Flush()\n}\n\n// Unsubscribe unsubscribes the connection from the given channels, or from all\n// of them if none is given.\nfunc (c PubSubConn) Unsubscribe(channel ...interface{}) error {\n\tc.Conn.Send(\"UNSUBSCRIBE\", channel...)\n\treturn c.Conn.Flush()\n}\n\n// PUnsubscribe unsubscribes the connection from the given patterns, or from all\n// of them if none is given.\nfunc (c PubSubConn) PUnsubscribe(channel ...interface{}) error {\n\tc.Conn.Send(\"PUNSUBSCRIBE\", channel...)\n\treturn c.Conn.Flush()\n}\n\n// Ping sends a PING to the server with the specified data.\n//\n// The connection must be subscribed to at least one channel or pattern when\n// calling this method.\nfunc (c PubSubConn) Ping(data string) error {\n\tc.Conn.Send(\"PING\", data)\n\treturn c.Conn.Flush()\n}\n\n// Receive returns a pushed message as a Subscription, Message, Pong or error.\n// The return value is intended to be used directly in a type switch as\n// illustrated in the PubSubConn example.\nfunc (c PubSubConn) Receive() interface{} {\n\treturn c.receiveInternal(c.Conn.Receive())\n}\n\n// ReceiveWithTimeout is like Receive, but it allows the application to\n// override the connection's default timeout.\nfunc (c PubSubConn) ReceiveWithTimeout(timeout time.Duration) interface{} {\n\treturn c.receiveInternal(ReceiveWithTimeout(c.Conn, timeout))\n}\n\nfunc (c PubSubConn) receiveInternal(replyArg interface{}, errArg error) interface{} {\n\treply, err := Values(replyArg, errArg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar kind string\n\treply, err = Scan(reply, &kind)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch kind {\n\tcase \"message\":\n\t\tvar m Message\n\t\tif _, err := Scan(reply, &m.Channel, &m.Data); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn m\n\tcase \"pmessage\":\n\t\tvar m Message\n\t\tif _, err := Scan(reply, &m.Pattern, &m.Channel, &m.Data); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn m\n\tcase \"subscribe\", \"psubscribe\", \"unsubscribe\", \"punsubscribe\":\n\t\ts := Subscription{Kind: kind}\n\t\tif _, err := Scan(reply, &s.Channel, &s.Count); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn s\n\tcase \"pong\":\n\t\tvar p Pong\n\t\tif _, err := Scan(reply, &p.Data); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn p\n\t}\n\treturn errors.New(\"redigo: unknown pubsub notification\")\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/redis.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"errors\"\n\t\"time\"\n)\n\n// Error represents an error returned in a command reply.\ntype Error string\n\nfunc (err Error) Error() string { return string(err) }\n\n// Conn represents a connection to a Redis server.\ntype Conn interface {\n\t// Close closes the connection.\n\tClose() error\n\n\t// Err returns a non-nil value when the connection is not usable.\n\tErr() error\n\n\t// Do sends a command to the server and returns the received reply.\n\tDo(commandName string, args ...interface{}) (reply interface{}, err error)\n\n\t// Send writes the command to the client's output buffer.\n\tSend(commandName string, args ...interface{}) error\n\n\t// Flush flushes the output buffer to the Redis server.\n\tFlush() error\n\n\t// Receive receives a single reply from the Redis server\n\tReceive() (reply interface{}, err error)\n}\n\n// Argument is the interface implemented by an object which wants to control how\n// the object is converted to Redis bulk strings.\ntype Argument interface {\n\t// RedisArg returns a value to be encoded as a bulk string per the\n\t// conversions listed in the section 'Executing Commands'.\n\t// Implementations should typically return a []byte or string.\n\tRedisArg() interface{}\n}\n\n// Scanner is implemented by an object which wants to control its value is\n// interpreted when read from Redis.\ntype Scanner interface {\n\t// RedisScan assigns a value from a Redis value. The argument src is one of\n\t// the reply types listed in the section `Executing Commands`.\n\t//\n\t// An error should be returned if the value cannot be stored without\n\t// loss of information.\n\tRedisScan(src interface{}) error\n}\n\n// ConnWithTimeout is an optional interface that allows the caller to override\n// a connection's default read timeout. This interface is useful for executing\n// the BLPOP, BRPOP, BRPOPLPUSH, XREAD and other commands that block at the\n// server.\n//\n// A connection's default read timeout is set with the DialReadTimeout dial\n// option. Applications should rely on the default timeout for commands that do\n// not block at the server.\n//\n// All of the Conn implementations in this package satisfy the ConnWithTimeout\n// interface.\n//\n// Use the DoWithTimeout and ReceiveWithTimeout helper functions to simplify\n// use of this interface.\ntype ConnWithTimeout interface {\n\tConn\n\n\t// Do sends a command to the server and returns the received reply.\n\t// The timeout overrides the read timeout set when dialing the\n\t// connection.\n\tDoWithTimeout(timeout time.Duration, commandName string, args ...interface{}) (reply interface{}, err error)\n\n\t// Receive receives a single reply from the Redis server. The timeout\n\t// overrides the read timeout set when dialing the connection.\n\tReceiveWithTimeout(timeout time.Duration) (reply interface{}, err error)\n}\n\nvar errTimeoutNotSupported = errors.New(\"redis: connection does not support ConnWithTimeout\")\n\n// DoWithTimeout executes a Redis command with the specified read timeout. If\n// the connection does not satisfy the ConnWithTimeout interface, then an error\n// is returned.\nfunc DoWithTimeout(c Conn, timeout time.Duration, cmd string, args ...interface{}) (interface{}, error) {\n\tcwt, ok := c.(ConnWithTimeout)\n\tif !ok {\n\t\treturn nil, errTimeoutNotSupported\n\t}\n\treturn cwt.DoWithTimeout(timeout, cmd, args...)\n}\n\n// ReceiveWithTimeout receives a reply with the specified read timeout. If the\n// connection does not satisfy the ConnWithTimeout interface, then an error is\n// returned.\nfunc ReceiveWithTimeout(c Conn, timeout time.Duration) (interface{}, error) {\n\tcwt, ok := c.(ConnWithTimeout)\n\tif !ok {\n\t\treturn nil, errTimeoutNotSupported\n\t}\n\treturn cwt.ReceiveWithTimeout(timeout)\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/reply.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// ErrNil indicates that a reply value is nil.\nvar ErrNil = errors.New(\"redigo: nil returned\")\n\n// Int is a helper that converts a command reply to an integer. If err is not\n// equal to nil, then Int returns 0, err. Otherwise, Int converts the\n// reply to an int as follows:\n//\n//  Reply type    Result\n//  integer       int(reply), nil\n//  bulk string   parsed reply, nil\n//  nil           0, ErrNil\n//  other         0, error\nfunc Int(reply interface{}, err error) (int, error) {\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase int64:\n\t\tx := int(reply)\n\t\tif int64(x) != reply {\n\t\t\treturn 0, strconv.ErrRange\n\t\t}\n\t\treturn x, nil\n\tcase []byte:\n\t\tn, err := strconv.ParseInt(string(reply), 10, 0)\n\t\treturn int(n), err\n\tcase nil:\n\t\treturn 0, ErrNil\n\tcase Error:\n\t\treturn 0, reply\n\t}\n\treturn 0, fmt.Errorf(\"redigo: unexpected type for Int, got type %T\", reply)\n}\n\n// Int64 is a helper that converts a command reply to 64 bit integer. If err is\n// not equal to nil, then Int returns 0, err. Otherwise, Int64 converts the\n// reply to an int64 as follows:\n//\n//  Reply type    Result\n//  integer       reply, nil\n//  bulk string   parsed reply, nil\n//  nil           0, ErrNil\n//  other         0, error\nfunc Int64(reply interface{}, err error) (int64, error) {\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase int64:\n\t\treturn reply, nil\n\tcase []byte:\n\t\tn, err := strconv.ParseInt(string(reply), 10, 64)\n\t\treturn n, err\n\tcase nil:\n\t\treturn 0, ErrNil\n\tcase Error:\n\t\treturn 0, reply\n\t}\n\treturn 0, fmt.Errorf(\"redigo: unexpected type for Int64, got type %T\", reply)\n}\n\nvar errNegativeInt = errors.New(\"redigo: unexpected value for Uint64\")\n\n// Uint64 is a helper that converts a command reply to 64 bit integer. If err is\n// not equal to nil, then Int returns 0, err. Otherwise, Int64 converts the\n// reply to an int64 as follows:\n//\n//  Reply type    Result\n//  integer       reply, nil\n//  bulk string   parsed reply, nil\n//  nil           0, ErrNil\n//  other         0, error\nfunc Uint64(reply interface{}, err error) (uint64, error) {\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase int64:\n\t\tif reply < 0 {\n\t\t\treturn 0, errNegativeInt\n\t\t}\n\t\treturn uint64(reply), nil\n\tcase []byte:\n\t\tn, err := strconv.ParseUint(string(reply), 10, 64)\n\t\treturn n, err\n\tcase nil:\n\t\treturn 0, ErrNil\n\tcase Error:\n\t\treturn 0, reply\n\t}\n\treturn 0, fmt.Errorf(\"redigo: unexpected type for Uint64, got type %T\", reply)\n}\n\n// Float64 is a helper that converts a command reply to 64 bit float. If err is\n// not equal to nil, then Float64 returns 0, err. Otherwise, Float64 converts\n// the reply to an int as follows:\n//\n//  Reply type    Result\n//  bulk string   parsed reply, nil\n//  nil           0, ErrNil\n//  other         0, error\nfunc Float64(reply interface{}, err error) (float64, error) {\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase []byte:\n\t\tn, err := strconv.ParseFloat(string(reply), 64)\n\t\treturn n, err\n\tcase nil:\n\t\treturn 0, ErrNil\n\tcase Error:\n\t\treturn 0, reply\n\t}\n\treturn 0, fmt.Errorf(\"redigo: unexpected type for Float64, got type %T\", reply)\n}\n\n// String is a helper that converts a command reply to a string. If err is not\n// equal to nil, then String returns \"\", err. Otherwise String converts the\n// reply to a string as follows:\n//\n//  Reply type      Result\n//  bulk string     string(reply), nil\n//  simple string   reply, nil\n//  nil             \"\",  ErrNil\n//  other           \"\",  error\nfunc String(reply interface{}, err error) (string, error) {\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tswitch reply := reply.(type) {\n\tcase []byte:\n\t\treturn string(reply), nil\n\tcase string:\n\t\treturn reply, nil\n\tcase nil:\n\t\treturn \"\", ErrNil\n\tcase Error:\n\t\treturn \"\", reply\n\t}\n\treturn \"\", fmt.Errorf(\"redigo: unexpected type for String, got type %T\", reply)\n}\n\n// Bytes is a helper that converts a command reply to a slice of bytes. If err\n// is not equal to nil, then Bytes returns nil, err. Otherwise Bytes converts\n// the reply to a slice of bytes as follows:\n//\n//  Reply type      Result\n//  bulk string     reply, nil\n//  simple string   []byte(reply), nil\n//  nil             nil, ErrNil\n//  other           nil, error\nfunc Bytes(reply interface{}, err error) ([]byte, error) {\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase []byte:\n\t\treturn reply, nil\n\tcase string:\n\t\treturn []byte(reply), nil\n\tcase nil:\n\t\treturn nil, ErrNil\n\tcase Error:\n\t\treturn nil, reply\n\t}\n\treturn nil, fmt.Errorf(\"redigo: unexpected type for Bytes, got type %T\", reply)\n}\n\n// Bool is a helper that converts a command reply to a boolean. If err is not\n// equal to nil, then Bool returns false, err. Otherwise Bool converts the\n// reply to boolean as follows:\n//\n//  Reply type      Result\n//  integer         value != 0, nil\n//  bulk string     strconv.ParseBool(reply)\n//  nil             false, ErrNil\n//  other           false, error\nfunc Bool(reply interface{}, err error) (bool, error) {\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase int64:\n\t\treturn reply != 0, nil\n\tcase []byte:\n\t\treturn strconv.ParseBool(string(reply))\n\tcase nil:\n\t\treturn false, ErrNil\n\tcase Error:\n\t\treturn false, reply\n\t}\n\treturn false, fmt.Errorf(\"redigo: unexpected type for Bool, got type %T\", reply)\n}\n\n// MultiBulk is a helper that converts an array command reply to a []interface{}.\n//\n// Deprecated: Use Values instead.\nfunc MultiBulk(reply interface{}, err error) ([]interface{}, error) { return Values(reply, err) }\n\n// Values is a helper that converts an array command reply to a []interface{}.\n// If err is not equal to nil, then Values returns nil, err. Otherwise, Values\n// converts the reply as follows:\n//\n//  Reply type      Result\n//  array           reply, nil\n//  nil             nil, ErrNil\n//  other           nil, error\nfunc Values(reply interface{}, err error) ([]interface{}, error) {\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswitch reply := reply.(type) {\n\tcase []interface{}:\n\t\treturn reply, nil\n\tcase nil:\n\t\treturn nil, ErrNil\n\tcase Error:\n\t\treturn nil, reply\n\t}\n\treturn nil, fmt.Errorf(\"redigo: unexpected type for Values, got type %T\", reply)\n}\n\nfunc sliceHelper(reply interface{}, err error, name string, makeSlice func(int), assign func(int, interface{}) error) error {\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch reply := reply.(type) {\n\tcase []interface{}:\n\t\tmakeSlice(len(reply))\n\t\tfor i := range reply {\n\t\t\tif reply[i] == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err := assign(i, reply[i]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\tcase nil:\n\t\treturn ErrNil\n\tcase Error:\n\t\treturn reply\n\t}\n\treturn fmt.Errorf(\"redigo: unexpected type for %s, got type %T\", name, reply)\n}\n\n// Float64s is a helper that converts an array command reply to a []float64. If\n// err is not equal to nil, then Float64s returns nil, err. Nil array items are\n// converted to 0 in the output slice. Floats64 returns an error if an array\n// item is not a bulk string or nil.\nfunc Float64s(reply interface{}, err error) ([]float64, error) {\n\tvar result []float64\n\terr = sliceHelper(reply, err, \"Float64s\", func(n int) { result = make([]float64, n) }, func(i int, v interface{}) error {\n\t\tp, ok := v.([]byte)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"redigo: unexpected element type for Floats64, got type %T\", v)\n\t\t}\n\t\tf, err := strconv.ParseFloat(string(p), 64)\n\t\tresult[i] = f\n\t\treturn err\n\t})\n\treturn result, err\n}\n\n// Strings is a helper that converts an array command reply to a []string. If\n// err is not equal to nil, then Strings returns nil, err. Nil array items are\n// converted to \"\" in the output slice. Strings returns an error if an array\n// item is not a bulk string or nil.\nfunc Strings(reply interface{}, err error) ([]string, error) {\n\tvar result []string\n\terr = sliceHelper(reply, err, \"Strings\", func(n int) { result = make([]string, n) }, func(i int, v interface{}) error {\n\t\tswitch v := v.(type) {\n\t\tcase string:\n\t\t\tresult[i] = v\n\t\t\treturn nil\n\t\tcase []byte:\n\t\t\tresult[i] = string(v)\n\t\t\treturn nil\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"redigo: unexpected element type for Strings, got type %T\", v)\n\t\t}\n\t})\n\treturn result, err\n}\n\n// ByteSlices is a helper that converts an array command reply to a [][]byte.\n// If err is not equal to nil, then ByteSlices returns nil, err. Nil array\n// items are stay nil. ByteSlices returns an error if an array item is not a\n// bulk string or nil.\nfunc ByteSlices(reply interface{}, err error) ([][]byte, error) {\n\tvar result [][]byte\n\terr = sliceHelper(reply, err, \"ByteSlices\", func(n int) { result = make([][]byte, n) }, func(i int, v interface{}) error {\n\t\tp, ok := v.([]byte)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"redigo: unexpected element type for ByteSlices, got type %T\", v)\n\t\t}\n\t\tresult[i] = p\n\t\treturn nil\n\t})\n\treturn result, err\n}\n\n// Int64s is a helper that converts an array command reply to a []int64.\n// If err is not equal to nil, then Int64s returns nil, err. Nil array\n// items are stay nil. Int64s returns an error if an array item is not a\n// bulk string or nil.\nfunc Int64s(reply interface{}, err error) ([]int64, error) {\n\tvar result []int64\n\terr = sliceHelper(reply, err, \"Int64s\", func(n int) { result = make([]int64, n) }, func(i int, v interface{}) error {\n\t\tswitch v := v.(type) {\n\t\tcase int64:\n\t\t\tresult[i] = v\n\t\t\treturn nil\n\t\tcase []byte:\n\t\t\tn, err := strconv.ParseInt(string(v), 10, 64)\n\t\t\tresult[i] = n\n\t\t\treturn err\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"redigo: unexpected element type for Int64s, got type %T\", v)\n\t\t}\n\t})\n\treturn result, err\n}\n\n// Ints is a helper that converts an array command reply to a []in.\n// If err is not equal to nil, then Ints returns nil, err. Nil array\n// items are stay nil. Ints returns an error if an array item is not a\n// bulk string or nil.\nfunc Ints(reply interface{}, err error) ([]int, error) {\n\tvar result []int\n\terr = sliceHelper(reply, err, \"Ints\", func(n int) { result = make([]int, n) }, func(i int, v interface{}) error {\n\t\tswitch v := v.(type) {\n\t\tcase int64:\n\t\t\tn := int(v)\n\t\t\tif int64(n) != v {\n\t\t\t\treturn strconv.ErrRange\n\t\t\t}\n\t\t\tresult[i] = n\n\t\t\treturn nil\n\t\tcase []byte:\n\t\t\tn, err := strconv.Atoi(string(v))\n\t\t\tresult[i] = n\n\t\t\treturn err\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"redigo: unexpected element type for Ints, got type %T\", v)\n\t\t}\n\t})\n\treturn result, err\n}\n\n// StringMap is a helper that converts an array of strings (alternating key, value)\n// into a map[string]string. The HGETALL and CONFIG GET commands return replies in this format.\n// Requires an even number of values in result.\nfunc StringMap(result interface{}, err error) (map[string]string, error) {\n\tvalues, err := Values(result, err)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(values)%2 != 0 {\n\t\treturn nil, errors.New(\"redigo: StringMap expects even number of values result\")\n\t}\n\tm := make(map[string]string, len(values)/2)\n\tfor i := 0; i < len(values); i += 2 {\n\t\tkey, okKey := values[i].([]byte)\n\t\tvalue, okValue := values[i+1].([]byte)\n\t\tif !okKey || !okValue {\n\t\t\treturn nil, errors.New(\"redigo: StringMap key not a bulk string value\")\n\t\t}\n\t\tm[string(key)] = string(value)\n\t}\n\treturn m, nil\n}\n\n// IntMap is a helper that converts an array of strings (alternating key, value)\n// into a map[string]int. The HGETALL commands return replies in this format.\n// Requires an even number of values in result.\nfunc IntMap(result interface{}, err error) (map[string]int, error) {\n\tvalues, err := Values(result, err)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(values)%2 != 0 {\n\t\treturn nil, errors.New(\"redigo: IntMap expects even number of values result\")\n\t}\n\tm := make(map[string]int, len(values)/2)\n\tfor i := 0; i < len(values); i += 2 {\n\t\tkey, ok := values[i].([]byte)\n\t\tif !ok {\n\t\t\treturn nil, errors.New(\"redigo: IntMap key not a bulk string value\")\n\t\t}\n\t\tvalue, err := Int(values[i+1], nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm[string(key)] = value\n\t}\n\treturn m, nil\n}\n\n// Int64Map is a helper that converts an array of strings (alternating key, value)\n// into a map[string]int64. The HGETALL commands return replies in this format.\n// Requires an even number of values in result.\nfunc Int64Map(result interface{}, err error) (map[string]int64, error) {\n\tvalues, err := Values(result, err)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(values)%2 != 0 {\n\t\treturn nil, errors.New(\"redigo: Int64Map expects even number of values result\")\n\t}\n\tm := make(map[string]int64, len(values)/2)\n\tfor i := 0; i < len(values); i += 2 {\n\t\tkey, ok := values[i].([]byte)\n\t\tif !ok {\n\t\t\treturn nil, errors.New(\"redigo: Int64Map key not a bulk string value\")\n\t\t}\n\t\tvalue, err := Int64(values[i+1], nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm[string(key)] = value\n\t}\n\treturn m, nil\n}\n\n// Positions is a helper that converts an array of positions (lat, long)\n// into a [][2]float64. The GEOPOS command returns replies in this format.\nfunc Positions(result interface{}, err error) ([]*[2]float64, error) {\n\tvalues, err := Values(result, err)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpositions := make([]*[2]float64, len(values))\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tcontinue\n\t\t}\n\t\tp, ok := values[i].([]interface{})\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"redigo: unexpected element type for interface slice, got type %T\", values[i])\n\t\t}\n\t\tif len(p) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"redigo: unexpected number of values for a member position, got %d\", len(p))\n\t\t}\n\t\tlat, err := Float64(p[0], nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tlong, err := Float64(p[1], nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tpositions[i] = &[2]float64{lat, long}\n\t}\n\treturn positions, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/scan.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\nfunc ensureLen(d reflect.Value, n int) {\n\tif n > d.Cap() {\n\t\td.Set(reflect.MakeSlice(d.Type(), n, n))\n\t} else {\n\t\td.SetLen(n)\n\t}\n}\n\nfunc cannotConvert(d reflect.Value, s interface{}) error {\n\tvar sname string\n\tswitch s.(type) {\n\tcase string:\n\t\tsname = \"Redis simple string\"\n\tcase Error:\n\t\tsname = \"Redis error\"\n\tcase int64:\n\t\tsname = \"Redis integer\"\n\tcase []byte:\n\t\tsname = \"Redis bulk string\"\n\tcase []interface{}:\n\t\tsname = \"Redis array\"\n\tdefault:\n\t\tsname = reflect.TypeOf(s).String()\n\t}\n\treturn fmt.Errorf(\"cannot convert from %s to %s\", sname, d.Type())\n}\n\nfunc convertAssignBulkString(d reflect.Value, s []byte) (err error) {\n\tswitch d.Type().Kind() {\n\tcase reflect.Float32, reflect.Float64:\n\t\tvar x float64\n\t\tx, err = strconv.ParseFloat(string(s), d.Type().Bits())\n\t\td.SetFloat(x)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tvar x int64\n\t\tx, err = strconv.ParseInt(string(s), 10, d.Type().Bits())\n\t\td.SetInt(x)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tvar x uint64\n\t\tx, err = strconv.ParseUint(string(s), 10, d.Type().Bits())\n\t\td.SetUint(x)\n\tcase reflect.Bool:\n\t\tvar x bool\n\t\tx, err = strconv.ParseBool(string(s))\n\t\td.SetBool(x)\n\tcase reflect.String:\n\t\td.SetString(string(s))\n\tcase reflect.Slice:\n\t\tif d.Type().Elem().Kind() != reflect.Uint8 {\n\t\t\terr = cannotConvert(d, s)\n\t\t} else {\n\t\t\td.SetBytes(s)\n\t\t}\n\tdefault:\n\t\terr = cannotConvert(d, s)\n\t}\n\treturn\n}\n\nfunc convertAssignInt(d reflect.Value, s int64) (err error) {\n\tswitch d.Type().Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\td.SetInt(s)\n\t\tif d.Int() != s {\n\t\t\terr = strconv.ErrRange\n\t\t\td.SetInt(0)\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tif s < 0 {\n\t\t\terr = strconv.ErrRange\n\t\t} else {\n\t\t\tx := uint64(s)\n\t\t\td.SetUint(x)\n\t\t\tif d.Uint() != x {\n\t\t\t\terr = strconv.ErrRange\n\t\t\t\td.SetUint(0)\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\td.SetBool(s != 0)\n\tdefault:\n\t\terr = cannotConvert(d, s)\n\t}\n\treturn\n}\n\nfunc convertAssignValue(d reflect.Value, s interface{}) (err error) {\n\tif d.Kind() != reflect.Ptr {\n\t\tif d.CanAddr() {\n\t\t\td2 := d.Addr()\n\t\t\tif d2.CanInterface() {\n\t\t\t\tif scanner, ok := d2.Interface().(Scanner); ok {\n\t\t\t\t\treturn scanner.RedisScan(s)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else if d.CanInterface() {\n\t\t// Already a reflect.Ptr\n\t\tif d.IsNil() {\n\t\t\td.Set(reflect.New(d.Type().Elem()))\n\t\t}\n\t\tif scanner, ok := d.Interface().(Scanner); ok {\n\t\t\treturn scanner.RedisScan(s)\n\t\t}\n\t}\n\n\tswitch s := s.(type) {\n\tcase []byte:\n\t\terr = convertAssignBulkString(d, s)\n\tcase int64:\n\t\terr = convertAssignInt(d, s)\n\tdefault:\n\t\terr = cannotConvert(d, s)\n\t}\n\treturn err\n}\n\nfunc convertAssignArray(d reflect.Value, s []interface{}) error {\n\tif d.Type().Kind() != reflect.Slice {\n\t\treturn cannotConvert(d, s)\n\t}\n\tensureLen(d, len(s))\n\tfor i := 0; i < len(s); i++ {\n\t\tif err := convertAssignValue(d.Index(i), s[i]); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc convertAssign(d interface{}, s interface{}) (err error) {\n\tif scanner, ok := d.(Scanner); ok {\n\t\treturn scanner.RedisScan(s)\n\t}\n\n\t// Handle the most common destination types using type switches and\n\t// fall back to reflection for all other types.\n\tswitch s := s.(type) {\n\tcase nil:\n\t\t// ignore\n\tcase []byte:\n\t\tswitch d := d.(type) {\n\t\tcase *string:\n\t\t\t*d = string(s)\n\t\tcase *int:\n\t\t\t*d, err = strconv.Atoi(string(s))\n\t\tcase *bool:\n\t\t\t*d, err = strconv.ParseBool(string(s))\n\t\tcase *[]byte:\n\t\t\t*d = s\n\t\tcase *interface{}:\n\t\t\t*d = s\n\t\tcase nil:\n\t\t\t// skip value\n\t\tdefault:\n\t\t\tif d := reflect.ValueOf(d); d.Type().Kind() != reflect.Ptr {\n\t\t\t\terr = cannotConvert(d, s)\n\t\t\t} else {\n\t\t\t\terr = convertAssignBulkString(d.Elem(), s)\n\t\t\t}\n\t\t}\n\tcase int64:\n\t\tswitch d := d.(type) {\n\t\tcase *int:\n\t\t\tx := int(s)\n\t\t\tif int64(x) != s {\n\t\t\t\terr = strconv.ErrRange\n\t\t\t\tx = 0\n\t\t\t}\n\t\t\t*d = x\n\t\tcase *bool:\n\t\t\t*d = s != 0\n\t\tcase *interface{}:\n\t\t\t*d = s\n\t\tcase nil:\n\t\t\t// skip value\n\t\tdefault:\n\t\t\tif d := reflect.ValueOf(d); d.Type().Kind() != reflect.Ptr {\n\t\t\t\terr = cannotConvert(d, s)\n\t\t\t} else {\n\t\t\t\terr = convertAssignInt(d.Elem(), s)\n\t\t\t}\n\t\t}\n\tcase string:\n\t\tswitch d := d.(type) {\n\t\tcase *string:\n\t\t\t*d = s\n\t\tcase *interface{}:\n\t\t\t*d = s\n\t\tcase nil:\n\t\t\t// skip value\n\t\tdefault:\n\t\t\terr = cannotConvert(reflect.ValueOf(d), s)\n\t\t}\n\tcase []interface{}:\n\t\tswitch d := d.(type) {\n\t\tcase *[]interface{}:\n\t\t\t*d = s\n\t\tcase *interface{}:\n\t\t\t*d = s\n\t\tcase nil:\n\t\t\t// skip value\n\t\tdefault:\n\t\t\tif d := reflect.ValueOf(d); d.Type().Kind() != reflect.Ptr {\n\t\t\t\terr = cannotConvert(d, s)\n\t\t\t} else {\n\t\t\t\terr = convertAssignArray(d.Elem(), s)\n\t\t\t}\n\t\t}\n\tcase Error:\n\t\terr = s\n\tdefault:\n\t\terr = cannotConvert(reflect.ValueOf(d), s)\n\t}\n\treturn\n}\n\n// Scan copies from src to the values pointed at by dest.\n//\n// Scan uses RedisScan if available otherwise:\n//\n// The values pointed at by dest must be an integer, float, boolean, string,\n// []byte, interface{} or slices of these types. Scan uses the standard strconv\n// package to convert bulk strings to numeric and boolean types.\n//\n// If a dest value is nil, then the corresponding src value is skipped.\n//\n// If a src element is nil, then the corresponding dest value is not modified.\n//\n// To enable easy use of Scan in a loop, Scan returns the slice of src\n// following the copied values.\nfunc Scan(src []interface{}, dest ...interface{}) ([]interface{}, error) {\n\tif len(src) < len(dest) {\n\t\treturn nil, errors.New(\"redigo.Scan: array short\")\n\t}\n\tvar err error\n\tfor i, d := range dest {\n\t\terr = convertAssign(d, src[i])\n\t\tif err != nil {\n\t\t\terr = fmt.Errorf(\"redigo.Scan: cannot assign to dest %d: %v\", i, err)\n\t\t\tbreak\n\t\t}\n\t}\n\treturn src[len(dest):], err\n}\n\ntype fieldSpec struct {\n\tname      string\n\tindex     []int\n\tomitEmpty bool\n}\n\ntype structSpec struct {\n\tm map[string]*fieldSpec\n\tl []*fieldSpec\n}\n\nfunc (ss *structSpec) fieldSpec(name []byte) *fieldSpec {\n\treturn ss.m[string(name)]\n}\n\nfunc compileStructSpec(t reflect.Type, depth map[string]int, index []int, ss *structSpec) {\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tswitch {\n\t\tcase f.PkgPath != \"\" && !f.Anonymous:\n\t\t\t// Ignore unexported fields.\n\t\tcase f.Anonymous:\n\t\t\t// TODO: Handle pointers. Requires change to decoder and\n\t\t\t// protection against infinite recursion.\n\t\t\tif f.Type.Kind() == reflect.Struct {\n\t\t\t\tcompileStructSpec(f.Type, depth, append(index, i), ss)\n\t\t\t}\n\t\tdefault:\n\t\t\tfs := &fieldSpec{name: f.Name}\n\t\t\ttag := f.Tag.Get(\"redis\")\n\t\t\tp := strings.Split(tag, \",\")\n\t\t\tif len(p) > 0 {\n\t\t\t\tif p[0] == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif len(p[0]) > 0 {\n\t\t\t\t\tfs.name = p[0]\n\t\t\t\t}\n\t\t\t\tfor _, s := range p[1:] {\n\t\t\t\t\tswitch s {\n\t\t\t\t\tcase \"omitempty\":\n\t\t\t\t\t\tfs.omitEmpty = true\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tpanic(fmt.Errorf(\"redigo: unknown field tag %s for type %s\", s, t.Name()))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\td, found := depth[fs.name]\n\t\t\tif !found {\n\t\t\t\td = 1 << 30\n\t\t\t}\n\t\t\tswitch {\n\t\t\tcase len(index) == d:\n\t\t\t\t// At same depth, remove from result.\n\t\t\t\tdelete(ss.m, fs.name)\n\t\t\t\tj := 0\n\t\t\t\tfor i := 0; i < len(ss.l); i++ {\n\t\t\t\t\tif fs.name != ss.l[i].name {\n\t\t\t\t\t\tss.l[j] = ss.l[i]\n\t\t\t\t\t\tj += 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tss.l = ss.l[:j]\n\t\t\tcase len(index) < d:\n\t\t\t\tfs.index = make([]int, len(index)+1)\n\t\t\t\tcopy(fs.index, index)\n\t\t\t\tfs.index[len(index)] = i\n\t\t\t\tdepth[fs.name] = len(index)\n\t\t\t\tss.m[fs.name] = fs\n\t\t\t\tss.l = append(ss.l, fs)\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar (\n\tstructSpecMutex  sync.RWMutex\n\tstructSpecCache  = make(map[reflect.Type]*structSpec)\n\tdefaultFieldSpec = &fieldSpec{}\n)\n\nfunc structSpecForType(t reflect.Type) *structSpec {\n\n\tstructSpecMutex.RLock()\n\tss, found := structSpecCache[t]\n\tstructSpecMutex.RUnlock()\n\tif found {\n\t\treturn ss\n\t}\n\n\tstructSpecMutex.Lock()\n\tdefer structSpecMutex.Unlock()\n\tss, found = structSpecCache[t]\n\tif found {\n\t\treturn ss\n\t}\n\n\tss = &structSpec{m: make(map[string]*fieldSpec)}\n\tcompileStructSpec(t, make(map[string]int), nil, ss)\n\tstructSpecCache[t] = ss\n\treturn ss\n}\n\nvar errScanStructValue = errors.New(\"redigo.ScanStruct: value must be non-nil pointer to a struct\")\n\n// ScanStruct scans alternating names and values from src to a struct. The\n// HGETALL and CONFIG GET commands return replies in this format.\n//\n// ScanStruct uses exported field names to match values in the response. Use\n// 'redis' field tag to override the name:\n//\n//      Field int `redis:\"myName\"`\n//\n// Fields with the tag redis:\"-\" are ignored.\n//\n// Each field uses RedisScan if available otherwise:\n// Integer, float, boolean, string and []byte fields are supported. Scan uses the\n// standard strconv package to convert bulk string values to numeric and\n// boolean types.\n//\n// If a src element is nil, then the corresponding field is not modified.\nfunc ScanStruct(src []interface{}, dest interface{}) error {\n\td := reflect.ValueOf(dest)\n\tif d.Kind() != reflect.Ptr || d.IsNil() {\n\t\treturn errScanStructValue\n\t}\n\td = d.Elem()\n\tif d.Kind() != reflect.Struct {\n\t\treturn errScanStructValue\n\t}\n\tss := structSpecForType(d.Type())\n\n\tif len(src)%2 != 0 {\n\t\treturn errors.New(\"redigo.ScanStruct: number of values not a multiple of 2\")\n\t}\n\n\tfor i := 0; i < len(src); i += 2 {\n\t\ts := src[i+1]\n\t\tif s == nil {\n\t\t\tcontinue\n\t\t}\n\t\tname, ok := src[i].([]byte)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"redigo.ScanStruct: key %d not a bulk string value\", i)\n\t\t}\n\t\tfs := ss.fieldSpec(name)\n\t\tif fs == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif err := convertAssignValue(d.FieldByIndex(fs.index), s); err != nil {\n\t\t\treturn fmt.Errorf(\"redigo.ScanStruct: cannot assign field %s: %v\", fs.name, err)\n\t\t}\n\t}\n\treturn nil\n}\n\nvar (\n\terrScanSliceValue = errors.New(\"redigo.ScanSlice: dest must be non-nil pointer to a struct\")\n)\n\n// ScanSlice scans src to the slice pointed to by dest. The elements the dest\n// slice must be integer, float, boolean, string, struct or pointer to struct\n// values.\n//\n// Struct fields must be integer, float, boolean or string values. All struct\n// fields are used unless a subset is specified using fieldNames.\nfunc ScanSlice(src []interface{}, dest interface{}, fieldNames ...string) error {\n\td := reflect.ValueOf(dest)\n\tif d.Kind() != reflect.Ptr || d.IsNil() {\n\t\treturn errScanSliceValue\n\t}\n\td = d.Elem()\n\tif d.Kind() != reflect.Slice {\n\t\treturn errScanSliceValue\n\t}\n\n\tisPtr := false\n\tt := d.Type().Elem()\n\tif t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct {\n\t\tisPtr = true\n\t\tt = t.Elem()\n\t}\n\n\tif t.Kind() != reflect.Struct {\n\t\tensureLen(d, len(src))\n\t\tfor i, s := range src {\n\t\t\tif s == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err := convertAssignValue(d.Index(i), s); err != nil {\n\t\t\t\treturn fmt.Errorf(\"redigo.ScanSlice: cannot assign element %d: %v\", i, err)\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tss := structSpecForType(t)\n\tfss := ss.l\n\tif len(fieldNames) > 0 {\n\t\tfss = make([]*fieldSpec, len(fieldNames))\n\t\tfor i, name := range fieldNames {\n\t\t\tfss[i] = ss.m[name]\n\t\t\tif fss[i] == nil {\n\t\t\t\treturn fmt.Errorf(\"redigo.ScanSlice: ScanSlice bad field name %s\", name)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(fss) == 0 {\n\t\treturn errors.New(\"redigo.ScanSlice: no struct fields\")\n\t}\n\n\tn := len(src) / len(fss)\n\tif n*len(fss) != len(src) {\n\t\treturn errors.New(\"redigo.ScanSlice: length not a multiple of struct field count\")\n\t}\n\n\tensureLen(d, n)\n\tfor i := 0; i < n; i++ {\n\t\td := d.Index(i)\n\t\tif isPtr {\n\t\t\tif d.IsNil() {\n\t\t\t\td.Set(reflect.New(t))\n\t\t\t}\n\t\t\td = d.Elem()\n\t\t}\n\t\tfor j, fs := range fss {\n\t\t\ts := src[i*len(fss)+j]\n\t\t\tif s == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err := convertAssignValue(d.FieldByIndex(fs.index), s); err != nil {\n\t\t\t\treturn fmt.Errorf(\"redigo.ScanSlice: cannot assign element %d to field %s: %v\", i*len(fss)+j, fs.name, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Args is a helper for constructing command arguments from structured values.\ntype Args []interface{}\n\n// Add returns the result of appending value to args.\nfunc (args Args) Add(value ...interface{}) Args {\n\treturn append(args, value...)\n}\n\n// AddFlat returns the result of appending the flattened value of v to args.\n//\n// Maps are flattened by appending the alternating keys and map values to args.\n//\n// Slices are flattened by appending the slice elements to args.\n//\n// Structs are flattened by appending the alternating names and values of\n// exported fields to args. If v is a nil struct pointer, then nothing is\n// appended. The 'redis' field tag overrides struct field names. See ScanStruct\n// for more information on the use of the 'redis' field tag.\n//\n// Other types are appended to args as is.\nfunc (args Args) AddFlat(v interface{}) Args {\n\trv := reflect.ValueOf(v)\n\tswitch rv.Kind() {\n\tcase reflect.Struct:\n\t\targs = flattenStruct(args, rv)\n\tcase reflect.Slice:\n\t\tfor i := 0; i < rv.Len(); i++ {\n\t\t\targs = append(args, rv.Index(i).Interface())\n\t\t}\n\tcase reflect.Map:\n\t\tfor _, k := range rv.MapKeys() {\n\t\t\targs = append(args, k.Interface(), rv.MapIndex(k).Interface())\n\t\t}\n\tcase reflect.Ptr:\n\t\tif rv.Type().Elem().Kind() == reflect.Struct {\n\t\t\tif !rv.IsNil() {\n\t\t\t\targs = flattenStruct(args, rv.Elem())\n\t\t\t}\n\t\t} else {\n\t\t\targs = append(args, v)\n\t\t}\n\tdefault:\n\t\targs = append(args, v)\n\t}\n\treturn args\n}\n\nfunc flattenStruct(args Args, v reflect.Value) Args {\n\tss := structSpecForType(v.Type())\n\tfor _, fs := range ss.l {\n\t\tfv := v.FieldByIndex(fs.index)\n\t\tif fs.omitEmpty {\n\t\t\tvar empty = false\n\t\t\tswitch fv.Kind() {\n\t\t\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\t\t\tempty = fv.Len() == 0\n\t\t\tcase reflect.Bool:\n\t\t\t\tempty = !fv.Bool()\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\tempty = fv.Int() == 0\n\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\tempty = fv.Uint() == 0\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\tempty = fv.Float() == 0\n\t\t\tcase reflect.Interface, reflect.Ptr:\n\t\t\t\tempty = fv.IsNil()\n\t\t\t}\n\t\t\tif empty {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\targs = append(args, fs.name, fv.Interface())\n\t}\n\treturn args\n}\n"
  },
  {
    "path": "vendor/github.com/gomodule/redigo/redis/script.go",
    "content": "// Copyright 2012 Gary Burd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"): you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations\n// under the License.\n\npackage redis\n\nimport (\n\t\"crypto/sha1\"\n\t\"encoding/hex\"\n\t\"io\"\n\t\"strings\"\n)\n\n// Script encapsulates the source, hash and key count for a Lua script. See\n// http://redis.io/commands/eval for information on scripts in Redis.\ntype Script struct {\n\tkeyCount int\n\tsrc      string\n\thash     string\n}\n\n// NewScript returns a new script object. If keyCount is greater than or equal\n// to zero, then the count is automatically inserted in the EVAL command\n// argument list. If keyCount is less than zero, then the application supplies\n// the count as the first value in the keysAndArgs argument to the Do, Send and\n// SendHash methods.\nfunc NewScript(keyCount int, src string) *Script {\n\th := sha1.New()\n\tio.WriteString(h, src)\n\treturn &Script{keyCount, src, hex.EncodeToString(h.Sum(nil))}\n}\n\nfunc (s *Script) args(spec string, keysAndArgs []interface{}) []interface{} {\n\tvar args []interface{}\n\tif s.keyCount < 0 {\n\t\targs = make([]interface{}, 1+len(keysAndArgs))\n\t\targs[0] = spec\n\t\tcopy(args[1:], keysAndArgs)\n\t} else {\n\t\targs = make([]interface{}, 2+len(keysAndArgs))\n\t\targs[0] = spec\n\t\targs[1] = s.keyCount\n\t\tcopy(args[2:], keysAndArgs)\n\t}\n\treturn args\n}\n\n// Hash returns the script hash.\nfunc (s *Script) Hash() string {\n\treturn s.hash\n}\n\n// Do evaluates the script. Under the covers, Do optimistically evaluates the\n// script using the EVALSHA command. If the command fails because the script is\n// not loaded, then Do evaluates the script using the EVAL command (thus\n// causing the script to load).\nfunc (s *Script) Do(c Conn, keysAndArgs ...interface{}) (interface{}, error) {\n\tv, err := c.Do(\"EVALSHA\", s.args(s.hash, keysAndArgs)...)\n\tif e, ok := err.(Error); ok && strings.HasPrefix(string(e), \"NOSCRIPT \") {\n\t\tv, err = c.Do(\"EVAL\", s.args(s.src, keysAndArgs)...)\n\t}\n\treturn v, err\n}\n\n// SendHash evaluates the script without waiting for the reply. The script is\n// evaluated with the EVALSHA command. The application must ensure that the\n// script is loaded by a previous call to Send, Do or Load methods.\nfunc (s *Script) SendHash(c Conn, keysAndArgs ...interface{}) error {\n\treturn c.Send(\"EVALSHA\", s.args(s.hash, keysAndArgs)...)\n}\n\n// Send evaluates the script without waiting for the reply.\nfunc (s *Script) Send(c Conn, keysAndArgs ...interface{}) error {\n\treturn c.Send(\"EVAL\", s.args(s.src, keysAndArgs)...)\n}\n\n// Load loads the script without evaluating it.\nfunc (s *Script) Load(c Conn) error {\n\t_, err := c.Do(\"SCRIPT\", \"LOAD\", s.src)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/.codeclimate.yml",
    "content": "---\nengines:\n  gofmt:\n    enabled: true\n  govet:\n    enabled: true\n  golint:\n    enabled: true\nratings:\n  paths:\n  - \"**.go\"\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/.gitignore",
    "content": "documents\n_book\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/License",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013-NOW  Jinzhu <wosmvp@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/README.md",
    "content": "# GORM\n\nThe fantastic ORM library for Golang, aims to be developer friendly.\n\n[![go report card](https://goreportcard.com/badge/github.com/jinzhu/gorm \"go report card\")](https://goreportcard.com/report/github.com/jinzhu/gorm)\n[![wercker status](https://app.wercker.com/status/8596cace912c9947dd9c8542ecc8cb8b/s/master \"wercker status\")](https://app.wercker.com/project/byKey/8596cace912c9947dd9c8542ecc8cb8b)\n[![Join the chat at https://gitter.im/jinzhu/gorm](https://img.shields.io/gitter/room/jinzhu/gorm.svg)](https://gitter.im/jinzhu/gorm?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Open Collective Backer](https://opencollective.com/gorm/tiers/backer/badge.svg?label=backer&color=brightgreen \"Open Collective Backer\")](https://opencollective.com/gorm)\n[![Open Collective Sponsor](https://opencollective.com/gorm/tiers/sponsor/badge.svg?label=sponsor&color=brightgreen \"Open Collective Sponsor\")](https://opencollective.com/gorm)\n[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)\n[![GoDoc](https://godoc.org/github.com/jinzhu/gorm?status.svg)](https://godoc.org/github.com/jinzhu/gorm)\n\n## Overview\n\n* Full-Featured ORM (almost)\n* Associations (Has One, Has Many, Belongs To, Many To Many, Polymorphism)\n* Callbacks (Before/After Create/Save/Update/Delete/Find)\n* Preloading (eager loading)\n* Transactions\n* Composite Primary Key\n* SQL Builder\n* Auto Migrations\n* Logger\n* Extendable, write Plugins based on GORM callbacks\n* Every feature comes with tests\n* Developer Friendly\n\n## Getting Started\n\n* GORM Guides [http://gorm.io](http://gorm.io)\n\n## Contributing\n\n[Become a backer or sponsor on Open Collective](http://opencollective.com/gorm)\n\n[Become a backer or sponsor on Patreon](http://patreon.com/jinzhu)\n\n## License\n\n© Jinzhu, 2013~time.Now\n\nReleased under the [MIT License](https://github.com/jinzhu/gorm/blob/master/License)\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/association.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// Association Mode contains some helper methods to handle relationship things easily.\ntype Association struct {\n\tError  error\n\tscope  *Scope\n\tcolumn string\n\tfield  *Field\n}\n\n// Find find out all related associations\nfunc (association *Association) Find(value interface{}) *Association {\n\tassociation.scope.related(value, association.column)\n\treturn association.setErr(association.scope.db.Error)\n}\n\n// Append append new associations for many2many, has_many, replace current association for has_one, belongs_to\nfunc (association *Association) Append(values ...interface{}) *Association {\n\tif association.Error != nil {\n\t\treturn association\n\t}\n\n\tif relationship := association.field.Relationship; relationship.Kind == \"has_one\" {\n\t\treturn association.Replace(values...)\n\t}\n\treturn association.saveAssociations(values...)\n}\n\n// Replace replace current associations with new one\nfunc (association *Association) Replace(values ...interface{}) *Association {\n\tif association.Error != nil {\n\t\treturn association\n\t}\n\n\tvar (\n\t\trelationship = association.field.Relationship\n\t\tscope        = association.scope\n\t\tfield        = association.field.Field\n\t\tnewDB        = scope.NewDB()\n\t)\n\n\t// Append new values\n\tassociation.field.Set(reflect.Zero(association.field.Field.Type()))\n\tassociation.saveAssociations(values...)\n\n\t// Belongs To\n\tif relationship.Kind == \"belongs_to\" {\n\t\t// Set foreign key to be null when clearing value (length equals 0)\n\t\tif len(values) == 0 {\n\t\t\t// Set foreign key to be nil\n\t\t\tvar foreignKeyMap = map[string]interface{}{}\n\t\t\tfor _, foreignKey := range relationship.ForeignDBNames {\n\t\t\t\tforeignKeyMap[foreignKey] = nil\n\t\t\t}\n\t\t\tassociation.setErr(newDB.Model(scope.Value).UpdateColumn(foreignKeyMap).Error)\n\t\t}\n\t} else {\n\t\t// Polymorphic Relations\n\t\tif relationship.PolymorphicDBName != \"\" {\n\t\t\tnewDB = newDB.Where(fmt.Sprintf(\"%v = ?\", scope.Quote(relationship.PolymorphicDBName)), relationship.PolymorphicValue)\n\t\t}\n\n\t\t// Delete Relations except new created\n\t\tif len(values) > 0 {\n\t\t\tvar associationForeignFieldNames, associationForeignDBNames []string\n\t\t\tif relationship.Kind == \"many_to_many\" {\n\t\t\t\t// if many to many relations, get association fields name from association foreign keys\n\t\t\t\tassociationScope := scope.New(reflect.New(field.Type()).Interface())\n\t\t\t\tfor idx, dbName := range relationship.AssociationForeignFieldNames {\n\t\t\t\t\tif field, ok := associationScope.FieldByName(dbName); ok {\n\t\t\t\t\t\tassociationForeignFieldNames = append(associationForeignFieldNames, field.Name)\n\t\t\t\t\t\tassociationForeignDBNames = append(associationForeignDBNames, relationship.AssociationForeignDBNames[idx])\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If has one/many relations, use primary keys\n\t\t\t\tfor _, field := range scope.New(reflect.New(field.Type()).Interface()).PrimaryFields() {\n\t\t\t\t\tassociationForeignFieldNames = append(associationForeignFieldNames, field.Name)\n\t\t\t\t\tassociationForeignDBNames = append(associationForeignDBNames, field.DBName)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnewPrimaryKeys := scope.getColumnAsArray(associationForeignFieldNames, field.Interface())\n\n\t\t\tif len(newPrimaryKeys) > 0 {\n\t\t\t\tsql := fmt.Sprintf(\"%v NOT IN (%v)\", toQueryCondition(scope, associationForeignDBNames), toQueryMarks(newPrimaryKeys))\n\t\t\t\tnewDB = newDB.Where(sql, toQueryValues(newPrimaryKeys)...)\n\t\t\t}\n\t\t}\n\n\t\tif relationship.Kind == \"many_to_many\" {\n\t\t\t// if many to many relations, delete related relations from join table\n\t\t\tvar sourceForeignFieldNames []string\n\n\t\t\tfor _, dbName := range relationship.ForeignFieldNames {\n\t\t\t\tif field, ok := scope.FieldByName(dbName); ok {\n\t\t\t\t\tsourceForeignFieldNames = append(sourceForeignFieldNames, field.Name)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif sourcePrimaryKeys := scope.getColumnAsArray(sourceForeignFieldNames, scope.Value); len(sourcePrimaryKeys) > 0 {\n\t\t\t\tnewDB = newDB.Where(fmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relationship.ForeignDBNames), toQueryMarks(sourcePrimaryKeys)), toQueryValues(sourcePrimaryKeys)...)\n\n\t\t\t\tassociation.setErr(relationship.JoinTableHandler.Delete(relationship.JoinTableHandler, newDB))\n\t\t\t}\n\t\t} else if relationship.Kind == \"has_one\" || relationship.Kind == \"has_many\" {\n\t\t\t// has_one or has_many relations, set foreign key to be nil (TODO or delete them?)\n\t\t\tvar foreignKeyMap = map[string]interface{}{}\n\t\t\tfor idx, foreignKey := range relationship.ForeignDBNames {\n\t\t\t\tforeignKeyMap[foreignKey] = nil\n\t\t\t\tif field, ok := scope.FieldByName(relationship.AssociationForeignFieldNames[idx]); ok {\n\t\t\t\t\tnewDB = newDB.Where(fmt.Sprintf(\"%v = ?\", scope.Quote(foreignKey)), field.Field.Interface())\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfieldValue := reflect.New(association.field.Field.Type()).Interface()\n\t\t\tassociation.setErr(newDB.Model(fieldValue).UpdateColumn(foreignKeyMap).Error)\n\t\t}\n\t}\n\treturn association\n}\n\n// Delete remove relationship between source & passed arguments, but won't delete those arguments\nfunc (association *Association) Delete(values ...interface{}) *Association {\n\tif association.Error != nil {\n\t\treturn association\n\t}\n\n\tvar (\n\t\trelationship = association.field.Relationship\n\t\tscope        = association.scope\n\t\tfield        = association.field.Field\n\t\tnewDB        = scope.NewDB()\n\t)\n\n\tif len(values) == 0 {\n\t\treturn association\n\t}\n\n\tvar deletingResourcePrimaryFieldNames, deletingResourcePrimaryDBNames []string\n\tfor _, field := range scope.New(reflect.New(field.Type()).Interface()).PrimaryFields() {\n\t\tdeletingResourcePrimaryFieldNames = append(deletingResourcePrimaryFieldNames, field.Name)\n\t\tdeletingResourcePrimaryDBNames = append(deletingResourcePrimaryDBNames, field.DBName)\n\t}\n\n\tdeletingPrimaryKeys := scope.getColumnAsArray(deletingResourcePrimaryFieldNames, values...)\n\n\tif relationship.Kind == \"many_to_many\" {\n\t\t// source value's foreign keys\n\t\tfor idx, foreignKey := range relationship.ForeignDBNames {\n\t\t\tif field, ok := scope.FieldByName(relationship.ForeignFieldNames[idx]); ok {\n\t\t\t\tnewDB = newDB.Where(fmt.Sprintf(\"%v = ?\", scope.Quote(foreignKey)), field.Field.Interface())\n\t\t\t}\n\t\t}\n\n\t\t// get association's foreign fields name\n\t\tvar associationScope = scope.New(reflect.New(field.Type()).Interface())\n\t\tvar associationForeignFieldNames []string\n\t\tfor _, associationDBName := range relationship.AssociationForeignFieldNames {\n\t\t\tif field, ok := associationScope.FieldByName(associationDBName); ok {\n\t\t\t\tassociationForeignFieldNames = append(associationForeignFieldNames, field.Name)\n\t\t\t}\n\t\t}\n\n\t\t// association value's foreign keys\n\t\tdeletingPrimaryKeys := scope.getColumnAsArray(associationForeignFieldNames, values...)\n\t\tsql := fmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relationship.AssociationForeignDBNames), toQueryMarks(deletingPrimaryKeys))\n\t\tnewDB = newDB.Where(sql, toQueryValues(deletingPrimaryKeys)...)\n\n\t\tassociation.setErr(relationship.JoinTableHandler.Delete(relationship.JoinTableHandler, newDB))\n\t} else {\n\t\tvar foreignKeyMap = map[string]interface{}{}\n\t\tfor _, foreignKey := range relationship.ForeignDBNames {\n\t\t\tforeignKeyMap[foreignKey] = nil\n\t\t}\n\n\t\tif relationship.Kind == \"belongs_to\" {\n\t\t\t// find with deleting relation's foreign keys\n\t\t\tprimaryKeys := scope.getColumnAsArray(relationship.AssociationForeignFieldNames, values...)\n\t\t\tnewDB = newDB.Where(\n\t\t\t\tfmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relationship.ForeignDBNames), toQueryMarks(primaryKeys)),\n\t\t\t\ttoQueryValues(primaryKeys)...,\n\t\t\t)\n\n\t\t\t// set foreign key to be null if there are some records affected\n\t\t\tmodelValue := reflect.New(scope.GetModelStruct().ModelType).Interface()\n\t\t\tif results := newDB.Model(modelValue).UpdateColumn(foreignKeyMap); results.Error == nil {\n\t\t\t\tif results.RowsAffected > 0 {\n\t\t\t\t\tscope.updatedAttrsWithValues(foreignKeyMap)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassociation.setErr(results.Error)\n\t\t\t}\n\t\t} else if relationship.Kind == \"has_one\" || relationship.Kind == \"has_many\" {\n\t\t\t// find all relations\n\t\t\tprimaryKeys := scope.getColumnAsArray(relationship.AssociationForeignFieldNames, scope.Value)\n\t\t\tnewDB = newDB.Where(\n\t\t\t\tfmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relationship.ForeignDBNames), toQueryMarks(primaryKeys)),\n\t\t\t\ttoQueryValues(primaryKeys)...,\n\t\t\t)\n\n\t\t\t// only include those deleting relations\n\t\t\tnewDB = newDB.Where(\n\t\t\t\tfmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, deletingResourcePrimaryDBNames), toQueryMarks(deletingPrimaryKeys)),\n\t\t\t\ttoQueryValues(deletingPrimaryKeys)...,\n\t\t\t)\n\n\t\t\t// set matched relation's foreign key to be null\n\t\t\tfieldValue := reflect.New(association.field.Field.Type()).Interface()\n\t\t\tassociation.setErr(newDB.Model(fieldValue).UpdateColumn(foreignKeyMap).Error)\n\t\t}\n\t}\n\n\t// Remove deleted records from source's field\n\tif association.Error == nil {\n\t\tif field.Kind() == reflect.Slice {\n\t\t\tleftValues := reflect.Zero(field.Type())\n\n\t\t\tfor i := 0; i < field.Len(); i++ {\n\t\t\t\treflectValue := field.Index(i)\n\t\t\t\tprimaryKey := scope.getColumnAsArray(deletingResourcePrimaryFieldNames, reflectValue.Interface())[0]\n\t\t\t\tvar isDeleted = false\n\t\t\t\tfor _, pk := range deletingPrimaryKeys {\n\t\t\t\t\tif equalAsString(primaryKey, pk) {\n\t\t\t\t\t\tisDeleted = true\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !isDeleted {\n\t\t\t\t\tleftValues = reflect.Append(leftValues, reflectValue)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tassociation.field.Set(leftValues)\n\t\t} else if field.Kind() == reflect.Struct {\n\t\t\tprimaryKey := scope.getColumnAsArray(deletingResourcePrimaryFieldNames, field.Interface())[0]\n\t\t\tfor _, pk := range deletingPrimaryKeys {\n\t\t\t\tif equalAsString(primaryKey, pk) {\n\t\t\t\t\tassociation.field.Set(reflect.Zero(field.Type()))\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn association\n}\n\n// Clear remove relationship between source & current associations, won't delete those associations\nfunc (association *Association) Clear() *Association {\n\treturn association.Replace()\n}\n\n// Count return the count of current associations\nfunc (association *Association) Count() int {\n\tvar (\n\t\tcount        = 0\n\t\trelationship = association.field.Relationship\n\t\tscope        = association.scope\n\t\tfieldValue   = association.field.Field.Interface()\n\t\tquery        = scope.DB()\n\t)\n\n\tif relationship.Kind == \"many_to_many\" {\n\t\tquery = relationship.JoinTableHandler.JoinWith(relationship.JoinTableHandler, query, scope.Value)\n\t} else if relationship.Kind == \"has_many\" || relationship.Kind == \"has_one\" {\n\t\tprimaryKeys := scope.getColumnAsArray(relationship.AssociationForeignFieldNames, scope.Value)\n\t\tquery = query.Where(\n\t\t\tfmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relationship.ForeignDBNames), toQueryMarks(primaryKeys)),\n\t\t\ttoQueryValues(primaryKeys)...,\n\t\t)\n\t} else if relationship.Kind == \"belongs_to\" {\n\t\tprimaryKeys := scope.getColumnAsArray(relationship.ForeignFieldNames, scope.Value)\n\t\tquery = query.Where(\n\t\t\tfmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relationship.AssociationForeignDBNames), toQueryMarks(primaryKeys)),\n\t\t\ttoQueryValues(primaryKeys)...,\n\t\t)\n\t}\n\n\tif relationship.PolymorphicType != \"\" {\n\t\tquery = query.Where(\n\t\t\tfmt.Sprintf(\"%v.%v = ?\", scope.New(fieldValue).QuotedTableName(), scope.Quote(relationship.PolymorphicDBName)),\n\t\t\trelationship.PolymorphicValue,\n\t\t)\n\t}\n\n\tif err := query.Model(fieldValue).Count(&count).Error; err != nil {\n\t\tassociation.Error = err\n\t}\n\treturn count\n}\n\n// saveAssociations save passed values as associations\nfunc (association *Association) saveAssociations(values ...interface{}) *Association {\n\tvar (\n\t\tscope        = association.scope\n\t\tfield        = association.field\n\t\trelationship = field.Relationship\n\t)\n\n\tsaveAssociation := func(reflectValue reflect.Value) {\n\t\t// value has to been pointer\n\t\tif reflectValue.Kind() != reflect.Ptr {\n\t\t\treflectPtr := reflect.New(reflectValue.Type())\n\t\t\treflectPtr.Elem().Set(reflectValue)\n\t\t\treflectValue = reflectPtr\n\t\t}\n\n\t\t// value has to been saved for many2many\n\t\tif relationship.Kind == \"many_to_many\" {\n\t\t\tif scope.New(reflectValue.Interface()).PrimaryKeyZero() {\n\t\t\t\tassociation.setErr(scope.NewDB().Save(reflectValue.Interface()).Error)\n\t\t\t}\n\t\t}\n\n\t\t// Assign Fields\n\t\tvar fieldType = field.Field.Type()\n\t\tvar setFieldBackToValue, setSliceFieldBackToValue bool\n\t\tif reflectValue.Type().AssignableTo(fieldType) {\n\t\t\tfield.Set(reflectValue)\n\t\t} else if reflectValue.Type().Elem().AssignableTo(fieldType) {\n\t\t\t// if field's type is struct, then need to set value back to argument after save\n\t\t\tsetFieldBackToValue = true\n\t\t\tfield.Set(reflectValue.Elem())\n\t\t} else if fieldType.Kind() == reflect.Slice {\n\t\t\tif reflectValue.Type().AssignableTo(fieldType.Elem()) {\n\t\t\t\tfield.Set(reflect.Append(field.Field, reflectValue))\n\t\t\t} else if reflectValue.Type().Elem().AssignableTo(fieldType.Elem()) {\n\t\t\t\t// if field's type is slice of struct, then need to set value back to argument after save\n\t\t\t\tsetSliceFieldBackToValue = true\n\t\t\t\tfield.Set(reflect.Append(field.Field, reflectValue.Elem()))\n\t\t\t}\n\t\t}\n\n\t\tif relationship.Kind == \"many_to_many\" {\n\t\t\tassociation.setErr(relationship.JoinTableHandler.Add(relationship.JoinTableHandler, scope.NewDB(), scope.Value, reflectValue.Interface()))\n\t\t} else {\n\t\t\tassociation.setErr(scope.NewDB().Select(field.Name).Save(scope.Value).Error)\n\n\t\t\tif setFieldBackToValue {\n\t\t\t\treflectValue.Elem().Set(field.Field)\n\t\t\t} else if setSliceFieldBackToValue {\n\t\t\t\treflectValue.Elem().Set(field.Field.Index(field.Field.Len() - 1))\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, value := range values {\n\t\treflectValue := reflect.ValueOf(value)\n\t\tindirectReflectValue := reflect.Indirect(reflectValue)\n\t\tif indirectReflectValue.Kind() == reflect.Struct {\n\t\t\tsaveAssociation(reflectValue)\n\t\t} else if indirectReflectValue.Kind() == reflect.Slice {\n\t\t\tfor i := 0; i < indirectReflectValue.Len(); i++ {\n\t\t\t\tsaveAssociation(indirectReflectValue.Index(i))\n\t\t\t}\n\t\t} else {\n\t\t\tassociation.setErr(errors.New(\"invalid value type\"))\n\t\t}\n\t}\n\treturn association\n}\n\nfunc (association *Association) setErr(err error) *Association {\n\tif err != nil {\n\t\tassociation.Error = err\n\t}\n\treturn association\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback.go",
    "content": "package gorm\n\nimport \"log\"\n\n// DefaultCallback default callbacks defined by gorm\nvar DefaultCallback = &Callback{}\n\n// Callback is a struct that contains all CRUD callbacks\n//   Field `creates` contains callbacks will be call when creating object\n//   Field `updates` contains callbacks will be call when updating object\n//   Field `deletes` contains callbacks will be call when deleting object\n//   Field `queries` contains callbacks will be call when querying object with query methods like Find, First, Related, Association...\n//   Field `rowQueries` contains callbacks will be call when querying object with Row, Rows...\n//   Field `processors` contains all callback processors, will be used to generate above callbacks in order\ntype Callback struct {\n\tcreates    []*func(scope *Scope)\n\tupdates    []*func(scope *Scope)\n\tdeletes    []*func(scope *Scope)\n\tqueries    []*func(scope *Scope)\n\trowQueries []*func(scope *Scope)\n\tprocessors []*CallbackProcessor\n}\n\n// CallbackProcessor contains callback informations\ntype CallbackProcessor struct {\n\tname      string              // current callback's name\n\tbefore    string              // register current callback before a callback\n\tafter     string              // register current callback after a callback\n\treplace   bool                // replace callbacks with same name\n\tremove    bool                // delete callbacks with same name\n\tkind      string              // callback type: create, update, delete, query, row_query\n\tprocessor *func(scope *Scope) // callback handler\n\tparent    *Callback\n}\n\nfunc (c *Callback) clone() *Callback {\n\treturn &Callback{\n\t\tcreates:    c.creates,\n\t\tupdates:    c.updates,\n\t\tdeletes:    c.deletes,\n\t\tqueries:    c.queries,\n\t\trowQueries: c.rowQueries,\n\t\tprocessors: c.processors,\n\t}\n}\n\n// Create could be used to register callbacks for creating object\n//     db.Callback().Create().After(\"gorm:create\").Register(\"plugin:run_after_create\", func(*Scope) {\n//       // business logic\n//       ...\n//\n//       // set error if some thing wrong happened, will rollback the creating\n//       scope.Err(errors.New(\"error\"))\n//     })\nfunc (c *Callback) Create() *CallbackProcessor {\n\treturn &CallbackProcessor{kind: \"create\", parent: c}\n}\n\n// Update could be used to register callbacks for updating object, refer `Create` for usage\nfunc (c *Callback) Update() *CallbackProcessor {\n\treturn &CallbackProcessor{kind: \"update\", parent: c}\n}\n\n// Delete could be used to register callbacks for deleting object, refer `Create` for usage\nfunc (c *Callback) Delete() *CallbackProcessor {\n\treturn &CallbackProcessor{kind: \"delete\", parent: c}\n}\n\n// Query could be used to register callbacks for querying objects with query methods like `Find`, `First`, `Related`, `Association`...\n// Refer `Create` for usage\nfunc (c *Callback) Query() *CallbackProcessor {\n\treturn &CallbackProcessor{kind: \"query\", parent: c}\n}\n\n// RowQuery could be used to register callbacks for querying objects with `Row`, `Rows`, refer `Create` for usage\nfunc (c *Callback) RowQuery() *CallbackProcessor {\n\treturn &CallbackProcessor{kind: \"row_query\", parent: c}\n}\n\n// After insert a new callback after callback `callbackName`, refer `Callbacks.Create`\nfunc (cp *CallbackProcessor) After(callbackName string) *CallbackProcessor {\n\tcp.after = callbackName\n\treturn cp\n}\n\n// Before insert a new callback before callback `callbackName`, refer `Callbacks.Create`\nfunc (cp *CallbackProcessor) Before(callbackName string) *CallbackProcessor {\n\tcp.before = callbackName\n\treturn cp\n}\n\n// Register a new callback, refer `Callbacks.Create`\nfunc (cp *CallbackProcessor) Register(callbackName string, callback func(scope *Scope)) {\n\tif cp.kind == \"row_query\" {\n\t\tif cp.before == \"\" && cp.after == \"\" && callbackName != \"gorm:row_query\" {\n\t\t\tlog.Printf(\"Registing RowQuery callback %v without specify order with Before(), After(), applying Before('gorm:row_query') by default for compatibility...\\n\", callbackName)\n\t\t\tcp.before = \"gorm:row_query\"\n\t\t}\n\t}\n\n\tcp.name = callbackName\n\tcp.processor = &callback\n\tcp.parent.processors = append(cp.parent.processors, cp)\n\tcp.parent.reorder()\n}\n\n// Remove a registered callback\n//     db.Callback().Create().Remove(\"gorm:update_time_stamp_when_create\")\nfunc (cp *CallbackProcessor) Remove(callbackName string) {\n\tlog.Printf(\"[info] removing callback `%v` from %v\\n\", callbackName, fileWithLineNum())\n\tcp.name = callbackName\n\tcp.remove = true\n\tcp.parent.processors = append(cp.parent.processors, cp)\n\tcp.parent.reorder()\n}\n\n// Replace a registered callback with new callback\n//     db.Callback().Create().Replace(\"gorm:update_time_stamp_when_create\", func(*Scope) {\n//\t\t   scope.SetColumn(\"Created\", now)\n//\t\t   scope.SetColumn(\"Updated\", now)\n//     })\nfunc (cp *CallbackProcessor) Replace(callbackName string, callback func(scope *Scope)) {\n\tlog.Printf(\"[info] replacing callback `%v` from %v\\n\", callbackName, fileWithLineNum())\n\tcp.name = callbackName\n\tcp.processor = &callback\n\tcp.replace = true\n\tcp.parent.processors = append(cp.parent.processors, cp)\n\tcp.parent.reorder()\n}\n\n// Get registered callback\n//    db.Callback().Create().Get(\"gorm:create\")\nfunc (cp *CallbackProcessor) Get(callbackName string) (callback func(scope *Scope)) {\n\tfor _, p := range cp.parent.processors {\n\t\tif p.name == callbackName && p.kind == cp.kind && !cp.remove {\n\t\t\treturn *p.processor\n\t\t}\n\t}\n\treturn nil\n}\n\n// getRIndex get right index from string slice\nfunc getRIndex(strs []string, str string) int {\n\tfor i := len(strs) - 1; i >= 0; i-- {\n\t\tif strs[i] == str {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// sortProcessors sort callback processors based on its before, after, remove, replace\nfunc sortProcessors(cps []*CallbackProcessor) []*func(scope *Scope) {\n\tvar (\n\t\tallNames, sortedNames []string\n\t\tsortCallbackProcessor func(c *CallbackProcessor)\n\t)\n\n\tfor _, cp := range cps {\n\t\t// show warning message the callback name already exists\n\t\tif index := getRIndex(allNames, cp.name); index > -1 && !cp.replace && !cp.remove {\n\t\t\tlog.Printf(\"[warning] duplicated callback `%v` from %v\\n\", cp.name, fileWithLineNum())\n\t\t}\n\t\tallNames = append(allNames, cp.name)\n\t}\n\n\tsortCallbackProcessor = func(c *CallbackProcessor) {\n\t\tif getRIndex(sortedNames, c.name) == -1 { // if not sorted\n\t\t\tif c.before != \"\" { // if defined before callback\n\t\t\t\tif index := getRIndex(sortedNames, c.before); index != -1 {\n\t\t\t\t\t// if before callback already sorted, append current callback just after it\n\t\t\t\t\tsortedNames = append(sortedNames[:index], append([]string{c.name}, sortedNames[index:]...)...)\n\t\t\t\t} else if index := getRIndex(allNames, c.before); index != -1 {\n\t\t\t\t\t// if before callback exists but haven't sorted, append current callback to last\n\t\t\t\t\tsortedNames = append(sortedNames, c.name)\n\t\t\t\t\tsortCallbackProcessor(cps[index])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif c.after != \"\" { // if defined after callback\n\t\t\t\tif index := getRIndex(sortedNames, c.after); index != -1 {\n\t\t\t\t\t// if after callback already sorted, append current callback just before it\n\t\t\t\t\tsortedNames = append(sortedNames[:index+1], append([]string{c.name}, sortedNames[index+1:]...)...)\n\t\t\t\t} else if index := getRIndex(allNames, c.after); index != -1 {\n\t\t\t\t\t// if after callback exists but haven't sorted\n\t\t\t\t\tcp := cps[index]\n\t\t\t\t\t// set after callback's before callback to current callback\n\t\t\t\t\tif cp.before == \"\" {\n\t\t\t\t\t\tcp.before = c.name\n\t\t\t\t\t}\n\t\t\t\t\tsortCallbackProcessor(cp)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if current callback haven't been sorted, append it to last\n\t\t\tif getRIndex(sortedNames, c.name) == -1 {\n\t\t\t\tsortedNames = append(sortedNames, c.name)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, cp := range cps {\n\t\tsortCallbackProcessor(cp)\n\t}\n\n\tvar sortedFuncs []*func(scope *Scope)\n\tfor _, name := range sortedNames {\n\t\tif index := getRIndex(allNames, name); !cps[index].remove {\n\t\t\tsortedFuncs = append(sortedFuncs, cps[index].processor)\n\t\t}\n\t}\n\n\treturn sortedFuncs\n}\n\n// reorder all registered processors, and reset CRUD callbacks\nfunc (c *Callback) reorder() {\n\tvar creates, updates, deletes, queries, rowQueries []*CallbackProcessor\n\n\tfor _, processor := range c.processors {\n\t\tif processor.name != \"\" {\n\t\t\tswitch processor.kind {\n\t\t\tcase \"create\":\n\t\t\t\tcreates = append(creates, processor)\n\t\t\tcase \"update\":\n\t\t\t\tupdates = append(updates, processor)\n\t\t\tcase \"delete\":\n\t\t\t\tdeletes = append(deletes, processor)\n\t\t\tcase \"query\":\n\t\t\t\tqueries = append(queries, processor)\n\t\t\tcase \"row_query\":\n\t\t\t\trowQueries = append(rowQueries, processor)\n\t\t\t}\n\t\t}\n\t}\n\n\tc.creates = sortProcessors(creates)\n\tc.updates = sortProcessors(updates)\n\tc.deletes = sortProcessors(deletes)\n\tc.queries = sortProcessors(queries)\n\tc.rowQueries = sortProcessors(rowQueries)\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_create.go",
    "content": "package gorm\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Define callbacks for creating\nfunc init() {\n\tDefaultCallback.Create().Register(\"gorm:begin_transaction\", beginTransactionCallback)\n\tDefaultCallback.Create().Register(\"gorm:before_create\", beforeCreateCallback)\n\tDefaultCallback.Create().Register(\"gorm:save_before_associations\", saveBeforeAssociationsCallback)\n\tDefaultCallback.Create().Register(\"gorm:update_time_stamp\", updateTimeStampForCreateCallback)\n\tDefaultCallback.Create().Register(\"gorm:create\", createCallback)\n\tDefaultCallback.Create().Register(\"gorm:force_reload_after_create\", forceReloadAfterCreateCallback)\n\tDefaultCallback.Create().Register(\"gorm:save_after_associations\", saveAfterAssociationsCallback)\n\tDefaultCallback.Create().Register(\"gorm:after_create\", afterCreateCallback)\n\tDefaultCallback.Create().Register(\"gorm:commit_or_rollback_transaction\", commitOrRollbackTransactionCallback)\n}\n\n// beforeCreateCallback will invoke `BeforeSave`, `BeforeCreate` method before creating\nfunc beforeCreateCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"BeforeSave\")\n\t}\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"BeforeCreate\")\n\t}\n}\n\n// updateTimeStampForCreateCallback will set `CreatedAt`, `UpdatedAt` when creating\nfunc updateTimeStampForCreateCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tnow := NowFunc()\n\n\t\tif createdAtField, ok := scope.FieldByName(\"CreatedAt\"); ok {\n\t\t\tif createdAtField.IsBlank {\n\t\t\t\tcreatedAtField.Set(now)\n\t\t\t}\n\t\t}\n\n\t\tif updatedAtField, ok := scope.FieldByName(\"UpdatedAt\"); ok {\n\t\t\tif updatedAtField.IsBlank {\n\t\t\t\tupdatedAtField.Set(now)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// createCallback the callback used to insert data into database\nfunc createCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tdefer scope.trace(NowFunc())\n\n\t\tvar (\n\t\t\tcolumns, placeholders        []string\n\t\t\tblankColumnsWithDefaultValue []string\n\t\t)\n\n\t\tfor _, field := range scope.Fields() {\n\t\t\tif scope.changeableField(field) {\n\t\t\t\tif field.IsNormal {\n\t\t\t\t\tif field.IsBlank && field.HasDefaultValue {\n\t\t\t\t\t\tblankColumnsWithDefaultValue = append(blankColumnsWithDefaultValue, scope.Quote(field.DBName))\n\t\t\t\t\t\tscope.InstanceSet(\"gorm:blank_columns_with_default_value\", blankColumnsWithDefaultValue)\n\t\t\t\t\t} else if !field.IsPrimaryKey || !field.IsBlank {\n\t\t\t\t\t\tcolumns = append(columns, scope.Quote(field.DBName))\n\t\t\t\t\t\tplaceholders = append(placeholders, scope.AddToVars(field.Field.Interface()))\n\t\t\t\t\t}\n\t\t\t\t} else if field.Relationship != nil && field.Relationship.Kind == \"belongs_to\" {\n\t\t\t\t\tfor _, foreignKey := range field.Relationship.ForeignDBNames {\n\t\t\t\t\t\tif foreignField, ok := scope.FieldByName(foreignKey); ok && !scope.changeableField(foreignField) {\n\t\t\t\t\t\t\tcolumns = append(columns, scope.Quote(foreignField.DBName))\n\t\t\t\t\t\t\tplaceholders = append(placeholders, scope.AddToVars(foreignField.Field.Interface()))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar (\n\t\t\treturningColumn = \"*\"\n\t\t\tquotedTableName = scope.QuotedTableName()\n\t\t\tprimaryField    = scope.PrimaryField()\n\t\t\textraOption     string\n\t\t)\n\n\t\tif str, ok := scope.Get(\"gorm:insert_option\"); ok {\n\t\t\textraOption = fmt.Sprint(str)\n\t\t}\n\n\t\tif primaryField != nil {\n\t\t\treturningColumn = scope.Quote(primaryField.DBName)\n\t\t}\n\n\t\tlastInsertIDReturningSuffix := scope.Dialect().LastInsertIDReturningSuffix(quotedTableName, returningColumn)\n\n\t\tif len(columns) == 0 {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"INSERT INTO %v %v%v%v\",\n\t\t\t\tquotedTableName,\n\t\t\t\tscope.Dialect().DefaultValueStr(),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t\taddExtraSpaceIfExist(lastInsertIDReturningSuffix),\n\t\t\t))\n\t\t} else {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"INSERT INTO %v (%v) VALUES (%v)%v%v\",\n\t\t\t\tscope.QuotedTableName(),\n\t\t\t\tstrings.Join(columns, \",\"),\n\t\t\t\tstrings.Join(placeholders, \",\"),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t\taddExtraSpaceIfExist(lastInsertIDReturningSuffix),\n\t\t\t))\n\t\t}\n\n\t\t// execute create sql\n\t\tif lastInsertIDReturningSuffix == \"\" || primaryField == nil {\n\t\t\tif result, err := scope.SQLDB().Exec(scope.SQL, scope.SQLVars...); scope.Err(err) == nil {\n\t\t\t\t// set rows affected count\n\t\t\t\tscope.db.RowsAffected, _ = result.RowsAffected()\n\n\t\t\t\t// set primary value to primary field\n\t\t\t\tif primaryField != nil && primaryField.IsBlank {\n\t\t\t\t\tif primaryValue, err := result.LastInsertId(); scope.Err(err) == nil {\n\t\t\t\t\t\tscope.Err(primaryField.Set(primaryValue))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif primaryField.Field.CanAddr() {\n\t\t\t\tif err := scope.SQLDB().QueryRow(scope.SQL, scope.SQLVars...).Scan(primaryField.Field.Addr().Interface()); scope.Err(err) == nil {\n\t\t\t\t\tprimaryField.IsBlank = false\n\t\t\t\t\tscope.db.RowsAffected = 1\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tscope.Err(ErrUnaddressable)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// forceReloadAfterCreateCallback will reload columns that having default value, and set it back to current object\nfunc forceReloadAfterCreateCallback(scope *Scope) {\n\tif blankColumnsWithDefaultValue, ok := scope.InstanceGet(\"gorm:blank_columns_with_default_value\"); ok {\n\t\tdb := scope.DB().New().Table(scope.TableName()).Select(blankColumnsWithDefaultValue.([]string))\n\t\tfor _, field := range scope.Fields() {\n\t\t\tif field.IsPrimaryKey && !field.IsBlank {\n\t\t\t\tdb = db.Where(fmt.Sprintf(\"%v = ?\", field.DBName), field.Field.Interface())\n\t\t\t}\n\t\t}\n\t\tdb.Scan(scope.Value)\n\t}\n}\n\n// afterCreateCallback will invoke `AfterCreate`, `AfterSave` method after creating\nfunc afterCreateCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"AfterCreate\")\n\t}\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"AfterSave\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_delete.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Define callbacks for deleting\nfunc init() {\n\tDefaultCallback.Delete().Register(\"gorm:begin_transaction\", beginTransactionCallback)\n\tDefaultCallback.Delete().Register(\"gorm:before_delete\", beforeDeleteCallback)\n\tDefaultCallback.Delete().Register(\"gorm:delete\", deleteCallback)\n\tDefaultCallback.Delete().Register(\"gorm:after_delete\", afterDeleteCallback)\n\tDefaultCallback.Delete().Register(\"gorm:commit_or_rollback_transaction\", commitOrRollbackTransactionCallback)\n}\n\n// beforeDeleteCallback will invoke `BeforeDelete` method before deleting\nfunc beforeDeleteCallback(scope *Scope) {\n\tif scope.DB().HasBlockGlobalUpdate() && !scope.hasConditions() {\n\t\tscope.Err(errors.New(\"Missing WHERE clause while deleting\"))\n\t\treturn\n\t}\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"BeforeDelete\")\n\t}\n}\n\n// deleteCallback used to delete data from database or set deleted_at to current time (when using with soft delete)\nfunc deleteCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tvar extraOption string\n\t\tif str, ok := scope.Get(\"gorm:delete_option\"); ok {\n\t\t\textraOption = fmt.Sprint(str)\n\t\t}\n\n\t\tdeletedAtField, hasDeletedAtField := scope.FieldByName(\"DeletedAt\")\n\n\t\tif !scope.Search.Unscoped && hasDeletedAtField {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"UPDATE %v SET %v=%v%v%v\",\n\t\t\t\tscope.QuotedTableName(),\n\t\t\t\tscope.Quote(deletedAtField.DBName),\n\t\t\t\tscope.AddToVars(NowFunc()),\n\t\t\t\taddExtraSpaceIfExist(scope.CombinedConditionSql()),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t)).Exec()\n\t\t} else {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"DELETE FROM %v%v%v\",\n\t\t\t\tscope.QuotedTableName(),\n\t\t\t\taddExtraSpaceIfExist(scope.CombinedConditionSql()),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t)).Exec()\n\t\t}\n\t}\n}\n\n// afterDeleteCallback will invoke `AfterDelete` method after deleting\nfunc afterDeleteCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"AfterDelete\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_query.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// Define callbacks for querying\nfunc init() {\n\tDefaultCallback.Query().Register(\"gorm:query\", queryCallback)\n\tDefaultCallback.Query().Register(\"gorm:preload\", preloadCallback)\n\tDefaultCallback.Query().Register(\"gorm:after_query\", afterQueryCallback)\n}\n\n// queryCallback used to query data from database\nfunc queryCallback(scope *Scope) {\n\tif _, skip := scope.InstanceGet(\"gorm:skip_query_callback\"); skip {\n\t\treturn\n\t}\n\n\tdefer scope.trace(NowFunc())\n\n\tvar (\n\t\tisSlice, isPtr bool\n\t\tresultType     reflect.Type\n\t\tresults        = scope.IndirectValue()\n\t)\n\n\tif orderBy, ok := scope.Get(\"gorm:order_by_primary_key\"); ok {\n\t\tif primaryField := scope.PrimaryField(); primaryField != nil {\n\t\t\tscope.Search.Order(fmt.Sprintf(\"%v.%v %v\", scope.QuotedTableName(), scope.Quote(primaryField.DBName), orderBy))\n\t\t}\n\t}\n\n\tif value, ok := scope.Get(\"gorm:query_destination\"); ok {\n\t\tresults = indirect(reflect.ValueOf(value))\n\t}\n\n\tif kind := results.Kind(); kind == reflect.Slice {\n\t\tisSlice = true\n\t\tresultType = results.Type().Elem()\n\t\tresults.Set(reflect.MakeSlice(results.Type(), 0, 0))\n\n\t\tif resultType.Kind() == reflect.Ptr {\n\t\t\tisPtr = true\n\t\t\tresultType = resultType.Elem()\n\t\t}\n\t} else if kind != reflect.Struct {\n\t\tscope.Err(errors.New(\"unsupported destination, should be slice or struct\"))\n\t\treturn\n\t}\n\n\tscope.prepareQuerySQL()\n\n\tif !scope.HasError() {\n\t\tscope.db.RowsAffected = 0\n\t\tif str, ok := scope.Get(\"gorm:query_option\"); ok {\n\t\t\tscope.SQL += addExtraSpaceIfExist(fmt.Sprint(str))\n\t\t}\n\n\t\tif rows, err := scope.SQLDB().Query(scope.SQL, scope.SQLVars...); scope.Err(err) == nil {\n\t\t\tdefer rows.Close()\n\n\t\t\tcolumns, _ := rows.Columns()\n\t\t\tfor rows.Next() {\n\t\t\t\tscope.db.RowsAffected++\n\n\t\t\t\telem := results\n\t\t\t\tif isSlice {\n\t\t\t\t\telem = reflect.New(resultType).Elem()\n\t\t\t\t}\n\n\t\t\t\tscope.scan(rows, columns, scope.New(elem.Addr().Interface()).Fields())\n\n\t\t\t\tif isSlice {\n\t\t\t\t\tif isPtr {\n\t\t\t\t\t\tresults.Set(reflect.Append(results, elem.Addr()))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresults.Set(reflect.Append(results, elem))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err := rows.Err(); err != nil {\n\t\t\t\tscope.Err(err)\n\t\t\t} else if scope.db.RowsAffected == 0 && !isSlice {\n\t\t\t\tscope.Err(ErrRecordNotFound)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// afterQueryCallback will invoke `AfterFind` method after querying\nfunc afterQueryCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tscope.CallMethod(\"AfterFind\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_query_preload.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// preloadCallback used to preload associations\nfunc preloadCallback(scope *Scope) {\n\tif _, skip := scope.InstanceGet(\"gorm:skip_query_callback\"); skip {\n\t\treturn\n\t}\n\n\tif _, ok := scope.Get(\"gorm:auto_preload\"); ok {\n\t\tautoPreload(scope)\n\t}\n\n\tif scope.Search.preload == nil || scope.HasError() {\n\t\treturn\n\t}\n\n\tvar (\n\t\tpreloadedMap = map[string]bool{}\n\t\tfields       = scope.Fields()\n\t)\n\n\tfor _, preload := range scope.Search.preload {\n\t\tvar (\n\t\t\tpreloadFields = strings.Split(preload.schema, \".\")\n\t\t\tcurrentScope  = scope\n\t\t\tcurrentFields = fields\n\t\t)\n\n\t\tfor idx, preloadField := range preloadFields {\n\t\t\tvar currentPreloadConditions []interface{}\n\n\t\t\tif currentScope == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// if not preloaded\n\t\t\tif preloadKey := strings.Join(preloadFields[:idx+1], \".\"); !preloadedMap[preloadKey] {\n\n\t\t\t\t// assign search conditions to last preload\n\t\t\t\tif idx == len(preloadFields)-1 {\n\t\t\t\t\tcurrentPreloadConditions = preload.conditions\n\t\t\t\t}\n\n\t\t\t\tfor _, field := range currentFields {\n\t\t\t\t\tif field.Name != preloadField || field.Relationship == nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch field.Relationship.Kind {\n\t\t\t\t\tcase \"has_one\":\n\t\t\t\t\t\tcurrentScope.handleHasOnePreload(field, currentPreloadConditions)\n\t\t\t\t\tcase \"has_many\":\n\t\t\t\t\t\tcurrentScope.handleHasManyPreload(field, currentPreloadConditions)\n\t\t\t\t\tcase \"belongs_to\":\n\t\t\t\t\t\tcurrentScope.handleBelongsToPreload(field, currentPreloadConditions)\n\t\t\t\t\tcase \"many_to_many\":\n\t\t\t\t\t\tcurrentScope.handleManyToManyPreload(field, currentPreloadConditions)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tscope.Err(errors.New(\"unsupported relation\"))\n\t\t\t\t\t}\n\n\t\t\t\t\tpreloadedMap[preloadKey] = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tif !preloadedMap[preloadKey] {\n\t\t\t\t\tscope.Err(fmt.Errorf(\"can't preload field %s for %s\", preloadField, currentScope.GetModelStruct().ModelType))\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// preload next level\n\t\t\tif idx < len(preloadFields)-1 {\n\t\t\t\tcurrentScope = currentScope.getColumnAsScope(preloadField)\n\t\t\t\tif currentScope != nil {\n\t\t\t\t\tcurrentFields = currentScope.Fields()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc autoPreload(scope *Scope) {\n\tfor _, field := range scope.Fields() {\n\t\tif field.Relationship == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif val, ok := field.TagSettings[\"PRELOAD\"]; ok {\n\t\t\tif preload, err := strconv.ParseBool(val); err != nil {\n\t\t\t\tscope.Err(errors.New(\"invalid preload option\"))\n\t\t\t\treturn\n\t\t\t} else if !preload {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tscope.Search.Preload(field.Name)\n\t}\n}\n\nfunc (scope *Scope) generatePreloadDBWithConditions(conditions []interface{}) (*DB, []interface{}) {\n\tvar (\n\t\tpreloadDB         = scope.NewDB()\n\t\tpreloadConditions []interface{}\n\t)\n\n\tfor _, condition := range conditions {\n\t\tif scopes, ok := condition.(func(*DB) *DB); ok {\n\t\t\tpreloadDB = scopes(preloadDB)\n\t\t} else {\n\t\t\tpreloadConditions = append(preloadConditions, condition)\n\t\t}\n\t}\n\n\treturn preloadDB, preloadConditions\n}\n\n// handleHasOnePreload used to preload has one associations\nfunc (scope *Scope) handleHasOnePreload(field *Field, conditions []interface{}) {\n\trelation := field.Relationship\n\n\t// get relations's primary keys\n\tprimaryKeys := scope.getColumnAsArray(relation.AssociationForeignFieldNames, scope.Value)\n\tif len(primaryKeys) == 0 {\n\t\treturn\n\t}\n\n\t// preload conditions\n\tpreloadDB, preloadConditions := scope.generatePreloadDBWithConditions(conditions)\n\n\t// find relations\n\tquery := fmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relation.ForeignDBNames), toQueryMarks(primaryKeys))\n\tvalues := toQueryValues(primaryKeys)\n\tif relation.PolymorphicType != \"\" {\n\t\tquery += fmt.Sprintf(\" AND %v = ?\", scope.Quote(relation.PolymorphicDBName))\n\t\tvalues = append(values, relation.PolymorphicValue)\n\t}\n\n\tresults := makeSlice(field.Struct.Type)\n\tscope.Err(preloadDB.Where(query, values...).Find(results, preloadConditions...).Error)\n\n\t// assign find results\n\tvar (\n\t\tresultsValue       = indirect(reflect.ValueOf(results))\n\t\tindirectScopeValue = scope.IndirectValue()\n\t)\n\n\tif indirectScopeValue.Kind() == reflect.Slice {\n\t\tfor j := 0; j < indirectScopeValue.Len(); j++ {\n\t\t\tfor i := 0; i < resultsValue.Len(); i++ {\n\t\t\t\tresult := resultsValue.Index(i)\n\t\t\t\tforeignValues := getValueFromFields(result, relation.ForeignFieldNames)\n\t\t\t\tif indirectValue := indirect(indirectScopeValue.Index(j)); equalAsString(getValueFromFields(indirectValue, relation.AssociationForeignFieldNames), foreignValues) {\n\t\t\t\t\tindirectValue.FieldByName(field.Name).Set(result)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor i := 0; i < resultsValue.Len(); i++ {\n\t\t\tresult := resultsValue.Index(i)\n\t\t\tscope.Err(field.Set(result))\n\t\t}\n\t}\n}\n\n// handleHasManyPreload used to preload has many associations\nfunc (scope *Scope) handleHasManyPreload(field *Field, conditions []interface{}) {\n\trelation := field.Relationship\n\n\t// get relations's primary keys\n\tprimaryKeys := scope.getColumnAsArray(relation.AssociationForeignFieldNames, scope.Value)\n\tif len(primaryKeys) == 0 {\n\t\treturn\n\t}\n\n\t// preload conditions\n\tpreloadDB, preloadConditions := scope.generatePreloadDBWithConditions(conditions)\n\n\t// find relations\n\tquery := fmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relation.ForeignDBNames), toQueryMarks(primaryKeys))\n\tvalues := toQueryValues(primaryKeys)\n\tif relation.PolymorphicType != \"\" {\n\t\tquery += fmt.Sprintf(\" AND %v = ?\", scope.Quote(relation.PolymorphicDBName))\n\t\tvalues = append(values, relation.PolymorphicValue)\n\t}\n\n\tresults := makeSlice(field.Struct.Type)\n\tscope.Err(preloadDB.Where(query, values...).Find(results, preloadConditions...).Error)\n\n\t// assign find results\n\tvar (\n\t\tresultsValue       = indirect(reflect.ValueOf(results))\n\t\tindirectScopeValue = scope.IndirectValue()\n\t)\n\n\tif indirectScopeValue.Kind() == reflect.Slice {\n\t\tpreloadMap := make(map[string][]reflect.Value)\n\t\tfor i := 0; i < resultsValue.Len(); i++ {\n\t\t\tresult := resultsValue.Index(i)\n\t\t\tforeignValues := getValueFromFields(result, relation.ForeignFieldNames)\n\t\t\tpreloadMap[toString(foreignValues)] = append(preloadMap[toString(foreignValues)], result)\n\t\t}\n\n\t\tfor j := 0; j < indirectScopeValue.Len(); j++ {\n\t\t\tobject := indirect(indirectScopeValue.Index(j))\n\t\t\tobjectRealValue := getValueFromFields(object, relation.AssociationForeignFieldNames)\n\t\t\tf := object.FieldByName(field.Name)\n\t\t\tif results, ok := preloadMap[toString(objectRealValue)]; ok {\n\t\t\t\tf.Set(reflect.Append(f, results...))\n\t\t\t} else {\n\t\t\t\tf.Set(reflect.MakeSlice(f.Type(), 0, 0))\n\t\t\t}\n\t\t}\n\t} else {\n\t\tscope.Err(field.Set(resultsValue))\n\t}\n}\n\n// handleBelongsToPreload used to preload belongs to associations\nfunc (scope *Scope) handleBelongsToPreload(field *Field, conditions []interface{}) {\n\trelation := field.Relationship\n\n\t// preload conditions\n\tpreloadDB, preloadConditions := scope.generatePreloadDBWithConditions(conditions)\n\n\t// get relations's primary keys\n\tprimaryKeys := scope.getColumnAsArray(relation.ForeignFieldNames, scope.Value)\n\tif len(primaryKeys) == 0 {\n\t\treturn\n\t}\n\n\t// find relations\n\tresults := makeSlice(field.Struct.Type)\n\tscope.Err(preloadDB.Where(fmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, relation.AssociationForeignDBNames), toQueryMarks(primaryKeys)), toQueryValues(primaryKeys)...).Find(results, preloadConditions...).Error)\n\n\t// assign find results\n\tvar (\n\t\tresultsValue       = indirect(reflect.ValueOf(results))\n\t\tindirectScopeValue = scope.IndirectValue()\n\t)\n\n\tfor i := 0; i < resultsValue.Len(); i++ {\n\t\tresult := resultsValue.Index(i)\n\t\tif indirectScopeValue.Kind() == reflect.Slice {\n\t\t\tvalue := getValueFromFields(result, relation.AssociationForeignFieldNames)\n\t\t\tfor j := 0; j < indirectScopeValue.Len(); j++ {\n\t\t\t\tobject := indirect(indirectScopeValue.Index(j))\n\t\t\t\tif equalAsString(getValueFromFields(object, relation.ForeignFieldNames), value) {\n\t\t\t\t\tobject.FieldByName(field.Name).Set(result)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tscope.Err(field.Set(result))\n\t\t}\n\t}\n}\n\n// handleManyToManyPreload used to preload many to many associations\nfunc (scope *Scope) handleManyToManyPreload(field *Field, conditions []interface{}) {\n\tvar (\n\t\trelation         = field.Relationship\n\t\tjoinTableHandler = relation.JoinTableHandler\n\t\tfieldType        = field.Struct.Type.Elem()\n\t\tforeignKeyValue  interface{}\n\t\tforeignKeyType   = reflect.ValueOf(&foreignKeyValue).Type()\n\t\tlinkHash         = map[string][]reflect.Value{}\n\t\tisPtr            bool\n\t)\n\n\tif fieldType.Kind() == reflect.Ptr {\n\t\tisPtr = true\n\t\tfieldType = fieldType.Elem()\n\t}\n\n\tvar sourceKeys = []string{}\n\tfor _, key := range joinTableHandler.SourceForeignKeys() {\n\t\tsourceKeys = append(sourceKeys, key.DBName)\n\t}\n\n\t// preload conditions\n\tpreloadDB, preloadConditions := scope.generatePreloadDBWithConditions(conditions)\n\n\t// generate query with join table\n\tnewScope := scope.New(reflect.New(fieldType).Interface())\n\tpreloadDB = preloadDB.Table(newScope.TableName()).Model(newScope.Value)\n\n\tif len(preloadDB.search.selects) == 0 {\n\t\tpreloadDB = preloadDB.Select(\"*\")\n\t}\n\n\tpreloadDB = joinTableHandler.JoinWith(joinTableHandler, preloadDB, scope.Value)\n\n\t// preload inline conditions\n\tif len(preloadConditions) > 0 {\n\t\tpreloadDB = preloadDB.Where(preloadConditions[0], preloadConditions[1:]...)\n\t}\n\n\trows, err := preloadDB.Rows()\n\n\tif scope.Err(err) != nil {\n\t\treturn\n\t}\n\tdefer rows.Close()\n\n\tcolumns, _ := rows.Columns()\n\tfor rows.Next() {\n\t\tvar (\n\t\t\telem   = reflect.New(fieldType).Elem()\n\t\t\tfields = scope.New(elem.Addr().Interface()).Fields()\n\t\t)\n\n\t\t// register foreign keys in join tables\n\t\tvar joinTableFields []*Field\n\t\tfor _, sourceKey := range sourceKeys {\n\t\t\tjoinTableFields = append(joinTableFields, &Field{StructField: &StructField{DBName: sourceKey, IsNormal: true}, Field: reflect.New(foreignKeyType).Elem()})\n\t\t}\n\n\t\tscope.scan(rows, columns, append(fields, joinTableFields...))\n\n\t\tscope.New(elem.Addr().Interface()).\n\t\t\tInstanceSet(\"gorm:skip_query_callback\", true).\n\t\t\tcallCallbacks(scope.db.parent.callbacks.queries)\n\n\t\tvar foreignKeys = make([]interface{}, len(sourceKeys))\n\t\t// generate hashed forkey keys in join table\n\t\tfor idx, joinTableField := range joinTableFields {\n\t\t\tif !joinTableField.Field.IsNil() {\n\t\t\t\tforeignKeys[idx] = joinTableField.Field.Elem().Interface()\n\t\t\t}\n\t\t}\n\t\thashedSourceKeys := toString(foreignKeys)\n\n\t\tif isPtr {\n\t\t\tlinkHash[hashedSourceKeys] = append(linkHash[hashedSourceKeys], elem.Addr())\n\t\t} else {\n\t\t\tlinkHash[hashedSourceKeys] = append(linkHash[hashedSourceKeys], elem)\n\t\t}\n\t}\n\n\tif err := rows.Err(); err != nil {\n\t\tscope.Err(err)\n\t}\n\n\t// assign find results\n\tvar (\n\t\tindirectScopeValue = scope.IndirectValue()\n\t\tfieldsSourceMap    = map[string][]reflect.Value{}\n\t\tforeignFieldNames  = []string{}\n\t)\n\n\tfor _, dbName := range relation.ForeignFieldNames {\n\t\tif field, ok := scope.FieldByName(dbName); ok {\n\t\t\tforeignFieldNames = append(foreignFieldNames, field.Name)\n\t\t}\n\t}\n\n\tif indirectScopeValue.Kind() == reflect.Slice {\n\t\tfor j := 0; j < indirectScopeValue.Len(); j++ {\n\t\t\tobject := indirect(indirectScopeValue.Index(j))\n\t\t\tkey := toString(getValueFromFields(object, foreignFieldNames))\n\t\t\tfieldsSourceMap[key] = append(fieldsSourceMap[key], object.FieldByName(field.Name))\n\t\t}\n\t} else if indirectScopeValue.IsValid() {\n\t\tkey := toString(getValueFromFields(indirectScopeValue, foreignFieldNames))\n\t\tfieldsSourceMap[key] = append(fieldsSourceMap[key], indirectScopeValue.FieldByName(field.Name))\n\t}\n\tfor source, link := range linkHash {\n\t\tfor i, field := range fieldsSourceMap[source] {\n\t\t\t//If not 0 this means Value is a pointer and we already added preloaded models to it\n\t\t\tif fieldsSourceMap[source][i].Len() != 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfield.Set(reflect.Append(fieldsSourceMap[source][i], link...))\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_row_query.go",
    "content": "package gorm\n\nimport \"database/sql\"\n\n// Define callbacks for row query\nfunc init() {\n\tDefaultCallback.RowQuery().Register(\"gorm:row_query\", rowQueryCallback)\n}\n\ntype RowQueryResult struct {\n\tRow *sql.Row\n}\n\ntype RowsQueryResult struct {\n\tRows  *sql.Rows\n\tError error\n}\n\n// queryCallback used to query data from database\nfunc rowQueryCallback(scope *Scope) {\n\tif result, ok := scope.InstanceGet(\"row_query_result\"); ok {\n\t\tscope.prepareQuerySQL()\n\n\t\tif rowResult, ok := result.(*RowQueryResult); ok {\n\t\t\trowResult.Row = scope.SQLDB().QueryRow(scope.SQL, scope.SQLVars...)\n\t\t} else if rowsResult, ok := result.(*RowsQueryResult); ok {\n\t\t\trowsResult.Rows, rowsResult.Error = scope.SQLDB().Query(scope.SQL, scope.SQLVars...)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_save.go",
    "content": "package gorm\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n)\n\nfunc beginTransactionCallback(scope *Scope) {\n\tscope.Begin()\n}\n\nfunc commitOrRollbackTransactionCallback(scope *Scope) {\n\tscope.CommitOrRollback()\n}\n\nfunc saveAssociationCheck(scope *Scope, field *Field) (autoUpdate bool, autoCreate bool, saveReference bool, r *Relationship) {\n\tcheckTruth := func(value interface{}) bool {\n\t\tif v, ok := value.(bool); ok && !v {\n\t\t\treturn false\n\t\t}\n\n\t\tif v, ok := value.(string); ok {\n\t\t\tv = strings.ToLower(v)\n\t\t\tif v == \"false\" || v != \"skip\" {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tif scope.changeableField(field) && !field.IsBlank && !field.IsIgnored {\n\t\tif r = field.Relationship; r != nil {\n\t\t\tautoUpdate, autoCreate, saveReference = true, true, true\n\n\t\t\tif value, ok := scope.Get(\"gorm:save_associations\"); ok {\n\t\t\t\tautoUpdate = checkTruth(value)\n\t\t\t\tautoCreate = autoUpdate\n\t\t\t} else if value, ok := field.TagSettings[\"SAVE_ASSOCIATIONS\"]; ok {\n\t\t\t\tautoUpdate = checkTruth(value)\n\t\t\t\tautoCreate = autoUpdate\n\t\t\t}\n\n\t\t\tif value, ok := scope.Get(\"gorm:association_autoupdate\"); ok {\n\t\t\t\tautoUpdate = checkTruth(value)\n\t\t\t} else if value, ok := field.TagSettings[\"ASSOCIATION_AUTOUPDATE\"]; ok {\n\t\t\t\tautoUpdate = checkTruth(value)\n\t\t\t}\n\n\t\t\tif value, ok := scope.Get(\"gorm:association_autocreate\"); ok {\n\t\t\t\tautoCreate = checkTruth(value)\n\t\t\t} else if value, ok := field.TagSettings[\"ASSOCIATION_AUTOCREATE\"]; ok {\n\t\t\t\tautoCreate = checkTruth(value)\n\t\t\t}\n\n\t\t\tif value, ok := scope.Get(\"gorm:association_save_reference\"); ok {\n\t\t\t\tsaveReference = checkTruth(value)\n\t\t\t} else if value, ok := field.TagSettings[\"ASSOCIATION_SAVE_REFERENCE\"]; ok {\n\t\t\t\tsaveReference = checkTruth(value)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc saveBeforeAssociationsCallback(scope *Scope) {\n\tfor _, field := range scope.Fields() {\n\t\tautoUpdate, autoCreate, saveReference, relationship := saveAssociationCheck(scope, field)\n\n\t\tif relationship != nil && relationship.Kind == \"belongs_to\" {\n\t\t\tfieldValue := field.Field.Addr().Interface()\n\t\t\tnewScope := scope.New(fieldValue)\n\n\t\t\tif newScope.PrimaryKeyZero() {\n\t\t\t\tif autoCreate {\n\t\t\t\t\tscope.Err(scope.NewDB().Save(fieldValue).Error)\n\t\t\t\t}\n\t\t\t} else if autoUpdate {\n\t\t\t\tscope.Err(scope.NewDB().Save(fieldValue).Error)\n\t\t\t}\n\n\t\t\tif saveReference {\n\t\t\t\tif len(relationship.ForeignFieldNames) != 0 {\n\t\t\t\t\t// set value's foreign key\n\t\t\t\t\tfor idx, fieldName := range relationship.ForeignFieldNames {\n\t\t\t\t\t\tassociationForeignName := relationship.AssociationForeignDBNames[idx]\n\t\t\t\t\t\tif foreignField, ok := scope.New(fieldValue).FieldByName(associationForeignName); ok {\n\t\t\t\t\t\t\tscope.Err(scope.SetColumn(fieldName, foreignField.Field.Interface()))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc saveAfterAssociationsCallback(scope *Scope) {\n\tfor _, field := range scope.Fields() {\n\t\tautoUpdate, autoCreate, saveReference, relationship := saveAssociationCheck(scope, field)\n\n\t\tif relationship != nil && (relationship.Kind == \"has_one\" || relationship.Kind == \"has_many\" || relationship.Kind == \"many_to_many\") {\n\t\t\tvalue := field.Field\n\n\t\t\tswitch value.Kind() {\n\t\t\tcase reflect.Slice:\n\t\t\t\tfor i := 0; i < value.Len(); i++ {\n\t\t\t\t\tnewDB := scope.NewDB()\n\t\t\t\t\telem := value.Index(i).Addr().Interface()\n\t\t\t\t\tnewScope := newDB.NewScope(elem)\n\n\t\t\t\t\tif saveReference {\n\t\t\t\t\t\tif relationship.JoinTableHandler == nil && len(relationship.ForeignFieldNames) != 0 {\n\t\t\t\t\t\t\tfor idx, fieldName := range relationship.ForeignFieldNames {\n\t\t\t\t\t\t\t\tassociationForeignName := relationship.AssociationForeignDBNames[idx]\n\t\t\t\t\t\t\t\tif f, ok := scope.FieldByName(associationForeignName); ok {\n\t\t\t\t\t\t\t\t\tscope.Err(newScope.SetColumn(fieldName, f.Field.Interface()))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif relationship.PolymorphicType != \"\" {\n\t\t\t\t\t\t\tscope.Err(newScope.SetColumn(relationship.PolymorphicType, relationship.PolymorphicValue))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif newScope.PrimaryKeyZero() {\n\t\t\t\t\t\tif autoCreate {\n\t\t\t\t\t\t\tscope.Err(newDB.Save(elem).Error)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if autoUpdate {\n\t\t\t\t\t\tscope.Err(newDB.Save(elem).Error)\n\t\t\t\t\t}\n\n\t\t\t\t\tif !scope.New(newScope.Value).PrimaryKeyZero() && saveReference {\n\t\t\t\t\t\tif joinTableHandler := relationship.JoinTableHandler; joinTableHandler != nil {\n\t\t\t\t\t\t\tscope.Err(joinTableHandler.Add(joinTableHandler, newDB, scope.Value, newScope.Value))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\telem := value.Addr().Interface()\n\t\t\t\tnewScope := scope.New(elem)\n\n\t\t\t\tif saveReference {\n\t\t\t\t\tif len(relationship.ForeignFieldNames) != 0 {\n\t\t\t\t\t\tfor idx, fieldName := range relationship.ForeignFieldNames {\n\t\t\t\t\t\t\tassociationForeignName := relationship.AssociationForeignDBNames[idx]\n\t\t\t\t\t\t\tif f, ok := scope.FieldByName(associationForeignName); ok {\n\t\t\t\t\t\t\t\tscope.Err(newScope.SetColumn(fieldName, f.Field.Interface()))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif relationship.PolymorphicType != \"\" {\n\t\t\t\t\t\tscope.Err(newScope.SetColumn(relationship.PolymorphicType, relationship.PolymorphicValue))\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif newScope.PrimaryKeyZero() {\n\t\t\t\t\tif autoCreate {\n\t\t\t\t\t\tscope.Err(scope.NewDB().Save(elem).Error)\n\t\t\t\t\t}\n\t\t\t\t} else if autoUpdate {\n\t\t\t\t\tscope.Err(scope.NewDB().Save(elem).Error)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/callback_update.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Define callbacks for updating\nfunc init() {\n\tDefaultCallback.Update().Register(\"gorm:assign_updating_attributes\", assignUpdatingAttributesCallback)\n\tDefaultCallback.Update().Register(\"gorm:begin_transaction\", beginTransactionCallback)\n\tDefaultCallback.Update().Register(\"gorm:before_update\", beforeUpdateCallback)\n\tDefaultCallback.Update().Register(\"gorm:save_before_associations\", saveBeforeAssociationsCallback)\n\tDefaultCallback.Update().Register(\"gorm:update_time_stamp\", updateTimeStampForUpdateCallback)\n\tDefaultCallback.Update().Register(\"gorm:update\", updateCallback)\n\tDefaultCallback.Update().Register(\"gorm:save_after_associations\", saveAfterAssociationsCallback)\n\tDefaultCallback.Update().Register(\"gorm:after_update\", afterUpdateCallback)\n\tDefaultCallback.Update().Register(\"gorm:commit_or_rollback_transaction\", commitOrRollbackTransactionCallback)\n}\n\n// assignUpdatingAttributesCallback assign updating attributes to model\nfunc assignUpdatingAttributesCallback(scope *Scope) {\n\tif attrs, ok := scope.InstanceGet(\"gorm:update_interface\"); ok {\n\t\tif updateMaps, hasUpdate := scope.updatedAttrsWithValues(attrs); hasUpdate {\n\t\t\tscope.InstanceSet(\"gorm:update_attrs\", updateMaps)\n\t\t} else {\n\t\t\tscope.SkipLeft()\n\t\t}\n\t}\n}\n\n// beforeUpdateCallback will invoke `BeforeSave`, `BeforeUpdate` method before updating\nfunc beforeUpdateCallback(scope *Scope) {\n\tif scope.DB().HasBlockGlobalUpdate() && !scope.hasConditions() {\n\t\tscope.Err(errors.New(\"Missing WHERE clause while updating\"))\n\t\treturn\n\t}\n\tif _, ok := scope.Get(\"gorm:update_column\"); !ok {\n\t\tif !scope.HasError() {\n\t\t\tscope.CallMethod(\"BeforeSave\")\n\t\t}\n\t\tif !scope.HasError() {\n\t\t\tscope.CallMethod(\"BeforeUpdate\")\n\t\t}\n\t}\n}\n\n// updateTimeStampForUpdateCallback will set `UpdatedAt` when updating\nfunc updateTimeStampForUpdateCallback(scope *Scope) {\n\tif _, ok := scope.Get(\"gorm:update_column\"); !ok {\n\t\tscope.SetColumn(\"UpdatedAt\", NowFunc())\n\t}\n}\n\n// updateCallback the callback used to update data to database\nfunc updateCallback(scope *Scope) {\n\tif !scope.HasError() {\n\t\tvar sqls []string\n\n\t\tif updateAttrs, ok := scope.InstanceGet(\"gorm:update_attrs\"); ok {\n\t\t\t// Sort the column names so that the generated SQL is the same every time.\n\t\t\tupdateMap := updateAttrs.(map[string]interface{})\n\t\t\tvar columns []string\n\t\t\tfor c := range updateMap {\n\t\t\t\tcolumns = append(columns, c)\n\t\t\t}\n\t\t\tsort.Strings(columns)\n\n\t\t\tfor _, column := range columns {\n\t\t\t\tvalue := updateMap[column]\n\t\t\t\tsqls = append(sqls, fmt.Sprintf(\"%v = %v\", scope.Quote(column), scope.AddToVars(value)))\n\t\t\t}\n\t\t} else {\n\t\t\tfor _, field := range scope.Fields() {\n\t\t\t\tif scope.changeableField(field) {\n\t\t\t\t\tif !field.IsPrimaryKey && field.IsNormal {\n\t\t\t\t\t\tsqls = append(sqls, fmt.Sprintf(\"%v = %v\", scope.Quote(field.DBName), scope.AddToVars(field.Field.Interface())))\n\t\t\t\t\t} else if relationship := field.Relationship; relationship != nil && relationship.Kind == \"belongs_to\" {\n\t\t\t\t\t\tfor _, foreignKey := range relationship.ForeignDBNames {\n\t\t\t\t\t\t\tif foreignField, ok := scope.FieldByName(foreignKey); ok && !scope.changeableField(foreignField) {\n\t\t\t\t\t\t\t\tsqls = append(sqls,\n\t\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v = %v\", scope.Quote(foreignField.DBName), scope.AddToVars(foreignField.Field.Interface())))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar extraOption string\n\t\tif str, ok := scope.Get(\"gorm:update_option\"); ok {\n\t\t\textraOption = fmt.Sprint(str)\n\t\t}\n\n\t\tif len(sqls) > 0 {\n\t\t\tscope.Raw(fmt.Sprintf(\n\t\t\t\t\"UPDATE %v SET %v%v%v\",\n\t\t\t\tscope.QuotedTableName(),\n\t\t\t\tstrings.Join(sqls, \", \"),\n\t\t\t\taddExtraSpaceIfExist(scope.CombinedConditionSql()),\n\t\t\t\taddExtraSpaceIfExist(extraOption),\n\t\t\t)).Exec()\n\t\t}\n\t}\n}\n\n// afterUpdateCallback will invoke `AfterUpdate`, `AfterSave` method after updating\nfunc afterUpdateCallback(scope *Scope) {\n\tif _, ok := scope.Get(\"gorm:update_column\"); !ok {\n\t\tif !scope.HasError() {\n\t\t\tscope.CallMethod(\"AfterUpdate\")\n\t\t}\n\t\tif !scope.HasError() {\n\t\t\tscope.CallMethod(\"AfterSave\")\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/dialect.go",
    "content": "package gorm\n\nimport (\n\t\"database/sql\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Dialect interface contains behaviors that differ across SQL database\ntype Dialect interface {\n\t// GetName get dialect's name\n\tGetName() string\n\n\t// SetDB set db for dialect\n\tSetDB(db SQLCommon)\n\n\t// BindVar return the placeholder for actual values in SQL statements, in many dbs it is \"?\", Postgres using $1\n\tBindVar(i int) string\n\t// Quote quotes field name to avoid SQL parsing exceptions by using a reserved word as a field name\n\tQuote(key string) string\n\t// DataTypeOf return data's sql type\n\tDataTypeOf(field *StructField) string\n\n\t// HasIndex check has index or not\n\tHasIndex(tableName string, indexName string) bool\n\t// HasForeignKey check has foreign key or not\n\tHasForeignKey(tableName string, foreignKeyName string) bool\n\t// RemoveIndex remove index\n\tRemoveIndex(tableName string, indexName string) error\n\t// HasTable check has table or not\n\tHasTable(tableName string) bool\n\t// HasColumn check has column or not\n\tHasColumn(tableName string, columnName string) bool\n\t// ModifyColumn modify column's type\n\tModifyColumn(tableName string, columnName string, typ string) error\n\n\t// LimitAndOffsetSQL return generated SQL with Limit and Offset, as mssql has special case\n\tLimitAndOffsetSQL(limit, offset interface{}) string\n\t// SelectFromDummyTable return select values, for most dbs, `SELECT values` just works, mysql needs `SELECT value FROM DUAL`\n\tSelectFromDummyTable() string\n\t// LastInsertIdReturningSuffix most dbs support LastInsertId, but postgres needs to use `RETURNING`\n\tLastInsertIDReturningSuffix(tableName, columnName string) string\n\t// DefaultValueStr\n\tDefaultValueStr() string\n\n\t// BuildKeyName returns a valid key name (foreign key, index key) for the given table, field and reference\n\tBuildKeyName(kind, tableName string, fields ...string) string\n\n\t// CurrentDatabase return current database name\n\tCurrentDatabase() string\n}\n\nvar dialectsMap = map[string]Dialect{}\n\nfunc newDialect(name string, db SQLCommon) Dialect {\n\tif value, ok := dialectsMap[name]; ok {\n\t\tdialect := reflect.New(reflect.TypeOf(value).Elem()).Interface().(Dialect)\n\t\tdialect.SetDB(db)\n\t\treturn dialect\n\t}\n\n\tfmt.Printf(\"`%v` is not officially supported, running under compatibility mode.\\n\", name)\n\tcommontDialect := &commonDialect{}\n\tcommontDialect.SetDB(db)\n\treturn commontDialect\n}\n\n// RegisterDialect register new dialect\nfunc RegisterDialect(name string, dialect Dialect) {\n\tdialectsMap[name] = dialect\n}\n\n// ParseFieldStructForDialect get field's sql data type\nvar ParseFieldStructForDialect = func(field *StructField, dialect Dialect) (fieldValue reflect.Value, sqlType string, size int, additionalType string) {\n\t// Get redirected field type\n\tvar (\n\t\treflectType = field.Struct.Type\n\t\tdataType    = field.TagSettings[\"TYPE\"]\n\t)\n\n\tfor reflectType.Kind() == reflect.Ptr {\n\t\treflectType = reflectType.Elem()\n\t}\n\n\t// Get redirected field value\n\tfieldValue = reflect.Indirect(reflect.New(reflectType))\n\n\tif gormDataType, ok := fieldValue.Interface().(interface {\n\t\tGormDataType(Dialect) string\n\t}); ok {\n\t\tdataType = gormDataType.GormDataType(dialect)\n\t}\n\n\t// Get scanner's real value\n\tvar getScannerValue func(reflect.Value)\n\tgetScannerValue = func(value reflect.Value) {\n\t\tfieldValue = value\n\t\tif _, isScanner := reflect.New(fieldValue.Type()).Interface().(sql.Scanner); isScanner && fieldValue.Kind() == reflect.Struct {\n\t\t\tgetScannerValue(fieldValue.Field(0))\n\t\t}\n\t}\n\tgetScannerValue(fieldValue)\n\n\t// Default Size\n\tif num, ok := field.TagSettings[\"SIZE\"]; ok {\n\t\tsize, _ = strconv.Atoi(num)\n\t} else {\n\t\tsize = 255\n\t}\n\n\t// Default type from tag setting\n\tadditionalType = field.TagSettings[\"NOT NULL\"] + \" \" + field.TagSettings[\"UNIQUE\"]\n\tif value, ok := field.TagSettings[\"DEFAULT\"]; ok {\n\t\tadditionalType = additionalType + \" DEFAULT \" + value\n\t}\n\n\treturn fieldValue, dataType, size, strings.TrimSpace(additionalType)\n}\n\nfunc currentDatabaseAndTable(dialect Dialect, tableName string) (string, string) {\n\tif strings.Contains(tableName, \".\") {\n\t\tsplitStrings := strings.SplitN(tableName, \".\", 2)\n\t\treturn splitStrings[0], splitStrings[1]\n\t}\n\treturn dialect.CurrentDatabase(), tableName\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/dialect_common.go",
    "content": "package gorm\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// DefaultForeignKeyNamer contains the default foreign key name generator method\ntype DefaultForeignKeyNamer struct {\n}\n\ntype commonDialect struct {\n\tdb SQLCommon\n\tDefaultForeignKeyNamer\n}\n\nfunc init() {\n\tRegisterDialect(\"common\", &commonDialect{})\n}\n\nfunc (commonDialect) GetName() string {\n\treturn \"common\"\n}\n\nfunc (s *commonDialect) SetDB(db SQLCommon) {\n\ts.db = db\n}\n\nfunc (commonDialect) BindVar(i int) string {\n\treturn \"$$$\" // ?\n}\n\nfunc (commonDialect) Quote(key string) string {\n\treturn fmt.Sprintf(`\"%s\"`, key)\n}\n\nfunc (s *commonDialect) fieldCanAutoIncrement(field *StructField) bool {\n\tif value, ok := field.TagSettings[\"AUTO_INCREMENT\"]; ok {\n\t\treturn strings.ToLower(value) != \"false\"\n\t}\n\treturn field.IsPrimaryKey\n}\n\nfunc (s *commonDialect) DataTypeOf(field *StructField) string {\n\tvar dataValue, sqlType, size, additionalType = ParseFieldStructForDialect(field, s)\n\n\tif sqlType == \"\" {\n\t\tswitch dataValue.Kind() {\n\t\tcase reflect.Bool:\n\t\t\tsqlType = \"BOOLEAN\"\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uintptr:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tsqlType = \"INTEGER AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"INTEGER\"\n\t\t\t}\n\t\tcase reflect.Int64, reflect.Uint64:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tsqlType = \"BIGINT AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"BIGINT\"\n\t\t\t}\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\tsqlType = \"FLOAT\"\n\t\tcase reflect.String:\n\t\t\tif size > 0 && size < 65532 {\n\t\t\t\tsqlType = fmt.Sprintf(\"VARCHAR(%d)\", size)\n\t\t\t} else {\n\t\t\t\tsqlType = \"VARCHAR(65532)\"\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tif _, ok := dataValue.Interface().(time.Time); ok {\n\t\t\t\tsqlType = \"TIMESTAMP\"\n\t\t\t}\n\t\tdefault:\n\t\t\tif _, ok := dataValue.Interface().([]byte); ok {\n\t\t\t\tif size > 0 && size < 65532 {\n\t\t\t\t\tsqlType = fmt.Sprintf(\"BINARY(%d)\", size)\n\t\t\t\t} else {\n\t\t\t\t\tsqlType = \"BINARY(65532)\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif sqlType == \"\" {\n\t\tpanic(fmt.Sprintf(\"invalid sql type %s (%s) for commonDialect\", dataValue.Type().Name(), dataValue.Kind().String()))\n\t}\n\n\tif strings.TrimSpace(additionalType) == \"\" {\n\t\treturn sqlType\n\t}\n\treturn fmt.Sprintf(\"%v %v\", sqlType, additionalType)\n}\n\nfunc (s commonDialect) HasIndex(tableName string, indexName string) bool {\n\tvar count int\n\tcurrentDatabase, tableName := currentDatabaseAndTable(&s, tableName)\n\ts.db.QueryRow(\"SELECT count(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE table_schema = ? AND table_name = ? AND index_name = ?\", currentDatabase, tableName, indexName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s commonDialect) RemoveIndex(tableName string, indexName string) error {\n\t_, err := s.db.Exec(fmt.Sprintf(\"DROP INDEX %v\", indexName))\n\treturn err\n}\n\nfunc (s commonDialect) HasForeignKey(tableName string, foreignKeyName string) bool {\n\treturn false\n}\n\nfunc (s commonDialect) HasTable(tableName string) bool {\n\tvar count int\n\tcurrentDatabase, tableName := currentDatabaseAndTable(&s, tableName)\n\ts.db.QueryRow(\"SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = ? AND table_name = ?\", currentDatabase, tableName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s commonDialect) HasColumn(tableName string, columnName string) bool {\n\tvar count int\n\tcurrentDatabase, tableName := currentDatabaseAndTable(&s, tableName)\n\ts.db.QueryRow(\"SELECT count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = ? AND table_name = ? AND column_name = ?\", currentDatabase, tableName, columnName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s commonDialect) ModifyColumn(tableName string, columnName string, typ string) error {\n\t_, err := s.db.Exec(fmt.Sprintf(\"ALTER TABLE %v ALTER COLUMN %v TYPE %v\", tableName, columnName, typ))\n\treturn err\n}\n\nfunc (s commonDialect) CurrentDatabase() (name string) {\n\ts.db.QueryRow(\"SELECT DATABASE()\").Scan(&name)\n\treturn\n}\n\nfunc (commonDialect) LimitAndOffsetSQL(limit, offset interface{}) (sql string) {\n\tif limit != nil {\n\t\tif parsedLimit, err := strconv.ParseInt(fmt.Sprint(limit), 0, 0); err == nil && parsedLimit >= 0 {\n\t\t\tsql += fmt.Sprintf(\" LIMIT %d\", parsedLimit)\n\t\t}\n\t}\n\tif offset != nil {\n\t\tif parsedOffset, err := strconv.ParseInt(fmt.Sprint(offset), 0, 0); err == nil && parsedOffset >= 0 {\n\t\t\tsql += fmt.Sprintf(\" OFFSET %d\", parsedOffset)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (commonDialect) SelectFromDummyTable() string {\n\treturn \"\"\n}\n\nfunc (commonDialect) LastInsertIDReturningSuffix(tableName, columnName string) string {\n\treturn \"\"\n}\n\nfunc (commonDialect) DefaultValueStr() string {\n\treturn \"DEFAULT VALUES\"\n}\n\n// BuildKeyName returns a valid key name (foreign key, index key) for the given table, field and reference\nfunc (DefaultForeignKeyNamer) BuildKeyName(kind, tableName string, fields ...string) string {\n\tkeyName := fmt.Sprintf(\"%s_%s_%s\", kind, tableName, strings.Join(fields, \"_\"))\n\tkeyName = regexp.MustCompile(\"[^a-zA-Z0-9]+\").ReplaceAllString(keyName, \"_\")\n\treturn keyName\n}\n\n// IsByteArrayOrSlice returns true of the reflected value is an array or slice\nfunc IsByteArrayOrSlice(value reflect.Value) bool {\n\treturn (value.Kind() == reflect.Array || value.Kind() == reflect.Slice) && value.Type().Elem() == reflect.TypeOf(uint8(0))\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/dialect_mysql.go",
    "content": "package gorm\n\nimport (\n\t\"crypto/sha1\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\ntype mysql struct {\n\tcommonDialect\n}\n\nfunc init() {\n\tRegisterDialect(\"mysql\", &mysql{})\n}\n\nfunc (mysql) GetName() string {\n\treturn \"mysql\"\n}\n\nfunc (mysql) Quote(key string) string {\n\treturn fmt.Sprintf(\"`%s`\", key)\n}\n\n// Get Data Type for MySQL Dialect\nfunc (s *mysql) DataTypeOf(field *StructField) string {\n\tvar dataValue, sqlType, size, additionalType = ParseFieldStructForDialect(field, s)\n\n\t// MySQL allows only one auto increment column per table, and it must\n\t// be a KEY column.\n\tif _, ok := field.TagSettings[\"AUTO_INCREMENT\"]; ok {\n\t\tif _, ok = field.TagSettings[\"INDEX\"]; !ok && !field.IsPrimaryKey {\n\t\t\tdelete(field.TagSettings, \"AUTO_INCREMENT\")\n\t\t}\n\t}\n\n\tif sqlType == \"\" {\n\t\tswitch dataValue.Kind() {\n\t\tcase reflect.Bool:\n\t\t\tsqlType = \"boolean\"\n\t\tcase reflect.Int8:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"tinyint AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"tinyint\"\n\t\t\t}\n\t\tcase reflect.Int, reflect.Int16, reflect.Int32:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"int AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"int\"\n\t\t\t}\n\t\tcase reflect.Uint8:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"tinyint unsigned AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"tinyint unsigned\"\n\t\t\t}\n\t\tcase reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uintptr:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"int unsigned AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"int unsigned\"\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"bigint AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"bigint\"\n\t\t\t}\n\t\tcase reflect.Uint64:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"bigint unsigned AUTO_INCREMENT\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"bigint unsigned\"\n\t\t\t}\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\tsqlType = \"double\"\n\t\tcase reflect.String:\n\t\t\tif size > 0 && size < 65532 {\n\t\t\t\tsqlType = fmt.Sprintf(\"varchar(%d)\", size)\n\t\t\t} else {\n\t\t\t\tsqlType = \"longtext\"\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tif _, ok := dataValue.Interface().(time.Time); ok {\n\t\t\t\tprecision := \"\"\n\t\t\t\tif p, ok := field.TagSettings[\"PRECISION\"]; ok {\n\t\t\t\t\tprecision = fmt.Sprintf(\"(%s)\", p)\n\t\t\t\t}\n\n\t\t\t\tif _, ok := field.TagSettings[\"NOT NULL\"]; ok {\n\t\t\t\t\tsqlType = fmt.Sprintf(\"timestamp%v\", precision)\n\t\t\t\t} else {\n\t\t\t\t\tsqlType = fmt.Sprintf(\"timestamp%v NULL\", precision)\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tif IsByteArrayOrSlice(dataValue) {\n\t\t\t\tif size > 0 && size < 65532 {\n\t\t\t\t\tsqlType = fmt.Sprintf(\"varbinary(%d)\", size)\n\t\t\t\t} else {\n\t\t\t\t\tsqlType = \"longblob\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif sqlType == \"\" {\n\t\tpanic(fmt.Sprintf(\"invalid sql type %s (%s) for mysql\", dataValue.Type().Name(), dataValue.Kind().String()))\n\t}\n\n\tif strings.TrimSpace(additionalType) == \"\" {\n\t\treturn sqlType\n\t}\n\treturn fmt.Sprintf(\"%v %v\", sqlType, additionalType)\n}\n\nfunc (s mysql) RemoveIndex(tableName string, indexName string) error {\n\t_, err := s.db.Exec(fmt.Sprintf(\"DROP INDEX %v ON %v\", indexName, s.Quote(tableName)))\n\treturn err\n}\n\nfunc (s mysql) ModifyColumn(tableName string, columnName string, typ string) error {\n\t_, err := s.db.Exec(fmt.Sprintf(\"ALTER TABLE %v MODIFY COLUMN %v %v\", tableName, columnName, typ))\n\treturn err\n}\n\nfunc (s mysql) LimitAndOffsetSQL(limit, offset interface{}) (sql string) {\n\tif limit != nil {\n\t\tif parsedLimit, err := strconv.ParseInt(fmt.Sprint(limit), 0, 0); err == nil && parsedLimit >= 0 {\n\t\t\tsql += fmt.Sprintf(\" LIMIT %d\", parsedLimit)\n\n\t\t\tif offset != nil {\n\t\t\t\tif parsedOffset, err := strconv.ParseInt(fmt.Sprint(offset), 0, 0); err == nil && parsedOffset >= 0 {\n\t\t\t\t\tsql += fmt.Sprintf(\" OFFSET %d\", parsedOffset)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc (s mysql) HasForeignKey(tableName string, foreignKeyName string) bool {\n\tvar count int\n\tcurrentDatabase, tableName := currentDatabaseAndTable(&s, tableName)\n\ts.db.QueryRow(\"SELECT count(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA=? AND TABLE_NAME=? AND CONSTRAINT_NAME=? AND CONSTRAINT_TYPE='FOREIGN KEY'\", currentDatabase, tableName, foreignKeyName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s mysql) CurrentDatabase() (name string) {\n\ts.db.QueryRow(\"SELECT DATABASE()\").Scan(&name)\n\treturn\n}\n\nfunc (mysql) SelectFromDummyTable() string {\n\treturn \"FROM DUAL\"\n}\n\nfunc (s mysql) BuildKeyName(kind, tableName string, fields ...string) string {\n\tkeyName := s.commonDialect.BuildKeyName(kind, tableName, fields...)\n\tif utf8.RuneCountInString(keyName) <= 64 {\n\t\treturn keyName\n\t}\n\th := sha1.New()\n\th.Write([]byte(keyName))\n\tbs := h.Sum(nil)\n\n\t// sha1 is 40 characters, keep first 24 characters of destination\n\tdestRunes := []rune(regexp.MustCompile(\"[^a-zA-Z0-9]+\").ReplaceAllString(fields[0], \"_\"))\n\tif len(destRunes) > 24 {\n\t\tdestRunes = destRunes[:24]\n\t}\n\n\treturn fmt.Sprintf(\"%s%x\", string(destRunes), bs)\n}\n\nfunc (mysql) DefaultValueStr() string {\n\treturn \"VALUES()\"\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/dialect_postgres.go",
    "content": "package gorm\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype postgres struct {\n\tcommonDialect\n}\n\nfunc init() {\n\tRegisterDialect(\"postgres\", &postgres{})\n\tRegisterDialect(\"cloudsqlpostgres\", &postgres{})\n}\n\nfunc (postgres) GetName() string {\n\treturn \"postgres\"\n}\n\nfunc (postgres) BindVar(i int) string {\n\treturn fmt.Sprintf(\"$%v\", i)\n}\n\nfunc (s *postgres) DataTypeOf(field *StructField) string {\n\tvar dataValue, sqlType, size, additionalType = ParseFieldStructForDialect(field, s)\n\n\tif sqlType == \"\" {\n\t\tswitch dataValue.Kind() {\n\t\tcase reflect.Bool:\n\t\t\tsqlType = \"boolean\"\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uintptr:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"serial\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"integer\"\n\t\t\t}\n\t\tcase reflect.Int64, reflect.Uint32, reflect.Uint64:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"bigserial\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"bigint\"\n\t\t\t}\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\tsqlType = \"numeric\"\n\t\tcase reflect.String:\n\t\t\tif _, ok := field.TagSettings[\"SIZE\"]; !ok {\n\t\t\t\tsize = 0 // if SIZE haven't been set, use `text` as the default type, as there are no performance different\n\t\t\t}\n\n\t\t\tif size > 0 && size < 65532 {\n\t\t\t\tsqlType = fmt.Sprintf(\"varchar(%d)\", size)\n\t\t\t} else {\n\t\t\t\tsqlType = \"text\"\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tif _, ok := dataValue.Interface().(time.Time); ok {\n\t\t\t\tsqlType = \"timestamp with time zone\"\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tif dataValue.Type().Name() == \"Hstore\" {\n\t\t\t\tsqlType = \"hstore\"\n\t\t\t}\n\t\tdefault:\n\t\t\tif IsByteArrayOrSlice(dataValue) {\n\t\t\t\tsqlType = \"bytea\"\n\n\t\t\t\tif isUUID(dataValue) {\n\t\t\t\t\tsqlType = \"uuid\"\n\t\t\t\t}\n\n\t\t\t\tif isJSON(dataValue) {\n\t\t\t\t\tsqlType = \"jsonb\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif sqlType == \"\" {\n\t\tpanic(fmt.Sprintf(\"invalid sql type %s (%s) for postgres\", dataValue.Type().Name(), dataValue.Kind().String()))\n\t}\n\n\tif strings.TrimSpace(additionalType) == \"\" {\n\t\treturn sqlType\n\t}\n\treturn fmt.Sprintf(\"%v %v\", sqlType, additionalType)\n}\n\nfunc (s postgres) HasIndex(tableName string, indexName string) bool {\n\tvar count int\n\ts.db.QueryRow(\"SELECT count(*) FROM pg_indexes WHERE tablename = $1 AND indexname = $2 AND schemaname = CURRENT_SCHEMA()\", tableName, indexName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s postgres) HasForeignKey(tableName string, foreignKeyName string) bool {\n\tvar count int\n\ts.db.QueryRow(\"SELECT count(con.conname) FROM pg_constraint con WHERE $1::regclass::oid = con.conrelid AND con.conname = $2 AND con.contype='f'\", tableName, foreignKeyName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s postgres) HasTable(tableName string) bool {\n\tvar count int\n\ts.db.QueryRow(\"SELECT count(*) FROM INFORMATION_SCHEMA.tables WHERE table_name = $1 AND table_type = 'BASE TABLE' AND table_schema = CURRENT_SCHEMA()\", tableName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s postgres) HasColumn(tableName string, columnName string) bool {\n\tvar count int\n\ts.db.QueryRow(\"SELECT count(*) FROM INFORMATION_SCHEMA.columns WHERE table_name = $1 AND column_name = $2 AND table_schema = CURRENT_SCHEMA()\", tableName, columnName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s postgres) CurrentDatabase() (name string) {\n\ts.db.QueryRow(\"SELECT CURRENT_DATABASE()\").Scan(&name)\n\treturn\n}\n\nfunc (s postgres) LastInsertIDReturningSuffix(tableName, key string) string {\n\treturn fmt.Sprintf(\"RETURNING %v.%v\", tableName, key)\n}\n\nfunc (postgres) SupportLastInsertID() bool {\n\treturn false\n}\n\nfunc isUUID(value reflect.Value) bool {\n\tif value.Kind() != reflect.Array || value.Type().Len() != 16 {\n\t\treturn false\n\t}\n\ttypename := value.Type().Name()\n\tlower := strings.ToLower(typename)\n\treturn \"uuid\" == lower || \"guid\" == lower\n}\n\nfunc isJSON(value reflect.Value) bool {\n\t_, ok := value.Interface().(json.RawMessage)\n\treturn ok\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/dialect_sqlite3.go",
    "content": "package gorm\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype sqlite3 struct {\n\tcommonDialect\n}\n\nfunc init() {\n\tRegisterDialect(\"sqlite3\", &sqlite3{})\n}\n\nfunc (sqlite3) GetName() string {\n\treturn \"sqlite3\"\n}\n\n// Get Data Type for Sqlite Dialect\nfunc (s *sqlite3) DataTypeOf(field *StructField) string {\n\tvar dataValue, sqlType, size, additionalType = ParseFieldStructForDialect(field, s)\n\n\tif sqlType == \"\" {\n\t\tswitch dataValue.Kind() {\n\t\tcase reflect.Bool:\n\t\t\tsqlType = \"bool\"\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uintptr:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"integer primary key autoincrement\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"integer\"\n\t\t\t}\n\t\tcase reflect.Int64, reflect.Uint64:\n\t\t\tif s.fieldCanAutoIncrement(field) {\n\t\t\t\tfield.TagSettings[\"AUTO_INCREMENT\"] = \"AUTO_INCREMENT\"\n\t\t\t\tsqlType = \"integer primary key autoincrement\"\n\t\t\t} else {\n\t\t\t\tsqlType = \"bigint\"\n\t\t\t}\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\tsqlType = \"real\"\n\t\tcase reflect.String:\n\t\t\tif size > 0 && size < 65532 {\n\t\t\t\tsqlType = fmt.Sprintf(\"varchar(%d)\", size)\n\t\t\t} else {\n\t\t\t\tsqlType = \"text\"\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tif _, ok := dataValue.Interface().(time.Time); ok {\n\t\t\t\tsqlType = \"datetime\"\n\t\t\t}\n\t\tdefault:\n\t\t\tif IsByteArrayOrSlice(dataValue) {\n\t\t\t\tsqlType = \"blob\"\n\t\t\t}\n\t\t}\n\t}\n\n\tif sqlType == \"\" {\n\t\tpanic(fmt.Sprintf(\"invalid sql type %s (%s) for sqlite3\", dataValue.Type().Name(), dataValue.Kind().String()))\n\t}\n\n\tif strings.TrimSpace(additionalType) == \"\" {\n\t\treturn sqlType\n\t}\n\treturn fmt.Sprintf(\"%v %v\", sqlType, additionalType)\n}\n\nfunc (s sqlite3) HasIndex(tableName string, indexName string) bool {\n\tvar count int\n\ts.db.QueryRow(fmt.Sprintf(\"SELECT count(*) FROM sqlite_master WHERE tbl_name = ? AND sql LIKE '%%INDEX %v ON%%'\", indexName), tableName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s sqlite3) HasTable(tableName string) bool {\n\tvar count int\n\ts.db.QueryRow(\"SELECT count(*) FROM sqlite_master WHERE type='table' AND name=?\", tableName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s sqlite3) HasColumn(tableName string, columnName string) bool {\n\tvar count int\n\ts.db.QueryRow(fmt.Sprintf(\"SELECT count(*) FROM sqlite_master WHERE tbl_name = ? AND (sql LIKE '%%\\\"%v\\\" %%' OR sql LIKE '%%%v %%');\\n\", columnName, columnName), tableName).Scan(&count)\n\treturn count > 0\n}\n\nfunc (s sqlite3) CurrentDatabase() (name string) {\n\tvar (\n\t\tifaces   = make([]interface{}, 3)\n\t\tpointers = make([]*string, 3)\n\t\ti        int\n\t)\n\tfor i = 0; i < 3; i++ {\n\t\tifaces[i] = &pointers[i]\n\t}\n\tif err := s.db.QueryRow(\"PRAGMA database_list\").Scan(ifaces...); err != nil {\n\t\treturn\n\t}\n\tif pointers[1] != nil {\n\t\tname = *pointers[1]\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/dialects/mysql/mysql.go",
    "content": "package mysql\n\nimport _ \"github.com/go-sql-driver/mysql\"\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/docker-compose.yml",
    "content": "version: '3'\n\nservices:\n  mysql:\n    image: 'mysql:latest'\n    ports:\n      - 9910:3306\n    environment:\n      - MYSQL_DATABASE=gorm\n      - MYSQL_USER=gorm\n      - MYSQL_PASSWORD=gorm\n      - MYSQL_RANDOM_ROOT_PASSWORD=\"yes\"\n  postgres:\n    image: 'postgres:latest'\n    ports:\n      - 9920:5432\n    environment:\n      - POSTGRES_USER=gorm\n      - POSTGRES_DB=gorm\n      - POSTGRES_PASSWORD=gorm\n  mssql:\n    image: 'mcmoe/mssqldocker:latest'\n    ports:\n      - 9930:1433\n    environment:\n      - ACCEPT_EULA=Y\n      - SA_PASSWORD=LoremIpsum86\n      - MSSQL_DB=gorm\n      - MSSQL_USER=gorm\n      - MSSQL_PASSWORD=LoremIpsum86\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/errors.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"strings\"\n)\n\nvar (\n\t// ErrRecordNotFound record not found error, happens when haven't find any matched data when looking up with a struct\n\tErrRecordNotFound = errors.New(\"record not found\")\n\t// ErrInvalidSQL invalid SQL error, happens when you passed invalid SQL\n\tErrInvalidSQL = errors.New(\"invalid SQL\")\n\t// ErrInvalidTransaction invalid transaction when you are trying to `Commit` or `Rollback`\n\tErrInvalidTransaction = errors.New(\"no valid transaction\")\n\t// ErrCantStartTransaction can't start transaction when you are trying to start one with `Begin`\n\tErrCantStartTransaction = errors.New(\"can't start transaction\")\n\t// ErrUnaddressable unaddressable value\n\tErrUnaddressable = errors.New(\"using unaddressable value\")\n)\n\n// Errors contains all happened errors\ntype Errors []error\n\n// IsRecordNotFoundError returns current error has record not found error or not\nfunc IsRecordNotFoundError(err error) bool {\n\tif errs, ok := err.(Errors); ok {\n\t\tfor _, err := range errs {\n\t\t\tif err == ErrRecordNotFound {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn err == ErrRecordNotFound\n}\n\n// GetErrors gets all happened errors\nfunc (errs Errors) GetErrors() []error {\n\treturn errs\n}\n\n// Add adds an error\nfunc (errs Errors) Add(newErrors ...error) Errors {\n\tfor _, err := range newErrors {\n\t\tif err == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif errors, ok := err.(Errors); ok {\n\t\t\terrs = errs.Add(errors...)\n\t\t} else {\n\t\t\tok = true\n\t\t\tfor _, e := range errs {\n\t\t\t\tif err == e {\n\t\t\t\t\tok = false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ok {\n\t\t\t\terrs = append(errs, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn errs\n}\n\n// Error format happened errors\nfunc (errs Errors) Error() string {\n\tvar errors = []string{}\n\tfor _, e := range errs {\n\t\terrors = append(errors, e.Error())\n\t}\n\treturn strings.Join(errors, \"; \")\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/field.go",
    "content": "package gorm\n\nimport (\n\t\"database/sql\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// Field model field definition\ntype Field struct {\n\t*StructField\n\tIsBlank bool\n\tField   reflect.Value\n}\n\n// Set set a value to the field\nfunc (field *Field) Set(value interface{}) (err error) {\n\tif !field.Field.IsValid() {\n\t\treturn errors.New(\"field value not valid\")\n\t}\n\n\tif !field.Field.CanAddr() {\n\t\treturn ErrUnaddressable\n\t}\n\n\treflectValue, ok := value.(reflect.Value)\n\tif !ok {\n\t\treflectValue = reflect.ValueOf(value)\n\t}\n\n\tfieldValue := field.Field\n\tif reflectValue.IsValid() {\n\t\tif reflectValue.Type().ConvertibleTo(fieldValue.Type()) {\n\t\t\tfieldValue.Set(reflectValue.Convert(fieldValue.Type()))\n\t\t} else {\n\t\t\tif fieldValue.Kind() == reflect.Ptr {\n\t\t\t\tif fieldValue.IsNil() {\n\t\t\t\t\tfieldValue.Set(reflect.New(field.Struct.Type.Elem()))\n\t\t\t\t}\n\t\t\t\tfieldValue = fieldValue.Elem()\n\t\t\t}\n\n\t\t\tif reflectValue.Type().ConvertibleTo(fieldValue.Type()) {\n\t\t\t\tfieldValue.Set(reflectValue.Convert(fieldValue.Type()))\n\t\t\t} else if scanner, ok := fieldValue.Addr().Interface().(sql.Scanner); ok {\n\t\t\t\terr = scanner.Scan(reflectValue.Interface())\n\t\t\t} else {\n\t\t\t\terr = fmt.Errorf(\"could not convert argument of field %s from %s to %s\", field.Name, reflectValue.Type(), fieldValue.Type())\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfield.Field.Set(reflect.Zero(field.Field.Type()))\n\t}\n\n\tfield.IsBlank = isBlank(field.Field)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/interface.go",
    "content": "package gorm\n\nimport \"database/sql\"\n\n// SQLCommon is the minimal database connection functionality gorm requires.  Implemented by *sql.DB.\ntype SQLCommon interface {\n\tExec(query string, args ...interface{}) (sql.Result, error)\n\tPrepare(query string) (*sql.Stmt, error)\n\tQuery(query string, args ...interface{}) (*sql.Rows, error)\n\tQueryRow(query string, args ...interface{}) *sql.Row\n}\n\ntype sqlDb interface {\n\tBegin() (*sql.Tx, error)\n}\n\ntype sqlTx interface {\n\tCommit() error\n\tRollback() error\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/join_table_handler.go",
    "content": "package gorm\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// JoinTableHandlerInterface is an interface for how to handle many2many relations\ntype JoinTableHandlerInterface interface {\n\t// initialize join table handler\n\tSetup(relationship *Relationship, tableName string, source reflect.Type, destination reflect.Type)\n\t// Table return join table's table name\n\tTable(db *DB) string\n\t// Add create relationship in join table for source and destination\n\tAdd(handler JoinTableHandlerInterface, db *DB, source interface{}, destination interface{}) error\n\t// Delete delete relationship in join table for sources\n\tDelete(handler JoinTableHandlerInterface, db *DB, sources ...interface{}) error\n\t// JoinWith query with `Join` conditions\n\tJoinWith(handler JoinTableHandlerInterface, db *DB, source interface{}) *DB\n\t// SourceForeignKeys return source foreign keys\n\tSourceForeignKeys() []JoinTableForeignKey\n\t// DestinationForeignKeys return destination foreign keys\n\tDestinationForeignKeys() []JoinTableForeignKey\n}\n\n// JoinTableForeignKey join table foreign key struct\ntype JoinTableForeignKey struct {\n\tDBName            string\n\tAssociationDBName string\n}\n\n// JoinTableSource is a struct that contains model type and foreign keys\ntype JoinTableSource struct {\n\tModelType   reflect.Type\n\tForeignKeys []JoinTableForeignKey\n}\n\n// JoinTableHandler default join table handler\ntype JoinTableHandler struct {\n\tTableName   string          `sql:\"-\"`\n\tSource      JoinTableSource `sql:\"-\"`\n\tDestination JoinTableSource `sql:\"-\"`\n}\n\n// SourceForeignKeys return source foreign keys\nfunc (s *JoinTableHandler) SourceForeignKeys() []JoinTableForeignKey {\n\treturn s.Source.ForeignKeys\n}\n\n// DestinationForeignKeys return destination foreign keys\nfunc (s *JoinTableHandler) DestinationForeignKeys() []JoinTableForeignKey {\n\treturn s.Destination.ForeignKeys\n}\n\n// Setup initialize a default join table handler\nfunc (s *JoinTableHandler) Setup(relationship *Relationship, tableName string, source reflect.Type, destination reflect.Type) {\n\ts.TableName = tableName\n\n\ts.Source = JoinTableSource{ModelType: source}\n\ts.Source.ForeignKeys = []JoinTableForeignKey{}\n\tfor idx, dbName := range relationship.ForeignFieldNames {\n\t\ts.Source.ForeignKeys = append(s.Source.ForeignKeys, JoinTableForeignKey{\n\t\t\tDBName:            relationship.ForeignDBNames[idx],\n\t\t\tAssociationDBName: dbName,\n\t\t})\n\t}\n\n\ts.Destination = JoinTableSource{ModelType: destination}\n\ts.Destination.ForeignKeys = []JoinTableForeignKey{}\n\tfor idx, dbName := range relationship.AssociationForeignFieldNames {\n\t\ts.Destination.ForeignKeys = append(s.Destination.ForeignKeys, JoinTableForeignKey{\n\t\t\tDBName:            relationship.AssociationForeignDBNames[idx],\n\t\t\tAssociationDBName: dbName,\n\t\t})\n\t}\n}\n\n// Table return join table's table name\nfunc (s JoinTableHandler) Table(db *DB) string {\n\treturn DefaultTableNameHandler(db, s.TableName)\n}\n\nfunc (s JoinTableHandler) updateConditionMap(conditionMap map[string]interface{}, db *DB, joinTableSources []JoinTableSource, sources ...interface{}) {\n\tfor _, source := range sources {\n\t\tscope := db.NewScope(source)\n\t\tmodelType := scope.GetModelStruct().ModelType\n\n\t\tfor _, joinTableSource := range joinTableSources {\n\t\t\tif joinTableSource.ModelType == modelType {\n\t\t\t\tfor _, foreignKey := range joinTableSource.ForeignKeys {\n\t\t\t\t\tif field, ok := scope.FieldByName(foreignKey.AssociationDBName); ok {\n\t\t\t\t\t\tconditionMap[foreignKey.DBName] = field.Field.Interface()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Add create relationship in join table for source and destination\nfunc (s JoinTableHandler) Add(handler JoinTableHandlerInterface, db *DB, source interface{}, destination interface{}) error {\n\tvar (\n\t\tscope        = db.NewScope(\"\")\n\t\tconditionMap = map[string]interface{}{}\n\t)\n\n\t// Update condition map for source\n\ts.updateConditionMap(conditionMap, db, []JoinTableSource{s.Source}, source)\n\n\t// Update condition map for destination\n\ts.updateConditionMap(conditionMap, db, []JoinTableSource{s.Destination}, destination)\n\n\tvar assignColumns, binVars, conditions []string\n\tvar values []interface{}\n\tfor key, value := range conditionMap {\n\t\tassignColumns = append(assignColumns, scope.Quote(key))\n\t\tbinVars = append(binVars, `?`)\n\t\tconditions = append(conditions, fmt.Sprintf(\"%v = ?\", scope.Quote(key)))\n\t\tvalues = append(values, value)\n\t}\n\n\tfor _, value := range values {\n\t\tvalues = append(values, value)\n\t}\n\n\tquotedTable := scope.Quote(handler.Table(db))\n\tsql := fmt.Sprintf(\n\t\t\"INSERT INTO %v (%v) SELECT %v %v WHERE NOT EXISTS (SELECT * FROM %v WHERE %v)\",\n\t\tquotedTable,\n\t\tstrings.Join(assignColumns, \",\"),\n\t\tstrings.Join(binVars, \",\"),\n\t\tscope.Dialect().SelectFromDummyTable(),\n\t\tquotedTable,\n\t\tstrings.Join(conditions, \" AND \"),\n\t)\n\n\treturn db.Exec(sql, values...).Error\n}\n\n// Delete delete relationship in join table for sources\nfunc (s JoinTableHandler) Delete(handler JoinTableHandlerInterface, db *DB, sources ...interface{}) error {\n\tvar (\n\t\tscope        = db.NewScope(nil)\n\t\tconditions   []string\n\t\tvalues       []interface{}\n\t\tconditionMap = map[string]interface{}{}\n\t)\n\n\ts.updateConditionMap(conditionMap, db, []JoinTableSource{s.Source, s.Destination}, sources...)\n\n\tfor key, value := range conditionMap {\n\t\tconditions = append(conditions, fmt.Sprintf(\"%v = ?\", scope.Quote(key)))\n\t\tvalues = append(values, value)\n\t}\n\n\treturn db.Table(handler.Table(db)).Where(strings.Join(conditions, \" AND \"), values...).Delete(\"\").Error\n}\n\n// JoinWith query with `Join` conditions\nfunc (s JoinTableHandler) JoinWith(handler JoinTableHandlerInterface, db *DB, source interface{}) *DB {\n\tvar (\n\t\tscope           = db.NewScope(source)\n\t\ttableName       = handler.Table(db)\n\t\tquotedTableName = scope.Quote(tableName)\n\t\tjoinConditions  []string\n\t\tvalues          []interface{}\n\t)\n\n\tif s.Source.ModelType == scope.GetModelStruct().ModelType {\n\t\tdestinationTableName := db.NewScope(reflect.New(s.Destination.ModelType).Interface()).QuotedTableName()\n\t\tfor _, foreignKey := range s.Destination.ForeignKeys {\n\t\t\tjoinConditions = append(joinConditions, fmt.Sprintf(\"%v.%v = %v.%v\", quotedTableName, scope.Quote(foreignKey.DBName), destinationTableName, scope.Quote(foreignKey.AssociationDBName)))\n\t\t}\n\n\t\tvar foreignDBNames []string\n\t\tvar foreignFieldNames []string\n\n\t\tfor _, foreignKey := range s.Source.ForeignKeys {\n\t\t\tforeignDBNames = append(foreignDBNames, foreignKey.DBName)\n\t\t\tif field, ok := scope.FieldByName(foreignKey.AssociationDBName); ok {\n\t\t\t\tforeignFieldNames = append(foreignFieldNames, field.Name)\n\t\t\t}\n\t\t}\n\n\t\tforeignFieldValues := scope.getColumnAsArray(foreignFieldNames, scope.Value)\n\n\t\tvar condString string\n\t\tif len(foreignFieldValues) > 0 {\n\t\t\tvar quotedForeignDBNames []string\n\t\t\tfor _, dbName := range foreignDBNames {\n\t\t\t\tquotedForeignDBNames = append(quotedForeignDBNames, tableName+\".\"+dbName)\n\t\t\t}\n\n\t\t\tcondString = fmt.Sprintf(\"%v IN (%v)\", toQueryCondition(scope, quotedForeignDBNames), toQueryMarks(foreignFieldValues))\n\n\t\t\tkeys := scope.getColumnAsArray(foreignFieldNames, scope.Value)\n\t\t\tvalues = append(values, toQueryValues(keys))\n\t\t} else {\n\t\t\tcondString = fmt.Sprintf(\"1 <> 1\")\n\t\t}\n\n\t\treturn db.Joins(fmt.Sprintf(\"INNER JOIN %v ON %v\", quotedTableName, strings.Join(joinConditions, \" AND \"))).\n\t\t\tWhere(condString, toQueryValues(foreignFieldValues)...)\n\t}\n\n\tdb.Error = errors.New(\"wrong source type for join table handler\")\n\treturn db\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/logger.go",
    "content": "package gorm\n\nimport (\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"time\"\n\t\"unicode\"\n)\n\nvar (\n\tdefaultLogger            = Logger{log.New(os.Stdout, \"\\r\\n\", 0)}\n\tsqlRegexp                = regexp.MustCompile(`\\?`)\n\tnumericPlaceHolderRegexp = regexp.MustCompile(`\\$\\d+`)\n)\n\nfunc isPrintable(s string) bool {\n\tfor _, r := range s {\n\t\tif !unicode.IsPrint(r) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nvar LogFormatter = func(values ...interface{}) (messages []interface{}) {\n\tif len(values) > 1 {\n\t\tvar (\n\t\t\tsql             string\n\t\t\tformattedValues []string\n\t\t\tlevel           = values[0]\n\t\t\tcurrentTime     = \"\\n\\033[33m[\" + NowFunc().Format(\"2006-01-02 15:04:05\") + \"]\\033[0m\"\n\t\t\tsource          = fmt.Sprintf(\"\\033[35m(%v)\\033[0m\", values[1])\n\t\t)\n\n\t\tmessages = []interface{}{source, currentTime}\n\n\t\tif level == \"sql\" {\n\t\t\t// duration\n\t\t\tmessages = append(messages, fmt.Sprintf(\" \\033[36;1m[%.2fms]\\033[0m \", float64(values[2].(time.Duration).Nanoseconds()/1e4)/100.0))\n\t\t\t// sql\n\n\t\t\tfor _, value := range values[4].([]interface{}) {\n\t\t\t\tindirectValue := reflect.Indirect(reflect.ValueOf(value))\n\t\t\t\tif indirectValue.IsValid() {\n\t\t\t\t\tvalue = indirectValue.Interface()\n\t\t\t\t\tif t, ok := value.(time.Time); ok {\n\t\t\t\t\t\tformattedValues = append(formattedValues, fmt.Sprintf(\"'%v'\", t.Format(\"2006-01-02 15:04:05\")))\n\t\t\t\t\t} else if b, ok := value.([]byte); ok {\n\t\t\t\t\t\tif str := string(b); isPrintable(str) {\n\t\t\t\t\t\t\tformattedValues = append(formattedValues, fmt.Sprintf(\"'%v'\", str))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedValues = append(formattedValues, \"'<binary>'\")\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if r, ok := value.(driver.Valuer); ok {\n\t\t\t\t\t\tif value, err := r.Value(); err == nil && value != nil {\n\t\t\t\t\t\t\tformattedValues = append(formattedValues, fmt.Sprintf(\"'%v'\", value))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedValues = append(formattedValues, \"NULL\")\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tformattedValues = append(formattedValues, fmt.Sprintf(\"'%v'\", value))\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tformattedValues = append(formattedValues, \"NULL\")\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// differentiate between $n placeholders or else treat like ?\n\t\t\tif numericPlaceHolderRegexp.MatchString(values[3].(string)) {\n\t\t\t\tsql = values[3].(string)\n\t\t\t\tfor index, value := range formattedValues {\n\t\t\t\t\tplaceholder := fmt.Sprintf(`\\$%d([^\\d]|$)`, index+1)\n\t\t\t\t\tsql = regexp.MustCompile(placeholder).ReplaceAllString(sql, value+\"$1\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tformattedValuesLength := len(formattedValues)\n\t\t\t\tfor index, value := range sqlRegexp.Split(values[3].(string), -1) {\n\t\t\t\t\tsql += value\n\t\t\t\t\tif index < formattedValuesLength {\n\t\t\t\t\t\tsql += formattedValues[index]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmessages = append(messages, sql)\n\t\t\tmessages = append(messages, fmt.Sprintf(\" \\n\\033[36;31m[%v]\\033[0m \", strconv.FormatInt(values[5].(int64), 10)+\" rows affected or returned \"))\n\t\t} else {\n\t\t\tmessages = append(messages, \"\\033[31;1m\")\n\t\t\tmessages = append(messages, values[2:]...)\n\t\t\tmessages = append(messages, \"\\033[0m\")\n\t\t}\n\t}\n\n\treturn\n}\n\ntype logger interface {\n\tPrint(v ...interface{})\n}\n\n// LogWriter log writer interface\ntype LogWriter interface {\n\tPrintln(v ...interface{})\n}\n\n// Logger default logger\ntype Logger struct {\n\tLogWriter\n}\n\n// Print format & print log\nfunc (logger Logger) Print(values ...interface{}) {\n\tlogger.Println(LogFormatter(values...)...)\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/main.go",
    "content": "package gorm\n\nimport (\n\t\"database/sql\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\n// DB contains information for current db connection\ntype DB struct {\n\tValue        interface{}\n\tError        error\n\tRowsAffected int64\n\n\t// single db\n\tdb                SQLCommon\n\tblockGlobalUpdate bool\n\tlogMode           int\n\tlogger            logger\n\tsearch            *search\n\tvalues            map[string]interface{}\n\n\t// global db\n\tparent        *DB\n\tcallbacks     *Callback\n\tdialect       Dialect\n\tsingularTable bool\n}\n\n// Open initialize a new db connection, need to import driver first, e.g:\n//\n//     import _ \"github.com/go-sql-driver/mysql\"\n//     func main() {\n//       db, err := gorm.Open(\"mysql\", \"user:password@/dbname?charset=utf8&parseTime=True&loc=Local\")\n//     }\n// GORM has wrapped some drivers, for easier to remember driver's import path, so you could import the mysql driver with\n//    import _ \"github.com/jinzhu/gorm/dialects/mysql\"\n//    // import _ \"github.com/jinzhu/gorm/dialects/postgres\"\n//    // import _ \"github.com/jinzhu/gorm/dialects/sqlite\"\n//    // import _ \"github.com/jinzhu/gorm/dialects/mssql\"\nfunc Open(dialect string, args ...interface{}) (db *DB, err error) {\n\tif len(args) == 0 {\n\t\terr = errors.New(\"invalid database source\")\n\t\treturn nil, err\n\t}\n\tvar source string\n\tvar dbSQL SQLCommon\n\n\tswitch value := args[0].(type) {\n\tcase string:\n\t\tvar driver = dialect\n\t\tif len(args) == 1 {\n\t\t\tsource = value\n\t\t} else if len(args) >= 2 {\n\t\t\tdriver = value\n\t\t\tsource = args[1].(string)\n\t\t}\n\t\tdbSQL, err = sql.Open(driver, source)\n\tcase SQLCommon:\n\t\tdbSQL = value\n\t}\n\n\tdb = &DB{\n\t\tdb:        dbSQL,\n\t\tlogger:    defaultLogger,\n\t\tvalues:    map[string]interface{}{},\n\t\tcallbacks: DefaultCallback,\n\t\tdialect:   newDialect(dialect, dbSQL),\n\t}\n\tdb.parent = db\n\tif err != nil {\n\t\treturn\n\t}\n\t// Send a ping to make sure the database connection is alive.\n\tif d, ok := dbSQL.(*sql.DB); ok {\n\t\tif err = d.Ping(); err != nil {\n\t\t\td.Close()\n\t\t}\n\t}\n\treturn\n}\n\n// New clone a new db connection without search conditions\nfunc (s *DB) New() *DB {\n\tclone := s.clone()\n\tclone.search = nil\n\tclone.Value = nil\n\treturn clone\n}\n\ntype closer interface {\n\tClose() error\n}\n\n// Close close current db connection.  If database connection is not an io.Closer, returns an error.\nfunc (s *DB) Close() error {\n\tif db, ok := s.parent.db.(closer); ok {\n\t\treturn db.Close()\n\t}\n\treturn errors.New(\"can't close current db\")\n}\n\n// DB get `*sql.DB` from current connection\n// If the underlying database connection is not a *sql.DB, returns nil\nfunc (s *DB) DB() *sql.DB {\n\tdb, _ := s.db.(*sql.DB)\n\treturn db\n}\n\n// CommonDB return the underlying `*sql.DB` or `*sql.Tx` instance, mainly intended to allow coexistence with legacy non-GORM code.\nfunc (s *DB) CommonDB() SQLCommon {\n\treturn s.db\n}\n\n// Dialect get dialect\nfunc (s *DB) Dialect() Dialect {\n\treturn s.parent.dialect\n}\n\n// Callback return `Callbacks` container, you could add/change/delete callbacks with it\n//     db.Callback().Create().Register(\"update_created_at\", updateCreated)\n// Refer https://jinzhu.github.io/gorm/development.html#callbacks\nfunc (s *DB) Callback() *Callback {\n\ts.parent.callbacks = s.parent.callbacks.clone()\n\treturn s.parent.callbacks\n}\n\n// SetLogger replace default logger\nfunc (s *DB) SetLogger(log logger) {\n\ts.logger = log\n}\n\n// LogMode set log mode, `true` for detailed logs, `false` for no log, default, will only print error logs\nfunc (s *DB) LogMode(enable bool) *DB {\n\tif enable {\n\t\ts.logMode = 2\n\t} else {\n\t\ts.logMode = 1\n\t}\n\treturn s\n}\n\n// BlockGlobalUpdate if true, generates an error on update/delete without where clause.\n// This is to prevent eventual error with empty objects updates/deletions\nfunc (s *DB) BlockGlobalUpdate(enable bool) *DB {\n\ts.blockGlobalUpdate = enable\n\treturn s\n}\n\n// HasBlockGlobalUpdate return state of block\nfunc (s *DB) HasBlockGlobalUpdate() bool {\n\treturn s.blockGlobalUpdate\n}\n\n// SingularTable use singular table by default\nfunc (s *DB) SingularTable(enable bool) {\n\tmodelStructsMap = newModelStructsMap()\n\ts.parent.singularTable = enable\n}\n\n// NewScope create a scope for current operation\nfunc (s *DB) NewScope(value interface{}) *Scope {\n\tdbClone := s.clone()\n\tdbClone.Value = value\n\treturn &Scope{db: dbClone, Search: dbClone.search.clone(), Value: value}\n}\n\n// QueryExpr returns the query as expr object\nfunc (s *DB) QueryExpr() *expr {\n\tscope := s.NewScope(s.Value)\n\tscope.InstanceSet(\"skip_bindvar\", true)\n\tscope.prepareQuerySQL()\n\n\treturn Expr(scope.SQL, scope.SQLVars...)\n}\n\n// Where return a new relation, filter records with given conditions, accepts `map`, `struct` or `string` as conditions, refer http://jinzhu.github.io/gorm/crud.html#query\nfunc (s *DB) Where(query interface{}, args ...interface{}) *DB {\n\treturn s.clone().search.Where(query, args...).db\n}\n\n// Or filter records that match before conditions or this one, similar to `Where`\nfunc (s *DB) Or(query interface{}, args ...interface{}) *DB {\n\treturn s.clone().search.Or(query, args...).db\n}\n\n// Not filter records that don't match current conditions, similar to `Where`\nfunc (s *DB) Not(query interface{}, args ...interface{}) *DB {\n\treturn s.clone().search.Not(query, args...).db\n}\n\n// Limit specify the number of records to be retrieved\nfunc (s *DB) Limit(limit interface{}) *DB {\n\treturn s.clone().search.Limit(limit).db\n}\n\n// Offset specify the number of records to skip before starting to return the records\nfunc (s *DB) Offset(offset interface{}) *DB {\n\treturn s.clone().search.Offset(offset).db\n}\n\n// Order specify order when retrieve records from database, set reorder to `true` to overwrite defined conditions\n//     db.Order(\"name DESC\")\n//     db.Order(\"name DESC\", true) // reorder\n//     db.Order(gorm.Expr(\"name = ? DESC\", \"first\")) // sql expression\nfunc (s *DB) Order(value interface{}, reorder ...bool) *DB {\n\treturn s.clone().search.Order(value, reorder...).db\n}\n\n// Select specify fields that you want to retrieve from database when querying, by default, will select all fields;\n// When creating/updating, specify fields that you want to save to database\nfunc (s *DB) Select(query interface{}, args ...interface{}) *DB {\n\treturn s.clone().search.Select(query, args...).db\n}\n\n// Omit specify fields that you want to ignore when saving to database for creating, updating\nfunc (s *DB) Omit(columns ...string) *DB {\n\treturn s.clone().search.Omit(columns...).db\n}\n\n// Group specify the group method on the find\nfunc (s *DB) Group(query string) *DB {\n\treturn s.clone().search.Group(query).db\n}\n\n// Having specify HAVING conditions for GROUP BY\nfunc (s *DB) Having(query interface{}, values ...interface{}) *DB {\n\treturn s.clone().search.Having(query, values...).db\n}\n\n// Joins specify Joins conditions\n//     db.Joins(\"JOIN emails ON emails.user_id = users.id AND emails.email = ?\", \"jinzhu@example.org\").Find(&user)\nfunc (s *DB) Joins(query string, args ...interface{}) *DB {\n\treturn s.clone().search.Joins(query, args...).db\n}\n\n// Scopes pass current database connection to arguments `func(*DB) *DB`, which could be used to add conditions dynamically\n//     func AmountGreaterThan1000(db *gorm.DB) *gorm.DB {\n//         return db.Where(\"amount > ?\", 1000)\n//     }\n//\n//     func OrderStatus(status []string) func (db *gorm.DB) *gorm.DB {\n//         return func (db *gorm.DB) *gorm.DB {\n//             return db.Scopes(AmountGreaterThan1000).Where(\"status in (?)\", status)\n//         }\n//     }\n//\n//     db.Scopes(AmountGreaterThan1000, OrderStatus([]string{\"paid\", \"shipped\"})).Find(&orders)\n// Refer https://jinzhu.github.io/gorm/crud.html#scopes\nfunc (s *DB) Scopes(funcs ...func(*DB) *DB) *DB {\n\tfor _, f := range funcs {\n\t\ts = f(s)\n\t}\n\treturn s\n}\n\n// Unscoped return all record including deleted record, refer Soft Delete https://jinzhu.github.io/gorm/crud.html#soft-delete\nfunc (s *DB) Unscoped() *DB {\n\treturn s.clone().search.unscoped().db\n}\n\n// Attrs initialize struct with argument if record not found with `FirstOrInit` https://jinzhu.github.io/gorm/crud.html#firstorinit or `FirstOrCreate` https://jinzhu.github.io/gorm/crud.html#firstorcreate\nfunc (s *DB) Attrs(attrs ...interface{}) *DB {\n\treturn s.clone().search.Attrs(attrs...).db\n}\n\n// Assign assign result with argument regardless it is found or not with `FirstOrInit` https://jinzhu.github.io/gorm/crud.html#firstorinit or `FirstOrCreate` https://jinzhu.github.io/gorm/crud.html#firstorcreate\nfunc (s *DB) Assign(attrs ...interface{}) *DB {\n\treturn s.clone().search.Assign(attrs...).db\n}\n\n// First find first record that match given conditions, order by primary key\nfunc (s *DB) First(out interface{}, where ...interface{}) *DB {\n\tnewScope := s.NewScope(out)\n\tnewScope.Search.Limit(1)\n\treturn newScope.Set(\"gorm:order_by_primary_key\", \"ASC\").\n\t\tinlineCondition(where...).callCallbacks(s.parent.callbacks.queries).db\n}\n\n// Take return a record that match given conditions, the order will depend on the database implementation\nfunc (s *DB) Take(out interface{}, where ...interface{}) *DB {\n\tnewScope := s.NewScope(out)\n\tnewScope.Search.Limit(1)\n\treturn newScope.inlineCondition(where...).callCallbacks(s.parent.callbacks.queries).db\n}\n\n// Last find last record that match given conditions, order by primary key\nfunc (s *DB) Last(out interface{}, where ...interface{}) *DB {\n\tnewScope := s.NewScope(out)\n\tnewScope.Search.Limit(1)\n\treturn newScope.Set(\"gorm:order_by_primary_key\", \"DESC\").\n\t\tinlineCondition(where...).callCallbacks(s.parent.callbacks.queries).db\n}\n\n// Find find records that match given conditions\nfunc (s *DB) Find(out interface{}, where ...interface{}) *DB {\n\treturn s.NewScope(out).inlineCondition(where...).callCallbacks(s.parent.callbacks.queries).db\n}\n\n// Scan scan value to a struct\nfunc (s *DB) Scan(dest interface{}) *DB {\n\treturn s.NewScope(s.Value).Set(\"gorm:query_destination\", dest).callCallbacks(s.parent.callbacks.queries).db\n}\n\n// Row return `*sql.Row` with given conditions\nfunc (s *DB) Row() *sql.Row {\n\treturn s.NewScope(s.Value).row()\n}\n\n// Rows return `*sql.Rows` with given conditions\nfunc (s *DB) Rows() (*sql.Rows, error) {\n\treturn s.NewScope(s.Value).rows()\n}\n\n// ScanRows scan `*sql.Rows` to give struct\nfunc (s *DB) ScanRows(rows *sql.Rows, result interface{}) error {\n\tvar (\n\t\tscope        = s.NewScope(result)\n\t\tclone        = scope.db\n\t\tcolumns, err = rows.Columns()\n\t)\n\n\tif clone.AddError(err) == nil {\n\t\tscope.scan(rows, columns, scope.Fields())\n\t}\n\n\treturn clone.Error\n}\n\n// Pluck used to query single column from a model as a map\n//     var ages []int64\n//     db.Find(&users).Pluck(\"age\", &ages)\nfunc (s *DB) Pluck(column string, value interface{}) *DB {\n\treturn s.NewScope(s.Value).pluck(column, value).db\n}\n\n// Count get how many records for a model\nfunc (s *DB) Count(value interface{}) *DB {\n\treturn s.NewScope(s.Value).count(value).db\n}\n\n// Related get related associations\nfunc (s *DB) Related(value interface{}, foreignKeys ...string) *DB {\n\treturn s.NewScope(s.Value).related(value, foreignKeys...).db\n}\n\n// FirstOrInit find first matched record or initialize a new one with given conditions (only works with struct, map conditions)\n// https://jinzhu.github.io/gorm/crud.html#firstorinit\nfunc (s *DB) FirstOrInit(out interface{}, where ...interface{}) *DB {\n\tc := s.clone()\n\tif result := c.First(out, where...); result.Error != nil {\n\t\tif !result.RecordNotFound() {\n\t\t\treturn result\n\t\t}\n\t\tc.NewScope(out).inlineCondition(where...).initialize()\n\t} else {\n\t\tc.NewScope(out).updatedAttrsWithValues(c.search.assignAttrs)\n\t}\n\treturn c\n}\n\n// FirstOrCreate find first matched record or create a new one with given conditions (only works with struct, map conditions)\n// https://jinzhu.github.io/gorm/crud.html#firstorcreate\nfunc (s *DB) FirstOrCreate(out interface{}, where ...interface{}) *DB {\n\tc := s.clone()\n\tif result := s.First(out, where...); result.Error != nil {\n\t\tif !result.RecordNotFound() {\n\t\t\treturn result\n\t\t}\n\t\treturn c.NewScope(out).inlineCondition(where...).initialize().callCallbacks(c.parent.callbacks.creates).db\n\t} else if len(c.search.assignAttrs) > 0 {\n\t\treturn c.NewScope(out).InstanceSet(\"gorm:update_interface\", c.search.assignAttrs).callCallbacks(c.parent.callbacks.updates).db\n\t}\n\treturn c\n}\n\n// Update update attributes with callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update\nfunc (s *DB) Update(attrs ...interface{}) *DB {\n\treturn s.Updates(toSearchableMap(attrs...), true)\n}\n\n// Updates update attributes with callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update\nfunc (s *DB) Updates(values interface{}, ignoreProtectedAttrs ...bool) *DB {\n\treturn s.NewScope(s.Value).\n\t\tSet(\"gorm:ignore_protected_attrs\", len(ignoreProtectedAttrs) > 0).\n\t\tInstanceSet(\"gorm:update_interface\", values).\n\t\tcallCallbacks(s.parent.callbacks.updates).db\n}\n\n// UpdateColumn update attributes without callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update\nfunc (s *DB) UpdateColumn(attrs ...interface{}) *DB {\n\treturn s.UpdateColumns(toSearchableMap(attrs...))\n}\n\n// UpdateColumns update attributes without callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update\nfunc (s *DB) UpdateColumns(values interface{}) *DB {\n\treturn s.NewScope(s.Value).\n\t\tSet(\"gorm:update_column\", true).\n\t\tSet(\"gorm:save_associations\", false).\n\t\tInstanceSet(\"gorm:update_interface\", values).\n\t\tcallCallbacks(s.parent.callbacks.updates).db\n}\n\n// Save update value in database, if the value doesn't have primary key, will insert it\nfunc (s *DB) Save(value interface{}) *DB {\n\tscope := s.NewScope(value)\n\tif !scope.PrimaryKeyZero() {\n\t\tnewDB := scope.callCallbacks(s.parent.callbacks.updates).db\n\t\tif newDB.Error == nil && newDB.RowsAffected == 0 {\n\t\t\treturn s.New().FirstOrCreate(value)\n\t\t}\n\t\treturn newDB\n\t}\n\treturn scope.callCallbacks(s.parent.callbacks.creates).db\n}\n\n// Create insert the value into database\nfunc (s *DB) Create(value interface{}) *DB {\n\tscope := s.NewScope(value)\n\treturn scope.callCallbacks(s.parent.callbacks.creates).db\n}\n\n// Delete delete value match given conditions, if the value has primary key, then will including the primary key as condition\nfunc (s *DB) Delete(value interface{}, where ...interface{}) *DB {\n\treturn s.NewScope(value).inlineCondition(where...).callCallbacks(s.parent.callbacks.deletes).db\n}\n\n// Raw use raw sql as conditions, won't run it unless invoked by other methods\n//    db.Raw(\"SELECT name, age FROM users WHERE name = ?\", 3).Scan(&result)\nfunc (s *DB) Raw(sql string, values ...interface{}) *DB {\n\treturn s.clone().search.Raw(true).Where(sql, values...).db\n}\n\n// Exec execute raw sql\nfunc (s *DB) Exec(sql string, values ...interface{}) *DB {\n\tscope := s.NewScope(nil)\n\tgeneratedSQL := scope.buildCondition(map[string]interface{}{\"query\": sql, \"args\": values}, true)\n\tgeneratedSQL = strings.TrimSuffix(strings.TrimPrefix(generatedSQL, \"(\"), \")\")\n\tscope.Raw(generatedSQL)\n\treturn scope.Exec().db\n}\n\n// Model specify the model you would like to run db operations\n//    // update all users's name to `hello`\n//    db.Model(&User{}).Update(\"name\", \"hello\")\n//    // if user's primary key is non-blank, will use it as condition, then will only update the user's name to `hello`\n//    db.Model(&user).Update(\"name\", \"hello\")\nfunc (s *DB) Model(value interface{}) *DB {\n\tc := s.clone()\n\tc.Value = value\n\treturn c\n}\n\n// Table specify the table you would like to run db operations\nfunc (s *DB) Table(name string) *DB {\n\tclone := s.clone()\n\tclone.search.Table(name)\n\tclone.Value = nil\n\treturn clone\n}\n\n// Debug start debug mode\nfunc (s *DB) Debug() *DB {\n\treturn s.clone().LogMode(true)\n}\n\n// Begin begin a transaction\nfunc (s *DB) Begin() *DB {\n\tc := s.clone()\n\tif db, ok := c.db.(sqlDb); ok && db != nil {\n\t\ttx, err := db.Begin()\n\t\tc.db = interface{}(tx).(SQLCommon)\n\t\tc.AddError(err)\n\t} else {\n\t\tc.AddError(ErrCantStartTransaction)\n\t}\n\treturn c\n}\n\n// Commit commit a transaction\nfunc (s *DB) Commit() *DB {\n\tif db, ok := s.db.(sqlTx); ok && db != nil {\n\t\ts.AddError(db.Commit())\n\t} else {\n\t\ts.AddError(ErrInvalidTransaction)\n\t}\n\treturn s\n}\n\n// Rollback rollback a transaction\nfunc (s *DB) Rollback() *DB {\n\tif db, ok := s.db.(sqlTx); ok && db != nil {\n\t\ts.AddError(db.Rollback())\n\t} else {\n\t\ts.AddError(ErrInvalidTransaction)\n\t}\n\treturn s\n}\n\n// NewRecord check if value's primary key is blank\nfunc (s *DB) NewRecord(value interface{}) bool {\n\treturn s.NewScope(value).PrimaryKeyZero()\n}\n\n// RecordNotFound check if returning ErrRecordNotFound error\nfunc (s *DB) RecordNotFound() bool {\n\tfor _, err := range s.GetErrors() {\n\t\tif err == ErrRecordNotFound {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// CreateTable create table for models\nfunc (s *DB) CreateTable(models ...interface{}) *DB {\n\tdb := s.Unscoped()\n\tfor _, model := range models {\n\t\tdb = db.NewScope(model).createTable().db\n\t}\n\treturn db\n}\n\n// DropTable drop table for models\nfunc (s *DB) DropTable(values ...interface{}) *DB {\n\tdb := s.clone()\n\tfor _, value := range values {\n\t\tif tableName, ok := value.(string); ok {\n\t\t\tdb = db.Table(tableName)\n\t\t}\n\n\t\tdb = db.NewScope(value).dropTable().db\n\t}\n\treturn db\n}\n\n// DropTableIfExists drop table if it is exist\nfunc (s *DB) DropTableIfExists(values ...interface{}) *DB {\n\tdb := s.clone()\n\tfor _, value := range values {\n\t\tif s.HasTable(value) {\n\t\t\tdb.AddError(s.DropTable(value).Error)\n\t\t}\n\t}\n\treturn db\n}\n\n// HasTable check has table or not\nfunc (s *DB) HasTable(value interface{}) bool {\n\tvar (\n\t\tscope     = s.NewScope(value)\n\t\ttableName string\n\t)\n\n\tif name, ok := value.(string); ok {\n\t\ttableName = name\n\t} else {\n\t\ttableName = scope.TableName()\n\t}\n\n\thas := scope.Dialect().HasTable(tableName)\n\ts.AddError(scope.db.Error)\n\treturn has\n}\n\n// AutoMigrate run auto migration for given models, will only add missing fields, won't delete/change current data\nfunc (s *DB) AutoMigrate(values ...interface{}) *DB {\n\tdb := s.Unscoped()\n\tfor _, value := range values {\n\t\tdb = db.NewScope(value).autoMigrate().db\n\t}\n\treturn db\n}\n\n// ModifyColumn modify column to type\nfunc (s *DB) ModifyColumn(column string, typ string) *DB {\n\tscope := s.NewScope(s.Value)\n\tscope.modifyColumn(column, typ)\n\treturn scope.db\n}\n\n// DropColumn drop a column\nfunc (s *DB) DropColumn(column string) *DB {\n\tscope := s.NewScope(s.Value)\n\tscope.dropColumn(column)\n\treturn scope.db\n}\n\n// AddIndex add index for columns with given name\nfunc (s *DB) AddIndex(indexName string, columns ...string) *DB {\n\tscope := s.Unscoped().NewScope(s.Value)\n\tscope.addIndex(false, indexName, columns...)\n\treturn scope.db\n}\n\n// AddUniqueIndex add unique index for columns with given name\nfunc (s *DB) AddUniqueIndex(indexName string, columns ...string) *DB {\n\tscope := s.Unscoped().NewScope(s.Value)\n\tscope.addIndex(true, indexName, columns...)\n\treturn scope.db\n}\n\n// RemoveIndex remove index with name\nfunc (s *DB) RemoveIndex(indexName string) *DB {\n\tscope := s.NewScope(s.Value)\n\tscope.removeIndex(indexName)\n\treturn scope.db\n}\n\n// AddForeignKey Add foreign key to the given scope, e.g:\n//     db.Model(&User{}).AddForeignKey(\"city_id\", \"cities(id)\", \"RESTRICT\", \"RESTRICT\")\nfunc (s *DB) AddForeignKey(field string, dest string, onDelete string, onUpdate string) *DB {\n\tscope := s.NewScope(s.Value)\n\tscope.addForeignKey(field, dest, onDelete, onUpdate)\n\treturn scope.db\n}\n\n// RemoveForeignKey Remove foreign key from the given scope, e.g:\n//     db.Model(&User{}).RemoveForeignKey(\"city_id\", \"cities(id)\")\nfunc (s *DB) RemoveForeignKey(field string, dest string) *DB {\n\tscope := s.clone().NewScope(s.Value)\n\tscope.removeForeignKey(field, dest)\n\treturn scope.db\n}\n\n// Association start `Association Mode` to handler relations things easir in that mode, refer: https://jinzhu.github.io/gorm/associations.html#association-mode\nfunc (s *DB) Association(column string) *Association {\n\tvar err error\n\tvar scope = s.Set(\"gorm:association:source\", s.Value).NewScope(s.Value)\n\n\tif primaryField := scope.PrimaryField(); primaryField.IsBlank {\n\t\terr = errors.New(\"primary key can't be nil\")\n\t} else {\n\t\tif field, ok := scope.FieldByName(column); ok {\n\t\t\tif field.Relationship == nil || len(field.Relationship.ForeignFieldNames) == 0 {\n\t\t\t\terr = fmt.Errorf(\"invalid association %v for %v\", column, scope.IndirectValue().Type())\n\t\t\t} else {\n\t\t\t\treturn &Association{scope: scope, column: column, field: field}\n\t\t\t}\n\t\t} else {\n\t\t\terr = fmt.Errorf(\"%v doesn't have column %v\", scope.IndirectValue().Type(), column)\n\t\t}\n\t}\n\n\treturn &Association{Error: err}\n}\n\n// Preload preload associations with given conditions\n//    db.Preload(\"Orders\", \"state NOT IN (?)\", \"cancelled\").Find(&users)\nfunc (s *DB) Preload(column string, conditions ...interface{}) *DB {\n\treturn s.clone().search.Preload(column, conditions...).db\n}\n\n// Set set setting by name, which could be used in callbacks, will clone a new db, and update its setting\nfunc (s *DB) Set(name string, value interface{}) *DB {\n\treturn s.clone().InstantSet(name, value)\n}\n\n// InstantSet instant set setting, will affect current db\nfunc (s *DB) InstantSet(name string, value interface{}) *DB {\n\ts.values[name] = value\n\treturn s\n}\n\n// Get get setting by name\nfunc (s *DB) Get(name string) (value interface{}, ok bool) {\n\tvalue, ok = s.values[name]\n\treturn\n}\n\n// SetJoinTableHandler set a model's join table handler for a relation\nfunc (s *DB) SetJoinTableHandler(source interface{}, column string, handler JoinTableHandlerInterface) {\n\tscope := s.NewScope(source)\n\tfor _, field := range scope.GetModelStruct().StructFields {\n\t\tif field.Name == column || field.DBName == column {\n\t\t\tif many2many := field.TagSettings[\"MANY2MANY\"]; many2many != \"\" {\n\t\t\t\tsource := (&Scope{Value: source}).GetModelStruct().ModelType\n\t\t\t\tdestination := (&Scope{Value: reflect.New(field.Struct.Type).Interface()}).GetModelStruct().ModelType\n\t\t\t\thandler.Setup(field.Relationship, many2many, source, destination)\n\t\t\t\tfield.Relationship.JoinTableHandler = handler\n\t\t\t\tif table := handler.Table(s); scope.Dialect().HasTable(table) {\n\t\t\t\t\ts.Table(table).AutoMigrate(handler)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// AddError add error to the db\nfunc (s *DB) AddError(err error) error {\n\tif err != nil {\n\t\tif err != ErrRecordNotFound {\n\t\t\tif s.logMode == 0 {\n\t\t\t\tgo s.print(fileWithLineNum(), err)\n\t\t\t} else {\n\t\t\t\ts.log(err)\n\t\t\t}\n\n\t\t\terrors := Errors(s.GetErrors())\n\t\t\terrors = errors.Add(err)\n\t\t\tif len(errors) > 1 {\n\t\t\t\terr = errors\n\t\t\t}\n\t\t}\n\n\t\ts.Error = err\n\t}\n\treturn err\n}\n\n// GetErrors get happened errors from the db\nfunc (s *DB) GetErrors() []error {\n\tif errs, ok := s.Error.(Errors); ok {\n\t\treturn errs\n\t} else if s.Error != nil {\n\t\treturn []error{s.Error}\n\t}\n\treturn []error{}\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Private Methods For DB\n////////////////////////////////////////////////////////////////////////////////\n\nfunc (s *DB) clone() *DB {\n\tdb := &DB{\n\t\tdb:                s.db,\n\t\tparent:            s.parent,\n\t\tlogger:            s.logger,\n\t\tlogMode:           s.logMode,\n\t\tvalues:            map[string]interface{}{},\n\t\tValue:             s.Value,\n\t\tError:             s.Error,\n\t\tblockGlobalUpdate: s.blockGlobalUpdate,\n\t}\n\n\tfor key, value := range s.values {\n\t\tdb.values[key] = value\n\t}\n\n\tif s.search == nil {\n\t\tdb.search = &search{limit: -1, offset: -1}\n\t} else {\n\t\tdb.search = s.search.clone()\n\t}\n\n\tdb.search.db = db\n\treturn db\n}\n\nfunc (s *DB) print(v ...interface{}) {\n\ts.logger.Print(v...)\n}\n\nfunc (s *DB) log(v ...interface{}) {\n\tif s != nil && s.logMode == 2 {\n\t\ts.print(append([]interface{}{\"log\", fileWithLineNum()}, v...)...)\n\t}\n}\n\nfunc (s *DB) slog(sql string, t time.Time, vars ...interface{}) {\n\tif s.logMode == 2 {\n\t\ts.print(\"sql\", fileWithLineNum(), NowFunc().Sub(t), sql, vars, s.RowsAffected)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/model.go",
    "content": "package gorm\n\nimport \"time\"\n\n// Model base model definition, including fields `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt`, which could be embedded in your models\n//    type User struct {\n//      gorm.Model\n//    }\ntype Model struct {\n\tID        uint `gorm:\"primary_key\"`\n\tCreatedAt time.Time\n\tUpdatedAt time.Time\n\tDeletedAt *time.Time `sql:\"index\"`\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/model_struct.go",
    "content": "package gorm\n\nimport (\n\t\"database/sql\"\n\t\"errors\"\n\t\"go/ast\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/jinzhu/inflection\"\n)\n\n// DefaultTableNameHandler default table name handler\nvar DefaultTableNameHandler = func(db *DB, defaultTableName string) string {\n\treturn defaultTableName\n}\n\ntype safeModelStructsMap struct {\n\tm map[reflect.Type]*ModelStruct\n\tl *sync.RWMutex\n}\n\nfunc (s *safeModelStructsMap) Set(key reflect.Type, value *ModelStruct) {\n\ts.l.Lock()\n\tdefer s.l.Unlock()\n\ts.m[key] = value\n}\n\nfunc (s *safeModelStructsMap) Get(key reflect.Type) *ModelStruct {\n\ts.l.RLock()\n\tdefer s.l.RUnlock()\n\treturn s.m[key]\n}\n\nfunc newModelStructsMap() *safeModelStructsMap {\n\treturn &safeModelStructsMap{l: new(sync.RWMutex), m: make(map[reflect.Type]*ModelStruct)}\n}\n\nvar modelStructsMap = newModelStructsMap()\n\n// ModelStruct model definition\ntype ModelStruct struct {\n\tPrimaryFields    []*StructField\n\tStructFields     []*StructField\n\tModelType        reflect.Type\n\tdefaultTableName string\n}\n\n// TableName get model's table name\nfunc (s *ModelStruct) TableName(db *DB) string {\n\tif s.defaultTableName == \"\" && db != nil && s.ModelType != nil {\n\t\t// Set default table name\n\t\tif tabler, ok := reflect.New(s.ModelType).Interface().(tabler); ok {\n\t\t\ts.defaultTableName = tabler.TableName()\n\t\t} else {\n\t\t\ttableName := ToDBName(s.ModelType.Name())\n\t\t\tif db == nil || !db.parent.singularTable {\n\t\t\t\ttableName = inflection.Plural(tableName)\n\t\t\t}\n\t\t\ts.defaultTableName = tableName\n\t\t}\n\t}\n\n\treturn DefaultTableNameHandler(db, s.defaultTableName)\n}\n\n// StructField model field's struct definition\ntype StructField struct {\n\tDBName          string\n\tName            string\n\tNames           []string\n\tIsPrimaryKey    bool\n\tIsNormal        bool\n\tIsIgnored       bool\n\tIsScanner       bool\n\tHasDefaultValue bool\n\tTag             reflect.StructTag\n\tTagSettings     map[string]string\n\tStruct          reflect.StructField\n\tIsForeignKey    bool\n\tRelationship    *Relationship\n}\n\nfunc (structField *StructField) clone() *StructField {\n\tclone := &StructField{\n\t\tDBName:          structField.DBName,\n\t\tName:            structField.Name,\n\t\tNames:           structField.Names,\n\t\tIsPrimaryKey:    structField.IsPrimaryKey,\n\t\tIsNormal:        structField.IsNormal,\n\t\tIsIgnored:       structField.IsIgnored,\n\t\tIsScanner:       structField.IsScanner,\n\t\tHasDefaultValue: structField.HasDefaultValue,\n\t\tTag:             structField.Tag,\n\t\tTagSettings:     map[string]string{},\n\t\tStruct:          structField.Struct,\n\t\tIsForeignKey:    structField.IsForeignKey,\n\t}\n\n\tif structField.Relationship != nil {\n\t\trelationship := *structField.Relationship\n\t\tclone.Relationship = &relationship\n\t}\n\n\tfor key, value := range structField.TagSettings {\n\t\tclone.TagSettings[key] = value\n\t}\n\n\treturn clone\n}\n\n// Relationship described the relationship between models\ntype Relationship struct {\n\tKind                         string\n\tPolymorphicType              string\n\tPolymorphicDBName            string\n\tPolymorphicValue             string\n\tForeignFieldNames            []string\n\tForeignDBNames               []string\n\tAssociationForeignFieldNames []string\n\tAssociationForeignDBNames    []string\n\tJoinTableHandler             JoinTableHandlerInterface\n}\n\nfunc getForeignField(column string, fields []*StructField) *StructField {\n\tfor _, field := range fields {\n\t\tif field.Name == column || field.DBName == column || field.DBName == ToDBName(column) {\n\t\t\treturn field\n\t\t}\n\t}\n\treturn nil\n}\n\n// GetModelStruct get value's model struct, relationships based on struct and tag definition\nfunc (scope *Scope) GetModelStruct() *ModelStruct {\n\tvar modelStruct ModelStruct\n\t// Scope value can't be nil\n\tif scope.Value == nil {\n\t\treturn &modelStruct\n\t}\n\n\treflectType := reflect.ValueOf(scope.Value).Type()\n\tfor reflectType.Kind() == reflect.Slice || reflectType.Kind() == reflect.Ptr {\n\t\treflectType = reflectType.Elem()\n\t}\n\n\t// Scope value need to be a struct\n\tif reflectType.Kind() != reflect.Struct {\n\t\treturn &modelStruct\n\t}\n\n\t// Get Cached model struct\n\tif value := modelStructsMap.Get(reflectType); value != nil {\n\t\treturn value\n\t}\n\n\tmodelStruct.ModelType = reflectType\n\n\t// Get all fields\n\tfor i := 0; i < reflectType.NumField(); i++ {\n\t\tif fieldStruct := reflectType.Field(i); ast.IsExported(fieldStruct.Name) {\n\t\t\tfield := &StructField{\n\t\t\t\tStruct:      fieldStruct,\n\t\t\t\tName:        fieldStruct.Name,\n\t\t\t\tNames:       []string{fieldStruct.Name},\n\t\t\t\tTag:         fieldStruct.Tag,\n\t\t\t\tTagSettings: parseTagSetting(fieldStruct.Tag),\n\t\t\t}\n\n\t\t\t// is ignored field\n\t\t\tif _, ok := field.TagSettings[\"-\"]; ok {\n\t\t\t\tfield.IsIgnored = true\n\t\t\t} else {\n\t\t\t\tif _, ok := field.TagSettings[\"PRIMARY_KEY\"]; ok {\n\t\t\t\t\tfield.IsPrimaryKey = true\n\t\t\t\t\tmodelStruct.PrimaryFields = append(modelStruct.PrimaryFields, field)\n\t\t\t\t}\n\n\t\t\t\tif _, ok := field.TagSettings[\"DEFAULT\"]; ok {\n\t\t\t\t\tfield.HasDefaultValue = true\n\t\t\t\t}\n\n\t\t\t\tif _, ok := field.TagSettings[\"AUTO_INCREMENT\"]; ok && !field.IsPrimaryKey {\n\t\t\t\t\tfield.HasDefaultValue = true\n\t\t\t\t}\n\n\t\t\t\tindirectType := fieldStruct.Type\n\t\t\t\tfor indirectType.Kind() == reflect.Ptr {\n\t\t\t\t\tindirectType = indirectType.Elem()\n\t\t\t\t}\n\n\t\t\t\tfieldValue := reflect.New(indirectType).Interface()\n\t\t\t\tif _, isScanner := fieldValue.(sql.Scanner); isScanner {\n\t\t\t\t\t// is scanner\n\t\t\t\t\tfield.IsScanner, field.IsNormal = true, true\n\t\t\t\t\tif indirectType.Kind() == reflect.Struct {\n\t\t\t\t\t\tfor i := 0; i < indirectType.NumField(); i++ {\n\t\t\t\t\t\t\tfor key, value := range parseTagSetting(indirectType.Field(i).Tag) {\n\t\t\t\t\t\t\t\tif _, ok := field.TagSettings[key]; !ok {\n\t\t\t\t\t\t\t\t\tfield.TagSettings[key] = value\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if _, isTime := fieldValue.(*time.Time); isTime {\n\t\t\t\t\t// is time\n\t\t\t\t\tfield.IsNormal = true\n\t\t\t\t} else if _, ok := field.TagSettings[\"EMBEDDED\"]; ok || fieldStruct.Anonymous {\n\t\t\t\t\t// is embedded struct\n\t\t\t\t\tfor _, subField := range scope.New(fieldValue).GetModelStruct().StructFields {\n\t\t\t\t\t\tsubField = subField.clone()\n\t\t\t\t\t\tsubField.Names = append([]string{fieldStruct.Name}, subField.Names...)\n\t\t\t\t\t\tif prefix, ok := field.TagSettings[\"EMBEDDED_PREFIX\"]; ok {\n\t\t\t\t\t\t\tsubField.DBName = prefix + subField.DBName\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif subField.IsPrimaryKey {\n\t\t\t\t\t\t\tif _, ok := subField.TagSettings[\"PRIMARY_KEY\"]; ok {\n\t\t\t\t\t\t\t\tmodelStruct.PrimaryFields = append(modelStruct.PrimaryFields, subField)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsubField.IsPrimaryKey = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif subField.Relationship != nil && subField.Relationship.JoinTableHandler != nil {\n\t\t\t\t\t\t\tif joinTableHandler, ok := subField.Relationship.JoinTableHandler.(*JoinTableHandler); ok {\n\t\t\t\t\t\t\t\tnewJoinTableHandler := &JoinTableHandler{}\n\t\t\t\t\t\t\t\tnewJoinTableHandler.Setup(subField.Relationship, joinTableHandler.TableName, reflectType, joinTableHandler.Destination.ModelType)\n\t\t\t\t\t\t\t\tsubField.Relationship.JoinTableHandler = newJoinTableHandler\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmodelStruct.StructFields = append(modelStruct.StructFields, subField)\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\t// build relationships\n\t\t\t\t\tswitch indirectType.Kind() {\n\t\t\t\t\tcase reflect.Slice:\n\t\t\t\t\t\tdefer func(field *StructField) {\n\t\t\t\t\t\t\tvar (\n\t\t\t\t\t\t\t\trelationship           = &Relationship{}\n\t\t\t\t\t\t\t\ttoScope                = scope.New(reflect.New(field.Struct.Type).Interface())\n\t\t\t\t\t\t\t\tforeignKeys            []string\n\t\t\t\t\t\t\t\tassociationForeignKeys []string\n\t\t\t\t\t\t\t\telemType               = field.Struct.Type\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tif foreignKey := field.TagSettings[\"FOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\tforeignKeys = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif foreignKey := field.TagSettings[\"ASSOCIATION_FOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\tassociationForeignKeys = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t} else if foreignKey := field.TagSettings[\"ASSOCIATIONFOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\tassociationForeignKeys = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor elemType.Kind() == reflect.Slice || elemType.Kind() == reflect.Ptr {\n\t\t\t\t\t\t\t\telemType = elemType.Elem()\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif elemType.Kind() == reflect.Struct {\n\t\t\t\t\t\t\t\tif many2many := field.TagSettings[\"MANY2MANY\"]; many2many != \"\" {\n\t\t\t\t\t\t\t\t\trelationship.Kind = \"many_to_many\"\n\n\t\t\t\t\t\t\t\t\t{ // Foreign Keys for Source\n\t\t\t\t\t\t\t\t\t\tjoinTableDBNames := []string{}\n\n\t\t\t\t\t\t\t\t\t\tif foreignKey := field.TagSettings[\"JOINTABLE_FOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\t\t\t\tjoinTableDBNames = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// if no foreign keys defined with tag\n\t\t\t\t\t\t\t\t\t\tif len(foreignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\t\tfor _, field := range modelStruct.PrimaryFields {\n\t\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, field.DBName)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tfor idx, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(foreignKey, modelStruct.StructFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\t// source foreign keys (db names)\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignFieldNames = append(relationship.ForeignFieldNames, foreignField.DBName)\n\n\t\t\t\t\t\t\t\t\t\t\t\t// setup join table foreign keys for source\n\t\t\t\t\t\t\t\t\t\t\t\tif len(joinTableDBNames) > idx {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// if defined join table's foreign key\n\t\t\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignDBNames = append(relationship.ForeignDBNames, joinTableDBNames[idx])\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultJointableForeignKey := ToDBName(reflectType.Name()) + \"_\" + foreignField.DBName\n\t\t\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignDBNames = append(relationship.ForeignDBNames, defaultJointableForeignKey)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{ // Foreign Keys for Association (Destination)\n\t\t\t\t\t\t\t\t\t\tassociationJoinTableDBNames := []string{}\n\n\t\t\t\t\t\t\t\t\t\tif foreignKey := field.TagSettings[\"ASSOCIATION_JOINTABLE_FOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\t\t\t\tassociationJoinTableDBNames = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// if no association foreign keys defined with tag\n\t\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\t\tfor _, field := range toScope.PrimaryFields() {\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, field.DBName)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tfor idx, name := range associationForeignKeys {\n\t\t\t\t\t\t\t\t\t\t\tif field, ok := toScope.FieldByName(name); ok {\n\t\t\t\t\t\t\t\t\t\t\t\t// association foreign keys (db names)\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignFieldNames = append(relationship.AssociationForeignFieldNames, field.DBName)\n\n\t\t\t\t\t\t\t\t\t\t\t\t// setup join table foreign keys for association\n\t\t\t\t\t\t\t\t\t\t\t\tif len(associationJoinTableDBNames) > idx {\n\t\t\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignDBNames = append(relationship.AssociationForeignDBNames, associationJoinTableDBNames[idx])\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// join table foreign keys for association\n\t\t\t\t\t\t\t\t\t\t\t\t\tjoinTableDBName := ToDBName(elemType.Name()) + \"_\" + field.DBName\n\t\t\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignDBNames = append(relationship.AssociationForeignDBNames, joinTableDBName)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tjoinTableHandler := JoinTableHandler{}\n\t\t\t\t\t\t\t\t\tjoinTableHandler.Setup(relationship, many2many, reflectType, elemType)\n\t\t\t\t\t\t\t\t\trelationship.JoinTableHandler = &joinTableHandler\n\t\t\t\t\t\t\t\t\tfield.Relationship = relationship\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// User has many comments, associationType is User, comment use UserID as foreign key\n\t\t\t\t\t\t\t\t\tvar associationType = reflectType.Name()\n\t\t\t\t\t\t\t\t\tvar toFields = toScope.GetStructFields()\n\t\t\t\t\t\t\t\t\trelationship.Kind = \"has_many\"\n\n\t\t\t\t\t\t\t\t\tif polymorphic := field.TagSettings[\"POLYMORPHIC\"]; polymorphic != \"\" {\n\t\t\t\t\t\t\t\t\t\t// Dog has many toys, tag polymorphic is Owner, then associationType is Owner\n\t\t\t\t\t\t\t\t\t\t// Toy use OwnerID, OwnerType ('dogs') as foreign key\n\t\t\t\t\t\t\t\t\t\tif polymorphicType := getForeignField(polymorphic+\"Type\", toFields); polymorphicType != nil {\n\t\t\t\t\t\t\t\t\t\t\tassociationType = polymorphic\n\t\t\t\t\t\t\t\t\t\t\trelationship.PolymorphicType = polymorphicType.Name\n\t\t\t\t\t\t\t\t\t\t\trelationship.PolymorphicDBName = polymorphicType.DBName\n\t\t\t\t\t\t\t\t\t\t\t// if Dog has multiple set of toys set name of the set (instead of default 'dogs')\n\t\t\t\t\t\t\t\t\t\t\tif value, ok := field.TagSettings[\"POLYMORPHIC_VALUE\"]; ok {\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.PolymorphicValue = value\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.PolymorphicValue = scope.TableName()\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tpolymorphicType.IsForeignKey = true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// if no foreign keys defined with tag\n\t\t\t\t\t\t\t\t\tif len(foreignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\t// if no association foreign keys defined with tag\n\t\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\t\tfor _, field := range modelStruct.PrimaryFields {\n\t\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, associationType+field.Name)\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, field.Name)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t// generate foreign keys from defined association foreign keys\n\t\t\t\t\t\t\t\t\t\t\tfor _, scopeFieldName := range associationForeignKeys {\n\t\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(scopeFieldName, modelStruct.StructFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, associationType+foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// generate association foreign keys from foreign keys\n\t\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\t\tfor _, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\t\t\t\tif strings.HasPrefix(foreignKey, associationType) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKey := strings.TrimPrefix(foreignKey, associationType)\n\t\t\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(associationForeignKey, modelStruct.StructFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, associationForeignKey)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 && len(foreignKeys) == 1 {\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = []string{scope.PrimaryKey()}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else if len(foreignKeys) != len(associationForeignKeys) {\n\t\t\t\t\t\t\t\t\t\t\tscope.Err(errors.New(\"invalid foreign keys, should have same length\"))\n\t\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tfor idx, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(foreignKey, toFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\tif associationField := getForeignField(associationForeignKeys[idx], modelStruct.StructFields); associationField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\t// source foreign keys\n\t\t\t\t\t\t\t\t\t\t\t\tforeignField.IsForeignKey = true\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignFieldNames = append(relationship.AssociationForeignFieldNames, associationField.Name)\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignDBNames = append(relationship.AssociationForeignDBNames, associationField.DBName)\n\n\t\t\t\t\t\t\t\t\t\t\t\t// association foreign keys\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignFieldNames = append(relationship.ForeignFieldNames, foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignDBNames = append(relationship.ForeignDBNames, foreignField.DBName)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif len(relationship.ForeignFieldNames) != 0 {\n\t\t\t\t\t\t\t\t\t\tfield.Relationship = relationship\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfield.IsNormal = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(field)\n\t\t\t\t\tcase reflect.Struct:\n\t\t\t\t\t\tdefer func(field *StructField) {\n\t\t\t\t\t\t\tvar (\n\t\t\t\t\t\t\t\t// user has one profile, associationType is User, profile use UserID as foreign key\n\t\t\t\t\t\t\t\t// user belongs to profile, associationType is Profile, user use ProfileID as foreign key\n\t\t\t\t\t\t\t\tassociationType           = reflectType.Name()\n\t\t\t\t\t\t\t\trelationship              = &Relationship{}\n\t\t\t\t\t\t\t\ttoScope                   = scope.New(reflect.New(field.Struct.Type).Interface())\n\t\t\t\t\t\t\t\ttoFields                  = toScope.GetStructFields()\n\t\t\t\t\t\t\t\ttagForeignKeys            []string\n\t\t\t\t\t\t\t\ttagAssociationForeignKeys []string\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tif foreignKey := field.TagSettings[\"FOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\ttagForeignKeys = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif foreignKey := field.TagSettings[\"ASSOCIATION_FOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\ttagAssociationForeignKeys = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t} else if foreignKey := field.TagSettings[\"ASSOCIATIONFOREIGNKEY\"]; foreignKey != \"\" {\n\t\t\t\t\t\t\t\ttagAssociationForeignKeys = strings.Split(foreignKey, \",\")\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif polymorphic := field.TagSettings[\"POLYMORPHIC\"]; polymorphic != \"\" {\n\t\t\t\t\t\t\t\t// Cat has one toy, tag polymorphic is Owner, then associationType is Owner\n\t\t\t\t\t\t\t\t// Toy use OwnerID, OwnerType ('cats') as foreign key\n\t\t\t\t\t\t\t\tif polymorphicType := getForeignField(polymorphic+\"Type\", toFields); polymorphicType != nil {\n\t\t\t\t\t\t\t\t\tassociationType = polymorphic\n\t\t\t\t\t\t\t\t\trelationship.PolymorphicType = polymorphicType.Name\n\t\t\t\t\t\t\t\t\trelationship.PolymorphicDBName = polymorphicType.DBName\n\t\t\t\t\t\t\t\t\t// if Cat has several different types of toys set name for each (instead of default 'cats')\n\t\t\t\t\t\t\t\t\tif value, ok := field.TagSettings[\"POLYMORPHIC_VALUE\"]; ok {\n\t\t\t\t\t\t\t\t\t\trelationship.PolymorphicValue = value\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\trelationship.PolymorphicValue = scope.TableName()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tpolymorphicType.IsForeignKey = true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Has One\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvar foreignKeys = tagForeignKeys\n\t\t\t\t\t\t\t\tvar associationForeignKeys = tagAssociationForeignKeys\n\t\t\t\t\t\t\t\t// if no foreign keys defined with tag\n\t\t\t\t\t\t\t\tif len(foreignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t// if no association foreign keys defined with tag\n\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\tfor _, primaryField := range modelStruct.PrimaryFields {\n\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, associationType+primaryField.Name)\n\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, primaryField.Name)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// generate foreign keys form association foreign keys\n\t\t\t\t\t\t\t\t\t\tfor _, associationForeignKey := range tagAssociationForeignKeys {\n\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(associationForeignKey, modelStruct.StructFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, associationType+foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// generate association foreign keys from foreign keys\n\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\tfor _, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\t\t\tif strings.HasPrefix(foreignKey, associationType) {\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKey := strings.TrimPrefix(foreignKey, associationType)\n\t\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(associationForeignKey, modelStruct.StructFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, associationForeignKey)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 && len(foreignKeys) == 1 {\n\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = []string{scope.PrimaryKey()}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if len(foreignKeys) != len(associationForeignKeys) {\n\t\t\t\t\t\t\t\t\t\tscope.Err(errors.New(\"invalid foreign keys, should have same length\"))\n\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor idx, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(foreignKey, toFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\tif scopeField := getForeignField(associationForeignKeys[idx], modelStruct.StructFields); scopeField != nil {\n\t\t\t\t\t\t\t\t\t\t\tforeignField.IsForeignKey = true\n\t\t\t\t\t\t\t\t\t\t\t// source foreign keys\n\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignFieldNames = append(relationship.AssociationForeignFieldNames, scopeField.Name)\n\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignDBNames = append(relationship.AssociationForeignDBNames, scopeField.DBName)\n\n\t\t\t\t\t\t\t\t\t\t\t// association foreign keys\n\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignFieldNames = append(relationship.ForeignFieldNames, foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignDBNames = append(relationship.ForeignDBNames, foreignField.DBName)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif len(relationship.ForeignFieldNames) != 0 {\n\t\t\t\t\t\t\t\trelationship.Kind = \"has_one\"\n\t\t\t\t\t\t\t\tfield.Relationship = relationship\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar foreignKeys = tagForeignKeys\n\t\t\t\t\t\t\t\tvar associationForeignKeys = tagAssociationForeignKeys\n\n\t\t\t\t\t\t\t\tif len(foreignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t// generate foreign keys & association foreign keys\n\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\tfor _, primaryField := range toScope.PrimaryFields() {\n\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, field.Name+primaryField.Name)\n\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, primaryField.Name)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// generate foreign keys with association foreign keys\n\t\t\t\t\t\t\t\t\t\tfor _, associationForeignKey := range associationForeignKeys {\n\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(associationForeignKey, toFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\tforeignKeys = append(foreignKeys, field.Name+foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// generate foreign keys & association foreign keys\n\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 {\n\t\t\t\t\t\t\t\t\t\tfor _, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\t\t\tif strings.HasPrefix(foreignKey, field.Name) {\n\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKey := strings.TrimPrefix(foreignKey, field.Name)\n\t\t\t\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(associationForeignKey, toFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = append(associationForeignKeys, associationForeignKey)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif len(associationForeignKeys) == 0 && len(foreignKeys) == 1 {\n\t\t\t\t\t\t\t\t\t\t\tassociationForeignKeys = []string{toScope.PrimaryKey()}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if len(foreignKeys) != len(associationForeignKeys) {\n\t\t\t\t\t\t\t\t\t\tscope.Err(errors.New(\"invalid foreign keys, should have same length\"))\n\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor idx, foreignKey := range foreignKeys {\n\t\t\t\t\t\t\t\t\tif foreignField := getForeignField(foreignKey, modelStruct.StructFields); foreignField != nil {\n\t\t\t\t\t\t\t\t\t\tif associationField := getForeignField(associationForeignKeys[idx], toFields); associationField != nil {\n\t\t\t\t\t\t\t\t\t\t\tforeignField.IsForeignKey = true\n\n\t\t\t\t\t\t\t\t\t\t\t// association foreign keys\n\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignFieldNames = append(relationship.AssociationForeignFieldNames, associationField.Name)\n\t\t\t\t\t\t\t\t\t\t\trelationship.AssociationForeignDBNames = append(relationship.AssociationForeignDBNames, associationField.DBName)\n\n\t\t\t\t\t\t\t\t\t\t\t// source foreign keys\n\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignFieldNames = append(relationship.ForeignFieldNames, foreignField.Name)\n\t\t\t\t\t\t\t\t\t\t\trelationship.ForeignDBNames = append(relationship.ForeignDBNames, foreignField.DBName)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif len(relationship.ForeignFieldNames) != 0 {\n\t\t\t\t\t\t\t\t\trelationship.Kind = \"belongs_to\"\n\t\t\t\t\t\t\t\t\tfield.Relationship = relationship\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(field)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tfield.IsNormal = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Even it is ignored, also possible to decode db value into the field\n\t\t\tif value, ok := field.TagSettings[\"COLUMN\"]; ok {\n\t\t\t\tfield.DBName = value\n\t\t\t} else {\n\t\t\t\tfield.DBName = ToDBName(fieldStruct.Name)\n\t\t\t}\n\n\t\t\tmodelStruct.StructFields = append(modelStruct.StructFields, field)\n\t\t}\n\t}\n\n\tif len(modelStruct.PrimaryFields) == 0 {\n\t\tif field := getForeignField(\"id\", modelStruct.StructFields); field != nil {\n\t\t\tfield.IsPrimaryKey = true\n\t\t\tmodelStruct.PrimaryFields = append(modelStruct.PrimaryFields, field)\n\t\t}\n\t}\n\n\tmodelStructsMap.Set(reflectType, &modelStruct)\n\n\treturn &modelStruct\n}\n\n// GetStructFields get model's field structs\nfunc (scope *Scope) GetStructFields() (fields []*StructField) {\n\treturn scope.GetModelStruct().StructFields\n}\n\nfunc parseTagSetting(tags reflect.StructTag) map[string]string {\n\tsetting := map[string]string{}\n\tfor _, str := range []string{tags.Get(\"sql\"), tags.Get(\"gorm\")} {\n\t\ttags := strings.Split(str, \";\")\n\t\tfor _, value := range tags {\n\t\t\tv := strings.Split(value, \":\")\n\t\t\tk := strings.TrimSpace(strings.ToUpper(v[0]))\n\t\t\tif len(v) >= 2 {\n\t\t\t\tsetting[k] = strings.Join(v[1:], \":\")\n\t\t\t} else {\n\t\t\t\tsetting[k] = k\n\t\t\t}\n\t\t}\n\t}\n\treturn setting\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/scope.go",
    "content": "package gorm\n\nimport (\n\t\"bytes\"\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Scope contain current operation's information when you perform any operation on the database\ntype Scope struct {\n\tSearch          *search\n\tValue           interface{}\n\tSQL             string\n\tSQLVars         []interface{}\n\tdb              *DB\n\tinstanceID      string\n\tprimaryKeyField *Field\n\tskipLeft        bool\n\tfields          *[]*Field\n\tselectAttrs     *[]string\n}\n\n// IndirectValue return scope's reflect value's indirect value\nfunc (scope *Scope) IndirectValue() reflect.Value {\n\treturn indirect(reflect.ValueOf(scope.Value))\n}\n\n// New create a new Scope without search information\nfunc (scope *Scope) New(value interface{}) *Scope {\n\treturn &Scope{db: scope.NewDB(), Search: &search{}, Value: value}\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Scope DB\n////////////////////////////////////////////////////////////////////////////////\n\n// DB return scope's DB connection\nfunc (scope *Scope) DB() *DB {\n\treturn scope.db\n}\n\n// NewDB create a new DB without search information\nfunc (scope *Scope) NewDB() *DB {\n\tif scope.db != nil {\n\t\tdb := scope.db.clone()\n\t\tdb.search = nil\n\t\tdb.Value = nil\n\t\treturn db\n\t}\n\treturn nil\n}\n\n// SQLDB return *sql.DB\nfunc (scope *Scope) SQLDB() SQLCommon {\n\treturn scope.db.db\n}\n\n// Dialect get dialect\nfunc (scope *Scope) Dialect() Dialect {\n\treturn scope.db.parent.dialect\n}\n\n// Quote used to quote string to escape them for database\nfunc (scope *Scope) Quote(str string) string {\n\tif strings.Index(str, \".\") != -1 {\n\t\tnewStrs := []string{}\n\t\tfor _, str := range strings.Split(str, \".\") {\n\t\t\tnewStrs = append(newStrs, scope.Dialect().Quote(str))\n\t\t}\n\t\treturn strings.Join(newStrs, \".\")\n\t}\n\n\treturn scope.Dialect().Quote(str)\n}\n\n// Err add error to Scope\nfunc (scope *Scope) Err(err error) error {\n\tif err != nil {\n\t\tscope.db.AddError(err)\n\t}\n\treturn err\n}\n\n// HasError check if there are any error\nfunc (scope *Scope) HasError() bool {\n\treturn scope.db.Error != nil\n}\n\n// Log print log message\nfunc (scope *Scope) Log(v ...interface{}) {\n\tscope.db.log(v...)\n}\n\n// SkipLeft skip remaining callbacks\nfunc (scope *Scope) SkipLeft() {\n\tscope.skipLeft = true\n}\n\n// Fields get value's fields\nfunc (scope *Scope) Fields() []*Field {\n\tif scope.fields == nil {\n\t\tvar (\n\t\t\tfields             []*Field\n\t\t\tindirectScopeValue = scope.IndirectValue()\n\t\t\tisStruct           = indirectScopeValue.Kind() == reflect.Struct\n\t\t)\n\n\t\tfor _, structField := range scope.GetModelStruct().StructFields {\n\t\t\tif isStruct {\n\t\t\t\tfieldValue := indirectScopeValue\n\t\t\t\tfor _, name := range structField.Names {\n\t\t\t\t\tif fieldValue.Kind() == reflect.Ptr && fieldValue.IsNil() {\n\t\t\t\t\t\tfieldValue.Set(reflect.New(fieldValue.Type().Elem()))\n\t\t\t\t\t}\n\t\t\t\t\tfieldValue = reflect.Indirect(fieldValue).FieldByName(name)\n\t\t\t\t}\n\t\t\t\tfields = append(fields, &Field{StructField: structField, Field: fieldValue, IsBlank: isBlank(fieldValue)})\n\t\t\t} else {\n\t\t\t\tfields = append(fields, &Field{StructField: structField, IsBlank: true})\n\t\t\t}\n\t\t}\n\t\tscope.fields = &fields\n\t}\n\n\treturn *scope.fields\n}\n\n// FieldByName find `gorm.Field` with field name or db name\nfunc (scope *Scope) FieldByName(name string) (field *Field, ok bool) {\n\tvar (\n\t\tdbName           = ToDBName(name)\n\t\tmostMatchedField *Field\n\t)\n\n\tfor _, field := range scope.Fields() {\n\t\tif field.Name == name || field.DBName == name {\n\t\t\treturn field, true\n\t\t}\n\t\tif field.DBName == dbName {\n\t\t\tmostMatchedField = field\n\t\t}\n\t}\n\treturn mostMatchedField, mostMatchedField != nil\n}\n\n// PrimaryFields return scope's primary fields\nfunc (scope *Scope) PrimaryFields() (fields []*Field) {\n\tfor _, field := range scope.Fields() {\n\t\tif field.IsPrimaryKey {\n\t\t\tfields = append(fields, field)\n\t\t}\n\t}\n\treturn fields\n}\n\n// PrimaryField return scope's main primary field, if defined more that one primary fields, will return the one having column name `id` or the first one\nfunc (scope *Scope) PrimaryField() *Field {\n\tif primaryFields := scope.GetModelStruct().PrimaryFields; len(primaryFields) > 0 {\n\t\tif len(primaryFields) > 1 {\n\t\t\tif field, ok := scope.FieldByName(\"id\"); ok {\n\t\t\t\treturn field\n\t\t\t}\n\t\t}\n\t\treturn scope.PrimaryFields()[0]\n\t}\n\treturn nil\n}\n\n// PrimaryKey get main primary field's db name\nfunc (scope *Scope) PrimaryKey() string {\n\tif field := scope.PrimaryField(); field != nil {\n\t\treturn field.DBName\n\t}\n\treturn \"\"\n}\n\n// PrimaryKeyZero check main primary field's value is blank or not\nfunc (scope *Scope) PrimaryKeyZero() bool {\n\tfield := scope.PrimaryField()\n\treturn field == nil || field.IsBlank\n}\n\n// PrimaryKeyValue get the primary key's value\nfunc (scope *Scope) PrimaryKeyValue() interface{} {\n\tif field := scope.PrimaryField(); field != nil && field.Field.IsValid() {\n\t\treturn field.Field.Interface()\n\t}\n\treturn 0\n}\n\n// HasColumn to check if has column\nfunc (scope *Scope) HasColumn(column string) bool {\n\tfor _, field := range scope.GetStructFields() {\n\t\tif field.IsNormal && (field.Name == column || field.DBName == column) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// SetColumn to set the column's value, column could be field or field's name/dbname\nfunc (scope *Scope) SetColumn(column interface{}, value interface{}) error {\n\tvar updateAttrs = map[string]interface{}{}\n\tif attrs, ok := scope.InstanceGet(\"gorm:update_attrs\"); ok {\n\t\tupdateAttrs = attrs.(map[string]interface{})\n\t\tdefer scope.InstanceSet(\"gorm:update_attrs\", updateAttrs)\n\t}\n\n\tif field, ok := column.(*Field); ok {\n\t\tupdateAttrs[field.DBName] = value\n\t\treturn field.Set(value)\n\t} else if name, ok := column.(string); ok {\n\t\tvar (\n\t\t\tdbName           = ToDBName(name)\n\t\t\tmostMatchedField *Field\n\t\t)\n\t\tfor _, field := range scope.Fields() {\n\t\t\tif field.DBName == value {\n\t\t\t\tupdateAttrs[field.DBName] = value\n\t\t\t\treturn field.Set(value)\n\t\t\t}\n\t\t\tif (field.DBName == dbName) || (field.Name == name && mostMatchedField == nil) {\n\t\t\t\tmostMatchedField = field\n\t\t\t}\n\t\t}\n\n\t\tif mostMatchedField != nil {\n\t\t\tupdateAttrs[mostMatchedField.DBName] = value\n\t\t\treturn mostMatchedField.Set(value)\n\t\t}\n\t}\n\treturn errors.New(\"could not convert column to field\")\n}\n\n// CallMethod call scope value's method, if it is a slice, will call its element's method one by one\nfunc (scope *Scope) CallMethod(methodName string) {\n\tif scope.Value == nil {\n\t\treturn\n\t}\n\n\tif indirectScopeValue := scope.IndirectValue(); indirectScopeValue.Kind() == reflect.Slice {\n\t\tfor i := 0; i < indirectScopeValue.Len(); i++ {\n\t\t\tscope.callMethod(methodName, indirectScopeValue.Index(i))\n\t\t}\n\t} else {\n\t\tscope.callMethod(methodName, indirectScopeValue)\n\t}\n}\n\n// AddToVars add value as sql's vars, used to prevent SQL injection\nfunc (scope *Scope) AddToVars(value interface{}) string {\n\t_, skipBindVar := scope.InstanceGet(\"skip_bindvar\")\n\n\tif expr, ok := value.(*expr); ok {\n\t\texp := expr.expr\n\t\tfor _, arg := range expr.args {\n\t\t\tif skipBindVar {\n\t\t\t\tscope.AddToVars(arg)\n\t\t\t} else {\n\t\t\t\texp = strings.Replace(exp, \"?\", scope.AddToVars(arg), 1)\n\t\t\t}\n\t\t}\n\t\treturn exp\n\t}\n\n\tscope.SQLVars = append(scope.SQLVars, value)\n\n\tif skipBindVar {\n\t\treturn \"?\"\n\t}\n\treturn scope.Dialect().BindVar(len(scope.SQLVars))\n}\n\n// SelectAttrs return selected attributes\nfunc (scope *Scope) SelectAttrs() []string {\n\tif scope.selectAttrs == nil {\n\t\tattrs := []string{}\n\t\tfor _, value := range scope.Search.selects {\n\t\t\tif str, ok := value.(string); ok {\n\t\t\t\tattrs = append(attrs, str)\n\t\t\t} else if strs, ok := value.([]string); ok {\n\t\t\t\tattrs = append(attrs, strs...)\n\t\t\t} else if strs, ok := value.([]interface{}); ok {\n\t\t\t\tfor _, str := range strs {\n\t\t\t\t\tattrs = append(attrs, fmt.Sprintf(\"%v\", str))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tscope.selectAttrs = &attrs\n\t}\n\treturn *scope.selectAttrs\n}\n\n// OmitAttrs return omitted attributes\nfunc (scope *Scope) OmitAttrs() []string {\n\treturn scope.Search.omits\n}\n\ntype tabler interface {\n\tTableName() string\n}\n\ntype dbTabler interface {\n\tTableName(*DB) string\n}\n\n// TableName return table name\nfunc (scope *Scope) TableName() string {\n\tif scope.Search != nil && len(scope.Search.tableName) > 0 {\n\t\treturn scope.Search.tableName\n\t}\n\n\tif tabler, ok := scope.Value.(tabler); ok {\n\t\treturn tabler.TableName()\n\t}\n\n\tif tabler, ok := scope.Value.(dbTabler); ok {\n\t\treturn tabler.TableName(scope.db)\n\t}\n\n\treturn scope.GetModelStruct().TableName(scope.db.Model(scope.Value))\n}\n\n// QuotedTableName return quoted table name\nfunc (scope *Scope) QuotedTableName() (name string) {\n\tif scope.Search != nil && len(scope.Search.tableName) > 0 {\n\t\tif strings.Index(scope.Search.tableName, \" \") != -1 {\n\t\t\treturn scope.Search.tableName\n\t\t}\n\t\treturn scope.Quote(scope.Search.tableName)\n\t}\n\n\treturn scope.Quote(scope.TableName())\n}\n\n// CombinedConditionSql return combined condition sql\nfunc (scope *Scope) CombinedConditionSql() string {\n\tjoinSQL := scope.joinsSQL()\n\twhereSQL := scope.whereSQL()\n\tif scope.Search.raw {\n\t\twhereSQL = strings.TrimSuffix(strings.TrimPrefix(whereSQL, \"WHERE (\"), \")\")\n\t}\n\treturn joinSQL + whereSQL + scope.groupSQL() +\n\t\tscope.havingSQL() + scope.orderSQL() + scope.limitAndOffsetSQL()\n}\n\n// Raw set raw sql\nfunc (scope *Scope) Raw(sql string) *Scope {\n\tscope.SQL = strings.Replace(sql, \"$$$\", \"?\", -1)\n\treturn scope\n}\n\n// Exec perform generated SQL\nfunc (scope *Scope) Exec() *Scope {\n\tdefer scope.trace(NowFunc())\n\n\tif !scope.HasError() {\n\t\tif result, err := scope.SQLDB().Exec(scope.SQL, scope.SQLVars...); scope.Err(err) == nil {\n\t\t\tif count, err := result.RowsAffected(); scope.Err(err) == nil {\n\t\t\t\tscope.db.RowsAffected = count\n\t\t\t}\n\t\t}\n\t}\n\treturn scope\n}\n\n// Set set value by name\nfunc (scope *Scope) Set(name string, value interface{}) *Scope {\n\tscope.db.InstantSet(name, value)\n\treturn scope\n}\n\n// Get get setting by name\nfunc (scope *Scope) Get(name string) (interface{}, bool) {\n\treturn scope.db.Get(name)\n}\n\n// InstanceID get InstanceID for scope\nfunc (scope *Scope) InstanceID() string {\n\tif scope.instanceID == \"\" {\n\t\tscope.instanceID = fmt.Sprintf(\"%v%v\", &scope, &scope.db)\n\t}\n\treturn scope.instanceID\n}\n\n// InstanceSet set instance setting for current operation, but not for operations in callbacks, like saving associations callback\nfunc (scope *Scope) InstanceSet(name string, value interface{}) *Scope {\n\treturn scope.Set(name+scope.InstanceID(), value)\n}\n\n// InstanceGet get instance setting from current operation\nfunc (scope *Scope) InstanceGet(name string) (interface{}, bool) {\n\treturn scope.Get(name + scope.InstanceID())\n}\n\n// Begin start a transaction\nfunc (scope *Scope) Begin() *Scope {\n\tif db, ok := scope.SQLDB().(sqlDb); ok {\n\t\tif tx, err := db.Begin(); err == nil {\n\t\t\tscope.db.db = interface{}(tx).(SQLCommon)\n\t\t\tscope.InstanceSet(\"gorm:started_transaction\", true)\n\t\t}\n\t}\n\treturn scope\n}\n\n// CommitOrRollback commit current transaction if no error happened, otherwise will rollback it\nfunc (scope *Scope) CommitOrRollback() *Scope {\n\tif _, ok := scope.InstanceGet(\"gorm:started_transaction\"); ok {\n\t\tif db, ok := scope.db.db.(sqlTx); ok {\n\t\t\tif scope.HasError() {\n\t\t\t\tdb.Rollback()\n\t\t\t} else {\n\t\t\t\tscope.Err(db.Commit())\n\t\t\t}\n\t\t\tscope.db.db = scope.db.parent.db\n\t\t}\n\t}\n\treturn scope\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Private Methods For *gorm.Scope\n////////////////////////////////////////////////////////////////////////////////\n\nfunc (scope *Scope) callMethod(methodName string, reflectValue reflect.Value) {\n\t// Only get address from non-pointer\n\tif reflectValue.CanAddr() && reflectValue.Kind() != reflect.Ptr {\n\t\treflectValue = reflectValue.Addr()\n\t}\n\n\tif methodValue := reflectValue.MethodByName(methodName); methodValue.IsValid() {\n\t\tswitch method := methodValue.Interface().(type) {\n\t\tcase func():\n\t\t\tmethod()\n\t\tcase func(*Scope):\n\t\t\tmethod(scope)\n\t\tcase func(*DB):\n\t\t\tnewDB := scope.NewDB()\n\t\t\tmethod(newDB)\n\t\t\tscope.Err(newDB.Error)\n\t\tcase func() error:\n\t\t\tscope.Err(method())\n\t\tcase func(*Scope) error:\n\t\t\tscope.Err(method(scope))\n\t\tcase func(*DB) error:\n\t\t\tnewDB := scope.NewDB()\n\t\t\tscope.Err(method(newDB))\n\t\t\tscope.Err(newDB.Error)\n\t\tdefault:\n\t\t\tscope.Err(fmt.Errorf(\"unsupported function %v\", methodName))\n\t\t}\n\t}\n}\n\nvar (\n\tcolumnRegexp        = regexp.MustCompile(\"^[a-zA-Z\\\\d]+(\\\\.[a-zA-Z\\\\d]+)*$\") // only match string like `name`, `users.name`\n\tisNumberRegexp      = regexp.MustCompile(\"^\\\\s*\\\\d+\\\\s*$\")                   // match if string is number\n\tcomparisonRegexp    = regexp.MustCompile(\"(?i) (=|<>|(>|<)(=?)|LIKE|IS|IN) \")\n\tcountingQueryRegexp = regexp.MustCompile(\"(?i)^count(.+)$\")\n)\n\nfunc (scope *Scope) quoteIfPossible(str string) string {\n\tif columnRegexp.MatchString(str) {\n\t\treturn scope.Quote(str)\n\t}\n\treturn str\n}\n\nfunc (scope *Scope) scan(rows *sql.Rows, columns []string, fields []*Field) {\n\tvar (\n\t\tignored            interface{}\n\t\tvalues             = make([]interface{}, len(columns))\n\t\tselectFields       []*Field\n\t\tselectedColumnsMap = map[string]int{}\n\t\tresetFields        = map[int]*Field{}\n\t)\n\n\tfor index, column := range columns {\n\t\tvalues[index] = &ignored\n\n\t\tselectFields = fields\n\t\tif idx, ok := selectedColumnsMap[column]; ok {\n\t\t\tselectFields = selectFields[idx+1:]\n\t\t}\n\n\t\tfor fieldIndex, field := range selectFields {\n\t\t\tif field.DBName == column {\n\t\t\t\tif field.Field.Kind() == reflect.Ptr {\n\t\t\t\t\tvalues[index] = field.Field.Addr().Interface()\n\t\t\t\t} else {\n\t\t\t\t\treflectValue := reflect.New(reflect.PtrTo(field.Struct.Type))\n\t\t\t\t\treflectValue.Elem().Set(field.Field.Addr())\n\t\t\t\t\tvalues[index] = reflectValue.Interface()\n\t\t\t\t\tresetFields[index] = field\n\t\t\t\t}\n\n\t\t\t\tselectedColumnsMap[column] = fieldIndex\n\n\t\t\t\tif field.IsNormal {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tscope.Err(rows.Scan(values...))\n\n\tfor index, field := range resetFields {\n\t\tif v := reflect.ValueOf(values[index]).Elem().Elem(); v.IsValid() {\n\t\t\tfield.Field.Set(v)\n\t\t}\n\t}\n}\n\nfunc (scope *Scope) primaryCondition(value interface{}) string {\n\treturn fmt.Sprintf(\"(%v.%v = %v)\", scope.QuotedTableName(), scope.Quote(scope.PrimaryKey()), value)\n}\n\nfunc (scope *Scope) buildCondition(clause map[string]interface{}, include bool) (str string) {\n\tvar (\n\t\tquotedTableName  = scope.QuotedTableName()\n\t\tquotedPrimaryKey = scope.Quote(scope.PrimaryKey())\n\t\tequalSQL         = \"=\"\n\t\tinSQL            = \"IN\"\n\t)\n\n\t// If building not conditions\n\tif !include {\n\t\tequalSQL = \"<>\"\n\t\tinSQL = \"NOT IN\"\n\t}\n\n\tswitch value := clause[\"query\"].(type) {\n\tcase sql.NullInt64:\n\t\treturn fmt.Sprintf(\"(%v.%v %s %v)\", quotedTableName, quotedPrimaryKey, equalSQL, value.Int64)\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\treturn fmt.Sprintf(\"(%v.%v %s %v)\", quotedTableName, quotedPrimaryKey, equalSQL, value)\n\tcase []int, []int8, []int16, []int32, []int64, []uint, []uint8, []uint16, []uint32, []uint64, []string, []interface{}:\n\t\tif !include && reflect.ValueOf(value).Len() == 0 {\n\t\t\treturn\n\t\t}\n\t\tstr = fmt.Sprintf(\"(%v.%v %s (?))\", quotedTableName, quotedPrimaryKey, inSQL)\n\t\tclause[\"args\"] = []interface{}{value}\n\tcase string:\n\t\tif isNumberRegexp.MatchString(value) {\n\t\t\treturn fmt.Sprintf(\"(%v.%v %s %v)\", quotedTableName, quotedPrimaryKey, equalSQL, scope.AddToVars(value))\n\t\t}\n\n\t\tif value != \"\" {\n\t\t\tif !include {\n\t\t\t\tif comparisonRegexp.MatchString(value) {\n\t\t\t\t\tstr = fmt.Sprintf(\"NOT (%v)\", value)\n\t\t\t\t} else {\n\t\t\t\t\tstr = fmt.Sprintf(\"(%v.%v NOT IN (?))\", quotedTableName, scope.Quote(value))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstr = fmt.Sprintf(\"(%v)\", value)\n\t\t\t}\n\t\t}\n\tcase map[string]interface{}:\n\t\tvar sqls []string\n\t\tfor key, value := range value {\n\t\t\tif value != nil {\n\t\t\t\tsqls = append(sqls, fmt.Sprintf(\"(%v.%v %s %v)\", quotedTableName, scope.Quote(key), equalSQL, scope.AddToVars(value)))\n\t\t\t} else {\n\t\t\t\tif !include {\n\t\t\t\t\tsqls = append(sqls, fmt.Sprintf(\"(%v.%v IS NOT NULL)\", quotedTableName, scope.Quote(key)))\n\t\t\t\t} else {\n\t\t\t\t\tsqls = append(sqls, fmt.Sprintf(\"(%v.%v IS NULL)\", quotedTableName, scope.Quote(key)))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn strings.Join(sqls, \" AND \")\n\tcase interface{}:\n\t\tvar sqls []string\n\t\tnewScope := scope.New(value)\n\n\t\tif len(newScope.Fields()) == 0 {\n\t\t\tscope.Err(fmt.Errorf(\"invalid query condition: %v\", value))\n\t\t\treturn\n\t\t}\n\n\t\tfor _, field := range newScope.Fields() {\n\t\t\tif !field.IsIgnored && !field.IsBlank {\n\t\t\t\tsqls = append(sqls, fmt.Sprintf(\"(%v.%v %s %v)\", quotedTableName, scope.Quote(field.DBName), equalSQL, scope.AddToVars(field.Field.Interface())))\n\t\t\t}\n\t\t}\n\t\treturn strings.Join(sqls, \" AND \")\n\tdefault:\n\t\tscope.Err(fmt.Errorf(\"invalid query condition: %v\", value))\n\t\treturn\n\t}\n\n\treplacements := []string{}\n\targs := clause[\"args\"].([]interface{})\n\tfor _, arg := range args {\n\t\tvar err error\n\t\tswitch reflect.ValueOf(arg).Kind() {\n\t\tcase reflect.Slice: // For where(\"id in (?)\", []int64{1,2})\n\t\t\tif scanner, ok := interface{}(arg).(driver.Valuer); ok {\n\t\t\t\targ, err = scanner.Value()\n\t\t\t\treplacements = append(replacements, scope.AddToVars(arg))\n\t\t\t} else if b, ok := arg.([]byte); ok {\n\t\t\t\treplacements = append(replacements, scope.AddToVars(b))\n\t\t\t} else if as, ok := arg.([][]interface{}); ok {\n\t\t\t\tvar tempMarks []string\n\t\t\t\tfor _, a := range as {\n\t\t\t\t\tvar arrayMarks []string\n\t\t\t\t\tfor _, v := range a {\n\t\t\t\t\t\tarrayMarks = append(arrayMarks, scope.AddToVars(v))\n\t\t\t\t\t}\n\n\t\t\t\t\tif len(arrayMarks) > 0 {\n\t\t\t\t\t\ttempMarks = append(tempMarks, fmt.Sprintf(\"(%v)\", strings.Join(arrayMarks, \",\")))\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif len(tempMarks) > 0 {\n\t\t\t\t\treplacements = append(replacements, strings.Join(tempMarks, \",\"))\n\t\t\t\t}\n\t\t\t} else if values := reflect.ValueOf(arg); values.Len() > 0 {\n\t\t\t\tvar tempMarks []string\n\t\t\t\tfor i := 0; i < values.Len(); i++ {\n\t\t\t\t\ttempMarks = append(tempMarks, scope.AddToVars(values.Index(i).Interface()))\n\t\t\t\t}\n\t\t\t\treplacements = append(replacements, strings.Join(tempMarks, \",\"))\n\t\t\t} else {\n\t\t\t\treplacements = append(replacements, scope.AddToVars(Expr(\"NULL\")))\n\t\t\t}\n\t\tdefault:\n\t\t\tif valuer, ok := interface{}(arg).(driver.Valuer); ok {\n\t\t\t\targ, err = valuer.Value()\n\t\t\t}\n\n\t\t\treplacements = append(replacements, scope.AddToVars(arg))\n\t\t}\n\n\t\tif err != nil {\n\t\t\tscope.Err(err)\n\t\t}\n\t}\n\n\tbuff := bytes.NewBuffer([]byte{})\n\ti := 0\n\tfor _, s := range str {\n\t\tif s == '?' {\n\t\t\tbuff.WriteString(replacements[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tbuff.WriteRune(s)\n\t\t}\n\t}\n\n\tstr = buff.String()\n\n\treturn\n}\n\nfunc (scope *Scope) buildSelectQuery(clause map[string]interface{}) (str string) {\n\tswitch value := clause[\"query\"].(type) {\n\tcase string:\n\t\tstr = value\n\tcase []string:\n\t\tstr = strings.Join(value, \", \")\n\t}\n\n\targs := clause[\"args\"].([]interface{})\n\treplacements := []string{}\n\tfor _, arg := range args {\n\t\tswitch reflect.ValueOf(arg).Kind() {\n\t\tcase reflect.Slice:\n\t\t\tvalues := reflect.ValueOf(arg)\n\t\t\tvar tempMarks []string\n\t\t\tfor i := 0; i < values.Len(); i++ {\n\t\t\t\ttempMarks = append(tempMarks, scope.AddToVars(values.Index(i).Interface()))\n\t\t\t}\n\t\t\treplacements = append(replacements, strings.Join(tempMarks, \",\"))\n\t\tdefault:\n\t\t\tif valuer, ok := interface{}(arg).(driver.Valuer); ok {\n\t\t\t\targ, _ = valuer.Value()\n\t\t\t}\n\t\t\treplacements = append(replacements, scope.AddToVars(arg))\n\t\t}\n\t}\n\n\tbuff := bytes.NewBuffer([]byte{})\n\ti := 0\n\tfor pos := range str {\n\t\tif str[pos] == '?' {\n\t\t\tbuff.WriteString(replacements[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tbuff.WriteByte(str[pos])\n\t\t}\n\t}\n\n\tstr = buff.String()\n\n\treturn\n}\n\nfunc (scope *Scope) whereSQL() (sql string) {\n\tvar (\n\t\tquotedTableName                                = scope.QuotedTableName()\n\t\tdeletedAtField, hasDeletedAtField              = scope.FieldByName(\"DeletedAt\")\n\t\tprimaryConditions, andConditions, orConditions []string\n\t)\n\n\tif !scope.Search.Unscoped && hasDeletedAtField {\n\t\tsql := fmt.Sprintf(\"%v.%v IS NULL\", quotedTableName, scope.Quote(deletedAtField.DBName))\n\t\tprimaryConditions = append(primaryConditions, sql)\n\t}\n\n\tif !scope.PrimaryKeyZero() {\n\t\tfor _, field := range scope.PrimaryFields() {\n\t\t\tsql := fmt.Sprintf(\"%v.%v = %v\", quotedTableName, scope.Quote(field.DBName), scope.AddToVars(field.Field.Interface()))\n\t\t\tprimaryConditions = append(primaryConditions, sql)\n\t\t}\n\t}\n\n\tfor _, clause := range scope.Search.whereConditions {\n\t\tif sql := scope.buildCondition(clause, true); sql != \"\" {\n\t\t\tandConditions = append(andConditions, sql)\n\t\t}\n\t}\n\n\tfor _, clause := range scope.Search.orConditions {\n\t\tif sql := scope.buildCondition(clause, true); sql != \"\" {\n\t\t\torConditions = append(orConditions, sql)\n\t\t}\n\t}\n\n\tfor _, clause := range scope.Search.notConditions {\n\t\tif sql := scope.buildCondition(clause, false); sql != \"\" {\n\t\t\tandConditions = append(andConditions, sql)\n\t\t}\n\t}\n\n\torSQL := strings.Join(orConditions, \" OR \")\n\tcombinedSQL := strings.Join(andConditions, \" AND \")\n\tif len(combinedSQL) > 0 {\n\t\tif len(orSQL) > 0 {\n\t\t\tcombinedSQL = combinedSQL + \" OR \" + orSQL\n\t\t}\n\t} else {\n\t\tcombinedSQL = orSQL\n\t}\n\n\tif len(primaryConditions) > 0 {\n\t\tsql = \"WHERE \" + strings.Join(primaryConditions, \" AND \")\n\t\tif len(combinedSQL) > 0 {\n\t\t\tsql = sql + \" AND (\" + combinedSQL + \")\"\n\t\t}\n\t} else if len(combinedSQL) > 0 {\n\t\tsql = \"WHERE \" + combinedSQL\n\t}\n\treturn\n}\n\nfunc (scope *Scope) selectSQL() string {\n\tif len(scope.Search.selects) == 0 {\n\t\tif len(scope.Search.joinConditions) > 0 {\n\t\t\treturn fmt.Sprintf(\"%v.*\", scope.QuotedTableName())\n\t\t}\n\t\treturn \"*\"\n\t}\n\treturn scope.buildSelectQuery(scope.Search.selects)\n}\n\nfunc (scope *Scope) orderSQL() string {\n\tif len(scope.Search.orders) == 0 || scope.Search.ignoreOrderQuery {\n\t\treturn \"\"\n\t}\n\n\tvar orders []string\n\tfor _, order := range scope.Search.orders {\n\t\tif str, ok := order.(string); ok {\n\t\t\torders = append(orders, scope.quoteIfPossible(str))\n\t\t} else if expr, ok := order.(*expr); ok {\n\t\t\texp := expr.expr\n\t\t\tfor _, arg := range expr.args {\n\t\t\t\texp = strings.Replace(exp, \"?\", scope.AddToVars(arg), 1)\n\t\t\t}\n\t\t\torders = append(orders, exp)\n\t\t}\n\t}\n\treturn \" ORDER BY \" + strings.Join(orders, \",\")\n}\n\nfunc (scope *Scope) limitAndOffsetSQL() string {\n\treturn scope.Dialect().LimitAndOffsetSQL(scope.Search.limit, scope.Search.offset)\n}\n\nfunc (scope *Scope) groupSQL() string {\n\tif len(scope.Search.group) == 0 {\n\t\treturn \"\"\n\t}\n\treturn \" GROUP BY \" + scope.Search.group\n}\n\nfunc (scope *Scope) havingSQL() string {\n\tif len(scope.Search.havingConditions) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar andConditions []string\n\tfor _, clause := range scope.Search.havingConditions {\n\t\tif sql := scope.buildCondition(clause, true); sql != \"\" {\n\t\t\tandConditions = append(andConditions, sql)\n\t\t}\n\t}\n\n\tcombinedSQL := strings.Join(andConditions, \" AND \")\n\tif len(combinedSQL) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn \" HAVING \" + combinedSQL\n}\n\nfunc (scope *Scope) joinsSQL() string {\n\tvar joinConditions []string\n\tfor _, clause := range scope.Search.joinConditions {\n\t\tif sql := scope.buildCondition(clause, true); sql != \"\" {\n\t\t\tjoinConditions = append(joinConditions, strings.TrimSuffix(strings.TrimPrefix(sql, \"(\"), \")\"))\n\t\t}\n\t}\n\n\treturn strings.Join(joinConditions, \" \") + \" \"\n}\n\nfunc (scope *Scope) prepareQuerySQL() {\n\tif scope.Search.raw {\n\t\tscope.Raw(scope.CombinedConditionSql())\n\t} else {\n\t\tscope.Raw(fmt.Sprintf(\"SELECT %v FROM %v %v\", scope.selectSQL(), scope.QuotedTableName(), scope.CombinedConditionSql()))\n\t}\n\treturn\n}\n\nfunc (scope *Scope) inlineCondition(values ...interface{}) *Scope {\n\tif len(values) > 0 {\n\t\tscope.Search.Where(values[0], values[1:]...)\n\t}\n\treturn scope\n}\n\nfunc (scope *Scope) callCallbacks(funcs []*func(s *Scope)) *Scope {\n\tfor _, f := range funcs {\n\t\t(*f)(scope)\n\t\tif scope.skipLeft {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn scope\n}\n\nfunc convertInterfaceToMap(values interface{}, withIgnoredField bool) map[string]interface{} {\n\tvar attrs = map[string]interface{}{}\n\n\tswitch value := values.(type) {\n\tcase map[string]interface{}:\n\t\treturn value\n\tcase []interface{}:\n\t\tfor _, v := range value {\n\t\t\tfor key, value := range convertInterfaceToMap(v, withIgnoredField) {\n\t\t\t\tattrs[key] = value\n\t\t\t}\n\t\t}\n\tcase interface{}:\n\t\treflectValue := reflect.ValueOf(values)\n\n\t\tswitch reflectValue.Kind() {\n\t\tcase reflect.Map:\n\t\t\tfor _, key := range reflectValue.MapKeys() {\n\t\t\t\tattrs[ToDBName(key.Interface().(string))] = reflectValue.MapIndex(key).Interface()\n\t\t\t}\n\t\tdefault:\n\t\t\tfor _, field := range (&Scope{Value: values}).Fields() {\n\t\t\t\tif !field.IsBlank && (withIgnoredField || !field.IsIgnored) {\n\t\t\t\t\tattrs[field.DBName] = field.Field.Interface()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn attrs\n}\n\nfunc (scope *Scope) updatedAttrsWithValues(value interface{}) (results map[string]interface{}, hasUpdate bool) {\n\tif scope.IndirectValue().Kind() != reflect.Struct {\n\t\treturn convertInterfaceToMap(value, false), true\n\t}\n\n\tresults = map[string]interface{}{}\n\n\tfor key, value := range convertInterfaceToMap(value, true) {\n\t\tif field, ok := scope.FieldByName(key); ok && scope.changeableField(field) {\n\t\t\tif _, ok := value.(*expr); ok {\n\t\t\t\thasUpdate = true\n\t\t\t\tresults[field.DBName] = value\n\t\t\t} else {\n\t\t\t\terr := field.Set(value)\n\t\t\t\tif field.IsNormal {\n\t\t\t\t\thasUpdate = true\n\t\t\t\t\tif err == ErrUnaddressable {\n\t\t\t\t\t\tresults[field.DBName] = value\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresults[field.DBName] = field.Field.Interface()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc (scope *Scope) row() *sql.Row {\n\tdefer scope.trace(NowFunc())\n\n\tresult := &RowQueryResult{}\n\tscope.InstanceSet(\"row_query_result\", result)\n\tscope.callCallbacks(scope.db.parent.callbacks.rowQueries)\n\n\treturn result.Row\n}\n\nfunc (scope *Scope) rows() (*sql.Rows, error) {\n\tdefer scope.trace(NowFunc())\n\n\tresult := &RowsQueryResult{}\n\tscope.InstanceSet(\"row_query_result\", result)\n\tscope.callCallbacks(scope.db.parent.callbacks.rowQueries)\n\n\treturn result.Rows, result.Error\n}\n\nfunc (scope *Scope) initialize() *Scope {\n\tfor _, clause := range scope.Search.whereConditions {\n\t\tscope.updatedAttrsWithValues(clause[\"query\"])\n\t}\n\tscope.updatedAttrsWithValues(scope.Search.initAttrs)\n\tscope.updatedAttrsWithValues(scope.Search.assignAttrs)\n\treturn scope\n}\n\nfunc (scope *Scope) isQueryForColumn(query interface{}, column string) bool {\n\tqueryStr := strings.ToLower(fmt.Sprint(query))\n\tif queryStr == column {\n\t\treturn true\n\t}\n\n\tif strings.HasSuffix(queryStr, \"as \"+column) {\n\t\treturn true\n\t}\n\n\tif strings.HasSuffix(queryStr, \"as \"+scope.Quote(column)) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nfunc (scope *Scope) pluck(column string, value interface{}) *Scope {\n\tdest := reflect.Indirect(reflect.ValueOf(value))\n\tif dest.Kind() != reflect.Slice {\n\t\tscope.Err(fmt.Errorf(\"results should be a slice, not %s\", dest.Kind()))\n\t\treturn scope\n\t}\n\n\tif query, ok := scope.Search.selects[\"query\"]; !ok || !scope.isQueryForColumn(query, column) {\n\t\tscope.Search.Select(column)\n\t}\n\n\trows, err := scope.rows()\n\tif scope.Err(err) == nil {\n\t\tdefer rows.Close()\n\t\tfor rows.Next() {\n\t\t\telem := reflect.New(dest.Type().Elem()).Interface()\n\t\t\tscope.Err(rows.Scan(elem))\n\t\t\tdest.Set(reflect.Append(dest, reflect.ValueOf(elem).Elem()))\n\t\t}\n\n\t\tif err := rows.Err(); err != nil {\n\t\t\tscope.Err(err)\n\t\t}\n\t}\n\treturn scope\n}\n\nfunc (scope *Scope) count(value interface{}) *Scope {\n\tif query, ok := scope.Search.selects[\"query\"]; !ok || !countingQueryRegexp.MatchString(fmt.Sprint(query)) {\n\t\tif len(scope.Search.group) != 0 {\n\t\t\tscope.Search.Select(\"count(*) FROM ( SELECT count(*) as name \")\n\t\t\tscope.Search.group += \" ) AS count_table\"\n\t\t} else {\n\t\t\tscope.Search.Select(\"count(*)\")\n\t\t}\n\t}\n\tscope.Search.ignoreOrderQuery = true\n\tscope.Err(scope.row().Scan(value))\n\treturn scope\n}\n\nfunc (scope *Scope) typeName() string {\n\ttyp := scope.IndirectValue().Type()\n\n\tfor typ.Kind() == reflect.Slice || typ.Kind() == reflect.Ptr {\n\t\ttyp = typ.Elem()\n\t}\n\n\treturn typ.Name()\n}\n\n// trace print sql log\nfunc (scope *Scope) trace(t time.Time) {\n\tif len(scope.SQL) > 0 {\n\t\tscope.db.slog(scope.SQL, t, scope.SQLVars...)\n\t}\n}\n\nfunc (scope *Scope) changeableField(field *Field) bool {\n\tif selectAttrs := scope.SelectAttrs(); len(selectAttrs) > 0 {\n\t\tfor _, attr := range selectAttrs {\n\t\t\tif field.Name == attr || field.DBName == attr {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\tfor _, attr := range scope.OmitAttrs() {\n\t\tif field.Name == attr || field.DBName == attr {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc (scope *Scope) related(value interface{}, foreignKeys ...string) *Scope {\n\ttoScope := scope.db.NewScope(value)\n\ttx := scope.db.Set(\"gorm:association:source\", scope.Value)\n\n\tfor _, foreignKey := range append(foreignKeys, toScope.typeName()+\"Id\", scope.typeName()+\"Id\") {\n\t\tfromField, _ := scope.FieldByName(foreignKey)\n\t\ttoField, _ := toScope.FieldByName(foreignKey)\n\n\t\tif fromField != nil {\n\t\t\tif relationship := fromField.Relationship; relationship != nil {\n\t\t\t\tif relationship.Kind == \"many_to_many\" {\n\t\t\t\t\tjoinTableHandler := relationship.JoinTableHandler\n\t\t\t\t\tscope.Err(joinTableHandler.JoinWith(joinTableHandler, tx, scope.Value).Find(value).Error)\n\t\t\t\t} else if relationship.Kind == \"belongs_to\" {\n\t\t\t\t\tfor idx, foreignKey := range relationship.ForeignDBNames {\n\t\t\t\t\t\tif field, ok := scope.FieldByName(foreignKey); ok {\n\t\t\t\t\t\t\ttx = tx.Where(fmt.Sprintf(\"%v = ?\", scope.Quote(relationship.AssociationForeignDBNames[idx])), field.Field.Interface())\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tscope.Err(tx.Find(value).Error)\n\t\t\t\t} else if relationship.Kind == \"has_many\" || relationship.Kind == \"has_one\" {\n\t\t\t\t\tfor idx, foreignKey := range relationship.ForeignDBNames {\n\t\t\t\t\t\tif field, ok := scope.FieldByName(relationship.AssociationForeignDBNames[idx]); ok {\n\t\t\t\t\t\t\ttx = tx.Where(fmt.Sprintf(\"%v = ?\", scope.Quote(foreignKey)), field.Field.Interface())\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif relationship.PolymorphicType != \"\" {\n\t\t\t\t\t\ttx = tx.Where(fmt.Sprintf(\"%v = ?\", scope.Quote(relationship.PolymorphicDBName)), relationship.PolymorphicValue)\n\t\t\t\t\t}\n\t\t\t\t\tscope.Err(tx.Find(value).Error)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsql := fmt.Sprintf(\"%v = ?\", scope.Quote(toScope.PrimaryKey()))\n\t\t\t\tscope.Err(tx.Where(sql, fromField.Field.Interface()).Find(value).Error)\n\t\t\t}\n\t\t\treturn scope\n\t\t} else if toField != nil {\n\t\t\tsql := fmt.Sprintf(\"%v = ?\", scope.Quote(toField.DBName))\n\t\t\tscope.Err(tx.Where(sql, scope.PrimaryKeyValue()).Find(value).Error)\n\t\t\treturn scope\n\t\t}\n\t}\n\n\tscope.Err(fmt.Errorf(\"invalid association %v\", foreignKeys))\n\treturn scope\n}\n\n// getTableOptions return the table options string or an empty string if the table options does not exist\nfunc (scope *Scope) getTableOptions() string {\n\ttableOptions, ok := scope.Get(\"gorm:table_options\")\n\tif !ok {\n\t\treturn \"\"\n\t}\n\treturn \" \" + tableOptions.(string)\n}\n\nfunc (scope *Scope) createJoinTable(field *StructField) {\n\tif relationship := field.Relationship; relationship != nil && relationship.JoinTableHandler != nil {\n\t\tjoinTableHandler := relationship.JoinTableHandler\n\t\tjoinTable := joinTableHandler.Table(scope.db)\n\t\tif !scope.Dialect().HasTable(joinTable) {\n\t\t\ttoScope := &Scope{Value: reflect.New(field.Struct.Type).Interface()}\n\n\t\t\tvar sqlTypes, primaryKeys []string\n\t\t\tfor idx, fieldName := range relationship.ForeignFieldNames {\n\t\t\t\tif field, ok := scope.FieldByName(fieldName); ok {\n\t\t\t\t\tforeignKeyStruct := field.clone()\n\t\t\t\t\tforeignKeyStruct.IsPrimaryKey = false\n\t\t\t\t\tforeignKeyStruct.TagSettings[\"IS_JOINTABLE_FOREIGNKEY\"] = \"true\"\n\t\t\t\t\tdelete(foreignKeyStruct.TagSettings, \"AUTO_INCREMENT\")\n\t\t\t\t\tsqlTypes = append(sqlTypes, scope.Quote(relationship.ForeignDBNames[idx])+\" \"+scope.Dialect().DataTypeOf(foreignKeyStruct))\n\t\t\t\t\tprimaryKeys = append(primaryKeys, scope.Quote(relationship.ForeignDBNames[idx]))\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor idx, fieldName := range relationship.AssociationForeignFieldNames {\n\t\t\t\tif field, ok := toScope.FieldByName(fieldName); ok {\n\t\t\t\t\tforeignKeyStruct := field.clone()\n\t\t\t\t\tforeignKeyStruct.IsPrimaryKey = false\n\t\t\t\t\tforeignKeyStruct.TagSettings[\"IS_JOINTABLE_FOREIGNKEY\"] = \"true\"\n\t\t\t\t\tdelete(foreignKeyStruct.TagSettings, \"AUTO_INCREMENT\")\n\t\t\t\t\tsqlTypes = append(sqlTypes, scope.Quote(relationship.AssociationForeignDBNames[idx])+\" \"+scope.Dialect().DataTypeOf(foreignKeyStruct))\n\t\t\t\t\tprimaryKeys = append(primaryKeys, scope.Quote(relationship.AssociationForeignDBNames[idx]))\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tscope.Err(scope.NewDB().Exec(fmt.Sprintf(\"CREATE TABLE %v (%v, PRIMARY KEY (%v))%s\", scope.Quote(joinTable), strings.Join(sqlTypes, \",\"), strings.Join(primaryKeys, \",\"), scope.getTableOptions())).Error)\n\t\t}\n\t\tscope.NewDB().Table(joinTable).AutoMigrate(joinTableHandler)\n\t}\n}\n\nfunc (scope *Scope) createTable() *Scope {\n\tvar tags []string\n\tvar primaryKeys []string\n\tvar primaryKeyInColumnType = false\n\tfor _, field := range scope.GetModelStruct().StructFields {\n\t\tif field.IsNormal {\n\t\t\tsqlTag := scope.Dialect().DataTypeOf(field)\n\n\t\t\t// Check if the primary key constraint was specified as\n\t\t\t// part of the column type. If so, we can only support\n\t\t\t// one column as the primary key.\n\t\t\tif strings.Contains(strings.ToLower(sqlTag), \"primary key\") {\n\t\t\t\tprimaryKeyInColumnType = true\n\t\t\t}\n\n\t\t\ttags = append(tags, scope.Quote(field.DBName)+\" \"+sqlTag)\n\t\t}\n\n\t\tif field.IsPrimaryKey {\n\t\t\tprimaryKeys = append(primaryKeys, scope.Quote(field.DBName))\n\t\t}\n\t\tscope.createJoinTable(field)\n\t}\n\n\tvar primaryKeyStr string\n\tif len(primaryKeys) > 0 && !primaryKeyInColumnType {\n\t\tprimaryKeyStr = fmt.Sprintf(\", PRIMARY KEY (%v)\", strings.Join(primaryKeys, \",\"))\n\t}\n\n\tscope.Raw(fmt.Sprintf(\"CREATE TABLE %v (%v %v)%s\", scope.QuotedTableName(), strings.Join(tags, \",\"), primaryKeyStr, scope.getTableOptions())).Exec()\n\n\tscope.autoIndex()\n\treturn scope\n}\n\nfunc (scope *Scope) dropTable() *Scope {\n\tscope.Raw(fmt.Sprintf(\"DROP TABLE %v%s\", scope.QuotedTableName(), scope.getTableOptions())).Exec()\n\treturn scope\n}\n\nfunc (scope *Scope) modifyColumn(column string, typ string) {\n\tscope.db.AddError(scope.Dialect().ModifyColumn(scope.QuotedTableName(), scope.Quote(column), typ))\n}\n\nfunc (scope *Scope) dropColumn(column string) {\n\tscope.Raw(fmt.Sprintf(\"ALTER TABLE %v DROP COLUMN %v\", scope.QuotedTableName(), scope.Quote(column))).Exec()\n}\n\nfunc (scope *Scope) addIndex(unique bool, indexName string, column ...string) {\n\tif scope.Dialect().HasIndex(scope.TableName(), indexName) {\n\t\treturn\n\t}\n\n\tvar columns []string\n\tfor _, name := range column {\n\t\tcolumns = append(columns, scope.quoteIfPossible(name))\n\t}\n\n\tsqlCreate := \"CREATE INDEX\"\n\tif unique {\n\t\tsqlCreate = \"CREATE UNIQUE INDEX\"\n\t}\n\n\tscope.Raw(fmt.Sprintf(\"%s %v ON %v(%v) %v\", sqlCreate, indexName, scope.QuotedTableName(), strings.Join(columns, \", \"), scope.whereSQL())).Exec()\n}\n\nfunc (scope *Scope) addForeignKey(field string, dest string, onDelete string, onUpdate string) {\n\t// Compatible with old generated key\n\tkeyName := scope.Dialect().BuildKeyName(scope.TableName(), field, dest, \"foreign\")\n\n\tif scope.Dialect().HasForeignKey(scope.TableName(), keyName) {\n\t\treturn\n\t}\n\tvar query = `ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s ON DELETE %s ON UPDATE %s;`\n\tscope.Raw(fmt.Sprintf(query, scope.QuotedTableName(), scope.quoteIfPossible(keyName), scope.quoteIfPossible(field), dest, onDelete, onUpdate)).Exec()\n}\n\nfunc (scope *Scope) removeForeignKey(field string, dest string) {\n\tkeyName := scope.Dialect().BuildKeyName(scope.TableName(), field, dest)\n\n\tif !scope.Dialect().HasForeignKey(scope.TableName(), keyName) {\n\t\treturn\n\t}\n\tvar query = `ALTER TABLE %s DROP CONSTRAINT %s;`\n\tscope.Raw(fmt.Sprintf(query, scope.QuotedTableName(), scope.quoteIfPossible(keyName))).Exec()\n}\n\nfunc (scope *Scope) removeIndex(indexName string) {\n\tscope.Dialect().RemoveIndex(scope.TableName(), indexName)\n}\n\nfunc (scope *Scope) autoMigrate() *Scope {\n\ttableName := scope.TableName()\n\tquotedTableName := scope.QuotedTableName()\n\n\tif !scope.Dialect().HasTable(tableName) {\n\t\tscope.createTable()\n\t} else {\n\t\tfor _, field := range scope.GetModelStruct().StructFields {\n\t\t\tif !scope.Dialect().HasColumn(tableName, field.DBName) {\n\t\t\t\tif field.IsNormal {\n\t\t\t\t\tsqlTag := scope.Dialect().DataTypeOf(field)\n\t\t\t\t\tscope.Raw(fmt.Sprintf(\"ALTER TABLE %v ADD %v %v;\", quotedTableName, scope.Quote(field.DBName), sqlTag)).Exec()\n\t\t\t\t}\n\t\t\t}\n\t\t\tscope.createJoinTable(field)\n\t\t}\n\t\tscope.autoIndex()\n\t}\n\treturn scope\n}\n\nfunc (scope *Scope) autoIndex() *Scope {\n\tvar indexes = map[string][]string{}\n\tvar uniqueIndexes = map[string][]string{}\n\n\tfor _, field := range scope.GetStructFields() {\n\t\tif name, ok := field.TagSettings[\"INDEX\"]; ok {\n\t\t\tnames := strings.Split(name, \",\")\n\n\t\t\tfor _, name := range names {\n\t\t\t\tif name == \"INDEX\" || name == \"\" {\n\t\t\t\t\tname = scope.Dialect().BuildKeyName(\"idx\", scope.TableName(), field.DBName)\n\t\t\t\t}\n\t\t\t\tindexes[name] = append(indexes[name], field.DBName)\n\t\t\t}\n\t\t}\n\n\t\tif name, ok := field.TagSettings[\"UNIQUE_INDEX\"]; ok {\n\t\t\tnames := strings.Split(name, \",\")\n\n\t\t\tfor _, name := range names {\n\t\t\t\tif name == \"UNIQUE_INDEX\" || name == \"\" {\n\t\t\t\t\tname = scope.Dialect().BuildKeyName(\"uix\", scope.TableName(), field.DBName)\n\t\t\t\t}\n\t\t\t\tuniqueIndexes[name] = append(uniqueIndexes[name], field.DBName)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor name, columns := range indexes {\n\t\tif db := scope.NewDB().Table(scope.TableName()).Model(scope.Value).AddIndex(name, columns...); db.Error != nil {\n\t\t\tscope.db.AddError(db.Error)\n\t\t}\n\t}\n\n\tfor name, columns := range uniqueIndexes {\n\t\tif db := scope.NewDB().Table(scope.TableName()).Model(scope.Value).AddUniqueIndex(name, columns...); db.Error != nil {\n\t\t\tscope.db.AddError(db.Error)\n\t\t}\n\t}\n\n\treturn scope\n}\n\nfunc (scope *Scope) getColumnAsArray(columns []string, values ...interface{}) (results [][]interface{}) {\n\tfor _, value := range values {\n\t\tindirectValue := indirect(reflect.ValueOf(value))\n\n\t\tswitch indirectValue.Kind() {\n\t\tcase reflect.Slice:\n\t\t\tfor i := 0; i < indirectValue.Len(); i++ {\n\t\t\t\tvar result []interface{}\n\t\t\t\tvar object = indirect(indirectValue.Index(i))\n\t\t\t\tvar hasValue = false\n\t\t\t\tfor _, column := range columns {\n\t\t\t\t\tfield := object.FieldByName(column)\n\t\t\t\t\tif hasValue || !isBlank(field) {\n\t\t\t\t\t\thasValue = true\n\t\t\t\t\t}\n\t\t\t\t\tresult = append(result, field.Interface())\n\t\t\t\t}\n\n\t\t\t\tif hasValue {\n\t\t\t\t\tresults = append(results, result)\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tvar result []interface{}\n\t\t\tvar hasValue = false\n\t\t\tfor _, column := range columns {\n\t\t\t\tfield := indirectValue.FieldByName(column)\n\t\t\t\tif hasValue || !isBlank(field) {\n\t\t\t\t\thasValue = true\n\t\t\t\t}\n\t\t\t\tresult = append(result, field.Interface())\n\t\t\t}\n\n\t\t\tif hasValue {\n\t\t\t\tresults = append(results, result)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc (scope *Scope) getColumnAsScope(column string) *Scope {\n\tindirectScopeValue := scope.IndirectValue()\n\n\tswitch indirectScopeValue.Kind() {\n\tcase reflect.Slice:\n\t\tif fieldStruct, ok := scope.GetModelStruct().ModelType.FieldByName(column); ok {\n\t\t\tfieldType := fieldStruct.Type\n\t\t\tif fieldType.Kind() == reflect.Slice || fieldType.Kind() == reflect.Ptr {\n\t\t\t\tfieldType = fieldType.Elem()\n\t\t\t}\n\n\t\t\tresultsMap := map[interface{}]bool{}\n\t\t\tresults := reflect.New(reflect.SliceOf(reflect.PtrTo(fieldType))).Elem()\n\n\t\t\tfor i := 0; i < indirectScopeValue.Len(); i++ {\n\t\t\t\tresult := indirect(indirect(indirectScopeValue.Index(i)).FieldByName(column))\n\n\t\t\t\tif result.Kind() == reflect.Slice {\n\t\t\t\t\tfor j := 0; j < result.Len(); j++ {\n\t\t\t\t\t\tif elem := result.Index(j); elem.CanAddr() && resultsMap[elem.Addr()] != true {\n\t\t\t\t\t\t\tresultsMap[elem.Addr()] = true\n\t\t\t\t\t\t\tresults = reflect.Append(results, elem.Addr())\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if result.CanAddr() && resultsMap[result.Addr()] != true {\n\t\t\t\t\tresultsMap[result.Addr()] = true\n\t\t\t\t\tresults = reflect.Append(results, result.Addr())\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn scope.New(results.Interface())\n\t\t}\n\tcase reflect.Struct:\n\t\tif field := indirectScopeValue.FieldByName(column); field.CanAddr() {\n\t\t\treturn scope.New(field.Addr().Interface())\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (scope *Scope) hasConditions() bool {\n\treturn !scope.PrimaryKeyZero() ||\n\t\tlen(scope.Search.whereConditions) > 0 ||\n\t\tlen(scope.Search.orConditions) > 0 ||\n\t\tlen(scope.Search.notConditions) > 0\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/search.go",
    "content": "package gorm\n\nimport (\n\t\"fmt\"\n)\n\ntype search struct {\n\tdb               *DB\n\twhereConditions  []map[string]interface{}\n\torConditions     []map[string]interface{}\n\tnotConditions    []map[string]interface{}\n\thavingConditions []map[string]interface{}\n\tjoinConditions   []map[string]interface{}\n\tinitAttrs        []interface{}\n\tassignAttrs      []interface{}\n\tselects          map[string]interface{}\n\tomits            []string\n\torders           []interface{}\n\tpreload          []searchPreload\n\toffset           interface{}\n\tlimit            interface{}\n\tgroup            string\n\ttableName        string\n\traw              bool\n\tUnscoped         bool\n\tignoreOrderQuery bool\n}\n\ntype searchPreload struct {\n\tschema     string\n\tconditions []interface{}\n}\n\nfunc (s *search) clone() *search {\n\tclone := *s\n\treturn &clone\n}\n\nfunc (s *search) Where(query interface{}, values ...interface{}) *search {\n\ts.whereConditions = append(s.whereConditions, map[string]interface{}{\"query\": query, \"args\": values})\n\treturn s\n}\n\nfunc (s *search) Not(query interface{}, values ...interface{}) *search {\n\ts.notConditions = append(s.notConditions, map[string]interface{}{\"query\": query, \"args\": values})\n\treturn s\n}\n\nfunc (s *search) Or(query interface{}, values ...interface{}) *search {\n\ts.orConditions = append(s.orConditions, map[string]interface{}{\"query\": query, \"args\": values})\n\treturn s\n}\n\nfunc (s *search) Attrs(attrs ...interface{}) *search {\n\ts.initAttrs = append(s.initAttrs, toSearchableMap(attrs...))\n\treturn s\n}\n\nfunc (s *search) Assign(attrs ...interface{}) *search {\n\ts.assignAttrs = append(s.assignAttrs, toSearchableMap(attrs...))\n\treturn s\n}\n\nfunc (s *search) Order(value interface{}, reorder ...bool) *search {\n\tif len(reorder) > 0 && reorder[0] {\n\t\ts.orders = []interface{}{}\n\t}\n\n\tif value != nil && value != \"\" {\n\t\ts.orders = append(s.orders, value)\n\t}\n\treturn s\n}\n\nfunc (s *search) Select(query interface{}, args ...interface{}) *search {\n\ts.selects = map[string]interface{}{\"query\": query, \"args\": args}\n\treturn s\n}\n\nfunc (s *search) Omit(columns ...string) *search {\n\ts.omits = columns\n\treturn s\n}\n\nfunc (s *search) Limit(limit interface{}) *search {\n\ts.limit = limit\n\treturn s\n}\n\nfunc (s *search) Offset(offset interface{}) *search {\n\ts.offset = offset\n\treturn s\n}\n\nfunc (s *search) Group(query string) *search {\n\ts.group = s.getInterfaceAsSQL(query)\n\treturn s\n}\n\nfunc (s *search) Having(query interface{}, values ...interface{}) *search {\n\tif val, ok := query.(*expr); ok {\n\t\ts.havingConditions = append(s.havingConditions, map[string]interface{}{\"query\": val.expr, \"args\": val.args})\n\t} else {\n\t\ts.havingConditions = append(s.havingConditions, map[string]interface{}{\"query\": query, \"args\": values})\n\t}\n\treturn s\n}\n\nfunc (s *search) Joins(query string, values ...interface{}) *search {\n\ts.joinConditions = append(s.joinConditions, map[string]interface{}{\"query\": query, \"args\": values})\n\treturn s\n}\n\nfunc (s *search) Preload(schema string, values ...interface{}) *search {\n\tvar preloads []searchPreload\n\tfor _, preload := range s.preload {\n\t\tif preload.schema != schema {\n\t\t\tpreloads = append(preloads, preload)\n\t\t}\n\t}\n\tpreloads = append(preloads, searchPreload{schema, values})\n\ts.preload = preloads\n\treturn s\n}\n\nfunc (s *search) Raw(b bool) *search {\n\ts.raw = b\n\treturn s\n}\n\nfunc (s *search) unscoped() *search {\n\ts.Unscoped = true\n\treturn s\n}\n\nfunc (s *search) Table(name string) *search {\n\ts.tableName = name\n\treturn s\n}\n\nfunc (s *search) getInterfaceAsSQL(value interface{}) (str string) {\n\tswitch value.(type) {\n\tcase string, int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\tstr = fmt.Sprintf(\"%v\", value)\n\tdefault:\n\t\ts.db.AddError(ErrInvalidSQL)\n\t}\n\n\tif str == \"-1\" {\n\t\treturn \"\"\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/test_all.sh",
    "content": "dialects=(\"postgres\" \"mysql\" \"mssql\" \"sqlite\")\n\nfor dialect in \"${dialects[@]}\" ; do\n    DEBUG=false GORM_DIALECT=${dialect} go test\ndone\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/utils.go",
    "content": "package gorm\n\nimport (\n\t\"bytes\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// NowFunc returns current time, this function is exported in order to be able\n// to give the flexibility to the developer to customize it according to their\n// needs, e.g:\n//    gorm.NowFunc = func() time.Time {\n//      return time.Now().UTC()\n//    }\nvar NowFunc = func() time.Time {\n\treturn time.Now()\n}\n\n// Copied from golint\nvar commonInitialisms = []string{\"API\", \"ASCII\", \"CPU\", \"CSS\", \"DNS\", \"EOF\", \"GUID\", \"HTML\", \"HTTP\", \"HTTPS\", \"ID\", \"IP\", \"JSON\", \"LHS\", \"QPS\", \"RAM\", \"RHS\", \"RPC\", \"SLA\", \"SMTP\", \"SSH\", \"TLS\", \"TTL\", \"UID\", \"UI\", \"UUID\", \"URI\", \"URL\", \"UTF8\", \"VM\", \"XML\", \"XSRF\", \"XSS\"}\nvar commonInitialismsReplacer *strings.Replacer\n\nvar goSrcRegexp = regexp.MustCompile(`jinzhu/gorm/.*.go`)\nvar goTestRegexp = regexp.MustCompile(`jinzhu/gorm/.*test.go`)\n\nfunc init() {\n\tvar commonInitialismsForReplacer []string\n\tfor _, initialism := range commonInitialisms {\n\t\tcommonInitialismsForReplacer = append(commonInitialismsForReplacer, initialism, strings.Title(strings.ToLower(initialism)))\n\t}\n\tcommonInitialismsReplacer = strings.NewReplacer(commonInitialismsForReplacer...)\n}\n\ntype safeMap struct {\n\tm map[string]string\n\tl *sync.RWMutex\n}\n\nfunc (s *safeMap) Set(key string, value string) {\n\ts.l.Lock()\n\tdefer s.l.Unlock()\n\ts.m[key] = value\n}\n\nfunc (s *safeMap) Get(key string) string {\n\ts.l.RLock()\n\tdefer s.l.RUnlock()\n\treturn s.m[key]\n}\n\nfunc newSafeMap() *safeMap {\n\treturn &safeMap{l: new(sync.RWMutex), m: make(map[string]string)}\n}\n\nvar smap = newSafeMap()\n\ntype strCase bool\n\nconst (\n\tlower strCase = false\n\tupper strCase = true\n)\n\n// ToDBName convert string to db name\nfunc ToDBName(name string) string {\n\tif v := smap.Get(name); v != \"\" {\n\t\treturn v\n\t}\n\n\tif name == \"\" {\n\t\treturn \"\"\n\t}\n\n\tvar (\n\t\tvalue                        = commonInitialismsReplacer.Replace(name)\n\t\tbuf                          = bytes.NewBufferString(\"\")\n\t\tlastCase, currCase, nextCase strCase\n\t)\n\n\tfor i, v := range value[:len(value)-1] {\n\t\tnextCase = strCase(value[i+1] >= 'A' && value[i+1] <= 'Z')\n\t\tif i > 0 {\n\t\t\tif currCase == upper {\n\t\t\t\tif lastCase == upper && nextCase == upper {\n\t\t\t\t\tbuf.WriteRune(v)\n\t\t\t\t} else {\n\t\t\t\t\tif value[i-1] != '_' && value[i+1] != '_' {\n\t\t\t\t\t\tbuf.WriteRune('_')\n\t\t\t\t\t}\n\t\t\t\t\tbuf.WriteRune(v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuf.WriteRune(v)\n\t\t\t\tif i == len(value)-2 && nextCase == upper {\n\t\t\t\t\tbuf.WriteRune('_')\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcurrCase = upper\n\t\t\tbuf.WriteRune(v)\n\t\t}\n\t\tlastCase = currCase\n\t\tcurrCase = nextCase\n\t}\n\n\tbuf.WriteByte(value[len(value)-1])\n\n\ts := strings.ToLower(buf.String())\n\tsmap.Set(name, s)\n\treturn s\n}\n\n// SQL expression\ntype expr struct {\n\texpr string\n\targs []interface{}\n}\n\n// Expr generate raw SQL expression, for example:\n//     DB.Model(&product).Update(\"price\", gorm.Expr(\"price * ? + ?\", 2, 100))\nfunc Expr(expression string, args ...interface{}) *expr {\n\treturn &expr{expr: expression, args: args}\n}\n\nfunc indirect(reflectValue reflect.Value) reflect.Value {\n\tfor reflectValue.Kind() == reflect.Ptr {\n\t\treflectValue = reflectValue.Elem()\n\t}\n\treturn reflectValue\n}\n\nfunc toQueryMarks(primaryValues [][]interface{}) string {\n\tvar results []string\n\n\tfor _, primaryValue := range primaryValues {\n\t\tvar marks []string\n\t\tfor range primaryValue {\n\t\t\tmarks = append(marks, \"?\")\n\t\t}\n\n\t\tif len(marks) > 1 {\n\t\t\tresults = append(results, fmt.Sprintf(\"(%v)\", strings.Join(marks, \",\")))\n\t\t} else {\n\t\t\tresults = append(results, strings.Join(marks, \"\"))\n\t\t}\n\t}\n\treturn strings.Join(results, \",\")\n}\n\nfunc toQueryCondition(scope *Scope, columns []string) string {\n\tvar newColumns []string\n\tfor _, column := range columns {\n\t\tnewColumns = append(newColumns, scope.Quote(column))\n\t}\n\n\tif len(columns) > 1 {\n\t\treturn fmt.Sprintf(\"(%v)\", strings.Join(newColumns, \",\"))\n\t}\n\treturn strings.Join(newColumns, \",\")\n}\n\nfunc toQueryValues(values [][]interface{}) (results []interface{}) {\n\tfor _, value := range values {\n\t\tfor _, v := range value {\n\t\t\tresults = append(results, v)\n\t\t}\n\t}\n\treturn\n}\n\nfunc fileWithLineNum() string {\n\tfor i := 2; i < 15; i++ {\n\t\t_, file, line, ok := runtime.Caller(i)\n\t\tif ok && (!goSrcRegexp.MatchString(file) || goTestRegexp.MatchString(file)) {\n\t\t\treturn fmt.Sprintf(\"%v:%v\", file, line)\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc isBlank(value reflect.Value) bool {\n\tswitch value.Kind() {\n\tcase reflect.String:\n\t\treturn value.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !value.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn value.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn value.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn value.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn value.IsNil()\n\t}\n\n\treturn reflect.DeepEqual(value.Interface(), reflect.Zero(value.Type()).Interface())\n}\n\nfunc toSearchableMap(attrs ...interface{}) (result interface{}) {\n\tif len(attrs) > 1 {\n\t\tif str, ok := attrs[0].(string); ok {\n\t\t\tresult = map[string]interface{}{str: attrs[1]}\n\t\t}\n\t} else if len(attrs) == 1 {\n\t\tif attr, ok := attrs[0].(map[string]interface{}); ok {\n\t\t\tresult = attr\n\t\t}\n\n\t\tif attr, ok := attrs[0].(interface{}); ok {\n\t\t\tresult = attr\n\t\t}\n\t}\n\treturn\n}\n\nfunc equalAsString(a interface{}, b interface{}) bool {\n\treturn toString(a) == toString(b)\n}\n\nfunc toString(str interface{}) string {\n\tif values, ok := str.([]interface{}); ok {\n\t\tvar results []string\n\t\tfor _, value := range values {\n\t\t\tresults = append(results, toString(value))\n\t\t}\n\t\treturn strings.Join(results, \"_\")\n\t} else if bytes, ok := str.([]byte); ok {\n\t\treturn string(bytes)\n\t} else if reflectValue := reflect.Indirect(reflect.ValueOf(str)); reflectValue.IsValid() {\n\t\treturn fmt.Sprintf(\"%v\", reflectValue.Interface())\n\t}\n\treturn \"\"\n}\n\nfunc makeSlice(elemType reflect.Type) interface{} {\n\tif elemType.Kind() == reflect.Slice {\n\t\telemType = elemType.Elem()\n\t}\n\tsliceType := reflect.SliceOf(elemType)\n\tslice := reflect.New(sliceType)\n\tslice.Elem().Set(reflect.MakeSlice(sliceType, 0, 0))\n\treturn slice.Interface()\n}\n\nfunc strInSlice(a string, list []string) bool {\n\tfor _, b := range list {\n\t\tif b == a {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// getValueFromFields return given fields's value\nfunc getValueFromFields(value reflect.Value, fieldNames []string) (results []interface{}) {\n\t// If value is a nil pointer, Indirect returns a zero Value!\n\t// Therefor we need to check for a zero value,\n\t// as FieldByName could panic\n\tif indirectValue := reflect.Indirect(value); indirectValue.IsValid() {\n\t\tfor _, fieldName := range fieldNames {\n\t\t\tif fieldValue := indirectValue.FieldByName(fieldName); fieldValue.IsValid() {\n\t\t\t\tresult := fieldValue.Interface()\n\t\t\t\tif r, ok := result.(driver.Valuer); ok {\n\t\t\t\t\tresult, _ = r.Value()\n\t\t\t\t}\n\t\t\t\tresults = append(results, result)\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc addExtraSpaceIfExist(str string) string {\n\tif str != \"\" {\n\t\treturn \" \" + str\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/jinzhu/gorm/wercker.yml",
    "content": "# use the default golang container from Docker Hub\nbox: golang\n\nservices:\n    - name: mariadb\n      id: mariadb:latest\n      env:\n          MYSQL_DATABASE: gorm\n          MYSQL_USER: gorm\n          MYSQL_PASSWORD: gorm\n          MYSQL_RANDOM_ROOT_PASSWORD: \"yes\"\n    - name: mysql\n      id: mysql:8\n      env:\n          MYSQL_DATABASE: gorm\n          MYSQL_USER: gorm\n          MYSQL_PASSWORD: gorm\n          MYSQL_RANDOM_ROOT_PASSWORD: \"yes\"\n    - name: mysql57\n      id: mysql:5.7\n      env:\n          MYSQL_DATABASE: gorm\n          MYSQL_USER: gorm\n          MYSQL_PASSWORD: gorm\n          MYSQL_RANDOM_ROOT_PASSWORD: \"yes\"\n    - name: mysql56\n      id: mysql:5.6\n      env:\n          MYSQL_DATABASE: gorm\n          MYSQL_USER: gorm\n          MYSQL_PASSWORD: gorm\n          MYSQL_RANDOM_ROOT_PASSWORD: \"yes\"\n    - name: mysql55\n      id: mysql:5.5\n      env:\n          MYSQL_DATABASE: gorm\n          MYSQL_USER: gorm\n          MYSQL_PASSWORD: gorm\n          MYSQL_RANDOM_ROOT_PASSWORD: \"yes\"\n    - name: postgres\n      id: postgres:latest\n      env:\n          POSTGRES_USER: gorm\n          POSTGRES_PASSWORD: gorm\n          POSTGRES_DB: gorm\n    - name: postgres96\n      id: postgres:9.6\n      env:\n          POSTGRES_USER: gorm\n          POSTGRES_PASSWORD: gorm\n          POSTGRES_DB: gorm\n    - name: postgres95\n      id: postgres:9.5\n      env:\n          POSTGRES_USER: gorm\n          POSTGRES_PASSWORD: gorm\n          POSTGRES_DB: gorm\n    - name: postgres94\n      id: postgres:9.4\n      env:\n          POSTGRES_USER: gorm\n          POSTGRES_PASSWORD: gorm\n          POSTGRES_DB: gorm\n    - name: postgres93\n      id: postgres:9.3\n      env:\n          POSTGRES_USER: gorm\n          POSTGRES_PASSWORD: gorm\n          POSTGRES_DB: gorm\n    - name: mssql\n      id: mcmoe/mssqldocker:latest\n      env:\n        ACCEPT_EULA: Y\n        SA_PASSWORD: LoremIpsum86\n        MSSQL_DB: gorm\n        MSSQL_USER: gorm\n        MSSQL_PASSWORD: LoremIpsum86\n\n# The steps that will be executed in the build pipeline\nbuild:\n    # The steps that will be executed on build\n    steps:\n        # Sets the go workspace and places you package\n        # at the right place in the workspace tree\n        - setup-go-workspace\n\n        # Gets the dependencies\n        - script:\n                name: go get\n                code: |\n                    cd $WERCKER_SOURCE_DIR\n                    go version\n                    go get -t ./...\n\n        # Build the project\n        - script:\n                name: go build\n                code: |\n                    go build ./...\n\n        # Test the project\n        - script:\n                name: test sqlite\n                code: |\n                    go test ./...\n\n        - script:\n                name: test mariadb\n                code: |\n                    GORM_DIALECT=mysql GORM_DSN=\"gorm:gorm@tcp(mariadb:3306)/gorm?charset=utf8&parseTime=True\" go test ./...\n\n        - script:\n                name: test mysql\n                code: |\n                    GORM_DIALECT=mysql GORM_DSN=\"gorm:gorm@tcp(mysql:3306)/gorm?charset=utf8&parseTime=True\" go test ./...\n\n        - script:\n                name: test mysql5.7\n                code: |\n                    GORM_DIALECT=mysql GORM_DSN=\"gorm:gorm@tcp(mysql57:3306)/gorm?charset=utf8&parseTime=True\" go test ./...\n\n        - script:\n                name: test mysql5.6\n                code: |\n                    GORM_DIALECT=mysql GORM_DSN=\"gorm:gorm@tcp(mysql56:3306)/gorm?charset=utf8&parseTime=True\" go test ./...\n\n        - script:\n                name: test mysql5.5\n                code: |\n                    GORM_DIALECT=mysql GORM_DSN=\"gorm:gorm@tcp(mysql55:3306)/gorm?charset=utf8&parseTime=True\" go test ./...\n\n        - script:\n                name: test postgres\n                code: |\n                    GORM_DIALECT=postgres GORM_DSN=\"host=postgres user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable\" go test ./...\n\n        - script:\n                name: test postgres96\n                code: |\n                    GORM_DIALECT=postgres GORM_DSN=\"host=postgres96 user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable\" go test ./...\n\n        - script:\n                name: test postgres95\n                code: |\n                    GORM_DIALECT=postgres GORM_DSN=\"host=postgres95 user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable\" go test ./...\n\n        - script:\n                name: test postgres94\n                code: |\n                    GORM_DIALECT=postgres GORM_DSN=\"host=postgres94 user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable\" go test ./...\n\n        - script:\n                name: test postgres93\n                code: |\n                    GORM_DIALECT=postgres GORM_DSN=\"host=postgres93 user=gorm password=gorm DB.name=gorm port=5432 sslmode=disable\" go test ./...\n\n        - script:\n                name: test mssql\n                code: |\n                    GORM_DIALECT=mssql GORM_DSN=\"sqlserver://gorm:LoremIpsum86@mssql:1433?database=gorm\" go test ./...\n"
  },
  {
    "path": "vendor/github.com/jinzhu/inflection/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 - Jinzhu\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/jinzhu/inflection/README.md",
    "content": "Inflection\n=========\n\nInflection pluralizes and singularizes English nouns\n\n## Basic Usage\n\n```go\ninflection.Plural(\"person\") => \"people\"\ninflection.Plural(\"Person\") => \"People\"\ninflection.Plural(\"PERSON\") => \"PEOPLE\"\ninflection.Plural(\"bus\")    => \"buses\"\ninflection.Plural(\"BUS\")    => \"BUSES\"\ninflection.Plural(\"Bus\")    => \"Buses\"\n\ninflection.Singular(\"people\") => \"person\"\ninflection.Singular(\"People\") => \"Person\"\ninflection.Singular(\"PEOPLE\") => \"PERSON\"\ninflection.Singular(\"buses\")  => \"bus\"\ninflection.Singular(\"BUSES\")  => \"BUS\"\ninflection.Singular(\"Buses\")  => \"Bus\"\n\ninflection.Plural(\"FancyPerson\") => \"FancyPeople\"\ninflection.Singular(\"FancyPeople\") => \"FancyPerson\"\n```\n\n## Register Rules\n\nStandard rules are from Rails's ActiveSupport (https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflections.rb)\n\nIf you want to register more rules, follow:\n\n```\ninflection.AddUncountable(\"fish\")\ninflection.AddIrregular(\"person\", \"people\")\ninflection.AddPlural(\"(bu)s$\", \"${1}ses\") # \"bus\" => \"buses\" / \"BUS\" => \"BUSES\" / \"Bus\" => \"Buses\"\ninflection.AddSingular(\"(bus)(es)?$\", \"${1}\") # \"buses\" => \"bus\" / \"Buses\" => \"Bus\" / \"BUSES\" => \"BUS\"\n```\n\n## Supporting the project\n\n[![http://patreon.com/jinzhu](http://patreon_public_assets.s3.amazonaws.com/sized/becomeAPatronBanner.png)](http://patreon.com/jinzhu)\n\n\n## Author\n\n**jinzhu**\n\n* <http://github.com/jinzhu>\n* <wosmvp@gmail.com>\n* <http://twitter.com/zhangjinzhu>\n\n## License\n\nReleased under the [MIT License](http://www.opensource.org/licenses/MIT).\n"
  },
  {
    "path": "vendor/github.com/jinzhu/inflection/inflections.go",
    "content": "/*\nPackage inflection pluralizes and singularizes English nouns.\n\n\t\tinflection.Plural(\"person\") => \"people\"\n\t\tinflection.Plural(\"Person\") => \"People\"\n\t\tinflection.Plural(\"PERSON\") => \"PEOPLE\"\n\n\t\tinflection.Singular(\"people\") => \"person\"\n\t\tinflection.Singular(\"People\") => \"Person\"\n\t\tinflection.Singular(\"PEOPLE\") => \"PERSON\"\n\n\t\tinflection.Plural(\"FancyPerson\") => \"FancydPeople\"\n\t\tinflection.Singular(\"FancyPeople\") => \"FancydPerson\"\n\nStandard rules are from Rails's ActiveSupport (https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflections.rb)\n\nIf you want to register more rules, follow:\n\n\t\tinflection.AddUncountable(\"fish\")\n\t\tinflection.AddIrregular(\"person\", \"people\")\n\t\tinflection.AddPlural(\"(bu)s$\", \"${1}ses\") # \"bus\" => \"buses\" / \"BUS\" => \"BUSES\" / \"Bus\" => \"Buses\"\n\t\tinflection.AddSingular(\"(bus)(es)?$\", \"${1}\") # \"buses\" => \"bus\" / \"Buses\" => \"Bus\" / \"BUSES\" => \"BUS\"\n*/\npackage inflection\n\nimport (\n\t\"regexp\"\n\t\"strings\"\n)\n\ntype inflection struct {\n\tregexp  *regexp.Regexp\n\treplace string\n}\n\n// Regular is a regexp find replace inflection\ntype Regular struct {\n\tfind    string\n\treplace string\n}\n\n// Irregular is a hard replace inflection,\n// containing both singular and plural forms\ntype Irregular struct {\n\tsingular string\n\tplural   string\n}\n\n// RegularSlice is a slice of Regular inflections\ntype RegularSlice []Regular\n\n// IrregularSlice is a slice of Irregular inflections\ntype IrregularSlice []Irregular\n\nvar pluralInflections = RegularSlice{\n\t{\"([a-z])$\", \"${1}s\"},\n\t{\"s$\", \"s\"},\n\t{\"^(ax|test)is$\", \"${1}es\"},\n\t{\"(octop|vir)us$\", \"${1}i\"},\n\t{\"(octop|vir)i$\", \"${1}i\"},\n\t{\"(alias|status)$\", \"${1}es\"},\n\t{\"(bu)s$\", \"${1}ses\"},\n\t{\"(buffal|tomat)o$\", \"${1}oes\"},\n\t{\"([ti])um$\", \"${1}a\"},\n\t{\"([ti])a$\", \"${1}a\"},\n\t{\"sis$\", \"ses\"},\n\t{\"(?:([^f])fe|([lr])f)$\", \"${1}${2}ves\"},\n\t{\"(hive)$\", \"${1}s\"},\n\t{\"([^aeiouy]|qu)y$\", \"${1}ies\"},\n\t{\"(x|ch|ss|sh)$\", \"${1}es\"},\n\t{\"(matr|vert|ind)(?:ix|ex)$\", \"${1}ices\"},\n\t{\"^(m|l)ouse$\", \"${1}ice\"},\n\t{\"^(m|l)ice$\", \"${1}ice\"},\n\t{\"^(ox)$\", \"${1}en\"},\n\t{\"^(oxen)$\", \"${1}\"},\n\t{\"(quiz)$\", \"${1}zes\"},\n}\n\nvar singularInflections = RegularSlice{\n\t{\"s$\", \"\"},\n\t{\"(ss)$\", \"${1}\"},\n\t{\"(n)ews$\", \"${1}ews\"},\n\t{\"([ti])a$\", \"${1}um\"},\n\t{\"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$\", \"${1}sis\"},\n\t{\"(^analy)(sis|ses)$\", \"${1}sis\"},\n\t{\"([^f])ves$\", \"${1}fe\"},\n\t{\"(hive)s$\", \"${1}\"},\n\t{\"(tive)s$\", \"${1}\"},\n\t{\"([lr])ves$\", \"${1}f\"},\n\t{\"([^aeiouy]|qu)ies$\", \"${1}y\"},\n\t{\"(s)eries$\", \"${1}eries\"},\n\t{\"(m)ovies$\", \"${1}ovie\"},\n\t{\"(c)ookies$\", \"${1}ookie\"},\n\t{\"(x|ch|ss|sh)es$\", \"${1}\"},\n\t{\"^(m|l)ice$\", \"${1}ouse\"},\n\t{\"(bus)(es)?$\", \"${1}\"},\n\t{\"(o)es$\", \"${1}\"},\n\t{\"(shoe)s$\", \"${1}\"},\n\t{\"(cris|test)(is|es)$\", \"${1}is\"},\n\t{\"^(a)x[ie]s$\", \"${1}xis\"},\n\t{\"(octop|vir)(us|i)$\", \"${1}us\"},\n\t{\"(alias|status)(es)?$\", \"${1}\"},\n\t{\"^(ox)en\", \"${1}\"},\n\t{\"(vert|ind)ices$\", \"${1}ex\"},\n\t{\"(matr)ices$\", \"${1}ix\"},\n\t{\"(quiz)zes$\", \"${1}\"},\n\t{\"(database)s$\", \"${1}\"},\n}\n\nvar irregularInflections = IrregularSlice{\n\t{\"person\", \"people\"},\n\t{\"man\", \"men\"},\n\t{\"child\", \"children\"},\n\t{\"sex\", \"sexes\"},\n\t{\"move\", \"moves\"},\n\t{\"mombie\", \"mombies\"},\n}\n\nvar uncountableInflections = []string{\"equipment\", \"information\", \"rice\", \"money\", \"species\", \"series\", \"fish\", \"sheep\", \"jeans\", \"police\"}\n\nvar compiledPluralMaps []inflection\nvar compiledSingularMaps []inflection\n\nfunc compile() {\n\tcompiledPluralMaps = []inflection{}\n\tcompiledSingularMaps = []inflection{}\n\tfor _, uncountable := range uncountableInflections {\n\t\tinf := inflection{\n\t\t\tregexp:  regexp.MustCompile(\"^(?i)(\" + uncountable + \")$\"),\n\t\t\treplace: \"${1}\",\n\t\t}\n\t\tcompiledPluralMaps = append(compiledPluralMaps, inf)\n\t\tcompiledSingularMaps = append(compiledSingularMaps, inf)\n\t}\n\n\tfor _, value := range irregularInflections {\n\t\tinfs := []inflection{\n\t\t\tinflection{regexp: regexp.MustCompile(strings.ToUpper(value.singular) + \"$\"), replace: strings.ToUpper(value.plural)},\n\t\t\tinflection{regexp: regexp.MustCompile(strings.Title(value.singular) + \"$\"), replace: strings.Title(value.plural)},\n\t\t\tinflection{regexp: regexp.MustCompile(value.singular + \"$\"), replace: value.plural},\n\t\t}\n\t\tcompiledPluralMaps = append(compiledPluralMaps, infs...)\n\t}\n\n\tfor _, value := range irregularInflections {\n\t\tinfs := []inflection{\n\t\t\tinflection{regexp: regexp.MustCompile(strings.ToUpper(value.plural) + \"$\"), replace: strings.ToUpper(value.singular)},\n\t\t\tinflection{regexp: regexp.MustCompile(strings.Title(value.plural) + \"$\"), replace: strings.Title(value.singular)},\n\t\t\tinflection{regexp: regexp.MustCompile(value.plural + \"$\"), replace: value.singular},\n\t\t}\n\t\tcompiledSingularMaps = append(compiledSingularMaps, infs...)\n\t}\n\n\tfor i := len(pluralInflections) - 1; i >= 0; i-- {\n\t\tvalue := pluralInflections[i]\n\t\tinfs := []inflection{\n\t\t\tinflection{regexp: regexp.MustCompile(strings.ToUpper(value.find)), replace: strings.ToUpper(value.replace)},\n\t\t\tinflection{regexp: regexp.MustCompile(value.find), replace: value.replace},\n\t\t\tinflection{regexp: regexp.MustCompile(\"(?i)\" + value.find), replace: value.replace},\n\t\t}\n\t\tcompiledPluralMaps = append(compiledPluralMaps, infs...)\n\t}\n\n\tfor i := len(singularInflections) - 1; i >= 0; i-- {\n\t\tvalue := singularInflections[i]\n\t\tinfs := []inflection{\n\t\t\tinflection{regexp: regexp.MustCompile(strings.ToUpper(value.find)), replace: strings.ToUpper(value.replace)},\n\t\t\tinflection{regexp: regexp.MustCompile(value.find), replace: value.replace},\n\t\t\tinflection{regexp: regexp.MustCompile(\"(?i)\" + value.find), replace: value.replace},\n\t\t}\n\t\tcompiledSingularMaps = append(compiledSingularMaps, infs...)\n\t}\n}\n\nfunc init() {\n\tcompile()\n}\n\n// AddPlural adds a plural inflection\nfunc AddPlural(find, replace string) {\n\tpluralInflections = append(pluralInflections, Regular{find, replace})\n\tcompile()\n}\n\n// AddSingular adds a singular inflection\nfunc AddSingular(find, replace string) {\n\tsingularInflections = append(singularInflections, Regular{find, replace})\n\tcompile()\n}\n\n// AddIrregular adds an irregular inflection\nfunc AddIrregular(singular, plural string) {\n\tirregularInflections = append(irregularInflections, Irregular{singular, plural})\n\tcompile()\n}\n\n// AddUncountable adds an uncountable inflection\nfunc AddUncountable(values ...string) {\n\tuncountableInflections = append(uncountableInflections, values...)\n\tcompile()\n}\n\n// GetPlural retrieves the plural inflection values\nfunc GetPlural() RegularSlice {\n\tplurals := make(RegularSlice, len(pluralInflections))\n\tcopy(plurals, pluralInflections)\n\treturn plurals\n}\n\n// GetSingular retrieves the singular inflection values\nfunc GetSingular() RegularSlice {\n\tsingulars := make(RegularSlice, len(singularInflections))\n\tcopy(singulars, singularInflections)\n\treturn singulars\n}\n\n// GetIrregular retrieves the irregular inflection values\nfunc GetIrregular() IrregularSlice {\n\tirregular := make(IrregularSlice, len(irregularInflections))\n\tcopy(irregular, irregularInflections)\n\treturn irregular\n}\n\n// GetUncountable retrieves the uncountable inflection values\nfunc GetUncountable() []string {\n\tuncountables := make([]string, len(uncountableInflections))\n\tcopy(uncountables, uncountableInflections)\n\treturn uncountables\n}\n\n// SetPlural sets the plural inflections slice\nfunc SetPlural(inflections RegularSlice) {\n\tpluralInflections = inflections\n\tcompile()\n}\n\n// SetSingular sets the singular inflections slice\nfunc SetSingular(inflections RegularSlice) {\n\tsingularInflections = inflections\n\tcompile()\n}\n\n// SetIrregular sets the irregular inflections slice\nfunc SetIrregular(inflections IrregularSlice) {\n\tirregularInflections = inflections\n\tcompile()\n}\n\n// SetUncountable sets the uncountable inflections slice\nfunc SetUncountable(inflections []string) {\n\tuncountableInflections = inflections\n\tcompile()\n}\n\n// Plural converts a word to its plural form\nfunc Plural(str string) string {\n\tfor _, inflection := range compiledPluralMaps {\n\t\tif inflection.regexp.MatchString(str) {\n\t\t\treturn inflection.regexp.ReplaceAllString(str, inflection.replace)\n\t\t}\n\t}\n\treturn str\n}\n\n// Singular converts a word to its singular form\nfunc Singular(str string) string {\n\tfor _, inflection := range compiledSingularMaps {\n\t\tif inflection.regexp.MatchString(str) {\n\t\t\treturn inflection.regexp.ReplaceAllString(str, inflection.replace)\n\t\t}\n\t}\n\treturn str\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/LICENSE",
    "content": "Copyright (c) 2016 Mail.Ru Group\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/buffer/pool.go",
    "content": "// Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to\n// reduce copying and to allow reuse of individual chunks.\npackage buffer\n\nimport (\n\t\"io\"\n\t\"sync\"\n)\n\n// PoolConfig contains configuration for the allocation and reuse strategy.\ntype PoolConfig struct {\n\tStartSize  int // Minimum chunk size that is allocated.\n\tPooledSize int // Minimum chunk size that is reused, reusing chunks too small will result in overhead.\n\tMaxSize    int // Maximum chunk size that will be allocated.\n}\n\nvar config = PoolConfig{\n\tStartSize:  128,\n\tPooledSize: 512,\n\tMaxSize:    32768,\n}\n\n// Reuse pool: chunk size -> pool.\nvar buffers = map[int]*sync.Pool{}\n\nfunc initBuffers() {\n\tfor l := config.PooledSize; l <= config.MaxSize; l *= 2 {\n\t\tbuffers[l] = new(sync.Pool)\n\t}\n}\n\nfunc init() {\n\tinitBuffers()\n}\n\n// Init sets up a non-default pooling and allocation strategy. Should be run before serialization is done.\nfunc Init(cfg PoolConfig) {\n\tconfig = cfg\n\tinitBuffers()\n}\n\n// putBuf puts a chunk to reuse pool if it can be reused.\nfunc putBuf(buf []byte) {\n\tsize := cap(buf)\n\tif size < config.PooledSize {\n\t\treturn\n\t}\n\tif c := buffers[size]; c != nil {\n\t\tc.Put(buf[:0])\n\t}\n}\n\n// getBuf gets a chunk from reuse pool or creates a new one if reuse failed.\nfunc getBuf(size int) []byte {\n\tif size < config.PooledSize {\n\t\treturn make([]byte, 0, size)\n\t}\n\n\tif c := buffers[size]; c != nil {\n\t\tv := c.Get()\n\t\tif v != nil {\n\t\t\treturn v.([]byte)\n\t\t}\n\t}\n\treturn make([]byte, 0, size)\n}\n\n// Buffer is a buffer optimized for serialization without extra copying.\ntype Buffer struct {\n\n\t// Buf is the current chunk that can be used for serialization.\n\tBuf []byte\n\n\ttoPool []byte\n\tbufs   [][]byte\n}\n\n// EnsureSpace makes sure that the current chunk contains at least s free bytes,\n// possibly creating a new chunk.\nfunc (b *Buffer) EnsureSpace(s int) {\n\tif cap(b.Buf)-len(b.Buf) >= s {\n\t\treturn\n\t}\n\tl := len(b.Buf)\n\tif l > 0 {\n\t\tif cap(b.toPool) != cap(b.Buf) {\n\t\t\t// Chunk was reallocated, toPool can be pooled.\n\t\t\tputBuf(b.toPool)\n\t\t}\n\t\tif cap(b.bufs) == 0 {\n\t\t\tb.bufs = make([][]byte, 0, 8)\n\t\t}\n\t\tb.bufs = append(b.bufs, b.Buf)\n\t\tl = cap(b.toPool) * 2\n\t} else {\n\t\tl = config.StartSize\n\t}\n\n\tif l > config.MaxSize {\n\t\tl = config.MaxSize\n\t}\n\tb.Buf = getBuf(l)\n\tb.toPool = b.Buf\n}\n\n// AppendByte appends a single byte to buffer.\nfunc (b *Buffer) AppendByte(data byte) {\n\tif cap(b.Buf) == len(b.Buf) { // EnsureSpace won't be inlined.\n\t\tb.EnsureSpace(1)\n\t}\n\tb.Buf = append(b.Buf, data)\n}\n\n// AppendBytes appends a byte slice to buffer.\nfunc (b *Buffer) AppendBytes(data []byte) {\n\tfor len(data) > 0 {\n\t\tif cap(b.Buf) == len(b.Buf) { // EnsureSpace won't be inlined.\n\t\t\tb.EnsureSpace(1)\n\t\t}\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// AppendBytes appends a string to buffer.\nfunc (b *Buffer) AppendString(data string) {\n\tfor len(data) > 0 {\n\t\tif cap(b.Buf) == len(b.Buf) { // EnsureSpace won't be inlined.\n\t\t\tb.EnsureSpace(1)\n\t\t}\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// Size computes the size of a buffer by adding sizes of every chunk.\nfunc (b *Buffer) Size() int {\n\tsize := len(b.Buf)\n\tfor _, buf := range b.bufs {\n\t\tsize += len(buf)\n\t}\n\treturn size\n}\n\n// DumpTo outputs the contents of a buffer to a writer and resets the buffer.\nfunc (b *Buffer) DumpTo(w io.Writer) (written int, err error) {\n\tvar n int\n\tfor _, buf := range b.bufs {\n\t\tif err == nil {\n\t\t\tn, err = w.Write(buf)\n\t\t\twritten += n\n\t\t}\n\t\tputBuf(buf)\n\t}\n\n\tif err == nil {\n\t\tn, err = w.Write(b.Buf)\n\t\twritten += n\n\t}\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.Buf = nil\n\tb.toPool = nil\n\n\treturn\n}\n\n// BuildBytes creates a single byte slice with all the contents of the buffer. Data is\n// copied if it does not fit in a single chunk. You can optionally provide one byte\n// slice as argument that it will try to reuse.\nfunc (b *Buffer) BuildBytes(reuse ...[]byte) []byte {\n\tif len(b.bufs) == 0 {\n\t\tret := b.Buf\n\t\tb.toPool = nil\n\t\tb.Buf = nil\n\t\treturn ret\n\t}\n\n\tvar ret []byte\n\tsize := b.Size()\n\n\t// If we got a buffer as argument and it is big enought, reuse it.\n\tif len(reuse) == 1 && cap(reuse[0]) >= size {\n\t\tret = reuse[0][:0]\n\t} else {\n\t\tret = make([]byte, 0, size)\n\t}\n\tfor _, buf := range b.bufs {\n\t\tret = append(ret, buf...)\n\t\tputBuf(buf)\n\t}\n\n\tret = append(ret, b.Buf...)\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n\ntype readCloser struct {\n\toffset int\n\tbufs   [][]byte\n}\n\nfunc (r *readCloser) Read(p []byte) (n int, err error) {\n\tfor _, buf := range r.bufs {\n\t\t// Copy as much as we can.\n\t\tx := copy(p[n:], buf[r.offset:])\n\t\tn += x // Increment how much we filled.\n\n\t\t// Did we empty the whole buffer?\n\t\tif r.offset+x == len(buf) {\n\t\t\t// On to the next buffer.\n\t\t\tr.offset = 0\n\t\t\tr.bufs = r.bufs[1:]\n\n\t\t\t// We can release this buffer.\n\t\t\tputBuf(buf)\n\t\t} else {\n\t\t\tr.offset += x\n\t\t}\n\n\t\tif n == len(p) {\n\t\t\tbreak\n\t\t}\n\t}\n\t// No buffers left or nothing read?\n\tif len(r.bufs) == 0 {\n\t\terr = io.EOF\n\t}\n\treturn\n}\n\nfunc (r *readCloser) Close() error {\n\t// Release all remaining buffers.\n\tfor _, buf := range r.bufs {\n\t\tputBuf(buf)\n\t}\n\t// In case Close gets called multiple times.\n\tr.bufs = nil\n\n\treturn nil\n}\n\n// ReadCloser creates an io.ReadCloser with all the contents of the buffer.\nfunc (b *Buffer) ReadCloser() io.ReadCloser {\n\tret := &readCloser{0, append(b.bufs, b.Buf)}\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/bytestostr.go",
    "content": "// This file will only be included to the build if neither\n// easyjson_nounsafe nor appengine build tag is set. See README notes\n// for more details.\n\n//+build !easyjson_nounsafe\n//+build !appengine\n\npackage jlexer\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// bytesToStr creates a string pointing at the slice to avoid copying.\n//\n// Warning: the string returned by the function should be used with care, as the whole input data\n// chunk may be either blocked from being freed by GC because of a single string or the buffer.Data\n// may be garbage-collected even when the string exists.\nfunc bytesToStr(data []byte) string {\n\th := (*reflect.SliceHeader)(unsafe.Pointer(&data))\n\tshdr := reflect.StringHeader{Data: h.Data, Len: h.Len}\n\treturn *(*string)(unsafe.Pointer(&shdr))\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go",
    "content": "// This file is included to the build if any of the buildtags below\n// are defined. Refer to README notes for more details.\n\n//+build easyjson_nounsafe appengine\n\npackage jlexer\n\n// bytesToStr creates a string normally from []byte\n//\n// Note that this method is roughly 1.5x slower than using the 'unsafe' method.\nfunc bytesToStr(data []byte) string {\n\treturn string(data)\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/error.go",
    "content": "package jlexer\n\nimport \"fmt\"\n\n// LexerError implements the error interface and represents all possible errors that can be\n// generated during parsing the JSON data.\ntype LexerError struct {\n\tReason string\n\tOffset int\n\tData   string\n}\n\nfunc (l *LexerError) Error() string {\n\treturn fmt.Sprintf(\"parse error: %s near offset %d of '%s'\", l.Reason, l.Offset, l.Data)\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/lexer.go",
    "content": "// Package jlexer contains a JSON lexer implementation.\n//\n// It is expected that it is mostly used with generated parser code, so the interface is tuned\n// for a parser that knows what kind of data is expected.\npackage jlexer\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// tokenKind determines type of a token.\ntype tokenKind byte\n\nconst (\n\ttokenUndef  tokenKind = iota // No token.\n\ttokenDelim                   // Delimiter: one of '{', '}', '[' or ']'.\n\ttokenString                  // A string literal, e.g. \"abc\\u1234\"\n\ttokenNumber                  // Number literal, e.g. 1.5e5\n\ttokenBool                    // Boolean literal: true or false.\n\ttokenNull                    // null keyword.\n)\n\n// token describes a single token: type, position in the input and value.\ntype token struct {\n\tkind tokenKind // Type of a token.\n\n\tboolValue  bool   // Value if a boolean literal token.\n\tbyteValue  []byte // Raw value of a token.\n\tdelimValue byte\n}\n\n// Lexer is a JSON lexer: it iterates over JSON tokens in a byte slice.\ntype Lexer struct {\n\tData []byte // Input data given to the lexer.\n\n\tstart int   // Start of the current token.\n\tpos   int   // Current unscanned position in the input stream.\n\ttoken token // Last scanned token, if token.kind != tokenUndef.\n\n\tfirstElement bool // Whether current element is the first in array or an object.\n\twantSep      byte // A comma or a colon character, which need to occur before a token.\n\n\tUseMultipleErrors bool          // If we want to use multiple errors.\n\tfatalError        error         // Fatal error occurred during lexing. It is usually a syntax error.\n\tmultipleErrors    []*LexerError // Semantic errors occurred during lexing. Marshalling will be continued after finding this errors.\n}\n\n// FetchToken scans the input for the next token.\nfunc (r *Lexer) FetchToken() {\n\tr.token.kind = tokenUndef\n\tr.start = r.pos\n\n\t// Check if r.Data has r.pos element\n\t// If it doesn't, it mean corrupted input data\n\tif len(r.Data) < r.pos {\n\t\tr.errParse(\"Unexpected end of data\")\n\t\treturn\n\t}\n\t// Determine the type of a token by skipping whitespace and reading the\n\t// first character.\n\tfor _, c := range r.Data[r.pos:] {\n\t\tswitch c {\n\t\tcase ':', ',':\n\t\t\tif r.wantSep == c {\n\t\t\t\tr.pos++\n\t\t\t\tr.start++\n\t\t\t\tr.wantSep = 0\n\t\t\t} else {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\tcase ' ', '\\t', '\\r', '\\n':\n\t\t\tr.pos++\n\t\t\tr.start++\n\n\t\tcase '\"':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenString\n\t\t\tr.fetchString()\n\t\t\treturn\n\n\t\tcase '{', '[':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.firstElement = true\n\t\t\tr.token.kind = tokenDelim\n\t\t\tr.token.delimValue = r.Data[r.pos]\n\t\t\tr.pos++\n\t\t\treturn\n\n\t\tcase '}', ']':\n\t\t\tif !r.firstElement && (r.wantSep != ',') {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.wantSep = 0\n\t\t\tr.token.kind = tokenDelim\n\t\t\tr.token.delimValue = r.Data[r.pos]\n\t\t\tr.pos++\n\t\t\treturn\n\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.token.kind = tokenNumber\n\t\t\tr.fetchNumber()\n\t\t\treturn\n\n\t\tcase 'n':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenNull\n\t\t\tr.fetchNull()\n\t\t\treturn\n\n\t\tcase 't':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenBool\n\t\t\tr.token.boolValue = true\n\t\t\tr.fetchTrue()\n\t\t\treturn\n\n\t\tcase 'f':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenBool\n\t\t\tr.token.boolValue = false\n\t\t\tr.fetchFalse()\n\t\t\treturn\n\n\t\tdefault:\n\t\t\tr.errSyntax()\n\t\t\treturn\n\t\t}\n\t}\n\tr.fatalError = io.EOF\n\treturn\n}\n\n// isTokenEnd returns true if the char can follow a non-delimiter token\nfunc isTokenEnd(c byte) bool {\n\treturn c == ' ' || c == '\\t' || c == '\\r' || c == '\\n' || c == '[' || c == ']' || c == '{' || c == '}' || c == ',' || c == ':'\n}\n\n// fetchNull fetches and checks remaining bytes of null keyword.\nfunc (r *Lexer) fetchNull() {\n\tr.pos += 4\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-3] != 'u' ||\n\t\tr.Data[r.pos-2] != 'l' ||\n\t\tr.Data[r.pos-1] != 'l' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 4\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchTrue fetches and checks remaining bytes of true keyword.\nfunc (r *Lexer) fetchTrue() {\n\tr.pos += 4\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-3] != 'r' ||\n\t\tr.Data[r.pos-2] != 'u' ||\n\t\tr.Data[r.pos-1] != 'e' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 4\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchFalse fetches and checks remaining bytes of false keyword.\nfunc (r *Lexer) fetchFalse() {\n\tr.pos += 5\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-4] != 'a' ||\n\t\tr.Data[r.pos-3] != 'l' ||\n\t\tr.Data[r.pos-2] != 's' ||\n\t\tr.Data[r.pos-1] != 'e' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 5\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchNumber scans a number literal token.\nfunc (r *Lexer) fetchNumber() {\n\thasE := false\n\tafterE := false\n\thasDot := false\n\n\tr.pos++\n\tfor i, c := range r.Data[r.pos:] {\n\t\tswitch {\n\t\tcase c >= '0' && c <= '9':\n\t\t\tafterE = false\n\t\tcase c == '.' && !hasDot:\n\t\t\thasDot = true\n\t\tcase (c == 'e' || c == 'E') && !hasE:\n\t\t\thasE = true\n\t\t\thasDot = true\n\t\t\tafterE = true\n\t\tcase (c == '+' || c == '-') && afterE:\n\t\t\tafterE = false\n\t\tdefault:\n\t\t\tr.pos += i\n\t\t\tif !isTokenEnd(c) {\n\t\t\t\tr.errSyntax()\n\t\t\t} else {\n\t\t\t\tr.token.byteValue = r.Data[r.start:r.pos]\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\n\tr.pos = len(r.Data)\n\tr.token.byteValue = r.Data[r.start:]\n}\n\n// findStringLen tries to scan into the string literal for ending quote char to determine required size.\n// The size will be exact if no escapes are present and may be inexact if there are escaped chars.\nfunc findStringLen(data []byte) (isValid, hasEscapes bool, length int) {\n\tdelta := 0\n\n\tfor i := 0; i < len(data); i++ {\n\t\tswitch data[i] {\n\t\tcase '\\\\':\n\t\t\ti++\n\t\t\tdelta++\n\t\t\tif i < len(data) && data[i] == 'u' {\n\t\t\t\tdelta++\n\t\t\t}\n\t\tcase '\"':\n\t\t\treturn true, (delta > 0), (i - delta)\n\t\t}\n\t}\n\n\treturn false, false, len(data)\n}\n\n// getu4 decodes \\uXXXX from the beginning of s, returning the hex value,\n// or it returns -1.\nfunc getu4(s []byte) rune {\n\tif len(s) < 6 || s[0] != '\\\\' || s[1] != 'u' {\n\t\treturn -1\n\t}\n\tvar val rune\n\tfor i := 2; i < len(s) && i < 6; i++ {\n\t\tvar v byte\n\t\tc := s[i]\n\t\tswitch c {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tv = c - '0'\n\t\tcase 'a', 'b', 'c', 'd', 'e', 'f':\n\t\t\tv = c - 'a' + 10\n\t\tcase 'A', 'B', 'C', 'D', 'E', 'F':\n\t\t\tv = c - 'A' + 10\n\t\tdefault:\n\t\t\treturn -1\n\t\t}\n\n\t\tval <<= 4\n\t\tval |= rune(v)\n\t}\n\treturn val\n}\n\n// processEscape processes a single escape sequence and returns number of bytes processed.\nfunc (r *Lexer) processEscape(data []byte) (int, error) {\n\tif len(data) < 2 {\n\t\treturn 0, fmt.Errorf(\"syntax error at %v\", string(data))\n\t}\n\n\tc := data[1]\n\tswitch c {\n\tcase '\"', '/', '\\\\':\n\t\tr.token.byteValue = append(r.token.byteValue, c)\n\t\treturn 2, nil\n\tcase 'b':\n\t\tr.token.byteValue = append(r.token.byteValue, '\\b')\n\t\treturn 2, nil\n\tcase 'f':\n\t\tr.token.byteValue = append(r.token.byteValue, '\\f')\n\t\treturn 2, nil\n\tcase 'n':\n\t\tr.token.byteValue = append(r.token.byteValue, '\\n')\n\t\treturn 2, nil\n\tcase 'r':\n\t\tr.token.byteValue = append(r.token.byteValue, '\\r')\n\t\treturn 2, nil\n\tcase 't':\n\t\tr.token.byteValue = append(r.token.byteValue, '\\t')\n\t\treturn 2, nil\n\tcase 'u':\n\t\trr := getu4(data)\n\t\tif rr < 0 {\n\t\t\treturn 0, errors.New(\"syntax error\")\n\t\t}\n\n\t\tread := 6\n\t\tif utf16.IsSurrogate(rr) {\n\t\t\trr1 := getu4(data[read:])\n\t\t\tif dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {\n\t\t\t\tread += 6\n\t\t\t\trr = dec\n\t\t\t} else {\n\t\t\t\trr = unicode.ReplacementChar\n\t\t\t}\n\t\t}\n\t\tvar d [4]byte\n\t\ts := utf8.EncodeRune(d[:], rr)\n\t\tr.token.byteValue = append(r.token.byteValue, d[:s]...)\n\t\treturn read, nil\n\t}\n\n\treturn 0, errors.New(\"syntax error\")\n}\n\n// fetchString scans a string literal token.\nfunc (r *Lexer) fetchString() {\n\tr.pos++\n\tdata := r.Data[r.pos:]\n\n\tisValid, hasEscapes, length := findStringLen(data)\n\tif !isValid {\n\t\tr.pos += length\n\t\tr.errParse(\"unterminated string literal\")\n\t\treturn\n\t}\n\tif !hasEscapes {\n\t\tr.token.byteValue = data[:length]\n\t\tr.pos += length + 1\n\t\treturn\n\t}\n\n\tr.token.byteValue = make([]byte, 0, length)\n\tp := 0\n\tfor i := 0; i < len(data); {\n\t\tswitch data[i] {\n\t\tcase '\"':\n\t\t\tr.pos += i + 1\n\t\t\tr.token.byteValue = append(r.token.byteValue, data[p:i]...)\n\t\t\ti++\n\t\t\treturn\n\n\t\tcase '\\\\':\n\t\t\tr.token.byteValue = append(r.token.byteValue, data[p:i]...)\n\t\t\toff, err := r.processEscape(data[i:])\n\t\t\tif err != nil {\n\t\t\t\tr.errParse(err.Error())\n\t\t\t\treturn\n\t\t\t}\n\t\t\ti += off\n\t\t\tp = i\n\n\t\tdefault:\n\t\t\ti++\n\t\t}\n\t}\n\tr.errParse(\"unterminated string literal\")\n}\n\n// scanToken scans the next token if no token is currently available in the lexer.\nfunc (r *Lexer) scanToken() {\n\tif r.token.kind != tokenUndef || r.fatalError != nil {\n\t\treturn\n\t}\n\n\tr.FetchToken()\n}\n\n// consume resets the current token to allow scanning the next one.\nfunc (r *Lexer) consume() {\n\tr.token.kind = tokenUndef\n\tr.token.delimValue = 0\n}\n\n// Ok returns true if no error (including io.EOF) was encountered during scanning.\nfunc (r *Lexer) Ok() bool {\n\treturn r.fatalError == nil\n}\n\nconst maxErrorContextLen = 13\n\nfunc (r *Lexer) errParse(what string) {\n\tif r.fatalError == nil {\n\t\tvar str string\n\t\tif len(r.Data)-r.pos <= maxErrorContextLen {\n\t\t\tstr = string(r.Data)\n\t\t} else {\n\t\t\tstr = string(r.Data[r.pos:r.pos+maxErrorContextLen-3]) + \"...\"\n\t\t}\n\t\tr.fatalError = &LexerError{\n\t\t\tReason: what,\n\t\t\tOffset: r.pos,\n\t\t\tData:   str,\n\t\t}\n\t}\n}\n\nfunc (r *Lexer) errSyntax() {\n\tr.errParse(\"syntax error\")\n}\n\nfunc (r *Lexer) errInvalidToken(expected string) {\n\tif r.fatalError != nil {\n\t\treturn\n\t}\n\tif r.UseMultipleErrors {\n\t\tr.pos = r.start\n\t\tr.consume()\n\t\tr.SkipRecursive()\n\t\tswitch expected {\n\t\tcase \"[\":\n\t\t\tr.token.delimValue = ']'\n\t\t\tr.token.kind = tokenDelim\n\t\tcase \"{\":\n\t\t\tr.token.delimValue = '}'\n\t\t\tr.token.kind = tokenDelim\n\t\t}\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tReason: fmt.Sprintf(\"expected %s\", expected),\n\t\t\tOffset: r.start,\n\t\t\tData:   string(r.Data[r.start:r.pos]),\n\t\t})\n\t\treturn\n\t}\n\n\tvar str string\n\tif len(r.token.byteValue) <= maxErrorContextLen {\n\t\tstr = string(r.token.byteValue)\n\t} else {\n\t\tstr = string(r.token.byteValue[:maxErrorContextLen-3]) + \"...\"\n\t}\n\tr.fatalError = &LexerError{\n\t\tReason: fmt.Sprintf(\"expected %s\", expected),\n\t\tOffset: r.pos,\n\t\tData:   str,\n\t}\n}\n\nfunc (r *Lexer) GetPos() int {\n\treturn r.pos\n}\n\n// Delim consumes a token and verifies that it is the given delimiter.\nfunc (r *Lexer) Delim(c byte) {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\n\tif !r.Ok() || r.token.delimValue != c {\n\t\tr.consume() // errInvalidToken can change token if UseMultipleErrors is enabled.\n\t\tr.errInvalidToken(string([]byte{c}))\n\t} else {\n\t\tr.consume()\n\t}\n}\n\n// IsDelim returns true if there was no scanning error and next token is the given delimiter.\nfunc (r *Lexer) IsDelim(c byte) bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\treturn !r.Ok() || r.token.delimValue == c\n}\n\n// Null verifies that the next token is null and consumes it.\nfunc (r *Lexer) Null() {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenNull {\n\t\tr.errInvalidToken(\"null\")\n\t}\n\tr.consume()\n}\n\n// IsNull returns true if the next token is a null keyword.\nfunc (r *Lexer) IsNull() bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\treturn r.Ok() && r.token.kind == tokenNull\n}\n\n// Skip skips a single token.\nfunc (r *Lexer) Skip() {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tr.consume()\n}\n\n// SkipRecursive skips next array or object completely, or just skips a single token if not\n// an array/object.\n//\n// Note: no syntax validation is performed on the skipped data.\nfunc (r *Lexer) SkipRecursive() {\n\tr.scanToken()\n\tvar start, end byte\n\n\tif r.token.delimValue == '{' {\n\t\tstart, end = '{', '}'\n\t} else if r.token.delimValue == '[' {\n\t\tstart, end = '[', ']'\n\t} else {\n\t\tr.consume()\n\t\treturn\n\t}\n\n\tr.consume()\n\n\tlevel := 1\n\tinQuotes := false\n\twasEscape := false\n\n\tfor i, c := range r.Data[r.pos:] {\n\t\tswitch {\n\t\tcase c == start && !inQuotes:\n\t\t\tlevel++\n\t\tcase c == end && !inQuotes:\n\t\t\tlevel--\n\t\t\tif level == 0 {\n\t\t\t\tr.pos += i + 1\n\t\t\t\treturn\n\t\t\t}\n\t\tcase c == '\\\\' && inQuotes:\n\t\t\twasEscape = !wasEscape\n\t\t\tcontinue\n\t\tcase c == '\"' && inQuotes:\n\t\t\tinQuotes = wasEscape\n\t\tcase c == '\"':\n\t\t\tinQuotes = true\n\t\t}\n\t\twasEscape = false\n\t}\n\tr.pos = len(r.Data)\n\tr.fatalError = &LexerError{\n\t\tReason: \"EOF reached while skipping array/object or token\",\n\t\tOffset: r.pos,\n\t\tData:   string(r.Data[r.pos:]),\n\t}\n}\n\n// Raw fetches the next item recursively as a data slice\nfunc (r *Lexer) Raw() []byte {\n\tr.SkipRecursive()\n\tif !r.Ok() {\n\t\treturn nil\n\t}\n\treturn r.Data[r.start:r.pos]\n}\n\n// IsStart returns whether the lexer is positioned at the start\n// of an input string.\nfunc (r *Lexer) IsStart() bool {\n\treturn r.pos == 0\n}\n\n// Consumed reads all remaining bytes from the input, publishing an error if\n// there is anything but whitespace remaining.\nfunc (r *Lexer) Consumed() {\n\tif r.pos > len(r.Data) || !r.Ok() {\n\t\treturn\n\t}\n\n\tfor _, c := range r.Data[r.pos:] {\n\t\tif c != ' ' && c != '\\t' && c != '\\r' && c != '\\n' {\n\t\t\tr.AddError(&LexerError{\n\t\t\t\tReason: \"invalid character '\" + string(c) + \"' after top-level value\",\n\t\t\t\tOffset: r.pos,\n\t\t\t\tData:   string(r.Data[r.pos:]),\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\tr.pos++\n\t\tr.start++\n\t}\n}\n\nfunc (r *Lexer) unsafeString() (string, []byte) {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\", nil\n\t}\n\tbytes := r.token.byteValue\n\tret := bytesToStr(r.token.byteValue)\n\tr.consume()\n\treturn ret, bytes\n}\n\n// UnsafeString returns the string value if the token is a string literal.\n//\n// Warning: returned string may point to the input buffer, so the string should not outlive\n// the input buffer. Intended pattern of usage is as an argument to a switch statement.\nfunc (r *Lexer) UnsafeString() string {\n\tret, _ := r.unsafeString()\n\treturn ret\n}\n\n// UnsafeBytes returns the byte slice if the token is a string literal.\nfunc (r *Lexer) UnsafeBytes() []byte {\n\t_, ret := r.unsafeString()\n\treturn ret\n}\n\n// String reads a string literal.\nfunc (r *Lexer) String() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tret := string(r.token.byteValue)\n\tr.consume()\n\treturn ret\n}\n\n// Bytes reads a string literal and base64 decodes it into a byte slice.\nfunc (r *Lexer) Bytes() []byte {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn nil\n\t}\n\tret := make([]byte, base64.StdEncoding.DecodedLen(len(r.token.byteValue)))\n\tn, err := base64.StdEncoding.Decode(ret, r.token.byteValue)\n\tif err != nil {\n\t\tr.fatalError = &LexerError{\n\t\t\tReason: err.Error(),\n\t\t}\n\t\treturn nil\n\t}\n\n\tr.consume()\n\treturn ret[:n]\n}\n\n// Bool reads a true or false boolean keyword.\nfunc (r *Lexer) Bool() bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenBool {\n\t\tr.errInvalidToken(\"bool\")\n\t\treturn false\n\t}\n\tret := r.token.boolValue\n\tr.consume()\n\treturn ret\n}\n\nfunc (r *Lexer) number() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenNumber {\n\t\tr.errInvalidToken(\"number\")\n\t\treturn \"\"\n\t}\n\tret := bytesToStr(r.token.byteValue)\n\tr.consume()\n\treturn ret\n}\n\nfunc (r *Lexer) Uint8() uint8 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint8(n)\n}\n\nfunc (r *Lexer) Uint16() uint16 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint16(n)\n}\n\nfunc (r *Lexer) Uint32() uint32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint32(n)\n}\n\nfunc (r *Lexer) Uint64() uint64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Uint() uint {\n\treturn uint(r.Uint64())\n}\n\nfunc (r *Lexer) Int8() int8 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int8(n)\n}\n\nfunc (r *Lexer) Int16() int16 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int16(n)\n}\n\nfunc (r *Lexer) Int32() int32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int32(n)\n}\n\nfunc (r *Lexer) Int64() int64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Int() int {\n\treturn int(r.Int64())\n}\n\nfunc (r *Lexer) Uint8Str() uint8 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint8(n)\n}\n\nfunc (r *Lexer) Uint16Str() uint16 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint16(n)\n}\n\nfunc (r *Lexer) Uint32Str() uint32 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint32(n)\n}\n\nfunc (r *Lexer) Uint64Str() uint64 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) UintStr() uint {\n\treturn uint(r.Uint64Str())\n}\n\nfunc (r *Lexer) UintptrStr() uintptr {\n\treturn uintptr(r.Uint64Str())\n}\n\nfunc (r *Lexer) Int8Str() int8 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int8(n)\n}\n\nfunc (r *Lexer) Int16Str() int16 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int16(n)\n}\n\nfunc (r *Lexer) Int32Str() int32 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int32(n)\n}\n\nfunc (r *Lexer) Int64Str() int64 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) IntStr() int {\n\treturn int(r.Int64Str())\n}\n\nfunc (r *Lexer) Float32() float32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn float32(n)\n}\n\nfunc (r *Lexer) Float32Str() float32 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\tn, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn float32(n)\n}\n\nfunc (r *Lexer) Float64() float64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Float64Str() float64 {\n\ts, b := r.unsafeString()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\tn, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Error() error {\n\treturn r.fatalError\n}\n\nfunc (r *Lexer) AddError(e error) {\n\tif r.fatalError == nil {\n\t\tr.fatalError = e\n\t}\n}\n\nfunc (r *Lexer) AddNonFatalError(e error) {\n\tr.addNonfatalError(&LexerError{\n\t\tOffset: r.start,\n\t\tData:   string(r.Data[r.start:r.pos]),\n\t\tReason: e.Error(),\n\t})\n}\n\nfunc (r *Lexer) addNonfatalError(err *LexerError) {\n\tif r.UseMultipleErrors {\n\t\t// We don't want to add errors with the same offset.\n\t\tif len(r.multipleErrors) != 0 && r.multipleErrors[len(r.multipleErrors)-1].Offset == err.Offset {\n\t\t\treturn\n\t\t}\n\t\tr.multipleErrors = append(r.multipleErrors, err)\n\t\treturn\n\t}\n\tr.fatalError = err\n}\n\nfunc (r *Lexer) GetNonFatalErrors() []*LexerError {\n\treturn r.multipleErrors\n}\n\n// JsonNumber fetches and json.Number from 'encoding/json' package.\n// Both int, float or string, contains them are valid values\nfunc (r *Lexer) JsonNumber() json.Number {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() {\n\t\tr.errInvalidToken(\"json.Number\")\n\t\treturn json.Number(\"\")\n\t}\n\n\tswitch r.token.kind {\n\tcase tokenString:\n\t\treturn json.Number(r.String())\n\tcase tokenNumber:\n\t\treturn json.Number(r.Raw())\n\tcase tokenNull:\n\t\tr.Null()\n\t\treturn json.Number(\"\")\n\tdefault:\n\t\tr.errSyntax()\n\t\treturn json.Number(\"\")\n\t}\n}\n\n// Interface fetches an interface{} analogous to the 'encoding/json' package.\nfunc (r *Lexer) Interface() interface{} {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\n\tif !r.Ok() {\n\t\treturn nil\n\t}\n\tswitch r.token.kind {\n\tcase tokenString:\n\t\treturn r.String()\n\tcase tokenNumber:\n\t\treturn r.Float64()\n\tcase tokenBool:\n\t\treturn r.Bool()\n\tcase tokenNull:\n\t\tr.Null()\n\t\treturn nil\n\t}\n\n\tif r.token.delimValue == '{' {\n\t\tr.consume()\n\n\t\tret := map[string]interface{}{}\n\t\tfor !r.IsDelim('}') {\n\t\t\tkey := r.String()\n\t\t\tr.WantColon()\n\t\t\tret[key] = r.Interface()\n\t\t\tr.WantComma()\n\t\t}\n\t\tr.Delim('}')\n\n\t\tif r.Ok() {\n\t\t\treturn ret\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t} else if r.token.delimValue == '[' {\n\t\tr.consume()\n\n\t\tvar ret []interface{}\n\t\tfor !r.IsDelim(']') {\n\t\t\tret = append(ret, r.Interface())\n\t\t\tr.WantComma()\n\t\t}\n\t\tr.Delim(']')\n\n\t\tif r.Ok() {\n\t\t\treturn ret\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t}\n\tr.errSyntax()\n\treturn nil\n}\n\n// WantComma requires a comma to be present before fetching next token.\nfunc (r *Lexer) WantComma() {\n\tr.wantSep = ','\n\tr.firstElement = false\n}\n\n// WantColon requires a colon to be present before fetching next token.\nfunc (r *Lexer) WantColon() {\n\tr.wantSep = ':'\n\tr.firstElement = false\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jwriter/writer.go",
    "content": "// Package jwriter contains a JSON writer.\npackage jwriter\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"github.com/mailru/easyjson/buffer\"\n)\n\n// Flags describe various encoding options. The behavior may be actually implemented in the encoder, but\n// Flags field in Writer is used to set and pass them around.\ntype Flags int\n\nconst (\n\tNilMapAsEmpty   Flags = 1 << iota // Encode nil map as '{}' rather than 'null'.\n\tNilSliceAsEmpty                   // Encode nil slice as '[]' rather than 'null'.\n)\n\n// Writer is a JSON writer.\ntype Writer struct {\n\tFlags Flags\n\n\tError        error\n\tBuffer       buffer.Buffer\n\tNoEscapeHTML bool\n}\n\n// Size returns the size of the data that was written out.\nfunc (w *Writer) Size() int {\n\treturn w.Buffer.Size()\n}\n\n// DumpTo outputs the data to given io.Writer, resetting the buffer.\nfunc (w *Writer) DumpTo(out io.Writer) (written int, err error) {\n\treturn w.Buffer.DumpTo(out)\n}\n\n// BuildBytes returns writer data as a single byte slice. You can optionally provide one byte slice\n// as argument that it will try to reuse.\nfunc (w *Writer) BuildBytes(reuse ...[]byte) ([]byte, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.BuildBytes(reuse...), nil\n}\n\n// ReadCloser returns an io.ReadCloser that can be used to read the data.\n// ReadCloser also resets the buffer.\nfunc (w *Writer) ReadCloser() (io.ReadCloser, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.ReadCloser(), nil\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawByte(c byte) {\n\tw.Buffer.AppendByte(c)\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawString(s string) {\n\tw.Buffer.AppendString(s)\n}\n\n// Raw appends raw binary data to the buffer or sets the error if it is given. Useful for\n// calling with results of MarshalJSON-like functions.\nfunc (w *Writer) Raw(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.Buffer.AppendBytes(data)\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// RawText encloses raw binary data in quotes and appends in to the buffer.\n// Useful for calling with results of MarshalText-like functions.\nfunc (w *Writer) RawText(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.String(string(data))\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// Base64Bytes appends data to the buffer after base64 encoding it\nfunc (w *Writer) Base64Bytes(data []byte) {\n\tif data == nil {\n\t\tw.Buffer.AppendString(\"null\")\n\t\treturn\n\t}\n\tw.Buffer.AppendByte('\"')\n\tw.base64(data)\n\tw.Buffer.AppendByte('\"')\n}\n\nfunc (w *Writer) Uint8(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint16(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint32(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint64(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Int8(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int16(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int32(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int64(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Uint8Str(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint16Str(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint32Str(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintStr(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint64Str(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintptrStr(n uintptr) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int8Str(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int16Str(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int32Str(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) IntStr(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int64Str(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float32(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n}\n\nfunc (w *Writer) Float32Str(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float64(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, n, 'g', -1, 64)\n}\n\nfunc (w *Writer) Float64Str(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 64)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Bool(v bool) {\n\tw.Buffer.EnsureSpace(5)\n\tif v {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"true\"...)\n\t} else {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"false\"...)\n\t}\n}\n\nconst chars = \"0123456789abcdef\"\n\nfunc isNotEscapedSingleChar(c byte, escapeHTML bool) bool {\n\t// Note: might make sense to use a table if there are more chars to escape. With 4 chars\n\t// it benchmarks the same.\n\tif escapeHTML {\n\t\treturn c != '<' && c != '>' && c != '&' && c != '\\\\' && c != '\"' && c >= 0x20 && c < utf8.RuneSelf\n\t} else {\n\t\treturn c != '\\\\' && c != '\"' && c >= 0x20 && c < utf8.RuneSelf\n\t}\n}\n\nfunc (w *Writer) String(s string) {\n\tw.Buffer.AppendByte('\"')\n\n\t// Portions of the string that contain no escapes are appended as\n\t// byte slices.\n\n\tp := 0 // last non-escape symbol\n\n\tfor i := 0; i < len(s); {\n\t\tc := s[i]\n\n\t\tif isNotEscapedSingleChar(c, !w.NoEscapeHTML) {\n\t\t\t// single-width character, no escaping is required\n\t\t\ti++\n\t\t\tcontinue\n\t\t} else if c < utf8.RuneSelf {\n\t\t\t// single-with character, need to escape\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tswitch c {\n\t\t\tcase '\\t':\n\t\t\t\tw.Buffer.AppendString(`\\t`)\n\t\t\tcase '\\r':\n\t\t\t\tw.Buffer.AppendString(`\\r`)\n\t\t\tcase '\\n':\n\t\t\t\tw.Buffer.AppendString(`\\n`)\n\t\t\tcase '\\\\':\n\t\t\t\tw.Buffer.AppendString(`\\\\`)\n\t\t\tcase '\"':\n\t\t\t\tw.Buffer.AppendString(`\\\"`)\n\t\t\tdefault:\n\t\t\t\tw.Buffer.AppendString(`\\u00`)\n\t\t\t\tw.Buffer.AppendByte(chars[c>>4])\n\t\t\t\tw.Buffer.AppendByte(chars[c&0xf])\n\t\t\t}\n\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// broken utf\n\t\truneValue, runeWidth := utf8.DecodeRuneInString(s[i:])\n\t\tif runeValue == utf8.RuneError && runeWidth == 1 {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\ufffd`)\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// jsonp stuff - tab separator and line separator\n\t\tif runeValue == '\\u2028' || runeValue == '\\u2029' {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\u202`)\n\t\t\tw.Buffer.AppendByte(chars[runeValue&0xf])\n\t\t\ti += runeWidth\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\t\ti += runeWidth\n\t}\n\tw.Buffer.AppendString(s[p:])\n\tw.Buffer.AppendByte('\"')\n}\n\nconst encode = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\nconst padChar = '='\n\nfunc (w *Writer) base64(in []byte) {\n\n\tif len(in) == 0 {\n\t\treturn\n\t}\n\n\tw.Buffer.EnsureSpace(((len(in)-1)/3 + 1) * 4)\n\n\tsi := 0\n\tn := (len(in) / 3) * 3\n\n\tfor si < n {\n\t\t// Convert 3x 8bit source bytes into 4 bytes\n\t\tval := uint(in[si+0])<<16 | uint(in[si+1])<<8 | uint(in[si+2])\n\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F], encode[val>>6&0x3F], encode[val&0x3F])\n\n\t\tsi += 3\n\t}\n\n\tremain := len(in) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Add the remaining small block\n\tval := uint(in[si+0]) << 16\n\tif remain == 2 {\n\t\tval |= uint(in[si+1]) << 8\n\t}\n\n\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F])\n\n\tswitch remain {\n\tcase 2:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>6&0x3F], byte(padChar))\n\tcase 1:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, byte(padChar), byte(padChar))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/.travis.yml",
    "content": "language: go\ngo:\n  - tip\n\nos:\n  - linux\n  - osx\n\nbefore_install:\n  - go get github.com/mattn/goveralls\n  - go get golang.org/x/tools/cmd/cover\nscript:\n  - $HOME/gopath/bin/goveralls -repotoken 3gHdORO5k5ziZcWMBxnd9LrMZaJs8m9x5\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/LICENSE",
    "content": "Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com>\n\nMIT License (Expat)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/README.md",
    "content": "# go-isatty\n\n[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty)\n[![Build Status](https://travis-ci.org/mattn/go-isatty.svg?branch=master)](https://travis-ci.org/mattn/go-isatty)\n[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty)\n\nisatty for golang\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/mattn/go-isatty\"\n\t\"os\"\n)\n\nfunc main() {\n\tif isatty.IsTerminal(os.Stdout.Fd()) {\n\t\tfmt.Println(\"Is Terminal\")\n\t} else if isatty.IsCygwinTerminal(os.Stdout.Fd()) {\n\t\tfmt.Println(\"Is Cygwin/MSYS2 Terminal\")\n\t} else {\n\t\tfmt.Println(\"Is Not Terminal\")\n\t}\n}\n```\n\n## Installation\n\n```\n$ go get github.com/mattn/go-isatty\n```\n\n## License\n\nMIT\n\n## Author\n\nYasuhiro Matsumoto (a.k.a mattn)\n\n## Thanks\n\n* k-takata: base idea for IsCygwinTerminal\n\n    https://github.com/k-takata/go-iscygpty\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/doc.go",
    "content": "// Package isatty implements interface to isatty\npackage isatty\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/go.mod",
    "content": "module github.com/mattn/go-isatty\n\nrequire golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/go.sum",
    "content": "golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_android.go",
    "content": "// +build android\n\npackage isatty\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst ioctlReadTermios = syscall.TCGETS\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tvar termios syscall.Termios\n\t_, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)\n\treturn err == 0\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_bsd.go",
    "content": "// +build darwin freebsd openbsd netbsd dragonfly\n// +build !appengine\n\npackage isatty\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst ioctlReadTermios = syscall.TIOCGETA\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tvar termios syscall.Termios\n\t_, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)\n\treturn err == 0\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_others.go",
    "content": "// +build appengine js nacl\n\npackage isatty\n\n// IsTerminal returns true if the file descriptor is terminal which\n// is always false on js and appengine classic which is a sandboxed PaaS.\nfunc IsTerminal(fd uintptr) bool {\n\treturn false\n}\n\n// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_solaris.go",
    "content": "// +build solaris\n// +build !appengine\n\npackage isatty\n\nimport (\n\t\"golang.org/x/sys/unix\"\n)\n\n// IsTerminal returns true if the given file descriptor is a terminal.\n// see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c\nfunc IsTerminal(fd uintptr) bool {\n\tvar termio unix.Termio\n\terr := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_tcgets.go",
    "content": "// +build linux aix\n// +build !appengine\n// +build !android\n\npackage isatty\n\nimport \"golang.org/x/sys/unix\"\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\t_, err := unix.IoctlGetTermios(int(fd), unix.TCGETS)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_windows.go",
    "content": "// +build windows\n// +build !appengine\n\npackage isatty\n\nimport (\n\t\"strings\"\n\t\"syscall\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\nconst (\n\tfileNameInfo uintptr = 2\n\tfileTypePipe         = 3\n)\n\nvar (\n\tkernel32                         = syscall.NewLazyDLL(\"kernel32.dll\")\n\tprocGetConsoleMode               = kernel32.NewProc(\"GetConsoleMode\")\n\tprocGetFileInformationByHandleEx = kernel32.NewProc(\"GetFileInformationByHandleEx\")\n\tprocGetFileType                  = kernel32.NewProc(\"GetFileType\")\n)\n\nfunc init() {\n\t// Check if GetFileInformationByHandleEx is available.\n\tif procGetFileInformationByHandleEx.Find() != nil {\n\t\tprocGetFileInformationByHandleEx = nil\n\t}\n}\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tvar st uint32\n\tr, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)\n\treturn r != 0 && e == 0\n}\n\n// Check pipe name is used for cygwin/msys2 pty.\n// Cygwin/MSYS2 PTY has a name like:\n//   \\{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master\nfunc isCygwinPipeName(name string) bool {\n\ttoken := strings.Split(name, \"-\")\n\tif len(token) < 5 {\n\t\treturn false\n\t}\n\n\tif token[0] != `\\msys` && token[0] != `\\cygwin` {\n\t\treturn false\n\t}\n\n\tif token[1] == \"\" {\n\t\treturn false\n\t}\n\n\tif !strings.HasPrefix(token[2], \"pty\") {\n\t\treturn false\n\t}\n\n\tif token[3] != `from` && token[3] != `to` {\n\t\treturn false\n\t}\n\n\tif token[4] != \"master\" {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2\n// terminal.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\tif procGetFileInformationByHandleEx == nil {\n\t\treturn false\n\t}\n\n\t// Cygwin/msys's pty is a pipe.\n\tft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0)\n\tif ft != fileTypePipe || e != 0 {\n\t\treturn false\n\t}\n\n\tvar buf [2 + syscall.MAX_PATH]uint16\n\tr, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(),\n\t\t4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)),\n\t\tuintptr(len(buf)*2), 0, 0)\n\tif r == 0 || e != 0 {\n\t\treturn false\n\t}\n\n\tl := *(*uint32)(unsafe.Pointer(&buf))\n\treturn isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2])))\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.gitignore",
    "content": "/coverage.txt\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.8.x\n  - 1.x\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - ./test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/README.md",
    "content": "# concurrent\n\n[![Sourcegraph](https://sourcegraph.com/github.com/modern-go/concurrent/-/badge.svg)](https://sourcegraph.com/github.com/modern-go/concurrent?badge)\n[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/modern-go/concurrent)\n[![Build Status](https://travis-ci.org/modern-go/concurrent.svg?branch=master)](https://travis-ci.org/modern-go/concurrent)\n[![codecov](https://codecov.io/gh/modern-go/concurrent/branch/master/graph/badge.svg)](https://codecov.io/gh/modern-go/concurrent)\n[![rcard](https://goreportcard.com/badge/github.com/modern-go/concurrent)](https://goreportcard.com/report/github.com/modern-go/concurrent)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/modern-go/concurrent/master/LICENSE)\n\n* concurrent.Map: backport sync.Map for go below 1.9\n* concurrent.Executor: goroutine with explicit ownership and cancellable\n\n# concurrent.Map\n\nbecause sync.Map is only available in go 1.9, we can use concurrent.Map to make code portable\n\n```go\nm := concurrent.NewMap()\nm.Store(\"hello\", \"world\")\nelem, found := m.Load(\"hello\")\n// elem will be \"world\"\n// found will be true\n```\n\n# concurrent.Executor\n\n```go\nexecutor := concurrent.NewUnboundedExecutor()\nexecutor.Go(func(ctx context.Context) {\n    everyMillisecond := time.NewTicker(time.Millisecond)\n    for {\n        select {\n        case <-ctx.Done():\n            fmt.Println(\"goroutine exited\")\n            return\n        case <-everyMillisecond.C:\n            // do something\n        }\n    }\n})\ntime.Sleep(time.Second)\nexecutor.StopAndWaitForever()\nfmt.Println(\"executor stopped\")\n```\n\nattach goroutine to executor instance, so that we can\n\n* cancel it by stop the executor with Stop/StopAndWait/StopAndWaitForever\n* handle panic by callback: the default behavior will no longer crash your application"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/executor.go",
    "content": "package concurrent\n\nimport \"context\"\n\n// Executor replace go keyword to start a new goroutine\n// the goroutine should cancel itself if the context passed in has been cancelled\n// the goroutine started by the executor, is owned by the executor\n// we can cancel all executors owned by the executor just by stop the executor itself\n// however Executor interface does not Stop method, the one starting and owning executor\n// should use the concrete type of executor, instead of this interface.\ntype Executor interface {\n\t// Go starts a new goroutine controlled by the context\n\tGo(handler func(ctx context.Context))\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_above_19.go",
    "content": "//+build go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map is a wrapper for sync.Map introduced in go1.9\ntype Map struct {\n\tsync.Map\n}\n\n// NewMap creates a thread safe Map\nfunc NewMap() *Map {\n\treturn &Map{}\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_below_19.go",
    "content": "//+build !go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map implements a thread safe map for go version below 1.9 using mutex\ntype Map struct {\n\tlock sync.RWMutex\n\tdata map[interface{}]interface{}\n}\n\n// NewMap creates a thread safe map\nfunc NewMap() *Map {\n\treturn &Map{\n\t\tdata: make(map[interface{}]interface{}, 32),\n\t}\n}\n\n// Load is same as sync.Map Load\nfunc (m *Map) Load(key interface{}) (elem interface{}, found bool) {\n\tm.lock.RLock()\n\telem, found = m.data[key]\n\tm.lock.RUnlock()\n\treturn\n}\n\n// Load is same as sync.Map Store\nfunc (m *Map) Store(key interface{}, elem interface{}) {\n\tm.lock.Lock()\n\tm.data[key] = elem\n\tm.lock.Unlock()\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/log.go",
    "content": "package concurrent\n\nimport (\n\t\"os\"\n\t\"log\"\n\t\"io/ioutil\"\n)\n\n// ErrorLogger is used to print out error, can be set to writer other than stderr\nvar ErrorLogger = log.New(os.Stderr, \"\", 0)\n\n// InfoLogger is used to print informational message, default to off\nvar InfoLogger = log.New(ioutil.Discard, \"\", 0)"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -coverprofile=profile.out -coverpkg=github.com/modern-go/concurrent $d\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/unbounded_executor.go",
    "content": "package concurrent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n\t\"reflect\"\n)\n\n// HandlePanic logs goroutine panic by default\nvar HandlePanic = func(recovered interface{}, funcName string) {\n\tErrorLogger.Println(fmt.Sprintf(\"%s panic: %v\", funcName, recovered))\n\tErrorLogger.Println(string(debug.Stack()))\n}\n\n// UnboundedExecutor is a executor without limits on counts of alive goroutines\n// it tracks the goroutine started by it, and can cancel them when shutdown\ntype UnboundedExecutor struct {\n\tctx                   context.Context\n\tcancel                context.CancelFunc\n\tactiveGoroutinesMutex *sync.Mutex\n\tactiveGoroutines      map[string]int\n\tHandlePanic           func(recovered interface{}, funcName string)\n}\n\n// GlobalUnboundedExecutor has the life cycle of the program itself\n// any goroutine want to be shutdown before main exit can be started from this executor\n// GlobalUnboundedExecutor expects the main function to call stop\n// it does not magically knows the main function exits\nvar GlobalUnboundedExecutor = NewUnboundedExecutor()\n\n// NewUnboundedExecutor creates a new UnboundedExecutor,\n// UnboundedExecutor can not be created by &UnboundedExecutor{}\n// HandlePanic can be set with a callback to override global HandlePanic\nfunc NewUnboundedExecutor() *UnboundedExecutor {\n\tctx, cancel := context.WithCancel(context.TODO())\n\treturn &UnboundedExecutor{\n\t\tctx:                   ctx,\n\t\tcancel:                cancel,\n\t\tactiveGoroutinesMutex: &sync.Mutex{},\n\t\tactiveGoroutines:      map[string]int{},\n\t}\n}\n\n// Go starts a new goroutine and tracks its lifecycle.\n// Panic will be recovered and logged automatically, except for StopSignal\nfunc (executor *UnboundedExecutor) Go(handler func(ctx context.Context)) {\n\tpc := reflect.ValueOf(handler).Pointer()\n\tf := runtime.FuncForPC(pc)\n\tfuncName := f.Name()\n\tfile, line := f.FileLine(pc)\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tstartFrom := fmt.Sprintf(\"%s:%d\", file, line)\n\texecutor.activeGoroutines[startFrom] += 1\n\tgo func() {\n\t\tdefer func() {\n\t\t\trecovered := recover()\n\t\t\t// if you want to quit a goroutine without trigger HandlePanic\n\t\t\t// use runtime.Goexit() to quit\n\t\t\tif recovered != nil {\n\t\t\t\tif executor.HandlePanic == nil {\n\t\t\t\t\tHandlePanic(recovered, funcName)\n\t\t\t\t} else {\n\t\t\t\t\texecutor.HandlePanic(recovered, funcName)\n\t\t\t\t}\n\t\t\t}\n\t\t\texecutor.activeGoroutinesMutex.Lock()\n\t\t\texecutor.activeGoroutines[startFrom] -= 1\n\t\t\texecutor.activeGoroutinesMutex.Unlock()\n\t\t}()\n\t\thandler(executor.ctx)\n\t}()\n}\n\n// Stop cancel all goroutines started by this executor without wait\nfunc (executor *UnboundedExecutor) Stop() {\n\texecutor.cancel()\n}\n\n// StopAndWaitForever cancel all goroutines started by this executor and\n// wait until all goroutines exited\nfunc (executor *UnboundedExecutor) StopAndWaitForever() {\n\texecutor.StopAndWait(context.Background())\n}\n\n// StopAndWait cancel all goroutines started by this executor and wait.\n// Wait can be cancelled by the context passed in.\nfunc (executor *UnboundedExecutor) StopAndWait(ctx context.Context) {\n\texecutor.cancel()\n\tfor {\n\t\toneHundredMilliseconds := time.NewTimer(time.Millisecond * 100)\n\t\tselect {\n\t\tcase <-oneHundredMilliseconds.C:\n\t\t\tif executor.checkNoActiveGoroutines() {\n\t\t\t\treturn\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (executor *UnboundedExecutor) checkNoActiveGoroutines() bool {\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tfor startFrom, count := range executor.activeGoroutines {\n\t\tif count > 0 {\n\t\t\tInfoLogger.Println(\"UnboundedExecutor is still waiting goroutines to quit\",\n\t\t\t\t\"startFrom\", startFrom,\n\t\t\t\t\"count\", count)\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.travis.yml",
    "content": "language: go\ngo_import_path: github.com/pkg/errors\ngo:\n  - 1.4.x\n  - 1.5.x\n  - 1.6.x\n  - 1.7.x\n  - 1.8.x\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - tip\n\nscript:\n  - go test -v ./...\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/LICENSE",
    "content": "Copyright (c) 2015, Dave Cheney <dave@cheney.net>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/README.md",
    "content": "# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge)\n\nPackage errors provides simple error handling primitives.\n\n`go get github.com/pkg/errors`\n\nThe traditional error handling idiom in Go is roughly akin to\n```go\nif err != nil {\n        return err\n}\n```\nwhich applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error.\n\n## Adding context to an error\n\nThe errors.Wrap function returns a new error that adds context to the original error. For example\n```go\n_, err := ioutil.ReadAll(r)\nif err != nil {\n        return errors.Wrap(err, \"read failed\")\n}\n```\n## Retrieving the cause of an error\n\nUsing `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`.\n```go\ntype causer interface {\n        Cause() error\n}\n```\n`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example:\n```go\nswitch err := errors.Cause(err).(type) {\ncase *MyError:\n        // handle specifically\ndefault:\n        // unknown error\n}\n```\n\n[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).\n\n## Contributing\n\nWe welcome pull requests, bug fixes and issue reports. With that said, the bar for adding new symbols to this package is intentionally set high.\n\nBefore proposing a change, please discuss your change by raising an issue.\n\n## License\n\nBSD-2-Clause\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/appveyor.yml",
    "content": "version: build-{build}.{branch}\n\nclone_folder: C:\\gopath\\src\\github.com\\pkg\\errors\nshallow_clone: true # for startup speed\n\nenvironment:\n  GOPATH: C:\\gopath\n\nplatform:\n  - x64\n\n# http://www.appveyor.com/docs/installed-software\ninstall:\n  # some helpful output for debugging builds\n  - go version\n  - go env\n  # pre-installed MinGW at C:\\MinGW is 32bit only\n  # but MSYS2 at C:\\msys64 has mingw64\n  - set PATH=C:\\msys64\\mingw64\\bin;%PATH%\n  - gcc --version\n  - g++ --version\n\nbuild_script:\n  - go install -v ./...\n\ntest_script:\n  - set PATH=C:\\gopath\\bin;%PATH%\n  - go test -v ./...\n\n#artifacts:\n#  - path: '%GOPATH%\\bin\\*.exe'\ndeploy: off\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/errors.go",
    "content": "// Package errors provides simple error handling primitives.\n//\n// The traditional error handling idiom in Go is roughly akin to\n//\n//     if err != nil {\n//             return err\n//     }\n//\n// which when applied recursively up the call stack results in error reports\n// without context or debugging information. The errors package allows\n// programmers to add context to the failure path in their code in a way\n// that does not destroy the original value of the error.\n//\n// Adding context to an error\n//\n// The errors.Wrap function returns a new error that adds context to the\n// original error by recording a stack trace at the point Wrap is called,\n// together with the supplied message. For example\n//\n//     _, err := ioutil.ReadAll(r)\n//     if err != nil {\n//             return errors.Wrap(err, \"read failed\")\n//     }\n//\n// If additional control is required, the errors.WithStack and\n// errors.WithMessage functions destructure errors.Wrap into its component\n// operations: annotating an error with a stack trace and with a message,\n// respectively.\n//\n// Retrieving the cause of an error\n//\n// Using errors.Wrap constructs a stack of errors, adding context to the\n// preceding error. Depending on the nature of the error it may be necessary\n// to reverse the operation of errors.Wrap to retrieve the original error\n// for inspection. Any error value which implements this interface\n//\n//     type causer interface {\n//             Cause() error\n//     }\n//\n// can be inspected by errors.Cause. errors.Cause will recursively retrieve\n// the topmost error that does not implement causer, which is assumed to be\n// the original cause. For example:\n//\n//     switch err := errors.Cause(err).(type) {\n//     case *MyError:\n//             // handle specifically\n//     default:\n//             // unknown error\n//     }\n//\n// Although the causer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// Formatted printing of errors\n//\n// All error values returned from this package implement fmt.Formatter and can\n// be formatted by the fmt package. The following verbs are supported:\n//\n//     %s    print the error. If the error has a Cause it will be\n//           printed recursively.\n//     %v    see %s\n//     %+v   extended format. Each Frame of the error's StackTrace will\n//           be printed in detail.\n//\n// Retrieving the stack trace of an error or wrapper\n//\n// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are\n// invoked. This information can be retrieved with the following interface:\n//\n//     type stackTracer interface {\n//             StackTrace() errors.StackTrace\n//     }\n//\n// The returned errors.StackTrace type is defined as\n//\n//     type StackTrace []Frame\n//\n// The Frame type represents a call site in the stack trace. Frame supports\n// the fmt.Formatter interface that can be used for printing information about\n// the stack trace of this error. For example:\n//\n//     if err, ok := err.(stackTracer); ok {\n//             for _, f := range err.StackTrace() {\n//                     fmt.Printf(\"%+s:%d\", f)\n//             }\n//     }\n//\n// Although the stackTracer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// See the documentation for Frame.Format for more details.\npackage errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// New returns an error with the supplied message.\n// New also records the stack trace at the point it was called.\nfunc New(message string) error {\n\treturn &fundamental{\n\t\tmsg:   message,\n\t\tstack: callers(),\n\t}\n}\n\n// Errorf formats according to a format specifier and returns the string\n// as a value that satisfies error.\n// Errorf also records the stack trace at the point it was called.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn &fundamental{\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t\tstack: callers(),\n\t}\n}\n\n// fundamental is an error that has a message and a stack, but no caller.\ntype fundamental struct {\n\tmsg string\n\t*stack\n}\n\nfunc (f *fundamental) Error() string { return f.msg }\n\nfunc (f *fundamental) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tio.WriteString(s, f.msg)\n\t\t\tf.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, f.msg)\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", f.msg)\n\t}\n}\n\n// WithStack annotates err with a stack trace at the point WithStack was called.\n// If err is nil, WithStack returns nil.\nfunc WithStack(err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\ntype withStack struct {\n\terror\n\t*stack\n}\n\nfunc (w *withStack) Cause() error { return w.error }\n\nfunc (w *withStack) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\", w.Cause())\n\t\t\tw.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, w.Error())\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", w.Error())\n\t}\n}\n\n// Wrap returns an error annotating err with a stack trace\n// at the point Wrap is called, and the supplied message.\n// If err is nil, Wrap returns nil.\nfunc Wrap(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// Wrapf returns an error annotating err with a stack trace\n// at the point Wrapf is called, and the format specifier.\n// If err is nil, Wrapf returns nil.\nfunc Wrapf(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// WithMessage annotates err with a new message.\n// If err is nil, WithMessage returns nil.\nfunc WithMessage(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n}\n\n// WithMessagef annotates err with the format specifier.\n// If err is nil, WithMessagef returns nil.\nfunc WithMessagef(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n}\n\ntype withMessage struct {\n\tcause error\n\tmsg   string\n}\n\nfunc (w *withMessage) Error() string { return w.msg + \": \" + w.cause.Error() }\nfunc (w *withMessage) Cause() error  { return w.cause }\n\nfunc (w *withMessage) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\\n\", w.Cause())\n\t\t\tio.WriteString(s, w.msg)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's', 'q':\n\t\tio.WriteString(s, w.Error())\n\t}\n}\n\n// Cause returns the underlying cause of the error, if possible.\n// An error value has a cause if it implements the following\n// interface:\n//\n//     type causer interface {\n//            Cause() error\n//     }\n//\n// If the error does not implement Cause, the original error will\n// be returned. If the error is nil, nil will be returned without further\n// investigation.\nfunc Cause(err error) error {\n\ttype causer interface {\n\t\tCause() error\n\t}\n\n\tfor err != nil {\n\t\tcause, ok := err.(causer)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\terr = cause.Cause()\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/stack.go",
    "content": "package errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"runtime\"\n\t\"strings\"\n)\n\n// Frame represents a program counter inside a stack frame.\ntype Frame uintptr\n\n// pc returns the program counter for this frame;\n// multiple frames may have the same PC value.\nfunc (f Frame) pc() uintptr { return uintptr(f) - 1 }\n\n// file returns the full path to the file that contains the\n// function for this Frame's pc.\nfunc (f Frame) file() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\tfile, _ := fn.FileLine(f.pc())\n\treturn file\n}\n\n// line returns the line number of source code of the\n// function for this Frame's pc.\nfunc (f Frame) line() int {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn 0\n\t}\n\t_, line := fn.FileLine(f.pc())\n\treturn line\n}\n\n// Format formats the frame according to the fmt.Formatter interface.\n//\n//    %s    source file\n//    %d    source line\n//    %n    function name\n//    %v    equivalent to %s:%d\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+s   function name and path of source file relative to the compile time\n//          GOPATH separated by \\n\\t (<funcname>\\n\\t<path>)\n//    %+v   equivalent to %+s:%d\nfunc (f Frame) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 's':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tpc := f.pc()\n\t\t\tfn := runtime.FuncForPC(pc)\n\t\t\tif fn == nil {\n\t\t\t\tio.WriteString(s, \"unknown\")\n\t\t\t} else {\n\t\t\t\tfile, _ := fn.FileLine(pc)\n\t\t\t\tfmt.Fprintf(s, \"%s\\n\\t%s\", fn.Name(), file)\n\t\t\t}\n\t\tdefault:\n\t\t\tio.WriteString(s, path.Base(f.file()))\n\t\t}\n\tcase 'd':\n\t\tfmt.Fprintf(s, \"%d\", f.line())\n\tcase 'n':\n\t\tname := runtime.FuncForPC(f.pc()).Name()\n\t\tio.WriteString(s, funcname(name))\n\tcase 'v':\n\t\tf.Format(s, 's')\n\t\tio.WriteString(s, \":\")\n\t\tf.Format(s, 'd')\n\t}\n}\n\n// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).\ntype StackTrace []Frame\n\n// Format formats the stack of Frames according to the fmt.Formatter interface.\n//\n//    %s\tlists source files for each Frame in the stack\n//    %v\tlists the source file and line number for each Frame in the stack\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+v   Prints filename, function, and line number for each Frame in the stack.\nfunc (st StackTrace) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tfor _, f := range st {\n\t\t\t\tfmt.Fprintf(s, \"\\n%+v\", f)\n\t\t\t}\n\t\tcase s.Flag('#'):\n\t\t\tfmt.Fprintf(s, \"%#v\", []Frame(st))\n\t\tdefault:\n\t\t\tfmt.Fprintf(s, \"%v\", []Frame(st))\n\t\t}\n\tcase 's':\n\t\tfmt.Fprintf(s, \"%s\", []Frame(st))\n\t}\n}\n\n// stack represents a stack of program counters.\ntype stack []uintptr\n\nfunc (s *stack) Format(st fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase st.Flag('+'):\n\t\t\tfor _, pc := range *s {\n\t\t\t\tf := Frame(pc)\n\t\t\t\tfmt.Fprintf(st, \"\\n%+v\", f)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (s *stack) StackTrace() StackTrace {\n\tf := make([]Frame, len(*s))\n\tfor i := 0; i < len(f); i++ {\n\t\tf[i] = Frame((*s)[i])\n\t}\n\treturn f\n}\n\nfunc callers() *stack {\n\tconst depth = 32\n\tvar pcs [depth]uintptr\n\tn := runtime.Callers(3, pcs[:])\n\tvar st stack = pcs[0:n]\n\treturn &st\n}\n\n// funcname removes the path prefix component of a function's name reported by func.Name().\nfunc funcname(name string) string {\n\ti := strings.LastIndex(name, \"/\")\n\tname = name[i+1:]\n\ti = strings.Index(name, \".\")\n\treturn name[i+1:]\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/.gitignore",
    "content": "dist\ntestdata/simple*/docs\ncover.out\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n.idea\n.vscode\n\n# Etc\n.DS_Store\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/.goreleaser.yml",
    "content": "build:\n  main: cmd/swag/main.go\narchive:\n  replacements:\n    darwin: Darwin\n    linux: Linux\n    windows: Windows\n    386: i386\n    amd64: x86_64\nchecksum:\n  name_template: 'checksums.txt'\nsnapshot:\n  name_template: \"{{ .Tag }}-next\"\nchangelog:\n  sort: asc\n  filters:\n    exclude:\n    - '^docs:'\n    - '^test:'\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/.travis.yml",
    "content": "language: go\nsudo: false\n\ngo:\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - 1.12.x\n\ninstall:\n  - make install\n\nscript:\n  - make fmt-check\n  - make lint\n  - make vet\n  - make build\n  - make test\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [gitter.im/swaggo/swag](https://gitter.im/swaggo/swag).The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/CONTRIBUTING.md",
    "content": "# Contributing\n\nWhen contributing to this repository, please first discuss the change you wish to make via issue,\nemail, or any other method with the owners of this repository before making a change. \n\nPlease note we have a code of conduct, please follow it in all your interactions with the project.\n\n## Pull Request Process\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\nPlease make an issue first if the change is likely to increase.\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/Makefile",
    "content": "GOCMD:=$(shell which go)\nGOLINT:=$(shell which golint)\nGOIMPORT:=$(shell which goimports)\nGOFMT:=$(shell which gofmt)\nGOBUILD:=$(GOCMD) build\nGOCLEAN:=$(GOCMD) clean\nGOTEST:=$(GOCMD) test\nGOGET:=$(GOCMD) get\nGOLIST:=$(GOCMD) list\nGOVET:=$(GOCMD) vet\n\nBINARY_NAME:=swag\nPACKAGES:=$(shell $(GOLIST) github.com/swaggo/swag github.com/swaggo/swag/cmd/swag github.com/swaggo/swag/gen)\nGOFILES:=$(shell find . -name \"*.go\" -type f)\n\nexport GO111MODULE := on\n\nall: test build\n\n.PHONY: build\nbuild:\n\t$(GOBUILD) -o $(BINARY_NAME) -v ./cmd/...\n\n.PHONY: test\ntest:\n\techo \"mode: count\" > coverage.out\n\tfor PKG in $(PACKAGES); do \\\n\t\t$(GOCMD) test -v -covermode=count -coverprofile=profile.out $$PKG > tmp.out; \\\n\t\tcat tmp.out; \\\n\t\tif grep -q \"^--- FAIL\" tmp.out; then \\\n\t\t\trm tmp.out; \\\n\t\t\texit 1; \\\n\t\telif grep -q \"build failed\" tmp.out; then \\\n\t\t\trm tmp.out; \\\n\t\t\texit; \\\n\t\tfi; \\\n\t\tif [ -f profile.out ]; then \\\n\t\t\tcat profile.out | grep -v \"mode:\" >> coverage.out; \\\n\t\t\trm profile.out; \\\n\t\tfi; \\\n\tdone\n\n.PHONY: clean\nclean:\n\t$(GOCLEAN)\n\trm -f $(BINARY_NAME)\n\n.PHONY: install\ninstall:\n\t$(GOGET) -v github.com/swaggo/swag github.com/swaggo/swag/cmd/swag github.com/swaggo/swag/gen\n\t$(GOGET) github.com/stretchr/testify/assert\n\n.PHONY: lint\nlint:\n\twhich golint || $(GOGET) -u golang.org/x/lint/golint\n\tfor PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;\n\n.PHONY: vet\nvet:\n\t$(GOVET) $(PACKAGES)\n\n.PHONY: fmt\nfmt:\n\t$(GOFMT) -s -w $(GOFILES)\n\n.PHONY: fmt-check\nfmt-check:\n\t@diff=$$($(GOFMT) -s -d $(GOFILES)); \\\n\tif [ -n \"$$diff\" ]; then \\\n\t\techo \"Please run 'make fmt' and commit the result:\"; \\\n\t\techo \"$${diff}\"; \\\n\t\texit 1; \\\n\tfi;\n\n.PHONY: view-covered\nview-covered:\n\t$(GOTEST) -coverprofile=cover.out $(TARGET)\n\t$(GOCMD) tool cover -html=cover.out"
  },
  {
    "path": "vendor/github.com/swaggo/swag/PULL_REQUEST_TEMPLATE.md",
    "content": "**Describe the PR**\ne.g. add cool parser.\n\n**Relation issue**\ne.g. https://github.com/swaggo/swag/pull/118/files\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/README.md",
    "content": "# swag\n\n<img align=\"right\" width=\"180px\" src=\"https://raw.githubusercontent.com/swaggo/swag/master/assets/swaggo.png\">\n\n[![Travis Status](https://img.shields.io/travis/swaggo/swag/master.svg)](https://travis-ci.org/swaggo/swag)\n[![Coverage Status](https://img.shields.io/codecov/c/github/swaggo/swag/master.svg)](https://codecov.io/gh/swaggo/swag)\n[![Go Report Card](https://goreportcard.com/badge/github.com/swaggo/swag)](https://goreportcard.com/report/github.com/swaggo/swag)\n[![codebeat badge](https://codebeat.co/badges/71e2f5e5-9e6b-405d-baf9-7cc8b5037330)](https://codebeat.co/projects/github-com-swaggo-swag-master)\n[![Go Doc](https://godoc.org/github.com/swaggo/swagg?status.svg)](https://godoc.org/github.com/swaggo/swag)\n[![Backers on Open Collective](https://opencollective.com/swag/backers/badge.svg)](#backers) \n[![Sponsors on Open Collective](https://opencollective.com/swag/sponsors/badge.svg)](#sponsors) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fswaggo%2Fswag.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fswaggo%2Fswag?ref=badge_shield)\n[![Release](https://img.shields.io/github/release/swaggo/swag.svg?style=flat-square)](https://github.com/swaggo/swag/releases)\n\n\nSwag converts Go annotations to Swagger Documentation 2.0. We've created a variety of plugins for popular [Go web frameworks](#supported-web-frameworks). This allows you to quickly integrate with an existing Go project (using Swagger UI).\n\n## Contents\n - [Getting started](#getting-started)\n - [Supported Web Frameworks](#supported-web-frameworks)\n - [How to use it with Gin](#how-to-use-it-with-gin)\n - [Implementation Status](#implementation-status)\n - [Declarative Comments Format](#declarative-comments-format)\n\t- [General API Info](#general-api-info)\n\t- [API Operation](#api-operation)\n\t- [Security](#security)\n - [Examples](#examples)\n\t- [Descriptions over multiple lines](#descriptions-over-multiple-lines)\n\t- [User defined structure with an array type](#user-defined-structure-with-an-array-type)\n\t- [Add a headers in response](#add-a-headers-in-response) \n\t- [Use multiple path params](#use-multiple-path-params)\n\t- [Example value of struct](#example-value-of-struct)\n\t- [Description of struct](#description-of-struct)\n\t- [Use swaggertype tag to supported custom type](#use-swaggertype-tag-to-supported-custom-type)\n\t- [Add extension info to struct field](#add-extension-info-to-struct-field)\n\t- [How to using security annotations](#how-to-using-security-annotations)\n- [About the Project](#about-the-project)\n\n## Getting started\n\n1. Add comments to your API source code, See [Declarative Comments Format](#declarative-comments-format).\n\n2. Download swag by using:\n```sh\n$ go get -u github.com/swaggo/swag/cmd/swag\n```\nTo build from source you need [Go](https://golang.org/dl/) (1.9 or newer).\n\nOr download the pre-compiled binaries binray form [release page](https://github.com/swaggo/swag/releases).\n\n3. Run `swag init` in the project's root folder which contains the `main.go` file. This will parse your comments and generate the required files (`docs` folder and `docs/docs.go`).\n```sh\n$ swag init\n```\n\n  Make sure to import the generated `docs/docs.go` so that your specific configuration gets `init`'ed. If your General API annotations do not live in `main.go`, you can let swag know with `-g` flag.\n  ```sh\n  swag init -g http/api.go\n  ```\n\n## swag cli\n\n```sh\n$ swag init -h\nNAME:\n   swag init - Create docs.go\n\nUSAGE:\n   swag init [command options] [arguments...]\n\nOPTIONS:\n   --generalInfo value, -g value       Go file path in which 'swagger general API Info' is written (default: \"main.go\")\n   --dir value, -d value               Directory you want to parse (default: \"./\")\n   --propertyStrategy value, -p value  Property Naming Strategy like snakecase,camelcase,pascalcase (default: \"camelcase\")\n   --output value, -o value            Output directory for al the generated files(swagger.json, swagger.yaml and doc.go) (default: \"./docs\")\n   --parseVendor                       Parse go files in 'vendor' folder, disabled by default\n```\n\n## Supported Web Frameworks\n\n- [gin](http://github.com/swaggo/gin-swagger)\n- [echo](http://github.com/swaggo/echo-swagger)\n- [buffalo](https://github.com/swaggo/buffalo-swagger)\n- [net/http](https://github.com/swaggo/http-swagger)\n\n## How to use it with Gin\n\nFind the example source code [here](https://github.com/swaggo/swag/tree/master/example/celler).\n\n1. After using `swag init` to generate Swagger 2.0 docs, import the following packages:\n```go\nimport \"github.com/swaggo/gin-swagger\" // gin-swagger middleware\nimport \"github.com/swaggo/gin-swagger/swaggerFiles\" // swagger embed files\n```\n\n2. Add [General API](#general-api-info) annotations in `main.go` code:\n\n```go\n// @title Swagger Example API\n// @version 1.0\n// @description This is a sample server celler server.\n// @termsOfService http://swagger.io/terms/\n\n// @contact.name API Support\n// @contact.url http://www.swagger.io/support\n// @contact.email support@swagger.io\n\n// @license.name Apache 2.0\n// @license.url http://www.apache.org/licenses/LICENSE-2.0.html\n\n// @host localhost:8080\n// @BasePath /api/v1\n\n// @securityDefinitions.basic BasicAuth\n\n// @securityDefinitions.apikey ApiKeyAuth\n// @in header\n// @name Authorization\n\n// @securitydefinitions.oauth2.application OAuth2Application\n// @tokenUrl https://example.com/oauth/token\n// @scope.write Grants write access\n// @scope.admin Grants read and write access to administrative information\n\n// @securitydefinitions.oauth2.implicit OAuth2Implicit\n// @authorizationurl https://example.com/oauth/authorize\n// @scope.write Grants write access\n// @scope.admin Grants read and write access to administrative information\n\n// @securitydefinitions.oauth2.password OAuth2Password\n// @tokenUrl https://example.com/oauth/token\n// @scope.read Grants read access\n// @scope.write Grants write access\n// @scope.admin Grants read and write access to administrative information\n\n// @securitydefinitions.oauth2.accessCode OAuth2AccessCode\n// @tokenUrl https://example.com/oauth/token\n// @authorizationurl https://example.com/oauth/authorize\n// @scope.admin Grants read and write access to administrative information\n\nfunc main() {\n\tr := gin.Default()\n\n\tc := controller.NewController()\n\n\tv1 := r.Group(\"/api/v1\")\n\t{\n\t\taccounts := v1.Group(\"/accounts\")\n\t\t{\n\t\t\taccounts.GET(\":id\", c.ShowAccount)\n\t\t\taccounts.GET(\"\", c.ListAccounts)\n\t\t\taccounts.POST(\"\", c.AddAccount)\n\t\t\taccounts.DELETE(\":id\", c.DeleteAccount)\n\t\t\taccounts.PATCH(\":id\", c.UpdateAccount)\n\t\t\taccounts.POST(\":id/images\", c.UploadAccountImage)\n\t\t}\n    //...\n\t}\n\tr.GET(\"/swagger/*any\", ginSwagger.WrapHandler(swaggerFiles.Handler))\n\tr.Run(\":8080\")\n}\n//...\n```\n\nAdditionally some general API info can be set dynamically. The generated code package `docs` exports `SwaggerInfo` variable which we can use to set the title, description, version, host and base path programatically. Example using Gin:\n\n```go\npackage main\n\nimport (\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/swaggo/gin-swagger\"\n\t\"github.com/swaggo/gin-swagger/swaggerFiles\"\n\n\t\"./docs\" // docs is generated by Swag CLI, you have to import it.\n)\n\n// @contact.name API Support\n// @contact.url http://www.swagger.io/support\n// @contact.email support@swagger.io\n\n// @license.name Apache 2.0\n// @license.url http://www.apache.org/licenses/LICENSE-2.0.html\n\n// @termsOfService http://swagger.io/terms/\n\nfunc main() {\n\n\t// programatically set swagger info\n\tdocs.SwaggerInfo.Title = \"Swagger Example API\"\n\tdocs.SwaggerInfo.Description = \"This is a sample server Petstore server.\"\n\tdocs.SwaggerInfo.Version = \"1.0\"\n\tdocs.SwaggerInfo.Host = \"petstore.swagger.io\"\n\tdocs.SwaggerInfo.BasePath = \"/v2\"\n\n\tr := gin.New()\n\n\t// use ginSwagger middleware to serve the API docs\n\tr.GET(\"/swagger/*any\", ginSwagger.WrapHandler(swaggerFiles.Handler))\n\n\tr.Run()\n}\n```\n\n3. Add [API Operation](#api-operation) annotations in `controller` code\n\n``` go\npackage controller\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/swaggo/swag/example/celler/httputil\"\n\t\"github.com/swaggo/swag/example/celler/model\"\n)\n\n// ShowAccount godoc\n// @Summary Show a account\n// @Description get string by ID\n// @ID get-string-by-int\n// @Accept  json\n// @Produce  json\n// @Param id path int true \"Account ID\"\n// @Success 200 {object} model.Account\n// @Header 200 {string} Token \"qwerty\"\n// @Failure 400 {object} httputil.HTTPError\n// @Failure 404 {object} httputil.HTTPError\n// @Failure 500 {object} httputil.HTTPError\n// @Router /accounts/{id} [get]\nfunc (c *Controller) ShowAccount(ctx *gin.Context) {\n\tid := ctx.Param(\"id\")\n\taid, err := strconv.Atoi(id)\n\tif err != nil {\n\t\thttputil.NewError(ctx, http.StatusBadRequest, err)\n\t\treturn\n\t}\n\taccount, err := model.AccountOne(aid)\n\tif err != nil {\n\t\thttputil.NewError(ctx, http.StatusNotFound, err)\n\t\treturn\n\t}\n\tctx.JSON(http.StatusOK, account)\n}\n\n// ListAccounts godoc\n// @Summary List accounts\n// @Description get accounts\n// @Accept  json\n// @Produce  json\n// @Param q query string false \"name search by q\"\n// @Success 200 {array} model.Account\n// @Header 200 {string} Token \"qwerty\"\n// @Failure 400 {object} httputil.HTTPError\n// @Failure 404 {object} httputil.HTTPError\n// @Failure 500 {object} httputil.HTTPError\n// @Router /accounts [get]\nfunc (c *Controller) ListAccounts(ctx *gin.Context) {\n\tq := ctx.Request.URL.Query().Get(\"q\")\n\taccounts, err := model.AccountsAll(q)\n\tif err != nil {\n\t\thttputil.NewError(ctx, http.StatusNotFound, err)\n\t\treturn\n\t}\n\tctx.JSON(http.StatusOK, accounts)\n}\n\n//...\n```\n\n```console\n$ swag init\n```\n\n4.Run your app, and browse to http://localhost:8080/swagger/index.html. You will see Swagger 2.0 Api documents as shown below:\n\n![swagger_index.html](https://raw.githubusercontent.com/swaggo/swag/master/assets/swagger-image.png)\n\n## Implementation Status\n\n[Swagger 2.0 document](https://swagger.io/docs/specification/2-0/basic-structure/)\n\n- [x] Basic Structure\n- [x] API Host and Base Path\n- [x] Paths and Operations\n- [x] Describing Parameters\n- [x] Describing Request Body\n- [x] Describing Responses\n- [x] MIME Types\n- [x] Authentication\n  - [x] Basic Authentication\n  - [x] API Keys\n- [x] Adding Examples\n- [x] File Upload\n- [x] Enums\n- [x] Grouping Operations With Tags\n- [ ] Swagger Extensions\n\n# Declarative Comments Format\n\n## General API Info\n\n**Example**\n[celler/main.go](https://github.com/swaggo/swag/blob/master/example/celler/main.go)\n\n| annotation  | description                                | example                         |\n|-------------|--------------------------------------------|---------------------------------|\n| title       | **Required.** The title of the application.| // @title Swagger Example API   |\n| version     | **Required.** Provides the version of the application API.| // @version 1.0  |\n| description | A short description of the application.    |// @description This is a sample server celler server.         \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t |\n| tag.name    | Name of a tag.| // @tag.name This is the name of the tag                     |\n| tag.description   | Description of the tag  | // @tag.description Cool Description         |\n| tag.docs.url      | Url of the external Documentation of the tag | // @tag.docs.url https://example.com|\n| tag.docs.descripiton  | Description of the external Documentation of the tag| // @tag.docs.descirption Best example documentation |\n| termsOfService | The Terms of Service for the API.| // @termsOfService http://swagger.io/terms/                     |\n| contact.name | The contact information for the exposed API.| // @contact.name API Support  |\n| contact.url  | The URL pointing to the contact information. MUST be in the format of a URL.  | // @contact.url http://www.swagger.io/support|\n| contact.email| The email address of the contact person/organization. MUST be in the format of an email address.| // @contact.email support@swagger.io                                   |\n| license.name | **Required.** The license name used for the API.|// @license.name Apache 2.0|\n| license.url  | A URL to the license used for the API. MUST be in the format of a URL.                       | // @license.url http://www.apache.org/licenses/LICENSE-2.0.html |\n| host        | The host (name or ip) serving the API.     | // @host localhost:8080         |\n| BasePath    | The base path on which the API is served. | // @BasePath /api/v1             |\n| schemes     | The transfer protocol for the operation that separated by spaces. | // @schemes http https |\n\n## API Operation\n\n**Example**\n[celler/controller](https://github.com/swaggo/swag/tree/master/example/celler/controller)\n\n\n| annotation         | description                                                                                                                |\n|--------------------|----------------------------------------------------------------------------------------------------------------------------|\n| description        | A verbose explanation of the operation behavior.                                                                           |\n| id                 | A unique string used to identify the operation. Must be unique among all API operations.                                   |\n| tags               | A list of tags to each API operation that separated by commas.                                                             |\n| summary            | A short summary of what the operation does.                                                                                |\n| accept             | A list of MIME types the APIs can consume. Value MUST be as described under [Mime Types](#mime-types).                     |\n| produce            | A list of MIME types the APIs can produce. Value MUST be as described under [Mime Types](#mime-types).                     |\n| param              | Parameters that separated by spaces. `param name`,`param type`,`data type`,`is mandatory?`,`comment` `attribute(optional)` |\n| security           | [Security](#security) to each API operation.                                                                               |\n| success            | Success response that separated by spaces. `return code`,`{param type}`,`data type`,`comment`                              |\n| failure            | Failure response that separated by spaces. `return code`,`{param type}`,`data type`,`comment`                              |\n| header             | Header in response that separated by spaces. `return code`,`{param type}`,`data type`,`comment`                              |\n| router             | Path definition that separated by spaces. `path`,`[httpMethod]`                                                           |\n\n## Mime Types\n\n`swag` accepts all MIME Types which are in the correct format, that is, match `*/*`.\nBesides that, `swag` also accepts aliases for some MIME Types as follows:\n\n| Alias                 | MIME Type                         |\n|-----------------------|-----------------------------------|\n| json                  | application/json                  |\n| xml                   | text/xml                          |\n| plain                 | text/plain                        |\n| html                  | text/html                         |\n| mpfd                  | multipart/form-data               |\n| x-www-form-urlencoded | application/x-www-form-urlencoded |\n| json-api              | application/vnd.api+json          |\n| json-stream           | application/x-json-stream         |\n| octet-stream          | application/octet-stream          |\n| png                   | image/png                         |\n| jpeg                  | image/jpeg                        |\n| gif                   | image/gif                         |\n\n\n\n## Param Type\n\n- query\n- path\n- header\n- body\n- formData\n\n## Data Type\n\n- string (string)\n- integer (int, uint, uint32, uint64)\n- number (float32)\n- boolean (bool)\n- user defined struct\n\n## Security\n| annotation | description | parameters | example |\n|------------|-------------|------------|---------|\n| securitydefinitions.basic  | [Basic](https://swagger.io/docs/specification/2-0/authentication/basic-authentication/) auth.  |                                   | // @securityDefinitions.basic BasicAuth                      |\n| securitydefinitions.apikey | [API key](https://swagger.io/docs/specification/2-0/authentication/api-keys/) auth.            | in, name                          | // @securityDefinitions.apikey ApiKeyAuth                    |\n| securitydefinitions.oauth2.application  | [OAuth2 application](https://swagger.io/docs/specification/authentication/oauth2/) auth.       | tokenUrl, scope                   | // @securitydefinitions.oauth2.application OAuth2Application |\n| securitydefinitions.oauth2.implicit     | [OAuth2 implicit](https://swagger.io/docs/specification/authentication/oauth2/) auth.          | authorizationUrl, scope           | // @securitydefinitions.oauth2.implicit OAuth2Implicit       |\n| securitydefinitions.oauth2.password     | [OAuth2 password](https://swagger.io/docs/specification/authentication/oauth2/) auth.          | tokenUrl, scope                   | // @securitydefinitions.oauth2.password OAuth2Password       |\n| securitydefinitions.oauth2.accessCode   | [OAuth2 access code](https://swagger.io/docs/specification/authentication/oauth2/) auth.       | tokenUrl, authorizationUrl, scope | // @securitydefinitions.oauth2.accessCode OAuth2AccessCode   |\n\n\n| parameters annotation | example                                                  |\n|-----------------------|----------------------------------------------------------|\n| in                    | // @in header                                            |\n| name                  | // @name Authorization                                   |\n| tokenUrl              | // @tokenUrl https://example.com/oauth/token             |\n| authorizationurl      | // @authorizationurl https://example.com/oauth/authorize |\n| scope.hoge            | // @scope.write Grants write access                      |\n\n\n## Attribute\n\n```go\n// @Param enumstring query string false \"string enums\" Enums(A, B, C)\n// @Param enumint query int false \"int enums\" Enums(1, 2, 3)\n// @Param enumnumber query number false \"int enums\" Enums(1.1, 1.2, 1.3)\n// @Param string query string false \"string valid\" minlength(5) maxlength(10)\n// @Param int query int false \"int valid\" mininum(1) maxinum(10)\n// @Param default query string false \"string default\" default(A)\n```\n\nIt also works for the struct fields:\n\n```go\ntype Foo struct {\n    Bar string `minLength:\"4\" maxLength:\"16\"`\n    Baz int `minimum:\"10\" maximum:\"20\" default:\"15\"`\n    Qux []string `enums:\"foo,bar,baz\"`\n}\n```\n\n### Available\n\nField Name | Type | Description\n---|:---:|---\n<a name=\"parameterDefault\"></a>default | * | Declares the value of the parameter that the server will use if none is provided, for example a \"count\" to control the number of results per page might default to 100 if not supplied by the client in the request. (Note: \"default\" has no meaning for required parameters.)  See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2. Unlike JSON Schema this value MUST conform to the defined [`type`](#parameterType) for this parameter.\n<a name=\"parameterMaximum\"></a>maximum | `number` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.2.\n<a name=\"parameterMinimum\"></a>minimum | `number` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.3.\n<a name=\"parameterMaxLength\"></a>maxLength | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.1.\n<a name=\"parameterMinLength\"></a>minLength | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.2.\n<a name=\"parameterEnums\"></a>enums | [\\*] | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1.\n<a name=\"parameterFormat\"></a>format | `string` | The extending format for the previously mentioned [`type`](#parameterType). See [Data Type Formats](#dataTypeFormat) for further details.\n\n### Future\n\nField Name | Type | Description\n---|:---:|---\n<a name=\"parameterMultipleOf\"></a>multipleOf | `number` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.1.\n<a name=\"parameterPattern\"></a>pattern | `string` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.\n<a name=\"parameterMaxItems\"></a>maxItems | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.2.\n<a name=\"parameterMinItems\"></a>minItems | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.3.\n<a name=\"parameterUniqueItems\"></a>uniqueItems | `boolean` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.4.\n<a name=\"parameterCollectionFormat\"></a>collectionFormat | `string` | Determines the format of the array if type array is used. Possible values are: <ul><li>`csv` - comma separated values `foo,bar`. <li>`ssv` - space separated values `foo bar`. <li>`tsv` - tab separated values `foo\\tbar`. <li>`pipes` - pipe separated values <code>foo&#124;bar</code>. <li>`multi` - corresponds to multiple parameter instances instead of multiple values for a single instance `foo=bar&foo=baz`. This is valid only for parameters [`in`](#parameterIn) \"query\" or \"formData\". </ul> Default value is `csv`.\n\n## Examples\n\n### Descriptions over multiple lines\n\nYou can add descriptions spanning multiple lines in either the general api description or routes definitions like so: \n\n```go\n// @description This is the first line\n// @description This is the second line\n// @description And so forth.\n```\n\n### User defined structure with an array type\n\n```go\n// @Success 200 {array} model.Account <-- This is a user defined struct.\n```\n\n```go\npackage model\n\ntype Account struct {\n    ID   int    `json:\"id\" example:\"1\"`\n    Name string `json:\"name\" example:\"account name\"`\n}\n```\n### Add a headers in response\n\n```go\n// @Success 200 {string} string\t\"ok\"\n// @Header 200 {string} Location \"/entity/1\"\n// @Header 200 {string} Token \"qwerty\"\n```\n\n### Use multiple path params\n\n```go\n/// ...\n// @Param group_id path int true \"Group ID\"\n// @Param account_id path int true \"Account ID\"\n// ...\n// @Router /examples/groups/{group_id}/accounts/{account_id} [get]\n```\n\n### Example value of struct\n\n```go\ntype Account struct {\n    ID   int    `json:\"id\" example:\"1\"`\n    Name string `json:\"name\" example:\"account name\"`\n    PhotoUrls []string `json:\"photo_urls\" example:\"http://test/image/1.jpg,http://test/image/2.jpg\"`\n}\n```\n\n### Description of struct\n\n```go\ntype Account struct {\n\t// ID this is userid\n\tID   int    `json:\"id\"`\n\tName string `json:\"name\"` // This is Name\n}\n```\n\n### Use swaggertype tag to supported custom type\n[#201](https://github.com/swaggo/swag/issues/201#issuecomment-475479409)\n\n```go\ntype TimestampTime struct {\n    time.Time\n}\n\n///implement encoding.JSON.Marshaler interface\nfunc (t *TimestampTime) MarshalJSON() ([]byte, error) {\n    bin := make([]byte, 16)\n    bin = strconv.AppendInt(bin[:0], t.Time.Unix(), 10)\n    return bin, nil\n}\n\nfunc (t *TimestampTime) UnmarshalJSON(bin []byte) error {\n    v, err := strconv.ParseInt(string(bin), 10, 64)\n    if err != nil {\n        return err\n    }\n    t.Time = time.Unix(v, 0)\n    return nil\n}\n///\n\ntype Account struct {\n    // Override primitive type by simply specifying it via `swaggertype` tag\n    ID     sql.NullInt64 `json:\"id\" swaggertype:\"integer\"`\n\n    // Override struct type to a primitive type 'integer' by specifying it via `swaggertype` tag\n    RegisterTime TimestampTime `json:\"register_time\" swaggertype:\"primitive,integer\"`\n\n    // Array types can be overridden using \"array,<prim_type>\" format\n    Coeffs []big.Float `json:\"coeffs\" swaggertype:\"array,number\"`\n}\n```\n\n### Add extension info to struct field\n\n```go\ntype Account struct {\n    ID   int    `json:\"id\"   extensions:\"x-nullable,x-abc=def\"` // extensions fields must start with \"x-\"\n}\n```\n\ngenerate swagger doc as follows:\n\n```go\n\"Account\": {\n    \"type\": \"object\",\n    \"properties\": {\n        \"id\": {\n            \"type\": \"string\",\n            \"x-nullable\": true,\n            \"x-abc\": \"def\"\n        }\n    }\n}\n```\n\n### How to using security annotations\n\nGeneral API info.\n\n```go\n// @securityDefinitions.basic BasicAuth\n\n// @securitydefinitions.oauth2.application OAuth2Application\n// @tokenUrl https://example.com/oauth/token\n// @scope.write Grants write access\n// @scope.admin Grants read and write access to administrative information\n```\n\nEach API operation.\n\n```go\n// @Security ApiKeyAuth\n```\n\nMake it AND condition\n\n```go\n// @Security ApiKeyAuth\n// @Security OAuth2Application[write, admin]\n```\n\n## About the Project\nThis project was inspired by [yvasiyarov/swagger](https://github.com/yvasiyarov/swagger) but we simplified the usage and added support a variety of [web frameworks](#supported-web-frameworks). Gopher image source is [tenntenn/gopher-stickers](https://github.com/tenntenn/gopher-stickers). It has licenses [creative commons licensing](http://creativecommons.org/licenses/by/3.0/deed.en).\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n<a href=\"https://github.com/swaggo/swag/graphs/contributors\"><img src=\"https://opencollective.com/swag/contributors.svg?width=890&button=false\" /></a>\n\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/swag#backer)]\n\n<a href=\"https://opencollective.com/swag#backers\" target=\"_blank\"><img src=\"https://opencollective.com/swag/backers.svg?width=890\"></a>\n\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/swag#sponsor)]\n\n<a href=\"https://opencollective.com/swag/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/swag/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/swag/sponsor/9/avatar.svg\"></a>\n\n\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fswaggo%2Fswag.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fswaggo%2Fswag?ref=badge_large)\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/debug.go",
    "content": "package swag\n\nimport (\n\t\"log\"\n)\n\nconst (\n\ttest = iota\n\trelease\n)\n\nvar swagMode = release\n\nfunc isRelease() bool {\n\treturn swagMode == release\n}\n\n// Println calls Output to print to the standard logger when release mode.\nfunc Println(v ...interface{}) {\n\tif isRelease() {\n\t\tlog.Println(v...)\n\t}\n}\n\n// Printf calls Output to print to the standard logger when release mode.\nfunc Printf(format string, v ...interface{}) {\n\tif isRelease() {\n\t\tlog.Printf(format, v...)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/doc.go",
    "content": "/*\nPackage swag converts Go annotations to Swagger Documentation 2.0.\nSee https://github.com/swaggo/swag for more information about swag.\n*/\npackage swag // import \"github.com/swaggo/swag\"\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/go.mod",
    "content": "module github.com/swaggo/swag\n\nrequire (\n\tgithub.com/ghodss/yaml v1.0.0\n\tgithub.com/go-openapi/jsonreference v0.19.0\n\tgithub.com/go-openapi/spec v0.19.0\n\tgithub.com/pkg/errors v0.8.1\n\tgithub.com/urfave/cli v1.20.0\n\tgolang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468\n)\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/go.sum",
    "content": "github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=\ngithub.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/go-openapi/jsonpointer v0.17.0 h1:nH6xp8XdXHx8dqveo0ZuJBluCO2qGrPbDNZ0dwoRHP0=\ngithub.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=\ngithub.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=\ngithub.com/go-openapi/jsonreference v0.19.0 h1:BqWKpV1dFd+AuiKlgtddwVIFQsuMpxfBDBHGfM2yNpk=\ngithub.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=\ngithub.com/go-openapi/spec v0.19.0 h1:A4SZ6IWh3lnjH0rG0Z5lkxazMGBECtrZcbyYQi+64k4=\ngithub.com/go-openapi/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=\ngithub.com/go-openapi/swag v0.17.0 h1:iqrgMg7Q7SvtbWLlltPrkMs0UBJI6oTSs79JFRUi880=\ngithub.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=\ngithub.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw=\ngithub.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468 h1:fTfk6GjmihJbK0mSUFgPPgYpsdmApQ86Mcd4GuKax9U=\ngolang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/license",
    "content": "MIT License\n\nCopyright (c) 2017 Eason Lin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/operation.go",
    "content": "package swag\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\tgoparser \"go/parser\"\n\t\"go/token\"\n\t\"net/http\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\t\"github.com/go-openapi/spec\"\n\t\"github.com/pkg/errors\"\n\t\"golang.org/x/tools/go/loader\"\n)\n\n// Operation describes a single API operation on a path.\n// For more information: https://github.com/swaggo/swag#api-operation\ntype Operation struct {\n\tHTTPMethod string\n\tPath       string\n\tspec.Operation\n\n\tparser *Parser\n}\n\nvar mimeTypeAliases = map[string]string{\n\t\"json\":                  \"application/json\",\n\t\"xml\":                   \"text/xml\",\n\t\"plain\":                 \"text/plain\",\n\t\"html\":                  \"text/html\",\n\t\"mpfd\":                  \"multipart/form-data\",\n\t\"x-www-form-urlencoded\": \"application/x-www-form-urlencoded\",\n\t\"json-api\":              \"application/vnd.api+json\",\n\t\"json-stream\":           \"application/x-json-stream\",\n\t\"octet-stream\":          \"application/octet-stream\",\n\t\"png\":                   \"image/png\",\n\t\"jpeg\":                  \"image/jpeg\",\n\t\"gif\":                   \"image/gif\",\n}\n\nvar mimeTypePattern = regexp.MustCompile(\"^[^/]+/[^/]+$\")\n\n// NewOperation creates a new Operation with default properties.\n// map[int]Response\nfunc NewOperation() *Operation {\n\treturn &Operation{\n\t\tHTTPMethod: \"get\",\n\t\tOperation: spec.Operation{\n\t\t\tOperationProps: spec.OperationProps{},\n\t\t},\n\t}\n}\n\n// ParseComment parses comment for given comment string and returns error if error occurs.\nfunc (operation *Operation) ParseComment(comment string, astFile *ast.File) error {\n\tcommentLine := strings.TrimSpace(strings.TrimLeft(comment, \"//\"))\n\tif len(commentLine) == 0 {\n\t\treturn nil\n\t}\n\n\tattribute := strings.Fields(commentLine)[0]\n\tlineRemainder := strings.TrimSpace(commentLine[len(attribute):])\n\tswitch strings.ToLower(attribute) {\n\tcase \"@description\":\n\t\tif operation.Description == \"\" {\n\t\t\toperation.Description = lineRemainder\n\t\t} else {\n\t\t\toperation.Description += \"\\n\" + lineRemainder\n\t\t}\n\tcase \"@summary\":\n\t\toperation.Summary = lineRemainder\n\tcase \"@id\":\n\t\toperation.ID = lineRemainder\n\tcase \"@tags\":\n\t\toperation.ParseTagsComment(lineRemainder)\n\tcase \"@accept\":\n\t\tif err := operation.ParseAcceptComment(lineRemainder); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase \"@produce\":\n\t\tif err := operation.ParseProduceComment(lineRemainder); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase \"@param\":\n\t\tif err := operation.ParseParamComment(lineRemainder, astFile); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase \"@success\", \"@failure\":\n\t\tif err := operation.ParseResponseComment(lineRemainder, astFile); err != nil {\n\t\t\tif err := operation.ParseEmptyResponseComment(lineRemainder); err != nil {\n\t\t\t\tif err := operation.ParseEmptyResponseOnly(lineRemainder); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase \"@header\":\n\t\tif err := operation.ParseResponseHeaderComment(lineRemainder, astFile); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase \"@router\":\n\t\tif err := operation.ParseRouterComment(lineRemainder); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase \"@security\":\n\t\tif err := operation.ParseSecurityComment(lineRemainder); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nvar paramPattern = regexp.MustCompile(`(\\S+)[\\s]+([\\w]+)[\\s]+([\\S.]+)[\\s]+([\\w]+)[\\s]+\"([^\"]+)\"`)\n\n// ParseParamComment parses params return []string of param properties\n// E.g. @Param\tqueryText\t\tform\t      string\t  true\t\t        \"The email for login\"\n//              [param name]    [paramType] [data type]  [is mandatory?]   [Comment]\n// E.g. @Param   some_id     path    int     true        \"Some ID\"\nfunc (operation *Operation) ParseParamComment(commentLine string, astFile *ast.File) error {\n\tmatches := paramPattern.FindStringSubmatch(commentLine)\n\tif len(matches) != 6 {\n\t\treturn fmt.Errorf(\"missing required param comment parameters \\\"%s\\\"\", commentLine)\n\t}\n\tname := matches[1]\n\tparamType := matches[2]\n\n\tschemaType := matches[3]\n\n\trequiredText := strings.ToLower(matches[4])\n\trequired := requiredText == \"true\" || requiredText == \"required\"\n\tdescription := matches[5]\n\n\tvar param spec.Parameter\n\n\t//five possible parameter types.\n\tswitch paramType {\n\tcase \"query\", \"path\", \"header\":\n\t\tparam = createParameter(paramType, description, name, TransToValidSchemeType(schemaType), required)\n\tcase \"body\":\n\t\tparam = createParameter(paramType, description, name, \"object\", required) // TODO: if Parameter types can be objects, but also primitives and arrays\n\t\tif err := operation.registerSchemaType(schemaType, astFile); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tparam.Schema.Ref = spec.Ref{\n\t\t\tRef: jsonreference.MustCreateRef(\"#/definitions/\" + schemaType),\n\t\t}\n\tcase \"formData\":\n\t\tparam = createParameter(paramType, description, name, TransToValidSchemeType(schemaType), required)\n\tdefault:\n\t\treturn fmt.Errorf(\"%s is not supported paramType\", paramType)\n\t}\n\n\tif err := operation.parseAndExtractionParamAttribute(commentLine, schemaType, &param); err != nil {\n\t\treturn err\n\t}\n\toperation.Operation.Parameters = append(operation.Operation.Parameters, param)\n\treturn nil\n}\n\nfunc (operation *Operation) registerSchemaType(schemaType string, astFile *ast.File) error {\n\trefSplit := strings.Split(schemaType, \".\")\n\tif len(refSplit) != 2 {\n\t\treturn nil\n\t}\n\tpkgName := refSplit[0]\n\ttypeName := refSplit[1]\n\tif typeSpec, ok := operation.parser.TypeDefinitions[pkgName][typeName]; ok {\n\t\toperation.parser.registerTypes[schemaType] = typeSpec\n\t\treturn nil\n\t}\n\tvar typeSpec *ast.TypeSpec\n\tif astFile == nil {\n\t\treturn fmt.Errorf(\"can not register schema type: %q reason: astFile == nil\", schemaType)\n\t}\n\tfor _, imp := range astFile.Imports {\n\t\tif imp.Name != nil && imp.Name.Name == pkgName { // the import had an alias that matched\n\t\t\tbreak\n\t\t}\n\t\timpPath := strings.Replace(imp.Path.Value, `\"`, ``, -1)\n\t\tif strings.HasSuffix(impPath, \"/\"+pkgName) {\n\t\t\tvar err error\n\t\t\ttypeSpec, err = findTypeDef(impPath, typeName)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"can not find type def: %q\", schemaType)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif typeSpec == nil {\n\t\treturn fmt.Errorf(\"can not find schema type: %q\", schemaType)\n\t}\n\n\tif _, ok := operation.parser.TypeDefinitions[pkgName]; !ok {\n\t\toperation.parser.TypeDefinitions[pkgName] = make(map[string]*ast.TypeSpec)\n\t}\n\n\toperation.parser.TypeDefinitions[pkgName][typeName] = typeSpec\n\toperation.parser.registerTypes[schemaType] = typeSpec\n\treturn nil\n}\n\nvar regexAttributes = map[string]*regexp.Regexp{\n\t// for Enums(A, B)\n\t\"enums\": regexp.MustCompile(`(?i)enums\\(.*\\)`),\n\t// for Minimum(0)\n\t\"maxinum\": regexp.MustCompile(`(?i)maxinum\\(.*\\)`),\n\t// for Maximum(0)\n\t\"mininum\": regexp.MustCompile(`(?i)mininum\\(.*\\)`),\n\t// for Maximum(0)\n\t\"default\": regexp.MustCompile(`(?i)default\\(.*\\)`),\n\t// for minlength(0)\n\t\"minlength\": regexp.MustCompile(`(?i)minlength\\(.*\\)`),\n\t// for maxlength(0)\n\t\"maxlength\": regexp.MustCompile(`(?i)maxlength\\(.*\\)`),\n\t// for format(email)\n\t\"format\": regexp.MustCompile(`(?i)format\\(.*\\)`),\n}\n\nfunc (operation *Operation) parseAndExtractionParamAttribute(commentLine, schemaType string, param *spec.Parameter) error {\n\tschemaType = TransToValidSchemeType(schemaType)\n\tfor attrKey, re := range regexAttributes {\n\t\tswitch attrKey {\n\t\tcase \"enums\":\n\t\t\tenums, err := findAttrList(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfor _, e := range enums {\n\t\t\t\te = strings.TrimSpace(e)\n\n\t\t\t\tvalue, err := defineType(schemaType, e)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tparam.Enum = append(param.Enum, value)\n\t\t\t}\n\t\tcase \"maxinum\":\n\t\t\tattr, err := findAttr(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif schemaType != \"integer\" && schemaType != \"number\" {\n\t\t\t\treturn fmt.Errorf(\"maxinum is attribute to set to a number. comment=%s got=%s\", commentLine, schemaType)\n\t\t\t}\n\t\t\tn, err := strconv.ParseFloat(attr, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"maximum is allow only a number. comment=%s got=%s\", commentLine, attr)\n\t\t\t}\n\t\t\tparam.Maximum = &n\n\t\tcase \"mininum\":\n\t\t\tattr, err := findAttr(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif schemaType != \"integer\" && schemaType != \"number\" {\n\t\t\t\treturn fmt.Errorf(\"mininum is attribute to set to a number. comment=%s got=%s\", commentLine, schemaType)\n\t\t\t}\n\t\t\tn, err := strconv.ParseFloat(attr, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"mininum is allow only a number got=%s\", attr)\n\t\t\t}\n\t\t\tparam.Minimum = &n\n\t\tcase \"default\":\n\t\t\tattr, err := findAttr(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvalue, err := defineType(schemaType, attr)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tparam.Default = value\n\t\tcase \"maxlength\":\n\t\t\tattr, err := findAttr(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif schemaType != \"string\" {\n\t\t\t\treturn fmt.Errorf(\"maxlength is attribute to set to a number. comment=%s got=%s\", commentLine, schemaType)\n\t\t\t}\n\t\t\tn, err := strconv.ParseInt(attr, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"maxlength is allow only a number got=%s\", attr)\n\t\t\t}\n\t\t\tparam.MaxLength = &n\n\t\tcase \"minlength\":\n\t\t\tattr, err := findAttr(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif schemaType != \"string\" {\n\t\t\t\treturn fmt.Errorf(\"maxlength is attribute to set to a number. comment=%s got=%s\", commentLine, schemaType)\n\t\t\t}\n\t\t\tn, err := strconv.ParseInt(attr, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"minlength is allow only a number got=%s\", attr)\n\t\t\t}\n\t\t\tparam.MinLength = &n\n\t\tcase \"format\":\n\t\t\tattr, err := findAttr(re, commentLine)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tparam.Format = attr\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc findAttr(re *regexp.Regexp, commentLine string) (string, error) {\n\tattr := re.FindString(commentLine)\n\tl := strings.Index(attr, \"(\")\n\tr := strings.Index(attr, \")\")\n\tif l == -1 || r == -1 {\n\t\treturn \"\", fmt.Errorf(\"can not find regex=%s, comment=%s\", re.String(), commentLine)\n\t}\n\treturn strings.TrimSpace(attr[l+1 : r]), nil\n}\n\nfunc findAttrList(re *regexp.Regexp, commentLine string) ([]string, error) {\n\tattr, err := findAttr(re, commentLine)\n\tif err != nil {\n\t\treturn []string{\"\"}, err\n\t}\n\treturn strings.Split(attr, \",\"), nil\n}\n\n// defineType enum value define the type (object and array unsupported)\nfunc defineType(schemaType string, value string) (interface{}, error) {\n\tschemaType = TransToValidSchemeType(schemaType)\n\tswitch schemaType {\n\tcase \"string\":\n\t\treturn value, nil\n\tcase \"number\":\n\t\tv, err := strconv.ParseFloat(value, 64)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"enum value %s can't convert to %s err: %s\", value, schemaType, err)\n\t\t}\n\t\treturn v, nil\n\tcase \"integer\":\n\t\tv, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"enum value %s can't convert to %s err: %s\", value, schemaType, err)\n\t\t}\n\t\treturn v, nil\n\tcase \"boolean\":\n\t\tv, err := strconv.ParseBool(value)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"enum value %s can't convert to %s err: %s\", value, schemaType, err)\n\t\t}\n\t\treturn v, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"%s is unsupported type in enum value\", schemaType)\n\t}\n}\n\n// ParseTagsComment parses comment for given `tag` comment string.\nfunc (operation *Operation) ParseTagsComment(commentLine string) {\n\ttags := strings.Split(commentLine, \",\")\n\tfor _, tag := range tags {\n\t\toperation.Tags = append(operation.Tags, strings.TrimSpace(tag))\n\t}\n}\n\n// ParseAcceptComment parses comment for given `accept` comment string.\nfunc (operation *Operation) ParseAcceptComment(commentLine string) error {\n\treturn parseMimeTypeList(commentLine, &operation.Consumes, \"%v accept type can't be accepted\")\n}\n\n// ParseProduceComment parses comment for given `produce` comment string.\nfunc (operation *Operation) ParseProduceComment(commentLine string) error {\n\treturn parseMimeTypeList(commentLine, &operation.Produces, \"%v produce type can't be accepted\")\n}\n\n// parseMimeTypeList parses a list of MIME Types for a comment like\n// `produce` (`Content-Type:` response header) or\n// `accept` (`Accept:` request header)\nfunc parseMimeTypeList(mimeTypeList string, typeList *[]string, format string) error {\n\tmimeTypes := strings.Split(mimeTypeList, \",\")\n\tfor _, typeName := range mimeTypes {\n\t\tif mimeTypePattern.MatchString(typeName) {\n\t\t\t*typeList = append(*typeList, typeName)\n\t\t\tcontinue\n\t\t}\n\t\tif aliasMimeType, ok := mimeTypeAliases[typeName]; ok {\n\t\t\t*typeList = append(*typeList, aliasMimeType)\n\t\t\tcontinue\n\t\t}\n\t\treturn fmt.Errorf(format, typeName)\n\t}\n\treturn nil\n}\n\nvar routerPattern = regexp.MustCompile(`([\\w\\.\\/\\-{}\\+]+)[^\\[]+\\[([^\\]]+)`)\n\n// ParseRouterComment parses comment for gived `router` comment string.\nfunc (operation *Operation) ParseRouterComment(commentLine string) error {\n\tvar matches []string\n\n\tif matches = routerPattern.FindStringSubmatch(commentLine); len(matches) != 3 {\n\t\treturn fmt.Errorf(\"can not parse router comment \\\"%s\\\"\", commentLine)\n\t}\n\tpath := matches[1]\n\thttpMethod := matches[2]\n\n\toperation.Path = path\n\toperation.HTTPMethod = strings.ToUpper(httpMethod)\n\n\treturn nil\n}\n\n// ParseSecurityComment parses comment for gived `security` comment string.\nfunc (operation *Operation) ParseSecurityComment(commentLine string) error {\n\tsecuritySource := commentLine[strings.Index(commentLine, \"@Security\")+1:]\n\tl := strings.Index(securitySource, \"[\")\n\tr := strings.Index(securitySource, \"]\")\n\t// exists scope\n\tif !(l == -1 && r == -1) {\n\t\tscopes := securitySource[l+1 : r]\n\t\ts := []string{}\n\t\tfor _, scope := range strings.Split(scopes, \",\") {\n\t\t\tscope = strings.TrimSpace(scope)\n\t\t\ts = append(s, scope)\n\t\t}\n\t\tsecurityKey := securitySource[0:l]\n\t\tsecurityMap := map[string][]string{}\n\t\tsecurityMap[securityKey] = append(securityMap[securityKey], s...)\n\t\toperation.Security = append(operation.Security, securityMap)\n\t} else {\n\t\tsecurityKey := strings.TrimSpace(securitySource)\n\t\tsecurityMap := map[string][]string{}\n\t\tsecurityMap[securityKey] = []string{}\n\t\toperation.Security = append(operation.Security, securityMap)\n\t}\n\treturn nil\n}\n\n// findTypeDef attempts to find the *ast.TypeSpec for a specific type given the\n// type's name and the package's import path\n// TODO: improve finding external pkg\nfunc findTypeDef(importPath, typeName string) (*ast.TypeSpec, error) {\n\tcwd, err := os.Getwd()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconf := loader.Config{\n\t\tParserMode: goparser.SpuriousErrors,\n\t\tCwd:        cwd,\n\t}\n\n\tconf.Import(importPath)\n\n\tlprog, err := conf.Load()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If the pkg is vendored, the actual pkg path is going to resemble\n\t// something like \"{importPath}/vendor/{importPath}\"\n\tfor k := range lprog.AllPackages {\n\t\trealPkgPath := k.Path()\n\n\t\tif strings.Contains(realPkgPath, \"vendor/\"+importPath) {\n\t\t\timportPath = realPkgPath\n\t\t}\n\t}\n\n\tpkgInfo := lprog.Package(importPath)\n\n\tif pkgInfo == nil {\n\t\treturn nil, errors.New(\"package was nil\")\n\t}\n\n\t// TODO: possibly cache pkgInfo since it's an expensive operation\n\n\tfor i := range pkgInfo.Files {\n\t\tfor _, astDeclaration := range pkgInfo.Files[i].Decls {\n\t\t\tif generalDeclaration, ok := astDeclaration.(*ast.GenDecl); ok && generalDeclaration.Tok == token.TYPE {\n\t\t\t\tfor _, astSpec := range generalDeclaration.Specs {\n\t\t\t\t\tif typeSpec, ok := astSpec.(*ast.TypeSpec); ok {\n\t\t\t\t\t\tif typeSpec.Name.String() == typeName {\n\t\t\t\t\t\t\treturn typeSpec, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, errors.New(\"type spec not found\")\n}\n\nvar responsePattern = regexp.MustCompile(`([\\d]+)[\\s]+([\\w\\{\\}]+)[\\s]+([\\w\\-\\.\\/]+)[^\"]*(.*)?`)\n\n// ParseResponseComment parses comment for gived `response` comment string.\nfunc (operation *Operation) ParseResponseComment(commentLine string, astFile *ast.File) error {\n\tvar matches []string\n\n\tif matches = responsePattern.FindStringSubmatch(commentLine); len(matches) != 5 {\n\t\treturn fmt.Errorf(\"can not parse response comment \\\"%s\\\"\", commentLine)\n\t}\n\n\tresponse := spec.Response{}\n\n\tcode, _ := strconv.Atoi(matches[1])\n\n\tresponseDescription := strings.Trim(matches[4], \"\\\"\")\n\tif responseDescription == \"\" {\n\t\tresponseDescription = http.StatusText(code)\n\t}\n\tresponse.Description = responseDescription\n\n\tschemaType := strings.Trim(matches[2], \"{}\")\n\trefType := matches[3]\n\n\tif operation.parser != nil { // checking refType has existing in 'TypeDefinitions'\n\t\tif err := operation.registerSchemaType(refType, astFile); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// so we have to know all type in app\n\t//TODO: we might omitted schema.type if schemaType equals 'object'\n\tresponse.Schema = &spec.Schema{SchemaProps: spec.SchemaProps{Type: []string{schemaType}}}\n\n\tif schemaType == \"object\" {\n\t\tresponse.Schema.Ref = spec.Ref{\n\t\t\tRef: jsonreference.MustCreateRef(\"#/definitions/\" + refType),\n\t\t}\n\t}\n\n\tif schemaType == \"array\" {\n\t\trefType = TransToValidSchemeType(refType)\n\t\tif IsPrimitiveType(refType) {\n\t\t\tresponse.Schema.Items = &spec.SchemaOrArray{\n\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType: spec.StringOrArray{refType},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t} else {\n\t\t\tresponse.Schema.Items = &spec.SchemaOrArray{\n\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tRef: spec.Ref{Ref: jsonreference.MustCreateRef(\"#/definitions/\" + refType)},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tif operation.Responses == nil {\n\t\toperation.Responses = &spec.Responses{\n\t\t\tResponsesProps: spec.ResponsesProps{\n\t\t\t\tStatusCodeResponses: make(map[int]spec.Response),\n\t\t\t},\n\t\t}\n\t}\n\n\toperation.Responses.StatusCodeResponses[code] = response\n\n\treturn nil\n}\n\n// ParseResponseHeaderComment parses comment for gived `response header` comment string.\nfunc (operation *Operation) ParseResponseHeaderComment(commentLine string, astFile *ast.File) error {\n\tvar matches []string\n\n\tif matches = responsePattern.FindStringSubmatch(commentLine); len(matches) != 5 {\n\t\treturn fmt.Errorf(\"can not parse response comment \\\"%s\\\"\", commentLine)\n\t}\n\n\tresponse := spec.Response{}\n\n\tcode, _ := strconv.Atoi(matches[1])\n\n\tresponseDescription := strings.Trim(matches[4], \"\\\"\")\n\tif responseDescription == \"\" {\n\t\tresponseDescription = http.StatusText(code)\n\t}\n\tresponse.Description = responseDescription\n\n\tschemaType := strings.Trim(matches[2], \"{}\")\n\trefType := matches[3]\n\n\tif operation.Responses == nil {\n\t\toperation.Responses = &spec.Responses{\n\t\t\tResponsesProps: spec.ResponsesProps{\n\t\t\t\tStatusCodeResponses: make(map[int]spec.Response),\n\t\t\t},\n\t\t}\n\t}\n\n\tresponse, responseExist := operation.Responses.StatusCodeResponses[code]\n\tif responseExist {\n\t\theader := spec.Header{}\n\t\theader.Description = responseDescription\n\t\theader.Type = schemaType\n\n\t\tif response.Headers == nil {\n\t\t\tresponse.Headers = make(map[string]spec.Header)\n\t\t}\n\t\tresponse.Headers[refType] = header\n\n\t\toperation.Responses.StatusCodeResponses[code] = response\n\t}\n\n\treturn nil\n}\n\nvar emptyResponsePattern = regexp.MustCompile(`([\\d]+)[\\s]+\"(.*)\"`)\n\n// ParseEmptyResponseComment parse only comment out status code and description,eg: @Success 200 \"it's ok\"\nfunc (operation *Operation) ParseEmptyResponseComment(commentLine string) error {\n\tvar matches []string\n\n\tif matches = emptyResponsePattern.FindStringSubmatch(commentLine); len(matches) != 3 {\n\t\treturn fmt.Errorf(\"can not parse response comment \\\"%s\\\"\", commentLine)\n\t}\n\n\tresponse := spec.Response{}\n\n\tcode, _ := strconv.Atoi(matches[1])\n\n\tresponse.Description = strings.Trim(matches[2], \"\")\n\n\tif operation.Responses == nil {\n\t\toperation.Responses = &spec.Responses{\n\t\t\tResponsesProps: spec.ResponsesProps{\n\t\t\t\tStatusCodeResponses: make(map[int]spec.Response),\n\t\t\t},\n\t\t}\n\t}\n\n\toperation.Responses.StatusCodeResponses[code] = response\n\n\treturn nil\n}\n\n//ParseEmptyResponseOnly parse only comment out status code ,eg: @Success 200\nfunc (operation *Operation) ParseEmptyResponseOnly(commentLine string) error {\n\tresponse := spec.Response{}\n\n\tcode, err := strconv.Atoi(commentLine)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"can not parse response comment \\\"%s\\\"\", commentLine)\n\t}\n\tif operation.Responses == nil {\n\t\toperation.Responses = &spec.Responses{\n\t\t\tResponsesProps: spec.ResponsesProps{\n\t\t\t\tStatusCodeResponses: make(map[int]spec.Response),\n\t\t\t},\n\t\t}\n\t}\n\n\toperation.Responses.StatusCodeResponses[code] = response\n\n\treturn nil\n}\n\n// createParameter returns swagger spec.Parameter for gived  paramType, description, paramName, schemaType, required\nfunc createParameter(paramType, description, paramName, schemaType string, required bool) spec.Parameter {\n\t// //five possible parameter types. \tquery, path, body, header, form\n\tparamProps := spec.ParamProps{\n\t\tName:        paramName,\n\t\tDescription: description,\n\t\tRequired:    required,\n\t\tIn:          paramType,\n\t}\n\tif paramType == \"body\" {\n\t\tparamProps.Schema = &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{schemaType},\n\t\t\t},\n\t\t}\n\t\tparameter := spec.Parameter{\n\t\t\tParamProps: paramProps,\n\t\t}\n\t\treturn parameter\n\t}\n\tparameter := spec.Parameter{\n\t\tParamProps: paramProps,\n\t\tSimpleSchema: spec.SimpleSchema{\n\t\t\tType: schemaType,\n\t\t},\n\t}\n\treturn parameter\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/parser.go",
    "content": "package swag\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\tgoparser \"go/parser\"\n\t\"go/token\"\n\t\"net/http\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\t\"github.com/go-openapi/spec\"\n\t\"github.com/pkg/errors\"\n)\n\nconst (\n\t// CamelCase indicates using CamelCase strategy for struct field.\n\tCamelCase = \"camelcase\"\n\n\t// PascalCase indicates using PascalCase strategy for struct field.\n\tPascalCase = \"pascalcase\"\n\n\t// SnakeCase indicates using SnakeCase strategy for struct field.\n\tSnakeCase = \"snakecase\"\n)\n\n// Parser implements a parser for Go source files.\ntype Parser struct {\n\t// swagger represents the root document object for the API specification\n\tswagger *spec.Swagger\n\n\t//files is a map that stores map[real_go_file_path][astFile]\n\tfiles map[string]*ast.File\n\n\t// TypeDefinitions is a map that stores [package name][type name][*ast.TypeSpec]\n\tTypeDefinitions map[string]map[string]*ast.TypeSpec\n\n\t// CustomPrimitiveTypes is a map that stores custom primitive types to actual golang types [type name][string]\n\tCustomPrimitiveTypes map[string]string\n\n\t//registerTypes is a map that stores [refTypeName][*ast.TypeSpec]\n\tregisterTypes map[string]*ast.TypeSpec\n\n\tPropNamingStrategy string\n\n\tParseVendor bool\n\n\t// structStack stores full names of the structures that were already parsed or are being parsed now\n\tstructStack []string\n}\n\n// New creates a new Parser with default properties.\nfunc New() *Parser {\n\tparser := &Parser{\n\t\tswagger: &spec.Swagger{\n\t\t\tSwaggerProps: spec.SwaggerProps{\n\t\t\t\tInfo: &spec.Info{\n\t\t\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\t\t\tContact: &spec.ContactInfo{},\n\t\t\t\t\t\tLicense: &spec.License{},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPaths: &spec.Paths{\n\t\t\t\t\tPaths: make(map[string]spec.PathItem),\n\t\t\t\t},\n\t\t\t\tDefinitions: make(map[string]spec.Schema),\n\t\t\t},\n\t\t},\n\t\tfiles:                make(map[string]*ast.File),\n\t\tTypeDefinitions:      make(map[string]map[string]*ast.TypeSpec),\n\t\tCustomPrimitiveTypes: make(map[string]string),\n\t\tregisterTypes:        make(map[string]*ast.TypeSpec),\n\t}\n\treturn parser\n}\n\n// ParseAPI parses general api info for gived searchDir and mainAPIFile\nfunc (parser *Parser) ParseAPI(searchDir string, mainAPIFile string) error {\n\tPrintln(\"Generate general API Info\")\n\tif err := parser.getAllGoFileInfo(searchDir); err != nil {\n\t\treturn err\n\t}\n\tparser.ParseGeneralAPIInfo(path.Join(searchDir, mainAPIFile))\n\n\tfor _, astFile := range parser.files {\n\t\tparser.ParseType(astFile)\n\t}\n\n\tfor fileName, astFile := range parser.files {\n\t\tif err := parser.ParseRouterAPIInfo(fileName, astFile); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tparser.ParseDefinitions()\n\n\treturn nil\n}\n\n// ParseGeneralAPIInfo parses general api info for gived mainAPIFile path\nfunc (parser *Parser) ParseGeneralAPIInfo(mainAPIFile string) error {\n\tfileSet := token.NewFileSet()\n\tfileTree, err := goparser.ParseFile(fileSet, mainAPIFile, nil, goparser.ParseComments)\n\tif err != nil {\n\t\treturn errors.Wrap(err, \"cannot parse soure files\")\n\t}\n\n\tparser.swagger.Swagger = \"2.0\"\n\tsecurityMap := map[string]*spec.SecurityScheme{}\n\n\t// templated defaults\n\tparser.swagger.Info.Version = \"{{.Version}}\"\n\tparser.swagger.Info.Title = \"{{.Title}}\"\n\tparser.swagger.Info.Description = \"{{.Description}}\"\n\tparser.swagger.Host = \"{{.Host}}\"\n\tparser.swagger.BasePath = \"{{.BasePath}}\"\n\n\tif fileTree.Comments != nil {\n\t\tfor _, comment := range fileTree.Comments {\n\t\t\tcomments := strings.Split(comment.Text(), \"\\n\")\n\t\t\tpreviousAttribute := \"\"\n\t\t\tfor _, commentLine := range comments {\n\t\t\t\tattribute := strings.ToLower(strings.Split(commentLine, \" \")[0])\n\t\t\t\tmultilineBlock := false\n\t\t\t\tif previousAttribute == attribute {\n\t\t\t\t\tmultilineBlock = true\n\t\t\t\t}\n\t\t\t\tswitch attribute {\n\t\t\t\tcase \"@version\":\n\t\t\t\t\tparser.swagger.Info.Version = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@title\":\n\t\t\t\t\tparser.swagger.Info.Title = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@description\":\n\t\t\t\t\tif parser.swagger.Info.Description == \"{{.Description}}\" {\n\t\t\t\t\t\tparser.swagger.Info.Description = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\t\t} else if multilineBlock {\n\t\t\t\t\t\tparser.swagger.Info.Description += \"\\n\" + strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\t\t}\n\t\t\t\tcase \"@termsofservice\":\n\t\t\t\t\tparser.swagger.Info.TermsOfService = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@contact.name\":\n\t\t\t\t\tparser.swagger.Info.Contact.Name = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@contact.email\":\n\t\t\t\t\tparser.swagger.Info.Contact.Email = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@contact.url\":\n\t\t\t\t\tparser.swagger.Info.Contact.URL = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@license.name\":\n\t\t\t\t\tparser.swagger.Info.License.Name = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@license.url\":\n\t\t\t\t\tparser.swagger.Info.License.URL = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@host\":\n\t\t\t\t\tparser.swagger.Host = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@basepath\":\n\t\t\t\t\tparser.swagger.BasePath = strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\tcase \"@schemes\":\n\t\t\t\t\tparser.swagger.Schemes = getSchemes(commentLine)\n\t\t\t\tcase \"@tag.name\":\n\t\t\t\t\tcommentInfo := strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\t\tparser.swagger.Tags = append(parser.swagger.Tags, spec.Tag{\n\t\t\t\t\t\tTagProps: spec.TagProps{\n\t\t\t\t\t\t\tName: strings.TrimSpace(commentInfo),\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\tcase \"@tag.description\":\n\t\t\t\t\tcommentInfo := strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\t\ttag := parser.swagger.Tags[len(parser.swagger.Tags)-1]\n\t\t\t\t\ttag.TagProps.Description = commentInfo\n\t\t\t\t\treplaceLastTag(parser.swagger.Tags, tag)\n\t\t\t\tcase \"@tag.docs.url\":\n\t\t\t\t\tcommentInfo := strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\t\ttag := parser.swagger.Tags[len(parser.swagger.Tags)-1]\n\t\t\t\t\ttag.TagProps.ExternalDocs = &spec.ExternalDocumentation{\n\t\t\t\t\t\tURL: commentInfo,\n\t\t\t\t\t}\n\t\t\t\t\treplaceLastTag(parser.swagger.Tags, tag)\n\n\t\t\t\tcase \"@tag.docs.description\":\n\t\t\t\t\tcommentInfo := strings.TrimSpace(commentLine[len(attribute):])\n\t\t\t\t\ttag := parser.swagger.Tags[len(parser.swagger.Tags)-1]\n\t\t\t\t\tif tag.TagProps.ExternalDocs == nil {\n\t\t\t\t\t\treturn errors.New(\"@tag.docs.description needs to come after a @tags.docs.url\")\n\t\t\t\t\t}\n\t\t\t\t\ttag.TagProps.ExternalDocs.Description = commentInfo\n\t\t\t\t\treplaceLastTag(parser.swagger.Tags, tag)\n\t\t\t\t}\n\t\t\t\tpreviousAttribute = attribute\n\t\t\t}\n\n\t\t\tfor i := 0; i < len(comments); i++ {\n\t\t\t\tattribute := strings.ToLower(strings.Split(comments[i], \" \")[0])\n\t\t\t\tswitch attribute {\n\t\t\t\tcase \"@securitydefinitions.basic\":\n\t\t\t\t\tsecurityMap[strings.TrimSpace(comments[i][len(attribute):])] = spec.BasicAuth()\n\t\t\t\tcase \"@securitydefinitions.apikey\":\n\t\t\t\t\tattrMap := map[string]string{}\n\t\t\t\t\tfor _, v := range comments[i+1:] {\n\t\t\t\t\t\tsecurityAttr := strings.ToLower(strings.Split(v, \" \")[0])\n\t\t\t\t\t\tif securityAttr == \"@in\" || securityAttr == \"@name\" {\n\t\t\t\t\t\t\tattrMap[securityAttr] = strings.TrimSpace(v[len(securityAttr):])\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next securityDefinitions\n\t\t\t\t\t\tif strings.Index(securityAttr, \"@securitydefinitions.\") == 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif len(attrMap) != 2 {\n\t\t\t\t\t\treturn errors.New(\"@securitydefinitions.apikey is @name and @in required\")\n\t\t\t\t\t}\n\t\t\t\t\tsecurityMap[strings.TrimSpace(comments[i][len(attribute):])] = spec.APIKeyAuth(attrMap[\"@name\"], attrMap[\"@in\"])\n\t\t\t\tcase \"@securitydefinitions.oauth2.application\":\n\t\t\t\t\tattrMap := map[string]string{}\n\t\t\t\t\tscopes := map[string]string{}\n\t\t\t\t\tfor _, v := range comments[i+1:] {\n\t\t\t\t\t\tsecurityAttr := strings.ToLower(strings.Split(v, \" \")[0])\n\t\t\t\t\t\tif securityAttr == \"@tokenurl\" {\n\t\t\t\t\t\t\tattrMap[securityAttr] = strings.TrimSpace(v[len(securityAttr):])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisExists, err := isExistsScope(securityAttr)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif isExists {\n\t\t\t\t\t\t\t\tscopScheme, err := getScopeScheme(securityAttr)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscopes[scopScheme] = v[len(securityAttr):]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next securityDefinitions\n\t\t\t\t\t\tif strings.Index(securityAttr, \"@securitydefinitions.\") == 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif len(attrMap) != 1 {\n\t\t\t\t\t\treturn errors.New(\"@securitydefinitions.oauth2.application is @tokenUrl required\")\n\t\t\t\t\t}\n\t\t\t\t\tsecurityScheme := spec.OAuth2Application(attrMap[\"@tokenurl\"])\n\t\t\t\t\tfor scope, description := range scopes {\n\t\t\t\t\t\tsecurityScheme.AddScope(scope, description)\n\t\t\t\t\t}\n\t\t\t\t\tsecurityMap[strings.TrimSpace(comments[i][len(attribute):])] = securityScheme\n\t\t\t\tcase \"@securitydefinitions.oauth2.implicit\":\n\t\t\t\t\tattrMap := map[string]string{}\n\t\t\t\t\tscopes := map[string]string{}\n\t\t\t\t\tfor _, v := range comments[i+1:] {\n\t\t\t\t\t\tsecurityAttr := strings.ToLower(strings.Split(v, \" \")[0])\n\t\t\t\t\t\tif securityAttr == \"@authorizationurl\" {\n\t\t\t\t\t\t\tattrMap[securityAttr] = strings.TrimSpace(v[len(securityAttr):])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisExists, err := isExistsScope(securityAttr)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif isExists {\n\t\t\t\t\t\t\t\tscopScheme, err := getScopeScheme(securityAttr)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscopes[scopScheme] = v[len(securityAttr):]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next securityDefinitions\n\t\t\t\t\t\tif strings.Index(securityAttr, \"@securitydefinitions.\") == 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif len(attrMap) != 1 {\n\t\t\t\t\t\treturn errors.New(\"@securitydefinitions.oauth2.implicit is @authorizationUrl required\")\n\t\t\t\t\t}\n\t\t\t\t\tsecurityScheme := spec.OAuth2Implicit(attrMap[\"@authorizationurl\"])\n\t\t\t\t\tfor scope, description := range scopes {\n\t\t\t\t\t\tsecurityScheme.AddScope(scope, description)\n\t\t\t\t\t}\n\t\t\t\t\tsecurityMap[strings.TrimSpace(comments[i][len(attribute):])] = securityScheme\n\t\t\t\tcase \"@securitydefinitions.oauth2.password\":\n\t\t\t\t\tattrMap := map[string]string{}\n\t\t\t\t\tscopes := map[string]string{}\n\t\t\t\t\tfor _, v := range comments[i+1:] {\n\t\t\t\t\t\tsecurityAttr := strings.ToLower(strings.Split(v, \" \")[0])\n\t\t\t\t\t\tif securityAttr == \"@tokenurl\" {\n\t\t\t\t\t\t\tattrMap[securityAttr] = strings.TrimSpace(v[len(securityAttr):])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisExists, err := isExistsScope(securityAttr)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif isExists {\n\t\t\t\t\t\t\t\tscopScheme, err := getScopeScheme(securityAttr)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscopes[scopScheme] = v[len(securityAttr):]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next securityDefinitions\n\t\t\t\t\t\tif strings.Index(securityAttr, \"@securitydefinitions.\") == 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif len(attrMap) != 1 {\n\t\t\t\t\t\treturn errors.New(\"@securitydefinitions.oauth2.password is @tokenUrl required\")\n\t\t\t\t\t}\n\t\t\t\t\tsecurityScheme := spec.OAuth2Password(attrMap[\"@tokenurl\"])\n\t\t\t\t\tfor scope, description := range scopes {\n\t\t\t\t\t\tsecurityScheme.AddScope(scope, description)\n\t\t\t\t\t}\n\t\t\t\t\tsecurityMap[strings.TrimSpace(comments[i][len(attribute):])] = securityScheme\n\t\t\t\tcase \"@securitydefinitions.oauth2.accesscode\":\n\t\t\t\t\tattrMap := map[string]string{}\n\t\t\t\t\tscopes := map[string]string{}\n\t\t\t\t\tfor _, v := range comments[i+1:] {\n\t\t\t\t\t\tsecurityAttr := strings.ToLower(strings.Split(v, \" \")[0])\n\t\t\t\t\t\tif securityAttr == \"@tokenurl\" || securityAttr == \"@authorizationurl\" {\n\t\t\t\t\t\t\tattrMap[securityAttr] = strings.TrimSpace(v[len(securityAttr):])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisExists, err := isExistsScope(securityAttr)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif isExists {\n\t\t\t\t\t\t\t\tscopScheme, err := getScopeScheme(securityAttr)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscopes[scopScheme] = v[len(securityAttr):]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next securityDefinitions\n\t\t\t\t\t\tif strings.Index(securityAttr, \"@securitydefinitions.\") == 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif len(attrMap) != 2 {\n\t\t\t\t\t\treturn errors.New(\"@securitydefinitions.oauth2.accessCode is @tokenUrl and @authorizationUrl required\")\n\t\t\t\t\t}\n\t\t\t\t\tsecurityScheme := spec.OAuth2AccessToken(attrMap[\"@authorizationurl\"], attrMap[\"@tokenurl\"])\n\t\t\t\t\tfor scope, description := range scopes {\n\t\t\t\t\t\tsecurityScheme.AddScope(scope, description)\n\t\t\t\t\t}\n\t\t\t\t\tsecurityMap[strings.TrimSpace(comments[i][len(attribute):])] = securityScheme\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif len(securityMap) > 0 {\n\t\tparser.swagger.SecurityDefinitions = securityMap\n\t}\n\n\treturn nil\n}\n\nfunc getScopeScheme(scope string) (string, error) {\n\tscopeValue := scope[strings.Index(scope, \"@scope.\"):]\n\tif scopeValue == \"\" {\n\t\treturn \"\", errors.New(\"@scope is empty\")\n\t}\n\treturn scope[len(\"@scope.\"):], nil\n}\n\nfunc isExistsScope(scope string) (bool, error) {\n\ts := strings.Fields(scope)\n\tfor _, v := range s {\n\t\tif strings.Index(v, \"@scope.\") != -1 {\n\t\t\tif strings.Index(v, \",\") != -1 {\n\t\t\t\treturn false, fmt.Errorf(\"@scope can't use comma(,) get=\" + v)\n\t\t\t}\n\t\t}\n\t}\n\treturn strings.Index(scope, \"@scope.\") != -1, nil\n}\n\n// getSchemes parses swagger schemes for given commentLine\nfunc getSchemes(commentLine string) []string {\n\tattribute := strings.ToLower(strings.Split(commentLine, \" \")[0])\n\treturn strings.Split(strings.TrimSpace(commentLine[len(attribute):]), \" \")\n}\n\n// ParseRouterAPIInfo parses router api info for given astFile\nfunc (parser *Parser) ParseRouterAPIInfo(fileName string, astFile *ast.File) error {\n\tfor _, astDescription := range astFile.Decls {\n\t\tswitch astDeclaration := astDescription.(type) {\n\t\tcase *ast.FuncDecl:\n\t\t\tif astDeclaration.Doc != nil && astDeclaration.Doc.List != nil {\n\t\t\t\toperation := NewOperation() //for per 'function' comment, create a new 'Operation' object\n\t\t\t\toperation.parser = parser\n\t\t\t\tfor _, comment := range astDeclaration.Doc.List {\n\t\t\t\t\tif err := operation.ParseComment(comment.Text, astFile); err != nil {\n\t\t\t\t\t\treturn fmt.Errorf(\"ParseComment error in file %s :%+v\", fileName, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar pathItem spec.PathItem\n\t\t\t\tvar ok bool\n\n\t\t\t\tif pathItem, ok = parser.swagger.Paths.Paths[operation.Path]; !ok {\n\t\t\t\t\tpathItem = spec.PathItem{}\n\t\t\t\t}\n\t\t\t\tswitch strings.ToUpper(operation.HTTPMethod) {\n\t\t\t\tcase http.MethodGet:\n\t\t\t\t\tpathItem.Get = &operation.Operation\n\t\t\t\tcase http.MethodPost:\n\t\t\t\t\tpathItem.Post = &operation.Operation\n\t\t\t\tcase http.MethodDelete:\n\t\t\t\t\tpathItem.Delete = &operation.Operation\n\t\t\t\tcase http.MethodPut:\n\t\t\t\t\tpathItem.Put = &operation.Operation\n\t\t\t\tcase http.MethodPatch:\n\t\t\t\t\tpathItem.Patch = &operation.Operation\n\t\t\t\tcase http.MethodHead:\n\t\t\t\t\tpathItem.Head = &operation.Operation\n\t\t\t\tcase http.MethodOptions:\n\t\t\t\t\tpathItem.Options = &operation.Operation\n\t\t\t\t}\n\n\t\t\t\tparser.swagger.Paths.Paths[operation.Path] = pathItem\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// ParseType parses type info for given astFile.\nfunc (parser *Parser) ParseType(astFile *ast.File) {\n\tif _, ok := parser.TypeDefinitions[astFile.Name.String()]; !ok {\n\t\tparser.TypeDefinitions[astFile.Name.String()] = make(map[string]*ast.TypeSpec)\n\t}\n\n\tfor _, astDeclaration := range astFile.Decls {\n\t\tif generalDeclaration, ok := astDeclaration.(*ast.GenDecl); ok && generalDeclaration.Tok == token.TYPE {\n\t\t\tfor _, astSpec := range generalDeclaration.Specs {\n\t\t\t\tif typeSpec, ok := astSpec.(*ast.TypeSpec); ok {\n\t\t\t\t\ttypeName := fmt.Sprintf(\"%v\", typeSpec.Type)\n\t\t\t\t\t// check if its a custom primitive type\n\t\t\t\t\tif IsGolangPrimitiveType(typeName) {\n\t\t\t\t\t\tparser.CustomPrimitiveTypes[typeSpec.Name.String()] = TransToValidSchemeType(typeName)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparser.TypeDefinitions[astFile.Name.String()][typeSpec.Name.String()] = typeSpec\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (parser *Parser) isInStructStack(refTypeName string) bool {\n\tfor _, structName := range parser.structStack {\n\t\tif refTypeName == structName {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// ParseDefinitions parses Swagger Api definitions.\nfunc (parser *Parser) ParseDefinitions() {\n\t// sort the typeNames so that parsing definitions is deterministic\n\ttypeNames := make([]string, 0, len(parser.registerTypes))\n\tfor refTypeName := range parser.registerTypes {\n\t\ttypeNames = append(typeNames, refTypeName)\n\t}\n\tsort.Strings(typeNames)\n\n\tfor _, refTypeName := range typeNames {\n\t\ttypeSpec := parser.registerTypes[refTypeName]\n\t\tss := strings.Split(refTypeName, \".\")\n\t\tpkgName := ss[0]\n\t\tparser.structStack = nil\n\t\tparser.ParseDefinition(pkgName, typeSpec.Name.Name, typeSpec)\n\t}\n}\n\n// ParseDefinition parses given type spec that corresponds to the type under\n// given name and package, and populates swagger schema definitions registry\n// with a schema for the given type\nfunc (parser *Parser) ParseDefinition(pkgName, typeName string, typeSpec *ast.TypeSpec) error {\n\trefTypeName := fullTypeName(pkgName, typeName)\n\tif _, isParsed := parser.swagger.Definitions[refTypeName]; isParsed {\n\t\tPrintln(\"Skipping '\" + refTypeName + \"', already parsed.\")\n\t\treturn nil\n\t}\n\n\tif parser.isInStructStack(refTypeName) {\n\t\tPrintln(\"Skipping '\" + refTypeName + \"', recursion detected.\")\n\t\treturn nil\n\t}\n\tparser.structStack = append(parser.structStack, refTypeName)\n\n\tPrintln(\"Generating \" + refTypeName)\n\n\tschema, err := parser.parseTypeExpr(pkgName, typeName, typeSpec.Type)\n\tif err != nil {\n\t\treturn err\n\t}\n\tparser.swagger.Definitions[refTypeName] = schema\n\treturn nil\n}\n\nfunc (parser *Parser) collectRequiredFields(pkgName string, properties map[string]spec.Schema, extraRequired []string) (requiredFields []string) {\n\t// created sorted list of properties keys so when we iterate over them it's deterministic\n\tks := make([]string, 0, len(properties))\n\tfor k := range properties {\n\t\tks = append(ks, k)\n\t}\n\tsort.Strings(ks)\n\n\trequiredFields = make([]string, 0)\n\n\t// iterate over keys list instead of map to avoid the random shuffle of the order that go does for maps\n\tfor _, k := range ks {\n\t\tprop := properties[k]\n\n\t\t// todo find the pkgName of the property type\n\t\ttname := prop.SchemaProps.Type[0]\n\t\tif _, ok := parser.TypeDefinitions[pkgName][tname]; ok {\n\t\t\ttspec := parser.TypeDefinitions[pkgName][tname]\n\t\t\tparser.ParseDefinition(pkgName, tname, tspec)\n\t\t}\n\t\tif tname != \"object\" {\n\t\t\trequiredFields = append(requiredFields, prop.SchemaProps.Required...)\n\t\t}\n\t\tproperties[k] = prop\n\t}\n\n\tif extraRequired != nil {\n\t\trequiredFields = append(requiredFields, extraRequired...)\n\t}\n\n\tsort.Strings(requiredFields)\n\n\treturn\n}\n\nfunc fullTypeName(pkgName, typeName string) string {\n\tif pkgName != \"\" {\n\t\treturn pkgName + \".\" + typeName\n\t}\n\treturn typeName\n}\n\n// parseTypeExpr parses given type expression that corresponds to the type under\n// given name and package, and returns swagger schema for it.\nfunc (parser *Parser) parseTypeExpr(pkgName, typeName string, typeExpr ast.Expr) (spec.Schema, error) {\n\t//TODO: return pointer to spec.Schema\n\n\tswitch expr := typeExpr.(type) {\n\t// type Foo struct {...}\n\tcase *ast.StructType:\n\t\trefTypeName := fullTypeName(pkgName, typeName)\n\t\tif schema, isParsed := parser.swagger.Definitions[refTypeName]; isParsed {\n\t\t\treturn schema, nil\n\t\t}\n\n\t\textraRequired := make([]string, 0)\n\t\tproperties := make(map[string]spec.Schema)\n\t\tfor _, field := range expr.Fields.List {\n\t\t\tvar fieldProps map[string]spec.Schema\n\t\t\tvar requiredFromAnon []string\n\t\t\tif field.Names == nil {\n\t\t\t\tvar err error\n\t\t\t\tfieldProps, requiredFromAnon, err = parser.parseAnonymousField(pkgName, field)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn spec.Schema{}, err\n\t\t\t\t}\n\t\t\t\textraRequired = append(extraRequired, requiredFromAnon...)\n\t\t\t} else {\n\t\t\t\tvar err error\n\t\t\t\tfieldProps, err = parser.parseStruct(pkgName, field)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn spec.Schema{}, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor k, v := range fieldProps {\n\t\t\t\tproperties[k] = v\n\t\t\t}\n\t\t}\n\n\t\t// collect requireds from our properties and anonymous fields\n\t\trequired := parser.collectRequiredFields(pkgName, properties, extraRequired)\n\n\t\t// unset required from properties because we've collected them\n\t\tfor k, prop := range properties {\n\t\t\ttname := prop.SchemaProps.Type[0]\n\t\t\tif tname != \"object\" {\n\t\t\t\tprop.SchemaProps.Required = make([]string, 0)\n\t\t\t}\n\t\t\tproperties[k] = prop\n\t\t}\n\n\t\treturn spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:       []string{\"object\"},\n\t\t\t\tProperties: properties,\n\t\t\t\tRequired:   required,\n\t\t\t}}, nil\n\n\t// type Foo Baz\n\tcase *ast.Ident:\n\t\trefTypeName := fullTypeName(pkgName, expr.Name)\n\t\tif _, isParsed := parser.swagger.Definitions[refTypeName]; !isParsed {\n\t\t\tif typedef, ok := parser.TypeDefinitions[pkgName][expr.Name]; ok {\n\t\t\t\tparser.ParseDefinition(pkgName, expr.Name, typedef)\n\t\t\t}\n\t\t}\n\t\treturn parser.swagger.Definitions[refTypeName], nil\n\n\t// type Foo *Baz\n\tcase *ast.StarExpr:\n\t\treturn parser.parseTypeExpr(pkgName, typeName, expr.X)\n\n\t// type Foo []Baz\n\tcase *ast.ArrayType:\n\t\titemSchema, err := parser.parseTypeExpr(pkgName, \"\", expr.Elt)\n\t\tif err != nil {\n\t\t\treturn spec.Schema{}, err\n\t\t}\n\t\treturn spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"array\"},\n\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\tSchema: &itemSchema,\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil\n\n\t// type Foo pkg.Bar\n\tcase *ast.SelectorExpr:\n\t\tif xIdent, ok := expr.X.(*ast.Ident); ok {\n\t\t\tpkgName = xIdent.Name\n\t\t\ttypeName = expr.Sel.Name\n\t\t\trefTypeName := fullTypeName(pkgName, typeName)\n\t\t\tif _, isParsed := parser.swagger.Definitions[refTypeName]; !isParsed {\n\t\t\t\ttypedef := parser.TypeDefinitions[pkgName][typeName]\n\t\t\t\tparser.ParseDefinition(pkgName, typeName, typedef)\n\t\t\t}\n\t\t\treturn parser.swagger.Definitions[refTypeName], nil\n\t\t}\n\n\t// type Foo map[string]Bar\n\tcase *ast.MapType:\n\t\titemSchema, err := parser.parseTypeExpr(pkgName, \"\", expr.Value)\n\t\tif err != nil {\n\t\t\treturn spec.Schema{}, err\n\t\t}\n\t\treturn spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\tSchema: &itemSchema,\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil\n\t// ...\n\tdefault:\n\t\tPrintf(\"Type definition of type '%T' is not supported yet. Using 'object' instead.\\n\", typeExpr)\n\t}\n\n\treturn spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tType: []string{\"object\"},\n\t\t},\n\t}, nil\n}\n\ntype structField struct {\n\tname         string\n\tschemaType   string\n\tarrayType    string\n\tformatType   string\n\tisRequired   bool\n\tcrossPkg     string\n\texampleValue interface{}\n\tmaximum      *float64\n\tminimum      *float64\n\tmaxLength    *int64\n\tminLength    *int64\n\tenums        []interface{}\n\tdefaultValue interface{}\n\textensions   map[string]interface{}\n}\n\nfunc (parser *Parser) parseStruct(pkgName string, field *ast.Field) (map[string]spec.Schema, error) {\n\tproperties := map[string]spec.Schema{}\n\tstructField, err := parser.parseField(field)\n\tif err != nil {\n\t\treturn properties, nil\n\t}\n\tif structField.name == \"\" {\n\t\treturn properties, nil\n\t}\n\tvar desc string\n\tif field.Doc != nil {\n\t\tdesc = strings.TrimSpace(field.Doc.Text())\n\t}\n\tif desc == \"\" && field.Comment != nil {\n\t\tdesc = strings.TrimSpace(field.Comment.Text())\n\t}\n\t// TODO: find package of schemaType and/or arrayType\n\n\tif structField.crossPkg != \"\" {\n\t\tpkgName = structField.crossPkg\n\t}\n\tif _, ok := parser.TypeDefinitions[pkgName][structField.schemaType]; ok { // user type field\n\t\t// write definition if not yet present\n\t\tparser.ParseDefinition(pkgName, structField.schemaType,\n\t\t\tparser.TypeDefinitions[pkgName][structField.schemaType])\n\t\tproperties[structField.name] = spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:        []string{\"object\"}, // to avoid swagger validation error\n\t\t\t\tDescription: desc,\n\t\t\t\tRef: spec.Ref{\n\t\t\t\t\tRef: jsonreference.MustCreateRef(\"#/definitions/\" + pkgName + \".\" + structField.schemaType),\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t} else if structField.schemaType == \"array\" { // array field type\n\t\t// if defined -- ref it\n\t\tif _, ok := parser.TypeDefinitions[pkgName][structField.arrayType]; ok { // user type in array\n\t\t\tparser.ParseDefinition(pkgName, structField.arrayType,\n\t\t\t\tparser.TypeDefinitions[pkgName][structField.arrayType])\n\t\t\tproperties[structField.name] = spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:        []string{structField.schemaType},\n\t\t\t\t\tDescription: desc,\n\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tRef: spec.Ref{\n\t\t\t\t\t\t\t\t\tRef: jsonreference.MustCreateRef(\"#/definitions/\" + pkgName + \".\" + structField.arrayType),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t} else { // standard type in array\n\t\t\trequired := make([]string, 0)\n\t\t\tif structField.isRequired {\n\t\t\t\trequired = append(required, structField.name)\n\t\t\t}\n\n\t\t\tproperties[structField.name] = spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:        []string{structField.schemaType},\n\t\t\t\t\tDescription: desc,\n\t\t\t\t\tFormat:      structField.formatType,\n\t\t\t\t\tRequired:    required,\n\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tType:      []string{structField.arrayType},\n\t\t\t\t\t\t\t\tMaximum:   structField.maximum,\n\t\t\t\t\t\t\t\tMinimum:   structField.minimum,\n\t\t\t\t\t\t\t\tMaxLength: structField.maxLength,\n\t\t\t\t\t\t\t\tMinLength: structField.minLength,\n\t\t\t\t\t\t\t\tEnum:      structField.enums,\n\t\t\t\t\t\t\t\tDefault:   structField.defaultValue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSwaggerSchemaProps: spec.SwaggerSchemaProps{\n\t\t\t\t\tExample: structField.exampleValue,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t} else {\n\t\trequired := make([]string, 0)\n\t\tif structField.isRequired {\n\t\t\trequired = append(required, structField.name)\n\t\t}\n\t\tproperties[structField.name] = spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:        []string{structField.schemaType},\n\t\t\t\tDescription: desc,\n\t\t\t\tFormat:      structField.formatType,\n\t\t\t\tRequired:    required,\n\t\t\t\tMaximum:     structField.maximum,\n\t\t\t\tMinimum:     structField.minimum,\n\t\t\t\tMaxLength:   structField.maxLength,\n\t\t\t\tMinLength:   structField.minLength,\n\t\t\t\tEnum:        structField.enums,\n\t\t\t\tDefault:     structField.defaultValue,\n\t\t\t},\n\t\t\tSwaggerSchemaProps: spec.SwaggerSchemaProps{\n\t\t\t\tExample: structField.exampleValue,\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: structField.extensions,\n\t\t\t},\n\t\t}\n\n\t\tnestStruct, ok := field.Type.(*ast.StructType)\n\t\tif ok {\n\t\t\tprops := map[string]spec.Schema{}\n\t\t\tnestRequired := make([]string, 0)\n\t\t\tfor _, v := range nestStruct.Fields.List {\n\t\t\t\tp, err := parser.parseStruct(pkgName, v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn properties, err\n\t\t\t\t}\n\t\t\t\tfor k, v := range p {\n\t\t\t\t\tif v.SchemaProps.Type[0] != \"object\" {\n\t\t\t\t\t\tnestRequired = append(nestRequired, v.SchemaProps.Required...)\n\t\t\t\t\t\tv.SchemaProps.Required = make([]string, 0)\n\t\t\t\t\t}\n\t\t\t\t\tprops[k] = v\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tproperties[structField.name] = spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:        []string{structField.schemaType},\n\t\t\t\t\tDescription: desc,\n\t\t\t\t\tFormat:      structField.formatType,\n\t\t\t\t\tProperties:  props,\n\t\t\t\t\tRequired:    nestRequired,\n\t\t\t\t\tMaximum:     structField.maximum,\n\t\t\t\t\tMinimum:     structField.minimum,\n\t\t\t\t\tMaxLength:   structField.maxLength,\n\t\t\t\t\tMinLength:   structField.minLength,\n\t\t\t\t\tEnum:        structField.enums,\n\t\t\t\t\tDefault:     structField.defaultValue,\n\t\t\t\t},\n\t\t\t\tSwaggerSchemaProps: spec.SwaggerSchemaProps{\n\t\t\t\t\tExample: structField.exampleValue,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\treturn properties, nil\n}\n\nfunc (parser *Parser) parseAnonymousField(pkgName string, field *ast.Field) (map[string]spec.Schema, []string, error) {\n\tproperties := make(map[string]spec.Schema)\n\n\tfullTypeName := \"\"\n\tswitch ftype := field.Type.(type) {\n\tcase *ast.Ident:\n\t\tfullTypeName = ftype.Name\n\tcase *ast.StarExpr:\n\t\tif ftypeX, ok := ftype.X.(*ast.Ident); ok {\n\t\t\tfullTypeName = ftypeX.Name\n\t\t} else if ftypeX, ok := ftype.X.(*ast.SelectorExpr); ok {\n\t\t\tif packageX, ok := ftypeX.X.(*ast.Ident); ok {\n\t\t\t\tfullTypeName = fmt.Sprintf(\"%s.%s\", packageX.Name, ftypeX.Sel.Name)\n\t\t\t}\n\t\t} else {\n\t\t\tPrintf(\"Composite field type of '%T' is unhandle by parser. Skipping\", ftype)\n\t\t\treturn properties, []string{}, nil\n\t\t}\n\tdefault:\n\t\tPrintf(\"Field type of '%T' is unsupported. Skipping\", ftype)\n\t\treturn properties, []string{}, nil\n\t}\n\n\ttypeName := fullTypeName\n\tif splits := strings.Split(fullTypeName, \".\"); len(splits) > 1 {\n\t\tpkgName = splits[0]\n\t\ttypeName = splits[1]\n\t}\n\n\ttypeSpec := parser.TypeDefinitions[pkgName][typeName]\n\tschema, err := parser.parseTypeExpr(pkgName, typeName, typeSpec.Type)\n\tif err != nil {\n\t\treturn properties, []string{}, err\n\t}\n\tschemaType := \"unknown\"\n\tif len(schema.SchemaProps.Type) > 0 {\n\t\tschemaType = schema.SchemaProps.Type[0]\n\t}\n\n\tswitch schemaType {\n\tcase \"object\":\n\t\tfor k, v := range schema.SchemaProps.Properties {\n\t\t\tproperties[k] = v\n\t\t}\n\tcase \"array\":\n\t\tproperties[typeName] = schema\n\tdefault:\n\t\tPrintf(\"Can't extract properties from a schema of type '%s'\", schemaType)\n\t}\n\n\treturn properties, schema.SchemaProps.Required, nil\n}\n\nfunc (parser *Parser) parseField(field *ast.Field) (*structField, error) {\n\tprop, err := getPropertyName(field.Type, parser)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(prop.ArrayType) == 0 {\n\t\tCheckSchemaType(prop.SchemaType)\n\t} else {\n\t\tCheckSchemaType(\"array\")\n\t}\n\tstructField := &structField{\n\t\tname:       field.Names[0].Name,\n\t\tschemaType: prop.SchemaType,\n\t\tarrayType:  prop.ArrayType,\n\t\tcrossPkg:   prop.CrossPkg,\n\t}\n\n\tswitch parser.PropNamingStrategy {\n\tcase SnakeCase:\n\t\tstructField.name = toSnakeCase(structField.name)\n\tcase PascalCase:\n\t\t//use struct field name\n\tcase CamelCase:\n\t\tstructField.name = toLowerCamelCase(structField.name)\n\tdefault:\n\t\tstructField.name = toLowerCamelCase(structField.name)\n\t}\n\n\tif field.Tag == nil {\n\t\treturn structField, nil\n\t}\n\t// `json:\"tag\"` -> json:\"tag\"\n\tstructTag := reflect.StructTag(strings.Replace(field.Tag.Value, \"`\", \"\", -1))\n\tjsonTag := structTag.Get(\"json\")\n\t// json:\"tag,hoge\"\n\tif strings.Contains(jsonTag, \",\") {\n\t\t// json:\",hoge\"\n\t\tif strings.HasPrefix(jsonTag, \",\") {\n\t\t\tjsonTag = \"\"\n\t\t} else {\n\t\t\tjsonTag = strings.SplitN(jsonTag, \",\", 2)[0]\n\t\t}\n\t}\n\tif jsonTag == \"-\" {\n\t\tstructField.name = \"\"\n\t} else if jsonTag != \"\" {\n\t\tstructField.name = jsonTag\n\t}\n\n\tif typeTag := structTag.Get(\"swaggertype\"); typeTag != \"\" {\n\t\tparts := strings.Split(typeTag, \",\")\n\t\tif 0 < len(parts) && len(parts) <= 2 {\n\t\t\tnewSchemaType := parts[0]\n\t\t\tnewArrayType := structField.arrayType\n\t\t\tif len(parts) >= 2 {\n\t\t\t\tif newSchemaType == \"array\" {\n\t\t\t\t\tnewArrayType = parts[1]\n\t\t\t\t} else if newSchemaType == \"primitive\" {\n\t\t\t\t\tnewSchemaType = parts[1]\n\t\t\t\t\tnewArrayType = parts[1]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tCheckSchemaType(newSchemaType)\n\t\t\tCheckSchemaType(newArrayType)\n\t\t\tstructField.schemaType = newSchemaType\n\t\t\tstructField.arrayType = newArrayType\n\t\t}\n\t}\n\tif exampleTag := structTag.Get(\"example\"); exampleTag != \"\" {\n\t\texample, err := defineTypeOfExample(structField.schemaType, structField.arrayType, exampleTag)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstructField.exampleValue = example\n\t}\n\tif formatTag := structTag.Get(\"format\"); formatTag != \"\" {\n\t\tstructField.formatType = formatTag\n\t}\n\tif bindingTag := structTag.Get(\"binding\"); bindingTag != \"\" {\n\t\tfor _, val := range strings.Split(bindingTag, \",\") {\n\t\t\tif val == \"required\" {\n\t\t\t\tstructField.isRequired = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif validateTag := structTag.Get(\"validate\"); validateTag != \"\" {\n\t\tfor _, val := range strings.Split(validateTag, \",\") {\n\t\t\tif val == \"required\" {\n\t\t\t\tstructField.isRequired = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif extensionsTag := structTag.Get(\"extensions\"); extensionsTag != \"\" {\n\t\tstructField.extensions = map[string]interface{}{}\n\t\tfor _, val := range strings.Split(extensionsTag, \",\") {\n\t\t\tparts := strings.SplitN(val, \"=\", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tstructField.extensions[parts[0]] = parts[1]\n\t\t\t} else {\n\t\t\t\tstructField.extensions[parts[0]] = true\n\t\t\t}\n\t\t}\n\t}\n\tif enumsTag := structTag.Get(\"enums\"); enumsTag != \"\" {\n\t\tenumType := structField.schemaType\n\t\tif structField.schemaType == \"array\" {\n\t\t\tenumType = structField.arrayType\n\t\t}\n\n\t\tfor _, e := range strings.Split(enumsTag, \",\") {\n\t\t\tvalue, err := defineType(enumType, e)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tstructField.enums = append(structField.enums, value)\n\t\t}\n\t}\n\tif defaultTag := structTag.Get(\"default\"); defaultTag != \"\" {\n\t\tvalue, err := defineType(structField.schemaType, defaultTag)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstructField.defaultValue = value\n\t}\n\n\tif IsNumericType(structField.schemaType) || IsNumericType(structField.arrayType) {\n\t\tmaximum, err := getFloatTag(structTag, \"maximum\")\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstructField.maximum = maximum\n\n\t\tminimum, err := getFloatTag(structTag, \"minimum\")\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstructField.minimum = minimum\n\t}\n\tif structField.schemaType == \"string\" || structField.arrayType == \"string\" {\n\t\tmaxLength, err := getIntTag(structTag, \"maxLength\")\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstructField.maxLength = maxLength\n\n\t\tminLength, err := getIntTag(structTag, \"minLength\")\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstructField.minLength = minLength\n\t}\n\n\treturn structField, nil\n}\n\nfunc replaceLastTag(slice []spec.Tag, element spec.Tag) {\n\tslice = slice[:len(slice)-1]\n\tslice = append(slice, element)\n}\n\nfunc getFloatTag(structTag reflect.StructTag, tagName string) (*float64, error) {\n\tstrValue := structTag.Get(tagName)\n\tif strValue == \"\" {\n\t\treturn nil, nil\n\t}\n\n\tvalue, err := strconv.ParseFloat(strValue, 64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"can't parse numeric value of %q tag: %v\", tagName, err)\n\t}\n\n\treturn &value, nil\n}\n\nfunc getIntTag(structTag reflect.StructTag, tagName string) (*int64, error) {\n\tstrValue := structTag.Get(tagName)\n\tif strValue == \"\" {\n\t\treturn nil, nil\n\t}\n\n\tvalue, err := strconv.ParseInt(strValue, 10, 64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"can't parse numeric value of %q tag: %v\", tagName, err)\n\t}\n\n\treturn &value, nil\n}\n\nfunc toSnakeCase(in string) string {\n\trunes := []rune(in)\n\tlength := len(runes)\n\n\tvar out []rune\n\tfor i := 0; i < length; i++ {\n\t\tif i > 0 && unicode.IsUpper(runes[i]) && ((i+1 < length && unicode.IsLower(runes[i+1])) || unicode.IsLower(runes[i-1])) {\n\t\t\tout = append(out, '_')\n\t\t}\n\t\tout = append(out, unicode.ToLower(runes[i]))\n\t}\n\treturn string(out)\n}\n\nfunc toLowerCamelCase(in string) string {\n\trunes := []rune(in)\n\n\tvar out []rune\n\tflag := false\n\tfor i, curr := range runes {\n\t\tif (i == 0 && unicode.IsUpper(curr)) || (flag && unicode.IsUpper(curr)) {\n\t\t\tout = append(out, unicode.ToLower(curr))\n\t\t\tflag = true\n\t\t} else {\n\t\t\tout = append(out, curr)\n\t\t\tflag = false\n\t\t}\n\t}\n\n\treturn string(out)\n}\n\n// defineTypeOfExample example value define the type (object and array unsupported)\nfunc defineTypeOfExample(schemaType, arrayType, exampleValue string) (interface{}, error) {\n\tswitch schemaType {\n\tcase \"string\":\n\t\treturn exampleValue, nil\n\tcase \"number\":\n\t\tv, err := strconv.ParseFloat(exampleValue, 64)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"example value %s can't convert to %s err: %s\", exampleValue, schemaType, err)\n\t\t}\n\t\treturn v, nil\n\tcase \"integer\":\n\t\tv, err := strconv.Atoi(exampleValue)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"example value %s can't convert to %s err: %s\", exampleValue, schemaType, err)\n\t\t}\n\t\treturn v, nil\n\tcase \"boolean\":\n\t\tv, err := strconv.ParseBool(exampleValue)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"example value %s can't convert to %s err: %s\", exampleValue, schemaType, err)\n\t\t}\n\t\treturn v, nil\n\tcase \"array\":\n\t\tvalues := strings.Split(exampleValue, \",\")\n\t\tresult := make([]interface{}, 0)\n\t\tfor _, value := range values {\n\t\t\tv, err := defineTypeOfExample(arrayType, \"\", value)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tresult = append(result, v)\n\t\t}\n\t\treturn result, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"%s is unsupported type in example value\", schemaType)\n\t}\n}\n\n// GetAllGoFileInfo gets all Go source files information for given searchDir.\nfunc (parser *Parser) getAllGoFileInfo(searchDir string) error {\n\treturn filepath.Walk(searchDir, parser.visit)\n}\n\nfunc (parser *Parser) visit(path string, f os.FileInfo, err error) error {\n\tif err := parser.Skip(path, f); err != nil {\n\t\treturn err\n\t}\n\n\tif ext := filepath.Ext(path); ext == \".go\" {\n\t\tfset := token.NewFileSet() // positions are relative to fset\n\t\tastFile, err := goparser.ParseFile(fset, path, nil, goparser.ParseComments)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"ParseFile error:%+v\", err)\n\t\t}\n\n\t\tparser.files[path] = astFile\n\t}\n\treturn nil\n}\n\n// Skip returns filepath.SkipDir error if match vendor and hidden folder\nfunc (parser *Parser) Skip(path string, f os.FileInfo) error {\n\n\tif !parser.ParseVendor { // ignore vendor\n\t\tif f.IsDir() && f.Name() == \"vendor\" {\n\t\t\treturn filepath.SkipDir\n\t\t}\n\t}\n\n\t// exclude all hidden folder\n\tif f.IsDir() && len(f.Name()) > 1 && f.Name()[0] == '.' {\n\t\treturn filepath.SkipDir\n\t}\n\treturn nil\n}\n\n// GetSwagger returns *spec.Swagger which is the root document object for the API specification.\nfunc (parser *Parser) GetSwagger() *spec.Swagger {\n\treturn parser.swagger\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/property.go",
    "content": "package swag\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"strings\"\n)\n\n// ErrFailedConvertPrimitiveType Failed to convert for swag to interpretable type\nvar ErrFailedConvertPrimitiveType = errors.New(\"swag property: failed convert primitive type\")\n\ntype propertyName struct {\n\tSchemaType string\n\tArrayType  string\n\tCrossPkg   string\n}\n\ntype propertyNewFunc func(schemeType string, crossPkg string) propertyName\n\nfunc newArrayProperty(schemeType string, crossPkg string) propertyName {\n\treturn propertyName{\n\t\tSchemaType: \"array\",\n\t\tArrayType:  schemeType,\n\t\tCrossPkg:   crossPkg,\n\t}\n}\n\nfunc newProperty(schemeType string, crossPkg string) propertyName {\n\treturn propertyName{\n\t\tSchemaType: schemeType,\n\t\tArrayType:  \"string\",\n\t\tCrossPkg:   crossPkg,\n\t}\n}\n\nfunc convertFromSpecificToPrimitive(typeName string) (string, error) {\n\ttypeName = strings.ToUpper(typeName)\n\tswitch typeName {\n\tcase \"TIME\", \"OBJECTID\", \"UUID\":\n\t\treturn \"string\", nil\n\tcase \"DECIMAL\":\n\t\treturn \"number\", nil\n\t}\n\treturn \"\", ErrFailedConvertPrimitiveType\n}\n\nfunc parseFieldSelectorExpr(astTypeSelectorExpr *ast.SelectorExpr, parser *Parser, propertyNewFunc propertyNewFunc) propertyName {\n\tif primitiveType, err := convertFromSpecificToPrimitive(astTypeSelectorExpr.Sel.Name); err == nil {\n\t\treturn propertyNewFunc(primitiveType, \"\")\n\t}\n\n\tif pkgName, ok := astTypeSelectorExpr.X.(*ast.Ident); ok {\n\t\tif typeDefinitions, ok := parser.TypeDefinitions[pkgName.Name][astTypeSelectorExpr.Sel.Name]; ok {\n\t\t\tif expr, ok := typeDefinitions.Type.(*ast.SelectorExpr); ok {\n\t\t\t\tif primitiveType, err := convertFromSpecificToPrimitive(expr.Sel.Name); err == nil {\n\t\t\t\t\treturn propertyNewFunc(primitiveType, \"\")\n\t\t\t\t}\n\t\t\t}\n\t\t\tparser.ParseDefinition(pkgName.Name, astTypeSelectorExpr.Sel.Name, typeDefinitions)\n\t\t\treturn propertyNewFunc(astTypeSelectorExpr.Sel.Name, pkgName.Name)\n\t\t}\n\t\tif actualPrimitiveType, isCustomType := parser.CustomPrimitiveTypes[astTypeSelectorExpr.Sel.Name]; isCustomType {\n\t\t\treturn propertyName{SchemaType: actualPrimitiveType, ArrayType: actualPrimitiveType}\n\t\t}\n\t}\n\treturn propertyName{SchemaType: \"string\", ArrayType: \"string\"}\n}\n\n// getPropertyName returns the string value for the given field if it exists\n// allowedValues: array, boolean, integer, null, number, object, string\nfunc getPropertyName(expr ast.Expr, parser *Parser) (propertyName, error) {\n\tif astTypeSelectorExpr, ok := expr.(*ast.SelectorExpr); ok {\n\t\treturn parseFieldSelectorExpr(astTypeSelectorExpr, parser, newProperty), nil\n\t}\n\n\t// check if it is a custom type\n\ttypeName := fmt.Sprintf(\"%v\", expr)\n\tif actualPrimitiveType, isCustomType := parser.CustomPrimitiveTypes[typeName]; isCustomType {\n\t\treturn propertyName{SchemaType: actualPrimitiveType, ArrayType: actualPrimitiveType}, nil\n\t}\n\n\tif astTypeIdent, ok := expr.(*ast.Ident); ok {\n\t\tname := astTypeIdent.Name\n\t\tschemeType := TransToValidSchemeType(name)\n\t\treturn propertyName{SchemaType: schemeType, ArrayType: schemeType}, nil\n\t}\n\n\tif ptr, ok := expr.(*ast.StarExpr); ok {\n\t\treturn getPropertyName(ptr.X, parser)\n\t}\n\n\tif astTypeArray, ok := expr.(*ast.ArrayType); ok { // if array\n\t\treturn getArrayPropertyName(astTypeArray, parser), nil\n\t}\n\n\tif _, ok := expr.(*ast.MapType); ok { // if map\n\t\treturn propertyName{SchemaType: \"object\", ArrayType: \"object\"}, nil\n\t}\n\n\tif _, ok := expr.(*ast.StructType); ok { // if struct\n\t\treturn propertyName{SchemaType: \"object\", ArrayType: \"object\"}, nil\n\t}\n\n\tif _, ok := expr.(*ast.InterfaceType); ok { // if interface{}\n\t\treturn propertyName{SchemaType: \"object\", ArrayType: \"object\"}, nil\n\t}\n\n\treturn propertyName{}, errors.New(\"not supported\" + fmt.Sprint(expr))\n}\n\nfunc getArrayPropertyName(astTypeArray *ast.ArrayType, parser *Parser) propertyName {\n\tif astTypeArrayExpr, ok := astTypeArray.Elt.(*ast.SelectorExpr); ok {\n\t\treturn parseFieldSelectorExpr(astTypeArrayExpr, parser, newArrayProperty)\n\t}\n\tif astTypeArrayExpr, ok := astTypeArray.Elt.(*ast.StarExpr); ok {\n\t\tif astTypeArraySel, ok := astTypeArrayExpr.X.(*ast.SelectorExpr); ok {\n\t\t\treturn parseFieldSelectorExpr(astTypeArraySel, parser, newArrayProperty)\n\t\t}\n\t\tif astTypeArrayIdent, ok := astTypeArrayExpr.X.(*ast.Ident); ok {\n\t\t\tname := TransToValidSchemeType(astTypeArrayIdent.Name)\n\t\t\treturn propertyName{SchemaType: \"array\", ArrayType: name}\n\t\t}\n\t}\n\titemTypeName := TransToValidSchemeType(fmt.Sprintf(\"%s\", astTypeArray.Elt))\n\tif actualPrimitiveType, isCustomType := parser.CustomPrimitiveTypes[itemTypeName]; isCustomType {\n\t\titemTypeName = actualPrimitiveType\n\t}\n\treturn propertyName{SchemaType: \"array\", ArrayType: itemTypeName}\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/schema.go",
    "content": "package swag\n\nimport \"fmt\"\n\n// CheckSchemaType checks if typeName is not a name of primitive type\nfunc CheckSchemaType(typeName string) error {\n\tif !IsPrimitiveType(typeName) {\n\t\treturn fmt.Errorf(\"%s is not basic types\", typeName)\n\t}\n\treturn nil\n}\n\n// IsPrimitiveType determine whether the type name is a primitive type\nfunc IsPrimitiveType(typeName string) bool {\n\tswitch typeName {\n\tcase \"string\", \"number\", \"integer\", \"boolean\", \"array\", \"object\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// IsNumericType determines whether the swagger type name is a numeric type\nfunc IsNumericType(typeName string) bool {\n\treturn typeName == \"integer\" || typeName == \"number\"\n}\n\n// TransToValidSchemeType indicates type will transfer golang basic type to swagger supported type.\nfunc TransToValidSchemeType(typeName string) string {\n\tswitch typeName {\n\tcase \"uint\", \"int\", \"uint8\", \"int8\", \"uint16\", \"int16\", \"byte\":\n\t\treturn \"integer\"\n\tcase \"uint32\", \"int32\", \"rune\":\n\t\treturn \"integer\"\n\tcase \"uint64\", \"int64\":\n\t\treturn \"integer\"\n\tcase \"float32\", \"float64\":\n\t\treturn \"number\"\n\tcase \"bool\":\n\t\treturn \"boolean\"\n\tcase \"string\":\n\t\treturn \"string\"\n\tdefault:\n\t\treturn typeName // to support user defined types\n\t}\n}\n\n// IsGolangPrimitiveType determine whether the type name is a golang primitive type\nfunc IsGolangPrimitiveType(typeName string) bool {\n\tswitch typeName {\n\tcase \"uint\",\n\t\t\"int\",\n\t\t\"uint8\",\n\t\t\"int8\",\n\t\t\"uint16\",\n\t\t\"int16\",\n\t\t\"byte\",\n\t\t\"uint32\",\n\t\t\"int32\",\n\t\t\"rune\",\n\t\t\"uint64\",\n\t\t\"int64\",\n\t\t\"float32\",\n\t\t\"float64\",\n\t\t\"bool\",\n\t\t\"string\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/swagger.go",
    "content": "package swag\n\nimport (\n\t\"errors\"\n\t\"sync\"\n)\n\n// Name is a unique name be used to register swag instance.\nconst Name = \"swagger\"\n\nvar (\n\tswaggerMu sync.RWMutex\n\tswag      Swagger\n)\n\n// Swagger is a interface to read swagger document.\ntype Swagger interface {\n\tReadDoc() string\n}\n\n// Register registers swagger for given name.\nfunc Register(name string, swagger Swagger) {\n\tswaggerMu.Lock()\n\tdefer swaggerMu.Unlock()\n\tif swagger == nil {\n\t\tpanic(\"swagger is nil\")\n\t}\n\n\tif swag != nil {\n\t\tpanic(\"Register called twice for swag: \" + name)\n\t}\n\tswag = swagger\n}\n\n// ReadDoc reads swagger document.\nfunc ReadDoc() (string, error) {\n\tif swag != nil {\n\t\treturn swag.ReadDoc(), nil\n\t}\n\treturn \"\", errors.New(\"not yet registered swag\")\n}\n"
  },
  {
    "path": "vendor/github.com/swaggo/swag/version.go",
    "content": "package swag\n\n// Version of swag\nconst Version = \"v1.5.1\"\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/.gitignore",
    "content": ".vscode\n.DS_Store\nxlsx.test\n*.swp\ncoverage.txt\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.8.x\n  - 1.9.x\n\nscript:\n  - go vet ./...\n  - go test -v -coverprofile=coverage.txt -covermode=atomic .\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/AUTHORS.txt",
    "content": "ACHER <artem.chernyak@monsanto.com>\nAndrew Schwartz <andrew.schwartz@gengo.com>\nArtem Chernyak <artemchernyak@Artems-MacBook-Air.local>\nArtem Chernyak <artemchernyak@gmail.com>\nblackss2 <blackss2@nate.com>\nBrandon Mulcahy <brandon@jangler.info>\nBrian Smith <ohohvi@gmail.com>\nbronze1man <bronze1man@gmail.com>\nBruno Bigras <bigras.bruno@gmail.com>\nChris Glass <tribaal@gmail.com>\nColin Fox <colin.fox@cumul8.com>\nColin Fox <greenenergy@gmail.com>\ncrahles <christoph@rahles.de>\nDaniel Upton <daniel@floppy.co>\nDaniel YC Lin <dlin@u40>\nDerLinkshaender <mail@arminhanisch.de>\nEric <ericscottlagergren@gmail.com>\nfrogs <frogs@frogss-MacBook-Air.local>\nfzerorubigd <fzerorubigd@gmail.com>\nGeoffrey J. Teale <geoffrey.teale@canonical.com>\nGyu-Ho Lee <gyuho.cs@gmail.com>\nHerman Schaaf <hermanschaaf@gmail.com>\nHugh Gao <email@klniu.com>\nIain Lowe <i.lowe@mademediacorp.com>\nivnivnch <ivnivnch@gmail.com>\nJason Hall <imjasonh@gmail.com>\nJoshua Baker <joshua.baker@cumul8.com>\nKaur Kuut <strom@nevermore.ee>\nLunny Xiao <xiaolunwen@gmail.com>\nmagician1 <kouta-k@mbm.nifty.com>\nMathias Fredriksson <mafredri@gmail.com>\nMatt Aimonetti <mattaimonetti@gmail.com>\nMoch. Lutfi <kapten_lufi@yahoo.co.id>\nMoch.Lutfi <kapten_lufi@yahoo.co.id>\nNeoin <Heinoldewage@gmail.com>\nNguyen Nguyen <ntn@NTN.local>\nNikita Danilov <mirt@mirt.su>\nOneOfOne <OneOfOne@gmail.com>\nPeter Waller <p@pwaller.net>\nPhilipp Klose <TheHippo@users.noreply.github.com>\nrichard bucker <richard@bucker.net>\nShawn Milochik <shawn@milochik.com>\nShawn Smith <shawnpsmith@gmail.com>\nShawn Smith <shawn.smith@gengo.com>\nSHIMADA Koji <koji.shimada@enishi-tech.com>\nSteven Degutis <steven.degutis@gmail.com>\ntakuya sato <sato-taku@klab.com>\nThieu Pham <thieu.pham@workiva.com>\nTormod Erevik Lea <tormodlea@gmail.com>\ntrinchan <andrew.schwartz@gengo.com>\nU-NORTH_AMERICA\\ACHER <ACHER@PBECRLK.na.ds.monsanto.com>\nYAMADA Tsuyoshi <tyamada@minimum2scp.org>\nYoshiki Shibukawa <shibukawa.yoshiki@dena.jp>\nzhcy <zhangchenyu2009@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at tealeg@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2011-2017, Geoffrey J. Teale\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/README.org",
    "content": "* XLSX\n\n[[https://travis-ci.org/tealeg/xlsx][https://img.shields.io/travis/tealeg/xlsx/master.svg?style=flat-square]]\n[[https://codecov.io/gh/tealeg/xlsx][https://codecov.io/gh/tealeg/xlsx/branch/master/graph/badge.svg]]\n[[https://godoc.org/github.com/tealeg/xlsx][https://godoc.org/github.com/tealeg/xlsx?status.svg]]\n[[https://github.com/tealeg/xlsx#license][https://img.shields.io/badge/license-bsd-orange.svg]]\n\n** Introduction\nxlsx is a library to simplify reading and writing the XML format used\nby recent version of Microsoft Excel in Go programs.\n\nThe support for writing XLSX files is currently extremely minimal.  It\nwill expand slowly, but in the meantime patches are welcome!\n\n** Full API docs\nThe full API docs can be viewed using go's built in documentation\ntool, or online at [[http://godoc.org/github.com/tealeg/xlsx][godoc.org]].\n\n** Basic Usage\n*** Reading XLSX files\nHere is a minimal example usage that will dump all cell data in a\ngiven XLSX file.  A more complete example of this kind of\nfunctionality is contained in [[https://github.com/tealeg/xlsx2csv][the XLSX2CSV program]]:\n\n#+BEGIN_SRC go\n\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/tealeg/xlsx\"\n)\n\nfunc main() {\n    excelFileName := \"/home/tealeg/foo.xlsx\"\n    xlFile, err := xlsx.OpenFile(excelFileName)\n    if err != nil {\n        ...\n    }\n    for _, sheet := range xlFile.Sheets {\n        for _, row := range sheet.Rows {\n            for _, cell := range row.Cells {\n                text := cell.String()\n                fmt.Printf(\"%s\\n\", text)\n            }\n        }\n    }\n}\n\n#+END_SRC\n\nSome additional information is available from the cell (for example,\nstyle information).  For more details see the godoc output for this\npackage.\n\n*** Writing XLSX files\nThe following constitutes the bare minimum required to write an XLSX document.\n\n#+BEGIN_SRC go\n\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/tealeg/xlsx\"\n)\n\nfunc main() {\n    var file *xlsx.File\n    var sheet *xlsx.Sheet\n    var row *xlsx.Row\n    var cell *xlsx.Cell\n    var err error\n\n    file = xlsx.NewFile()\n    sheet, err = file.AddSheet(\"Sheet1\")\n    if err != nil {\n        fmt.Printf(err.Error())\n    }\n    row = sheet.AddRow()\n    cell = row.AddCell()\n    cell.Value = \"I am a cell!\"\n    err = file.Save(\"MyXLSXFile.xlsx\")\n    if err != nil {\n        fmt.Printf(err.Error())\n    }\n}\n\n#+END_SRC\n\n** Contributing\n\nWe're extremely happy to review pull requests.  Please be patient, maintaining XLSX doesn't pay anyone's salary (to my knowledge).\n\nIf you'd like to propose a change please ensure the following:\n\n- All existing tests are passing.\n- There are tests in the test suite that cover the changes you're making.\n- You have added documentation strings (in English) to (at least) the public functions you've added or modified.\n- Your use of, or creation of, XML is compliant with [[http://www.ecma-international.org/publications/standards/Ecma-376.htm][part 1 of the 4th edition of the ECMA-376 Standard for Office Open XML]].\n\nEat a peach - Geoff\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/cell.go",
    "content": "package xlsx\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tmaxNonScientificNumber = 1e11\n\tminNonScientificNumber = 1e-9\n)\n\n// CellType is an int type for storing metadata about the data type in the cell.\ntype CellType int\n\n// These are the cell types from the ST_CellType spec\nconst (\n\tCellTypeString CellType = iota\n\t// CellTypeStringFormula is a specific format for formulas that return string values. Formulas that return numbers\n\t// and booleans are stored as those types.\n\tCellTypeStringFormula\n\tCellTypeNumeric\n\tCellTypeBool\n\t// CellTypeInline is not respected on save, all inline string cells will be saved as SharedStrings\n\t// when saving to an XLSX file. This the same behavior as that found in Excel.\n\tCellTypeInline\n\tCellTypeError\n\t// d (Date): Cell contains a date in the ISO 8601 format.\n\t// That is the only mention of this format in the XLSX spec.\n\t// Date seems to be unused by the current version of Excel, it stores dates as Numeric cells with a date format string.\n\t// For now these cells will have their value output directly. It is unclear if the value is supposed to be parsed\n\t// into a number and then formatted using the formatting or not.\n\tCellTypeDate\n)\n\nfunc (ct CellType) Ptr() *CellType {\n\treturn &ct\n}\n\n// Cell is a high level structure intended to provide user access to\n// the contents of Cell within an xlsx.Row.\ntype Cell struct {\n\tRow          *Row\n\tValue        string\n\tformula      string\n\tstyle        *Style\n\tNumFmt       string\n\tparsedNumFmt *parsedNumberFormat\n\tdate1904     bool\n\tHidden       bool\n\tHMerge       int\n\tVMerge       int\n\tcellType     CellType\n}\n\n// CellInterface defines the public API of the Cell.\ntype CellInterface interface {\n\tString() string\n\tFormattedValue() string\n}\n\n// NewCell creates a cell and adds it to a row.\nfunc NewCell(r *Row) *Cell {\n\treturn &Cell{Row: r, NumFmt: \"general\"}\n}\n\n// Merge with other cells, horizontally and/or vertically.\nfunc (c *Cell) Merge(hcells, vcells int) {\n\tc.HMerge = hcells\n\tc.VMerge = vcells\n}\n\n// Type returns the CellType of a cell. See CellType constants for more details.\nfunc (c *Cell) Type() CellType {\n\treturn c.cellType\n}\n\n// SetString sets the value of a cell to a string.\nfunc (c *Cell) SetString(s string) {\n\tc.Value = s\n\tc.formula = \"\"\n\tc.cellType = CellTypeString\n}\n\n// String returns the value of a Cell as a string.  If you'd like to\n// see errors returned from formatting then please use\n// Cell.FormattedValue() instead.\nfunc (c *Cell) String() string {\n\t// To preserve the String() interface we'll throw away errors.\n\t// Not that using FormattedValue is therefore strongly\n\t// preferred.\n\tvalue, _ := c.FormattedValue()\n\treturn value\n}\n\n// SetFloat sets the value of a cell to a float.\nfunc (c *Cell) SetFloat(n float64) {\n\tc.SetValue(n)\n}\n\n//GetTime returns the value of a Cell as a time.Time\nfunc (c *Cell) GetTime(date1904 bool) (t time.Time, err error) {\n\tf, err := c.Float()\n\tif err != nil {\n\t\treturn t, err\n\t}\n\treturn TimeFromExcelTime(f, date1904), nil\n}\n\n/*\n\tThe following are samples of format samples.\n\n\t* \"0.00e+00\"\n\t* \"0\", \"#,##0\"\n\t* \"0.00\", \"#,##0.00\", \"@\"\n\t* \"#,##0 ;(#,##0)\", \"#,##0 ;[red](#,##0)\"\n\t* \"#,##0.00;(#,##0.00)\", \"#,##0.00;[red](#,##0.00)\"\n\t* \"0%\", \"0.00%\"\n\t* \"0.00e+00\", \"##0.0e+0\"\n*/\n\n// SetFloatWithFormat sets the value of a cell to a float and applies\n// formatting to the cell.\nfunc (c *Cell) SetFloatWithFormat(n float64, format string) {\n\tc.SetValue(n)\n\tc.NumFmt = format\n\tc.formula = \"\"\n}\n\nvar timeLocationUTC, _ = time.LoadLocation(\"UTC\")\n\nfunc TimeToUTCTime(t time.Time) time.Time {\n\treturn time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), timeLocationUTC)\n}\n\nfunc TimeToExcelTime(t time.Time) float64 {\n\treturn float64(t.UnixNano())/8.64e13 + 25569.0\n}\n\n// DateTimeOptions are additional options for exporting times\ntype DateTimeOptions struct {\n\t// Location allows calculating times in other timezones/locations\n\tLocation *time.Location\n\t// ExcelTimeFormat is the string you want excel to use to format the datetime\n\tExcelTimeFormat string\n}\n\nvar (\n\tDefaultDateFormat     = builtInNumFmt[14]\n\tDefaultDateTimeFormat = builtInNumFmt[22]\n\n\tDefaultDateOptions = DateTimeOptions{\n\t\tLocation:        timeLocationUTC,\n\t\tExcelTimeFormat: DefaultDateFormat,\n\t}\n\n\tDefaultDateTimeOptions = DateTimeOptions{\n\t\tLocation:        timeLocationUTC,\n\t\tExcelTimeFormat: DefaultDateTimeFormat,\n\t}\n)\n\n// SetDate sets the value of a cell to a float.\nfunc (c *Cell) SetDate(t time.Time) {\n\tc.SetDateWithOptions(t, DefaultDateOptions)\n}\n\nfunc (c *Cell) SetDateTime(t time.Time) {\n\tc.SetDateWithOptions(t, DefaultDateTimeOptions)\n}\n\n// SetDateWithOptions allows for more granular control when exporting dates and times\nfunc (c *Cell) SetDateWithOptions(t time.Time, options DateTimeOptions) {\n\t_, offset := t.In(options.Location).Zone()\n\tt = time.Unix(t.Unix()+int64(offset), 0)\n\tc.SetDateTimeWithFormat(TimeToExcelTime(t.In(timeLocationUTC)), options.ExcelTimeFormat)\n}\n\nfunc (c *Cell) SetDateTimeWithFormat(n float64, format string) {\n\tc.Value = strconv.FormatFloat(n, 'f', -1, 64)\n\tc.NumFmt = format\n\tc.formula = \"\"\n\tc.cellType = CellTypeNumeric\n}\n\n// Float returns the value of cell as a number.\nfunc (c *Cell) Float() (float64, error) {\n\tf, err := strconv.ParseFloat(c.Value, 64)\n\tif err != nil {\n\t\treturn math.NaN(), err\n\t}\n\treturn f, nil\n}\n\n// SetInt64 sets a cell's value to a 64-bit integer.\nfunc (c *Cell) SetInt64(n int64) {\n\tc.SetValue(n)\n}\n\n// Int64 returns the value of cell as 64-bit integer.\nfunc (c *Cell) Int64() (int64, error) {\n\tf, err := strconv.ParseInt(c.Value, 10, 64)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\treturn f, nil\n}\n\n// GeneralNumeric returns the value of the cell as a string. It is formatted very closely to the the XLSX spec for how\n// to display values when the storage type is Number and the format type is General. It is not 100% identical to the\n// spec but is as close as you can get using the built in Go formatting tools.\nfunc (c *Cell) GeneralNumeric() (string, error) {\n\treturn generalNumericScientific(c.Value, true)\n}\n\n// GeneralNumericWithoutScientific returns numbers that are always formatted as numbers, but it does not follow\n// the rules for when XLSX should switch to scientific notation, since sometimes scientific notation is not desired,\n// even if that is how the document is supposed to be formatted.\nfunc (c *Cell) GeneralNumericWithoutScientific() (string, error) {\n\treturn generalNumericScientific(c.Value, false)\n}\n\n// SetInt sets a cell's value to an integer.\nfunc (c *Cell) SetInt(n int) {\n\tc.SetValue(n)\n}\n\n// SetInt sets a cell's value to an integer.\nfunc (c *Cell) SetValue(n interface{}) {\n\tswitch t := n.(type) {\n\tcase time.Time:\n\t\tc.SetDateTime(t)\n\t\treturn\n\tcase int, int8, int16, int32, int64:\n\t\tc.setNumeric(fmt.Sprintf(\"%d\", n))\n\tcase float64:\n\t\t// When formatting floats, do not use fmt.Sprintf(\"%v\", n), this will cause numbers below 1e-4 to be printed in\n\t\t// scientific notation. Scientific notation is not a valid way to store numbers in XML.\n\t\t// Also not not use fmt.Sprintf(\"%f\", n), this will cause numbers to be stored as X.XXXXXX. Which means that\n\t\t// numbers will lose precision and numbers with fewer significant digits such as 0 will be stored as 0.000000\n\t\t// which causes tests to fail.\n\t\tc.setNumeric(strconv.FormatFloat(t, 'f', -1, 64))\n\tcase float32:\n\t\tc.setNumeric(strconv.FormatFloat(float64(t), 'f', -1, 32))\n\tcase string:\n\t\tc.SetString(t)\n\tcase []byte:\n\t\tc.SetString(string(t))\n\tcase nil:\n\t\tc.SetString(\"\")\n\tdefault:\n\t\tc.SetString(fmt.Sprintf(\"%v\", n))\n\t}\n}\n\n// setNumeric sets a cell's value to a number\nfunc (c *Cell) setNumeric(s string) {\n\tc.Value = s\n\tc.NumFmt = builtInNumFmt[builtInNumFmtIndex_GENERAL]\n\tc.formula = \"\"\n\tc.cellType = CellTypeNumeric\n}\n\n// Int returns the value of cell as integer.\n// Has max 53 bits of precision\n// See: float64(int64(math.MaxInt))\nfunc (c *Cell) Int() (int, error) {\n\tf, err := strconv.ParseFloat(c.Value, 64)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\treturn int(f), nil\n}\n\n// SetBool sets a cell's value to a boolean.\nfunc (c *Cell) SetBool(b bool) {\n\tif b {\n\t\tc.Value = \"1\"\n\t} else {\n\t\tc.Value = \"0\"\n\t}\n\tc.cellType = CellTypeBool\n}\n\n// Bool returns a boolean from a cell's value.\n// TODO: Determine if the current return value is\n// appropriate for types other than CellTypeBool.\nfunc (c *Cell) Bool() bool {\n\t// If bool, just return the value.\n\tif c.cellType == CellTypeBool {\n\t\treturn c.Value == \"1\"\n\t}\n\t// If numeric, base it on a non-zero.\n\tif c.cellType == CellTypeNumeric {\n\t\treturn c.Value != \"0\"\n\t}\n\t// Return whether there's an empty string.\n\treturn c.Value != \"\"\n}\n\n// SetFormula sets the format string for a cell.\nfunc (c *Cell) SetFormula(formula string) {\n\tc.formula = formula\n\tc.cellType = CellTypeNumeric\n}\n\nfunc (c *Cell) SetStringFormula(formula string) {\n\tc.formula = formula\n\tc.cellType = CellTypeStringFormula\n}\n\n// Formula returns the formula string for the cell.\nfunc (c *Cell) Formula() string {\n\treturn c.formula\n}\n\n// GetStyle returns the Style associated with a Cell\nfunc (c *Cell) GetStyle() *Style {\n\tif c.style == nil {\n\t\tc.style = NewStyle()\n\t}\n\treturn c.style\n}\n\n// SetStyle sets the style of a cell.\nfunc (c *Cell) SetStyle(style *Style) {\n\tc.style = style\n}\n\n// GetNumberFormat returns the number format string for a cell.\nfunc (c *Cell) GetNumberFormat() string {\n\treturn c.NumFmt\n}\n\nfunc (c *Cell) formatToFloat(format string) (string, error) {\n\tf, err := strconv.ParseFloat(c.Value, 64)\n\tif err != nil {\n\t\treturn c.Value, err\n\t}\n\treturn fmt.Sprintf(format, f), nil\n}\n\nfunc (c *Cell) formatToInt(format string) (string, error) {\n\tf, err := strconv.ParseFloat(c.Value, 64)\n\tif err != nil {\n\t\treturn c.Value, err\n\t}\n\treturn fmt.Sprintf(format, int(f)), nil\n}\n\n// getNumberFormat will update the parsedNumFmt struct if it has become out of date, since a cell's NumFmt string is a\n// public field that could be edited by clients.\nfunc (c *Cell) getNumberFormat() *parsedNumberFormat {\n\tif c.parsedNumFmt == nil || c.parsedNumFmt.numFmt != c.NumFmt {\n\t\tc.parsedNumFmt = parseFullNumberFormatString(c.NumFmt)\n\t}\n\treturn c.parsedNumFmt\n}\n\n// FormattedValue returns a value, and possibly an error condition\n// from a Cell.  If it is possible to apply a format to the cell\n// value, it will do so, if not then an error will be returned, along\n// with the raw value of the Cell.\nfunc (c *Cell) FormattedValue() (string, error) {\n\tfullFormat := c.getNumberFormat()\n\treturnVal, err := fullFormat.FormatValue(c)\n\tif fullFormat.parseEncounteredError != nil {\n\t\treturn returnVal, *fullFormat.parseEncounteredError\n\t}\n\treturn returnVal, err\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/col.go",
    "content": "package xlsx\n\n// Default column width in excel\nconst ColWidth = 9.5\n\ntype Col struct {\n\tMin          int\n\tMax          int\n\tHidden       bool\n\tWidth        float64\n\tCollapsed    bool\n\tOutlineLevel uint8\n\tnumFmt       string\n\tparsedNumFmt *parsedNumberFormat\n\tstyle        *Style\n}\n\n// SetType will set the format string of a column based on the type that you want to set it to.\n// This function does not really make a lot of sense.\nfunc (c *Col) SetType(cellType CellType) {\n\tswitch cellType {\n\tcase CellTypeString:\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_STRING]\n\tcase CellTypeNumeric:\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_INT]\n\tcase CellTypeBool:\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_GENERAL] //TEMP\n\tcase CellTypeInline:\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_STRING]\n\tcase CellTypeError:\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_GENERAL] //TEMP\n\tcase CellTypeDate:\n\t\t// Cells that are stored as dates are not properly supported in this library.\n\t\t// They should instead be stored as a Numeric with a date format.\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_GENERAL]\n\tcase CellTypeStringFormula:\n\t\tc.numFmt = builtInNumFmt[builtInNumFmtIndex_STRING]\n\t}\n}\n\n// GetStyle returns the Style associated with a Col\nfunc (c *Col) GetStyle() *Style {\n\treturn c.style\n}\n\n// SetStyle sets the style of a Col\nfunc (c *Col) SetStyle(style *Style) {\n\tc.style = style\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/date.go",
    "content": "package xlsx\n\nimport (\n\t\"math\"\n\t\"time\"\n)\n\nconst MJD_0 float64 = 2400000.5\nconst MJD_JD2000 float64 = 51544.5\n\nfunc shiftJulianToNoon(julianDays, julianFraction float64) (float64, float64) {\n\tswitch {\n\tcase -0.5 < julianFraction && julianFraction < 0.5:\n\t\tjulianFraction += 0.5\n\tcase julianFraction >= 0.5:\n\t\tjulianDays += 1\n\t\tjulianFraction -= 0.5\n\tcase julianFraction <= -0.5:\n\t\tjulianDays -= 1\n\t\tjulianFraction += 1.5\n\t}\n\treturn julianDays, julianFraction\n}\n\n// Return the integer values for hour, minutes, seconds and\n// nanoseconds that comprised a given fraction of a day.\n// values would round to 1 us.\nfunc fractionOfADay(fraction float64) (hours, minutes, seconds, nanoseconds int) {\n\n\tconst (\n\t\tc1us  = 1e3\n\t\tc1s   = 1e9\n\t\tc1day = 24 * 60 * 60 * c1s\n\t)\n\n\tfrac := int64(c1day*fraction + c1us/2)\n\tnanoseconds = int((frac%c1s)/c1us) * c1us\n\tfrac /= c1s\n\tseconds = int(frac % 60)\n\tfrac /= 60\n\tminutes = int(frac % 60)\n\thours = int(frac / 60)\n\treturn\n}\n\nfunc julianDateToGregorianTime(part1, part2 float64) time.Time {\n\tpart1I, part1F := math.Modf(part1)\n\tpart2I, part2F := math.Modf(part2)\n\tjulianDays := part1I + part2I\n\tjulianFraction := part1F + part2F\n\tjulianDays, julianFraction = shiftJulianToNoon(julianDays, julianFraction)\n\tday, month, year := doTheFliegelAndVanFlandernAlgorithm(int(julianDays))\n\thours, minutes, seconds, nanoseconds := fractionOfADay(julianFraction)\n\treturn time.Date(year, time.Month(month), day, hours, minutes, seconds, nanoseconds, time.UTC)\n}\n\n// By this point generations of programmers have repeated the\n// algorithm sent to the editor of \"Communications of the ACM\" in 1968\n// (published in CACM, volume 11, number 10, October 1968, p.657).\n// None of those programmers seems to have found it necessary to\n// explain the constants or variable names set out by Henry F. Fliegel\n// and Thomas C. Van Flandern.  Maybe one day I'll buy that jounal and\n// expand an explanation here - that day is not today.\nfunc doTheFliegelAndVanFlandernAlgorithm(jd int) (day, month, year int) {\n\tl := jd + 68569\n\tn := (4 * l) / 146097\n\tl = l - (146097*n+3)/4\n\ti := (4000 * (l + 1)) / 1461001\n\tl = l - (1461*i)/4 + 31\n\tj := (80 * l) / 2447\n\td := l - (2447*j)/80\n\tl = j / 11\n\tm := j + 2 - (12 * l)\n\ty := 100*(n-49) + i + l\n\treturn d, m, y\n}\n\n// Convert an excelTime representation (stored as a floating point number) to a time.Time.\nfunc TimeFromExcelTime(excelTime float64, date1904 bool) time.Time {\n\tvar date time.Time\n\tvar intPart int64 = int64(excelTime)\n\t// Excel uses Julian dates prior to March 1st 1900, and\n\t// Gregorian thereafter.\n\tif intPart <= 61 {\n\t\tconst OFFSET1900 = 15018.0\n\t\tconst OFFSET1904 = 16480.0\n\t\tvar date time.Time\n\t\tif date1904 {\n\t\t\tdate = julianDateToGregorianTime(MJD_0, excelTime+OFFSET1904)\n\t\t} else {\n\t\t\tdate = julianDateToGregorianTime(MJD_0, excelTime+OFFSET1900)\n\t\t}\n\t\treturn date\n\t}\n\tvar floatPart float64 = excelTime - float64(intPart)\n\tvar dayNanoSeconds float64 = 24 * 60 * 60 * 1000 * 1000 * 1000\n\tif date1904 {\n\t\tdate = time.Date(1904, 1, 1, 0, 0, 0, 0, time.UTC)\n\t} else {\n\t\tdate = time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC)\n\t}\n\tdurationDays := time.Duration(intPart) * time.Hour * 24\n\tdurationPart := time.Duration(dayNanoSeconds * floatPart)\n\treturn date.Add(durationDays).Add(durationPart)\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/doc.go",
    "content": "// xslx is a package designed to help with reading data from\n// spreadsheets stored in the XLSX format used in recent versions of\n// Microsoft's Excel spreadsheet.\n//\n// Additionally, xlsx has started to grow some XLSX authoring\n// capabilities too.\n//\n// For a concise example of how to use this library why not check out\n// the source for xlsx2csv here: https://github.com/tealeg/xlsx2csv\n\npackage xlsx\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/file.go",
    "content": "package xlsx\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// File is a high level structure providing a slice of Sheet structs\n// to the user.\ntype File struct {\n\tworksheets     map[string]*zip.File\n\treferenceTable *RefTable\n\tDate1904       bool\n\tstyles         *xlsxStyleSheet\n\tSheets         []*Sheet\n\tSheet          map[string]*Sheet\n\ttheme          *theme\n\tDefinedNames   []*xlsxDefinedName\n}\n\nconst NoRowLimit int = -1\n\n// Create a new File\nfunc NewFile() *File {\n\treturn &File{\n\t\tSheet:        make(map[string]*Sheet),\n\t\tSheets:       make([]*Sheet, 0),\n\t\tDefinedNames: make([]*xlsxDefinedName, 0),\n\t}\n}\n\n// OpenFile() take the name of an XLSX file and returns a populated\n// xlsx.File struct for it.\nfunc OpenFile(fileName string) (file *File, err error) {\n\treturn OpenFileWithRowLimit(fileName, NoRowLimit)\n}\n\n// OpenFileWithRowLimit() will open the file, but will only read the specified number of rows.\n// If you save this file, it will be truncated to the number of rows specified.\nfunc OpenFileWithRowLimit(fileName string, rowLimit int) (file *File, err error) {\n\tvar z *zip.ReadCloser\n\tz, err = zip.OpenReader(fileName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn ReadZipWithRowLimit(z, rowLimit)\n}\n\n// OpenBinary() take bytes of an XLSX file and returns a populated\n// xlsx.File struct for it.\nfunc OpenBinary(bs []byte) (*File, error) {\n\treturn OpenBinaryWithRowLimit(bs, NoRowLimit)\n}\n\n// OpenBinaryWithRowLimit() take bytes of an XLSX file and returns a populated\n// xlsx.File struct for it.\nfunc OpenBinaryWithRowLimit(bs []byte, rowLimit int) (*File, error) {\n\tr := bytes.NewReader(bs)\n\treturn OpenReaderAtWithRowLimit(r, int64(r.Len()), rowLimit)\n}\n\n// OpenReaderAt() take io.ReaderAt of an XLSX file and returns a populated\n// xlsx.File struct for it.\nfunc OpenReaderAt(r io.ReaderAt, size int64) (*File, error) {\n\treturn OpenReaderAtWithRowLimit(r, size, NoRowLimit)\n}\n\n// OpenReaderAtWithRowLimit() take io.ReaderAt of an XLSX file and returns a populated\n// xlsx.File struct for it.\nfunc OpenReaderAtWithRowLimit(r io.ReaderAt, size int64, rowLimit int) (*File, error) {\n\tfile, err := zip.NewReader(r, size)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn ReadZipReaderWithRowLimit(file, rowLimit)\n}\n\n// A convenient wrapper around File.ToSlice, FileToSlice will\n// return the raw data contained in an Excel XLSX file as three\n// dimensional slice.  The first index represents the sheet number,\n// the second the row number, and the third the cell number.\n//\n// For example:\n//\n//    var mySlice [][][]string\n//    var value string\n//    mySlice = xlsx.FileToSlice(\"myXLSX.xlsx\")\n//    value = mySlice[0][0][0]\n//\n// Here, value would be set to the raw value of the cell A1 in the\n// first sheet in the XLSX file.\nfunc FileToSlice(path string) ([][][]string, error) {\n\tf, err := OpenFile(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn f.ToSlice()\n}\n\n// FileToSliceUnmerged is a wrapper around File.ToSliceUnmerged.\n// It returns the raw data contained in an Excel XLSX file as three\n// dimensional slice. Merged cells will be unmerged. Covered cells become the\n// values of theirs origins.\nfunc FileToSliceUnmerged(path string) ([][][]string, error) {\n\tf, err := OpenFile(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn f.ToSliceUnmerged()\n}\n\n// Save the File to an xlsx file at the provided path.\nfunc (f *File) Save(path string) (err error) {\n\ttarget, err := os.Create(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = f.Write(target)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn target.Close()\n}\n\n// Write the File to io.Writer as xlsx\nfunc (f *File) Write(writer io.Writer) (err error) {\n\tparts, err := f.MarshallParts()\n\tif err != nil {\n\t\treturn\n\t}\n\tzipWriter := zip.NewWriter(writer)\n\tfor partName, part := range parts {\n\t\tw, err := zipWriter.Create(partName)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write([]byte(part))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn zipWriter.Close()\n}\n\n// Add a new Sheet, with the provided name, to a File\nfunc (f *File) AddSheet(sheetName string) (*Sheet, error) {\n\tif _, exists := f.Sheet[sheetName]; exists {\n\t\treturn nil, fmt.Errorf(\"duplicate sheet name '%s'.\", sheetName)\n\t}\n\tif utf8.RuneCountInString(sheetName) >= 31 {\n\t\treturn nil, fmt.Errorf(\"sheet name must be less than 31 characters long.  It is currently '%d' characters long\", utf8.RuneCountInString(sheetName))\n\t}\n\tsheet := &Sheet{\n\t\tName:     sheetName,\n\t\tFile:     f,\n\t\tSelected: len(f.Sheets) == 0,\n\t}\n\tf.Sheet[sheetName] = sheet\n\tf.Sheets = append(f.Sheets, sheet)\n\treturn sheet, nil\n}\n\n// Appends an existing Sheet, with the provided name, to a File\nfunc (f *File) AppendSheet(sheet Sheet, sheetName string) (*Sheet, error) {\n\tif _, exists := f.Sheet[sheetName]; exists {\n\t\treturn nil, fmt.Errorf(\"duplicate sheet name '%s'.\", sheetName)\n\t}\n\tsheet.Name = sheetName\n\tsheet.File = f\n\tsheet.Selected = len(f.Sheets) == 0\n\tf.Sheet[sheetName] = &sheet\n\tf.Sheets = append(f.Sheets, &sheet)\n\treturn &sheet, nil\n}\n\nfunc (f *File) makeWorkbook() xlsxWorkbook {\n\treturn xlsxWorkbook{\n\t\tFileVersion: xlsxFileVersion{AppName: \"Go XLSX\"},\n\t\tWorkbookPr:  xlsxWorkbookPr{ShowObjects: \"all\"},\n\t\tBookViews: xlsxBookViews{\n\t\t\tWorkBookView: []xlsxWorkBookView{\n\t\t\t\t{\n\t\t\t\t\tShowHorizontalScroll: true,\n\t\t\t\t\tShowSheetTabs:        true,\n\t\t\t\t\tShowVerticalScroll:   true,\n\t\t\t\t\tTabRatio:             204,\n\t\t\t\t\tWindowHeight:         8192,\n\t\t\t\t\tWindowWidth:          16384,\n\t\t\t\t\tXWindow:              \"0\",\n\t\t\t\t\tYWindow:              \"0\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tSheets: xlsxSheets{Sheet: make([]xlsxSheet, len(f.Sheets))},\n\t\tCalcPr: xlsxCalcPr{\n\t\t\tIterateCount: 100,\n\t\t\tRefMode:      \"A1\",\n\t\t\tIterate:      false,\n\t\t\tIterateDelta: 0.001,\n\t\t},\n\t}\n}\n\n// Some tools that read XLSX files have very strict requirements about\n// the structure of the input XML.  In particular both Numbers on the Mac\n// and SAS dislike inline XML namespace declarations, or namespace\n// prefixes that don't match the ones that Excel itself uses.  This is a\n// problem because the Go XML library doesn't multiple namespace\n// declarations in a single element of a document.  This function is a\n// horrible hack to fix that after the XML marshalling is completed.\nfunc replaceRelationshipsNameSpace(workbookMarshal string) string {\n\tnewWorkbook := strings.Replace(workbookMarshal, `xmlns:relationships=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" relationships:id`, `r:id`, -1)\n\t// Dirty hack to fix issues #63 and #91; encoding/xml currently\n\t// \"doesn't allow for additional namespaces to be defined in the\n\t// root element of the document,\" as described by @tealeg in the\n\t// comments for #63.\n\toldXmlns := `<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">`\n\tnewXmlns := `<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">`\n\treturn strings.Replace(newWorkbook, oldXmlns, newXmlns, 1)\n}\n\n// Construct a map of file name to XML content representing the file\n// in terms of the structure of an XLSX file.\nfunc (f *File) MarshallParts() (map[string]string, error) {\n\tvar parts map[string]string\n\tvar refTable *RefTable = NewSharedStringRefTable()\n\trefTable.isWrite = true\n\tvar workbookRels WorkBookRels = make(WorkBookRels)\n\tvar err error\n\tvar workbook xlsxWorkbook\n\tvar types xlsxTypes = MakeDefaultContentTypes()\n\n\tmarshal := func(thing interface{}) (string, error) {\n\t\tbody, err := xml.Marshal(thing)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn xml.Header + string(body), nil\n\t}\n\n\tparts = make(map[string]string)\n\tworkbook = f.makeWorkbook()\n\tsheetIndex := 1\n\n\tif f.styles == nil {\n\t\tf.styles = newXlsxStyleSheet(f.theme)\n\t}\n\tf.styles.reset()\n\tif len(f.Sheets) == 0 {\n\t\terr := errors.New(\"Workbook must contains atleast one worksheet\")\n\t\treturn nil, err\n\t}\n\tfor _, sheet := range f.Sheets {\n\t\txSheet := sheet.makeXLSXSheet(refTable, f.styles)\n\t\trId := fmt.Sprintf(\"rId%d\", sheetIndex)\n\t\tsheetId := strconv.Itoa(sheetIndex)\n\t\tsheetPath := fmt.Sprintf(\"worksheets/sheet%d.xml\", sheetIndex)\n\t\tpartName := \"xl/\" + sheetPath\n\t\ttypes.Overrides = append(\n\t\t\ttypes.Overrides,\n\t\t\txlsxOverride{\n\t\t\t\tPartName:    \"/\" + partName,\n\t\t\t\tContentType: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"})\n\t\tworkbookRels[rId] = sheetPath\n\t\tworkbook.Sheets.Sheet[sheetIndex-1] = xlsxSheet{\n\t\t\tName:    sheet.Name,\n\t\t\tSheetId: sheetId,\n\t\t\tId:      rId,\n\t\t\tState:   \"visible\"}\n\t\tparts[partName], err = marshal(xSheet)\n\t\tif err != nil {\n\t\t\treturn parts, err\n\t\t}\n\t\tsheetIndex++\n\t}\n\n\tworkbookMarshal, err := marshal(workbook)\n\tif err != nil {\n\t\treturn parts, err\n\t}\n\tworkbookMarshal = replaceRelationshipsNameSpace(workbookMarshal)\n\tparts[\"xl/workbook.xml\"] = workbookMarshal\n\tif err != nil {\n\t\treturn parts, err\n\t}\n\n\tparts[\"_rels/.rels\"] = TEMPLATE__RELS_DOT_RELS\n\tparts[\"docProps/app.xml\"] = TEMPLATE_DOCPROPS_APP\n\t// TODO - do this properly, modification and revision information\n\tparts[\"docProps/core.xml\"] = TEMPLATE_DOCPROPS_CORE\n\tparts[\"xl/theme/theme1.xml\"] = TEMPLATE_XL_THEME_THEME\n\n\txSST := refTable.makeXLSXSST()\n\tparts[\"xl/sharedStrings.xml\"], err = marshal(xSST)\n\tif err != nil {\n\t\treturn parts, err\n\t}\n\n\txWRel := workbookRels.MakeXLSXWorkbookRels()\n\n\tparts[\"xl/_rels/workbook.xml.rels\"], err = marshal(xWRel)\n\tif err != nil {\n\t\treturn parts, err\n\t}\n\n\tparts[\"[Content_Types].xml\"], err = marshal(types)\n\tif err != nil {\n\t\treturn parts, err\n\t}\n\n\tparts[\"xl/styles.xml\"], err = f.styles.Marshal()\n\tif err != nil {\n\t\treturn parts, err\n\t}\n\n\treturn parts, nil\n}\n\n// Return the raw data contained in the File as three\n// dimensional slice.  The first index represents the sheet number,\n// the second the row number, and the third the cell number.\n//\n// For example:\n//\n//    var mySlice [][][]string\n//    var value string\n//    mySlice = xlsx.FileToSlice(\"myXLSX.xlsx\")\n//    value = mySlice[0][0][0]\n//\n// Here, value would be set to the raw value of the cell A1 in the\n// first sheet in the XLSX file.\nfunc (f *File) ToSlice() (output [][][]string, err error) {\n\toutput = [][][]string{}\n\tfor _, sheet := range f.Sheets {\n\t\ts := [][]string{}\n\t\tfor _, row := range sheet.Rows {\n\t\t\tif row == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tr := []string{}\n\t\t\tfor _, cell := range row.Cells {\n\t\t\t\tstr, err := cell.FormattedValue()\n\t\t\t\tif err != nil {\n\t\t\t\t\t// Recover from strconv.NumError if the value is an empty string,\n\t\t\t\t\t// and insert an empty string in the output.\n\t\t\t\t\tif numErr, ok := err.(*strconv.NumError); ok && numErr.Num == \"\" {\n\t\t\t\t\t\tstr = \"\"\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn output, err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tr = append(r, str)\n\t\t\t}\n\t\t\ts = append(s, r)\n\t\t}\n\t\toutput = append(output, s)\n\t}\n\treturn output, nil\n}\n\n// ToSliceUnmerged returns the raw data contained in the File as three\n// dimensional slice (s. method ToSlice).\n// A covered cell become the value of its origin cell.\n// Example: table where A1:A2 merged.\n// | 01.01.2011 | Bread | 20 |\n// |            | Fish  | 70 |\n// This sheet will be converted to the slice:\n// [  [01.01.2011 Bread 20]\n// \t\t[01.01.2011 Fish 70] ]\nfunc (f *File) ToSliceUnmerged() (output [][][]string, err error) {\n\toutput, err = f.ToSlice()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor s, sheet := range f.Sheets {\n\t\tfor r, row := range sheet.Rows {\n\t\t\tfor c, cell := range row.Cells {\n\t\t\t\tif cell.HMerge > 0 {\n\t\t\t\t\tfor i := c + 1; i <= c+cell.HMerge; i++ {\n\t\t\t\t\t\toutput[s][r][i] = output[s][r][c]\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif cell.VMerge > 0 {\n\t\t\t\t\tfor i := r + 1; i <= r+cell.VMerge; i++ {\n\t\t\t\t\t\toutput[s][i][c] = output[s][r][c]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output, nil\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/format_code.go",
    "content": "package xlsx\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Do not edit these attributes once this struct is created. This struct should only be created by\n// parseFullNumberFormatString() from a number format string. If the format for a cell needs to change, change\n// the number format string and getNumberFormat() will invalidate the old struct and re-parse the string.\ntype parsedNumberFormat struct {\n\tnumFmt                        string\n\tisTimeFormat                  bool\n\tnegativeFormatExpectsPositive bool\n\tpositiveFormat                *formatOptions\n\tnegativeFormat                *formatOptions\n\tzeroFormat                    *formatOptions\n\ttextFormat                    *formatOptions\n\tparseEncounteredError         *error\n}\n\ntype formatOptions struct {\n\tisTimeFormat        bool\n\tshowPercent         bool\n\tfullFormatString    string\n\treducedFormatString string\n\tprefix              string\n\tsuffix              string\n}\n\n// FormatValue returns a value, and possibly an error condition\n// from a Cell.  If it is possible to apply a format to the cell\n// value, it will do so, if not then an error will be returned, along\n// with the raw value of the Cell.\n//\n// This is the documentation of the \"General\" Format in the Office Open XML spec:\n//\n// Numbers\n// The application shall attempt to display the full number up to 11 digits (inc. decimal point). If the number is too\n// large*, the application shall attempt to show exponential format. If the number has too many significant digits, the\n// display shall be truncated. The optimal method of display is based on the available cell width. If the number cannot\n// be displayed using any of these formats in the available width, the application shall show \"#\" across the width of\n// the cell.\n//\n// Conditions for switching to exponential format:\n// 1. The cell value shall have at least five digits for xE-xx\n// 2. If the exponent is bigger than the size allowed, a floating point number cannot fit, so try exponential notation.\n// 3. Similarly, for negative exponents, check if there is space for even one (non-zero) digit in floating point format**.\n// 4. Finally, if there isn't room for all of the significant digits in floating point format (for a negative exponent),\n// exponential format shall display more digits if the exponent is less than -3. (The 3 is because E-xx takes 4\n// characters, and the leading 0 in floating point takes only 1 character. Thus, for an exponent less than -3, there is\n// more than 3 additional leading 0's, more than enough to compensate for the size of the E-xx.)\n//\n// Floating point rule:\n// For general formatting in cells, max overall length for cell display is 11, not including negative sign, but includes\n// leading zeros and decimal separator.***\n//\n// Added Notes:\n// * \"If the number is too large\" can also mean \"if the number has more than 11 digits\", so greater than or equal to\n// 1e11 and less than 1e-9.\n// ** Means that you should switch to scientific if there would be 9 zeros after the decimal (the decimal and first zero\n// count against the 11 character limit), so less than 1e9.\n// *** The way this is written, you can get numbers that are more than 11 characters because the golang Float fmt\n// does not support adjusting the precision while not padding with zeros, while also not switching to scientific\n// notation too early.\nfunc (fullFormat *parsedNumberFormat) FormatValue(cell *Cell) (string, error) {\n\tswitch cell.cellType {\n\tcase CellTypeError:\n\t\t// The error type is what XLSX uses in error cases such as when formulas are invalid.\n\t\t// There will be text in the cell's value that can be shown, something ugly like #NAME? or #######\n\t\treturn cell.Value, nil\n\tcase CellTypeBool:\n\t\tif cell.Value == \"0\" {\n\t\t\treturn \"FALSE\", nil\n\t\t} else if cell.Value == \"1\" {\n\t\t\treturn \"TRUE\", nil\n\t\t} else {\n\t\t\treturn cell.Value, errors.New(\"invalid value in bool cell\")\n\t\t}\n\tcase CellTypeString:\n\t\tfallthrough\n\tcase CellTypeInline:\n\t\tfallthrough\n\tcase CellTypeStringFormula:\n\t\ttextFormat := cell.parsedNumFmt.textFormat\n\t\t// This switch statement is only for String formats\n\t\tswitch textFormat.reducedFormatString {\n\t\tcase builtInNumFmt[builtInNumFmtIndex_GENERAL]: // General is literally \"general\"\n\t\t\treturn cell.Value, nil\n\t\tcase builtInNumFmt[builtInNumFmtIndex_STRING]: // String is \"@\"\n\t\t\treturn textFormat.prefix + cell.Value + textFormat.suffix, nil\n\t\tcase \"\":\n\t\t\t// If cell is not \"General\" and there is not an \"@\" symbol in the format, then the cell's value is not\n\t\t\t// used when determining what to display. It would be completely legal to have a format of \"Error\"\n\t\t\t// for strings, and all values that are not numbers would show up as \"Error\". In that case, this code would\n\t\t\t// have a prefix of \"Error\" and a reduced format string of \"\" (empty string).\n\t\t\treturn textFormat.prefix + textFormat.suffix, nil\n\t\tdefault:\n\t\t\treturn cell.Value, errors.New(\"invalid or unsupported format, unsupported string format\")\n\t\t}\n\tcase CellTypeDate:\n\t\t// These are dates that are stored in date format instead of being stored as numbers with a format to turn them\n\t\t// into a date string.\n\t\treturn cell.Value, nil\n\tcase CellTypeNumeric:\n\t\treturn fullFormat.formatNumericCell(cell)\n\tdefault:\n\t\treturn cell.Value, errors.New(\"unknown cell type\")\n\t}\n}\n\nfunc (fullFormat *parsedNumberFormat) formatNumericCell(cell *Cell) (string, error) {\n\trawValue := strings.TrimSpace(cell.Value)\n\t// If there wasn't a value in the cell, it shouldn't have been marked as Numeric.\n\t// It's better to support this case though.\n\tif rawValue == \"\" {\n\t\treturn \"\", nil\n\t}\n\n\tif fullFormat.isTimeFormat {\n\t\treturn fullFormat.parseTime(rawValue, cell.date1904)\n\t}\n\tvar numberFormat *formatOptions\n\tfloatVal, floatErr := strconv.ParseFloat(rawValue, 64)\n\tif floatErr != nil {\n\t\treturn rawValue, floatErr\n\t}\n\t// Choose the correct format. There can be different formats for positive, negative, and zero numbers.\n\t// Excel only uses the zero format if the value is literally zero, even if the number is so small that it shows\n\t// up as \"0\" when the positive format is used.\n\tif floatVal > 0 {\n\t\tnumberFormat = fullFormat.positiveFormat\n\t} else if floatVal < 0 {\n\t\t// If format string specified a different format for negative numbers, then the number should be made positive\n\t\t// before getting formatted. The format string itself will contain formatting that denotes a negative number and\n\t\t// this formatting will end up in the prefix or suffix. Commonly if there is a negative format specified, the\n\t\t// number will get surrounded by parenthesis instead of showing it with a minus sign.\n\t\tif fullFormat.negativeFormatExpectsPositive {\n\t\t\tfloatVal = math.Abs(floatVal)\n\t\t}\n\t\tnumberFormat = fullFormat.negativeFormat\n\t} else {\n\t\tnumberFormat = fullFormat.zeroFormat\n\t}\n\n\t// When showPercent is true, multiply the number by 100.\n\t// The percent sign will be in the prefix or suffix already, so it does not need to be added in this function.\n\t// The number format itself will be the same as any other number format once the value is multiplied by 100.\n\tif numberFormat.showPercent {\n\t\tfloatVal = 100 * floatVal\n\t}\n\n\t// Only the most common format strings are supported here.\n\t// Eventually this switch needs to be replaced with a more general solution.\n\t// Some of these \"supported\" formats should have thousand separators, but don't get them since Go fmt\n\t// doesn't have a way to request thousands separators.\n\t// The only things that should be supported here are in the array formattingCharacters,\n\t// everything else has been stripped out before and will be placed in the prefix or suffix.\n\t// The formatting characters can have non-formatting characters mixed in with them and those should be maintained.\n\t// However, at this time we fail to parse those formatting codes and they get replaced with \"General\"\n\tvar formattedNum string\n\tswitch numberFormat.reducedFormatString {\n\tcase builtInNumFmt[builtInNumFmtIndex_GENERAL]: // General is literally \"general\"\n\t\t// prefix, showPercent, and suffix cannot apply to the general format\n\t\t// The logic for showing numbers when the format is \"general\" is much more complicated than the rest of these.\n\t\tgeneralFormatted, err := generalNumericScientific(cell.Value, true)\n\t\tif err != nil {\n\t\t\treturn rawValue, nil\n\t\t}\n\t\treturn generalFormatted, nil\n\tcase builtInNumFmt[builtInNumFmtIndex_STRING]: // String is \"@\"\n\t\tformattedNum = cell.Value\n\tcase builtInNumFmt[builtInNumFmtIndex_INT], \"#,##0\": // Int is \"0\"\n\t\t// Previously this case would cast to int and print with %d, but that will not round the value correctly.\n\t\tformattedNum = fmt.Sprintf(\"%.0f\", floatVal)\n\tcase \"0.0\", \"#,##0.0\":\n\t\tformattedNum = fmt.Sprintf(\"%.1f\", floatVal)\n\tcase builtInNumFmt[builtInNumFmtIndex_FLOAT], \"#,##0.00\": // Float is \"0.00\"\n\t\tformattedNum = fmt.Sprintf(\"%.2f\", floatVal)\n\tcase \"0.000\", \"#,##0.000\":\n\t\tformattedNum = fmt.Sprintf(\"%.3f\", floatVal)\n\tcase \"0.0000\", \"#,##0.0000\":\n\t\tformattedNum = fmt.Sprintf(\"%.4f\", floatVal)\n\tcase \"0.00e+00\", \"##0.0e+0\":\n\t\tformattedNum = fmt.Sprintf(\"%e\", floatVal)\n\tcase \"\":\n\t\t// Do nothing.\n\tdefault:\n\t\treturn rawValue, nil\n\t}\n\treturn numberFormat.prefix + formattedNum + numberFormat.suffix, nil\n}\n\nfunc generalNumericScientific(value string, allowScientific bool) (string, error) {\n\tif strings.TrimSpace(value) == \"\" {\n\t\treturn \"\", nil\n\t}\n\tf, err := strconv.ParseFloat(value, 64)\n\tif err != nil {\n\t\treturn value, err\n\t}\n\tif allowScientific {\n\t\tabsF := math.Abs(f)\n\t\t// When using General format, numbers that are less than 1e-9 (0.000000001) and greater than or equal to\n\t\t// 1e11 (100,000,000,000) should be shown in scientific notation.\n\t\t// Numbers less than the number after zero, are assumed to be zero.\n\t\tif (absF >= math.SmallestNonzeroFloat64 && absF < minNonScientificNumber) || absF >= maxNonScientificNumber {\n\t\t\treturn strconv.FormatFloat(f, 'E', -1, 64), nil\n\t\t}\n\t}\n\t// This format (fmt=\"f\", prec=-1) will prevent padding with zeros and will never switch to scientific notation.\n\t// However, it will show more than 11 characters for very precise numbers, and this cannot be changed.\n\t// You could also use fmt=\"g\", prec=11, which doesn't pad with zeros and allows the correct precision,\n\t// but it will use scientific notation on numbers less than 1e-4. That value is hardcoded in Go and cannot be\n\t// configured or disabled.\n\treturn strconv.FormatFloat(f, 'f', -1, 64), nil\n}\n\n// Format strings are a little strange to compare because empty string needs to be taken as general, and general needs\n// to be compared case insensitively.\nfunc compareFormatString(fmt1, fmt2 string) bool {\n\tif fmt1 == fmt2 {\n\t\treturn true\n\t}\n\tif fmt1 == \"\" || strings.EqualFold(fmt1, \"general\") {\n\t\tfmt1 = \"general\"\n\t}\n\tif fmt2 == \"\" || strings.EqualFold(fmt2, \"general\") {\n\t\tfmt2 = \"general\"\n\t}\n\treturn fmt1 == fmt2\n}\n\nfunc parseFullNumberFormatString(numFmt string) *parsedNumberFormat {\n\tparsedNumFmt := &parsedNumberFormat{\n\t\tnumFmt: numFmt,\n\t}\n\tif isTimeFormat(numFmt) {\n\t\t// Time formats cannot have multiple groups separated by semicolons, there is only one format.\n\t\t// Strings are unaffected by the time format.\n\t\tparsedNumFmt.isTimeFormat = true\n\t\tparsedNumFmt.textFormat, _ = parseNumberFormatSection(\"general\")\n\t\treturn parsedNumFmt\n\t}\n\n\tvar fmtOptions []*formatOptions\n\tformats, err := splitFormatOnSemicolon(numFmt)\n\tif err == nil {\n\t\tfor _, formatSection := range formats {\n\t\t\tparsedFormat, err := parseNumberFormatSection(formatSection)\n\t\t\tif err != nil {\n\t\t\t\t// If an invalid number section is found, fall back to general\n\t\t\t\tparsedFormat = fallbackErrorFormat\n\t\t\t\tparsedNumFmt.parseEncounteredError = &err\n\t\t\t}\n\t\t\tfmtOptions = append(fmtOptions, parsedFormat)\n\t\t}\n\t} else {\n\t\tfmtOptions = append(fmtOptions, fallbackErrorFormat)\n\t\tparsedNumFmt.parseEncounteredError = &err\n\t}\n\tif len(fmtOptions) > 4 {\n\t\tfmtOptions = []*formatOptions{fallbackErrorFormat}\n\t\terr = errors.New(\"invalid number format, too many format sections\")\n\t\tparsedNumFmt.parseEncounteredError = &err\n\t}\n\n\tif len(fmtOptions) == 1 {\n\t\t// If there is only one option, it is used for all\n\t\tparsedNumFmt.positiveFormat = fmtOptions[0]\n\t\tparsedNumFmt.negativeFormat = fmtOptions[0]\n\t\tparsedNumFmt.zeroFormat = fmtOptions[0]\n\t\tif strings.Contains(fmtOptions[0].fullFormatString, \"@\") {\n\t\t\tparsedNumFmt.textFormat = fmtOptions[0]\n\t\t} else {\n\t\t\tparsedNumFmt.textFormat, _ = parseNumberFormatSection(\"general\")\n\t\t}\n\t} else if len(fmtOptions) == 2 {\n\t\t// If there are two formats, the first is used for positive and zeros, the second gets used as a negative format,\n\t\t// and strings are not formatted.\n\t\t// When negative numbers now have their own format, they should become positive before having the format applied.\n\t\t// The format will contain a negative sign if it is desired, but they may be colored red or wrapped in\n\t\t// parenthesis instead.\n\t\tparsedNumFmt.negativeFormatExpectsPositive = true\n\t\tparsedNumFmt.positiveFormat = fmtOptions[0]\n\t\tparsedNumFmt.negativeFormat = fmtOptions[1]\n\t\tparsedNumFmt.zeroFormat = fmtOptions[0]\n\t\tparsedNumFmt.textFormat, _ = parseNumberFormatSection(\"general\")\n\t} else if len(fmtOptions) == 3 {\n\t\t// If there are three formats, the first is used for positive, the second gets used as a negative format,\n\t\t// the third is for negative, and strings are not formatted.\n\t\tparsedNumFmt.negativeFormatExpectsPositive = true\n\t\tparsedNumFmt.positiveFormat = fmtOptions[0]\n\t\tparsedNumFmt.negativeFormat = fmtOptions[1]\n\t\tparsedNumFmt.zeroFormat = fmtOptions[2]\n\t\tparsedNumFmt.textFormat, _ = parseNumberFormatSection(\"general\")\n\t} else {\n\t\t// With four options, the first is positive, the second is negative, the third is zero, and the fourth is strings\n\t\t// Negative numbers should be still become positive before having the negative formatting applied.\n\t\tparsedNumFmt.negativeFormatExpectsPositive = true\n\t\tparsedNumFmt.positiveFormat = fmtOptions[0]\n\t\tparsedNumFmt.negativeFormat = fmtOptions[1]\n\t\tparsedNumFmt.zeroFormat = fmtOptions[2]\n\t\tparsedNumFmt.textFormat = fmtOptions[3]\n\t}\n\treturn parsedNumFmt\n}\n\n// splitFormatOnSemicolon will split the format string into the format sections\n// This logic to split the different formats on semicolon is fully correct, and will skip all literal semicolons,\n// and will catch all breaking semicolons.\nfunc splitFormatOnSemicolon(format string) ([]string, error) {\n\tvar formats []string\n\tprevIndex := 0\n\tfor i := 0; i < len(format); i++ {\n\t\tif format[i] == ';' {\n\t\t\tformats = append(formats, format[prevIndex:i])\n\t\t\tprevIndex = i + 1\n\t\t} else if format[i] == '\\\\' {\n\t\t\ti++\n\t\t} else if format[i] == '\"' {\n\t\t\tendQuoteIndex := strings.Index(format[i+1:], \"\\\"\")\n\t\t\tif endQuoteIndex == -1 {\n\t\t\t\t// This is an invalid format string, fall back to general\n\t\t\t\treturn nil, errors.New(\"invalid format string, unmatched double quote\")\n\t\t\t}\n\t\t\ti += endQuoteIndex + 1\n\t\t}\n\t}\n\treturn append(formats, format[prevIndex:]), nil\n}\n\nvar fallbackErrorFormat = &formatOptions{\n\tfullFormatString:    \"general\",\n\treducedFormatString: \"general\",\n}\n\n// parseNumberFormatSection takes in individual format and parses out most of the options.\n// Some options are parsed, removed from the string, and set as settings on formatOptions.\n// There remainder of the format string is put in the reducedFormatString attribute, and supported values for these\n// are handled in a switch in the Cell.FormattedValue() function.\n// Ideally more and more of the format string would be parsed out here into settings until there is no remainder string\n// at all.\n// Features that this supports:\n// - Time formats are detected, and marked in the options. Time format strings are handled when doing the formatting.\n//   The logic to detect time formats is currently not correct, and can catch formats that are not time formats as well\n//   as miss formats that are time formats.\n// - Color formats are detected and removed.\n// - Currency annotations are handled properly.\n// - Literal strings wrapped in quotes are handled and put into prefix or suffix.\n// - Numbers that should be percent are detected and marked in the options.\n// - Conditionals are detected and removed, but they are not obeyed. The conditional groups will be used just like the\n//   positive;negative;zero;string format groups. Here is an example of a conditional format: \"[Red][<=100];[Blue][>100]\"\n// Decoding the actual number formatting portion is out of scope, that is placed into reducedFormatString and is used\n// when formatting the string. The string there will be reduced to only the things in the formattingCharacters array.\n// Everything not in that array has been parsed out and put into formatOptions.\nfunc parseNumberFormatSection(fullFormat string) (*formatOptions, error) {\n\treducedFormat := strings.TrimSpace(fullFormat)\n\n\t// general is the only format that does not use the normal format symbols notations\n\tif compareFormatString(reducedFormat, \"general\") {\n\t\treturn &formatOptions{\n\t\t\tfullFormatString:    \"general\",\n\t\t\treducedFormatString: \"general\",\n\t\t}, nil\n\t}\n\n\tprefix, reducedFormat, showPercent1, err := parseLiterals(reducedFormat)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treducedFormat, suffixFormat := splitFormatAndSuffixFormat(reducedFormat)\n\n\tsuffix, remaining, showPercent2, err := parseLiterals(suffixFormat)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(remaining) > 0 {\n\t\t// This paradigm of codes consisting of literals, number formats, then more literals is not always correct, they can\n\t\t// actually be intertwined. Though 99% of the time number formats will not do this.\n\t\t// Excel uses this format string for Social Security Numbers: 000\\-00\\-0000\n\t\t// and this for US phone numbers: [<=9999999]###\\-####;\\(###\\)\\ ###\\-####\n\t\treturn nil, errors.New(\"invalid or unsupported format string\")\n\t}\n\n\treturn &formatOptions{\n\t\tfullFormatString:    fullFormat,\n\t\tisTimeFormat:        false,\n\t\treducedFormatString: reducedFormat,\n\t\tprefix:              prefix,\n\t\tsuffix:              suffix,\n\t\tshowPercent:         showPercent1 || showPercent2,\n\t}, nil\n}\n\n// formattingCharacters will be left in the reducedNumberFormat\n// It is important that these be looked for in order so that the slash cases are handled correctly.\n// / (slash) is a fraction format if preceded by 0, #, or ?, otherwise it is not a formatting character\n// E- E+ e- e+ are scientific notation, but E, e, -, + are not formatting characters independently\n// \\ (back slash) makes the next character a literal (not formatting)\n// \" Anything in double quotes is not a formatting character\n// _ (underscore) skips the width of the next character, so the next character cannot be formatting\nvar formattingCharacters = []string{\"0/\", \"#/\", \"?/\", \"E-\", \"E+\", \"e-\", \"e+\", \"0\", \"#\", \"?\", \".\", \",\", \"@\", \"*\"}\n\n// The following are also time format characters, but since this is only used for detecting, not decoding, they are\n// redundant here: ee, gg, ggg, rr, ss, mm, hh, yyyy, dd, ddd, dddd, mm, mmm, mmmm, mmmmm, ss.0000, ss.000, ss.00, ss.0\n// The .00 type format is very tricky, because it only counts if it comes after ss or s or [ss] or [s]\n// .00 is actually a valid number format by itself.\nvar timeFormatCharacters = []string{\"m\", \"d\", \"yy\", \"h\", \"m\", \"AM/PM\", \"A/P\", \"am/pm\", \"a/p\", \"r\", \"g\", \"e\", \"b1\", \"b2\", \"[hh]\", \"[h]\", \"[mm]\", \"[m]\",\n\t\"s.0000\", \"s.000\", \"s.00\", \"s.0\", \"s\", \"[ss].0000\", \"[ss].000\", \"[ss].00\", \"[ss].0\", \"[ss]\", \"[s].0000\", \"[s].000\", \"[s].00\", \"[s].0\", \"[s]\"}\n\nfunc splitFormatAndSuffixFormat(format string) (string, string) {\n\tvar i int\n\tfor ; i < len(format); i++ {\n\t\tcurReducedFormat := format[i:]\n\t\tvar found bool\n\t\tfor _, special := range formattingCharacters {\n\t\t\tif strings.HasPrefix(curReducedFormat, special) {\n\t\t\t\t// Skip ahead if the special character was longer than length 1\n\t\t\t\ti += len(special) - 1\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tbreak\n\t\t}\n\t}\n\tsuffixFormat := format[i:]\n\tformat = format[:i]\n\treturn format, suffixFormat\n}\n\nfunc parseLiterals(format string) (string, string, bool, error) {\n\tvar prefix string\n\tshowPercent := false\n\tfor i := 0; i < len(format); i++ {\n\t\tcurReducedFormat := format[i:]\n\t\tswitch curReducedFormat[0] {\n\t\tcase '\\\\':\n\t\t\t// If there is a slash, skip the next character, and add it to the prefix\n\t\t\tif len(curReducedFormat) > 1 {\n\t\t\t\ti++\n\t\t\t\tprefix += curReducedFormat[1:2]\n\t\t\t}\n\t\tcase '_':\n\t\t\t// If there is an underscore, skip the next character, but don't add it to the prefix\n\t\t\tif len(curReducedFormat) > 1 {\n\t\t\t\ti++\n\t\t\t}\n\t\tcase '*':\n\t\t\t// Asterisks are used to repeat the next character to fill the full cell width.\n\t\t\t// There isn't really a cell size in this context, so this will be ignored.\n\t\tcase '\"':\n\t\t\t// If there is a quote skip to the next quote, and add the quoted characters to the prefix\n\t\t\tendQuoteIndex := strings.Index(curReducedFormat[1:], \"\\\"\")\n\t\t\tif endQuoteIndex == -1 {\n\t\t\t\treturn \"\", \"\", false, errors.New(\"invalid formatting code, unmatched double quote\")\n\t\t\t}\n\t\t\tprefix = prefix + curReducedFormat[1:endQuoteIndex+1]\n\t\t\ti += endQuoteIndex + 1\n\t\tcase '%':\n\t\t\tshowPercent = true\n\t\t\tprefix += \"%\"\n\t\tcase '[':\n\t\t\t// Brackets can be currency annotations (e.g. [$$-409])\n\t\t\t// color formats (e.g. [color1] through [color56], as well as [red] etc.)\n\t\t\t// conditionals (e.g. [>100], the valid conditionals are =, >, <, >=, <=, <>)\n\t\t\tbracketIndex := strings.Index(curReducedFormat, \"]\")\n\t\t\tif bracketIndex == -1 {\n\t\t\t\treturn \"\", \"\", false, errors.New(\"invalid formatting code, invalid brackets\")\n\t\t\t}\n\t\t\t// Currencies in Excel are annotated with this format: [$<Currency String>-<Language Info>]\n\t\t\t// Currency String is something like $, ¥, €, or £\n\t\t\t// Language Info is three hexadecimal characters\n\t\t\tif len(curReducedFormat) > 2 && curReducedFormat[1] == '$' {\n\t\t\t\tdashIndex := strings.Index(curReducedFormat, \"-\")\n\t\t\t\tif dashIndex != -1 && dashIndex < bracketIndex {\n\t\t\t\t\t// Get the currency symbol, and skip to the end of the currency format\n\t\t\t\t\tprefix += curReducedFormat[2:dashIndex]\n\t\t\t\t} else {\n\t\t\t\t\treturn \"\", \"\", false, errors.New(\"invalid formatting code, invalid currency annotation\")\n\t\t\t\t}\n\t\t\t}\n\t\t\ti += bracketIndex\n\t\tcase '$', '-', '+', '/', '(', ')', ':', '!', '^', '&', '\\'', '~', '{', '}', '<', '>', '=', ' ':\n\t\t\t// These symbols are allowed to be used as literal without escaping\n\t\t\tprefix += curReducedFormat[0:1]\n\t\tdefault:\n\t\t\tfor _, special := range formattingCharacters {\n\t\t\t\tif strings.HasPrefix(curReducedFormat, special) {\n\t\t\t\t\t// This means we found the start of the actual number formatting portion, and should return.\n\t\t\t\t\treturn prefix, format[i:], showPercent, nil\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Symbols that don't have meaning and aren't in the exempt literal characters and are not escaped.\n\t\t\treturn \"\", \"\", false, errors.New(\"invalid formatting code: unsupported or unescaped characters\")\n\t\t}\n\t}\n\treturn prefix, \"\", showPercent, nil\n}\n\n// parseTime returns a string parsed using time.Time\nfunc (fullFormat *parsedNumberFormat) parseTime(value string, date1904 bool) (string, error) {\n\tf, err := strconv.ParseFloat(value, 64)\n\tif err != nil {\n\t\treturn value, err\n\t}\n\tval := TimeFromExcelTime(f, date1904)\n\tformat := fullFormat.numFmt\n\t// Replace Excel placeholders with Go time placeholders.\n\t// For example, replace yyyy with 2006. These are in a specific order,\n\t// due to the fact that m is used in month, minute, and am/pm. It would\n\t// be easier to fix that with regular expressions, but if it's possible\n\t// to keep this simple it would be easier to maintain.\n\t// Full-length month and days (e.g. March, Tuesday) have letters in them that would be replaced\n\t// by other characters below (such as the 'h' in March, or the 'd' in Tuesday) below.\n\t// First we convert them to arbitrary characters unused in Excel Date formats, and then at the end,\n\t// turn them to what they should actually be.\n\t// Based off: http://www.ozgrid.com/Excel/CustomFormats.htm\n\treplacements := []struct{ xltime, gotime string }{\n\t\t{\"yyyy\", \"2006\"},\n\t\t{\"yy\", \"06\"},\n\t\t{\"mmmm\", \"%%%%\"},\n\t\t{\"dddd\", \"&&&&\"},\n\t\t{\"dd\", \"02\"},\n\t\t{\"d\", \"2\"},\n\t\t{\"mmm\", \"Jan\"},\n\t\t{\"mmss\", \"0405\"},\n\t\t{\"ss\", \"05\"},\n\t\t{\"mm:\", \"04:\"},\n\t\t{\":mm\", \":04\"},\n\t\t{\"mm\", \"01\"},\n\t\t{\"am/pm\", \"pm\"},\n\t\t{\"m/\", \"1/\"},\n\t\t{\"%%%%\", \"January\"},\n\t\t{\"&&&&\", \"Monday\"},\n\t}\n\t// It is the presence of the \"am/pm\" indicator that determins\n\t// if this is a 12 hour or 24 hours time format, not the\n\t// number of 'h' characters.\n\tif is12HourTime(format) {\n\t\tformat = strings.Replace(format, \"hh\", \"03\", 1)\n\t\tformat = strings.Replace(format, \"h\", \"3\", 1)\n\t} else {\n\t\tformat = strings.Replace(format, \"hh\", \"15\", 1)\n\t\tformat = strings.Replace(format, \"h\", \"15\", 1)\n\t}\n\tfor _, repl := range replacements {\n\t\tformat = strings.Replace(format, repl.xltime, repl.gotime, 1)\n\t}\n\t// If the hour is optional, strip it out, along with the\n\t// possible dangling colon that would remain.\n\tif val.Hour() < 1 {\n\t\tformat = strings.Replace(format, \"]:\", \"]\", 1)\n\t\tformat = strings.Replace(format, \"[03]\", \"\", 1)\n\t\tformat = strings.Replace(format, \"[3]\", \"\", 1)\n\t\tformat = strings.Replace(format, \"[15]\", \"\", 1)\n\t} else {\n\t\tformat = strings.Replace(format, \"[3]\", \"3\", 1)\n\t\tformat = strings.Replace(format, \"[15]\", \"15\", 1)\n\t}\n\treturn val.Format(format), nil\n}\n\n// isTimeFormat checks whether an Excel format string represents a time.Time.\n// This function is now correct, but it can detect time format strings that cannot be correctly handled by parseTime()\nfunc isTimeFormat(format string) bool {\n\tvar foundTimeFormatCharacters bool\n\tfor i := 0; i < len(format); i++ {\n\t\tcurReducedFormat := format[i:]\n\t\tswitch curReducedFormat[0] {\n\t\tcase '\\\\', '_':\n\t\t\t// If there is a slash, skip the next character, and add it to the prefix\n\t\t\t// If there is an underscore, skip the next character, but don't add it to the prefix\n\t\t\tif len(curReducedFormat) > 1 {\n\t\t\t\ti++\n\t\t\t}\n\t\tcase '*':\n\t\t\t// Asterisks are used to repeat the next character to fill the full cell width.\n\t\t\t// There isn't really a cell size in this context, so this will be ignored.\n\t\tcase '\"':\n\t\t\t// If there is a quote skip to the next quote, and add the quoted characters to the prefix\n\t\t\tendQuoteIndex := strings.Index(curReducedFormat[1:], \"\\\"\")\n\t\t\tif endQuoteIndex == -1 {\n\t\t\t\t// This is not any type of valid format.\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ti += endQuoteIndex + 1\n\t\tcase '$', '-', '+', '/', '(', ')', ':', '!', '^', '&', '\\'', '~', '{', '}', '<', '>', '=', ' ':\n\t\t\t// These symbols are allowed to be used as literal without escaping\n\t\tcase ',':\n\t\t\t// This is not documented in the XLSX spec as far as I can tell, but Excel and Numbers will include\n\t\t\t// commas in number formats without escaping them, so this should be supported.\n\t\tdefault:\n\t\t\tfoundInThisLoop := false\n\t\t\tfor _, special := range timeFormatCharacters {\n\t\t\t\tif strings.HasPrefix(curReducedFormat, special) {\n\t\t\t\t\tfoundTimeFormatCharacters = true\n\t\t\t\t\tfoundInThisLoop = true\n\t\t\t\t\ti += len(special) - 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif foundInThisLoop {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif curReducedFormat[0] == '[' {\n\t\t\t\t// For number formats, this code would happen above in a case '[': section.\n\t\t\t\t// However, for time formats it must happen after looking for occurrences in timeFormatCharacters\n\t\t\t\t// because there are a few time formats that can be wrapped in brackets.\n\n\t\t\t\t// Brackets can be currency annotations (e.g. [$$-409])\n\t\t\t\t// color formats (e.g. [color1] through [color56], as well as [red] etc.)\n\t\t\t\t// conditionals (e.g. [>100], the valid conditionals are =, >, <, >=, <=, <>)\n\t\t\t\tbracketIndex := strings.Index(curReducedFormat, \"]\")\n\t\t\t\tif bracketIndex == -1 {\n\t\t\t\t\t// This is not any type of valid format.\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += bracketIndex\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Symbols that don't have meaning, aren't in the exempt literal characters, and aren't escaped are invalid.\n\t\t\t// The string could still be a valid number format string.\n\t\t\treturn false\n\t\t}\n\t}\n\t// If the string doesn't have any time formatting characters, it could technically be a time format, but it\n\t// would be a pretty weak time format. A valid time format with no time formatting symbols will also be a number\n\t// format with no number formatting symbols, which is essentially a constant string that does not depend on the\n\t// cell's value in anyway. The downstream logic will do the right thing in that case if this returns false.\n\treturn foundTimeFormatCharacters\n}\n\n// is12HourTime checks whether an Excel time format string is a 12\n// hours form.\nfunc is12HourTime(format string) bool {\n\treturn strings.Contains(format, \"am/pm\") || strings.Contains(format, \"AM/PM\") || strings.Contains(format, \"a/p\") || strings.Contains(format, \"A/P\")\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/hsl.go",
    "content": "/*\nCopyright (c) 2012 Rodrigo Moraes. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n\t * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n\t * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\npackage xlsx\n\nimport (\n\t\"image/color\"\n\t\"math\"\n)\n\n// HSLModel converts any color.Color to a HSL color.\nvar HSLModel = color.ModelFunc(hslModel)\n\n// HSL represents a cylindrical coordinate of points in an RGB color model.\n//\n// Values are in the range 0 to 1.\ntype HSL struct {\n\tH, S, L float64\n}\n\n// RGBA returns the alpha-premultiplied red, green, blue and alpha values\n// for the HSL.\nfunc (c HSL) RGBA() (uint32, uint32, uint32, uint32) {\n\tr, g, b := HSLToRGB(c.H, c.S, c.L)\n\treturn uint32(r) * 0x101, uint32(g) * 0x101, uint32(b) * 0x101, 0xffff\n}\n\n// hslModel converts a color.Color to HSL.\nfunc hslModel(c color.Color) color.Color {\n\tif _, ok := c.(HSL); ok {\n\t\treturn c\n\t}\n\tr, g, b, _ := c.RGBA()\n\th, s, l := RGBToHSL(uint8(r>>8), uint8(g>>8), uint8(b>>8))\n\treturn HSL{h, s, l}\n}\n\n// RGBToHSL converts an RGB triple to a HSL triple.\n//\n// Ported from http://goo.gl/Vg1h9\nfunc RGBToHSL(r, g, b uint8) (h, s, l float64) {\n\tfR := float64(r) / 255\n\tfG := float64(g) / 255\n\tfB := float64(b) / 255\n\tmax := math.Max(math.Max(fR, fG), fB)\n\tmin := math.Min(math.Min(fR, fG), fB)\n\tl = (max + min) / 2\n\tif max == min {\n\t\t// Achromatic.\n\t\th, s = 0, 0\n\t} else {\n\t\t// Chromatic.\n\t\td := max - min\n\t\tif l > 0.5 {\n\t\t\ts = d / (2.0 - max - min)\n\t\t} else {\n\t\t\ts = d / (max + min)\n\t\t}\n\t\tswitch max {\n\t\tcase fR:\n\t\t\th = (fG - fB) / d\n\t\t\tif fG < fB {\n\t\t\t\th += 6\n\t\t\t}\n\t\tcase fG:\n\t\t\th = (fB-fR)/d + 2\n\t\tcase fB:\n\t\t\th = (fR-fG)/d + 4\n\t\t}\n\t\th /= 6\n\t}\n\treturn\n}\n\n// HSLToRGB converts an HSL triple to a RGB triple.\n//\n// Ported from http://goo.gl/Vg1h9\nfunc HSLToRGB(h, s, l float64) (r, g, b uint8) {\n\tvar fR, fG, fB float64\n\tif s == 0 {\n\t\tfR, fG, fB = l, l, l\n\t} else {\n\t\tvar q float64\n\t\tif l < 0.5 {\n\t\t\tq = l * (1 + s)\n\t\t} else {\n\t\t\tq = l + s - s*l\n\t\t}\n\t\tp := 2*l - q\n\t\tfR = hueToRGB(p, q, h+1.0/3)\n\t\tfG = hueToRGB(p, q, h)\n\t\tfB = hueToRGB(p, q, h-1.0/3)\n\t}\n\tr = uint8((fR * 255) + 0.5)\n\tg = uint8((fG * 255) + 0.5)\n\tb = uint8((fB * 255) + 0.5)\n\treturn\n}\n\n// hueToRGB is a helper function for HSLToRGB.\nfunc hueToRGB(p, q, t float64) float64 {\n\tif t < 0 {\n\t\tt += 1\n\t}\n\tif t > 1 {\n\t\tt -= 1\n\t}\n\tif t < 1.0/6 {\n\t\treturn p + (q-p)*6*t\n\t}\n\tif t < 0.5 {\n\t\treturn q\n\t}\n\tif t < 2.0/3 {\n\t\treturn p + (q-p)*(2.0/3-t)*6\n\t}\n\treturn p\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/lib.go",
    "content": "package xlsx\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tsheetEnding = `</sheetData></worksheet>`\n)\n\n// XLSXReaderError is the standard error type for otherwise undefined\n// errors in the XSLX reading process.\ntype XLSXReaderError struct {\n\tErr string\n}\n\n// Error returns a string value from an XLSXReaderError struct in order\n// that it might comply with the builtin.error interface.\nfunc (e *XLSXReaderError) Error() string {\n\treturn e.Err\n}\n\n// getRangeFromString is an internal helper function that converts\n// XLSX internal range syntax to a pair of integers.  For example,\n// the range string \"1:3\" yield the upper and lower integers 1 and 3.\nfunc getRangeFromString(rangeString string) (lower int, upper int, error error) {\n\tvar parts []string\n\tparts = strings.SplitN(rangeString, \":\", 2)\n\tif parts[0] == \"\" {\n\t\terror = errors.New(fmt.Sprintf(\"Invalid range '%s'\\n\", rangeString))\n\t}\n\tif parts[1] == \"\" {\n\t\terror = errors.New(fmt.Sprintf(\"Invalid range '%s'\\n\", rangeString))\n\t}\n\tlower, error = strconv.Atoi(parts[0])\n\tif error != nil {\n\t\terror = errors.New(fmt.Sprintf(\"Invalid range (not integer in lower bound) %s\\n\", rangeString))\n\t}\n\tupper, error = strconv.Atoi(parts[1])\n\tif error != nil {\n\t\terror = errors.New(fmt.Sprintf(\"Invalid range (not integer in upper bound) %s\\n\", rangeString))\n\t}\n\treturn lower, upper, error\n}\n\n// ColLettersToIndex is used to convert a character based column\n// reference to a zero based numeric column identifier.\nfunc ColLettersToIndex(letters string) int {\n\tsum, mul, n := 0, 1, 0\n\tfor i := len(letters) - 1; i >= 0; i, mul, n = i-1, mul*26, 1 {\n\t\tc := letters[i]\n\t\tswitch {\n\t\tcase 'A' <= c && c <= 'Z':\n\t\t\tn += int(c - 'A')\n\t\tcase 'a' <= c && c <= 'z':\n\t\t\tn += int(c - 'a')\n\t\t}\n\t\tsum += n * mul\n\t}\n\treturn sum\n}\n\n// Get the largestDenominator that is a multiple of a basedDenominator\n// and fits at least once into a given numerator.\nfunc getLargestDenominator(numerator, multiple, baseDenominator, power int) (int, int) {\n\tif numerator/multiple == 0 {\n\t\treturn 1, power\n\t}\n\tnext, nextPower := getLargestDenominator(\n\t\tnumerator, multiple*baseDenominator, baseDenominator, power+1)\n\tif next > multiple {\n\t\treturn next, nextPower\n\t}\n\treturn multiple, power\n}\n\n// Convers a list of numbers representing a column into a alphabetic\n// representation, as used in the spreadsheet.\nfunc formatColumnName(colId []int) string {\n\tlastPart := len(colId) - 1\n\n\tresult := \"\"\n\tfor n, part := range colId {\n\t\tif n == lastPart {\n\t\t\t// The least significant number is in the\n\t\t\t// range 0-25, all other numbers are 1-26,\n\t\t\t// hence we use a differente offset for the\n\t\t\t// last part.\n\t\t\tresult += string(part + 65)\n\t\t} else {\n\t\t\t// Don't output leading 0s, as there is no\n\t\t\t// representation of 0 in this format.\n\t\t\tif part > 0 {\n\t\t\t\tresult += string(part + 64)\n\t\t\t}\n\t\t}\n\t}\n\treturn result\n}\n\nfunc smooshBase26Slice(b26 []int) []int {\n\t// Smoosh values together, eliminating 0s from all but the\n\t// least significant part.\n\tlastButOnePart := len(b26) - 2\n\tfor i := lastButOnePart; i > 0; i-- {\n\t\tpart := b26[i]\n\t\tif part == 0 {\n\t\t\tgreaterPart := b26[i-1]\n\t\t\tif greaterPart > 0 {\n\t\t\t\tb26[i-1] = greaterPart - 1\n\t\t\t\tb26[i] = 26\n\t\t\t}\n\t\t}\n\t}\n\treturn b26\n}\n\nfunc intToBase26(x int) (parts []int) {\n\t// Excel column codes are pure evil - in essence they're just\n\t// base26, but they don't represent the number 0.\n\tb26Denominator, _ := getLargestDenominator(x, 1, 26, 0)\n\n\t// This loop terminates because integer division of 1 / 26\n\t// returns 0.\n\tfor d := b26Denominator; d > 0; d = d / 26 {\n\t\tvalue := x / d\n\t\tremainder := x % d\n\t\tparts = append(parts, value)\n\t\tx = remainder\n\t}\n\treturn parts\n}\n\n// ColIndexToLetters is used to convert a zero based, numeric column\n// indentifier into a character code.\nfunc ColIndexToLetters(colRef int) string {\n\tparts := intToBase26(colRef)\n\treturn formatColumnName(smooshBase26Slice(parts))\n}\n\n// letterOnlyMapF is used in conjunction with strings.Map to return\n// only the characters A-Z and a-z in a string\nfunc letterOnlyMapF(rune rune) rune {\n\tswitch {\n\tcase 'A' <= rune && rune <= 'Z':\n\t\treturn rune\n\tcase 'a' <= rune && rune <= 'z':\n\t\treturn rune - 32\n\t}\n\treturn -1\n}\n\n// intOnlyMapF is used in conjunction with strings.Map to return only\n// the numeric portions of a string.\nfunc intOnlyMapF(rune rune) rune {\n\tif rune >= 48 && rune < 58 {\n\t\treturn rune\n\t}\n\treturn -1\n}\n\n// GetCoordsFromCellIDString returns the zero based cartesian\n// coordinates from a cell name in Excel format, e.g. the cellIDString\n// \"A1\" returns 0, 0 and the \"B3\" return 1, 2.\nfunc GetCoordsFromCellIDString(cellIDString string) (x, y int, error error) {\n\tvar letterPart string = strings.Map(letterOnlyMapF, cellIDString)\n\ty, error = strconv.Atoi(strings.Map(intOnlyMapF, cellIDString))\n\tif error != nil {\n\t\treturn x, y, error\n\t}\n\ty -= 1 // Zero based\n\tx = ColLettersToIndex(letterPart)\n\treturn x, y, error\n}\n\n// GetCellIDStringFromCoords returns the Excel format cell name that\n// represents a pair of zero based cartesian coordinates.\nfunc GetCellIDStringFromCoords(x, y int) string {\n\tletterPart := ColIndexToLetters(x)\n\tnumericPart := y + 1\n\treturn fmt.Sprintf(\"%s%d\", letterPart, numericPart)\n}\n\n// getMaxMinFromDimensionRef return the zero based cartesian maximum\n// and minimum coordinates from the dimension reference embedded in a\n// XLSX worksheet.  For example, the dimension reference \"A1:B2\"\n// returns \"0,0\", \"1,1\".\nfunc getMaxMinFromDimensionRef(ref string) (minx, miny, maxx, maxy int, err error) {\n\tvar parts []string\n\tparts = strings.Split(ref, \":\")\n\tminx, miny, err = GetCoordsFromCellIDString(parts[0])\n\tif err != nil {\n\t\treturn -1, -1, -1, -1, err\n\t}\n\tmaxx, maxy, err = GetCoordsFromCellIDString(parts[1])\n\tif err != nil {\n\t\treturn -1, -1, -1, -1, err\n\t}\n\treturn\n}\n\n// calculateMaxMinFromWorkSheet works out the dimensions of a spreadsheet\n// that doesn't have a DimensionRef set.  The only case currently\n// known where this is true is with XLSX exported from Google Docs.\n// This is also true for XLSX files created through the streaming APIs.\nfunc calculateMaxMinFromWorksheet(worksheet *xlsxWorksheet) (minx, miny, maxx, maxy int, err error) {\n\t// Note, this method could be very slow for large spreadsheets.\n\tvar x, y int\n\tvar maxVal int\n\tmaxVal = int(^uint(0) >> 1)\n\tminx = maxVal\n\tminy = maxVal\n\tmaxy = 0\n\tmaxx = 0\n\tfor _, row := range worksheet.SheetData.Row {\n\t\tfor _, cell := range row.C {\n\t\t\tx, y, err = GetCoordsFromCellIDString(cell.R)\n\t\t\tif err != nil {\n\t\t\t\treturn -1, -1, -1, -1, err\n\t\t\t}\n\t\t\tif x < minx {\n\t\t\t\tminx = x\n\t\t\t}\n\t\t\tif x > maxx {\n\t\t\t\tmaxx = x\n\t\t\t}\n\t\t\tif y < miny {\n\t\t\t\tminy = y\n\t\t\t}\n\t\t\tif y > maxy {\n\t\t\t\tmaxy = y\n\t\t\t}\n\t\t}\n\t}\n\tif minx == maxVal {\n\t\tminx = 0\n\t}\n\tif miny == maxVal {\n\t\tminy = 0\n\t}\n\treturn\n}\n\n// makeRowFromSpan will, when given a span expressed as a string,\n// return an empty Row large enough to encompass that span and\n// populate it with empty cells.  All rows start from cell 1 -\n// regardless of the lower bound of the span.\nfunc makeRowFromSpan(spans string, sheet *Sheet) *Row {\n\tvar error error\n\tvar upper int\n\tvar row *Row\n\tvar cell *Cell\n\n\trow = new(Row)\n\trow.Sheet = sheet\n\t_, upper, error = getRangeFromString(spans)\n\tif error != nil {\n\t\tpanic(error)\n\t}\n\terror = nil\n\trow.Cells = make([]*Cell, upper)\n\tfor i := 0; i < upper; i++ {\n\t\tcell = new(Cell)\n\t\tcell.Value = \"\"\n\t\trow.Cells[i] = cell\n\t}\n\treturn row\n}\n\n// makeRowFromRaw returns the Row representation of the xlsxRow.\nfunc makeRowFromRaw(rawrow xlsxRow, sheet *Sheet) *Row {\n\tvar upper int\n\tvar row *Row\n\tvar cell *Cell\n\n\trow = new(Row)\n\trow.Sheet = sheet\n\tupper = -1\n\n\tfor _, rawcell := range rawrow.C {\n\t\tif rawcell.R != \"\" {\n\t\t\tx, _, error := GetCoordsFromCellIDString(rawcell.R)\n\t\t\tif error != nil {\n\t\t\t\tpanic(fmt.Sprintf(\"Invalid Cell Coord, %s\\n\", rawcell.R))\n\t\t\t}\n\t\t\tif x > upper {\n\t\t\t\tupper = x\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tupper++\n\t}\n\tupper++\n\n\trow.OutlineLevel = rawrow.OutlineLevel\n\n\trow.Cells = make([]*Cell, upper)\n\tfor i := 0; i < upper; i++ {\n\t\tcell = new(Cell)\n\t\tcell.Value = \"\"\n\t\trow.Cells[i] = cell\n\t}\n\treturn row\n}\n\nfunc makeEmptyRow(sheet *Sheet) *Row {\n\trow := new(Row)\n\trow.Cells = make([]*Cell, 0)\n\trow.Sheet = sheet\n\treturn row\n}\n\ntype sharedFormula struct {\n\tx, y    int\n\tformula string\n}\n\nfunc formulaForCell(rawcell xlsxC, sharedFormulas map[int]sharedFormula) string {\n\tvar res string\n\n\tf := rawcell.F\n\tif f == nil {\n\t\treturn \"\"\n\t}\n\tif f.T == \"shared\" {\n\t\tx, y, err := GetCoordsFromCellIDString(rawcell.R)\n\t\tif err != nil {\n\t\t\tres = f.Content\n\t\t} else {\n\t\t\tif f.Ref != \"\" {\n\t\t\t\tres = f.Content\n\t\t\t\tsharedFormulas[f.Si] = sharedFormula{x, y, res}\n\t\t\t} else {\n\t\t\t\tsharedFormula := sharedFormulas[f.Si]\n\t\t\t\tdx := x - sharedFormula.x\n\t\t\t\tdy := y - sharedFormula.y\n\t\t\t\torig := []byte(sharedFormula.formula)\n\t\t\t\tvar start, end int\n\t\t\t\tvar stringLiteral bool\n\t\t\t\tfor end = 0; end < len(orig); end++ {\n\t\t\t\t\tc := orig[end]\n\n\t\t\t\t\tif c == '\"' {\n\t\t\t\t\t\tstringLiteral = !stringLiteral\n\t\t\t\t\t}\n\n\t\t\t\t\tif stringLiteral {\n\t\t\t\t\t\tcontinue // Skip characters in quotes\n\t\t\t\t\t}\n\n\t\t\t\t\tif c >= 'A' && c <= 'Z' || c == '$' {\n\t\t\t\t\t\tres += string(orig[start:end])\n\t\t\t\t\t\tstart = end\n\t\t\t\t\t\tend++\n\t\t\t\t\t\tfoundNum := false\n\t\t\t\t\t\tfor ; end < len(orig); end++ {\n\t\t\t\t\t\t\tidc := orig[end]\n\t\t\t\t\t\t\tif idc >= '0' && idc <= '9' || idc == '$' {\n\t\t\t\t\t\t\t\tfoundNum = true\n\t\t\t\t\t\t\t} else if idc >= 'A' && idc <= 'Z' {\n\t\t\t\t\t\t\t\tif foundNum {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif foundNum {\n\t\t\t\t\t\t\tcellID := string(orig[start:end])\n\t\t\t\t\t\t\tres += shiftCell(cellID, dx, dy)\n\t\t\t\t\t\t\tstart = end\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif start < len(orig) {\n\t\t\t\t\tres += string(orig[start:])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tres = f.Content\n\t}\n\treturn strings.Trim(res, \" \\t\\n\\r\")\n}\n\n// shiftCell returns the cell shifted according to dx and dy taking into consideration of absolute\n// references with dollar sign ($)\nfunc shiftCell(cellID string, dx, dy int) string {\n\tfx, fy, _ := GetCoordsFromCellIDString(cellID)\n\n\t// Is fixed column?\n\tfixedCol := strings.Index(cellID, \"$\") == 0\n\n\t// Is fixed row?\n\tfixedRow := strings.LastIndex(cellID, \"$\") > 0\n\n\tif !fixedCol {\n\t\t// Shift column\n\t\tfx += dx\n\t}\n\n\tif !fixedRow {\n\t\t// Shift row\n\t\tfy += dy\n\t}\n\n\t// New shifted cell\n\tshiftedCellID := GetCellIDStringFromCoords(fx, fy)\n\n\tif !fixedCol && !fixedRow {\n\t\treturn shiftedCellID\n\t}\n\n\t// There are absolute references, need to put the $ back into the formula.\n\tletterPart := strings.Map(letterOnlyMapF, shiftedCellID)\n\tnumberPart := strings.Map(intOnlyMapF, shiftedCellID)\n\n\tresult := \"\"\n\n\tif fixedCol {\n\t\tresult += \"$\"\n\t}\n\n\tresult += letterPart\n\n\tif fixedRow {\n\t\tresult += \"$\"\n\t}\n\n\tresult += numberPart\n\n\treturn result\n}\n\n// fillCellData attempts to extract a valid value, usable in\n// CSV form from the raw cell value.  Note - this is not actually\n// general enough - we should support retaining tabs and newlines.\nfunc fillCellData(rawCell xlsxC, refTable *RefTable, sharedFormulas map[int]sharedFormula, cell *Cell) {\n\tval := strings.Trim(rawCell.V, \" \\t\\n\\r\")\n\tcell.formula = formulaForCell(rawCell, sharedFormulas)\n\tswitch rawCell.T {\n\tcase \"s\": // Shared String\n\t\tcell.cellType = CellTypeString\n\t\tif val != \"\" {\n\t\t\tref, err := strconv.Atoi(val)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tcell.Value = refTable.ResolveSharedString(ref)\n\t\t}\n\tcase \"inlineStr\":\n\t\tcell.cellType = CellTypeInline\n\t\tfillCellDataFromInlineString(rawCell, cell)\n\tcase \"b\": // Boolean\n\t\tcell.Value = val\n\t\tcell.cellType = CellTypeBool\n\tcase \"e\": // Error\n\t\tcell.Value = val\n\t\tcell.cellType = CellTypeError\n\tcase \"str\":\n\t\t// String Formula (special type for cells with formulas that return a string value)\n\t\t// Unlike the other string cell types, the string is stored directly in the value.\n\t\tcell.Value = val\n\t\tcell.cellType = CellTypeStringFormula\n\tcase \"d\": // Date: Cell contains a date in the ISO 8601 format.\n\t\tcell.Value = val\n\t\tcell.cellType = CellTypeDate\n\tcase \"\": // Numeric is the default\n\t\tfallthrough\n\tcase \"n\": // Numeric\n\t\tcell.Value = val\n\t\tcell.cellType = CellTypeNumeric\n\tdefault:\n\t\tpanic(errors.New(\"invalid cell type\"))\n\t}\n}\n\n// fillCellDataFromInlineString attempts to get inline string data and put it into a Cell.\nfunc fillCellDataFromInlineString(rawcell xlsxC, cell *Cell) {\n\tcell.Value = \"\"\n\tif rawcell.Is != nil {\n\t\tif rawcell.Is.T != \"\" {\n\t\t\tcell.Value = strings.Trim(rawcell.Is.T, \" \\t\\n\\r\")\n\t\t} else {\n\t\t\tfor _, r := range rawcell.Is.R {\n\t\t\t\tcell.Value += r.T\n\t\t\t}\n\t\t}\n\t}\n}\n\n// readRowsFromSheet is an internal helper function that extracts the\n// rows from a XSLXWorksheet, populates them with Cells and resolves\n// the value references from the reference table and stores them in\n// the rows and columns.\nfunc readRowsFromSheet(Worksheet *xlsxWorksheet, file *File, sheet *Sheet, rowLimit int) ([]*Row, []*Col, int, int) {\n\tvar rows []*Row\n\tvar cols []*Col\n\tvar row *Row\n\tvar minCol, maxCol, maxRow, colCount, rowCount int\n\tvar reftable *RefTable\n\tvar err error\n\tvar insertRowIndex, insertColIndex int\n\tsharedFormulas := map[int]sharedFormula{}\n\n\tif len(Worksheet.SheetData.Row) == 0 {\n\t\treturn nil, nil, 0, 0\n\t}\n\treftable = file.referenceTable\n\tif len(Worksheet.Dimension.Ref) > 0 && len(strings.Split(Worksheet.Dimension.Ref, \":\")) == 2 && rowLimit == NoRowLimit {\n\t\tminCol, _, maxCol, maxRow, err = getMaxMinFromDimensionRef(Worksheet.Dimension.Ref)\n\t} else {\n\t\tminCol, _, maxCol, maxRow, err = calculateMaxMinFromWorksheet(Worksheet)\n\t}\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\trowCount = maxRow + 1\n\tcolCount = maxCol + 1\n\trows = make([]*Row, rowCount)\n\tcols = make([]*Col, colCount)\n\tfor i := range cols {\n\t\tcols[i] = &Col{\n\t\t\tHidden: false,\n\t\t}\n\t}\n\n\tif Worksheet.Cols != nil {\n\t\t// Columns can apply to a range, for convenience we expand the\n\t\t// ranges out into individual column definitions.\n\t\tfor _, rawcol := range Worksheet.Cols.Col {\n\t\t\t// Note, below, that sometimes column definitions can\n\t\t\t// exist outside the defined dimensions of the\n\t\t\t// spreadsheet - we deliberately exclude these\n\t\t\t// columns.\n\t\t\tfor i := rawcol.Min; i <= rawcol.Max && i <= colCount; i++ {\n\t\t\t\tcol := &Col{\n\t\t\t\t\tMin:          rawcol.Min,\n\t\t\t\t\tMax:          rawcol.Max,\n\t\t\t\t\tHidden:       rawcol.Hidden,\n\t\t\t\t\tWidth:        rawcol.Width,\n\t\t\t\t\tOutlineLevel: rawcol.OutlineLevel}\n\t\t\t\tcols[i-1] = col\n\t\t\t\tif file.styles != nil {\n\t\t\t\t\tcol.style = file.styles.getStyle(rawcol.Style)\n\t\t\t\t\tcol.numFmt, col.parsedNumFmt = file.styles.getNumberFormat(rawcol.Style)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tnumRows := len(rows)\n\tfor rowIndex := 0; rowIndex < len(Worksheet.SheetData.Row); rowIndex++ {\n\t\trawrow := Worksheet.SheetData.Row[rowIndex]\n\t\t// Some spreadsheets will omit blank rows from the\n\t\t// stored data\n\t\tfor rawrow.R > (insertRowIndex + 1) {\n\t\t\t// Put an empty Row into the array\n\t\t\tif insertRowIndex < numRows {\n\t\t\t\trows[insertRowIndex] = makeEmptyRow(sheet)\n\t\t\t}\n\t\t\tinsertRowIndex++\n\t\t}\n\t\t// range is not empty and only one range exist\n\t\tif len(rawrow.Spans) != 0 && strings.Count(rawrow.Spans, \":\") == 1 {\n\t\t\trow = makeRowFromSpan(rawrow.Spans, sheet)\n\t\t} else {\n\t\t\trow = makeRowFromRaw(rawrow, sheet)\n\t\t}\n\n\t\trow.Hidden = rawrow.Hidden\n\t\theight, err := strconv.ParseFloat(rawrow.Ht, 64)\n\t\tif err == nil {\n\t\t\trow.Height = height\n\t\t}\n\t\trow.isCustom = rawrow.CustomHeight\n\t\trow.OutlineLevel = rawrow.OutlineLevel\n\n\t\tinsertColIndex = minCol\n\t\tfor _, rawcell := range rawrow.C {\n\t\t\th, v, err := Worksheet.MergeCells.getExtent(rawcell.R)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err.Error())\n\t\t\t}\n\t\t\tx, _, _ := GetCoordsFromCellIDString(rawcell.R)\n\n\t\t\t// K1000000: Prevent panic when the range specified in the spreadsheet\n\t\t\t//           view exceeds the actual number of columns in the dataset.\n\n\t\t\t// Some spreadsheets will omit blank cells\n\t\t\t// from the data.\n\t\t\tfor x > insertColIndex {\n\t\t\t\t// Put an empty Cell into the array\n\t\t\t\tif insertColIndex < len(row.Cells) {\n\t\t\t\t\trow.Cells[insertColIndex] = new(Cell)\n\t\t\t\t}\n\t\t\t\tinsertColIndex++\n\t\t\t}\n\t\t\tcellX := insertColIndex\n\n\t\t\tif cellX < len(row.Cells) {\n\t\t\t\tcell := row.Cells[cellX]\n\t\t\t\tcell.HMerge = h\n\t\t\t\tcell.VMerge = v\n\t\t\t\tfillCellData(rawcell, reftable, sharedFormulas, cell)\n\t\t\t\tif file.styles != nil {\n\t\t\t\t\tcell.style = file.styles.getStyle(rawcell.S)\n\t\t\t\t\tcell.NumFmt, cell.parsedNumFmt = file.styles.getNumberFormat(rawcell.S)\n\t\t\t\t}\n\t\t\t\tcell.date1904 = file.Date1904\n\t\t\t\t// Cell is considered hidden if the row or the column of this cell is hidden\n\t\t\t\tcell.Hidden = rawrow.Hidden || (len(cols) > cellX && cols[cellX].Hidden)\n\t\t\t\tinsertColIndex++\n\t\t\t}\n\t\t}\n\t\tif len(rows) > insertRowIndex {\n\t\t\trows[insertRowIndex] = row\n\t\t}\n\t\tinsertRowIndex++\n\t}\n\n\t// insert trailing empty rows for the rest of the file\n\tfor ; insertRowIndex < rowCount; insertRowIndex++ {\n\t\trows[insertRowIndex] = makeEmptyRow(sheet)\n\t}\n\treturn rows, cols, colCount, rowCount\n}\n\ntype indexedSheet struct {\n\tIndex int\n\tSheet *Sheet\n\tError error\n}\n\nfunc readSheetViews(xSheetViews xlsxSheetViews) []SheetView {\n\tif xSheetViews.SheetView == nil || len(xSheetViews.SheetView) == 0 {\n\t\treturn nil\n\t}\n\tsheetViews := []SheetView{}\n\tfor _, xSheetView := range xSheetViews.SheetView {\n\t\tsheetView := SheetView{}\n\t\tif xSheetView.Pane != nil {\n\t\t\txlsxPane := xSheetView.Pane\n\t\t\tpane := &Pane{}\n\t\t\tpane.XSplit = xlsxPane.XSplit\n\t\t\tpane.YSplit = xlsxPane.YSplit\n\t\t\tpane.TopLeftCell = xlsxPane.TopLeftCell\n\t\t\tpane.ActivePane = xlsxPane.ActivePane\n\t\t\tpane.State = xlsxPane.State\n\t\t\tsheetView.Pane = pane\n\t\t}\n\t\tsheetViews = append(sheetViews, sheetView)\n\t}\n\treturn sheetViews\n}\n\n// readSheetFromFile is the logic of converting a xlsxSheet struct\n// into a Sheet struct.  This work can be done in parallel and so\n// readSheetsFromZipFile will spawn an instance of this function per\n// sheet and get the results back on the provided channel.\nfunc readSheetFromFile(sc chan *indexedSheet, index int, rsheet xlsxSheet, fi *File, sheetXMLMap map[string]string, rowLimit int) (errRes error) {\n\tresult := &indexedSheet{Index: index, Sheet: nil, Error: nil}\n\tdefer func() {\n\t\tif e := recover(); e != nil {\n\t\t\tswitch e.(type) {\n\t\t\tcase error:\n\t\t\t\tresult.Error = e.(error)\n\t\t\t\terrRes = e.(error)\n\t\t\tdefault:\n\t\t\t\tresult.Error = errors.New(\"unexpected error\")\n\t\t\t}\n\t\t\t// The only thing here, is if one close the channel. but its not the case\n\t\t\tsc <- result\n\t\t}\n\t}()\n\n\tworksheet, err := getWorksheetFromSheet(rsheet, fi.worksheets, sheetXMLMap, rowLimit)\n\tif err != nil {\n\t\tresult.Error = err\n\t\tsc <- result\n\t\treturn err\n\t}\n\tsheet := new(Sheet)\n\tsheet.File = fi\n\tsheet.Rows, sheet.Cols, sheet.MaxCol, sheet.MaxRow = readRowsFromSheet(worksheet, fi, sheet, rowLimit)\n\tsheet.Hidden = rsheet.State == sheetStateHidden || rsheet.State == sheetStateVeryHidden\n\tsheet.SheetViews = readSheetViews(worksheet.SheetViews)\n\n\tsheet.SheetFormat.DefaultColWidth = worksheet.SheetFormatPr.DefaultColWidth\n\tsheet.SheetFormat.DefaultRowHeight = worksheet.SheetFormatPr.DefaultRowHeight\n\tsheet.SheetFormat.OutlineLevelCol = worksheet.SheetFormatPr.OutlineLevelCol\n\tsheet.SheetFormat.OutlineLevelRow = worksheet.SheetFormatPr.OutlineLevelRow\n\n\tresult.Sheet = sheet\n\tsc <- result\n\treturn nil\n}\n\n// readSheetsFromZipFile is an internal helper function that loops\n// over the Worksheets defined in the XSLXWorkbook and loads them into\n// Sheet objects stored in the Sheets slice of a xlsx.File struct.\nfunc readSheetsFromZipFile(f *zip.File, file *File, sheetXMLMap map[string]string, rowLimit int) (map[string]*Sheet, []*Sheet, error) {\n\tvar workbook *xlsxWorkbook\n\tvar err error\n\tvar rc io.ReadCloser\n\tvar decoder *xml.Decoder\n\tvar sheetCount int\n\tworkbook = new(xlsxWorkbook)\n\trc, err = f.Open()\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tdecoder = xml.NewDecoder(rc)\n\terr = decoder.Decode(workbook)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tfile.Date1904 = workbook.WorkbookPr.Date1904\n\n\tfor entryNum := range workbook.DefinedNames.DefinedName {\n\t\tfile.DefinedNames = append(file.DefinedNames, &workbook.DefinedNames.DefinedName[entryNum])\n\t}\n\n\t// Only try and read sheets that have corresponding files.\n\t// Notably this excludes chartsheets don't right now\n\tvar workbookSheets []xlsxSheet\n\tfor _, sheet := range workbook.Sheets.Sheet {\n\t\tif f := worksheetFileForSheet(sheet, file.worksheets, sheetXMLMap); f != nil {\n\t\t\tworkbookSheets = append(workbookSheets, sheet)\n\t\t}\n\t}\n\tsheetCount = len(workbookSheets)\n\tsheetsByName := make(map[string]*Sheet, sheetCount)\n\tsheets := make([]*Sheet, sheetCount)\n\tsheetChan := make(chan *indexedSheet, sheetCount)\n\n\tgo func() {\n\t\tdefer close(sheetChan)\n\t\terr = nil\n\t\tfor i, rawsheet := range workbookSheets {\n\t\t\tif err := readSheetFromFile(sheetChan, i, rawsheet, file, sheetXMLMap, rowLimit); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\tfor j := 0; j < sheetCount; j++ {\n\t\tsheet := <-sheetChan\n\t\tif sheet.Error != nil {\n\t\t\treturn nil, nil, sheet.Error\n\t\t}\n\t\tsheetName := workbookSheets[sheet.Index].Name\n\t\tsheetsByName[sheetName] = sheet.Sheet\n\t\tsheet.Sheet.Name = sheetName\n\t\tsheets[sheet.Index] = sheet.Sheet\n\t}\n\treturn sheetsByName, sheets, nil\n}\n\n// readSharedStringsFromZipFile() is an internal helper function to\n// extract a reference table from the sharedStrings.xml file within\n// the XLSX zip file.\nfunc readSharedStringsFromZipFile(f *zip.File) (*RefTable, error) {\n\tvar sst *xlsxSST\n\tvar error error\n\tvar rc io.ReadCloser\n\tvar decoder *xml.Decoder\n\tvar reftable *RefTable\n\n\t// In a file with no strings it's possible that\n\t// sharedStrings.xml doesn't exist.  In this case the value\n\t// passed as f will be nil.\n\tif f == nil {\n\t\treturn nil, nil\n\t}\n\trc, error = f.Open()\n\tif error != nil {\n\t\treturn nil, error\n\t}\n\tsst = new(xlsxSST)\n\tdecoder = xml.NewDecoder(rc)\n\terror = decoder.Decode(sst)\n\tif error != nil {\n\t\treturn nil, error\n\t}\n\treftable = MakeSharedStringRefTable(sst)\n\treturn reftable, nil\n}\n\n// readStylesFromZipFile() is an internal helper function to\n// extract a style table from the style.xml file within\n// the XLSX zip file.\nfunc readStylesFromZipFile(f *zip.File, theme *theme) (*xlsxStyleSheet, error) {\n\tvar style *xlsxStyleSheet\n\tvar error error\n\tvar rc io.ReadCloser\n\tvar decoder *xml.Decoder\n\trc, error = f.Open()\n\tif error != nil {\n\t\treturn nil, error\n\t}\n\tstyle = newXlsxStyleSheet(theme)\n\tdecoder = xml.NewDecoder(rc)\n\terror = decoder.Decode(style)\n\tif error != nil {\n\t\treturn nil, error\n\t}\n\tbuildNumFmtRefTable(style)\n\treturn style, nil\n}\n\nfunc buildNumFmtRefTable(style *xlsxStyleSheet) {\n\tfor _, numFmt := range style.NumFmts.NumFmt {\n\t\t// We do this for the side effect of populating the NumFmtRefTable.\n\t\tstyle.addNumFmt(numFmt)\n\t}\n}\n\nfunc readThemeFromZipFile(f *zip.File) (*theme, error) {\n\trc, err := f.Open()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar themeXml xlsxTheme\n\terr = xml.NewDecoder(rc).Decode(&themeXml)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn newTheme(themeXml), nil\n}\n\ntype WorkBookRels map[string]string\n\nfunc (w *WorkBookRels) MakeXLSXWorkbookRels() xlsxWorkbookRels {\n\trelCount := len(*w)\n\txWorkbookRels := xlsxWorkbookRels{}\n\txWorkbookRels.Relationships = make([]xlsxWorkbookRelation, relCount+3)\n\tfor k, v := range *w {\n\t\tindex, err := strconv.Atoi(k[3:])\n\t\tif err != nil {\n\t\t\tpanic(err.Error())\n\t\t}\n\t\txWorkbookRels.Relationships[index-1] = xlsxWorkbookRelation{\n\t\t\tId:     k,\n\t\t\tTarget: v,\n\t\t\tType:   \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\"}\n\t}\n\n\trelCount++\n\tsheetId := fmt.Sprintf(\"rId%d\", relCount)\n\txWorkbookRels.Relationships[relCount-1] = xlsxWorkbookRelation{\n\t\tId:     sheetId,\n\t\tTarget: \"sharedStrings.xml\",\n\t\tType:   \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\"}\n\n\trelCount++\n\tsheetId = fmt.Sprintf(\"rId%d\", relCount)\n\txWorkbookRels.Relationships[relCount-1] = xlsxWorkbookRelation{\n\t\tId:     sheetId,\n\t\tTarget: \"theme/theme1.xml\",\n\t\tType:   \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\"}\n\n\trelCount++\n\tsheetId = fmt.Sprintf(\"rId%d\", relCount)\n\txWorkbookRels.Relationships[relCount-1] = xlsxWorkbookRelation{\n\t\tId:     sheetId,\n\t\tTarget: \"styles.xml\",\n\t\tType:   \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\"}\n\n\treturn xWorkbookRels\n}\n\n// readWorkbookRelationsFromZipFile is an internal helper function to\n// extract a map of relationship ID strings to the name of the\n// worksheet.xml file they refer to.  The resulting map can be used to\n// reliably derefence the worksheets in the XLSX file.\nfunc readWorkbookRelationsFromZipFile(workbookRels *zip.File) (WorkBookRels, error) {\n\tvar sheetXMLMap WorkBookRels\n\tvar wbRelationships *xlsxWorkbookRels\n\tvar rc io.ReadCloser\n\tvar decoder *xml.Decoder\n\tvar err error\n\n\trc, err = workbookRels.Open()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdecoder = xml.NewDecoder(rc)\n\twbRelationships = new(xlsxWorkbookRels)\n\terr = decoder.Decode(wbRelationships)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsheetXMLMap = make(WorkBookRels)\n\tfor _, rel := range wbRelationships.Relationships {\n\t\tif strings.HasSuffix(rel.Target, \".xml\") && rel.Type == \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" {\n\t\t\t_, filename := path.Split(rel.Target)\n\t\t\tsheetXMLMap[rel.Id] = strings.Replace(filename, \".xml\", \"\", 1)\n\t\t}\n\t}\n\treturn sheetXMLMap, nil\n}\n\n// ReadZip() takes a pointer to a zip.ReadCloser and returns a\n// xlsx.File struct populated with its contents.  In most cases\n// ReadZip is not used directly, but is called internally by OpenFile.\nfunc ReadZip(f *zip.ReadCloser) (*File, error) {\n\treturn ReadZipWithRowLimit(f, NoRowLimit)\n}\n\n// ReadZipWithRowLimit() takes a pointer to a zip.ReadCloser and returns a\n// xlsx.File struct populated with its contents.  In most cases\n// ReadZip is not used directly, but is called internally by OpenFile.\nfunc ReadZipWithRowLimit(f *zip.ReadCloser, rowLimit int) (*File, error) {\n\tdefer f.Close()\n\treturn ReadZipReaderWithRowLimit(&f.Reader, rowLimit)\n}\n\n// ReadZipReader() can be used to read an XLSX in memory without\n// touching the filesystem.\nfunc ReadZipReader(r *zip.Reader) (*File, error) {\n\treturn ReadZipReaderWithRowLimit(r, NoRowLimit)\n}\n\n// ReadZipReaderWithRowLimit() can be used to read an XLSX in memory without\n// touching the filesystem.\n// rowLimit is the number of rows that should be read from the file. If rowLimit is -1, no limit is applied.\n// You can specify this with the constant NoRowLimit.\nfunc ReadZipReaderWithRowLimit(r *zip.Reader, rowLimit int) (*File, error) {\n\tvar err error\n\tvar file *File\n\tvar reftable *RefTable\n\tvar sharedStrings *zip.File\n\tvar sheetXMLMap map[string]string\n\tvar sheetsByName map[string]*Sheet\n\tvar sheets []*Sheet\n\tvar style *xlsxStyleSheet\n\tvar styles *zip.File\n\tvar themeFile *zip.File\n\tvar v *zip.File\n\tvar workbook *zip.File\n\tvar workbookRels *zip.File\n\tvar worksheets map[string]*zip.File\n\n\tfile = NewFile()\n\t// file.numFmtRefTable = make(map[int]xlsxNumFmt, 1)\n\tworksheets = make(map[string]*zip.File, len(r.File))\n\tfor _, v = range r.File {\n\t\tswitch v.Name {\n\t\tcase \"xl/sharedStrings.xml\":\n\t\t\tsharedStrings = v\n\t\tcase \"xl/workbook.xml\":\n\t\t\tworkbook = v\n\t\tcase \"xl/_rels/workbook.xml.rels\":\n\t\t\tworkbookRels = v\n\t\tcase \"xl/styles.xml\":\n\t\t\tstyles = v\n\t\tcase \"xl/theme/theme1.xml\":\n\t\t\tthemeFile = v\n\t\tdefault:\n\t\t\tif len(v.Name) > 17 {\n\t\t\t\tif v.Name[0:13] == \"xl/worksheets\" {\n\t\t\t\t\tworksheets[v.Name[14:len(v.Name)-4]] = v\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif workbookRels == nil {\n\t\treturn nil, fmt.Errorf(\"xl/_rels/workbook.xml.rels not found in input xlsx.\")\n\t}\n\tsheetXMLMap, err = readWorkbookRelationsFromZipFile(workbookRels)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(worksheets) == 0 {\n\t\treturn nil, fmt.Errorf(\"Input xlsx contains no worksheets.\")\n\t}\n\tfile.worksheets = worksheets\n\treftable, err = readSharedStringsFromZipFile(sharedStrings)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfile.referenceTable = reftable\n\tif themeFile != nil {\n\t\ttheme, err := readThemeFromZipFile(themeFile)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfile.theme = theme\n\t}\n\tif styles != nil {\n\t\tstyle, err = readStylesFromZipFile(styles, file.theme)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfile.styles = style\n\t}\n\tsheetsByName, sheets, err = readSheetsFromZipFile(workbook, file, sheetXMLMap, rowLimit)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif sheets == nil {\n\t\treaderErr := new(XLSXReaderError)\n\t\treaderErr.Err = \"No sheets found in XLSX File\"\n\t\treturn nil, readerErr\n\t}\n\tfile.Sheet = sheetsByName\n\tfile.Sheets = sheets\n\treturn file, nil\n}\n\n// truncateSheetXML will take in a reader to an XML sheet file and will return a reader that will read an equivalent\n// XML sheet file with only the number of rows specified. This greatly speeds up XML unmarshalling when only\n// a few rows need to be read from a large sheet.\n// When sheets are truncated, all formatting present after the sheetData tag will be lost, but all of this formatting\n// is related to printing and visibility, and is out of scope for most purposes of this library.\nfunc truncateSheetXML(r io.Reader, rowLimit int) (io.Reader, error) {\n\tvar rowCount int\n\tvar token xml.Token\n\tvar readErr error\n\n\toutput := new(bytes.Buffer)\n\tr = io.TeeReader(r, output)\n\tdecoder := xml.NewDecoder(r)\n\n\tfor {\n\t\ttoken, readErr = decoder.Token()\n\t\tif readErr == io.EOF {\n\t\t\tbreak\n\t\t} else if readErr != nil {\n\t\t\treturn nil, readErr\n\t\t}\n\t\tend, ok := token.(xml.EndElement)\n\t\tif ok && end.Name.Local == \"row\" {\n\t\t\trowCount++\n\t\t\tif rowCount >= rowLimit {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\toffset := decoder.InputOffset()\n\toutput.Truncate(int(offset))\n\n\tif readErr != io.EOF {\n\t\t_, err := output.Write([]byte(sheetEnding))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn output, nil\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/read.go",
    "content": "package xlsx\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\nvar (\n\terrNilInterface     = errors.New(\"nil pointer is not a valid argument\")\n\terrNotStructPointer = errors.New(\"argument must be a pointer to struct\")\n\terrInvalidTag       = errors.New(`invalid tag: must have the format xlsx:idx`)\n)\n\n//XLSXUnmarshaler is the interface implemented for types that can unmarshal a Row\n//as a representation of themselves.\ntype XLSXUnmarshaler interface {\n\tUnmarshal(*Row) error\n}\n\n//ReadStruct reads a struct from r to ptr. Accepts a ptr\n//to struct. This code expects a tag xlsx:\"N\", where N is the index\n//of the cell to be used. Basic types like int,string,float64 and bool\n//are supported\nfunc (r *Row) ReadStruct(ptr interface{}) error {\n\tif ptr == nil {\n\t\treturn errNilInterface\n\t}\n\t//check if the type implements XLSXUnmarshaler. If so,\n\t//just let it do the work.\n\tunmarshaller, ok := ptr.(XLSXUnmarshaler)\n\tif ok {\n\t\treturn unmarshaller.Unmarshal(r)\n\t}\n\tv := reflect.ValueOf(ptr)\n\tif v.Kind() != reflect.Ptr {\n\t\treturn errNotStructPointer\n\t}\n\tv = v.Elem()\n\tif v.Kind() != reflect.Struct {\n\t\treturn errNotStructPointer\n\t}\n\tn := v.NumField()\n\tfor i := 0; i < n; i++ {\n\t\tfield := v.Type().Field(i)\n\t\tidx := field.Tag.Get(\"xlsx\")\n\t\t//do a recursive check for the field if it is a struct or a pointer\n\t\t//even if it doesn't have a tag\n\t\t//ignore if it has a - or empty tag\n\t\tisTime := false\n\t\tswitch {\n\t\tcase idx == \"-\":\n\t\t\tcontinue\n\t\tcase field.Type.Kind() == reflect.Ptr || field.Type.Kind() == reflect.Struct:\n\t\t\tvar structPtr interface{}\n\t\t\tif !v.Field(i).CanSet() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif field.Type.Kind() == reflect.Struct {\n\t\t\t\tstructPtr = v.Field(i).Addr().Interface()\n\t\t\t} else {\n\t\t\t\tstructPtr = v.Field(i).Interface()\n\t\t\t}\n\t\t\t//check if the container is a time.Time\n\t\t\t_, isTime = structPtr.(*time.Time)\n\t\t\tif isTime {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\terr := r.ReadStruct(structPtr)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\tcase len(idx) == 0:\n\t\t\tcontinue\n\t\t}\n\t\tpos, err := strconv.Atoi(idx)\n\t\tif err != nil {\n\t\t\treturn errInvalidTag\n\t\t}\n\n\t\t//check if desired position is not out of bounds\n\t\tif pos > len(r.Cells)-1 {\n\t\t\tcontinue\n\t\t}\n\t\tcell := r.Cells[pos]\n\t\tfieldV := v.Field(i)\n\t\t//continue if the field is not settable\n\t\tif !fieldV.CanSet() {\n\t\t\tcontinue\n\t\t}\n\t\tif isTime {\n\t\t\tt, err := cell.GetTime(false)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif field.Type.Kind() == reflect.Ptr {\n\t\t\t\tfieldV.Set(reflect.ValueOf(&t))\n\t\t\t} else {\n\t\t\t\tfieldV.Set(reflect.ValueOf(t))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch field.Type.Kind() {\n\t\tcase reflect.String:\n\t\t\tvalue, err := cell.FormattedValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfieldV.SetString(value)\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\tvalue, err := cell.Int64()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfieldV.SetInt(value)\n\t\tcase reflect.Float64:\n\t\t\tvalue, err := cell.Float()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfieldV.SetFloat(value)\n\t\tcase reflect.Bool:\n\t\t\tvalue := cell.Bool()\n\t\t\tfieldV.SetBool(value)\n\t\t}\n\t}\n\tvalue := v.Interface()\n\tptr = &value\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/reftable.go",
    "content": "package xlsx\n\ntype RefTable struct {\n\tindexedStrings []string\n\tknownStrings   map[string]int\n\tisWrite        bool\n}\n\n// NewSharedStringRefTable() creates a new, empty RefTable.\nfunc NewSharedStringRefTable() *RefTable {\n\trt := RefTable{}\n\trt.knownStrings = make(map[string]int)\n\treturn &rt\n}\n\n// MakeSharedStringRefTable() takes an xlsxSST struct and converts\n// it's contents to an slice of strings used to refer to string values\n// by numeric index - this is the model used within XLSX worksheet (a\n// numeric reference is stored to a shared cell value).\nfunc MakeSharedStringRefTable(source *xlsxSST) *RefTable {\n\treftable := NewSharedStringRefTable()\n\treftable.isWrite = false\n\tfor _, si := range source.SI {\n\t\tif len(si.R) > 0 {\n\t\t\tnewString := \"\"\n\t\t\tfor j := 0; j < len(si.R); j++ {\n\t\t\t\tnewString = newString + si.R[j].T\n\t\t\t}\n\t\t\treftable.AddString(newString)\n\t\t} else {\n\t\t\treftable.AddString(si.T)\n\t\t}\n\t}\n\treturn reftable\n}\n\n// makeXlsxSST() takes a RefTable and returns and\n// equivalent xlsxSST representation.\nfunc (rt *RefTable) makeXLSXSST() xlsxSST {\n\tsst := xlsxSST{}\n\tsst.Count = len(rt.indexedStrings)\n\tsst.UniqueCount = sst.Count\n\tfor _, ref := range rt.indexedStrings {\n\t\tsi := xlsxSI{}\n\t\tsi.T = ref\n\t\tsst.SI = append(sst.SI, si)\n\t}\n\treturn sst\n}\n\n// Resolvesharedstring() looks up a string value by numeric index from\n// a provided reference table (just a slice of strings in the correct\n// order).  This function only exists to provide clarity or purpose\n// via it's name.\nfunc (rt *RefTable) ResolveSharedString(index int) string {\n\treturn rt.indexedStrings[index]\n}\n\n// AddString adds a string to the reference table and return it's\n// numeric index.  If the string already exists then it simply returns\n// the existing index.\nfunc (rt *RefTable) AddString(str string) int {\n\tif rt.isWrite {\n\t\tindex, ok := rt.knownStrings[str]\n\t\tif ok {\n\t\t\treturn index\n\t\t}\n\t}\n\trt.indexedStrings = append(rt.indexedStrings, str)\n\tindex := len(rt.indexedStrings) - 1\n\trt.knownStrings[str] = index\n\treturn index\n}\n\nfunc (rt *RefTable) Length() int {\n\treturn len(rt.indexedStrings)\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/row.go",
    "content": "package xlsx\n\ntype Row struct {\n\tCells        []*Cell\n\tHidden       bool\n\tSheet        *Sheet\n\tHeight       float64\n\tOutlineLevel uint8\n\tisCustom     bool\n}\n\nfunc (r *Row) SetHeight(ht float64) {\n\tr.Height = ht\n\tr.isCustom = true\n}\n\nfunc (r *Row) SetHeightCM(ht float64) {\n\tr.Height = ht * 28.3464567 // Convert CM to postscript points\n\tr.isCustom = true\n}\n\nfunc (r *Row) AddCell() *Cell {\n\tcell := NewCell(r)\n\tr.Cells = append(r.Cells, cell)\n\tr.Sheet.maybeAddCol(len(r.Cells))\n\treturn cell\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/sheet.go",
    "content": "package xlsx\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Sheet is a high level structure intended to provide user access to\n// the contents of a particular sheet within an XLSX file.\ntype Sheet struct {\n\tName        string\n\tFile        *File\n\tRows        []*Row\n\tCols        []*Col\n\tMaxRow      int\n\tMaxCol      int\n\tHidden      bool\n\tSelected    bool\n\tSheetViews  []SheetView\n\tSheetFormat SheetFormat\n\tAutoFilter  *AutoFilter\n}\n\ntype SheetView struct {\n\tPane *Pane\n}\n\ntype Pane struct {\n\tXSplit      float64\n\tYSplit      float64\n\tTopLeftCell string\n\tActivePane  string\n\tState       string // Either \"split\" or \"frozen\"\n}\n\ntype SheetFormat struct {\n\tDefaultColWidth  float64\n\tDefaultRowHeight float64\n\tOutlineLevelCol  uint8\n\tOutlineLevelRow  uint8\n}\n\ntype AutoFilter struct {\n\tTopLeftCell     string\n\tBottomRightCell string\n}\n\n// Add a new Row to a Sheet\nfunc (s *Sheet) AddRow() *Row {\n\trow := &Row{Sheet: s}\n\ts.Rows = append(s.Rows, row)\n\tif len(s.Rows) > s.MaxRow {\n\t\ts.MaxRow = len(s.Rows)\n\t}\n\treturn row\n}\n\n// Make sure we always have as many Cols as we do cells.\nfunc (s *Sheet) maybeAddCol(cellCount int) {\n\tif cellCount > s.MaxCol {\n\t\tcol := &Col{\n\t\t\tstyle:     NewStyle(),\n\t\t\tMin:       cellCount,\n\t\t\tMax:       cellCount,\n\t\t\tHidden:    false,\n\t\t\tCollapsed: false}\n\t\ts.Cols = append(s.Cols, col)\n\t\ts.MaxCol = cellCount\n\t}\n}\n\n// Make sure we always have as many Cols as we do cells.\nfunc (s *Sheet) Col(idx int) *Col {\n\ts.maybeAddCol(idx + 1)\n\treturn s.Cols[idx]\n}\n\n// Get a Cell by passing it's cartesian coordinates (zero based) as\n// row and column integer indexes.\n//\n// For example:\n//\n//    cell := sheet.Cell(0,0)\n//\n// ... would set the variable \"cell\" to contain a Cell struct\n// containing the data from the field \"A1\" on the spreadsheet.\nfunc (sh *Sheet) Cell(row, col int) *Cell {\n\n\t// If the user requests a row beyond what we have, then extend.\n\tfor len(sh.Rows) <= row {\n\t\tsh.AddRow()\n\t}\n\n\tr := sh.Rows[row]\n\tfor len(r.Cells) <= col {\n\t\tr.AddCell()\n\t}\n\n\treturn r.Cells[col]\n}\n\n//Set the width of a single column or multiple columns.\nfunc (s *Sheet) SetColWidth(startcol, endcol int, width float64) error {\n\tif startcol > endcol {\n\t\treturn fmt.Errorf(\"Could not set width for range %d-%d: startcol must be less than endcol.\", startcol, endcol)\n\t}\n\tcol := &Col{\n\t\tstyle:     NewStyle(),\n\t\tMin:       startcol + 1,\n\t\tMax:       endcol + 1,\n\t\tHidden:    false,\n\t\tCollapsed: false,\n\t\tWidth:     width}\n\ts.Cols = append(s.Cols, col)\n\tif endcol+1 > s.MaxCol {\n\t\ts.MaxCol = endcol + 1\n\t}\n\treturn nil\n}\n\n// When merging cells, the cell may be the 'original' or the 'covered'.\n// First, figure out which cells are merge starting points. Then create\n// the necessary cells underlying the merge area.\n// Then go through all the underlying cells and apply the appropriate\n// border, based on the original cell.\nfunc (s *Sheet) handleMerged() {\n\tmerged := make(map[string]*Cell)\n\n\tfor r, row := range s.Rows {\n\t\tfor c, cell := range row.Cells {\n\t\t\tif cell.HMerge > 0 || cell.VMerge > 0 {\n\t\t\t\tcoord := GetCellIDStringFromCoords(c, r)\n\t\t\t\tmerged[coord] = cell\n\t\t\t}\n\t\t}\n\t}\n\n\t// This loop iterates over all cells that should be merged and applies the correct\n\t// borders to them depending on their position. If any cells required by the merge\n\t// are missing, they will be allocated by s.Cell().\n\tfor key, cell := range merged {\n\t\tmainstyle := cell.GetStyle()\n\n\t\ttop := mainstyle.Border.Top\n\t\tleft := mainstyle.Border.Left\n\t\tright := mainstyle.Border.Right\n\t\tbottom := mainstyle.Border.Bottom\n\n\t\t// When merging cells, the upper left cell does not maintain\n\t\t// the original borders\n\t\tmainstyle.Border.Top = \"none\"\n\t\tmainstyle.Border.Left = \"none\"\n\t\tmainstyle.Border.Right = \"none\"\n\t\tmainstyle.Border.Bottom = \"none\"\n\n\t\tmaincol, mainrow, _ := GetCoordsFromCellIDString(key)\n\t\tfor rownum := 0; rownum <= cell.VMerge; rownum++ {\n\t\t\tfor colnum := 0; colnum <= cell.HMerge; colnum++ {\n\t\t\t\ttmpcell := s.Cell(mainrow+rownum, maincol+colnum)\n\t\t\t\tstyle := tmpcell.GetStyle()\n\t\t\t\tstyle.ApplyBorder = true\n\n\t\t\t\tif rownum == 0 {\n\t\t\t\t\tstyle.Border.Top = top\n\t\t\t\t}\n\n\t\t\t\tif rownum == (cell.VMerge) {\n\t\t\t\t\tstyle.Border.Bottom = bottom\n\t\t\t\t}\n\n\t\t\t\tif colnum == 0 {\n\t\t\t\t\tstyle.Border.Left = left\n\t\t\t\t}\n\n\t\t\t\tif colnum == (cell.HMerge) {\n\t\t\t\t\tstyle.Border.Right = right\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Dump sheet to its XML representation, intended for internal use only\nfunc (s *Sheet) makeXLSXSheet(refTable *RefTable, styles *xlsxStyleSheet) *xlsxWorksheet {\n\tworksheet := newXlsxWorksheet()\n\txSheet := xlsxSheetData{}\n\tmaxRow := 0\n\tmaxCell := 0\n\tvar maxLevelCol, maxLevelRow uint8\n\n\t// Scan through the sheet and see if there are any merged cells. If there\n\t// are, we may need to extend the size of the sheet. There needs to be\n\t// phantom cells underlying the area covered by the merged cell\n\ts.handleMerged()\n\n\tfor index, sheetView := range s.SheetViews {\n\t\tif sheetView.Pane != nil {\n\t\t\tworksheet.SheetViews.SheetView[index].Pane = &xlsxPane{\n\t\t\t\tXSplit:      sheetView.Pane.XSplit,\n\t\t\t\tYSplit:      sheetView.Pane.YSplit,\n\t\t\t\tTopLeftCell: sheetView.Pane.TopLeftCell,\n\t\t\t\tActivePane:  sheetView.Pane.ActivePane,\n\t\t\t\tState:       sheetView.Pane.State,\n\t\t\t}\n\n\t\t}\n\t}\n\n\tif s.Selected {\n\t\tworksheet.SheetViews.SheetView[0].TabSelected = true\n\t}\n\n\tif s.SheetFormat.DefaultRowHeight != 0 {\n\t\tworksheet.SheetFormatPr.DefaultRowHeight = s.SheetFormat.DefaultRowHeight\n\t}\n\tworksheet.SheetFormatPr.DefaultColWidth = s.SheetFormat.DefaultColWidth\n\n\tcolsXfIdList := make([]int, len(s.Cols))\n\tworksheet.Cols = &xlsxCols{Col: []xlsxCol{}}\n\tfor c, col := range s.Cols {\n\t\tXfId := 0\n\t\tif col.Min == 0 {\n\t\t\tcol.Min = 1\n\t\t}\n\t\tif col.Max == 0 {\n\t\t\tcol.Max = 1\n\t\t}\n\t\tstyle := col.GetStyle()\n\t\t//col's style always not nil\n\t\tif style != nil {\n\t\t\txNumFmt := styles.newNumFmt(col.numFmt)\n\t\t\tXfId = handleStyleForXLSX(style, xNumFmt.NumFmtId, styles)\n\t\t}\n\t\tcolsXfIdList[c] = XfId\n\n\t\tvar customWidth bool\n\t\tif col.Width == 0 {\n\t\t\tcol.Width = ColWidth\n\t\t\tcustomWidth = false\n\n\t\t} else {\n\t\t\tcustomWidth = true\n\t\t}\n\t\tworksheet.Cols.Col = append(worksheet.Cols.Col,\n\t\t\txlsxCol{Min: col.Min,\n\t\t\t\tMax:          col.Max,\n\t\t\t\tHidden:       col.Hidden,\n\t\t\t\tWidth:        col.Width,\n\t\t\t\tCustomWidth:  customWidth,\n\t\t\t\tCollapsed:    col.Collapsed,\n\t\t\t\tOutlineLevel: col.OutlineLevel,\n\t\t\t\tStyle:        XfId,\n\t\t\t})\n\n\t\tif col.OutlineLevel > maxLevelCol {\n\t\t\tmaxLevelCol = col.OutlineLevel\n\t\t}\n\t}\n\n\tfor r, row := range s.Rows {\n\t\tif r > maxRow {\n\t\t\tmaxRow = r\n\t\t}\n\t\txRow := xlsxRow{}\n\t\txRow.R = r + 1\n\t\tif row.isCustom {\n\t\t\txRow.CustomHeight = true\n\t\t\txRow.Ht = fmt.Sprintf(\"%g\", row.Height)\n\t\t}\n\t\txRow.OutlineLevel = row.OutlineLevel\n\t\tif row.OutlineLevel > maxLevelRow {\n\t\t\tmaxLevelRow = row.OutlineLevel\n\t\t}\n\t\tfor c, cell := range row.Cells {\n\t\t\tXfId := colsXfIdList[c]\n\n\t\t\t// generate NumFmtId and add new NumFmt\n\t\t\txNumFmt := styles.newNumFmt(cell.NumFmt)\n\n\t\t\tstyle := cell.style\n\t\t\tif style != nil {\n\t\t\t\tXfId = handleStyleForXLSX(style, xNumFmt.NumFmtId, styles)\n\t\t\t} else if len(cell.NumFmt) > 0 && !compareFormatString(s.Cols[c].numFmt, cell.NumFmt) {\n\t\t\t\tXfId = handleNumFmtIdForXLSX(xNumFmt.NumFmtId, styles)\n\t\t\t}\n\n\t\t\tif c > maxCell {\n\t\t\t\tmaxCell = c\n\t\t\t}\n\t\t\txC := xlsxC{\n\t\t\t\tS: XfId,\n\t\t\t\tR: GetCellIDStringFromCoords(c, r),\n\t\t\t}\n\t\t\tif cell.formula != \"\" {\n\t\t\t\txC.F = &xlsxF{Content: cell.formula}\n\t\t\t}\n\t\t\tswitch cell.cellType {\n\t\t\tcase CellTypeInline:\n\t\t\t\t// Inline strings are turned into shared strings since they are more efficient.\n\t\t\t\t// This is what Excel does as well.\n\t\t\t\tfallthrough\n\t\t\tcase CellTypeString:\n\t\t\t\tif len(cell.Value) > 0 {\n\t\t\t\t\txC.V = strconv.Itoa(refTable.AddString(cell.Value))\n\t\t\t\t}\n\t\t\t\txC.T = \"s\"\n\t\t\tcase CellTypeNumeric:\n\t\t\t\t// Numeric is the default, so the type can be left blank\n\t\t\t\txC.V = cell.Value\n\t\t\tcase CellTypeBool:\n\t\t\t\txC.V = cell.Value\n\t\t\t\txC.T = \"b\"\n\t\t\tcase CellTypeError:\n\t\t\t\txC.V = cell.Value\n\t\t\t\txC.T = \"e\"\n\t\t\tcase CellTypeDate:\n\t\t\t\txC.V = cell.Value\n\t\t\t\txC.T = \"d\"\n\t\t\tcase CellTypeStringFormula:\n\t\t\t\txC.V = cell.Value\n\t\t\t\txC.T = \"str\"\n\t\t\tdefault:\n\t\t\t\tpanic(errors.New(\"unknown cell type cannot be marshaled\"))\n\t\t\t}\n\n\t\t\txRow.C = append(xRow.C, xC)\n\n\t\t\tif cell.HMerge > 0 || cell.VMerge > 0 {\n\t\t\t\t// r == rownum, c == colnum\n\t\t\t\tmc := xlsxMergeCell{}\n\t\t\t\tstart := GetCellIDStringFromCoords(c, r)\n\t\t\t\tendCol := c + cell.HMerge\n\t\t\t\tendRow := r + cell.VMerge\n\t\t\t\tend := GetCellIDStringFromCoords(endCol, endRow)\n\t\t\t\tmc.Ref = start + \":\" + end\n\t\t\t\tif worksheet.MergeCells == nil {\n\t\t\t\t\tworksheet.MergeCells = &xlsxMergeCells{}\n\t\t\t\t}\n\t\t\t\tworksheet.MergeCells.Cells = append(worksheet.MergeCells.Cells, mc)\n\t\t\t}\n\t\t}\n\t\txSheet.Row = append(xSheet.Row, xRow)\n\t}\n\n\t// Update sheet format with the freshly determined max levels\n\ts.SheetFormat.OutlineLevelCol = maxLevelCol\n\ts.SheetFormat.OutlineLevelRow = maxLevelRow\n\t// .. and then also apply this to the xml worksheet\n\tworksheet.SheetFormatPr.OutlineLevelCol = s.SheetFormat.OutlineLevelCol\n\tworksheet.SheetFormatPr.OutlineLevelRow = s.SheetFormat.OutlineLevelRow\n\n\tif worksheet.MergeCells != nil {\n\t\tworksheet.MergeCells.Count = len(worksheet.MergeCells.Cells)\n\t}\n\n\tif s.AutoFilter != nil {\n\t\tworksheet.AutoFilter = &xlsxAutoFilter{Ref: fmt.Sprintf(\"%v:%v\", s.AutoFilter.TopLeftCell, s.AutoFilter.BottomRightCell)}\n\t}\n\n\tworksheet.SheetData = xSheet\n\tdimension := xlsxDimension{}\n\tdimension.Ref = \"A1:\" + GetCellIDStringFromCoords(maxCell, maxRow)\n\tif dimension.Ref == \"A1:A1\" {\n\t\tdimension.Ref = \"A1\"\n\t}\n\tworksheet.Dimension = dimension\n\treturn worksheet\n}\n\nfunc handleStyleForXLSX(style *Style, NumFmtId int, styles *xlsxStyleSheet) (XfId int) {\n\txFont, xFill, xBorder, xCellXf := style.makeXLSXStyleElements()\n\tfontId := styles.addFont(xFont)\n\tfillId := styles.addFill(xFill)\n\n\t// HACK - adding light grey fill, as in OO and Google\n\tgreyfill := xlsxFill{}\n\tgreyfill.PatternFill.PatternType = \"lightGray\"\n\tstyles.addFill(greyfill)\n\n\tborderId := styles.addBorder(xBorder)\n\txCellXf.FontId = fontId\n\txCellXf.FillId = fillId\n\txCellXf.BorderId = borderId\n\txCellXf.NumFmtId = NumFmtId\n\t// apply the numFmtId when it is not the default cellxf\n\tif xCellXf.NumFmtId > 0 {\n\t\txCellXf.ApplyNumberFormat = true\n\t}\n\n\txCellXf.Alignment.Horizontal = style.Alignment.Horizontal\n\txCellXf.Alignment.Indent = style.Alignment.Indent\n\txCellXf.Alignment.ShrinkToFit = style.Alignment.ShrinkToFit\n\txCellXf.Alignment.TextRotation = style.Alignment.TextRotation\n\txCellXf.Alignment.Vertical = style.Alignment.Vertical\n\txCellXf.Alignment.WrapText = style.Alignment.WrapText\n\n\tXfId = styles.addCellXf(xCellXf)\n\treturn\n}\n\nfunc handleNumFmtIdForXLSX(NumFmtId int, styles *xlsxStyleSheet) (XfId int) {\n\txCellXf := makeXLSXCellElement()\n\txCellXf.NumFmtId = NumFmtId\n\tif xCellXf.NumFmtId > 0 {\n\t\txCellXf.ApplyNumberFormat = true\n\t}\n\tXfId = styles.addCellXf(xCellXf)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/stream_file.go",
    "content": "package xlsx\n\nimport (\n\t\"archive/zip\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype StreamFile struct {\n\txlsxFile       *File\n\tsheetXmlPrefix []string\n\tsheetXmlSuffix []string\n\tzipWriter      *zip.Writer\n\tcurrentSheet   *streamSheet\n\tstyleIds       [][]int\n\terr            error\n}\n\ntype streamSheet struct {\n\t// sheetIndex is the XLSX sheet index, which starts at 1\n\tindex int\n\t// The number of rows that have been written to the sheet so far\n\trowCount int\n\t// The number of columns in the sheet\n\tcolumnCount int\n\t// The writer to write to this sheet's file in the XLSX Zip file\n\twriter   io.Writer\n\tstyleIds []int\n}\n\nvar (\n\tNoCurrentSheetError     = errors.New(\"no Current Sheet\")\n\tWrongNumberOfRowsError  = errors.New(\"invalid number of cells passed to Write. All calls to Write on the same sheet must have the same number of cells\")\n\tAlreadyOnLastSheetError = errors.New(\"NextSheet() called, but already on last sheet\")\n)\n\n// Write will write a row of cells to the current sheet. Every call to Write on the same sheet must contain the\n// same number of cells as the header provided when the sheet was created or an error will be returned. This function\n// will always trigger a flush on success. Currently the only supported data type is string data.\nfunc (sf *StreamFile) Write(cells []string) error {\n\tif sf.err != nil {\n\t\treturn sf.err\n\t}\n\terr := sf.write(cells)\n\tif err != nil {\n\t\tsf.err = err\n\t\treturn err\n\t}\n\treturn sf.zipWriter.Flush()\n}\n\nfunc (sf *StreamFile) WriteAll(records [][]string) error {\n\tif sf.err != nil {\n\t\treturn sf.err\n\t}\n\tfor _, row := range records {\n\t\terr := sf.write(row)\n\t\tif err != nil {\n\t\t\tsf.err = err\n\t\t\treturn err\n\t\t}\n\t}\n\treturn sf.zipWriter.Flush()\n}\n\nfunc (sf *StreamFile) write(cells []string) error {\n\tif sf.currentSheet == nil {\n\t\treturn NoCurrentSheetError\n\t}\n\tif len(cells) != sf.currentSheet.columnCount {\n\t\treturn WrongNumberOfRowsError\n\t}\n\tsf.currentSheet.rowCount++\n\tif err := sf.currentSheet.write(`<row r=\"` + strconv.Itoa(sf.currentSheet.rowCount) + `\">`); err != nil {\n\t\treturn err\n\t}\n\tfor colIndex, cellData := range cells {\n\t\t// documentation for the c.t (cell.Type) attribute:\n\t\t// b (Boolean): Cell containing a boolean.\n\t\t// d (Date): Cell contains a date in the ISO 8601 format.\n\t\t// e (Error): Cell containing an error.\n\t\t// inlineStr (Inline String): Cell containing an (inline) rich string, i.e., one not in the shared string table.\n\t\t// If this cell type is used, then the cell value is in the is element rather than the v element in the cell (c element).\n\t\t// n (Number): Cell containing a number.\n\t\t// s (Shared String): Cell containing a shared string.\n\t\t// str (String): Cell containing a formula string.\n\t\tcellCoordinate := GetCellIDStringFromCoords(colIndex, sf.currentSheet.rowCount-1)\n\t\tcellType := \"inlineStr\"\n\t\tcellOpen := `<c r=\"` + cellCoordinate + `\" t=\"` + cellType + `\"`\n\t\t// Add in the style id if the cell isn't using the default style\n\t\tif colIndex < len(sf.currentSheet.styleIds) && sf.currentSheet.styleIds[colIndex] != 0 {\n\t\t\tcellOpen += ` s=\"` + strconv.Itoa(sf.currentSheet.styleIds[colIndex]) + `\"`\n\t\t}\n\t\tcellOpen += `><is><t>`\n\t\tcellClose := `</t></is></c>`\n\n\t\tif err := sf.currentSheet.write(cellOpen); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := xml.EscapeText(sf.currentSheet.writer, []byte(cellData)); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := sf.currentSheet.write(cellClose); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := sf.currentSheet.write(`</row>`); err != nil {\n\t\treturn err\n\t}\n\treturn sf.zipWriter.Flush()\n}\n\n// Error reports any error that has occurred during a previous Write or Flush.\nfunc (sf *StreamFile) Error() error {\n\treturn sf.err\n}\n\nfunc (sf *StreamFile) Flush() {\n\tif sf.err != nil {\n\t\tsf.err = sf.zipWriter.Flush()\n\t}\n}\n\n// NextSheet will switch to the next sheet. Sheets are selected in the same order they were added.\n// Once you leave a sheet, you cannot return to it.\nfunc (sf *StreamFile) NextSheet() error {\n\tif sf.err != nil {\n\t\treturn sf.err\n\t}\n\tvar sheetIndex int\n\tif sf.currentSheet != nil {\n\t\tif sf.currentSheet.index >= len(sf.xlsxFile.Sheets) {\n\t\t\tsf.err = AlreadyOnLastSheetError\n\t\t\treturn AlreadyOnLastSheetError\n\t\t}\n\t\tif err := sf.writeSheetEnd(); err != nil {\n\t\t\tsf.currentSheet = nil\n\t\t\tsf.err = err\n\t\t\treturn err\n\t\t}\n\t\tsheetIndex = sf.currentSheet.index\n\t}\n\tsheetIndex++\n\tsf.currentSheet = &streamSheet{\n\t\tindex:       sheetIndex,\n\t\tcolumnCount: len(sf.xlsxFile.Sheets[sheetIndex-1].Cols),\n\t\tstyleIds:    sf.styleIds[sheetIndex-1],\n\t\trowCount:    1,\n\t}\n\tsheetPath := sheetFilePathPrefix + strconv.Itoa(sf.currentSheet.index) + sheetFilePathSuffix\n\tfileWriter, err := sf.zipWriter.Create(sheetPath)\n\tif err != nil {\n\t\tsf.err = err\n\t\treturn err\n\t}\n\tsf.currentSheet.writer = fileWriter\n\n\tif err := sf.writeSheetStart(); err != nil {\n\t\tsf.err = err\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Close closes the Stream File.\n// Any sheets that have not yet been written to will have an empty sheet created for them.\nfunc (sf *StreamFile) Close() error {\n\tif sf.err != nil {\n\t\treturn sf.err\n\t}\n\t// If there are sheets that have not been written yet, call NextSheet() which will add files to the zip for them.\n\t// XLSX readers may error if the sheets registered in the metadata are not present in the file.\n\tif sf.currentSheet != nil {\n\t\tfor sf.currentSheet.index < len(sf.xlsxFile.Sheets) {\n\t\t\tif err := sf.NextSheet(); err != nil {\n\t\t\t\tsf.err = err\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\t// Write the end of the last sheet.\n\t\tif err := sf.writeSheetEnd(); err != nil {\n\t\t\tsf.err = err\n\t\t\treturn err\n\t\t}\n\t}\n\terr := sf.zipWriter.Close()\n\tif err != nil {\n\t\tsf.err = err\n\t}\n\treturn err\n}\n\n// writeSheetStart will write the start of the Sheet's XML\nfunc (sf *StreamFile) writeSheetStart() error {\n\tif sf.currentSheet == nil {\n\t\treturn NoCurrentSheetError\n\t}\n\treturn sf.currentSheet.write(sf.sheetXmlPrefix[sf.currentSheet.index-1])\n}\n\n// writeSheetEnd will write the end of the Sheet's XML\nfunc (sf *StreamFile) writeSheetEnd() error {\n\tif sf.currentSheet == nil {\n\t\treturn NoCurrentSheetError\n\t}\n\tif err := sf.currentSheet.write(endSheetDataTag); err != nil {\n\t\treturn err\n\t}\n\treturn sf.currentSheet.write(sf.sheetXmlSuffix[sf.currentSheet.index-1])\n}\n\nfunc (ss *streamSheet) write(data string) error {\n\t_, err := ss.writer.Write([]byte(data))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/stream_file_builder.go",
    "content": "// Authors: Ryan Hollis (ryanh@)\n\n// The purpose of StreamFileBuilder and StreamFile is to allow streamed writing of XLSX files.\n// Directions:\n// 1. Create a StreamFileBuilder with NewStreamFileBuilder() or NewStreamFileBuilderForPath().\n// 2. Add the sheets and their first row of data by calling AddSheet().\n// 3. Call Build() to get a StreamFile. Once built, all functions on the builder will return an error.\n// 4. Write to the StreamFile with Write(). Writes begin on the first sheet. New rows are always written and flushed\n// to the io. All rows written to the same sheet must have the same number of cells as the header provided when the sheet\n// was created or an error will be returned.\n// 5. Call NextSheet() to proceed to the next sheet. Once NextSheet() is called, the previous sheet can not be edited.\n// 6. Call Close() to finish.\n\n// Future work suggestions:\n// Currently the only supported cell type is string, since the main reason this library was written was to prevent\n// strings from being interpreted as numbers. It would be nice to have support for numbers and money so that the exported\n// files could better take advantage of XLSX's features.\n// All text is written with the same text style. Support for additional text styles could be added to highlight certain\n// data in the file.\n// The current default style uses fonts that are not on Macs by default so opening the XLSX files in Numbers causes a\n// pop up that says there are missing fonts. The font could be changed to something that is usually found on Mac and PC.\n\npackage xlsx\n\nimport (\n\t\"archive/zip\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype StreamFileBuilder struct {\n\tbuilt              bool\n\txlsxFile           *File\n\tzipWriter          *zip.Writer\n\tcellTypeToStyleIds map[CellType]int\n\tmaxStyleId         int\n\tstyleIds           [][]int\n}\n\nconst (\n\tsheetFilePathPrefix = \"xl/worksheets/sheet\"\n\tsheetFilePathSuffix = \".xml\"\n\tendSheetDataTag     = \"</sheetData>\"\n\tdimensionTag        = `<dimension ref=\"%s\"></dimension>`\n\t// This is the index of the max style that this library will insert into XLSX sheets by default.\n\t// This allows us to predict what the style id of styles that we add will be.\n\t// TestXlsxStyleBehavior tests that this behavior continues to be what we expect.\n\tinitMaxStyleId = 1\n)\n\nvar BuiltStreamFileBuilderError = errors.New(\"StreamFileBuilder has already been built, functions may no longer be used\")\n\n// NewStreamFileBuilder creates an StreamFileBuilder that will write to the the provided io.writer\nfunc NewStreamFileBuilder(writer io.Writer) *StreamFileBuilder {\n\treturn &StreamFileBuilder{\n\t\tzipWriter:          zip.NewWriter(writer),\n\t\txlsxFile:           NewFile(),\n\t\tcellTypeToStyleIds: make(map[CellType]int),\n\t\tmaxStyleId:         initMaxStyleId,\n\t}\n}\n\n// NewStreamFileBuilderForPath takes the name of an XLSX file and returns a builder for it.\n// The file will be created if it does not exist, or truncated if it does.\nfunc NewStreamFileBuilderForPath(path string) (*StreamFileBuilder, error) {\n\tfile, err := os.Create(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewStreamFileBuilder(file), nil\n}\n\n// AddSheet will add sheets with the given name with the provided headers. The headers cannot be edited later, and all\n// rows written to the sheet must contain the same number of cells as the header. Sheet names must be unique, or an\n// error will be thrown.\nfunc (sb *StreamFileBuilder) AddSheet(name string, headers []string, cellTypes []*CellType) error {\n\tif sb.built {\n\t\treturn BuiltStreamFileBuilderError\n\t}\n\tif len(cellTypes) > len(headers) {\n\t\treturn errors.New(\"cellTypes is longer than headers\")\n\t}\n\tsheet, err := sb.xlsxFile.AddSheet(name)\n\tif err != nil {\n\t\t// Set built on error so that all subsequent calls to the builder will also fail.\n\t\tsb.built = true\n\t\treturn err\n\t}\n\tsb.styleIds = append(sb.styleIds, []int{})\n\trow := sheet.AddRow()\n\tif count := row.WriteSlice(&headers, -1); count != len(headers) {\n\t\t// Set built on error so that all subsequent calls to the builder will also fail.\n\t\tsb.built = true\n\t\treturn errors.New(\"failed to write headers\")\n\t}\n\tfor i, cellType := range cellTypes {\n\t\tvar cellStyleIndex int\n\t\tvar ok bool\n\t\tif cellType != nil {\n\t\t\t// The cell type is one of the attributes of a Style.\n\t\t\t// Since it is the only attribute of Style that we use, we can assume that cell types\n\t\t\t// map one to one with Styles and their Style ID.\n\t\t\t// If a new cell type is used, a new style gets created with an increased id, if an existing cell type is\n\t\t\t// used, the pre-existing style will also be used.\n\t\t\tcellStyleIndex, ok = sb.cellTypeToStyleIds[*cellType]\n\t\t\tif !ok {\n\t\t\t\tsb.maxStyleId++\n\t\t\t\tcellStyleIndex = sb.maxStyleId\n\t\t\t\tsb.cellTypeToStyleIds[*cellType] = sb.maxStyleId\n\t\t\t}\n\t\t\tsheet.Cols[i].SetType(*cellType)\n\t\t}\n\t\tsb.styleIds[len(sb.styleIds)-1] = append(sb.styleIds[len(sb.styleIds)-1], cellStyleIndex)\n\t}\n\treturn nil\n}\n\n// Build begins streaming the XLSX file to the io, by writing all the XLSX metadata. It creates a StreamFile struct\n// that can be used to write the rows to the sheets.\nfunc (sb *StreamFileBuilder) Build() (*StreamFile, error) {\n\tif sb.built {\n\t\treturn nil, BuiltStreamFileBuilderError\n\t}\n\tsb.built = true\n\tparts, err := sb.xlsxFile.MarshallParts()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tes := &StreamFile{\n\t\tzipWriter:      sb.zipWriter,\n\t\txlsxFile:       sb.xlsxFile,\n\t\tsheetXmlPrefix: make([]string, len(sb.xlsxFile.Sheets)),\n\t\tsheetXmlSuffix: make([]string, len(sb.xlsxFile.Sheets)),\n\t\tstyleIds:       sb.styleIds,\n\t}\n\tfor path, data := range parts {\n\t\t// If the part is a sheet, don't write it yet. We only want to write the XLSX metadata files, since at this\n\t\t// point the sheets are still empty. The sheet files will be written later as their rows come in.\n\t\tif strings.HasPrefix(path, sheetFilePathPrefix) {\n\t\t\tif err := sb.processEmptySheetXML(es, path, data); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmetadataFile, err := sb.zipWriter.Create(path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t_, err = metadataFile.Write([]byte(data))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := es.NextSheet(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn es, nil\n}\n\n// processEmptySheetXML will take in the path and XML data of an empty sheet, and will save the beginning and end of the\n// XML file so that these can be written at the right time.\nfunc (sb *StreamFileBuilder) processEmptySheetXML(sf *StreamFile, path, data string) error {\n\t// Get the sheet index from the path\n\tsheetIndex, err := getSheetIndex(sf, path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Remove the Dimension tag. Since more rows are going to be written to the sheet, it will be wrong.\n\t// It is valid to for a sheet to be missing a Dimension tag, but it is not valid for it to be wrong.\n\tdata, err = removeDimensionTag(data, sf.xlsxFile.Sheets[sheetIndex])\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Split the sheet at the end of its SheetData tag so that more rows can be added inside.\n\tprefix, suffix, err := splitSheetIntoPrefixAndSuffix(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\tsf.sheetXmlPrefix[sheetIndex] = prefix\n\tsf.sheetXmlSuffix[sheetIndex] = suffix\n\treturn nil\n}\n\n// getSheetIndex parses the path to the XLSX sheet data and returns the index\n// The files that store the data for each sheet must have the format:\n// xl/worksheets/sheet123.xml\n// where 123 is the index of the sheet. This file path format is part of the XLSX file standard.\nfunc getSheetIndex(sf *StreamFile, path string) (int, error) {\n\tindexString := path[len(sheetFilePathPrefix) : len(path)-len(sheetFilePathSuffix)]\n\tsheetXLSXIndex, err := strconv.Atoi(indexString)\n\tif err != nil {\n\t\treturn -1, errors.New(\"Unexpected sheet file name from xlsx package\")\n\t}\n\tif sheetXLSXIndex < 1 || len(sf.sheetXmlPrefix) < sheetXLSXIndex ||\n\t\tlen(sf.sheetXmlSuffix) < sheetXLSXIndex || len(sf.xlsxFile.Sheets) < sheetXLSXIndex {\n\t\treturn -1, errors.New(\"Unexpected sheet index\")\n\t}\n\tsheetArrayIndex := sheetXLSXIndex - 1\n\treturn sheetArrayIndex, nil\n}\n\n// removeDimensionTag will return the passed in XLSX Spreadsheet XML with the dimension tag removed.\n// data is the XML data for the sheet\n// sheet is the Sheet struct that the XML was created from.\n// Can return an error if the XML's dimension tag does not match was is expected based on the provided Sheet\nfunc removeDimensionTag(data string, sheet *Sheet) (string, error) {\n\tx := len(sheet.Cols) - 1\n\ty := len(sheet.Rows) - 1\n\tif x < 0 {\n\t\tx = 0\n\t}\n\tif y < 0 {\n\t\ty = 0\n\t}\n\tvar dimensionRef string\n\tif x == 0 && y == 0 {\n\t\tdimensionRef = \"A1\"\n\t} else {\n\t\tendCoordinate := GetCellIDStringFromCoords(x, y)\n\t\tdimensionRef = \"A1:\" + endCoordinate\n\t}\n\tdataParts := strings.Split(data, fmt.Sprintf(dimensionTag, dimensionRef))\n\tif len(dataParts) != 2 {\n\t\treturn \"\", errors.New(\"unexpected Sheet XML: dimension tag not found\")\n\t}\n\treturn dataParts[0] + dataParts[1], nil\n}\n\n// splitSheetIntoPrefixAndSuffix will split the provided XML sheet into a prefix and a suffix so that\n// more spreadsheet rows can be inserted in between.\nfunc splitSheetIntoPrefixAndSuffix(data string) (string, string, error) {\n\t// Split the sheet at the end of its SheetData tag so that more rows can be added inside.\n\tsheetParts := strings.Split(data, endSheetDataTag)\n\tif len(sheetParts) != 2 {\n\t\treturn \"\", \"\", errors.New(\"unexpected Sheet XML: SheetData close tag not found\")\n\t}\n\treturn sheetParts[0], sheetParts[1], nil\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/style.go",
    "content": "package xlsx\n\nimport \"strconv\"\n\n// Style is a high level structure intended to provide user access to\n// the contents of Style within an XLSX file.\ntype Style struct {\n\tBorder          Border\n\tFill            Fill\n\tFont            Font\n\tApplyBorder     bool\n\tApplyFill       bool\n\tApplyFont       bool\n\tApplyAlignment  bool\n\tAlignment       Alignment\n\tNamedStyleIndex *int\n}\n\n// Return a new Style structure initialised with the default values.\nfunc NewStyle() *Style {\n\treturn &Style{\n\t\tAlignment: *DefaultAlignment(),\n\t\tBorder:    *DefaultBorder(),\n\t\tFill:      *DefaultFill(),\n\t\tFont:      *DefaultFont(),\n\t}\n}\n\n// Generate the underlying XLSX style elements that correspond to the Style.\nfunc (style *Style) makeXLSXStyleElements() (xFont xlsxFont, xFill xlsxFill, xBorder xlsxBorder, xCellXf xlsxXf) {\n\txFont = xlsxFont{}\n\txFill = xlsxFill{}\n\txBorder = xlsxBorder{}\n\txCellXf = xlsxXf{}\n\txFont.Sz.Val = strconv.Itoa(style.Font.Size)\n\txFont.Name.Val = style.Font.Name\n\txFont.Family.Val = strconv.Itoa(style.Font.Family)\n\txFont.Charset.Val = strconv.Itoa(style.Font.Charset)\n\txFont.Color.RGB = style.Font.Color\n\tif style.Font.Bold {\n\t\txFont.B = &xlsxVal{}\n\t} else {\n\t\txFont.B = nil\n\t}\n\tif style.Font.Italic {\n\t\txFont.I = &xlsxVal{}\n\t} else {\n\t\txFont.I = nil\n\t}\n\tif style.Font.Underline {\n\t\txFont.U = &xlsxVal{}\n\t} else {\n\t\txFont.U = nil\n\t}\n\txPatternFill := xlsxPatternFill{}\n\txPatternFill.PatternType = style.Fill.PatternType\n\txPatternFill.FgColor.RGB = style.Fill.FgColor\n\txPatternFill.BgColor.RGB = style.Fill.BgColor\n\txFill.PatternFill = xPatternFill\n\txBorder.Left = xlsxLine{\n\t\tStyle: style.Border.Left,\n\t\tColor: xlsxColor{RGB: style.Border.LeftColor},\n\t}\n\txBorder.Right = xlsxLine{\n\t\tStyle: style.Border.Right,\n\t\tColor: xlsxColor{RGB: style.Border.RightColor},\n\t}\n\txBorder.Top = xlsxLine{\n\t\tStyle: style.Border.Top,\n\t\tColor: xlsxColor{RGB: style.Border.TopColor},\n\t}\n\txBorder.Bottom = xlsxLine{\n\t\tStyle: style.Border.Bottom,\n\t\tColor: xlsxColor{RGB: style.Border.BottomColor},\n\t}\n\txCellXf = makeXLSXCellElement()\n\txCellXf.ApplyBorder = style.ApplyBorder\n\txCellXf.ApplyFill = style.ApplyFill\n\txCellXf.ApplyFont = style.ApplyFont\n\txCellXf.ApplyAlignment = style.ApplyAlignment\n\tif style.NamedStyleIndex != nil {\n\t\txCellXf.XfId = style.NamedStyleIndex\n\t}\n\treturn\n}\n\nfunc makeXLSXCellElement() (xCellXf xlsxXf) {\n\txCellXf.NumFmtId = 0\n\treturn\n}\n\n// Border is a high level structure intended to provide user access to\n// the contents of Border Style within an Sheet.\ntype Border struct {\n\tLeft        string\n\tLeftColor   string\n\tRight       string\n\tRightColor  string\n\tTop         string\n\tTopColor    string\n\tBottom      string\n\tBottomColor string\n}\n\nfunc NewBorder(left, right, top, bottom string) *Border {\n\treturn &Border{\n\t\tLeft:   left,\n\t\tRight:  right,\n\t\tTop:    top,\n\t\tBottom: bottom,\n\t}\n}\n\n// Fill is a high level structure intended to provide user access to\n// the contents of background and foreground color index within an Sheet.\ntype Fill struct {\n\tPatternType string\n\tBgColor     string\n\tFgColor     string\n}\n\nfunc NewFill(patternType, fgColor, bgColor string) *Fill {\n\treturn &Fill{\n\t\tPatternType: patternType,\n\t\tFgColor:     fgColor,\n\t\tBgColor:     bgColor,\n\t}\n}\n\ntype Font struct {\n\tSize      int\n\tName      string\n\tFamily    int\n\tCharset   int\n\tColor     string\n\tBold      bool\n\tItalic    bool\n\tUnderline bool\n}\n\nfunc NewFont(size int, name string) *Font {\n\treturn &Font{Size: size, Name: name}\n}\n\ntype Alignment struct {\n\tHorizontal   string\n\tIndent       int\n\tShrinkToFit  bool\n\tTextRotation int\n\tVertical     string\n\tWrapText     bool\n}\n\nvar defaultFontSize = 12\nvar defaultFontName = \"Verdana\"\n\nfunc SetDefaultFont(size int, name string) {\n\tdefaultFontSize = size\n\tdefaultFontName = name\n}\n\nfunc DefaultFont() *Font {\n\treturn NewFont(defaultFontSize, defaultFontName)\n}\n\nfunc DefaultFill() *Fill {\n\treturn NewFill(\"none\", \"FFFFFFFF\", \"00000000\")\n\n}\n\nfunc DefaultBorder() *Border {\n\treturn NewBorder(\"none\", \"none\", \"none\", \"none\")\n}\n\nfunc DefaultAlignment() *Alignment {\n\treturn &Alignment{\n\t\tHorizontal: \"general\",\n\t\tVertical:   \"bottom\",\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/templates.go",
    "content": "// This file contains default templates for XML files we don't yet\n// populated based on content.\n\npackage xlsx\n\nconst TEMPLATE__RELS_DOT_RELS = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n  <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>\n  <Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\" Target=\"docProps/core.xml\"/>\n  <Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\"/>\n</Relationships>`\n\nconst TEMPLATE_DOCPROPS_APP = `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Properties xmlns=\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\" xmlns:vt=\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\">\n  <TotalTime>0</TotalTime>\n  <Application>Go XLSX</Application>\n</Properties>`\n\nconst TEMPLATE_DOCPROPS_CORE = `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<cp:coreProperties xmlns:cp=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcmitype=\"http://purl.org/dc/dcmitype/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"></cp:coreProperties>`\n\nconst TEMPLATE_XL_THEME_THEME = `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office-Design\">\n  <a:themeElements>\n    <a:clrScheme name=\"Office\">\n      <a:dk1>\n        <a:sysClr val=\"windowText\" lastClr=\"000000\"/>\n      </a:dk1>\n      <a:lt1>\n        <a:sysClr val=\"window\" lastClr=\"FFFFFF\"/>\n      </a:lt1>\n      <a:dk2>\n        <a:srgbClr val=\"1F497D\"/>\n      </a:dk2>\n      <a:lt2>\n        <a:srgbClr val=\"EEECE1\"/>\n      </a:lt2>\n      <a:accent1>\n        <a:srgbClr val=\"4F81BD\"/>\n      </a:accent1>\n      <a:accent2>\n        <a:srgbClr val=\"C0504D\"/>\n      </a:accent2>\n      <a:accent3>\n        <a:srgbClr val=\"9BBB59\"/>\n      </a:accent3>\n      <a:accent4>\n        <a:srgbClr val=\"8064A2\"/>\n      </a:accent4>\n      <a:accent5>\n        <a:srgbClr val=\"4BACC6\"/>\n      </a:accent5>\n      <a:accent6>\n        <a:srgbClr val=\"F79646\"/>\n      </a:accent6>\n      <a:hlink>\n        <a:srgbClr val=\"0000FF\"/>\n      </a:hlink>\n      <a:folHlink>\n        <a:srgbClr val=\"800080\"/>\n      </a:folHlink>\n    </a:clrScheme>\n    <a:fontScheme name=\"Office\">\n      <a:majorFont>\n        <a:latin typeface=\"Cambria\"/>\n        <a:ea typeface=\"\"/>\n        <a:cs typeface=\"\"/>\n        <a:font script=\"Jpan\" typeface=\"ＭＳ Ｐゴシック\"/>\n        <a:font script=\"Hang\" typeface=\"맑은 고딕\"/>\n        <a:font script=\"Hans\" typeface=\"宋体\"/>\n        <a:font script=\"Hant\" typeface=\"新細明體\"/>\n        <a:font script=\"Arab\" typeface=\"Times New Roman\"/>\n        <a:font script=\"Hebr\" typeface=\"Times New Roman\"/>\n        <a:font script=\"Thai\" typeface=\"Tahoma\"/>\n        <a:font script=\"Ethi\" typeface=\"Nyala\"/>\n        <a:font script=\"Beng\" typeface=\"Vrinda\"/>\n        <a:font script=\"Gujr\" typeface=\"Shruti\"/>\n        <a:font script=\"Khmr\" typeface=\"MoolBoran\"/>\n        <a:font script=\"Knda\" typeface=\"Tunga\"/>\n        <a:font script=\"Guru\" typeface=\"Raavi\"/>\n        <a:font script=\"Cans\" typeface=\"Euphemia\"/>\n        <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>\n        <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>\n        <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>\n        <a:font script=\"Thaa\" typeface=\"MV Boli\"/>\n        <a:font script=\"Deva\" typeface=\"Mangal\"/>\n        <a:font script=\"Telu\" typeface=\"Gautami\"/>\n        <a:font script=\"Taml\" typeface=\"Latha\"/>\n        <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>\n        <a:font script=\"Orya\" typeface=\"Kalinga\"/>\n        <a:font script=\"Mlym\" typeface=\"Kartika\"/>\n        <a:font script=\"Laoo\" typeface=\"DokChampa\"/>\n        <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>\n        <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>\n        <a:font script=\"Viet\" typeface=\"Times New Roman\"/>\n        <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>\n        <a:font script=\"Geor\" typeface=\"Sylfaen\"/>\n      </a:majorFont>\n      <a:minorFont>\n        <a:latin typeface=\"Calibri\"/>\n        <a:ea typeface=\"\"/>\n        <a:cs typeface=\"\"/>\n        <a:font script=\"Jpan\" typeface=\"ＭＳ Ｐゴシック\"/>\n        <a:font script=\"Hang\" typeface=\"맑은 고딕\"/>\n        <a:font script=\"Hans\" typeface=\"宋体\"/>\n        <a:font script=\"Hant\" typeface=\"新細明體\"/>\n        <a:font script=\"Arab\" typeface=\"Arial\"/>\n        <a:font script=\"Hebr\" typeface=\"Arial\"/>\n        <a:font script=\"Thai\" typeface=\"Tahoma\"/>\n        <a:font script=\"Ethi\" typeface=\"Nyala\"/>\n        <a:font script=\"Beng\" typeface=\"Vrinda\"/>\n        <a:font script=\"Gujr\" typeface=\"Shruti\"/>\n        <a:font script=\"Khmr\" typeface=\"DaunPenh\"/>\n        <a:font script=\"Knda\" typeface=\"Tunga\"/>\n        <a:font script=\"Guru\" typeface=\"Raavi\"/>\n        <a:font script=\"Cans\" typeface=\"Euphemia\"/>\n        <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>\n        <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>\n        <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>\n        <a:font script=\"Thaa\" typeface=\"MV Boli\"/>\n        <a:font script=\"Deva\" typeface=\"Mangal\"/>\n        <a:font script=\"Telu\" typeface=\"Gautami\"/>\n        <a:font script=\"Taml\" typeface=\"Latha\"/>\n        <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>\n        <a:font script=\"Orya\" typeface=\"Kalinga\"/>\n        <a:font script=\"Mlym\" typeface=\"Kartika\"/>\n        <a:font script=\"Laoo\" typeface=\"DokChampa\"/>\n        <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>\n        <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>\n        <a:font script=\"Viet\" typeface=\"Arial\"/>\n        <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>\n        <a:font script=\"Geor\" typeface=\"Sylfaen\"/>\n      </a:minorFont>\n    </a:fontScheme>\n    <a:fmtScheme name=\"Office\">\n      <a:fillStyleLst>\n        <a:solidFill>\n          <a:schemeClr val=\"phClr\"/>\n        </a:solidFill>\n        <a:gradFill rotWithShape=\"1\">\n          <a:gsLst>\n            <a:gs pos=\"0\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"50000\"/>\n                <a:satMod val=\"300000\"/>\n              </a:schemeClr>\n            </a:gs>\n            <a:gs pos=\"35000\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"37000\"/>\n                <a:satMod val=\"300000\"/>\n              </a:schemeClr>\n            </a:gs>\n            <a:gs pos=\"100000\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"15000\"/>\n                <a:satMod val=\"350000\"/>\n              </a:schemeClr>\n            </a:gs>\n          </a:gsLst>\n          <a:lin ang=\"16200000\" scaled=\"1\"/>\n        </a:gradFill>\n        <a:gradFill rotWithShape=\"1\">\n          <a:gsLst>\n            <a:gs pos=\"0\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"100000\"/>\n                <a:shade val=\"100000\"/>\n                <a:satMod val=\"130000\"/>\n              </a:schemeClr>\n            </a:gs>\n            <a:gs pos=\"100000\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"50000\"/>\n                <a:shade val=\"100000\"/>\n                <a:satMod val=\"350000\"/>\n              </a:schemeClr>\n            </a:gs>\n          </a:gsLst>\n          <a:lin ang=\"16200000\" scaled=\"0\"/>\n        </a:gradFill>\n      </a:fillStyleLst>\n      <a:lnStyleLst>\n        <a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">\n          <a:solidFill>\n            <a:schemeClr val=\"phClr\">\n              <a:shade val=\"95000\"/>\n              <a:satMod val=\"105000\"/>\n            </a:schemeClr>\n          </a:solidFill>\n          <a:prstDash val=\"solid\"/>\n        </a:ln>\n        <a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">\n          <a:solidFill>\n            <a:schemeClr val=\"phClr\"/>\n          </a:solidFill>\n          <a:prstDash val=\"solid\"/>\n        </a:ln>\n        <a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">\n          <a:solidFill>\n            <a:schemeClr val=\"phClr\"/>\n          </a:solidFill>\n          <a:prstDash val=\"solid\"/>\n        </a:ln>\n      </a:lnStyleLst>\n      <a:effectStyleLst>\n        <a:effectStyle>\n          <a:effectLst>\n            <a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\">\n              <a:srgbClr val=\"000000\">\n                <a:alpha val=\"38000\"/>\n              </a:srgbClr>\n            </a:outerShdw>\n          </a:effectLst>\n        </a:effectStyle>\n        <a:effectStyle>\n          <a:effectLst>\n            <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\">\n              <a:srgbClr val=\"000000\">\n                <a:alpha val=\"35000\"/>\n              </a:srgbClr>\n            </a:outerShdw>\n          </a:effectLst>\n        </a:effectStyle>\n        <a:effectStyle>\n          <a:effectLst>\n            <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\">\n              <a:srgbClr val=\"000000\">\n                <a:alpha val=\"35000\"/>\n              </a:srgbClr>\n            </a:outerShdw>\n          </a:effectLst>\n          <a:scene3d>\n            <a:camera prst=\"orthographicFront\">\n              <a:rot lat=\"0\" lon=\"0\" rev=\"0\"/>\n            </a:camera>\n            <a:lightRig rig=\"threePt\" dir=\"t\">\n              <a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/>\n            </a:lightRig>\n          </a:scene3d>\n          <a:sp3d>\n            <a:bevelT w=\"63500\" h=\"25400\"/>\n          </a:sp3d>\n        </a:effectStyle>\n      </a:effectStyleLst>\n      <a:bgFillStyleLst>\n        <a:solidFill>\n          <a:schemeClr val=\"phClr\"/>\n        </a:solidFill>\n        <a:gradFill rotWithShape=\"1\">\n          <a:gsLst>\n            <a:gs pos=\"0\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"40000\"/>\n                <a:satMod val=\"350000\"/>\n              </a:schemeClr>\n            </a:gs>\n            <a:gs pos=\"40000\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"45000\"/>\n                <a:shade val=\"99000\"/>\n                <a:satMod val=\"350000\"/>\n              </a:schemeClr>\n            </a:gs>\n            <a:gs pos=\"100000\">\n              <a:schemeClr val=\"phClr\">\n                <a:shade val=\"20000\"/>\n                <a:satMod val=\"255000\"/>\n              </a:schemeClr>\n            </a:gs>\n          </a:gsLst>\n          <a:path path=\"circle\">\n            <a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/>\n          </a:path>\n        </a:gradFill>\n        <a:gradFill rotWithShape=\"1\">\n          <a:gsLst>\n            <a:gs pos=\"0\">\n              <a:schemeClr val=\"phClr\">\n                <a:tint val=\"80000\"/>\n                <a:satMod val=\"300000\"/>\n              </a:schemeClr>\n            </a:gs>\n            <a:gs pos=\"100000\">\n              <a:schemeClr val=\"phClr\">\n                <a:shade val=\"30000\"/>\n                <a:satMod val=\"200000\"/>\n              </a:schemeClr>\n            </a:gs>\n          </a:gsLst>\n          <a:path path=\"circle\">\n            <a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/>\n          </a:path>\n        </a:gradFill>\n      </a:bgFillStyleLst>\n    </a:fmtScheme>\n  </a:themeElements>\n  <a:objectDefaults>\n    <a:spDef>\n      <a:spPr/>\n      <a:bodyPr/>\n      <a:lstStyle/>\n      <a:style>\n        <a:lnRef idx=\"1\">\n          <a:schemeClr val=\"accent1\"/>\n        </a:lnRef>\n        <a:fillRef idx=\"3\">\n          <a:schemeClr val=\"accent1\"/>\n        </a:fillRef>\n        <a:effectRef idx=\"2\">\n          <a:schemeClr val=\"accent1\"/>\n        </a:effectRef>\n        <a:fontRef idx=\"minor\">\n          <a:schemeClr val=\"lt1\"/>\n        </a:fontRef>\n      </a:style>\n    </a:spDef>\n    <a:lnDef>\n      <a:spPr/>\n      <a:bodyPr/>\n      <a:lstStyle/>\n      <a:style>\n        <a:lnRef idx=\"2\">\n          <a:schemeClr val=\"accent1\"/>\n        </a:lnRef>\n        <a:fillRef idx=\"0\">\n          <a:schemeClr val=\"accent1\"/>\n        </a:fillRef>\n        <a:effectRef idx=\"1\">\n          <a:schemeClr val=\"accent1\"/>\n        </a:effectRef>\n        <a:fontRef idx=\"minor\">\n          <a:schemeClr val=\"tx1\"/>\n        </a:fontRef>\n      </a:style>\n    </a:lnDef>\n  </a:objectDefaults>\n  <a:extraClrSchemeLst/>\n</a:theme>`\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/theme.go",
    "content": "package xlsx\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\ntype theme struct {\n\tcolors []string\n}\n\nfunc newTheme(themeXml xlsxTheme) *theme {\n\tclrMap := map[string]string{}\n\tclrSchemes := themeXml.ThemeElements.ClrScheme.Children\n\tfor _, scheme := range clrSchemes {\n\t\tvar rgbColor string\n\t\tif scheme.SysClr != nil {\n\t\t\trgbColor = scheme.SysClr.LastClr\n\t\t} else {\n\t\t\trgbColor = scheme.SrgbClr.Val\n\t\t}\n\t\tclrMap[scheme.XMLName.Local] = rgbColor\n\t}\n\tcolors := []string{clrMap[\"lt1\"], clrMap[\"dk1\"], clrMap[\"lt2\"], clrMap[\"dk2\"], clrMap[\"accent1\"],\n\t\tclrMap[\"accent2\"], clrMap[\"accent3\"], clrMap[\"accent4\"], clrMap[\"accent5\"],\n\t\tclrMap[\"accent6\"], clrMap[\"hlink\"], clrMap[\"folHlink\"]}\n\treturn &theme{colors}\n}\n\nfunc (t *theme) themeColor(index int64, tint float64) string {\n\tbaseColor := t.colors[index]\n\tif tint == 0 {\n\t\treturn \"FF\" + baseColor\n\t} else {\n\t\tr, _ := strconv.ParseInt(baseColor[0:2], 16, 64)\n\t\tg, _ := strconv.ParseInt(baseColor[2:4], 16, 64)\n\t\tb, _ := strconv.ParseInt(baseColor[4:6], 16, 64)\n\t\th, s, l := RGBToHSL(uint8(r), uint8(g), uint8(b))\n\t\tif tint < 0 {\n\t\t\tl *= (1 + tint)\n\t\t} else {\n\t\t\tl = l*(1-tint) + (1 - (1 - tint))\n\t\t}\n\t\tbr, bg, bb := HSLToRGB(h, s, l)\n\t\treturn fmt.Sprintf(\"FF%02X%02X%02X\", br, bg, bb)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/write.go",
    "content": "package xlsx\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n)\n\n// Writes an array to row r. Accepts a pointer to array type 'e',\n// and writes the number of columns to write, 'cols'. If 'cols' is < 0,\n// the entire array will be written if possible. Returns -1 if the 'e'\n// doesn't point to an array, otherwise the number of columns written.\nfunc (r *Row) WriteSlice(e interface{}, cols int) int {\n\tif cols == 0 {\n\t\treturn cols\n\t}\n\n\t// make sure 'e' is a Ptr to Slice\n\tv := reflect.ValueOf(e)\n\tif v.Kind() != reflect.Ptr {\n\t\treturn -1\n\t}\n\n\tv = v.Elem()\n\tif v.Kind() != reflect.Slice {\n\t\treturn -1\n\t}\n\n\t// it's a slice, so open up its values\n\tn := v.Len()\n\tif cols < n && cols > 0 {\n\t\tn = cols\n\t}\n\n\tvar setCell func(reflect.Value)\n\tsetCell = func(val reflect.Value) {\n\t\tswitch t := val.Interface().(type) {\n\t\tcase time.Time:\n\t\t\tcell := r.AddCell()\n\t\t\tcell.SetValue(t)\n\t\tcase fmt.Stringer: // check Stringer first\n\t\t\tcell := r.AddCell()\n\t\t\tcell.SetString(t.String())\n\t\tdefault:\n\t\t\tswitch val.Kind() { // underlying type of slice\n\t\t\tcase reflect.String, reflect.Int, reflect.Int8,\n\t\t\t\treflect.Int16, reflect.Int32, reflect.Int64, reflect.Float64, reflect.Float32:\n\t\t\t\tcell := r.AddCell()\n\t\t\t\tcell.SetValue(val.Interface())\n\t\t\tcase reflect.Bool:\n\t\t\t\tcell := r.AddCell()\n\t\t\t\tcell.SetBool(t.(bool))\n\t\t\tcase reflect.Interface:\n\t\t\t\tsetCell(reflect.ValueOf(t))\n\t\t\t}\n\t\t}\n\t}\n\n\tvar i int\n\tfor i = 0; i < n; i++ {\n\t\tsetCell(v.Index(i))\n\t}\n\treturn i\n}\n\n// Writes a struct to row r. Accepts a pointer to struct type 'e',\n// and the number of columns to write, `cols`. If 'cols' is < 0,\n// the entire struct will be written if possible. Returns -1 if the 'e'\n// doesn't point to a struct, otherwise the number of columns written\nfunc (r *Row) WriteStruct(e interface{}, cols int) int {\n\tif cols == 0 {\n\t\treturn cols\n\t}\n\n\tv := reflect.ValueOf(e).Elem()\n\tif v.Kind() != reflect.Struct {\n\t\treturn -1 // bail if it's not a struct\n\t}\n\n\tn := v.NumField() // number of fields in struct\n\tif cols < n && cols > 0 {\n\t\tn = cols\n\t}\n\n\tvar k int\n\tfor i := 0; i < n; i, k = i+1, k+1 {\n\t\tf := v.Field(i)\n\n\t\tswitch t := f.Interface().(type) {\n\t\tcase time.Time:\n\t\t\tcell := r.AddCell()\n\t\t\tcell.SetValue(t)\n\t\tcase fmt.Stringer: // check Stringer first\n\t\t\tcell := r.AddCell()\n\t\t\tcell.SetString(t.String())\n\t\tdefault:\n\t\t\tswitch f.Kind() {\n\t\t\tcase reflect.String, reflect.Int, reflect.Int8,\n\t\t\t\treflect.Int16, reflect.Int32, reflect.Int64, reflect.Float64, reflect.Float32:\n\t\t\t\tcell := r.AddCell()\n\t\t\t\tcell.SetValue(f.Interface())\n\t\t\tcase reflect.Bool:\n\t\t\t\tcell := r.AddCell()\n\t\t\t\tcell.SetBool(t.(bool))\n\t\t\tdefault:\n\t\t\t\tk-- // nothing set so reset to previous\n\t\t\t}\n\t\t}\n\t}\n\n\treturn k\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/xmlContentTypes.go",
    "content": "package xlsx\n\nimport (\n\t\"encoding/xml\"\n)\n\ntype xlsxTypes struct {\n\tXMLName xml.Name `xml:\"http://schemas.openxmlformats.org/package/2006/content-types Types\"`\n\n\tOverrides []xlsxOverride `xml:\"Override\"`\n\tDefaults  []xlsxDefault  `xml:\"Default\"`\n}\n\ntype xlsxOverride struct {\n\tPartName    string `xml:\",attr\"`\n\tContentType string `xml:\",attr\"`\n}\n\ntype xlsxDefault struct {\n\tExtension   string `xml:\",attr\"`\n\tContentType string `xml:\",attr\"`\n}\n\nfunc MakeDefaultContentTypes() (types xlsxTypes) {\n\ttypes.Overrides = make([]xlsxOverride, 8)\n\ttypes.Defaults = make([]xlsxDefault, 2)\n\n\ttypes.Overrides[0].PartName = \"/_rels/.rels\"\n\ttypes.Overrides[0].ContentType = \"application/vnd.openxmlformats-package.relationships+xml\"\n\ttypes.Overrides[1].PartName = \"/docProps/app.xml\"\n\ttypes.Overrides[1].ContentType = \"application/vnd.openxmlformats-officedocument.extended-properties+xml\"\n\ttypes.Overrides[2].PartName = \"/docProps/core.xml\"\n\ttypes.Overrides[2].ContentType = \"application/vnd.openxmlformats-package.core-properties+xml\"\n\ttypes.Overrides[3].PartName = \"/xl/_rels/workbook.xml.rels\"\n\ttypes.Overrides[3].ContentType = \"application/vnd.openxmlformats-package.relationships+xml\"\n\ttypes.Overrides[4].PartName = \"/xl/sharedStrings.xml\"\n\ttypes.Overrides[4].ContentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\"\n\ttypes.Overrides[5].PartName = \"/xl/styles.xml\"\n\ttypes.Overrides[5].ContentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"\n\ttypes.Overrides[6].PartName = \"/xl/workbook.xml\"\n\ttypes.Overrides[6].ContentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"\n\ttypes.Overrides[7].PartName = \"/xl/theme/theme1.xml\"\n\ttypes.Overrides[7].ContentType = \"application/vnd.openxmlformats-officedocument.theme+xml\"\n\n\ttypes.Defaults[0].Extension = \"rels\"\n\ttypes.Defaults[0].ContentType = \"application/vnd.openxmlformats-package.relationships+xml\"\n\ttypes.Defaults[1].Extension = \"xml\"\n\ttypes.Defaults[1].ContentType = \"application/xml\"\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/xmlSharedStrings.go",
    "content": "package xlsx\n\nimport (\n\t\"encoding/xml\"\n)\n\n// xlsxSST directly maps the sst element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main currently\n// I have not checked this for completeness - it does as much as I need.\ntype xlsxSST struct {\n\tXMLName     xml.Name `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main sst\"`\n\tCount       int      `xml:\"count,attr\"`\n\tUniqueCount int      `xml:\"uniqueCount,attr\"`\n\tSI          []xlsxSI `xml:\"si\"`\n}\n\n// xlsxSI directly maps the si element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked this for completeness - it does as\n// much as I need.\ntype xlsxSI struct {\n\tT string  `xml:\"t\"`\n\tR []xlsxR `xml:\"r\"`\n}\n\n// xlsxR directly maps the r element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked this for completeness - it does as\n// much as I need.\ntype xlsxR struct {\n\tT string `xml:\"t\"`\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/xmlStyle.go",
    "content": "// xslx is a package designed to help with reading data from\n// spreadsheets stored in the XLSX format used in recent versions of\n// Microsoft's Excel spreadsheet.\n//\n// For a concise example of how to use this library why not check out\n// the source for xlsx2csv here: https://github.com/tealeg/xlsx2csv\n\npackage xlsx\n\nimport (\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// Excel styles can reference number formats that are built-in, all of which\n// have an id less than 164.\nconst builtinNumFmtsCount = 163\n\n// Excel styles can reference number formats that are built-in, all of which\n// have an id less than 164. This is a possibly incomplete list comprised of as\n// many of them as I could find.\nvar builtInNumFmt = map[int]string{\n\t0:  \"general\",\n\t1:  \"0\",\n\t2:  \"0.00\",\n\t3:  \"#,##0\",\n\t4:  \"#,##0.00\",\n\t9:  \"0%\",\n\t10: \"0.00%\",\n\t11: \"0.00e+00\",\n\t12: \"# ?/?\",\n\t13: \"# ??/??\",\n\t14: \"mm-dd-yy\",\n\t15: \"d-mmm-yy\",\n\t16: \"d-mmm\",\n\t17: \"mmm-yy\",\n\t18: \"h:mm am/pm\",\n\t19: \"h:mm:ss am/pm\",\n\t20: \"h:mm\",\n\t21: \"h:mm:ss\",\n\t22: \"m/d/yy h:mm\",\n\t37: \"#,##0 ;(#,##0)\",\n\t38: \"#,##0 ;[red](#,##0)\",\n\t39: \"#,##0.00;(#,##0.00)\",\n\t40: \"#,##0.00;[red](#,##0.00)\",\n\t41: `_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)`,\n\t42: `_(\"$\"* #,##0_);_(\"$* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)`,\n\t43: `_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)`,\n\t44: `_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)`,\n\t45: \"mm:ss\",\n\t46: \"[h]:mm:ss\",\n\t47: \"mmss.0\",\n\t48: \"##0.0e+0\",\n\t49: \"@\",\n}\n\n// These are the color annotations from number format codes that contain color names.\n// Also possible are [color1] through [color56]\nvar numFmtColorCodes = []string{\n\t\"[red]\",\n\t\"[black]\",\n\t\"[green]\",\n\t\"[white]\",\n\t\"[blue]\",\n\t\"[magenta]\",\n\t\"[yellow]\",\n\t\"[cyan]\",\n}\n\nvar builtInNumFmtInv = make(map[string]int, 40)\n\nfunc init() {\n\tfor k, v := range builtInNumFmt {\n\t\tbuiltInNumFmtInv[v] = k\n\t}\n}\n\nconst (\n\tbuiltInNumFmtIndex_GENERAL = int(0)\n\tbuiltInNumFmtIndex_INT     = int(1)\n\tbuiltInNumFmtIndex_FLOAT   = int(2)\n\tbuiltInNumFmtIndex_DATE    = int(14)\n\tbuiltInNumFmtIndex_STRING  = int(49)\n)\n\n// xlsxStyle directly maps the styleSheet element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxStyleSheet struct {\n\tXMLName xml.Name `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main styleSheet\"`\n\n\tFonts        xlsxFonts         `xml:\"fonts,omitempty\"`\n\tFills        xlsxFills         `xml:\"fills,omitempty\"`\n\tBorders      xlsxBorders       `xml:\"borders,omitempty\"`\n\tCellStyles   *xlsxCellStyles   `xml:\"cellStyles,omitempty\"`\n\tCellStyleXfs *xlsxCellStyleXfs `xml:\"cellStyleXfs,omitempty\"`\n\tCellXfs      xlsxCellXfs       `xml:\"cellXfs,omitempty\"`\n\tNumFmts      xlsxNumFmts       `xml:\"numFmts,omitempty\"`\n\n\ttheme *theme\n\n\tsync.RWMutex      // protects the following\n\tstyleCache        map[int]*Style\n\tnumFmtRefTable    map[int]xlsxNumFmt\n\tparsedNumFmtTable map[string]*parsedNumberFormat\n}\n\nfunc newXlsxStyleSheet(t *theme) *xlsxStyleSheet {\n\treturn &xlsxStyleSheet{\n\t\ttheme:      t,\n\t\tstyleCache: make(map[int]*Style),\n\t}\n}\n\nfunc (styles *xlsxStyleSheet) reset() {\n\tstyles.Fonts = xlsxFonts{}\n\tstyles.Fills = xlsxFills{}\n\tstyles.Borders = xlsxBorders{}\n\n\t// Microsoft seems to want an emtpy border to start with\n\tstyles.addBorder(\n\t\txlsxBorder{\n\t\t\tLeft:   xlsxLine{Style: \"none\"},\n\t\t\tRight:  xlsxLine{Style: \"none\"},\n\t\t\tTop:    xlsxLine{Style: \"none\"},\n\t\t\tBottom: xlsxLine{Style: \"none\"},\n\t\t})\n\n\tstyles.CellStyleXfs = &xlsxCellStyleXfs{}\n\n\t// add default xf\n\tstyles.CellXfs = xlsxCellXfs{Count: 1, Xf: []xlsxXf{{}}}\n\tstyles.NumFmts = xlsxNumFmts{}\n}\n\nfunc (styles *xlsxStyleSheet) getStyle(styleIndex int) *Style {\n\tstyles.RLock()\n\tstyle, ok := styles.styleCache[styleIndex]\n\tstyles.RUnlock()\n\tif ok {\n\t\treturn style\n\t}\n\n\tstyle = new(Style)\n\n\tvar namedStyleXf xlsxXf\n\n\txfCount := styles.CellXfs.Count\n\tif styleIndex > -1 && xfCount > 0 && styleIndex <= xfCount {\n\t\txf := styles.CellXfs.Xf[styleIndex]\n\n\t\tif xf.XfId != nil && styles.CellStyleXfs != nil {\n\t\t\tnamedStyleXf = styles.CellStyleXfs.Xf[*xf.XfId]\n\t\t\tstyle.NamedStyleIndex = xf.XfId\n\t\t} else {\n\t\t\tnamedStyleXf = xlsxXf{}\n\t\t}\n\n\t\tstyle.ApplyBorder = xf.ApplyBorder || namedStyleXf.ApplyBorder\n\t\tstyle.ApplyFill = xf.ApplyFill || namedStyleXf.ApplyFill\n\t\tstyle.ApplyFont = xf.ApplyFont || namedStyleXf.ApplyFont\n\t\tstyle.ApplyAlignment = xf.ApplyAlignment || namedStyleXf.ApplyAlignment\n\n\t\tif xf.BorderId > -1 && xf.BorderId < styles.Borders.Count {\n\t\t\tvar border xlsxBorder\n\t\t\tborder = styles.Borders.Border[xf.BorderId]\n\t\t\tstyle.Border.Left = border.Left.Style\n\t\t\tstyle.Border.LeftColor = border.Left.Color.RGB\n\t\t\tstyle.Border.Right = border.Right.Style\n\t\t\tstyle.Border.RightColor = border.Right.Color.RGB\n\t\t\tstyle.Border.Top = border.Top.Style\n\t\t\tstyle.Border.TopColor = border.Top.Color.RGB\n\t\t\tstyle.Border.Bottom = border.Bottom.Style\n\t\t\tstyle.Border.BottomColor = border.Bottom.Color.RGB\n\t\t}\n\n\t\tif xf.FillId > -1 && xf.FillId < styles.Fills.Count {\n\t\t\txFill := styles.Fills.Fill[xf.FillId]\n\t\t\tstyle.Fill.PatternType = xFill.PatternFill.PatternType\n\t\t\tstyle.Fill.FgColor = styles.argbValue(xFill.PatternFill.FgColor)\n\t\t\tstyle.Fill.BgColor = styles.argbValue(xFill.PatternFill.BgColor)\n\t\t}\n\n\t\tif xf.FontId > -1 && xf.FontId < styles.Fonts.Count {\n\t\t\txfont := styles.Fonts.Font[xf.FontId]\n\t\t\tstyle.Font.Size, _ = strconv.Atoi(xfont.Sz.Val)\n\t\t\tstyle.Font.Name = xfont.Name.Val\n\t\t\tstyle.Font.Family, _ = strconv.Atoi(xfont.Family.Val)\n\t\t\tstyle.Font.Charset, _ = strconv.Atoi(xfont.Charset.Val)\n\t\t\tstyle.Font.Color = styles.argbValue(xfont.Color)\n\n\t\t\tif bold := xfont.B; bold != nil && bold.Val != \"0\" {\n\t\t\t\tstyle.Font.Bold = true\n\t\t\t}\n\t\t\tif italic := xfont.I; italic != nil && italic.Val != \"0\" {\n\t\t\t\tstyle.Font.Italic = true\n\t\t\t}\n\t\t\tif underline := xfont.U; underline != nil && underline.Val != \"0\" {\n\t\t\t\tstyle.Font.Underline = true\n\t\t\t}\n\t\t}\n\t\tif xf.Alignment.Horizontal != \"\" {\n\t\t\tstyle.Alignment.Horizontal = xf.Alignment.Horizontal\n\t\t}\n\n\t\tif xf.Alignment.Vertical != \"\" {\n\t\t\tstyle.Alignment.Vertical = xf.Alignment.Vertical\n\t\t}\n\t\tstyle.Alignment.WrapText = xf.Alignment.WrapText\n        \tstyle.Alignment.TextRotation = xf.Alignment.TextRotation\n\t\t\n        \tstyles.Lock()\n\t\tstyles.styleCache[styleIndex] = style\n\t\tstyles.Unlock()\n\t}\n\treturn style\n}\n\nfunc (styles *xlsxStyleSheet) argbValue(color xlsxColor) string {\n\tif color.Theme != nil && styles.theme != nil {\n\t\treturn styles.theme.themeColor(int64(*color.Theme), color.Tint)\n\t}\n\treturn color.RGB\n}\n\n// Excel styles can reference number formats that are built-in, all of which\n// have an id less than 164. This is a possibly incomplete list comprised of as\n// many of them as I could find.\nfunc getBuiltinNumberFormat(numFmtId int) string {\n\treturn builtInNumFmt[numFmtId]\n}\n\nfunc (styles *xlsxStyleSheet) getNumberFormat(styleIndex int) (string, *parsedNumberFormat) {\n\tvar numberFormat string = \"general\"\n\tif styles.CellXfs.Xf != nil {\n\t\tif styleIndex > -1 && styleIndex <= styles.CellXfs.Count {\n\t\t\txf := styles.CellXfs.Xf[styleIndex]\n\t\t\tif builtin := getBuiltinNumberFormat(xf.NumFmtId); builtin != \"\" {\n\t\t\t\tnumberFormat = builtin\n\t\t\t} else {\n\t\t\t\tif styles.numFmtRefTable != nil {\n\t\t\t\t\tnumFmt := styles.numFmtRefTable[xf.NumFmtId]\n\t\t\t\t\tnumberFormat = numFmt.FormatCode\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tparsedFmt, ok := styles.parsedNumFmtTable[numberFormat]\n\tif !ok {\n\t\tif styles.parsedNumFmtTable == nil {\n\t\t\tstyles.parsedNumFmtTable = map[string]*parsedNumberFormat{}\n\t\t}\n\t\tparsedFmt = parseFullNumberFormatString(numberFormat)\n\t\tstyles.parsedNumFmtTable[numberFormat] = parsedFmt\n\t}\n\treturn numberFormat, parsedFmt\n}\n\nfunc (styles *xlsxStyleSheet) addFont(xFont xlsxFont) (index int) {\n\tvar font xlsxFont\n\tif xFont.Name.Val == \"\" {\n\t\treturn 0\n\t}\n\tfor index, font = range styles.Fonts.Font {\n\t\tif font.Equals(xFont) {\n\t\t\treturn index\n\t\t}\n\t}\n\tstyles.Fonts.Font = append(styles.Fonts.Font, xFont)\n\tindex = styles.Fonts.Count\n\tstyles.Fonts.Count++\n\treturn\n}\n\nfunc (styles *xlsxStyleSheet) addFill(xFill xlsxFill) (index int) {\n\tvar fill xlsxFill\n\tfor index, fill = range styles.Fills.Fill {\n\t\tif fill.Equals(xFill) {\n\t\t\treturn index\n\t\t}\n\t}\n\tstyles.Fills.Fill = append(styles.Fills.Fill, xFill)\n\tindex = styles.Fills.Count\n\tstyles.Fills.Count++\n\treturn\n}\n\nfunc (styles *xlsxStyleSheet) addBorder(xBorder xlsxBorder) (index int) {\n\tvar border xlsxBorder\n\tfor index, border = range styles.Borders.Border {\n\t\tif border.Equals(xBorder) {\n\t\t\treturn index\n\t\t}\n\t}\n\tstyles.Borders.Border = append(styles.Borders.Border, xBorder)\n\tindex = styles.Borders.Count\n\n\tstyles.Borders.Count++\n\treturn\n}\n\nfunc (styles *xlsxStyleSheet) addCellStyleXf(xCellStyleXf xlsxXf) (index int) {\n\tvar cellStyleXf xlsxXf\n\tif styles.CellStyleXfs == nil {\n\t\tstyles.CellStyleXfs = &xlsxCellStyleXfs{Count: 0}\n\t}\n\tfor index, cellStyleXf = range styles.CellStyleXfs.Xf {\n\t\tif cellStyleXf.Equals(xCellStyleXf) {\n\t\t\treturn index\n\t\t}\n\t}\n\tstyles.CellStyleXfs.Xf = append(styles.CellStyleXfs.Xf, xCellStyleXf)\n\tindex = styles.CellStyleXfs.Count\n\tstyles.CellStyleXfs.Count++\n\treturn\n}\n\nfunc (styles *xlsxStyleSheet) addCellXf(xCellXf xlsxXf) (index int) {\n\tvar cellXf xlsxXf\n\tfor index, cellXf = range styles.CellXfs.Xf {\n\t\tif cellXf.Equals(xCellXf) {\n\t\t\treturn index\n\t\t}\n\t}\n\n\tstyles.CellXfs.Xf = append(styles.CellXfs.Xf, xCellXf)\n\tindex = styles.CellXfs.Count\n\tstyles.CellXfs.Count++\n\treturn\n}\n\n// newNumFmt generate a xlsxNumFmt according the format code. When the FormatCode is built in, it will return a xlsxNumFmt with the NumFmtId defined in ECMA document, otherwise it will generate a new NumFmtId greater than 164.\nfunc (styles *xlsxStyleSheet) newNumFmt(formatCode string) xlsxNumFmt {\n\tif compareFormatString(formatCode, \"general\") {\n\t\treturn xlsxNumFmt{NumFmtId: 0, FormatCode: \"general\"}\n\t}\n\t// built in NumFmts in xmlStyle.go, traverse from the const.\n\tnumFmtId, ok := builtInNumFmtInv[formatCode]\n\tif ok {\n\t\treturn xlsxNumFmt{NumFmtId: numFmtId, FormatCode: formatCode}\n\t}\n\n\t// find the exist xlsxNumFmt\n\tfor _, numFmt := range styles.NumFmts.NumFmt {\n\t\tif formatCode == numFmt.FormatCode {\n\t\t\treturn numFmt\n\t\t}\n\t}\n\n\t// The user define NumFmtId. The one less than 164 in built in.\n\tnumFmtId = builtinNumFmtsCount + 1\n\tstyles.Lock()\n\tdefer styles.Unlock()\n\tfor {\n\t\t// get a unused NumFmtId\n\t\tif _, ok = styles.numFmtRefTable[numFmtId]; ok {\n\t\t\tnumFmtId++\n\t\t} else {\n\t\t\tstyles.addNumFmt(xlsxNumFmt{NumFmtId: numFmtId, FormatCode: formatCode})\n\t\t\tbreak\n\t\t}\n\t}\n\treturn xlsxNumFmt{NumFmtId: numFmtId, FormatCode: formatCode}\n}\n\n// addNumFmt add xlsxNumFmt if its not exist.\nfunc (styles *xlsxStyleSheet) addNumFmt(xNumFmt xlsxNumFmt) {\n\t// don't add built in NumFmt\n\tif xNumFmt.NumFmtId <= builtinNumFmtsCount {\n\t\treturn\n\t}\n\t_, ok := styles.numFmtRefTable[xNumFmt.NumFmtId]\n\tif !ok {\n\t\tif styles.numFmtRefTable == nil {\n\t\t\tstyles.numFmtRefTable = make(map[int]xlsxNumFmt)\n\t\t}\n\t\tstyles.NumFmts.NumFmt = append(styles.NumFmts.NumFmt, xNumFmt)\n\t\tstyles.numFmtRefTable[xNumFmt.NumFmtId] = xNumFmt\n\t\tstyles.NumFmts.Count++\n\t}\n}\n\nfunc (styles *xlsxStyleSheet) Marshal() (string, error) {\n\tresult := xml.Header + `<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">`\n\n\txNumFmts, err := styles.NumFmts.Marshal()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tresult += xNumFmts\n\n\toutputFontMap := make(map[int]int)\n\txfonts, err := styles.Fonts.Marshal(outputFontMap)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tresult += xfonts\n\n\toutputFillMap := make(map[int]int)\n\txfills, err := styles.Fills.Marshal(outputFillMap)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tresult += xfills\n\n\toutputBorderMap := make(map[int]int)\n\txborders, err := styles.Borders.Marshal(outputBorderMap)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tresult += xborders\n\n\tif styles.CellStyleXfs != nil {\n\t\txcellStyleXfs, err := styles.CellStyleXfs.Marshal(outputBorderMap, outputFillMap, outputFontMap)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tresult += xcellStyleXfs\n\t}\n\n\txcellXfs, err := styles.CellXfs.Marshal(outputBorderMap, outputFillMap, outputFontMap)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tresult += xcellXfs\n\n\tif styles.CellStyles != nil {\n\t\txcellStyles, err := styles.CellStyles.Marshal()\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tresult += xcellStyles\n\t}\n\n\treturn result + \"</styleSheet>\", nil\n}\n\n// xlsxNumFmts directly maps the numFmts element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxNumFmts struct {\n\tCount  int          `xml:\"count,attr\"`\n\tNumFmt []xlsxNumFmt `xml:\"numFmt,omitempty\"`\n}\n\nfunc (numFmts *xlsxNumFmts) Marshal() (result string, err error) {\n\tif numFmts.Count > 0 {\n\t\tresult = fmt.Sprintf(`<numFmts count=\"%d\">`, numFmts.Count)\n\t\tfor _, numFmt := range numFmts.NumFmt {\n\t\t\tvar xNumFmt string\n\t\t\txNumFmt, err = numFmt.Marshal()\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tresult += xNumFmt\n\t\t}\n\t\tresult += `</numFmts>`\n\t}\n\treturn\n}\n\n// xlsxNumFmt directly maps the numFmt element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxNumFmt struct {\n\tNumFmtId   int    `xml:\"numFmtId,attr,omitempty\"`\n\tFormatCode string `xml:\"formatCode,attr,omitempty\"`\n}\n\nfunc (numFmt *xlsxNumFmt) Marshal() (result string, err error) {\n\tformatCode := &bytes.Buffer{}\n\tif err := xml.EscapeText(formatCode, []byte(numFmt.FormatCode)); err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn fmt.Sprintf(`<numFmt numFmtId=\"%d\" formatCode=\"%s\"/>`, numFmt.NumFmtId, formatCode), nil\n}\n\n// xlsxFonts directly maps the fonts element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxFonts struct {\n\tXMLName xml.Name `xml:\"fonts\"`\n\n\tCount int        `xml:\"count,attr\"`\n\tFont  []xlsxFont `xml:\"font,omitempty\"`\n}\n\nfunc (fonts *xlsxFonts) Marshal(outputFontMap map[int]int) (result string, err error) {\n\temittedCount := 0\n\tsubparts := \"\"\n\n\tfor i, font := range fonts.Font {\n\t\tvar xfont string\n\t\txfont, err = font.Marshal()\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tif xfont != \"\" {\n\t\t\toutputFontMap[i] = emittedCount\n\t\t\temittedCount++\n\t\t\tsubparts += xfont\n\t\t}\n\t}\n\tif emittedCount > 0 {\n\t\tresult = fmt.Sprintf(`<fonts count=\"%d\">`, fonts.Count)\n\t\tresult += subparts\n\t\tresult += `</fonts>`\n\t}\n\treturn\n}\n\n// xlsxFont directly maps the font element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxFont struct {\n\tSz      xlsxVal   `xml:\"sz,omitempty\"`\n\tName    xlsxVal   `xml:\"name,omitempty\"`\n\tFamily  xlsxVal   `xml:\"family,omitempty\"`\n\tCharset xlsxVal   `xml:\"charset,omitempty\"`\n\tColor   xlsxColor `xml:\"color,omitempty\"`\n\tB       *xlsxVal  `xml:\"b,omitempty\"`\n\tI       *xlsxVal  `xml:\"i,omitempty\"`\n\tU       *xlsxVal  `xml:\"u,omitempty\"`\n}\n\nfunc (font *xlsxFont) Equals(other xlsxFont) bool {\n\tif (font.B == nil && other.B != nil) || (font.B != nil && other.B == nil) {\n\t\treturn false\n\t}\n\tif (font.I == nil && other.I != nil) || (font.I != nil && other.I == nil) {\n\t\treturn false\n\t}\n\tif (font.U == nil && other.U != nil) || (font.U != nil && other.U == nil) {\n\t\treturn false\n\t}\n\treturn font.Sz.Equals(other.Sz) && font.Name.Equals(other.Name) && font.Family.Equals(other.Family) && font.Charset.Equals(other.Charset) && font.Color.Equals(other.Color)\n}\n\nfunc (font *xlsxFont) Marshal() (result string, err error) {\n\tresult = \"<font>\"\n\tif font.Sz.Val != \"\" {\n\t\tresult += fmt.Sprintf(`<sz val=\"%s\"/>`, font.Sz.Val)\n\t}\n\tif font.Name.Val != \"\" {\n\t\tresult += fmt.Sprintf(`<name val=\"%s\"/>`, font.Name.Val)\n\t}\n\tif font.Family.Val != \"\" {\n\t\tresult += fmt.Sprintf(`<family val=\"%s\"/>`, font.Family.Val)\n\t}\n\tif font.Charset.Val != \"\" {\n\t\tresult += fmt.Sprintf(`<charset val=\"%s\"/>`, font.Charset.Val)\n\t}\n\tif font.Color.RGB != \"\" {\n\t\tresult += fmt.Sprintf(`<color rgb=\"%s\"/>`, font.Color.RGB)\n\t}\n\tif font.B != nil {\n\t\tresult += \"<b/>\"\n\t}\n\tif font.I != nil {\n\t\tresult += \"<i/>\"\n\t}\n\tif font.U != nil {\n\t\tresult += \"<u/>\"\n\t}\n\treturn result + \"</font>\", nil\n}\n\n// xlsxVal directly maps the val element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxVal struct {\n\tVal string `xml:\"val,attr,omitempty\"`\n}\n\nfunc (val *xlsxVal) Equals(other xlsxVal) bool {\n\treturn val.Val == other.Val\n}\n\n// xlsxFills directly maps the fills element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxFills struct {\n\tCount int        `xml:\"count,attr\"`\n\tFill  []xlsxFill `xml:\"fill,omitempty\"`\n}\n\nfunc (fills *xlsxFills) Marshal(outputFillMap map[int]int) (string, error) {\n\tvar subparts string\n\tvar emittedCount int\n\tfor i, fill := range fills.Fill {\n\t\txfill, err := fill.Marshal()\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif xfill != \"\" {\n\t\t\toutputFillMap[i] = emittedCount\n\t\t\temittedCount++\n\t\t\tsubparts += xfill\n\t\t}\n\t}\n\tvar result string\n\tif emittedCount > 0 {\n\t\tresult = fmt.Sprintf(`<fills count=\"%d\">`, emittedCount)\n\t\tresult += subparts\n\t\tresult += `</fills>`\n\t}\n\treturn result, nil\n}\n\n// xlsxFill directly maps the fill element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxFill struct {\n\tPatternFill xlsxPatternFill `xml:\"patternFill,omitempty\"`\n}\n\nfunc (fill *xlsxFill) Equals(other xlsxFill) bool {\n\treturn fill.PatternFill.Equals(other.PatternFill)\n}\n\nfunc (fill *xlsxFill) Marshal() (result string, err error) {\n\tif fill.PatternFill.PatternType != \"\" {\n\t\tvar xpatternFill string\n\t\tresult = `<fill>`\n\n\t\txpatternFill, err = fill.PatternFill.Marshal()\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tresult += xpatternFill\n\t\tresult += `</fill>`\n\t}\n\treturn\n}\n\n// xlsxPatternFill directly maps the patternFill element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxPatternFill struct {\n\tPatternType string    `xml:\"patternType,attr,omitempty\"`\n\tFgColor     xlsxColor `xml:\"fgColor,omitempty\"`\n\tBgColor     xlsxColor `xml:\"bgColor,omitempty\"`\n}\n\nfunc (patternFill *xlsxPatternFill) Equals(other xlsxPatternFill) bool {\n\treturn patternFill.PatternType == other.PatternType && patternFill.FgColor.Equals(other.FgColor) && patternFill.BgColor.Equals(other.BgColor)\n}\n\nfunc (patternFill *xlsxPatternFill) Marshal() (result string, err error) {\n\tresult = fmt.Sprintf(`<patternFill patternType=\"%s\"`, patternFill.PatternType)\n\tending := `/>`\n\tterminator := \"\"\n\tsubparts := \"\"\n\tif patternFill.FgColor.RGB != \"\" {\n\t\tending = `>`\n\t\tterminator = \"</patternFill>\"\n\t\tsubparts += fmt.Sprintf(`<fgColor rgb=\"%s\"/>`, patternFill.FgColor.RGB)\n\t}\n\tif patternFill.BgColor.RGB != \"\" {\n\t\tending = `>`\n\t\tterminator = \"</patternFill>\"\n\t\tsubparts += fmt.Sprintf(`<bgColor rgb=\"%s\"/>`, patternFill.BgColor.RGB)\n\t}\n\tresult += ending\n\tresult += subparts\n\tresult += terminator\n\treturn\n}\n\n// xlsxColor is a common mapping used for both the fgColor and bgColor\n// elements in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxColor struct {\n\tRGB   string  `xml:\"rgb,attr,omitempty\"`\n\tTheme *int    `xml:\"theme,attr,omitempty\"`\n\tTint  float64 `xml:\"tint,attr,omitempty\"`\n}\n\nfunc (color *xlsxColor) Equals(other xlsxColor) bool {\n\treturn color.RGB == other.RGB\n}\n\n// xlsxBorders directly maps the borders element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxBorders struct {\n\tCount  int          `xml:\"count,attr\"`\n\tBorder []xlsxBorder `xml:\"border\"`\n}\n\nfunc (borders *xlsxBorders) Marshal(outputBorderMap map[int]int) (result string, err error) {\n\tresult = \"\"\n\temittedCount := 0\n\tsubparts := \"\"\n\tfor i, border := range borders.Border {\n\t\tvar xborder string\n\t\txborder, err = border.Marshal()\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tif xborder != \"\" {\n\t\t\toutputBorderMap[i] = emittedCount\n\t\t\temittedCount++\n\t\t\tsubparts += xborder\n\t\t}\n\t}\n\tif emittedCount > 0 {\n\t\tresult += fmt.Sprintf(`<borders count=\"%d\">`, emittedCount)\n\t\tresult += subparts\n\t\tresult += `</borders>`\n\t}\n\treturn\n}\n\n// xlsxBorder directly maps the border element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxBorder struct {\n\tLeft   xlsxLine `xml:\"left,omitempty\"`\n\tRight  xlsxLine `xml:\"right,omitempty\"`\n\tTop    xlsxLine `xml:\"top,omitempty\"`\n\tBottom xlsxLine `xml:\"bottom,omitempty\"`\n}\n\nfunc (border *xlsxBorder) Equals(other xlsxBorder) bool {\n\treturn border.Left.Equals(other.Left) && border.Right.Equals(other.Right) && border.Top.Equals(other.Top) && border.Bottom.Equals(other.Bottom)\n}\n\n// To get borders to work correctly in Excel, you have to always start with an\n// empty set of borders. There was logic in this function that would strip out\n// empty elements, but unfortunately that would cause the border to fail.\n\nfunc (border *xlsxBorder) Marshal() (result string, err error) {\n\tsubparts := \"\"\n\tsubparts += fmt.Sprintf(`<left style=\"%s\">`, border.Left.Style)\n\tif border.Left.Color.RGB != \"\" {\n\t\tsubparts += fmt.Sprintf(`<color rgb=\"%s\"/>`, border.Left.Color.RGB)\n\t}\n\tsubparts += `</left>`\n\n\tsubparts += fmt.Sprintf(`<right style=\"%s\">`, border.Right.Style)\n\tif border.Right.Color.RGB != \"\" {\n\t\tsubparts += fmt.Sprintf(`<color rgb=\"%s\"/>`, border.Right.Color.RGB)\n\t}\n\tsubparts += `</right>`\n\n\tsubparts += fmt.Sprintf(`<top style=\"%s\">`, border.Top.Style)\n\tif border.Top.Color.RGB != \"\" {\n\t\tsubparts += fmt.Sprintf(`<color rgb=\"%s\"/>`, border.Top.Color.RGB)\n\t}\n\tsubparts += `</top>`\n\n\tsubparts += fmt.Sprintf(`<bottom style=\"%s\">`, border.Bottom.Style)\n\tif border.Bottom.Color.RGB != \"\" {\n\t\tsubparts += fmt.Sprintf(`<color rgb=\"%s\"/>`, border.Bottom.Color.RGB)\n\t}\n\tsubparts += `</bottom>`\n\n\tresult += `<border>`\n\tresult += subparts\n\tresult += `</border>`\n\treturn\n}\n\n// xlsxLine directly maps the line style element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxLine struct {\n\tStyle string    `xml:\"style,attr,omitempty\"`\n\tColor xlsxColor `xml:\"color,omitempty\"`\n}\n\nfunc (line *xlsxLine) Equals(other xlsxLine) bool {\n\treturn line.Style == other.Style && line.Color.Equals(other.Color)\n}\n\ntype xlsxCellStyles struct {\n\tXMLName   xml.Name        `xml:\"cellStyles\"`\n\tCount     int             `xml:\"count,attr\"`\n\tCellStyle []xlsxCellStyle `xml:\"cellStyle,omitempty\"`\n}\n\nfunc (cellStyles *xlsxCellStyles) Marshal() (result string, err error) {\n\tif cellStyles.Count > 0 {\n\t\tresult = fmt.Sprintf(`<cellStyles count=\"%d\">`, cellStyles.Count)\n\t\tfor _, cellStyle := range cellStyles.CellStyle {\n\t\t\tvar xCellStyle []byte\n\t\t\txCellStyle, err = xml.Marshal(cellStyle)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tresult += string(xCellStyle)\n\t\t}\n\t\tresult += `</cellStyles>`\n\t}\n\treturn\n\n}\n\ntype xlsxCellStyle struct {\n\tXMLName       xml.Name `xml:\"cellStyle\"`\n\tBuiltInId     *int     `xml:\"builtInId,attr,omitempty\"`\n\tCustomBuiltIn *bool    `xml:\"customBuiltIn,attr,omitempty\"`\n\tHidden        *bool    `xml:\"hidden,attr,omitempty\"`\n\tILevel        *bool    `xml:\"iLevel,attr,omitempty\"`\n\tName          string   `xml:\"name,attr\"`\n\tXfId          int      `xml:\"xfId,attr\"`\n}\n\n// xlsxCellStyleXfs directly maps the cellStyleXfs element in the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxCellStyleXfs struct {\n\tCount int      `xml:\"count,attr\"`\n\tXf    []xlsxXf `xml:\"xf,omitempty\"`\n}\n\nfunc (cellStyleXfs *xlsxCellStyleXfs) Marshal(outputBorderMap, outputFillMap, outputFontMap map[int]int) (result string, err error) {\n\tif cellStyleXfs.Count > 0 {\n\t\tresult = fmt.Sprintf(`<cellStyleXfs count=\"%d\">`, cellStyleXfs.Count)\n\t\tfor _, xf := range cellStyleXfs.Xf {\n\t\t\tvar xxf string\n\t\t\txxf, err = xf.Marshal(outputBorderMap, outputFillMap, outputFontMap)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tresult += xxf\n\t\t}\n\t\tresult += `</cellStyleXfs>`\n\t}\n\treturn\n}\n\n// xlsxCellXfs directly maps the cellXfs element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxCellXfs struct {\n\tCount int      `xml:\"count,attr\"`\n\tXf    []xlsxXf `xml:\"xf,omitempty\"`\n}\n\nfunc (cellXfs *xlsxCellXfs) Marshal(outputBorderMap, outputFillMap, outputFontMap map[int]int) (result string, err error) {\n\tif cellXfs.Count > 0 {\n\t\tresult = fmt.Sprintf(`<cellXfs count=\"%d\">`, cellXfs.Count)\n\t\tfor _, xf := range cellXfs.Xf {\n\t\t\tvar xxf string\n\t\t\txxf, err = xf.Marshal(outputBorderMap, outputFillMap, outputFontMap)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tresult += xxf\n\t\t}\n\t\tresult += `</cellXfs>`\n\t}\n\treturn\n}\n\n// xlsxXf directly maps the xf element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxXf struct {\n\tApplyAlignment    bool          `xml:\"applyAlignment,attr\"`\n\tApplyBorder       bool          `xml:\"applyBorder,attr\"`\n\tApplyFont         bool          `xml:\"applyFont,attr\"`\n\tApplyFill         bool          `xml:\"applyFill,attr\"`\n\tApplyNumberFormat bool          `xml:\"applyNumberFormat,attr\"`\n\tApplyProtection   bool          `xml:\"applyProtection,attr\"`\n\tBorderId          int           `xml:\"borderId,attr\"`\n\tFillId            int           `xml:\"fillId,attr\"`\n\tFontId            int           `xml:\"fontId,attr\"`\n\tNumFmtId          int           `xml:\"numFmtId,attr\"`\n\tXfId              *int          `xml:\"xfId,attr,omitempty\"`\n\tAlignment         xlsxAlignment `xml:\"alignment\"`\n}\n\nfunc (xf *xlsxXf) Equals(other xlsxXf) bool {\n\treturn xf.ApplyAlignment == other.ApplyAlignment &&\n\t\txf.ApplyBorder == other.ApplyBorder &&\n\t\txf.ApplyFont == other.ApplyFont &&\n\t\txf.ApplyFill == other.ApplyFill &&\n\t\txf.ApplyProtection == other.ApplyProtection &&\n\t\txf.BorderId == other.BorderId &&\n\t\txf.FillId == other.FillId &&\n\t\txf.FontId == other.FontId &&\n\t\txf.NumFmtId == other.NumFmtId &&\n\t\t(xf.XfId == other.XfId ||\n\t\t\t((xf.XfId != nil && other.XfId != nil) &&\n\t\t\t\t*xf.XfId == *other.XfId)) &&\n\t\txf.Alignment.Equals(other.Alignment)\n}\n\nfunc (xf *xlsxXf) Marshal(outputBorderMap, outputFillMap, outputFontMap map[int]int) (result string, err error) {\n\tresult = fmt.Sprintf(`<xf applyAlignment=\"%b\" applyBorder=\"%b\" applyFont=\"%b\" applyFill=\"%b\" applyNumberFormat=\"%b\" applyProtection=\"%b\" borderId=\"%d\" fillId=\"%d\" fontId=\"%d\" numFmtId=\"%d\"`, bool2Int(xf.ApplyAlignment), bool2Int(xf.ApplyBorder), bool2Int(xf.ApplyFont), bool2Int(xf.ApplyFill), bool2Int(xf.ApplyNumberFormat), bool2Int(xf.ApplyProtection), outputBorderMap[xf.BorderId], outputFillMap[xf.FillId], outputFontMap[xf.FontId], xf.NumFmtId)\n\tif xf.XfId != nil {\n\t\tresult += fmt.Sprintf(` xfId=\"%d\"`, *xf.XfId)\n\t}\n\tresult += \">\"\n\txAlignment, err := xf.Alignment.Marshal()\n\tif err != nil {\n\t\treturn result, err\n\t}\n\treturn result + xAlignment + \"</xf>\", nil\n}\n\ntype xlsxAlignment struct {\n\tHorizontal   string `xml:\"horizontal,attr\"`\n\tIndent       int    `xml:\"indent,attr\"`\n\tShrinkToFit  bool   `xml:\"shrinkToFit,attr\"`\n\tTextRotation int    `xml:\"textRotation,attr\"`\n\tVertical     string `xml:\"vertical,attr\"`\n\tWrapText     bool   `xml:\"wrapText,attr\"`\n}\n\nfunc (alignment *xlsxAlignment) Equals(other xlsxAlignment) bool {\n\treturn alignment.Horizontal == other.Horizontal &&\n\t\talignment.Indent == other.Indent &&\n\t\talignment.ShrinkToFit == other.ShrinkToFit &&\n\t\talignment.TextRotation == other.TextRotation &&\n\t\talignment.Vertical == other.Vertical &&\n\t\talignment.WrapText == other.WrapText\n}\n\nfunc (alignment *xlsxAlignment) Marshal() (result string, err error) {\n\tif alignment.Horizontal == \"\" {\n\t\talignment.Horizontal = \"general\"\n\t}\n\tif alignment.Vertical == \"\" {\n\t\talignment.Vertical = \"bottom\"\n\t}\n\treturn fmt.Sprintf(`<alignment horizontal=\"%s\" indent=\"%d\" shrinkToFit=\"%b\" textRotation=\"%d\" vertical=\"%s\" wrapText=\"%b\"/>`, alignment.Horizontal, alignment.Indent, bool2Int(alignment.ShrinkToFit), alignment.TextRotation, alignment.Vertical, bool2Int(alignment.WrapText)), nil\n}\n\nfunc bool2Int(b bool) int {\n\tif b {\n\t\treturn 1\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/xmlTheme.go",
    "content": "package xlsx\n\nimport \"encoding/xml\"\n\n// xlsxTheme directly maps the theme element in the namespace\n// http://schemas.openxmlformats.org/drawingml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxTheme struct {\n\tThemeElements xlsxThemeElements `xml:\"themeElements\"`\n}\n\n// xlsxThemeElements directly maps the themeElements element in the namespace\n// http://schemas.openxmlformats.org/drawingml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxThemeElements struct {\n\tClrScheme xlsxClrScheme `xml:\"clrScheme\"`\n}\n\n// xlsxClrScheme directly maps the clrScheme element in the namespace\n// http://schemas.openxmlformats.org/drawingml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxClrScheme struct {\n\tName     string            `xml:\"name,attr\"`\n\tChildren []xlsxClrSchemeEl `xml:\",any\"`\n}\n\n// xlsxClrScheme maps to children of the clrScheme element in the namespace\n// http://schemas.openxmlformats.org/drawingml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxClrSchemeEl struct {\n\tXMLName xml.Name\n\tSysClr  *xlsxSysClr  `xml:\"sysClr\"`\n\tSrgbClr *xlsxSrgbClr `xml:\"srgbClr\"`\n}\n\n// xlsxSysClr directly maps the sysClr element in the namespace\n// http://schemas.openxmlformats.org/drawingml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSysClr struct {\n\tVal     string `xml:\"val,attr\"`\n\tLastClr string `xml:\"lastClr,attr\"`\n}\n\n// xlsxSrgbClr directly maps the srgbClr element in the namespace\n// http://schemas.openxmlformats.org/drawingml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSrgbClr struct {\n\tVal string `xml:\"val,attr\"`\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/xmlWorkbook.go",
    "content": "package xlsx\n\nimport (\n\t\"archive/zip\"\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"io\"\n)\n\nconst (\n\t// sheet state values as defined by\n\t// http://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.sheetstatevalues.aspx\n\tsheetStateVisible    = \"visible\"\n\tsheetStateHidden     = \"hidden\"\n\tsheetStateVeryHidden = \"veryHidden\"\n)\n\n// xmlxWorkbookRels contains xmlxWorkbookRelations\n// which maps sheet id and sheet XML\ntype xlsxWorkbookRels struct {\n\tXMLName       xml.Name               `xml:\"http://schemas.openxmlformats.org/package/2006/relationships Relationships\"`\n\tRelationships []xlsxWorkbookRelation `xml:\"Relationship\"`\n}\n\n// xmlxWorkbookRelation maps sheet id and xl/worksheets/sheet%d.xml\ntype xlsxWorkbookRelation struct {\n\tId     string `xml:\",attr\"`\n\tTarget string `xml:\",attr\"`\n\tType   string `xml:\",attr\"`\n}\n\n// xlsxWorkbook directly maps the workbook element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxWorkbook struct {\n\tXMLName            xml.Name               `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main workbook\"`\n\tFileVersion        xlsxFileVersion        `xml:\"fileVersion\"`\n\tWorkbookPr         xlsxWorkbookPr         `xml:\"workbookPr\"`\n\tWorkbookProtection xlsxWorkbookProtection `xml:\"workbookProtection\"`\n\tBookViews          xlsxBookViews          `xml:\"bookViews\"`\n\tSheets             xlsxSheets             `xml:\"sheets\"`\n\tDefinedNames       xlsxDefinedNames       `xml:\"definedNames\"`\n\tCalcPr             xlsxCalcPr             `xml:\"calcPr\"`\n}\n\n// xlsxWorkbookProtection directly maps the workbookProtection element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxWorkbookProtection struct {\n\t// We don't need this, yet.\n}\n\n// xlsxFileVersion directly maps the fileVersion element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxFileVersion struct {\n\tAppName      string `xml:\"appName,attr,omitempty\"`\n\tLastEdited   string `xml:\"lastEdited,attr,omitempty\"`\n\tLowestEdited string `xml:\"lowestEdited,attr,omitempty\"`\n\tRupBuild     string `xml:\"rupBuild,attr,omitempty\"`\n}\n\n// xlsxWorkbookPr directly maps the workbookPr element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxWorkbookPr struct {\n\tDefaultThemeVersion string `xml:\"defaultThemeVersion,attr,omitempty\"`\n\tBackupFile          bool   `xml:\"backupFile,attr,omitempty\"`\n\tShowObjects         string `xml:\"showObjects,attr,omitempty\"`\n\tDate1904            bool   `xml:\"date1904,attr\"`\n}\n\n// xlsxBookViews directly maps the bookViews element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxBookViews struct {\n\tWorkBookView []xlsxWorkBookView `xml:\"workbookView\"`\n}\n\n// xlsxWorkBookView directly maps the workbookView element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxWorkBookView struct {\n\tActiveTab            int    `xml:\"activeTab,attr,omitempty\"`\n\tFirstSheet           int    `xml:\"firstSheet,attr,omitempty\"`\n\tShowHorizontalScroll bool   `xml:\"showHorizontalScroll,attr,omitempty\"`\n\tShowVerticalScroll   bool   `xml:\"showVerticalScroll,attr,omitempty\"`\n\tShowSheetTabs        bool   `xml:\"showSheetTabs,attr,omitempty\"`\n\tTabRatio             int    `xml:\"tabRatio,attr,omitempty\"`\n\tWindowHeight         int    `xml:\"windowHeight,attr,omitempty\"`\n\tWindowWidth          int    `xml:\"windowWidth,attr,omitempty\"`\n\tXWindow              string `xml:\"xWindow,attr,omitempty\"`\n\tYWindow              string `xml:\"yWindow,attr,omitempty\"`\n}\n\n// xlsxSheets directly maps the sheets element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheets struct {\n\tSheet []xlsxSheet `xml:\"sheet\"`\n}\n\n// xlsxSheet directly maps the sheet element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheet struct {\n\tName    string `xml:\"name,attr,omitempty\"`\n\tSheetId string `xml:\"sheetId,attr,omitempty\"`\n\tId      string `xml:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty\"`\n\tState   string `xml:\"state,attr,omitempty\"`\n}\n\n// xlsxDefinedNames directly maps the definedNames element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\ntype xlsxDefinedNames struct {\n\tDefinedName []xlsxDefinedName `xml:\"definedName\"`\n}\n\n// xlsxDefinedName directly maps the definedName element from the\n// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main\n// - currently I have not checked it for completeness - it does as\n// much as I need.\n// for a descriptions of the attributes see\n// https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.definedname.aspx\ntype xlsxDefinedName struct {\n\tData              string `xml:\",chardata\"`\n\tName              string `xml:\"name,attr\"`\n\tComment           string `xml:\"comment,attr,omitempty\"`\n\tCustomMenu        string `xml:\"customMenu,attr,omitempty\"`\n\tDescription       string `xml:\"description,attr,omitempty\"`\n\tHelp              string `xml:\"help,attr,omitempty\"`\n\tShortcutKey       string `xml:\"shortcutKey,attr,omitempty\"`\n\tStatusBar         string `xml:\"statusBar,attr,omitempty\"`\n\tLocalSheetID      int    `xml:\"localSheetId,attr,omitempty\"`\n\tFunctionGroupID   int    `xml:\"functionGroupId,attr,omitempty\"`\n\tFunction          bool   `xml:\"function,attr,omitempty\"`\n\tHidden            bool   `xml:\"hidden,attr,omitempty\"`\n\tVbProcedure       bool   `xml:\"vbProcedure,attr,omitempty\"`\n\tPublishToServer   bool   `xml:\"publishToServer,attr,omitempty\"`\n\tWorkbookParameter bool   `xml:\"workbookParameter,attr,omitempty\"`\n\tXlm               bool   `xml:\"xml,attr,omitempty\"`\n}\n\n// xlsxCalcPr directly maps the calcPr element from the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxCalcPr struct {\n\tCalcId       string  `xml:\"calcId,attr,omitempty\"`\n\tIterateCount int     `xml:\"iterateCount,attr,omitempty\"`\n\tRefMode      string  `xml:\"refMode,attr,omitempty\"`\n\tIterate      bool    `xml:\"iterate,attr,omitempty\"`\n\tIterateDelta float64 `xml:\"iterateDelta,attr,omitempty\"`\n}\n\n// Helper function to lookup the file corresponding to a xlsxSheet object in the worksheets map\nfunc worksheetFileForSheet(sheet xlsxSheet, worksheets map[string]*zip.File, sheetXMLMap map[string]string) *zip.File {\n\tsheetName, ok := sheetXMLMap[sheet.Id]\n\tif !ok {\n\t\tif sheet.SheetId != \"\" {\n\t\t\tsheetName = fmt.Sprintf(\"sheet%s\", sheet.SheetId)\n\t\t} else {\n\t\t\tsheetName = fmt.Sprintf(\"sheet%s\", sheet.Id)\n\t\t}\n\t}\n\treturn worksheets[sheetName]\n}\n\n// getWorksheetFromSheet() is an internal helper function to open a\n// sheetN.xml file, referred to by an xlsx.xlsxSheet struct, from the XLSX\n// file and unmarshal it an xlsx.xlsxWorksheet struct\nfunc getWorksheetFromSheet(sheet xlsxSheet, worksheets map[string]*zip.File, sheetXMLMap map[string]string, rowLimit int) (*xlsxWorksheet, error) {\n\tvar r io.Reader\n\tvar decoder *xml.Decoder\n\tvar worksheet *xlsxWorksheet\n\tvar err error\n\tworksheet = new(xlsxWorksheet)\n\n\tf := worksheetFileForSheet(sheet, worksheets, sheetXMLMap)\n\tif f == nil {\n\t\treturn nil, fmt.Errorf(\"Unable to find sheet '%s'\", sheet)\n\t}\n\tif rc, err := f.Open(); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\tdefer rc.Close()\n\t\tr = rc\n\t}\n\n\tif rowLimit != NoRowLimit {\n\t\tr, err = truncateSheetXML(r, rowLimit)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tdecoder = xml.NewDecoder(r)\n\terr = decoder.Decode(worksheet)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn worksheet, nil\n}\n"
  },
  {
    "path": "vendor/github.com/tealeg/xlsx/xmlWorksheet.go",
    "content": "package xlsx\n\nimport (\n\t\"encoding/xml\"\n\t\"strings\"\n)\n\n// xlsxWorksheet directly maps the worksheet element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxWorksheet struct {\n\tXMLName       xml.Name          `xml:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main worksheet\"`\n\tSheetPr       xlsxSheetPr       `xml:\"sheetPr\"`\n\tDimension     xlsxDimension     `xml:\"dimension\"`\n\tSheetViews    xlsxSheetViews    `xml:\"sheetViews\"`\n\tSheetFormatPr xlsxSheetFormatPr `xml:\"sheetFormatPr\"`\n\tCols          *xlsxCols         `xml:\"cols,omitempty\"`\n\tSheetData     xlsxSheetData     `xml:\"sheetData\"`\n\tAutoFilter    *xlsxAutoFilter   `xml:\"autoFilter,omitempty\"`\n\tMergeCells    *xlsxMergeCells   `xml:\"mergeCells,omitempty\"`\n\tPrintOptions  xlsxPrintOptions  `xml:\"printOptions\"`\n\tPageMargins   xlsxPageMargins   `xml:\"pageMargins\"`\n\tPageSetUp     xlsxPageSetUp     `xml:\"pageSetup\"`\n\tHeaderFooter  xlsxHeaderFooter  `xml:\"headerFooter\"`\n}\n\n// xlsxHeaderFooter directly maps the headerFooter element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxHeaderFooter struct {\n\tDifferentFirst   bool            `xml:\"differentFirst,attr\"`\n\tDifferentOddEven bool            `xml:\"differentOddEven,attr\"`\n\tOddHeader        []xlsxOddHeader `xml:\"oddHeader\"`\n\tOddFooter        []xlsxOddFooter `xml:\"oddFooter\"`\n}\n\n// xlsxOddHeader directly maps the oddHeader element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxOddHeader struct {\n\tContent string `xml:\",chardata\"`\n}\n\n// xlsxOddFooter directly maps the oddFooter element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxOddFooter struct {\n\tContent string `xml:\",chardata\"`\n}\n\n// xlsxPageSetUp directly maps the pageSetup element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxPageSetUp struct {\n\tPaperSize          string  `xml:\"paperSize,attr\"`\n\tScale              int     `xml:\"scale,attr\"`\n\tFirstPageNumber    int     `xml:\"firstPageNumber,attr\"`\n\tFitToWidth         int     `xml:\"fitToWidth,attr\"`\n\tFitToHeight        int     `xml:\"fitToHeight,attr\"`\n\tPageOrder          string  `xml:\"pageOrder,attr\"`\n\tOrientation        string  `xml:\"orientation,attr\"`\n\tUsePrinterDefaults bool    `xml:\"usePrinterDefaults,attr\"`\n\tBlackAndWhite      bool    `xml:\"blackAndWhite,attr\"`\n\tDraft              bool    `xml:\"draft,attr\"`\n\tCellComments       string  `xml:\"cellComments,attr\"`\n\tUseFirstPageNumber bool    `xml:\"useFirstPageNumber,attr\"`\n\tHorizontalDPI      float32 `xml:\"horizontalDpi,attr\"`\n\tVerticalDPI        float32 `xml:\"verticalDpi,attr\"`\n\tCopies             int     `xml:\"copies,attr\"`\n}\n\n// xlsxPrintOptions directly maps the printOptions element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxPrintOptions struct {\n\tHeadings           bool `xml:\"headings,attr\"`\n\tGridLines          bool `xml:\"gridLines,attr\"`\n\tGridLinesSet       bool `xml:\"gridLinesSet,attr\"`\n\tHorizontalCentered bool `xml:\"horizontalCentered,attr\"`\n\tVerticalCentered   bool `xml:\"verticalCentered,attr\"`\n}\n\n// xlsxPageMargins directly maps the pageMargins element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxPageMargins struct {\n\tLeft   float64 `xml:\"left,attr\"`\n\tRight  float64 `xml:\"right,attr\"`\n\tTop    float64 `xml:\"top,attr\"`\n\tBottom float64 `xml:\"bottom,attr\"`\n\tHeader float64 `xml:\"header,attr\"`\n\tFooter float64 `xml:\"footer,attr\"`\n}\n\n// xlsxSheetFormatPr directly maps the sheetFormatPr element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheetFormatPr struct {\n\tDefaultColWidth  float64 `xml:\"defaultColWidth,attr,omitempty\"`\n\tDefaultRowHeight float64 `xml:\"defaultRowHeight,attr\"`\n\tOutlineLevelCol  uint8   `xml:\"outlineLevelCol,attr,omitempty\"`\n\tOutlineLevelRow  uint8   `xml:\"outlineLevelRow,attr,omitempty\"`\n}\n\n// xlsxSheetViews directly maps the sheetViews element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheetViews struct {\n\tSheetView []xlsxSheetView `xml:\"sheetView\"`\n}\n\n// xlsxSheetView directly maps the sheetView element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheetView struct {\n\tWindowProtection        bool            `xml:\"windowProtection,attr\"`\n\tShowFormulas            bool            `xml:\"showFormulas,attr\"`\n\tShowGridLines           bool            `xml:\"showGridLines,attr\"`\n\tShowRowColHeaders       bool            `xml:\"showRowColHeaders,attr\"`\n\tShowZeros               bool            `xml:\"showZeros,attr\"`\n\tRightToLeft             bool            `xml:\"rightToLeft,attr\"`\n\tTabSelected             bool            `xml:\"tabSelected,attr\"`\n\tShowOutlineSymbols      bool            `xml:\"showOutlineSymbols,attr\"`\n\tDefaultGridColor        bool            `xml:\"defaultGridColor,attr\"`\n\tView                    string          `xml:\"view,attr\"`\n\tTopLeftCell             string          `xml:\"topLeftCell,attr\"`\n\tColorId                 int             `xml:\"colorId,attr\"`\n\tZoomScale               float64         `xml:\"zoomScale,attr\"`\n\tZoomScaleNormal         float64         `xml:\"zoomScaleNormal,attr\"`\n\tZoomScalePageLayoutView float64         `xml:\"zoomScalePageLayoutView,attr\"`\n\tWorkbookViewId          int             `xml:\"workbookViewId,attr\"`\n\tPane                    *xlsxPane       `xml:\"pane\"`\n\tSelection               []xlsxSelection `xml:\"selection\"`\n}\n\n// xlsxSelection directly maps the selection element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSelection struct {\n\tPane         string `xml:\"pane,attr\"`\n\tActiveCell   string `xml:\"activeCell,attr\"`\n\tActiveCellId int    `xml:\"activeCellId,attr\"`\n\tSQRef        string `xml:\"sqref,attr\"`\n}\n\n// xlsxSelection directly maps the selection element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxPane struct {\n\tXSplit      float64 `xml:\"xSplit,attr\"`\n\tYSplit      float64 `xml:\"ySplit,attr\"`\n\tTopLeftCell string  `xml:\"topLeftCell,attr\"`\n\tActivePane  string  `xml:\"activePane,attr\"`\n\tState       string  `xml:\"state,attr\"` // Either \"split\" or \"frozen\"\n}\n\n// xlsxSheetPr directly maps the sheetPr element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheetPr struct {\n\tFilterMode  bool              `xml:\"filterMode,attr\"`\n\tPageSetUpPr []xlsxPageSetUpPr `xml:\"pageSetUpPr\"`\n}\n\n// xlsxPageSetUpPr directly maps the pageSetupPr element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxPageSetUpPr struct {\n\tFitToPage bool `xml:\"fitToPage,attr\"`\n}\n\n// xlsxCols directly maps the cols element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxCols struct {\n\tCol []xlsxCol `xml:\"col\"`\n}\n\n// xlsxCol directly maps the col element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxCol struct {\n\tCollapsed    bool    `xml:\"collapsed,attr\"`\n\tHidden       bool    `xml:\"hidden,attr\"`\n\tMax          int     `xml:\"max,attr\"`\n\tMin          int     `xml:\"min,attr\"`\n\tStyle        int     `xml:\"style,attr\"`\n\tWidth        float64 `xml:\"width,attr\"`\n\tCustomWidth  bool    `xml:\"customWidth,attr,omitempty\"`\n\tOutlineLevel uint8   `xml:\"outlineLevel,attr,omitempty\"`\n}\n\n// xlsxDimension directly maps the dimension element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxDimension struct {\n\tRef string `xml:\"ref,attr\"`\n}\n\n// xlsxSheetData directly maps the sheetData element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxSheetData struct {\n\tXMLName xml.Name  `xml:\"sheetData\"`\n\tRow     []xlsxRow `xml:\"row\"`\n}\n\n// xlsxRow directly maps the row element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxRow struct {\n\tR            int     `xml:\"r,attr\"`\n\tSpans        string  `xml:\"spans,attr,omitempty\"`\n\tHidden       bool    `xml:\"hidden,attr,omitempty\"`\n\tC            []xlsxC `xml:\"c\"`\n\tHt           string  `xml:\"ht,attr,omitempty\"`\n\tCustomHeight bool    `xml:\"customHeight,attr,omitempty\"`\n\tOutlineLevel uint8   `xml:\"outlineLevel,attr,omitempty\"`\n}\n\ntype xlsxAutoFilter struct {\n\tRef string `xml:\"ref,attr\"`\n}\n\ntype xlsxMergeCell struct {\n\tRef string `xml:\"ref,attr\"` // ref: horiz \"A1:C1\", vert \"B3:B6\", both  \"D3:G4\"\n}\n\ntype xlsxMergeCells struct {\n\tXMLName xml.Name        //`xml:\"mergeCells,omitempty\"`\n\tCount   int             `xml:\"count,attr,omitempty\"`\n\tCells   []xlsxMergeCell `xml:\"mergeCell,omitempty\"`\n}\n\n// Return the cartesian extent of a merged cell range from its origin\n// cell (the closest merged cell to the to left of the sheet.\nfunc (mc *xlsxMergeCells) getExtent(cellRef string) (int, int, error) {\n\tif mc == nil {\n\t\treturn 0, 0, nil\n\t}\n\tfor _, cell := range mc.Cells {\n\t\tif strings.HasPrefix(cell.Ref, cellRef+\":\") {\n\t\t\tparts := strings.Split(cell.Ref, \":\")\n\t\t\tstartx, starty, err := GetCoordsFromCellIDString(parts[0])\n\t\t\tif err != nil {\n\t\t\t\treturn -1, -1, err\n\t\t\t}\n\t\t\tendx, endy, err := GetCoordsFromCellIDString(parts[1])\n\t\t\tif err != nil {\n\t\t\t\treturn -2, -2, err\n\t\t\t}\n\t\t\treturn endx - startx, endy - starty, nil\n\t\t}\n\t}\n\treturn 0, 0, nil\n}\n\n// xlsxC directly maps the c element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxC struct {\n\tR  string  `xml:\"r,attr\"`           // Cell ID, e.g. A1\n\tS  int     `xml:\"s,attr,omitempty\"` // Style reference.\n\tT  string  `xml:\"t,attr,omitempty\"` // Type.\n\tF  *xlsxF  `xml:\"f,omitempty\"`      // Formula\n\tV  string  `xml:\"v,omitempty\"`      // Value\n\tIs *xlsxSI `xml:\"is,omitempty\"`     // Inline String.\n}\n\n// xlsxF directly maps the f element in the namespace\n// http://schemas.openxmlformats.org/spreadsheetml/2006/main -\n// currently I have not checked it for completeness - it does as much\n// as I need.\ntype xlsxF struct {\n\tContent string `xml:\",chardata\"`\n\tT       string `xml:\"t,attr,omitempty\"`   // Formula type\n\tRef     string `xml:\"ref,attr,omitempty\"` // Shared formula ref\n\tSi      int    `xml:\"si,attr,omitempty\"`  // Shared formula index\n}\n\n// Create a new XLSX Worksheet with default values populated.\n// Strictly for internal use only!\nfunc newXlsxWorksheet() (worksheet *xlsxWorksheet) {\n\tworksheet = &xlsxWorksheet{}\n\tworksheet.SheetPr.FilterMode = false\n\tworksheet.SheetPr.PageSetUpPr = make([]xlsxPageSetUpPr, 1)\n\tworksheet.SheetPr.PageSetUpPr[0] = xlsxPageSetUpPr{FitToPage: false}\n\tworksheet.SheetViews.SheetView = make([]xlsxSheetView, 1)\n\tworksheet.SheetViews.SheetView[0] = xlsxSheetView{\n\t\tColorId:                 64,\n\t\tDefaultGridColor:        true,\n\t\tRightToLeft:             false,\n\t\tSelection:               make([]xlsxSelection, 1),\n\t\tShowFormulas:            false,\n\t\tShowGridLines:           true,\n\t\tShowOutlineSymbols:      true,\n\t\tShowRowColHeaders:       true,\n\t\tShowZeros:               true,\n\t\tTabSelected:             false,\n\t\tTopLeftCell:             \"A1\",\n\t\tView:                    \"normal\",\n\t\tWindowProtection:        false,\n\t\tWorkbookViewId:          0,\n\t\tZoomScale:               100,\n\t\tZoomScaleNormal:         100,\n\t\tZoomScalePageLayoutView: 100}\n\tworksheet.SheetViews.SheetView[0].Selection[0] = xlsxSelection{\n\t\tPane:         \"topLeft\",\n\t\tActiveCell:   \"A1\",\n\t\tActiveCellId: 0,\n\t\tSQRef:        \"A1\"}\n\tworksheet.SheetFormatPr.DefaultRowHeight = 12.85\n\tworksheet.PrintOptions.Headings = false\n\tworksheet.PrintOptions.GridLines = false\n\tworksheet.PrintOptions.GridLinesSet = true\n\tworksheet.PrintOptions.HorizontalCentered = false\n\tworksheet.PrintOptions.VerticalCentered = false\n\tworksheet.PageMargins.Left = 0.7875\n\tworksheet.PageMargins.Right = 0.7875\n\tworksheet.PageMargins.Top = 1.05277777777778\n\tworksheet.PageMargins.Bottom = 1.05277777777778\n\tworksheet.PageMargins.Header = 0.7875\n\tworksheet.PageMargins.Footer = 0.7875\n\tworksheet.PageSetUp.PaperSize = \"9\"\n\tworksheet.PageSetUp.Scale = 100\n\tworksheet.PageSetUp.FirstPageNumber = 1\n\tworksheet.PageSetUp.FitToWidth = 1\n\tworksheet.PageSetUp.FitToHeight = 1\n\tworksheet.PageSetUp.PageOrder = \"downThenOver\"\n\tworksheet.PageSetUp.Orientation = \"portrait\"\n\tworksheet.PageSetUp.UsePrinterDefaults = false\n\tworksheet.PageSetUp.BlackAndWhite = false\n\tworksheet.PageSetUp.Draft = false\n\tworksheet.PageSetUp.CellComments = \"none\"\n\tworksheet.PageSetUp.UseFirstPageNumber = true\n\tworksheet.PageSetUp.HorizontalDPI = 300\n\tworksheet.PageSetUp.VerticalDPI = 300\n\tworksheet.PageSetUp.Copies = 1\n\tworksheet.HeaderFooter.OddHeader = make([]xlsxOddHeader, 1)\n\tworksheet.HeaderFooter.OddHeader[0] = xlsxOddHeader{Content: `&C&\"Times New Roman,Regular\"&12&A`}\n\tworksheet.HeaderFooter.OddFooter = make([]xlsxOddFooter, 1)\n\tworksheet.HeaderFooter.OddFooter[0] = xlsxOddFooter{Content: `&C&\"Times New Roman,Regular\"&12Page &P`}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/0_importpath.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec // import \"github.com/ugorji/go/codec\"\n\n// This establishes that this package must be imported as github.com/ugorji/go/codec.\n// It makes forking easier, and plays well with pre-module releases of go.\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2012-2015 Ugorji Nwoke.\nAll rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/binc.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"math\"\n\t\"reflect\"\n\t\"time\"\n)\n\nconst bincDoPrune = true // No longer needed. Needed before as C lib did not support pruning.\n\n// vd as low 4 bits (there are 16 slots)\nconst (\n\tbincVdSpecial byte = iota\n\tbincVdPosInt\n\tbincVdNegInt\n\tbincVdFloat\n\n\tbincVdString\n\tbincVdByteArray\n\tbincVdArray\n\tbincVdMap\n\n\tbincVdTimestamp\n\tbincVdSmallInt\n\tbincVdUnicodeOther\n\tbincVdSymbol\n\n\tbincVdDecimal\n\t_               // open slot\n\t_               // open slot\n\tbincVdCustomExt = 0x0f\n)\n\nconst (\n\tbincSpNil byte = iota\n\tbincSpFalse\n\tbincSpTrue\n\tbincSpNan\n\tbincSpPosInf\n\tbincSpNegInf\n\tbincSpZeroFloat\n\tbincSpZero\n\tbincSpNegOne\n)\n\nconst (\n\tbincFlBin16 byte = iota\n\tbincFlBin32\n\t_ // bincFlBin32e\n\tbincFlBin64\n\t_ // bincFlBin64e\n\t// others not currently supported\n)\n\nfunc bincdesc(vd, vs byte) string {\n\tswitch vd {\n\tcase bincVdSpecial:\n\t\tswitch vs {\n\t\tcase bincSpNil:\n\t\t\treturn \"nil\"\n\t\tcase bincSpFalse:\n\t\t\treturn \"false\"\n\t\tcase bincSpTrue:\n\t\t\treturn \"true\"\n\t\tcase bincSpNan, bincSpPosInf, bincSpNegInf, bincSpZeroFloat:\n\t\t\treturn \"float\"\n\t\tcase bincSpZero:\n\t\t\treturn \"uint\"\n\t\tcase bincSpNegOne:\n\t\t\treturn \"int\"\n\t\tdefault:\n\t\t\treturn \"unknown\"\n\t\t}\n\tcase bincVdSmallInt, bincVdPosInt:\n\t\treturn \"uint\"\n\tcase bincVdNegInt:\n\t\treturn \"int\"\n\tcase bincVdFloat:\n\t\treturn \"float\"\n\tcase bincVdSymbol:\n\t\treturn \"string\"\n\tcase bincVdString:\n\t\treturn \"string\"\n\tcase bincVdByteArray:\n\t\treturn \"bytes\"\n\tcase bincVdTimestamp:\n\t\treturn \"time\"\n\tcase bincVdCustomExt:\n\t\treturn \"ext\"\n\tcase bincVdArray:\n\t\treturn \"array\"\n\tcase bincVdMap:\n\t\treturn \"map\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\ntype bincEncDriver struct {\n\tencDriverNoopContainerWriter\n\te *Encoder\n\th *BincHandle\n\tw *encWriterSwitch\n\tm map[string]uint16 // symbols\n\tb [16]byte          // scratch, used for encoding numbers - bigendian style\n\ts uint16            // symbols sequencer\n\t// c containerState\n\t// encDriverTrackContainerWriter\n\tnoBuiltInTypes\n\t// encNoSeparator\n\t// _ [1]uint64 // padding\n}\n\nfunc (e *bincEncDriver) EncodeNil() {\n\te.w.writen1(bincVdSpecial<<4 | bincSpNil)\n}\n\nfunc (e *bincEncDriver) EncodeTime(t time.Time) {\n\tif t.IsZero() {\n\t\te.EncodeNil()\n\t} else {\n\t\tbs := bincEncodeTime(t)\n\t\te.w.writen1(bincVdTimestamp<<4 | uint8(len(bs)))\n\t\te.w.writeb(bs)\n\t}\n}\n\nfunc (e *bincEncDriver) EncodeBool(b bool) {\n\tif b {\n\t\te.w.writen1(bincVdSpecial<<4 | bincSpTrue)\n\t} else {\n\t\te.w.writen1(bincVdSpecial<<4 | bincSpFalse)\n\t}\n}\n\nfunc (e *bincEncDriver) EncodeFloat32(f float32) {\n\tif f == 0 {\n\t\te.w.writen1(bincVdSpecial<<4 | bincSpZeroFloat)\n\t\treturn\n\t}\n\te.w.writen1(bincVdFloat<<4 | bincFlBin32)\n\tbigenHelper{e.b[:4], e.w}.writeUint32(math.Float32bits(f))\n}\n\nfunc (e *bincEncDriver) EncodeFloat64(f float64) {\n\tif f == 0 {\n\t\te.w.writen1(bincVdSpecial<<4 | bincSpZeroFloat)\n\t\treturn\n\t}\n\tbigen.PutUint64(e.b[:8], math.Float64bits(f))\n\tif bincDoPrune {\n\t\ti := 7\n\t\tfor ; i >= 0 && (e.b[i] == 0); i-- {\n\t\t}\n\t\ti++\n\t\tif i <= 6 {\n\t\t\te.w.writen1(bincVdFloat<<4 | 0x8 | bincFlBin64)\n\t\t\te.w.writen1(byte(i))\n\t\t\te.w.writeb(e.b[:i])\n\t\t\treturn\n\t\t}\n\t}\n\te.w.writen1(bincVdFloat<<4 | bincFlBin64)\n\te.w.writeb(e.b[:8])\n}\n\nfunc (e *bincEncDriver) encIntegerPrune(bd byte, pos bool, v uint64, lim uint8) {\n\tif lim == 4 {\n\t\tbigen.PutUint32(e.b[:lim], uint32(v))\n\t} else {\n\t\tbigen.PutUint64(e.b[:lim], v)\n\t}\n\tif bincDoPrune {\n\t\ti := pruneSignExt(e.b[:lim], pos)\n\t\te.w.writen1(bd | lim - 1 - byte(i))\n\t\te.w.writeb(e.b[i:lim])\n\t} else {\n\t\te.w.writen1(bd | lim - 1)\n\t\te.w.writeb(e.b[:lim])\n\t}\n}\n\nfunc (e *bincEncDriver) EncodeInt(v int64) {\n\t// const nbd byte = bincVdNegInt << 4\n\tif v >= 0 {\n\t\te.encUint(bincVdPosInt<<4, true, uint64(v))\n\t} else if v == -1 {\n\t\te.w.writen1(bincVdSpecial<<4 | bincSpNegOne)\n\t} else {\n\t\te.encUint(bincVdNegInt<<4, false, uint64(-v))\n\t}\n}\n\nfunc (e *bincEncDriver) EncodeUint(v uint64) {\n\te.encUint(bincVdPosInt<<4, true, v)\n}\n\nfunc (e *bincEncDriver) encUint(bd byte, pos bool, v uint64) {\n\tif v == 0 {\n\t\te.w.writen1(bincVdSpecial<<4 | bincSpZero)\n\t} else if pos && v >= 1 && v <= 16 {\n\t\te.w.writen1(bincVdSmallInt<<4 | byte(v-1))\n\t} else if v <= math.MaxUint8 {\n\t\te.w.writen2(bd|0x0, byte(v))\n\t} else if v <= math.MaxUint16 {\n\t\te.w.writen1(bd | 0x01)\n\t\tbigenHelper{e.b[:2], e.w}.writeUint16(uint16(v))\n\t} else if v <= math.MaxUint32 {\n\t\te.encIntegerPrune(bd, pos, v, 4)\n\t} else {\n\t\te.encIntegerPrune(bd, pos, v, 8)\n\t}\n}\n\nfunc (e *bincEncDriver) EncodeExt(rv interface{}, xtag uint64, ext Ext, _ *Encoder) {\n\tbs := ext.WriteExt(rv)\n\tif bs == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\te.encodeExtPreamble(uint8(xtag), len(bs))\n\te.w.writeb(bs)\n}\n\nfunc (e *bincEncDriver) EncodeRawExt(re *RawExt, _ *Encoder) {\n\te.encodeExtPreamble(uint8(re.Tag), len(re.Data))\n\te.w.writeb(re.Data)\n}\n\nfunc (e *bincEncDriver) encodeExtPreamble(xtag byte, length int) {\n\te.encLen(bincVdCustomExt<<4, uint64(length))\n\te.w.writen1(xtag)\n}\n\nfunc (e *bincEncDriver) WriteArrayStart(length int) {\n\te.encLen(bincVdArray<<4, uint64(length))\n}\n\nfunc (e *bincEncDriver) WriteMapStart(length int) {\n\te.encLen(bincVdMap<<4, uint64(length))\n}\n\nfunc (e *bincEncDriver) EncodeSymbol(v string) {\n\t// if WriteSymbolsNoRefs {\n\t// \te.encodeString(cUTF8, v)\n\t// \treturn\n\t// }\n\n\t//symbols only offer benefit when string length > 1.\n\t//This is because strings with length 1 take only 2 bytes to store\n\t//(bd with embedded length, and single byte for string val).\n\n\tl := len(v)\n\tif l == 0 {\n\t\te.encBytesLen(cUTF8, 0)\n\t\treturn\n\t} else if l == 1 {\n\t\te.encBytesLen(cUTF8, 1)\n\t\te.w.writen1(v[0])\n\t\treturn\n\t}\n\tif e.m == nil {\n\t\te.m = make(map[string]uint16, 16)\n\t}\n\tui, ok := e.m[v]\n\tif ok {\n\t\tif ui <= math.MaxUint8 {\n\t\t\te.w.writen2(bincVdSymbol<<4, byte(ui))\n\t\t} else {\n\t\t\te.w.writen1(bincVdSymbol<<4 | 0x8)\n\t\t\tbigenHelper{e.b[:2], e.w}.writeUint16(ui)\n\t\t}\n\t} else {\n\t\te.s++\n\t\tui = e.s\n\t\t//ui = uint16(atomic.AddUint32(&e.s, 1))\n\t\te.m[v] = ui\n\t\tvar lenprec uint8\n\t\tif l <= math.MaxUint8 {\n\t\t\t// lenprec = 0\n\t\t} else if l <= math.MaxUint16 {\n\t\t\tlenprec = 1\n\t\t} else if int64(l) <= math.MaxUint32 {\n\t\t\tlenprec = 2\n\t\t} else {\n\t\t\tlenprec = 3\n\t\t}\n\t\tif ui <= math.MaxUint8 {\n\t\t\te.w.writen2(bincVdSymbol<<4|0x0|0x4|lenprec, byte(ui))\n\t\t} else {\n\t\t\te.w.writen1(bincVdSymbol<<4 | 0x8 | 0x4 | lenprec)\n\t\t\tbigenHelper{e.b[:2], e.w}.writeUint16(ui)\n\t\t}\n\t\tif lenprec == 0 {\n\t\t\te.w.writen1(byte(l))\n\t\t} else if lenprec == 1 {\n\t\t\tbigenHelper{e.b[:2], e.w}.writeUint16(uint16(l))\n\t\t} else if lenprec == 2 {\n\t\t\tbigenHelper{e.b[:4], e.w}.writeUint32(uint32(l))\n\t\t} else {\n\t\t\tbigenHelper{e.b[:8], e.w}.writeUint64(uint64(l))\n\t\t}\n\t\te.w.writestr(v)\n\t}\n}\n\nfunc (e *bincEncDriver) EncodeStringEnc(c charEncoding, v string) {\n\tif e.e.c == containerMapKey && c == cUTF8 && (e.h.AsSymbols == 0 || e.h.AsSymbols == 1) {\n\t\te.EncodeSymbol(v)\n\t\treturn\n\t}\n\tl := uint64(len(v))\n\te.encLen(bincVdString<<4, l) // e.encBytesLen(c, l)\n\tif l > 0 {\n\t\te.w.writestr(v)\n\t}\n\n}\n\nfunc (e *bincEncDriver) EncodeStringBytesRaw(v []byte) {\n\tif v == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tl := uint64(len(v))\n\te.encLen(bincVdByteArray<<4, l) // e.encBytesLen(c, l)\n\tif l > 0 {\n\t\te.w.writeb(v)\n\t}\n}\n\nfunc (e *bincEncDriver) encBytesLen(c charEncoding, length uint64) {\n\t//TODO: support bincUnicodeOther (for now, just use string or bytearray)\n\tif c == cRAW {\n\t\te.encLen(bincVdByteArray<<4, length)\n\t} else {\n\t\te.encLen(bincVdString<<4, length)\n\t}\n}\n\nfunc (e *bincEncDriver) encLen(bd byte, l uint64) {\n\tif l < 12 {\n\t\te.w.writen1(bd | uint8(l+4))\n\t} else {\n\t\te.encLenNumber(bd, l)\n\t}\n}\n\nfunc (e *bincEncDriver) encLenNumber(bd byte, v uint64) {\n\tif v <= math.MaxUint8 {\n\t\te.w.writen2(bd, byte(v))\n\t} else if v <= math.MaxUint16 {\n\t\te.w.writen1(bd | 0x01)\n\t\tbigenHelper{e.b[:2], e.w}.writeUint16(uint16(v))\n\t} else if v <= math.MaxUint32 {\n\t\te.w.writen1(bd | 0x02)\n\t\tbigenHelper{e.b[:4], e.w}.writeUint32(uint32(v))\n\t} else {\n\t\te.w.writen1(bd | 0x03)\n\t\tbigenHelper{e.b[:8], e.w}.writeUint64(uint64(v))\n\t}\n}\n\n//------------------------------------\n\ntype bincDecSymbol struct {\n\ts string\n\tb []byte\n\ti uint16\n}\n\ntype bincDecDriver struct {\n\tdecDriverNoopContainerReader\n\tnoBuiltInTypes\n\n\td      *Decoder\n\th      *BincHandle\n\tr      *decReaderSwitch\n\tbr     bool // bytes reader\n\tbdRead bool\n\tbd     byte\n\tvd     byte\n\tvs     byte\n\t// _      [3]byte // padding\n\t// linear searching on this slice is ok,\n\t// because we typically expect < 32 symbols in each stream.\n\ts []bincDecSymbol\n\n\t// noStreamingCodec\n\t// decNoSeparator\n\n\tb [(8 + 1) * 8]byte // scratch\n}\n\nfunc (d *bincDecDriver) readNextBd() {\n\td.bd = d.r.readn1()\n\td.vd = d.bd >> 4\n\td.vs = d.bd & 0x0f\n\td.bdRead = true\n}\n\nfunc (d *bincDecDriver) uncacheRead() {\n\tif d.bdRead {\n\t\td.r.unreadn1()\n\t\td.bdRead = false\n\t}\n}\n\nfunc (d *bincDecDriver) ContainerType() (vt valueType) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.vd == bincVdSpecial && d.vs == bincSpNil {\n\t\treturn valueTypeNil\n\t} else if d.vd == bincVdByteArray {\n\t\treturn valueTypeBytes\n\t} else if d.vd == bincVdString {\n\t\treturn valueTypeString\n\t} else if d.vd == bincVdArray {\n\t\treturn valueTypeArray\n\t} else if d.vd == bincVdMap {\n\t\treturn valueTypeMap\n\t}\n\t// else {\n\t// d.d.errorf(\"isContainerType: unsupported parameter: %v\", vt)\n\t// }\n\treturn valueTypeUnset\n}\n\nfunc (d *bincDecDriver) TryDecodeAsNil() bool {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == bincVdSpecial<<4|bincSpNil {\n\t\td.bdRead = false\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *bincDecDriver) DecodeTime() (t time.Time) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == bincVdSpecial<<4|bincSpNil {\n\t\td.bdRead = false\n\t\treturn\n\t}\n\tif d.vd != bincVdTimestamp {\n\t\td.d.errorf(\"cannot decode time - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\tt, err := bincDecodeTime(d.r.readx(uint(d.vs)))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) decFloatPre(vs, defaultLen byte) {\n\tif vs&0x8 == 0 {\n\t\td.r.readb(d.b[0:defaultLen])\n\t} else {\n\t\tl := d.r.readn1()\n\t\tif l > 8 {\n\t\t\td.d.errorf(\"cannot read float - at most 8 bytes used to represent float - received %v bytes\", l)\n\t\t\treturn\n\t\t}\n\t\tfor i := l; i < 8; i++ {\n\t\t\td.b[i] = 0\n\t\t}\n\t\td.r.readb(d.b[0:l])\n\t}\n}\n\nfunc (d *bincDecDriver) decFloat() (f float64) {\n\t//if true { f = math.Float64frombits(bigen.Uint64(d.r.readx(8))); break; }\n\tif x := d.vs & 0x7; x == bincFlBin32 {\n\t\td.decFloatPre(d.vs, 4)\n\t\tf = float64(math.Float32frombits(bigen.Uint32(d.b[0:4])))\n\t} else if x == bincFlBin64 {\n\t\td.decFloatPre(d.vs, 8)\n\t\tf = math.Float64frombits(bigen.Uint64(d.b[0:8]))\n\t} else {\n\t\td.d.errorf(\"read float - only float32 and float64 are supported - %s %x-%x/%s\",\n\t\t\tmsgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *bincDecDriver) decUint() (v uint64) {\n\t// need to inline the code (interface conversion and type assertion expensive)\n\tswitch d.vs {\n\tcase 0:\n\t\tv = uint64(d.r.readn1())\n\tcase 1:\n\t\td.r.readb(d.b[6:8])\n\t\tv = uint64(bigen.Uint16(d.b[6:8]))\n\tcase 2:\n\t\td.b[4] = 0\n\t\td.r.readb(d.b[5:8])\n\t\tv = uint64(bigen.Uint32(d.b[4:8]))\n\tcase 3:\n\t\td.r.readb(d.b[4:8])\n\t\tv = uint64(bigen.Uint32(d.b[4:8]))\n\tcase 4, 5, 6:\n\t\tlim := 7 - d.vs\n\t\td.r.readb(d.b[lim:8])\n\t\tfor i := uint8(0); i < lim; i++ {\n\t\t\td.b[i] = 0\n\t\t}\n\t\tv = uint64(bigen.Uint64(d.b[:8]))\n\tcase 7:\n\t\td.r.readb(d.b[:8])\n\t\tv = uint64(bigen.Uint64(d.b[:8]))\n\tdefault:\n\t\td.d.errorf(\"unsigned integers with greater than 64 bits of precision not supported\")\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *bincDecDriver) decCheckInteger() (ui uint64, neg bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tvd, vs := d.vd, d.vs\n\tif vd == bincVdPosInt {\n\t\tui = d.decUint()\n\t} else if vd == bincVdNegInt {\n\t\tui = d.decUint()\n\t\tneg = true\n\t} else if vd == bincVdSmallInt {\n\t\tui = uint64(d.vs) + 1\n\t} else if vd == bincVdSpecial {\n\t\tif vs == bincSpZero {\n\t\t\t//i = 0\n\t\t} else if vs == bincSpNegOne {\n\t\t\tneg = true\n\t\t\tui = 1\n\t\t} else {\n\t\t\td.d.errorf(\"integer decode fails - invalid special value from descriptor %x-%x/%s\",\n\t\t\t\td.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\t\treturn\n\t\t}\n\t} else {\n\t\td.d.errorf(\"integer can only be decoded from int/uint. d.bd: 0x%x, d.vd: 0x%x\", d.bd, d.vd)\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeInt64() (i int64) {\n\tui, neg := d.decCheckInteger()\n\ti = chkOvf.SignedIntV(ui)\n\tif neg {\n\t\ti = -i\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeUint64() (ui uint64) {\n\tui, neg := d.decCheckInteger()\n\tif neg {\n\t\td.d.errorf(\"assigning negative signed value to unsigned integer type\")\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeFloat64() (f float64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tvd, vs := d.vd, d.vs\n\tif vd == bincVdSpecial {\n\t\td.bdRead = false\n\t\tif vs == bincSpNan {\n\t\t\treturn math.NaN()\n\t\t} else if vs == bincSpPosInf {\n\t\t\treturn math.Inf(1)\n\t\t} else if vs == bincSpZeroFloat || vs == bincSpZero {\n\t\t\treturn\n\t\t} else if vs == bincSpNegInf {\n\t\t\treturn math.Inf(-1)\n\t\t} else {\n\t\t\td.d.errorf(\"float - invalid special value from descriptor %x-%x/%s\",\n\t\t\t\td.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\t\treturn\n\t\t}\n\t} else if vd == bincVdFloat {\n\t\tf = d.decFloat()\n\t} else {\n\t\tf = float64(d.DecodeInt64())\n\t}\n\td.bdRead = false\n\treturn\n}\n\n// bool can be decoded from bool only (single byte).\nfunc (d *bincDecDriver) DecodeBool() (b bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif bd := d.bd; bd == (bincVdSpecial | bincSpFalse) {\n\t\t// b = false\n\t} else if bd == (bincVdSpecial | bincSpTrue) {\n\t\tb = true\n\t} else {\n\t\td.d.errorf(\"bool - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) ReadMapStart() (length int) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.vd != bincVdMap {\n\t\td.d.errorf(\"map - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\tlength = d.decLen()\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) ReadArrayStart() (length int) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.vd != bincVdArray {\n\t\td.d.errorf(\"array - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\tlength = d.decLen()\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) decLen() int {\n\tif d.vs > 3 {\n\t\treturn int(d.vs - 4)\n\t}\n\treturn int(d.decLenNumber())\n}\n\nfunc (d *bincDecDriver) decLenNumber() (v uint64) {\n\tif x := d.vs; x == 0 {\n\t\tv = uint64(d.r.readn1())\n\t} else if x == 1 {\n\t\td.r.readb(d.b[6:8])\n\t\tv = uint64(bigen.Uint16(d.b[6:8]))\n\t} else if x == 2 {\n\t\td.r.readb(d.b[4:8])\n\t\tv = uint64(bigen.Uint32(d.b[4:8]))\n\t} else {\n\t\td.r.readb(d.b[:8])\n\t\tv = bigen.Uint64(d.b[:8])\n\t}\n\treturn\n}\n\nfunc (d *bincDecDriver) decStringAndBytes(bs []byte, withString, zerocopy bool) (\n\tbs2 []byte, s string) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == bincVdSpecial<<4|bincSpNil {\n\t\td.bdRead = false\n\t\treturn\n\t}\n\tvar slen = -1\n\t// var ok bool\n\tswitch d.vd {\n\tcase bincVdString, bincVdByteArray:\n\t\tslen = d.decLen()\n\t\tif zerocopy {\n\t\t\tif d.br {\n\t\t\t\tbs2 = d.r.readx(uint(slen))\n\t\t\t} else if len(bs) == 0 {\n\t\t\t\tbs2 = decByteSlice(d.r, slen, d.d.h.MaxInitLen, d.b[:])\n\t\t\t} else {\n\t\t\t\tbs2 = decByteSlice(d.r, slen, d.d.h.MaxInitLen, bs)\n\t\t\t}\n\t\t} else {\n\t\t\tbs2 = decByteSlice(d.r, slen, d.d.h.MaxInitLen, bs)\n\t\t}\n\t\tif withString {\n\t\t\ts = string(bs2)\n\t\t}\n\tcase bincVdSymbol:\n\t\t// zerocopy doesn't apply for symbols,\n\t\t// as the values must be stored in a table for later use.\n\t\t//\n\t\t//from vs: extract numSymbolBytes, containsStringVal, strLenPrecision,\n\t\t//extract symbol\n\t\t//if containsStringVal, read it and put in map\n\t\t//else look in map for string value\n\t\tvar symbol uint16\n\t\tvs := d.vs\n\t\tif vs&0x8 == 0 {\n\t\t\tsymbol = uint16(d.r.readn1())\n\t\t} else {\n\t\t\tsymbol = uint16(bigen.Uint16(d.r.readx(2)))\n\t\t}\n\t\tif d.s == nil {\n\t\t\td.s = make([]bincDecSymbol, 0, 16)\n\t\t}\n\n\t\tif vs&0x4 == 0 {\n\t\t\tfor i := range d.s {\n\t\t\t\tj := &d.s[i]\n\t\t\t\tif j.i == symbol {\n\t\t\t\t\tbs2 = j.b\n\t\t\t\t\tif withString {\n\t\t\t\t\t\tif j.s == \"\" && bs2 != nil {\n\t\t\t\t\t\t\tj.s = string(bs2)\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts = j.s\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch vs & 0x3 {\n\t\t\tcase 0:\n\t\t\t\tslen = int(d.r.readn1())\n\t\t\tcase 1:\n\t\t\t\tslen = int(bigen.Uint16(d.r.readx(2)))\n\t\t\tcase 2:\n\t\t\t\tslen = int(bigen.Uint32(d.r.readx(4)))\n\t\t\tcase 3:\n\t\t\t\tslen = int(bigen.Uint64(d.r.readx(8)))\n\t\t\t}\n\t\t\t// since using symbols, do not store any part of\n\t\t\t// the parameter bs in the map, as it might be a shared buffer.\n\t\t\t// bs2 = decByteSlice(d.r, slen, bs)\n\t\t\tbs2 = decByteSlice(d.r, slen, d.d.h.MaxInitLen, nil)\n\t\t\tif withString {\n\t\t\t\ts = string(bs2)\n\t\t\t}\n\t\t\td.s = append(d.s, bincDecSymbol{i: symbol, s: s, b: bs2})\n\t\t}\n\tdefault:\n\t\td.d.errorf(\"string/bytes - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeString() (s string) {\n\t// DecodeBytes does not accommodate symbols, whose impl stores string version in map.\n\t// Use decStringAndBytes directly.\n\t// return string(d.DecodeBytes(d.b[:], true, true))\n\t_, s = d.decStringAndBytes(d.b[:], true, true)\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeStringAsBytes() (s []byte) {\n\ts, _ = d.decStringAndBytes(d.b[:], false, true)\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeBytes(bs []byte, zerocopy bool) (bsOut []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == bincVdSpecial<<4|bincSpNil {\n\t\td.bdRead = false\n\t\treturn nil\n\t}\n\t// check if an \"array\" of uint8's (see ContainerType for how to infer if an array)\n\tif d.vd == bincVdArray {\n\t\tbsOut, _ = fastpathTV.DecSliceUint8V(bs, true, d.d)\n\t\treturn\n\t}\n\tvar clen int\n\tif d.vd == bincVdString || d.vd == bincVdByteArray {\n\t\tclen = d.decLen()\n\t} else {\n\t\td.d.errorf(\"bytes - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\td.bdRead = false\n\tif zerocopy {\n\t\tif d.br {\n\t\t\treturn d.r.readx(uint(clen))\n\t\t} else if len(bs) == 0 {\n\t\t\tbs = d.b[:]\n\t\t}\n\t}\n\treturn decByteSlice(d.r, clen, d.d.h.MaxInitLen, bs)\n}\n\nfunc (d *bincDecDriver) DecodeExt(rv interface{}, xtag uint64, ext Ext) (realxtag uint64) {\n\tif xtag > 0xff {\n\t\td.d.errorf(\"ext: tag must be <= 0xff; got: %v\", xtag)\n\t\treturn\n\t}\n\trealxtag1, xbs := d.decodeExtV(ext != nil, uint8(xtag))\n\trealxtag = uint64(realxtag1)\n\tif ext == nil {\n\t\tre := rv.(*RawExt)\n\t\tre.Tag = realxtag\n\t\tre.Data = detachZeroCopyBytes(d.br, re.Data, xbs)\n\t} else {\n\t\text.ReadExt(rv, xbs)\n\t}\n\treturn\n}\n\nfunc (d *bincDecDriver) decodeExtV(verifyTag bool, tag byte) (xtag byte, xbs []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.vd == bincVdCustomExt {\n\t\tl := d.decLen()\n\t\txtag = d.r.readn1()\n\t\tif verifyTag && xtag != tag {\n\t\t\td.d.errorf(\"wrong extension tag - got %b, expecting: %v\", xtag, tag)\n\t\t\treturn\n\t\t}\n\t\tif d.br {\n\t\t\txbs = d.r.readx(uint(l))\n\t\t} else {\n\t\t\txbs = decByteSlice(d.r, l, d.d.h.MaxInitLen, d.d.b[:])\n\t\t}\n\t} else if d.vd == bincVdByteArray {\n\t\txbs = d.DecodeBytes(nil, true)\n\t} else {\n\t\td.d.errorf(\"ext - expecting extensions or byte array - %s %x-%x/%s\",\n\t\t\tmsgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *bincDecDriver) DecodeNaked() {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\n\tn := d.d.naked()\n\tvar decodeFurther bool\n\n\tswitch d.vd {\n\tcase bincVdSpecial:\n\t\tswitch d.vs {\n\t\tcase bincSpNil:\n\t\t\tn.v = valueTypeNil\n\t\tcase bincSpFalse:\n\t\t\tn.v = valueTypeBool\n\t\t\tn.b = false\n\t\tcase bincSpTrue:\n\t\t\tn.v = valueTypeBool\n\t\t\tn.b = true\n\t\tcase bincSpNan:\n\t\t\tn.v = valueTypeFloat\n\t\t\tn.f = math.NaN()\n\t\tcase bincSpPosInf:\n\t\t\tn.v = valueTypeFloat\n\t\t\tn.f = math.Inf(1)\n\t\tcase bincSpNegInf:\n\t\t\tn.v = valueTypeFloat\n\t\t\tn.f = math.Inf(-1)\n\t\tcase bincSpZeroFloat:\n\t\t\tn.v = valueTypeFloat\n\t\t\tn.f = float64(0)\n\t\tcase bincSpZero:\n\t\t\tn.v = valueTypeUint\n\t\t\tn.u = uint64(0) // int8(0)\n\t\tcase bincSpNegOne:\n\t\t\tn.v = valueTypeInt\n\t\t\tn.i = int64(-1) // int8(-1)\n\t\tdefault:\n\t\t\td.d.errorf(\"cannot infer value - unrecognized special value from descriptor %x-%x/%s\",\n\t\t\t\td.vd, d.vs, bincdesc(d.vd, d.vs))\n\t\t}\n\tcase bincVdSmallInt:\n\t\tn.v = valueTypeUint\n\t\tn.u = uint64(int8(d.vs)) + 1 // int8(d.vs) + 1\n\tcase bincVdPosInt:\n\t\tn.v = valueTypeUint\n\t\tn.u = d.decUint()\n\tcase bincVdNegInt:\n\t\tn.v = valueTypeInt\n\t\tn.i = -(int64(d.decUint()))\n\tcase bincVdFloat:\n\t\tn.v = valueTypeFloat\n\t\tn.f = d.decFloat()\n\tcase bincVdSymbol:\n\t\tn.v = valueTypeSymbol\n\t\tn.s = d.DecodeString()\n\tcase bincVdString:\n\t\tn.v = valueTypeString\n\t\tn.s = d.DecodeString()\n\tcase bincVdByteArray:\n\t\tdecNakedReadRawBytes(d, d.d, n, d.h.RawToString)\n\tcase bincVdTimestamp:\n\t\tn.v = valueTypeTime\n\t\ttt, err := bincDecodeTime(d.r.readx(uint(d.vs)))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tn.t = tt\n\tcase bincVdCustomExt:\n\t\tn.v = valueTypeExt\n\t\tl := d.decLen()\n\t\tn.u = uint64(d.r.readn1())\n\t\tif d.br {\n\t\t\tn.l = d.r.readx(uint(l))\n\t\t} else {\n\t\t\tn.l = decByteSlice(d.r, l, d.d.h.MaxInitLen, d.d.b[:])\n\t\t}\n\tcase bincVdArray:\n\t\tn.v = valueTypeArray\n\t\tdecodeFurther = true\n\tcase bincVdMap:\n\t\tn.v = valueTypeMap\n\t\tdecodeFurther = true\n\tdefault:\n\t\td.d.errorf(\"cannot infer value - %s %x-%x/%s\", msgBadDesc, d.vd, d.vs, bincdesc(d.vd, d.vs))\n\t}\n\n\tif !decodeFurther {\n\t\td.bdRead = false\n\t}\n\tif n.v == valueTypeUint && d.h.SignedInteger {\n\t\tn.v = valueTypeInt\n\t\tn.i = int64(n.u)\n\t}\n}\n\n//------------------------------------\n\n//BincHandle is a Handle for the Binc Schema-Free Encoding Format\n//defined at https://github.com/ugorji/binc .\n//\n//BincHandle currently supports all Binc features with the following EXCEPTIONS:\n//  - only integers up to 64 bits of precision are supported.\n//    big integers are unsupported.\n//  - Only IEEE 754 binary32 and binary64 floats are supported (ie Go float32 and float64 types).\n//    extended precision and decimal IEEE 754 floats are unsupported.\n//  - Only UTF-8 strings supported.\n//    Unicode_Other Binc types (UTF16, UTF32) are currently unsupported.\n//\n//Note that these EXCEPTIONS are temporary and full support is possible and may happen soon.\ntype BincHandle struct {\n\tBasicHandle\n\tbinaryEncodingType\n\tnoElemSeparators\n\n\t// AsSymbols defines what should be encoded as symbols.\n\t//\n\t// Encoding as symbols can reduce the encoded size significantly.\n\t//\n\t// However, during decoding, each string to be encoded as a symbol must\n\t// be checked to see if it has been seen before. Consequently, encoding time\n\t// will increase if using symbols, because string comparisons has a clear cost.\n\t//\n\t// Values:\n\t// - 0: default: library uses best judgement\n\t// - 1: use symbols\n\t// - 2: do not use symbols\n\tAsSymbols uint8\n\n\t// AsSymbols: may later on introduce more options ...\n\t// - m: map keys\n\t// - s: struct fields\n\t// - n: none\n\t// - a: all: same as m, s, ...\n\n\t_ [1]uint64 // padding (cache-aligned)\n}\n\n// Name returns the name of the handle: binc\nfunc (h *BincHandle) Name() string { return \"binc\" }\n\n// SetBytesExt sets an extension\nfunc (h *BincHandle) SetBytesExt(rt reflect.Type, tag uint64, ext BytesExt) (err error) {\n\treturn h.SetExt(rt, tag, &bytesExtWrapper{BytesExt: ext})\n}\n\nfunc (h *BincHandle) newEncDriver(e *Encoder) encDriver {\n\treturn &bincEncDriver{e: e, h: h, w: e.w()}\n}\n\nfunc (h *BincHandle) newDecDriver(d *Decoder) decDriver {\n\treturn &bincDecDriver{d: d, h: h, r: d.r(), br: d.bytes}\n}\n\nfunc (e *bincEncDriver) reset() {\n\te.w = e.e.w()\n\te.s = 0\n\te.m = nil\n}\n\nfunc (d *bincDecDriver) reset() {\n\td.r, d.br = d.d.r(), d.d.bytes\n\td.s = nil\n\td.bd, d.bdRead, d.vd, d.vs = 0, false, 0, 0\n}\n\n// var timeDigits = [...]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}\n\n// EncodeTime encodes a time.Time as a []byte, including\n// information on the instant in time and UTC offset.\n//\n// Format Description\n//\n//   A timestamp is composed of 3 components:\n//\n//   - secs: signed integer representing seconds since unix epoch\n//   - nsces: unsigned integer representing fractional seconds as a\n//     nanosecond offset within secs, in the range 0 <= nsecs < 1e9\n//   - tz: signed integer representing timezone offset in minutes east of UTC,\n//     and a dst (daylight savings time) flag\n//\n//   When encoding a timestamp, the first byte is the descriptor, which\n//   defines which components are encoded and how many bytes are used to\n//   encode secs and nsecs components. *If secs/nsecs is 0 or tz is UTC, it\n//   is not encoded in the byte array explicitly*.\n//\n//       Descriptor 8 bits are of the form `A B C DDD EE`:\n//           A:   Is secs component encoded? 1 = true\n//           B:   Is nsecs component encoded? 1 = true\n//           C:   Is tz component encoded? 1 = true\n//           DDD: Number of extra bytes for secs (range 0-7).\n//                If A = 1, secs encoded in DDD+1 bytes.\n//                    If A = 0, secs is not encoded, and is assumed to be 0.\n//                    If A = 1, then we need at least 1 byte to encode secs.\n//                    DDD says the number of extra bytes beyond that 1.\n//                    E.g. if DDD=0, then secs is represented in 1 byte.\n//                         if DDD=2, then secs is represented in 3 bytes.\n//           EE:  Number of extra bytes for nsecs (range 0-3).\n//                If B = 1, nsecs encoded in EE+1 bytes (similar to secs/DDD above)\n//\n//   Following the descriptor bytes, subsequent bytes are:\n//\n//       secs component encoded in `DDD + 1` bytes (if A == 1)\n//       nsecs component encoded in `EE + 1` bytes (if B == 1)\n//       tz component encoded in 2 bytes (if C == 1)\n//\n//   secs and nsecs components are integers encoded in a BigEndian\n//   2-complement encoding format.\n//\n//   tz component is encoded as 2 bytes (16 bits). Most significant bit 15 to\n//   Least significant bit 0 are described below:\n//\n//       Timezone offset has a range of -12:00 to +14:00 (ie -720 to +840 minutes).\n//       Bit 15 = have\\_dst: set to 1 if we set the dst flag.\n//       Bit 14 = dst\\_on: set to 1 if dst is in effect at the time, or 0 if not.\n//       Bits 13..0 = timezone offset in minutes. It is a signed integer in Big Endian format.\n//\nfunc bincEncodeTime(t time.Time) []byte {\n\t//t := rv.Interface().(time.Time)\n\ttsecs, tnsecs := t.Unix(), t.Nanosecond()\n\tvar (\n\t\tbd   byte\n\t\tbtmp [8]byte\n\t\tbs   [16]byte\n\t\ti    int = 1\n\t)\n\tl := t.Location()\n\tif l == time.UTC {\n\t\tl = nil\n\t}\n\tif tsecs != 0 {\n\t\tbd = bd | 0x80\n\t\tbigen.PutUint64(btmp[:], uint64(tsecs))\n\t\tf := pruneSignExt(btmp[:], tsecs >= 0)\n\t\tbd = bd | (byte(7-f) << 2)\n\t\tcopy(bs[i:], btmp[f:])\n\t\ti = i + (8 - f)\n\t}\n\tif tnsecs != 0 {\n\t\tbd = bd | 0x40\n\t\tbigen.PutUint32(btmp[:4], uint32(tnsecs))\n\t\tf := pruneSignExt(btmp[:4], true)\n\t\tbd = bd | byte(3-f)\n\t\tcopy(bs[i:], btmp[f:4])\n\t\ti = i + (4 - f)\n\t}\n\tif l != nil {\n\t\tbd = bd | 0x20\n\t\t// Note that Go Libs do not give access to dst flag.\n\t\t_, zoneOffset := t.Zone()\n\t\t//zoneName, zoneOffset := t.Zone()\n\t\tzoneOffset /= 60\n\t\tz := uint16(zoneOffset)\n\t\tbigen.PutUint16(btmp[:2], z)\n\t\t// clear dst flags\n\t\tbs[i] = btmp[0] & 0x3f\n\t\tbs[i+1] = btmp[1]\n\t\ti = i + 2\n\t}\n\tbs[0] = bd\n\treturn bs[0:i]\n}\n\n// bincDecodeTime decodes a []byte into a time.Time.\nfunc bincDecodeTime(bs []byte) (tt time.Time, err error) {\n\tbd := bs[0]\n\tvar (\n\t\ttsec  int64\n\t\ttnsec uint32\n\t\ttz    uint16\n\t\ti     byte = 1\n\t\ti2    byte\n\t\tn     byte\n\t)\n\tif bd&(1<<7) != 0 {\n\t\tvar btmp [8]byte\n\t\tn = ((bd >> 2) & 0x7) + 1\n\t\ti2 = i + n\n\t\tcopy(btmp[8-n:], bs[i:i2])\n\t\t//if first bit of bs[i] is set, then fill btmp[0..8-n] with 0xff (ie sign extend it)\n\t\tif bs[i]&(1<<7) != 0 {\n\t\t\tcopy(btmp[0:8-n], bsAll0xff)\n\t\t\t//for j,k := byte(0), 8-n; j < k; j++ {\tbtmp[j] = 0xff }\n\t\t}\n\t\ti = i2\n\t\ttsec = int64(bigen.Uint64(btmp[:]))\n\t}\n\tif bd&(1<<6) != 0 {\n\t\tvar btmp [4]byte\n\t\tn = (bd & 0x3) + 1\n\t\ti2 = i + n\n\t\tcopy(btmp[4-n:], bs[i:i2])\n\t\ti = i2\n\t\ttnsec = bigen.Uint32(btmp[:])\n\t}\n\tif bd&(1<<5) == 0 {\n\t\ttt = time.Unix(tsec, int64(tnsec)).UTC()\n\t\treturn\n\t}\n\t// In stdlib time.Parse, when a date is parsed without a zone name, it uses \"\" as zone name.\n\t// However, we need name here, so it can be shown when time is printf.d.\n\t// Zone name is in form: UTC-08:00.\n\t// Note that Go Libs do not give access to dst flag, so we ignore dst bits\n\n\ti2 = i + 2\n\ttz = bigen.Uint16(bs[i:i2])\n\t// i = i2\n\t// sign extend sign bit into top 2 MSB (which were dst bits):\n\tif tz&(1<<13) == 0 { // positive\n\t\ttz = tz & 0x3fff //clear 2 MSBs: dst bits\n\t} else { // negative\n\t\ttz = tz | 0xc000 //set 2 MSBs: dst bits\n\t}\n\ttzint := int16(tz)\n\tif tzint == 0 {\n\t\ttt = time.Unix(tsec, int64(tnsec)).UTC()\n\t} else {\n\t\t// For Go Time, do not use a descriptive timezone.\n\t\t// It's unnecessary, and makes it harder to do a reflect.DeepEqual.\n\t\t// The Offset already tells what the offset should be, if not on UTC and unknown zone name.\n\t\t// var zoneName = timeLocUTCName(tzint)\n\t\ttt = time.Unix(tsec, int64(tnsec)).In(time.FixedZone(\"\", int(tzint)*60))\n\t}\n\treturn\n}\n\nvar _ decDriver = (*bincDecDriver)(nil)\nvar _ encDriver = (*bincEncDriver)(nil)\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/build.sh",
    "content": "#!/bin/bash\n\n# Run all the different permutations of all the tests and other things\n# This helps ensure that nothing gets broken.\n\n_tests() {\n    local gover=$( go version | cut -f 3 -d ' ' )\n    # note that codecgen requires fastpath, so you cannot do \"codecgen notfastpath\"\n    local a=( \"\" \"safe\"  \"notfastpath\" \"notfastpath safe\" \"codecgen\" \"codecgen safe\" )\n    for i in \"${a[@]}\"\n    do\n        echo \">>>> TAGS: $i\"\n        local i2=${i:-default}\n        case $gover in\n            go1.[0-6]*) go vet -printfuncs \"errorf\" \"$@\" &&\n                              go test ${zargs[*]} -vet off -tags \"$i\" \"$@\" ;;\n            *) go vet -printfuncs \"errorf\" \"$@\" &&\n                     go test ${zargs[*]} -vet off -tags \"alltests $i\" -run \"Suite\" -coverprofile \"${i2// /-}.cov.out\" \"$@\" ;;\n        esac\n        if [[ \"$?\" != 0 ]]; then return 1; fi \n    done\n    echo \"++++++++ TEST SUITES ALL PASSED ++++++++\"\n}\n\n\n# is a generation needed?\n_ng() {\n    local a=\"$1\"\n    if [[ ! -e \"$a\" ]]; then echo 1; return; fi \n    for i in `ls -1 *.go.tmpl gen.go values_test.go`\n    do\n        if [[ \"$a\" -ot \"$i\" ]]; then echo 1; return; fi \n    done\n}\n\n_prependbt() {\n    cat > ${2} <<EOF\n// +build generated\n\nEOF\n    cat ${1} >> ${2}\n    rm -f ${1}\n}\n\n# _build generates fast-path.go and gen-helper.go.\n_build() {\n    if ! [[ \"${zforce}\" || $(_ng \"fast-path.generated.go\") || $(_ng \"gen-helper.generated.go\") || $(_ng \"gen.generated.go\") ]]; then return 0; fi \n    \n    if [ \"${zbak}\" ]; then\n        _zts=`date '+%m%d%Y_%H%M%S'`\n        _gg=\".generated.go\"\n        [ -e \"gen-helper${_gg}\" ] && mv gen-helper${_gg} gen-helper${_gg}__${_zts}.bak\n        [ -e \"fast-path${_gg}\" ] && mv fast-path${_gg} fast-path${_gg}__${_zts}.bak\n        [ -e \"gen${_gg}\" ] && mv gen${_gg} gen${_gg}__${_zts}.bak\n    fi \n    rm -f gen-helper.generated.go fast-path.generated.go gen.generated.go \\\n       *safe.generated.go *_generated_test.go *.generated_ffjson_expose.go \n\n    cat > gen.generated.go <<EOF\n// +build codecgen.exec\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\n// DO NOT EDIT. THIS FILE IS AUTO-GENERATED FROM gen-dec-(map|array).go.tmpl\n\nconst genDecMapTmpl = \\`\nEOF\n    cat >> gen.generated.go < gen-dec-map.go.tmpl\n    cat >> gen.generated.go <<EOF\n\\`\n\nconst genDecListTmpl = \\`\nEOF\n    cat >> gen.generated.go < gen-dec-array.go.tmpl\n    cat >> gen.generated.go <<EOF\n\\`\n\nconst genEncChanTmpl = \\`\nEOF\n    cat >> gen.generated.go < gen-enc-chan.go.tmpl\n    cat >> gen.generated.go <<EOF\n\\`\nEOF\n    cat > gen-from-tmpl.codec.generated.go <<EOF\npackage codec \nimport \"io\"\nfunc GenInternalGoFile(r io.Reader, w io.Writer) error {\nreturn genInternalGoFile(r, w)\n}\nEOF\n    cat > gen-from-tmpl.generated.go <<EOF\n//+build ignore\n\npackage main\n\nimport \"${zpkg}\"\nimport \"os\"\n\nfunc run(fnameIn, fnameOut string) {\nprintln(\"____ \" + fnameIn + \" --> \" + fnameOut + \" ______\")\nfin, err := os.Open(fnameIn)\nif err != nil { panic(err) }\ndefer fin.Close()\nfout, err := os.Create(fnameOut)\nif err != nil { panic(err) }\ndefer fout.Close()\nerr = codec.GenInternalGoFile(fin, fout)\nif err != nil { panic(err) }\n}\n\nfunc main() {\nrun(\"fast-path.go.tmpl\", \"fast-path.generated.go\")\nrun(\"gen-helper.go.tmpl\", \"gen-helper.generated.go\")\nrun(\"mammoth-test.go.tmpl\", \"mammoth_generated_test.go\")\nrun(\"mammoth2-test.go.tmpl\", \"mammoth2_generated_test.go\")\n// run(\"sort-slice.go.tmpl\", \"sort-slice.generated.go\")\n}\nEOF\n\n    sed -e 's+// __DO_NOT_REMOVE__NEEDED_FOR_REPLACING__IMPORT_PATH__FOR_CODEC_BENCH__+import . \"github.com/ugorji/go/codec\"+' \\\n        shared_test.go > bench/shared_test.go\n\n    # explicitly return 0 if this passes, else return 1\n    go run -tags \"prebuild\" prebuild.go || return 1\n    go run -tags \"notfastpath safe codecgen.exec\" gen-from-tmpl.generated.go || return 1\n    rm -f gen-from-tmpl.*generated.go\n    return 0\n}\n\n_codegenerators() {\n    local c5=\"_generated_test.go\"\n    local c7=\"$PWD/codecgen\"\n    local c8=\"$c7/__codecgen\"\n    local c9=\"codecgen-scratch.go\"\n\n    if ! [[ $zforce || $(_ng \"values_codecgen${c5}\") ]]; then return 0; fi\n    \n    # Note: ensure you run the codecgen for this codebase/directory i.e. ./codecgen/codecgen\n    true &&\n        echo \"codecgen ... \" &&\n        if [[ $zforce || ! -f \"$c8\" || \"$c7/gen.go\" -nt \"$c8\" ]]; then\n            echo \"rebuilding codecgen ... \" && ( cd codecgen && go build -o $c8 ${zargs[*]} . )\n        fi &&\n        $c8 -rt codecgen -t 'codecgen generated' -o values_codecgen${c5} -d 19780 $zfin $zfin2 &&\n        cp mammoth2_generated_test.go $c9 &&\n        $c8 -t 'codecgen,!notfastpath generated,!notfastpath' -o mammoth2_codecgen${c5} -d 19781 mammoth2_generated_test.go &&\n        rm -f $c9 &&\n        echo \"generators done!\" \n}\n\n_prebuild() {\n    echo \"prebuild: zforce: $zforce\"\n    local d=\"$PWD\"\n    local zfin=\"test_values.generated.go\"\n    local zfin2=\"test_values_flex.generated.go\"\n    local zpkg=\"github.com/ugorji/go/codec\"\n    # zpkg=${d##*/src/}\n    # zgobase=${d%%/src/*}\n    # rm -f *_generated_test.go \n    rm -f codecgen-*.go &&\n        _build &&\n        cp $d/values_test.go $d/$zfin &&\n        cp $d/values_flex_test.go $d/$zfin2 &&\n        _codegenerators &&\n        if [[ \"$(type -t _codegenerators_external )\" = \"function\" ]]; then _codegenerators_external ; fi &&\n        if [[ $zforce ]]; then go install ${zargs[*]} .; fi &&\n        echo \"prebuild done successfully\"\n    rm -f $d/$zfin $d/$zfin2\n    # unset zfin zfin2 zpkg\n}\n\n_make() {\n    local makeforce=${zforce}\n    zforce=1\n    (cd codecgen && go install ${zargs[*]} .) && _prebuild && go install ${zargs[*]} .\n    zforce=${makeforce}\n}\n\n_clean() {\n    rm -f gen-from-tmpl.*generated.go \\\n       codecgen-*.go \\\n       test_values.generated.go test_values_flex.generated.go\n}\n\n_release() {\n    local reply\n    read -p \"Pre-release validation takes a few minutes and MUST be run from within GOPATH/src. Confirm y/n? \" -n 1 -r reply\n    echo\n    if [[ ! $reply =~ ^[Yy]$ ]]; then return 1; fi\n\n    # expects GOROOT, GOROOT_BOOTSTRAP to have been set.\n    if [[ -z \"${GOROOT// }\" || -z \"${GOROOT_BOOTSTRAP// }\" ]]; then return 1; fi\n    # (cd $GOROOT && git checkout -f master && git pull && git reset --hard)\n    (cd $GOROOT && git pull)\n    local f=`pwd`/make.release.out\n    cat > $f <<EOF\n========== `date` ===========\nEOF\n    # # go 1.6 and below kept giving memory errors on Mac OS X during SDK build or go run execution,\n    # # that is fine, as we only explicitly test the last 3 releases and tip (2 years).\n    local makeforce=${zforce}\n    zforce=1\n    for i in 1.10 1.11 1.12 master\n    do\n        echo \"*********** $i ***********\" >>$f\n        if [[ \"$i\" != \"master\" ]]; then i=\"release-branch.go$i\"; fi\n        (false ||\n             (echo \"===== BUILDING GO SDK for branch: $i ... =====\" &&\n                  cd $GOROOT &&\n                  git checkout -f $i && git reset --hard && git clean -f . &&\n                  cd src && ./make.bash >>$f 2>&1 && sleep 1 ) ) &&\n            echo \"===== GO SDK BUILD DONE =====\" &&\n            _prebuild &&\n            echo \"===== PREBUILD DONE with exit: $? =====\" &&\n            _tests \"$@\"\n        if [[ \"$?\" != 0 ]]; then return 1; fi\n    done\n    zforce=${makeforce}\n    echo \"++++++++ RELEASE TEST SUITES ALL PASSED ++++++++\"\n}\n\n_usage() {\n    cat <<EOF\nprimary usage: $0 \n    -[tmpfxnld]           -> [tests, make, prebuild (force) (external), inlining diagnostics, mid-stack inlining, race detector]\n    -v                    -> verbose\nEOF\n    if [[ \"$(type -t _usage_run)\" = \"function\" ]]; then _usage_run ; fi\n}\n\n_main() {\n    if [[ -z \"$1\" ]]; then _usage; return 1; fi\n    local x\n    local zforce\n    local zargs=()\n    local zverbose=()\n    local zbenchflags\n    # unset zforce\n    zargs=()\n    zbenchflags=\"\"\n    OPTIND=1\n    while getopts \":ctmnrgpfvlzdb:\" flag\n    do\n        case \"x$flag\" in\n            'xf') zforce=1 ;;\n            'xv') zverbose+=(1) ;;\n            'xl') zargs+=(\"-gcflags\"); zargs+=(\"-l=4\") ;;\n            'xn') zargs+=(\"-gcflags\"); zargs+=(\"-m=2\") ;;\n            'xd') zargs+=(\"-race\") ;;\n            'xb') x='b'; zbenchflags=${OPTARG} ;;\n            x\\?) _usage; return 1 ;;\n            *) x=$flag ;;\n        esac\n    done\n    shift $((OPTIND-1))\n    # echo \">>>> _main: extra args: $@\"\n    case \"x$x\" in\n        'xt') _tests \"$@\" ;;\n        'xm') _make \"$@\" ;;\n        'xr') _release \"$@\" ;;\n        'xg') _go ;;\n        'xp') _prebuild \"$@\" ;;\n        'xc') _clean \"$@\" ;;\n        'xz') _analyze \"$@\" ;;\n        'xb') _bench \"$@\" ;;\n    esac\n    # unset zforce zargs zbenchflags\n}\n\n[ \".\" = `dirname $0` ] && _main \"$@\"\n\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/cbor.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"math\"\n\t\"reflect\"\n\t\"time\"\n)\n\nconst (\n\tcborMajorUint byte = iota\n\tcborMajorNegInt\n\tcborMajorBytes\n\tcborMajorText\n\tcborMajorArray\n\tcborMajorMap\n\tcborMajorTag\n\tcborMajorOther\n)\n\nconst (\n\tcborBdFalse byte = 0xf4 + iota\n\tcborBdTrue\n\tcborBdNil\n\tcborBdUndefined\n\tcborBdExt\n\tcborBdFloat16\n\tcborBdFloat32\n\tcborBdFloat64\n)\n\nconst (\n\tcborBdIndefiniteBytes  byte = 0x5f\n\tcborBdIndefiniteString byte = 0x7f\n\tcborBdIndefiniteArray  byte = 0x9f\n\tcborBdIndefiniteMap    byte = 0xbf\n\tcborBdBreak            byte = 0xff\n)\n\n// These define some in-stream descriptors for\n// manual encoding e.g. when doing explicit indefinite-length\nconst (\n\tCborStreamBytes  byte = 0x5f\n\tCborStreamString byte = 0x7f\n\tCborStreamArray  byte = 0x9f\n\tCborStreamMap    byte = 0xbf\n\tCborStreamBreak  byte = 0xff\n)\n\nconst (\n\tcborBaseUint   byte = 0x00\n\tcborBaseNegInt byte = 0x20\n\tcborBaseBytes  byte = 0x40\n\tcborBaseString byte = 0x60\n\tcborBaseArray  byte = 0x80\n\tcborBaseMap    byte = 0xa0\n\tcborBaseTag    byte = 0xc0\n\tcborBaseSimple byte = 0xe0\n)\n\nfunc cbordesc(bd byte) string {\n\tswitch bd {\n\tcase cborBdNil:\n\t\treturn \"nil\"\n\tcase cborBdFalse:\n\t\treturn \"false\"\n\tcase cborBdTrue:\n\t\treturn \"true\"\n\tcase cborBdFloat16, cborBdFloat32, cborBdFloat64:\n\t\treturn \"float\"\n\tcase cborBdIndefiniteBytes:\n\t\treturn \"bytes*\"\n\tcase cborBdIndefiniteString:\n\t\treturn \"string*\"\n\tcase cborBdIndefiniteArray:\n\t\treturn \"array*\"\n\tcase cborBdIndefiniteMap:\n\t\treturn \"map*\"\n\tdefault:\n\t\tswitch {\n\t\tcase bd >= cborBaseUint && bd < cborBaseNegInt:\n\t\t\treturn \"(u)int\"\n\t\tcase bd >= cborBaseNegInt && bd < cborBaseBytes:\n\t\t\treturn \"int\"\n\t\tcase bd >= cborBaseBytes && bd < cborBaseString:\n\t\t\treturn \"bytes\"\n\t\tcase bd >= cborBaseString && bd < cborBaseArray:\n\t\t\treturn \"string\"\n\t\tcase bd >= cborBaseArray && bd < cborBaseMap:\n\t\t\treturn \"array\"\n\t\tcase bd >= cborBaseMap && bd < cborBaseTag:\n\t\t\treturn \"map\"\n\t\tcase bd >= cborBaseTag && bd < cborBaseSimple:\n\t\t\treturn \"ext\"\n\t\tdefault:\n\t\t\treturn \"unknown\"\n\t\t}\n\t}\n}\n\n// -------------------\n\ntype cborEncDriver struct {\n\tnoBuiltInTypes\n\tencDriverNoopContainerWriter\n\te *Encoder\n\tw *encWriterSwitch\n\th *CborHandle\n\tx [8]byte\n\t// _ [3]uint64 // padding\n}\n\nfunc (e *cborEncDriver) EncodeNil() {\n\te.w.writen1(cborBdNil)\n}\n\nfunc (e *cborEncDriver) EncodeBool(b bool) {\n\tif b {\n\t\te.w.writen1(cborBdTrue)\n\t} else {\n\t\te.w.writen1(cborBdFalse)\n\t}\n}\n\nfunc (e *cborEncDriver) EncodeFloat32(f float32) {\n\te.w.writen1(cborBdFloat32)\n\tbigenHelper{e.x[:4], e.w}.writeUint32(math.Float32bits(f))\n}\n\nfunc (e *cborEncDriver) EncodeFloat64(f float64) {\n\te.w.writen1(cborBdFloat64)\n\tbigenHelper{e.x[:8], e.w}.writeUint64(math.Float64bits(f))\n}\n\nfunc (e *cborEncDriver) encUint(v uint64, bd byte) {\n\tif v <= 0x17 {\n\t\te.w.writen1(byte(v) + bd)\n\t} else if v <= math.MaxUint8 {\n\t\te.w.writen2(bd+0x18, uint8(v))\n\t} else if v <= math.MaxUint16 {\n\t\te.w.writen1(bd + 0x19)\n\t\tbigenHelper{e.x[:2], e.w}.writeUint16(uint16(v))\n\t} else if v <= math.MaxUint32 {\n\t\te.w.writen1(bd + 0x1a)\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(v))\n\t} else { // if v <= math.MaxUint64 {\n\t\te.w.writen1(bd + 0x1b)\n\t\tbigenHelper{e.x[:8], e.w}.writeUint64(v)\n\t}\n}\n\nfunc (e *cborEncDriver) EncodeInt(v int64) {\n\tif v < 0 {\n\t\te.encUint(uint64(-1-v), cborBaseNegInt)\n\t} else {\n\t\te.encUint(uint64(v), cborBaseUint)\n\t}\n}\n\nfunc (e *cborEncDriver) EncodeUint(v uint64) {\n\te.encUint(v, cborBaseUint)\n}\n\nfunc (e *cborEncDriver) encLen(bd byte, length int) {\n\te.encUint(uint64(length), bd)\n}\n\nfunc (e *cborEncDriver) EncodeTime(t time.Time) {\n\tif t.IsZero() {\n\t\te.EncodeNil()\n\t} else if e.h.TimeRFC3339 {\n\t\te.encUint(0, cborBaseTag)\n\t\te.EncodeStringEnc(cUTF8, t.Format(time.RFC3339Nano))\n\t} else {\n\t\te.encUint(1, cborBaseTag)\n\t\tt = t.UTC().Round(time.Microsecond)\n\t\tsec, nsec := t.Unix(), uint64(t.Nanosecond())\n\t\tif nsec == 0 {\n\t\t\te.EncodeInt(sec)\n\t\t} else {\n\t\t\te.EncodeFloat64(float64(sec) + float64(nsec)/1e9)\n\t\t}\n\t}\n}\n\nfunc (e *cborEncDriver) EncodeExt(rv interface{}, xtag uint64, ext Ext, en *Encoder) {\n\te.encUint(uint64(xtag), cborBaseTag)\n\tif v := ext.ConvertExt(rv); v == nil {\n\t\te.EncodeNil()\n\t} else {\n\t\ten.encode(v)\n\t}\n}\n\nfunc (e *cborEncDriver) EncodeRawExt(re *RawExt, en *Encoder) {\n\te.encUint(uint64(re.Tag), cborBaseTag)\n\t// only encodes re.Value (never re.Data)\n\t// if false && re.Data != nil {\n\t// \ten.encode(re.Data)\n\t// } else if re.Value != nil {\n\tif re.Value != nil {\n\t\ten.encode(re.Value)\n\t} else {\n\t\te.EncodeNil()\n\t}\n}\n\nfunc (e *cborEncDriver) WriteArrayStart(length int) {\n\tif e.h.IndefiniteLength {\n\t\te.w.writen1(cborBdIndefiniteArray)\n\t} else {\n\t\te.encLen(cborBaseArray, length)\n\t}\n}\n\nfunc (e *cborEncDriver) WriteMapStart(length int) {\n\tif e.h.IndefiniteLength {\n\t\te.w.writen1(cborBdIndefiniteMap)\n\t} else {\n\t\te.encLen(cborBaseMap, length)\n\t}\n}\n\nfunc (e *cborEncDriver) WriteMapEnd() {\n\tif e.h.IndefiniteLength {\n\t\te.w.writen1(cborBdBreak)\n\t}\n}\n\nfunc (e *cborEncDriver) WriteArrayEnd() {\n\tif e.h.IndefiniteLength {\n\t\te.w.writen1(cborBdBreak)\n\t}\n}\n\nfunc (e *cborEncDriver) EncodeStringEnc(c charEncoding, v string) {\n\te.encStringBytesS(cborBaseString, v)\n}\n\nfunc (e *cborEncDriver) EncodeStringBytesRaw(v []byte) {\n\tif v == nil {\n\t\te.EncodeNil()\n\t} else {\n\t\te.encStringBytesS(cborBaseBytes, stringView(v))\n\t}\n}\n\nfunc (e *cborEncDriver) encStringBytesS(bb byte, v string) {\n\tif e.h.IndefiniteLength {\n\t\tif bb == cborBaseBytes {\n\t\t\te.w.writen1(cborBdIndefiniteBytes)\n\t\t} else {\n\t\t\te.w.writen1(cborBdIndefiniteString)\n\t\t}\n\t\tvar vlen uint = uint(len(v))\n\t\tblen := vlen / 4\n\t\tif blen == 0 {\n\t\t\tblen = 64\n\t\t} else if blen > 1024 {\n\t\t\tblen = 1024\n\t\t}\n\t\tfor i := uint(0); i < vlen; {\n\t\t\tvar v2 string\n\t\t\ti2 := i + blen\n\t\t\tif i2 < vlen {\n\t\t\t\tv2 = v[i:i2]\n\t\t\t} else {\n\t\t\t\tv2 = v[i:]\n\t\t\t}\n\t\t\te.encLen(bb, len(v2))\n\t\t\te.w.writestr(v2)\n\t\t\ti = i2\n\t\t}\n\t\te.w.writen1(cborBdBreak)\n\t} else {\n\t\te.encLen(bb, len(v))\n\t\te.w.writestr(v)\n\t}\n}\n\n// ----------------------\n\ntype cborDecDriver struct {\n\td      *Decoder\n\th      *CborHandle\n\tr      *decReaderSwitch\n\tbr     bool // bytes reader\n\tbdRead bool\n\tbd     byte\n\tnoBuiltInTypes\n\t// decNoSeparator\n\tdecDriverNoopContainerReader\n\t// _ [3]uint64 // padding\n}\n\nfunc (d *cborDecDriver) readNextBd() {\n\td.bd = d.r.readn1()\n\td.bdRead = true\n}\n\nfunc (d *cborDecDriver) uncacheRead() {\n\tif d.bdRead {\n\t\td.r.unreadn1()\n\t\td.bdRead = false\n\t}\n}\n\nfunc (d *cborDecDriver) ContainerType() (vt valueType) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == cborBdNil {\n\t\treturn valueTypeNil\n\t} else if d.bd == cborBdIndefiniteBytes || (d.bd >= cborBaseBytes && d.bd < cborBaseString) {\n\t\treturn valueTypeBytes\n\t} else if d.bd == cborBdIndefiniteString || (d.bd >= cborBaseString && d.bd < cborBaseArray) {\n\t\treturn valueTypeString\n\t} else if d.bd == cborBdIndefiniteArray || (d.bd >= cborBaseArray && d.bd < cborBaseMap) {\n\t\treturn valueTypeArray\n\t} else if d.bd == cborBdIndefiniteMap || (d.bd >= cborBaseMap && d.bd < cborBaseTag) {\n\t\treturn valueTypeMap\n\t}\n\t// else {\n\t// d.d.errorf(\"isContainerType: unsupported parameter: %v\", vt)\n\t// }\n\treturn valueTypeUnset\n}\n\nfunc (d *cborDecDriver) TryDecodeAsNil() bool {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\t// treat Nil and Undefined as nil values\n\tif d.bd == cborBdNil || d.bd == cborBdUndefined {\n\t\td.bdRead = false\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *cborDecDriver) CheckBreak() bool {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == cborBdBreak {\n\t\td.bdRead = false\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *cborDecDriver) decUint() (ui uint64) {\n\tv := d.bd & 0x1f\n\tif v <= 0x17 {\n\t\tui = uint64(v)\n\t} else {\n\t\tif v == 0x18 {\n\t\t\tui = uint64(d.r.readn1())\n\t\t} else if v == 0x19 {\n\t\t\tui = uint64(bigen.Uint16(d.r.readx(2)))\n\t\t} else if v == 0x1a {\n\t\t\tui = uint64(bigen.Uint32(d.r.readx(4)))\n\t\t} else if v == 0x1b {\n\t\t\tui = uint64(bigen.Uint64(d.r.readx(8)))\n\t\t} else {\n\t\t\td.d.errorf(\"invalid descriptor decoding uint: %x/%s\", d.bd, cbordesc(d.bd))\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\nfunc (d *cborDecDriver) decCheckInteger() (neg bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tmajor := d.bd >> 5\n\tif major == cborMajorUint {\n\t} else if major == cborMajorNegInt {\n\t\tneg = true\n\t} else {\n\t\td.d.errorf(\"not an integer - invalid major %v from descriptor %x/%s\",\n\t\t\tmajor, d.bd, cbordesc(d.bd))\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *cborDecDriver) DecodeInt64() (i int64) {\n\tneg := d.decCheckInteger()\n\tui := d.decUint()\n\t// check if this number can be converted to an int without overflow\n\tif neg {\n\t\ti = -(chkOvf.SignedIntV(ui + 1))\n\t} else {\n\t\ti = chkOvf.SignedIntV(ui)\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *cborDecDriver) DecodeUint64() (ui uint64) {\n\tif d.decCheckInteger() {\n\t\td.d.errorf(\"assigning negative signed value to unsigned type\")\n\t\treturn\n\t}\n\tui = d.decUint()\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *cborDecDriver) DecodeFloat64() (f float64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif bd := d.bd; bd == cborBdFloat16 {\n\t\tf = float64(math.Float32frombits(halfFloatToFloatBits(bigen.Uint16(d.r.readx(2)))))\n\t} else if bd == cborBdFloat32 {\n\t\tf = float64(math.Float32frombits(bigen.Uint32(d.r.readx(4))))\n\t} else if bd == cborBdFloat64 {\n\t\tf = math.Float64frombits(bigen.Uint64(d.r.readx(8)))\n\t} else if bd >= cborBaseUint && bd < cborBaseBytes {\n\t\tf = float64(d.DecodeInt64())\n\t} else {\n\t\td.d.errorf(\"float only valid from float16/32/64 - invalid descriptor %x/%s\", bd, cbordesc(bd))\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\n// bool can be decoded from bool only (single byte).\nfunc (d *cborDecDriver) DecodeBool() (b bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif bd := d.bd; bd == cborBdTrue {\n\t\tb = true\n\t} else if bd == cborBdFalse {\n\t} else {\n\t\td.d.errorf(\"not bool - %s %x/%s\", msgBadDesc, d.bd, cbordesc(d.bd))\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *cborDecDriver) ReadMapStart() (length int) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\td.bdRead = false\n\tif d.bd == cborBdIndefiniteMap {\n\t\treturn -1\n\t}\n\treturn d.decLen()\n}\n\nfunc (d *cborDecDriver) ReadArrayStart() (length int) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\td.bdRead = false\n\tif d.bd == cborBdIndefiniteArray {\n\t\treturn -1\n\t}\n\treturn d.decLen()\n}\n\nfunc (d *cborDecDriver) decLen() int {\n\treturn int(d.decUint())\n}\n\nfunc (d *cborDecDriver) decAppendIndefiniteBytes(bs []byte) []byte {\n\td.bdRead = false\n\tfor {\n\t\tif d.CheckBreak() {\n\t\t\tbreak\n\t\t}\n\t\tif major := d.bd >> 5; major != cborMajorBytes && major != cborMajorText {\n\t\t\td.d.errorf(\"expect bytes/string major type in indefinite string/bytes;\"+\n\t\t\t\t\" got major %v from descriptor %x/%x\", major, d.bd, cbordesc(d.bd))\n\t\t\treturn nil\n\t\t}\n\t\tn := d.decLen()\n\t\toldLen := len(bs)\n\t\tnewLen := oldLen + n\n\t\tif newLen > cap(bs) {\n\t\t\tbs2 := make([]byte, newLen, 2*cap(bs)+n)\n\t\t\tcopy(bs2, bs)\n\t\t\tbs = bs2\n\t\t} else {\n\t\t\tbs = bs[:newLen]\n\t\t}\n\t\td.r.readb(bs[oldLen:newLen])\n\t\t// bs = append(bs, d.r.readn()...)\n\t\td.bdRead = false\n\t}\n\td.bdRead = false\n\treturn bs\n}\n\nfunc (d *cborDecDriver) DecodeBytes(bs []byte, zerocopy bool) (bsOut []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == cborBdNil || d.bd == cborBdUndefined {\n\t\td.bdRead = false\n\t\treturn nil\n\t}\n\tif d.bd == cborBdIndefiniteBytes || d.bd == cborBdIndefiniteString {\n\t\td.bdRead = false\n\t\tif bs == nil {\n\t\t\tif zerocopy {\n\t\t\t\treturn d.decAppendIndefiniteBytes(d.d.b[:0])\n\t\t\t}\n\t\t\treturn d.decAppendIndefiniteBytes(zeroByteSlice)\n\t\t}\n\t\treturn d.decAppendIndefiniteBytes(bs[:0])\n\t}\n\t// check if an \"array\" of uint8's (see ContainerType for how to infer if an array)\n\tif d.bd == cborBdIndefiniteArray || (d.bd >= cborBaseArray && d.bd < cborBaseMap) {\n\t\tbsOut, _ = fastpathTV.DecSliceUint8V(bs, true, d.d)\n\t\treturn\n\t}\n\tclen := d.decLen()\n\td.bdRead = false\n\tif zerocopy {\n\t\tif d.br {\n\t\t\treturn d.r.readx(uint(clen))\n\t\t} else if len(bs) == 0 {\n\t\t\tbs = d.d.b[:]\n\t\t}\n\t}\n\treturn decByteSlice(d.r, clen, d.h.MaxInitLen, bs)\n}\n\nfunc (d *cborDecDriver) DecodeString() (s string) {\n\treturn string(d.DecodeBytes(d.d.b[:], true))\n}\n\nfunc (d *cborDecDriver) DecodeStringAsBytes() (s []byte) {\n\treturn d.DecodeBytes(d.d.b[:], true)\n}\n\nfunc (d *cborDecDriver) DecodeTime() (t time.Time) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == cborBdNil || d.bd == cborBdUndefined {\n\t\td.bdRead = false\n\t\treturn\n\t}\n\txtag := d.decUint()\n\td.bdRead = false\n\treturn d.decodeTime(xtag)\n}\n\nfunc (d *cborDecDriver) decodeTime(xtag uint64) (t time.Time) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tswitch xtag {\n\tcase 0:\n\t\tvar err error\n\t\tif t, err = time.Parse(time.RFC3339, stringView(d.DecodeStringAsBytes())); err != nil {\n\t\t\td.d.errorv(err)\n\t\t}\n\tcase 1:\n\t\t// decode an int64 or a float, and infer time.Time from there.\n\t\t// for floats, round to microseconds, as that is what is guaranteed to fit well.\n\t\tswitch {\n\t\tcase d.bd == cborBdFloat16, d.bd == cborBdFloat32:\n\t\t\tf1, f2 := math.Modf(d.DecodeFloat64())\n\t\t\tt = time.Unix(int64(f1), int64(f2*1e9))\n\t\tcase d.bd == cborBdFloat64:\n\t\t\tf1, f2 := math.Modf(d.DecodeFloat64())\n\t\t\tt = time.Unix(int64(f1), int64(f2*1e9))\n\t\tcase d.bd >= cborBaseUint && d.bd < cborBaseNegInt,\n\t\t\td.bd >= cborBaseNegInt && d.bd < cborBaseBytes:\n\t\t\tt = time.Unix(d.DecodeInt64(), 0)\n\t\tdefault:\n\t\t\td.d.errorf(\"time.Time can only be decoded from a number (or RFC3339 string)\")\n\t\t}\n\tdefault:\n\t\td.d.errorf(\"invalid tag for time.Time - expecting 0 or 1, got 0x%x\", xtag)\n\t}\n\tt = t.UTC().Round(time.Microsecond)\n\treturn\n}\n\nfunc (d *cborDecDriver) DecodeExt(rv interface{}, xtag uint64, ext Ext) (realxtag uint64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tu := d.decUint()\n\td.bdRead = false\n\trealxtag = u\n\tif ext == nil {\n\t\tre := rv.(*RawExt)\n\t\tre.Tag = realxtag\n\t\td.d.decode(&re.Value)\n\t} else if xtag != realxtag {\n\t\td.d.errorf(\"Wrong extension tag. Got %b. Expecting: %v\", realxtag, xtag)\n\t\treturn\n\t} else {\n\t\tvar v interface{}\n\t\td.d.decode(&v)\n\t\text.UpdateExt(rv, v)\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *cborDecDriver) DecodeNaked() {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\n\tn := d.d.naked()\n\tvar decodeFurther bool\n\n\tswitch d.bd {\n\tcase cborBdNil:\n\t\tn.v = valueTypeNil\n\tcase cborBdFalse:\n\t\tn.v = valueTypeBool\n\t\tn.b = false\n\tcase cborBdTrue:\n\t\tn.v = valueTypeBool\n\t\tn.b = true\n\tcase cborBdFloat16, cborBdFloat32, cborBdFloat64:\n\t\tn.v = valueTypeFloat\n\t\tn.f = d.DecodeFloat64()\n\tcase cborBdIndefiniteBytes:\n\t\tdecNakedReadRawBytes(d, d.d, n, d.h.RawToString)\n\tcase cborBdIndefiniteString:\n\t\tn.v = valueTypeString\n\t\tn.s = d.DecodeString()\n\tcase cborBdIndefiniteArray:\n\t\tn.v = valueTypeArray\n\t\tdecodeFurther = true\n\tcase cborBdIndefiniteMap:\n\t\tn.v = valueTypeMap\n\t\tdecodeFurther = true\n\tdefault:\n\t\tswitch {\n\t\tcase d.bd >= cborBaseUint && d.bd < cborBaseNegInt:\n\t\t\tif d.h.SignedInteger {\n\t\t\t\tn.v = valueTypeInt\n\t\t\t\tn.i = d.DecodeInt64()\n\t\t\t} else {\n\t\t\t\tn.v = valueTypeUint\n\t\t\t\tn.u = d.DecodeUint64()\n\t\t\t}\n\t\tcase d.bd >= cborBaseNegInt && d.bd < cborBaseBytes:\n\t\t\tn.v = valueTypeInt\n\t\t\tn.i = d.DecodeInt64()\n\t\tcase d.bd >= cborBaseBytes && d.bd < cborBaseString:\n\t\t\tdecNakedReadRawBytes(d, d.d, n, d.h.RawToString)\n\t\tcase d.bd >= cborBaseString && d.bd < cborBaseArray:\n\t\t\tn.v = valueTypeString\n\t\t\tn.s = d.DecodeString()\n\t\tcase d.bd >= cborBaseArray && d.bd < cborBaseMap:\n\t\t\tn.v = valueTypeArray\n\t\t\tdecodeFurther = true\n\t\tcase d.bd >= cborBaseMap && d.bd < cborBaseTag:\n\t\t\tn.v = valueTypeMap\n\t\t\tdecodeFurther = true\n\t\tcase d.bd >= cborBaseTag && d.bd < cborBaseSimple:\n\t\t\tn.v = valueTypeExt\n\t\t\tn.u = d.decUint()\n\t\t\tn.l = nil\n\t\t\tif n.u == 0 || n.u == 1 {\n\t\t\t\td.bdRead = false\n\t\t\t\tn.v = valueTypeTime\n\t\t\t\tn.t = d.decodeTime(n.u)\n\t\t\t}\n\t\t\t// d.bdRead = false\n\t\t\t// d.d.decode(&re.Value) // handled by decode itself.\n\t\t\t// decodeFurther = true\n\t\tdefault:\n\t\t\td.d.errorf(\"decodeNaked: Unrecognized d.bd: 0x%x\", d.bd)\n\t\t\treturn\n\t\t}\n\t}\n\n\tif !decodeFurther {\n\t\td.bdRead = false\n\t}\n}\n\n// -------------------------\n\n// CborHandle is a Handle for the CBOR encoding format,\n// defined at http://tools.ietf.org/html/rfc7049 and documented further at http://cbor.io .\n//\n// CBOR is comprehensively supported, including support for:\n//   - indefinite-length arrays/maps/bytes/strings\n//   - (extension) tags in range 0..0xffff (0 .. 65535)\n//   - half, single and double-precision floats\n//   - all numbers (1, 2, 4 and 8-byte signed and unsigned integers)\n//   - nil, true, false, ...\n//   - arrays and maps, bytes and text strings\n//\n// None of the optional extensions (with tags) defined in the spec are supported out-of-the-box.\n// Users can implement them as needed (using SetExt), including spec-documented ones:\n//   - timestamp, BigNum, BigFloat, Decimals,\n//   - Encoded Text (e.g. URL, regexp, base64, MIME Message), etc.\ntype CborHandle struct {\n\tbinaryEncodingType\n\tnoElemSeparators\n\tBasicHandle\n\n\t// IndefiniteLength=true, means that we encode using indefinitelength\n\tIndefiniteLength bool\n\n\t// TimeRFC3339 says to encode time.Time using RFC3339 format.\n\t// If unset, we encode time.Time using seconds past epoch.\n\tTimeRFC3339 bool\n\n\t_ [1]uint64 // padding (cache-aligned)\n}\n\n// Name returns the name of the handle: cbor\nfunc (h *CborHandle) Name() string { return \"cbor\" }\n\n// SetInterfaceExt sets an extension\nfunc (h *CborHandle) SetInterfaceExt(rt reflect.Type, tag uint64, ext InterfaceExt) (err error) {\n\treturn h.SetExt(rt, tag, &interfaceExtWrapper{InterfaceExt: ext})\n}\n\nfunc (h *CborHandle) newEncDriver(e *Encoder) encDriver {\n\treturn &cborEncDriver{e: e, w: e.w(), h: h}\n}\n\nfunc (h *CborHandle) newDecDriver(d *Decoder) decDriver {\n\treturn &cborDecDriver{d: d, h: h, r: d.r(), br: d.bytes}\n}\n\nfunc (e *cborEncDriver) reset() {\n\te.w = e.e.w()\n}\n\nfunc (d *cborDecDriver) reset() {\n\td.r, d.br = d.d.r(), d.d.bytes\n\td.bd, d.bdRead = 0, false\n}\n\nvar _ decDriver = (*cborDecDriver)(nil)\nvar _ encDriver = (*cborEncDriver)(nil)\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/codecgen.go",
    "content": "// +build codecgen generated\n\npackage codec\n\n// this file is here, to set the codecgen variable to true\n// when the build tag codecgen is set.\n//\n// this allows us do specific things e.g. skip missing fields tests,\n// when running in codecgen mode.\n\nfunc init() {\n\tcodecgen = true\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/decode.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// Some tagging information for error messages.\nconst (\n\tmsgBadDesc = \"unrecognized descriptor byte\"\n\t// msgDecCannotExpandArr = \"cannot expand go array from %v to stream length: %v\"\n)\n\nconst (\n\tdecDefMaxDepth         = 1024 // maximum depth\n\tdecDefSliceCap         = 8\n\tdecDefChanCap          = 64            // should be large, as cap cannot be expanded\n\tdecScratchByteArrayLen = cacheLineSize // - 5 // + (8 * 2) // - (8 * 1)\n)\n\nvar (\n\terrstrOnlyMapOrArrayCanDecodeIntoStruct = \"only encoded map or array can be decoded into a struct\"\n\terrstrCannotDecodeIntoNil               = \"cannot decode into nil\"\n\n\terrmsgExpandSliceOverflow     = \"expand slice: slice overflow\"\n\terrmsgExpandSliceCannotChange = \"expand slice: cannot change\"\n\n\terrDecoderNotInitialized = errors.New(\"Decoder not initialized\")\n\n\terrDecUnreadByteNothingToRead   = errors.New(\"cannot unread - nothing has been read\")\n\terrDecUnreadByteLastByteNotRead = errors.New(\"cannot unread - last byte has not been read\")\n\terrDecUnreadByteUnknown         = errors.New(\"cannot unread - reason unknown\")\n\terrMaxDepthExceeded             = errors.New(\"maximum decoding depth exceeded\")\n)\n\n/*\n\n// decReader abstracts the reading source, allowing implementations that can\n// read from an io.Reader or directly off a byte slice with zero-copying.\n//\n// Deprecated: Use decReaderSwitch instead.\ntype decReader interface {\n\tunreadn1()\n\t// readx will use the implementation scratch buffer if possible i.e. n < len(scratchbuf), OR\n\t// just return a view of the []byte being decoded from.\n\t// Ensure you call detachZeroCopyBytes later if this needs to be sent outside codec control.\n\treadx(n int) []byte\n\treadb([]byte)\n\treadn1() uint8\n\tnumread() uint // number of bytes read\n\ttrack()\n\tstopTrack() []byte\n\n\t// skip will skip any byte that matches, and return the first non-matching byte\n\tskip(accept *bitset256) (token byte)\n\t// readTo will read any byte that matches, stopping once no-longer matching.\n\treadTo(in []byte, accept *bitset256) (out []byte)\n\t// readUntil will read, only stopping once it matches the 'stop' byte.\n\treadUntil(in []byte, stop byte) (out []byte)\n}\n\n*/\n\ntype decDriver interface {\n\t// this will check if the next token is a break.\n\tCheckBreak() bool\n\t// TryDecodeAsNil tries to decode as nil.\n\t// Note: TryDecodeAsNil should be careful not to share any temporary []byte with\n\t// the rest of the decDriver. This is because sometimes, we optimize by holding onto\n\t// a transient []byte, and ensuring the only other call we make to the decDriver\n\t// during that time is maybe a TryDecodeAsNil() call.\n\tTryDecodeAsNil() bool\n\t// ContainerType returns one of: Bytes, String, Nil, Slice or Map. Return unSet if not known.\n\tContainerType() (vt valueType)\n\t// IsBuiltinType(rt uintptr) bool\n\n\t// DecodeNaked will decode primitives (number, bool, string, []byte) and RawExt.\n\t// For maps and arrays, it will not do the decoding in-band, but will signal\n\t// the decoder, so that is done later, by setting the decNaked.valueType field.\n\t//\n\t// Note: Numbers are decoded as int64, uint64, float64 only (no smaller sized number types).\n\t// for extensions, DecodeNaked must read the tag and the []byte if it exists.\n\t// if the []byte is not read, then kInterfaceNaked will treat it as a Handle\n\t// that stores the subsequent value in-band, and complete reading the RawExt.\n\t//\n\t// extensions should also use readx to decode them, for efficiency.\n\t// kInterface will extract the detached byte slice if it has to pass it outside its realm.\n\tDecodeNaked()\n\n\tDecodeInt64() (i int64)\n\tDecodeUint64() (ui uint64)\n\n\tDecodeFloat64() (f float64)\n\tDecodeBool() (b bool)\n\t// DecodeString can also decode symbols.\n\t// It looks redundant as DecodeBytes is available.\n\t// However, some codecs (e.g. binc) support symbols and can\n\t// return a pre-stored string value, meaning that it can bypass\n\t// the cost of []byte->string conversion.\n\tDecodeString() (s string)\n\tDecodeStringAsBytes() (v []byte)\n\n\t// DecodeBytes may be called directly, without going through reflection.\n\t// Consequently, it must be designed to handle possible nil.\n\tDecodeBytes(bs []byte, zerocopy bool) (bsOut []byte)\n\t// DecodeBytes(bs []byte, isstring, zerocopy bool) (bsOut []byte)\n\n\t// decodeExt will decode into a *RawExt or into an extension.\n\tDecodeExt(v interface{}, xtag uint64, ext Ext) (realxtag uint64)\n\t// decodeExt(verifyTag bool, tag byte) (xtag byte, xbs []byte)\n\n\tDecodeTime() (t time.Time)\n\n\tReadArrayStart() int\n\tReadArrayEnd()\n\tReadMapStart() int\n\tReadMapEnd()\n\n\treset()\n\tuncacheRead()\n}\n\ntype decDriverContainerTracker interface {\n\tReadArrayElem()\n\tReadMapElemKey()\n\tReadMapElemValue()\n}\n\ntype decodeError struct {\n\tcodecError\n\tpos int\n}\n\nfunc (d decodeError) Error() string {\n\treturn fmt.Sprintf(\"%s decode error [pos %d]: %v\", d.name, d.pos, d.err)\n}\n\ntype decDriverNoopContainerReader struct{}\n\nfunc (x decDriverNoopContainerReader) ReadArrayStart() (v int) { return }\nfunc (x decDriverNoopContainerReader) ReadArrayEnd()           {}\nfunc (x decDriverNoopContainerReader) ReadMapStart() (v int)   { return }\nfunc (x decDriverNoopContainerReader) ReadMapEnd()             {}\nfunc (x decDriverNoopContainerReader) CheckBreak() (v bool)    { return }\n\n// func (x decDriverNoopContainerReader) ReadArrayElem()          {}\n// func (x decDriverNoopContainerReader) ReadMapElemKey()         {}\n// func (x decDriverNoopContainerReader) ReadMapElemValue()       {}\n\n// func (x decNoSeparator) uncacheRead() {}\n\n// DecodeOptions captures configuration options during decode.\ntype DecodeOptions struct {\n\t// MapType specifies type to use during schema-less decoding of a map in the stream.\n\t// If nil (unset), we default to map[string]interface{} iff json handle and MapStringAsKey=true,\n\t// else map[interface{}]interface{}.\n\tMapType reflect.Type\n\n\t// SliceType specifies type to use during schema-less decoding of an array in the stream.\n\t// If nil (unset), we default to []interface{} for all formats.\n\tSliceType reflect.Type\n\n\t// MaxInitLen defines the maxinum initial length that we \"make\" a collection\n\t// (string, slice, map, chan). If 0 or negative, we default to a sensible value\n\t// based on the size of an element in the collection.\n\t//\n\t// For example, when decoding, a stream may say that it has 2^64 elements.\n\t// We should not auto-matically provision a slice of that size, to prevent Out-Of-Memory crash.\n\t// Instead, we provision up to MaxInitLen, fill that up, and start appending after that.\n\tMaxInitLen int\n\n\t// ReaderBufferSize is the size of the buffer used when reading.\n\t//\n\t// if > 0, we use a smart buffer internally for performance purposes.\n\tReaderBufferSize int\n\n\t// MaxDepth defines the maximum depth when decoding nested\n\t// maps and slices. If 0 or negative, we default to a suitably large number (currently 1024).\n\tMaxDepth int16\n\n\t// If ErrorIfNoField, return an error when decoding a map\n\t// from a codec stream into a struct, and no matching struct field is found.\n\tErrorIfNoField bool\n\n\t// If ErrorIfNoArrayExpand, return an error when decoding a slice/array that cannot be expanded.\n\t// For example, the stream contains an array of 8 items, but you are decoding into a [4]T array,\n\t// or you are decoding into a slice of length 4 which is non-addressable (and so cannot be set).\n\tErrorIfNoArrayExpand bool\n\n\t// If SignedInteger, use the int64 during schema-less decoding of unsigned values (not uint64).\n\tSignedInteger bool\n\n\t// MapValueReset controls how we decode into a map value.\n\t//\n\t// By default, we MAY retrieve the mapping for a key, and then decode into that.\n\t// However, especially with big maps, that retrieval may be expensive and unnecessary\n\t// if the stream already contains all that is necessary to recreate the value.\n\t//\n\t// If true, we will never retrieve the previous mapping,\n\t// but rather decode into a new value and set that in the map.\n\t//\n\t// If false, we will retrieve the previous mapping if necessary e.g.\n\t// the previous mapping is a pointer, or is a struct or array with pre-set state,\n\t// or is an interface.\n\tMapValueReset bool\n\n\t// SliceElementReset: on decoding a slice, reset the element to a zero value first.\n\t//\n\t// concern: if the slice already contained some garbage, we will decode into that garbage.\n\tSliceElementReset bool\n\n\t// InterfaceReset controls how we decode into an interface.\n\t//\n\t// By default, when we see a field that is an interface{...},\n\t// or a map with interface{...} value, we will attempt decoding into the\n\t// \"contained\" value.\n\t//\n\t// However, this prevents us from reading a string into an interface{}\n\t// that formerly contained a number.\n\t//\n\t// If true, we will decode into a new \"blank\" value, and set that in the interface.\n\t// If false, we will decode into whatever is contained in the interface.\n\tInterfaceReset bool\n\n\t// InternString controls interning of strings during decoding.\n\t//\n\t// Some handles, e.g. json, typically will read map keys as strings.\n\t// If the set of keys are finite, it may help reduce allocation to\n\t// look them up from a map (than to allocate them afresh).\n\t//\n\t// Note: Handles will be smart when using the intern functionality.\n\t// Every string should not be interned.\n\t// An excellent use-case for interning is struct field names,\n\t// or map keys where key type is string.\n\tInternString bool\n\n\t// PreferArrayOverSlice controls whether to decode to an array or a slice.\n\t//\n\t// This only impacts decoding into a nil interface{}.\n\t// Consequently, it has no effect on codecgen.\n\t//\n\t// *Note*: This only applies if using go1.5 and above,\n\t// as it requires reflect.ArrayOf support which was absent before go1.5.\n\tPreferArrayOverSlice bool\n\n\t// DeleteOnNilMapValue controls how to decode a nil value in the stream.\n\t//\n\t// If true, we will delete the mapping of the key.\n\t// Else, just set the mapping to the zero value of the type.\n\tDeleteOnNilMapValue bool\n\n\t// RawToString controls how raw bytes in a stream are decoded into a nil interface{}.\n\t// By default, they are decoded as []byte, but can be decoded as string (if configured).\n\tRawToString bool\n}\n\n// ------------------------------------------------\n\ntype unreadByteStatus uint8\n\n// unreadByteStatus goes from\n// undefined (when initialized) -- (read) --> canUnread -- (unread) --> canRead ...\nconst (\n\tunreadByteUndefined unreadByteStatus = iota\n\tunreadByteCanRead\n\tunreadByteCanUnread\n)\n\ntype ioDecReaderCommon struct {\n\tr io.Reader // the reader passed in\n\n\tn uint // num read\n\n\tl   byte             // last byte\n\tls  unreadByteStatus // last byte status\n\ttrb bool             // tracking bytes turned on\n\t_   bool\n\tb   [4]byte // tiny buffer for reading single bytes\n\n\ttr []byte // tracking bytes read\n}\n\nfunc (z *ioDecReaderCommon) reset(r io.Reader) {\n\tz.r = r\n\tz.ls = unreadByteUndefined\n\tz.l, z.n = 0, 0\n\tz.trb = false\n\tif z.tr != nil {\n\t\tz.tr = z.tr[:0]\n\t}\n}\n\nfunc (z *ioDecReaderCommon) numread() uint {\n\treturn z.n\n}\n\nfunc (z *ioDecReaderCommon) track() {\n\tif z.tr != nil {\n\t\tz.tr = z.tr[:0]\n\t}\n\tz.trb = true\n}\n\nfunc (z *ioDecReaderCommon) stopTrack() (bs []byte) {\n\tz.trb = false\n\treturn z.tr\n}\n\n// ------------------------------------------\n\n// ioDecReader is a decReader that reads off an io.Reader.\n//\n// It also has a fallback implementation of ByteScanner if needed.\ntype ioDecReader struct {\n\tioDecReaderCommon\n\n\trr io.Reader\n\tbr io.ByteScanner\n\n\tx [scratchByteArrayLen + 8]byte // for: get struct field name, swallow valueTypeBytes, etc\n\t// _ [1]uint64                 // padding\n}\n\nfunc (z *ioDecReader) reset(r io.Reader) {\n\tz.ioDecReaderCommon.reset(r)\n\n\tvar ok bool\n\tz.rr = r\n\tz.br, ok = r.(io.ByteScanner)\n\tif !ok {\n\t\tz.br = z\n\t\tz.rr = z\n\t}\n}\n\nfunc (z *ioDecReader) Read(p []byte) (n int, err error) {\n\tif len(p) == 0 {\n\t\treturn\n\t}\n\tvar firstByte bool\n\tif z.ls == unreadByteCanRead {\n\t\tz.ls = unreadByteCanUnread\n\t\tp[0] = z.l\n\t\tif len(p) == 1 {\n\t\t\tn = 1\n\t\t\treturn\n\t\t}\n\t\tfirstByte = true\n\t\tp = p[1:]\n\t}\n\tn, err = z.r.Read(p)\n\tif n > 0 {\n\t\tif err == io.EOF && n == len(p) {\n\t\t\terr = nil // read was successful, so postpone EOF (till next time)\n\t\t}\n\t\tz.l = p[n-1]\n\t\tz.ls = unreadByteCanUnread\n\t}\n\tif firstByte {\n\t\tn++\n\t}\n\treturn\n}\n\nfunc (z *ioDecReader) ReadByte() (c byte, err error) {\n\tn, err := z.Read(z.b[:1])\n\tif n == 1 {\n\t\tc = z.b[0]\n\t\tif err == io.EOF {\n\t\t\terr = nil // read was successful, so postpone EOF (till next time)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (z *ioDecReader) UnreadByte() (err error) {\n\tswitch z.ls {\n\tcase unreadByteCanUnread:\n\t\tz.ls = unreadByteCanRead\n\tcase unreadByteCanRead:\n\t\terr = errDecUnreadByteLastByteNotRead\n\tcase unreadByteUndefined:\n\t\terr = errDecUnreadByteNothingToRead\n\tdefault:\n\t\terr = errDecUnreadByteUnknown\n\t}\n\treturn\n}\n\nfunc (z *ioDecReader) readx(n uint) (bs []byte) {\n\tif n == 0 {\n\t\treturn\n\t}\n\tif n < uint(len(z.x)) {\n\t\tbs = z.x[:n]\n\t} else {\n\t\tbs = make([]byte, n)\n\t}\n\tif _, err := decReadFull(z.rr, bs); err != nil {\n\t\tpanic(err)\n\t}\n\tz.n += uint(len(bs))\n\tif z.trb {\n\t\tz.tr = append(z.tr, bs...)\n\t}\n\treturn\n}\n\nfunc (z *ioDecReader) readb(bs []byte) {\n\tif len(bs) == 0 {\n\t\treturn\n\t}\n\tif _, err := decReadFull(z.rr, bs); err != nil {\n\t\tpanic(err)\n\t}\n\tz.n += uint(len(bs))\n\tif z.trb {\n\t\tz.tr = append(z.tr, bs...)\n\t}\n}\n\nfunc (z *ioDecReader) readn1eof() (b uint8, eof bool) {\n\tb, err := z.br.ReadByte()\n\tif err == nil {\n\t\tz.n++\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, b)\n\t\t}\n\t} else if err == io.EOF {\n\t\teof = true\n\t} else {\n\t\tpanic(err)\n\t}\n\treturn\n}\n\nfunc (z *ioDecReader) readn1() (b uint8) {\n\tb, err := z.br.ReadByte()\n\tif err == nil {\n\t\tz.n++\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, b)\n\t\t}\n\t\treturn\n\t}\n\tpanic(err)\n}\n\nfunc (z *ioDecReader) skip(accept *bitset256) (token byte) {\n\tvar eof bool\n\t// for {\n\t// \ttoken, eof = z.readn1eof()\n\t// \tif eof {\n\t// \t\treturn\n\t// \t}\n\t// \tif accept.isset(token) {\n\t// \t\tcontinue\n\t// \t}\n\t// \treturn\n\t// }\nLOOP:\n\ttoken, eof = z.readn1eof()\n\tif eof {\n\t\treturn\n\t}\n\tif accept.isset(token) {\n\t\tgoto LOOP\n\t}\n\treturn\n}\n\nfunc (z *ioDecReader) readTo(in []byte, accept *bitset256) []byte {\n\t// out = in\n\n\t// for {\n\t// \ttoken, eof := z.readn1eof()\n\t// \tif eof {\n\t// \t\treturn\n\t// \t}\n\t// \tif accept.isset(token) {\n\t// \t\tout = append(out, token)\n\t// \t} else {\n\t// \t\tz.unreadn1()\n\t// \t\treturn\n\t// \t}\n\t// }\nLOOP:\n\ttoken, eof := z.readn1eof()\n\tif eof {\n\t\treturn in\n\t}\n\tif accept.isset(token) {\n\t\t// out = append(out, token)\n\t\tin = append(in, token)\n\t\tgoto LOOP\n\t}\n\tz.unreadn1()\n\treturn in\n}\n\nfunc (z *ioDecReader) readUntil(in []byte, stop byte) (out []byte) {\n\tout = in\n\t// for {\n\t// \ttoken, eof := z.readn1eof()\n\t// \tif eof {\n\t// \t\tpanic(io.EOF)\n\t// \t}\n\t// \tout = append(out, token)\n\t// \tif token == stop {\n\t// \t\treturn\n\t// \t}\n\t// }\nLOOP:\n\ttoken, eof := z.readn1eof()\n\tif eof {\n\t\tpanic(io.EOF)\n\t}\n\tout = append(out, token)\n\tif token == stop {\n\t\treturn\n\t}\n\tgoto LOOP\n}\n\n//go:noinline\nfunc (z *ioDecReader) unreadn1() {\n\terr := z.br.UnreadByte()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tz.n--\n\tif z.trb {\n\t\tif l := len(z.tr) - 1; l >= 0 {\n\t\t\tz.tr = z.tr[:l]\n\t\t}\n\t}\n}\n\n// ------------------------------------\n\ntype bufioDecReader struct {\n\tioDecReaderCommon\n\t_ uint64 // padding (cache-aligned)\n\n\tc   uint // cursor\n\tbuf []byte\n\n\tbytesBufPooler\n\n\t// err error\n\n\t// Extensions can call Decode() within a current Decode() call.\n\t// We need to know when the top level Decode() call returns,\n\t// so we can decide whether to Release() or not.\n\tcalls uint16 // what depth in mustDecode are we in now.\n\n\t_ [6]uint8 // padding\n}\n\nfunc (z *bufioDecReader) reset(r io.Reader, bufsize int) {\n\tz.ioDecReaderCommon.reset(r)\n\tz.c = 0\n\tz.calls = 0\n\tif cap(z.buf) >= bufsize {\n\t\tz.buf = z.buf[:0]\n\t} else {\n\t\tz.buf = z.bytesBufPooler.get(bufsize)[:0]\n\t\t// z.buf = make([]byte, 0, bufsize)\n\t}\n}\n\nfunc (z *bufioDecReader) release() {\n\tz.buf = nil\n\tz.bytesBufPooler.end()\n}\n\nfunc (z *bufioDecReader) readb(p []byte) {\n\tvar n = uint(copy(p, z.buf[z.c:]))\n\tz.n += n\n\tz.c += n\n\tif len(p) == int(n) {\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, p...) // cost=9\n\t\t}\n\t} else {\n\t\tz.readbFill(p, n)\n\t}\n}\n\n//go:noinline - fallback when z.buf is consumed\nfunc (z *bufioDecReader) readbFill(p0 []byte, n uint) {\n\t// at this point, there's nothing in z.buf to read (z.buf is fully consumed)\n\tp := p0[n:]\n\tvar n2 uint\n\tvar err error\n\tif len(p) > cap(z.buf) {\n\t\tn2, err = decReadFull(z.r, p)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tn += n2\n\t\tz.n += n2\n\t\t// always keep last byte in z.buf\n\t\tz.buf = z.buf[:1]\n\t\tz.buf[0] = p[len(p)-1]\n\t\tz.c = 1\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, p0[:n]...)\n\t\t}\n\t\treturn\n\t}\n\t// z.c is now 0, and len(p) <= cap(z.buf)\nLOOP:\n\t// for len(p) > 0 && z.err == nil {\n\tif len(p) > 0 {\n\t\tz.buf = z.buf[0:cap(z.buf)]\n\t\tvar n1 int\n\t\tn1, err = z.r.Read(z.buf)\n\t\tn2 = uint(n1)\n\t\tif n2 == 0 && err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tz.buf = z.buf[:n2]\n\t\tn2 = uint(copy(p, z.buf))\n\t\tz.c = n2\n\t\tn += n2\n\t\tz.n += n2\n\t\tp = p[n2:]\n\t\tgoto LOOP\n\t}\n\tif z.c == 0 {\n\t\tz.buf = z.buf[:1]\n\t\tz.buf[0] = p[len(p)-1]\n\t\tz.c = 1\n\t}\n\tif z.trb {\n\t\tz.tr = append(z.tr, p0[:n]...)\n\t}\n}\n\nfunc (z *bufioDecReader) readn1() (b byte) {\n\t// fast-path, so we elide calling into Read() most of the time\n\tif z.c < uint(len(z.buf)) {\n\t\tb = z.buf[z.c]\n\t\tz.c++\n\t\tz.n++\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, b)\n\t\t}\n\t} else { // meaning z.c == len(z.buf) or greater ... so need to fill\n\t\tz.readbFill(z.b[:1], 0)\n\t\tb = z.b[0]\n\t}\n\treturn\n}\n\nfunc (z *bufioDecReader) unreadn1() {\n\tif z.c == 0 {\n\t\tpanic(errDecUnreadByteNothingToRead)\n\t}\n\tz.c--\n\tz.n--\n\tif z.trb {\n\t\tz.tr = z.tr[:len(z.tr)-1]\n\t}\n}\n\nfunc (z *bufioDecReader) readx(n uint) (bs []byte) {\n\tif n == 0 {\n\t\t// return\n\t} else if z.c+n <= uint(len(z.buf)) {\n\t\tbs = z.buf[z.c : z.c+n]\n\t\tz.n += n\n\t\tz.c += n\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, bs...)\n\t\t}\n\t} else {\n\t\tbs = make([]byte, n)\n\t\t// n no longer used - can reuse\n\t\tn = uint(copy(bs, z.buf[z.c:]))\n\t\tz.n += n\n\t\tz.c += n\n\t\tz.readbFill(bs, n)\n\t}\n\treturn\n}\n\n//go:noinline - track called by Decoder.nextValueBytes() (called by jsonUnmarshal,rawBytes)\nfunc (z *bufioDecReader) doTrack(y uint) {\n\tz.tr = append(z.tr, z.buf[z.c:y]...) // cost=14???\n}\n\nfunc (z *bufioDecReader) skipLoopFn(i uint) {\n\tz.n += (i - z.c) - 1\n\ti++\n\tif z.trb {\n\t\t// z.tr = append(z.tr, z.buf[z.c:i]...)\n\t\tz.doTrack(i)\n\t}\n\tz.c = i\n}\n\nfunc (z *bufioDecReader) skip(accept *bitset256) (token byte) {\n\t// token, _ = z.search(nil, accept, 0, 1); return\n\n\t// for i := z.c; i < len(z.buf); i++ {\n\t// \tif token = z.buf[i]; !accept.isset(token) {\n\t// \t\tz.skipLoopFn(i)\n\t// \t\treturn\n\t// \t}\n\t// }\n\n\ti := z.c\nLOOP:\n\tif i < uint(len(z.buf)) {\n\t\t// inline z.skipLoopFn(i) and refactor, so cost is within inline budget\n\t\ttoken = z.buf[i]\n\t\ti++\n\t\tif accept.isset(token) {\n\t\t\tgoto LOOP\n\t\t}\n\t\tz.n += i - 2 - z.c\n\t\tif z.trb {\n\t\t\tz.doTrack(i)\n\t\t}\n\t\tz.c = i\n\t\treturn\n\t}\n\treturn z.skipFill(accept)\n}\n\nfunc (z *bufioDecReader) skipFill(accept *bitset256) (token byte) {\n\tz.n += uint(len(z.buf)) - z.c\n\tif z.trb {\n\t\tz.tr = append(z.tr, z.buf[z.c:]...)\n\t}\n\tvar n2 int\n\tvar err error\n\tfor {\n\t\tz.c = 0\n\t\tz.buf = z.buf[0:cap(z.buf)]\n\t\tn2, err = z.r.Read(z.buf)\n\t\tif n2 == 0 && err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tz.buf = z.buf[:n2]\n\t\tvar i int\n\t\tfor i, token = range z.buf {\n\t\t\tif !accept.isset(token) {\n\t\t\t\tz.skipLoopFn(uint(i))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\t// for i := 0; i < n2; i++ {\n\t\t// \tif token = z.buf[i]; !accept.isset(token) {\n\t\t// \t\tz.skipLoopFn(i)\n\t\t// \t\treturn\n\t\t// \t}\n\t\t// }\n\t\tz.n += uint(n2)\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, z.buf...)\n\t\t}\n\t}\n}\n\nfunc (z *bufioDecReader) readToLoopFn(i uint, out0 []byte) (out []byte) {\n\t// out0 is never nil\n\tz.n += (i - z.c) - 1\n\tout = append(out0, z.buf[z.c:i]...)\n\tif z.trb {\n\t\tz.doTrack(i)\n\t}\n\tz.c = i\n\treturn\n}\n\nfunc (z *bufioDecReader) readTo(in []byte, accept *bitset256) (out []byte) {\n\t// _, out = z.search(in, accept, 0, 2); return\n\n\t// for i := z.c; i < len(z.buf); i++ {\n\t// \tif !accept.isset(z.buf[i]) {\n\t// \t\treturn z.readToLoopFn(i, nil)\n\t// \t}\n\t// }\n\n\ti := z.c\nLOOP:\n\tif i < uint(len(z.buf)) {\n\t\tif !accept.isset(z.buf[i]) {\n\t\t\t// return z.readToLoopFn(i, nil)\n\t\t\t// inline readToLoopFn here (for performance)\n\t\t\tz.n += (i - z.c) - 1\n\t\t\tout = z.buf[z.c:i]\n\t\t\tif z.trb {\n\t\t\t\tz.doTrack(i)\n\t\t\t}\n\t\t\tz.c = i\n\t\t\treturn\n\t\t}\n\t\ti++\n\t\tgoto LOOP\n\t}\n\treturn z.readToFill(in, accept)\n}\n\nfunc (z *bufioDecReader) readToFill(in []byte, accept *bitset256) (out []byte) {\n\tz.n += uint(len(z.buf)) - z.c\n\tout = append(in, z.buf[z.c:]...)\n\tif z.trb {\n\t\tz.tr = append(z.tr, z.buf[z.c:]...)\n\t}\n\tvar n2 int\n\tvar err error\n\tfor {\n\t\tz.c = 0\n\t\tz.buf = z.buf[0:cap(z.buf)]\n\t\tn2, err = z.r.Read(z.buf)\n\t\tif n2 == 0 && err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\treturn // readTo should read until it matches or end is reached\n\t\t\t}\n\t\t\tpanic(err)\n\t\t}\n\t\tz.buf = z.buf[:n2]\n\t\tfor i, token := range z.buf {\n\t\t\tif !accept.isset(token) {\n\t\t\t\treturn z.readToLoopFn(uint(i), out)\n\t\t\t}\n\t\t}\n\t\t// for i := 0; i < n2; i++ {\n\t\t// \tif !accept.isset(z.buf[i]) {\n\t\t// \t\treturn z.readToLoopFn(i, out)\n\t\t// \t}\n\t\t// }\n\t\tout = append(out, z.buf...)\n\t\tz.n += uint(n2)\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, z.buf...)\n\t\t}\n\t}\n}\n\nfunc (z *bufioDecReader) readUntilLoopFn(i uint, out0 []byte) (out []byte) {\n\tz.n += (i - z.c) - 1\n\ti++\n\tout = append(out0, z.buf[z.c:i]...)\n\tif z.trb {\n\t\t// z.tr = append(z.tr, z.buf[z.c:i]...)\n\t\tz.doTrack(i)\n\t}\n\tz.c = i\n\treturn\n}\n\nfunc (z *bufioDecReader) readUntil(in []byte, stop byte) (out []byte) {\n\t// _, out = z.search(in, nil, stop, 4); return\n\n\t// for i := z.c; i < len(z.buf); i++ {\n\t// \tif z.buf[i] == stop {\n\t// \t\treturn z.readUntilLoopFn(i, nil)\n\t// \t}\n\t// }\n\n\ti := z.c\nLOOP:\n\tif i < uint(len(z.buf)) {\n\t\tif z.buf[i] == stop {\n\t\t\t// inline readUntilLoopFn\n\t\t\t// return z.readUntilLoopFn(i, nil)\n\t\t\tz.n += (i - z.c) - 1\n\t\t\ti++\n\t\t\tout = z.buf[z.c:i]\n\t\t\tif z.trb {\n\t\t\t\tz.doTrack(i)\n\t\t\t}\n\t\t\tz.c = i\n\t\t\treturn\n\t\t}\n\t\ti++\n\t\tgoto LOOP\n\t}\n\treturn z.readUntilFill(in, stop)\n}\n\nfunc (z *bufioDecReader) readUntilFill(in []byte, stop byte) (out []byte) {\n\tz.n += uint(len(z.buf)) - z.c\n\tout = append(in, z.buf[z.c:]...)\n\tif z.trb {\n\t\tz.tr = append(z.tr, z.buf[z.c:]...)\n\t}\n\tvar n1 int\n\tvar n2 uint\n\tvar err error\n\tfor {\n\t\tz.c = 0\n\t\tz.buf = z.buf[0:cap(z.buf)]\n\t\tn1, err = z.r.Read(z.buf)\n\t\tn2 = uint(n1)\n\t\tif n2 == 0 && err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tz.buf = z.buf[:n2]\n\t\tfor i, token := range z.buf {\n\t\t\tif token == stop {\n\t\t\t\treturn z.readUntilLoopFn(uint(i), out)\n\t\t\t}\n\t\t}\n\t\t// for i := 0; i < n2; i++ {\n\t\t// \tif z.buf[i] == stop {\n\t\t// \t\treturn z.readUntilLoopFn(i, out)\n\t\t// \t}\n\t\t// }\n\t\tout = append(out, z.buf...)\n\t\tz.n += n2\n\t\tif z.trb {\n\t\t\tz.tr = append(z.tr, z.buf...)\n\t\t}\n\t}\n}\n\n// ------------------------------------\n\nvar errBytesDecReaderCannotUnread = errors.New(\"cannot unread last byte read\")\n\n// bytesDecReader is a decReader that reads off a byte slice with zero copying\ntype bytesDecReader struct {\n\tb []byte // data\n\tc uint   // cursor\n\tt uint   // track start\n\t// a int    // available\n}\n\nfunc (z *bytesDecReader) reset(in []byte) {\n\tz.b = in\n\t// z.a = len(in)\n\tz.c = 0\n\tz.t = 0\n}\n\nfunc (z *bytesDecReader) numread() uint {\n\treturn z.c\n}\n\nfunc (z *bytesDecReader) unreadn1() {\n\tif z.c == 0 || len(z.b) == 0 {\n\t\tpanic(errBytesDecReaderCannotUnread)\n\t}\n\tz.c--\n\t// z.a++\n}\n\nfunc (z *bytesDecReader) readx(n uint) (bs []byte) {\n\t// slicing from a non-constant start position is more expensive,\n\t// as more computation is required to decipher the pointer start position.\n\t// However, we do it only once, and it's better than reslicing both z.b and return value.\n\n\t// if n <= 0 {\n\t// } else if z.a == 0 {\n\t// \tpanic(io.EOF)\n\t// } else if n > z.a {\n\t// \tpanic(io.ErrUnexpectedEOF)\n\t// } else {\n\t// \tc0 := z.c\n\t// \tz.c = c0 + n\n\t// \tz.a = z.a - n\n\t// \tbs = z.b[c0:z.c]\n\t// }\n\t// return\n\n\tif n != 0 {\n\t\tz.c += n\n\t\tif z.c > uint(len(z.b)) {\n\t\t\tz.c = uint(len(z.b))\n\t\t\tpanic(io.EOF)\n\t\t}\n\t\tbs = z.b[z.c-n : z.c]\n\t}\n\treturn\n\n\t// if n == 0 {\n\t// } else if z.c+n > uint(len(z.b)) {\n\t// \tz.c = uint(len(z.b))\n\t// \tpanic(io.EOF)\n\t// } else {\n\t// \tz.c += n\n\t// \tbs = z.b[z.c-n : z.c]\n\t// }\n\t// return\n\n\t// if n == 0 {\n\t// \treturn\n\t// }\n\t// if z.c == uint(len(z.b)) {\n\t// \tpanic(io.EOF)\n\t// }\n\t// if z.c+n > uint(len(z.b)) {\n\t// \tpanic(io.ErrUnexpectedEOF)\n\t// }\n\t// // z.a -= n\n\t// z.c += n\n\t// return z.b[z.c-n : z.c]\n}\n\nfunc (z *bytesDecReader) readb(bs []byte) {\n\tcopy(bs, z.readx(uint(len(bs))))\n}\n\nfunc (z *bytesDecReader) readn1() (v uint8) {\n\tif z.c == uint(len(z.b)) {\n\t\tpanic(io.EOF)\n\t}\n\tv = z.b[z.c]\n\tz.c++\n\t// z.a--\n\treturn\n}\n\n// func (z *bytesDecReader) readn1eof() (v uint8, eof bool) {\n// \tif z.a == 0 {\n// \t\teof = true\n// \t\treturn\n// \t}\n// \tv = z.b[z.c]\n// \tz.c++\n// \tz.a--\n// \treturn\n// }\n\nfunc (z *bytesDecReader) skip(accept *bitset256) (token byte) {\n\ti := z.c\n\t// if i == len(z.b) {\n\t// \tgoto END\n\t// \t// panic(io.EOF)\n\t// }\n\n\t// Replace loop with goto construct, so that this can be inlined\n\t// for i := z.c; i < blen; i++ {\n\t// \tif !accept.isset(z.b[i]) {\n\t// \t\ttoken = z.b[i]\n\t// \t\ti++\n\t// \t\tz.a -= (i - z.c)\n\t// \t\tz.c = i\n\t// \t\treturn\n\t// \t}\n\t// }\n\n\t// i := z.c\nLOOP:\n\tif i < uint(len(z.b)) {\n\t\ttoken = z.b[i]\n\t\ti++\n\t\tif accept.isset(token) {\n\t\t\tgoto LOOP\n\t\t}\n\t\t// z.a -= (i - z.c)\n\t\tz.c = i\n\t\treturn\n\t}\n\t// END:\n\tpanic(io.EOF)\n\t// // z.a = 0\n\t// z.c = blen\n\t// return\n}\n\nfunc (z *bytesDecReader) readTo(_ []byte, accept *bitset256) (out []byte) {\n\treturn z.readToNoInput(accept)\n}\n\nfunc (z *bytesDecReader) readToNoInput(accept *bitset256) (out []byte) {\n\ti := z.c\n\tif i == uint(len(z.b)) {\n\t\tpanic(io.EOF)\n\t}\n\n\t// Replace loop with goto construct, so that this can be inlined\n\t// for i := z.c; i < blen; i++ {\n\t// \tif !accept.isset(z.b[i]) {\n\t// \t\tout = z.b[z.c:i]\n\t// \t\tz.a -= (i - z.c)\n\t// \t\tz.c = i\n\t// \t\treturn\n\t// \t}\n\t// }\n\t// out = z.b[z.c:]\n\t// z.a, z.c = 0, blen\n\t// return\n\n\t// \ti := z.c\n\t// LOOP:\n\t// \tif i < blen {\n\t// \t\tif accept.isset(z.b[i]) {\n\t// \t\t\ti++\n\t// \t\t\tgoto LOOP\n\t// \t\t}\n\t// \t\tout = z.b[z.c:i]\n\t// \t\tz.a -= (i - z.c)\n\t// \t\tz.c = i\n\t// \t\treturn\n\t// \t}\n\t// \tout = z.b[z.c:]\n\t// \t// z.a, z.c = 0, blen\n\t// \tz.a = 0\n\t// \tz.c = blen\n\t// \treturn\n\n\t// c := i\nLOOP:\n\tif i < uint(len(z.b)) {\n\t\tif accept.isset(z.b[i]) {\n\t\t\ti++\n\t\t\tgoto LOOP\n\t\t}\n\t}\n\n\tout = z.b[z.c:i]\n\t// z.a -= (i - z.c)\n\tz.c = i\n\treturn // z.b[c:i]\n\t// z.c, i = i, z.c\n\t// return z.b[i:z.c]\n}\n\nfunc (z *bytesDecReader) readUntil(_ []byte, stop byte) (out []byte) {\n\treturn z.readUntilNoInput(stop)\n}\n\nfunc (z *bytesDecReader) readUntilNoInput(stop byte) (out []byte) {\n\ti := z.c\n\t// if i == len(z.b) {\n\t// \tpanic(io.EOF)\n\t// }\n\n\t// Replace loop with goto construct, so that this can be inlined\n\t// for i := z.c; i < blen; i++ {\n\t// \tif z.b[i] == stop {\n\t// \t\ti++\n\t// \t\tout = z.b[z.c:i]\n\t// \t\tz.a -= (i - z.c)\n\t// \t\tz.c = i\n\t// \t\treturn\n\t// \t}\n\t// }\nLOOP:\n\tif i < uint(len(z.b)) {\n\t\tif z.b[i] == stop {\n\t\t\ti++\n\t\t\tout = z.b[z.c:i]\n\t\t\t// z.a -= (i - z.c)\n\t\t\tz.c = i\n\t\t\treturn\n\t\t}\n\t\ti++\n\t\tgoto LOOP\n\t}\n\t// z.a = 0\n\t// z.c = blen\n\tpanic(io.EOF)\n}\n\nfunc (z *bytesDecReader) track() {\n\tz.t = z.c\n}\n\nfunc (z *bytesDecReader) stopTrack() (bs []byte) {\n\treturn z.b[z.t:z.c]\n}\n\n// ----------------------------------------\n\n// func (d *Decoder) builtin(f *codecFnInfo, rv reflect.Value) {\n// \td.d.DecodeBuiltin(f.ti.rtid, rv2i(rv))\n// }\n\nfunc (d *Decoder) rawExt(f *codecFnInfo, rv reflect.Value) {\n\td.d.DecodeExt(rv2i(rv), 0, nil)\n}\n\nfunc (d *Decoder) ext(f *codecFnInfo, rv reflect.Value) {\n\td.d.DecodeExt(rv2i(rv), f.xfTag, f.xfFn)\n}\n\nfunc (d *Decoder) selferUnmarshal(f *codecFnInfo, rv reflect.Value) {\n\trv2i(rv).(Selfer).CodecDecodeSelf(d)\n}\n\nfunc (d *Decoder) binaryUnmarshal(f *codecFnInfo, rv reflect.Value) {\n\tbm := rv2i(rv).(encoding.BinaryUnmarshaler)\n\txbs := d.d.DecodeBytes(nil, true)\n\tif fnerr := bm.UnmarshalBinary(xbs); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n\nfunc (d *Decoder) textUnmarshal(f *codecFnInfo, rv reflect.Value) {\n\ttm := rv2i(rv).(encoding.TextUnmarshaler)\n\tfnerr := tm.UnmarshalText(d.d.DecodeStringAsBytes())\n\tif fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n\nfunc (d *Decoder) jsonUnmarshal(f *codecFnInfo, rv reflect.Value) {\n\ttm := rv2i(rv).(jsonUnmarshaler)\n\t// bs := d.d.DecodeBytes(d.b[:], true, true)\n\t// grab the bytes to be read, as UnmarshalJSON needs the full JSON so as to unmarshal it itself.\n\tfnerr := tm.UnmarshalJSON(d.nextValueBytes())\n\tif fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n\nfunc (d *Decoder) kErr(f *codecFnInfo, rv reflect.Value) {\n\td.errorf(\"no decoding function defined for kind %v\", rv.Kind())\n}\n\n// var kIntfCtr uint64\n\nfunc (d *Decoder) kInterfaceNaked(f *codecFnInfo) (rvn reflect.Value) {\n\t// nil interface:\n\t// use some hieristics to decode it appropriately\n\t// based on the detected next value in the stream.\n\tn := d.naked()\n\td.d.DecodeNaked()\n\tif n.v == valueTypeNil {\n\t\treturn\n\t}\n\t// We cannot decode non-nil stream value into nil interface with methods (e.g. io.Reader).\n\tif f.ti.numMeth > 0 {\n\t\td.errorf(\"cannot decode non-nil codec value into nil %v (%v methods)\", f.ti.rt, f.ti.numMeth)\n\t\treturn\n\t}\n\t// var useRvn bool\n\tswitch n.v {\n\tcase valueTypeMap:\n\t\t// if json, default to a map type with string keys\n\t\tmtid := d.mtid\n\t\tif mtid == 0 {\n\t\t\tif d.jsms {\n\t\t\t\tmtid = mapStrIntfTypId\n\t\t\t} else {\n\t\t\t\tmtid = mapIntfIntfTypId\n\t\t\t}\n\t\t}\n\t\tif mtid == mapIntfIntfTypId {\n\t\t\tvar v2 map[interface{}]interface{}\n\t\t\td.decode(&v2)\n\t\t\trvn = reflect.ValueOf(&v2).Elem()\n\t\t} else if mtid == mapStrIntfTypId { // for json performance\n\t\t\tvar v2 map[string]interface{}\n\t\t\td.decode(&v2)\n\t\t\trvn = reflect.ValueOf(&v2).Elem()\n\t\t} else {\n\t\t\tif d.mtr {\n\t\t\t\trvn = reflect.New(d.h.MapType)\n\t\t\t\td.decode(rv2i(rvn))\n\t\t\t\trvn = rvn.Elem()\n\t\t\t} else {\n\t\t\t\trvn = reflect.New(d.h.MapType).Elem()\n\t\t\t\td.decodeValue(rvn, nil, true)\n\t\t\t}\n\t\t}\n\tcase valueTypeArray:\n\t\tif d.stid == 0 || d.stid == intfSliceTypId {\n\t\t\tvar v2 []interface{}\n\t\t\td.decode(&v2)\n\t\t\trvn = reflect.ValueOf(&v2).Elem()\n\t\t\tif reflectArrayOfSupported && d.stid == 0 && d.h.PreferArrayOverSlice {\n\t\t\t\trvn2 := reflect.New(reflectArrayOf(rvn.Len(), intfTyp)).Elem()\n\t\t\t\treflect.Copy(rvn2, rvn)\n\t\t\t\trvn = rvn2\n\t\t\t}\n\t\t} else {\n\t\t\tif d.str {\n\t\t\t\trvn = reflect.New(d.h.SliceType)\n\t\t\t\td.decode(rv2i(rvn))\n\t\t\t\trvn = rvn.Elem()\n\t\t\t} else {\n\t\t\t\trvn = reflect.New(d.h.SliceType).Elem()\n\t\t\t\td.decodeValue(rvn, nil, true)\n\t\t\t}\n\t\t}\n\tcase valueTypeExt:\n\t\tvar v interface{}\n\t\ttag, bytes := n.u, n.l // calling decode below might taint the values\n\t\tif bytes == nil {\n\t\t\td.decode(&v)\n\t\t}\n\t\tbfn := d.h.getExtForTag(tag)\n\t\tif bfn == nil {\n\t\t\tvar re RawExt\n\t\t\tre.Tag = tag\n\t\t\tre.Data = detachZeroCopyBytes(d.bytes, nil, bytes)\n\t\t\tre.Value = v\n\t\t\trvn = reflect.ValueOf(&re).Elem()\n\t\t} else {\n\t\t\trvnA := reflect.New(bfn.rt)\n\t\t\tif bytes != nil {\n\t\t\t\tbfn.ext.ReadExt(rv2i(rvnA), bytes)\n\t\t\t} else {\n\t\t\t\tbfn.ext.UpdateExt(rv2i(rvnA), v)\n\t\t\t}\n\t\t\trvn = rvnA.Elem()\n\t\t}\n\tcase valueTypeNil:\n\t\t// no-op\n\tcase valueTypeInt:\n\t\trvn = n.ri()\n\tcase valueTypeUint:\n\t\trvn = n.ru()\n\tcase valueTypeFloat:\n\t\trvn = n.rf()\n\tcase valueTypeBool:\n\t\trvn = n.rb()\n\tcase valueTypeString, valueTypeSymbol:\n\t\trvn = n.rs()\n\tcase valueTypeBytes:\n\t\trvn = n.rl()\n\tcase valueTypeTime:\n\t\trvn = n.rt()\n\tdefault:\n\t\tpanicv.errorf(\"kInterfaceNaked: unexpected valueType: %d\", n.v)\n\t}\n\treturn\n}\n\nfunc (d *Decoder) kInterface(f *codecFnInfo, rv reflect.Value) {\n\t// Note:\n\t// A consequence of how kInterface works, is that\n\t// if an interface already contains something, we try\n\t// to decode into what was there before.\n\t// We do not replace with a generic value (as got from decodeNaked).\n\n\t// every interface passed here MUST be settable.\n\tvar rvn reflect.Value\n\tif rv.IsNil() || d.h.InterfaceReset {\n\t\t// check if mapping to a type: if so, initialize it and move on\n\t\trvn = d.h.intf2impl(f.ti.rtid)\n\t\tif rvn.IsValid() {\n\t\t\trv.Set(rvn)\n\t\t} else {\n\t\t\trvn = d.kInterfaceNaked(f)\n\t\t\tif rvn.IsValid() {\n\t\t\t\trv.Set(rvn)\n\t\t\t} else if d.h.InterfaceReset {\n\t\t\t\t// reset to zero value based on current type in there.\n\t\t\t\trv.Set(reflect.Zero(rv.Elem().Type()))\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t} else {\n\t\t// now we have a non-nil interface value, meaning it contains a type\n\t\trvn = rv.Elem()\n\t}\n\tif d.d.TryDecodeAsNil() {\n\t\trv.Set(reflect.Zero(rvn.Type()))\n\t\treturn\n\t}\n\n\t// Note: interface{} is settable, but underlying type may not be.\n\t// Consequently, we MAY have to create a decodable value out of the underlying value,\n\t// decode into it, and reset the interface itself.\n\t// fmt.Printf(\">>>> kInterface: rvn type: %v, rv type: %v\\n\", rvn.Type(), rv.Type())\n\n\trvn2, canDecode := isDecodeable(rvn)\n\tif canDecode {\n\t\td.decodeValue(rvn2, nil, true)\n\t\treturn\n\t}\n\n\trvn2 = reflect.New(rvn.Type()).Elem()\n\trvn2.Set(rvn)\n\td.decodeValue(rvn2, nil, true)\n\trv.Set(rvn2)\n}\n\nfunc decStructFieldKey(dd decDriver, keyType valueType, b *[decScratchByteArrayLen]byte) (rvkencname []byte) {\n\t// use if-else-if, not switch (which compiles to binary-search)\n\t// since keyType is typically valueTypeString, branch prediction is pretty good.\n\n\tif keyType == valueTypeString {\n\t\trvkencname = dd.DecodeStringAsBytes()\n\t} else if keyType == valueTypeInt {\n\t\trvkencname = strconv.AppendInt(b[:0], dd.DecodeInt64(), 10)\n\t} else if keyType == valueTypeUint {\n\t\trvkencname = strconv.AppendUint(b[:0], dd.DecodeUint64(), 10)\n\t} else if keyType == valueTypeFloat {\n\t\trvkencname = strconv.AppendFloat(b[:0], dd.DecodeFloat64(), 'f', -1, 64)\n\t} else {\n\t\trvkencname = dd.DecodeStringAsBytes()\n\t}\n\treturn rvkencname\n}\n\nfunc (d *Decoder) kStruct(f *codecFnInfo, rv reflect.Value) {\n\tfti := f.ti\n\tdd := d.d\n\tsfn := structFieldNode{v: rv, update: true}\n\tctyp := dd.ContainerType()\n\tvar mf MissingFielder\n\tif fti.mf {\n\t\tmf = rv2i(rv).(MissingFielder)\n\t} else if fti.mfp {\n\t\tmf = rv2i(rv.Addr()).(MissingFielder)\n\t}\n\tif ctyp == valueTypeMap {\n\t\tcontainerLen := d.mapStart()\n\t\tif containerLen == 0 {\n\t\t\td.mapEnd()\n\t\t\treturn\n\t\t}\n\t\ttisfi := fti.sfiSort\n\t\thasLen := containerLen >= 0\n\n\t\tvar rvkencname []byte\n\t\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {\n\t\t\td.mapElemKey()\n\t\t\trvkencname = decStructFieldKey(dd, fti.keyType, &d.b)\n\t\t\td.mapElemValue()\n\t\t\tif k := fti.indexForEncName(rvkencname); k > -1 {\n\t\t\t\tsi := tisfi[k]\n\t\t\t\tif dd.TryDecodeAsNil() {\n\t\t\t\t\tsi.setToZeroValue(rv)\n\t\t\t\t} else {\n\t\t\t\t\td.decodeValue(sfn.field(si), nil, true)\n\t\t\t\t}\n\t\t\t} else if mf != nil {\n\t\t\t\t// store rvkencname in new []byte, as it previously shares Decoder.b, which is used in decode\n\t\t\t\tname2 := rvkencname\n\t\t\t\trvkencname = make([]byte, len(rvkencname))\n\t\t\t\tcopy(rvkencname, name2)\n\n\t\t\t\tvar f interface{}\n\t\t\t\t// xdebugf(\"kStruct: mf != nil: before decode: rvkencname: %s\", rvkencname)\n\t\t\t\td.decode(&f)\n\t\t\t\t// xdebugf(\"kStruct: mf != nil: after decode: rvkencname: %s\", rvkencname)\n\t\t\t\tif !mf.CodecMissingField(rvkencname, f) && d.h.ErrorIfNoField {\n\t\t\t\t\td.errorf(\"no matching struct field found when decoding stream map with key: %s \",\n\t\t\t\t\t\tstringView(rvkencname))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\td.structFieldNotFound(-1, stringView(rvkencname))\n\t\t\t}\n\t\t\t// keepAlive4StringView(rvkencnameB) // not needed, as reference is outside loop\n\t\t}\n\t\td.mapEnd()\n\t} else if ctyp == valueTypeArray {\n\t\tcontainerLen := d.arrayStart()\n\t\tif containerLen == 0 {\n\t\t\td.arrayEnd()\n\t\t\treturn\n\t\t}\n\t\t// Not much gain from doing it two ways for array.\n\t\t// Arrays are not used as much for structs.\n\t\thasLen := containerLen >= 0\n\t\tvar checkbreak bool\n\t\tfor j, si := range fti.sfiSrc {\n\t\t\tif hasLen && j == containerLen {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif !hasLen && dd.CheckBreak() {\n\t\t\t\tcheckbreak = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\td.arrayElem()\n\t\t\tif dd.TryDecodeAsNil() {\n\t\t\t\tsi.setToZeroValue(rv)\n\t\t\t} else {\n\t\t\t\td.decodeValue(sfn.field(si), nil, true)\n\t\t\t}\n\t\t}\n\t\tif (hasLen && containerLen > len(fti.sfiSrc)) || (!hasLen && !checkbreak) {\n\t\t\t// read remaining values and throw away\n\t\t\tfor j := len(fti.sfiSrc); ; j++ {\n\t\t\t\tif (hasLen && j == containerLen) || (!hasLen && dd.CheckBreak()) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\td.arrayElem()\n\t\t\t\td.structFieldNotFound(j, \"\")\n\t\t\t}\n\t\t}\n\t\td.arrayEnd()\n\t} else {\n\t\td.errorstr(errstrOnlyMapOrArrayCanDecodeIntoStruct)\n\t\treturn\n\t}\n}\n\nfunc (d *Decoder) kSlice(f *codecFnInfo, rv reflect.Value) {\n\t// A slice can be set from a map or array in stream.\n\t// This way, the order can be kept (as order is lost with map).\n\n\tfrt := f.ti.rt\n\tif f.seq == seqTypeChan && f.ti.chandir&uint8(reflect.SendDir) == 0 {\n\t\td.errorf(\"receive-only channel cannot be decoded\")\n\t}\n\tdd := d.d\n\trtelem0 := f.ti.elem\n\tctyp := dd.ContainerType()\n\tif ctyp == valueTypeBytes || ctyp == valueTypeString {\n\t\t// you can only decode bytes or string in the stream into a slice or array of bytes\n\t\tif !(f.ti.rtid == uint8SliceTypId || rtelem0.Kind() == reflect.Uint8) {\n\t\t\td.errorf(\"bytes/string in stream must decode into slice/array of bytes, not %v\", frt)\n\t\t}\n\t\tif f.seq == seqTypeChan {\n\t\t\tbs2 := dd.DecodeBytes(nil, true)\n\t\t\tirv := rv2i(rv)\n\t\t\tch, ok := irv.(chan<- byte)\n\t\t\tif !ok {\n\t\t\t\tch = irv.(chan byte)\n\t\t\t}\n\t\t\tfor _, b := range bs2 {\n\t\t\t\tch <- b\n\t\t\t}\n\t\t} else {\n\t\t\trvbs := rv.Bytes()\n\t\t\tbs2 := dd.DecodeBytes(rvbs, false)\n\t\t\t// if rvbs == nil && bs2 != nil || rvbs != nil && bs2 == nil || len(bs2) != len(rvbs) {\n\t\t\tif !(len(bs2) > 0 && len(bs2) == len(rvbs) && &bs2[0] == &rvbs[0]) {\n\t\t\t\tif rv.CanSet() {\n\t\t\t\t\trv.SetBytes(bs2)\n\t\t\t\t} else if len(rvbs) > 0 && len(bs2) > 0 {\n\t\t\t\t\tcopy(rvbs, bs2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\t// array := f.seq == seqTypeChan\n\n\tslh, containerLenS := d.decSliceHelperStart() // only expects valueType(Array|Map)\n\n\t// an array can never return a nil slice. so no need to check f.array here.\n\tif containerLenS == 0 {\n\t\tif rv.CanSet() {\n\t\t\tif f.seq == seqTypeSlice {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\trv.Set(reflect.MakeSlice(frt, 0, 0))\n\t\t\t\t} else {\n\t\t\t\t\trv.SetLen(0)\n\t\t\t\t}\n\t\t\t} else if f.seq == seqTypeChan {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\trv.Set(reflect.MakeChan(frt, 0))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tslh.End()\n\t\treturn\n\t}\n\n\trtelem0Size := int(rtelem0.Size())\n\trtElem0Kind := rtelem0.Kind()\n\trtelem0Mut := !isImmutableKind(rtElem0Kind)\n\trtelem := rtelem0\n\trtelemkind := rtelem.Kind()\n\tfor rtelemkind == reflect.Ptr {\n\t\trtelem = rtelem.Elem()\n\t\trtelemkind = rtelem.Kind()\n\t}\n\n\tvar fn *codecFn\n\n\tvar rvCanset = rv.CanSet()\n\tvar rvChanged bool\n\tvar rv0 = rv\n\tvar rv9 reflect.Value\n\n\trvlen := rv.Len()\n\trvcap := rv.Cap()\n\thasLen := containerLenS > 0\n\tif hasLen && f.seq == seqTypeSlice {\n\t\tif containerLenS > rvcap {\n\t\t\toldRvlenGtZero := rvlen > 0\n\t\t\trvlen = decInferLen(containerLenS, d.h.MaxInitLen, int(rtelem0.Size()))\n\t\t\tif rvlen <= rvcap {\n\t\t\t\tif rvCanset {\n\t\t\t\t\trv.SetLen(rvlen)\n\t\t\t\t}\n\t\t\t} else if rvCanset {\n\t\t\t\trv = reflect.MakeSlice(frt, rvlen, rvlen)\n\t\t\t\trvcap = rvlen\n\t\t\t\trvChanged = true\n\t\t\t} else {\n\t\t\t\td.errorf(\"cannot decode into non-settable slice\")\n\t\t\t}\n\t\t\tif rvChanged && oldRvlenGtZero && !isImmutableKind(rtelem0.Kind()) {\n\t\t\t\treflect.Copy(rv, rv0) // only copy up to length NOT cap i.e. rv0.Slice(0, rvcap)\n\t\t\t}\n\t\t} else if containerLenS != rvlen {\n\t\t\trvlen = containerLenS\n\t\t\tif rvCanset {\n\t\t\t\trv.SetLen(rvlen)\n\t\t\t}\n\t\t\t// else {\n\t\t\t// rv = rv.Slice(0, rvlen)\n\t\t\t// rvChanged = true\n\t\t\t// d.errorf(\"cannot decode into non-settable slice\")\n\t\t\t// }\n\t\t}\n\t}\n\n\t// consider creating new element once, and just decoding into it.\n\tvar rtelem0Zero reflect.Value\n\tvar rtelem0ZeroValid bool\n\tvar decodeAsNil bool\n\tvar j int\n\n\tfor ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {\n\t\tif j == 0 && (f.seq == seqTypeSlice || f.seq == seqTypeChan) && rv.IsNil() {\n\t\t\tif hasLen {\n\t\t\t\trvlen = decInferLen(containerLenS, d.h.MaxInitLen, rtelem0Size)\n\t\t\t} else if f.seq == seqTypeSlice {\n\t\t\t\trvlen = decDefSliceCap\n\t\t\t} else {\n\t\t\t\trvlen = decDefChanCap\n\t\t\t}\n\t\t\tif rvCanset {\n\t\t\t\tif f.seq == seqTypeSlice {\n\t\t\t\t\trv = reflect.MakeSlice(frt, rvlen, rvlen)\n\t\t\t\t\trvChanged = true\n\t\t\t\t} else { // chan\n\t\t\t\t\trv = reflect.MakeChan(frt, rvlen)\n\t\t\t\t\trvChanged = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\td.errorf(\"cannot decode into non-settable slice\")\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tdecodeAsNil = dd.TryDecodeAsNil()\n\t\tif f.seq == seqTypeChan {\n\t\t\tif decodeAsNil {\n\t\t\t\trv.Send(reflect.Zero(rtelem0))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif rtelem0Mut || !rv9.IsValid() { // || (rtElem0Kind == reflect.Ptr && rv9.IsNil()) {\n\t\t\t\trv9 = reflect.New(rtelem0).Elem()\n\t\t\t}\n\t\t\tif fn == nil {\n\t\t\t\tfn = d.h.fn(rtelem, true, true)\n\t\t\t}\n\t\t\td.decodeValue(rv9, fn, true)\n\t\t\trv.Send(rv9)\n\t\t} else {\n\t\t\t// if indefinite, etc, then expand the slice if necessary\n\t\t\tvar decodeIntoBlank bool\n\t\t\tif j >= rvlen {\n\t\t\t\tif f.seq == seqTypeArray {\n\t\t\t\t\td.arrayCannotExpand(rvlen, j+1)\n\t\t\t\t\tdecodeIntoBlank = true\n\t\t\t\t} else { // if f.seq == seqTypeSlice\n\t\t\t\t\t// rv = reflect.Append(rv, reflect.Zero(rtelem0)) // append logic + varargs\n\t\t\t\t\tvar rvcap2 int\n\t\t\t\t\tvar rvErrmsg2 string\n\t\t\t\t\trv9, rvcap2, rvChanged, rvErrmsg2 =\n\t\t\t\t\t\texpandSliceRV(rv, frt, rvCanset, rtelem0Size, 1, rvlen, rvcap)\n\t\t\t\t\tif rvErrmsg2 != \"\" {\n\t\t\t\t\t\td.errorf(rvErrmsg2)\n\t\t\t\t\t}\n\t\t\t\t\trvlen++\n\t\t\t\t\tif rvChanged {\n\t\t\t\t\t\trv = rv9\n\t\t\t\t\t\trvcap = rvcap2\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif decodeIntoBlank {\n\t\t\t\tif !decodeAsNil {\n\t\t\t\t\td.swallow()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trv9 = rv.Index(j)\n\t\t\t\tif d.h.SliceElementReset || decodeAsNil {\n\t\t\t\t\tif !rtelem0ZeroValid {\n\t\t\t\t\t\trtelem0ZeroValid = true\n\t\t\t\t\t\trtelem0Zero = reflect.Zero(rtelem0)\n\t\t\t\t\t}\n\t\t\t\t\trv9.Set(rtelem0Zero)\n\t\t\t\t\tif decodeAsNil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif fn == nil {\n\t\t\t\t\tfn = d.h.fn(rtelem, true, true)\n\t\t\t\t}\n\t\t\t\td.decodeValue(rv9, fn, true)\n\t\t\t}\n\t\t}\n\t}\n\tif f.seq == seqTypeSlice {\n\t\tif j < rvlen {\n\t\t\tif rv.CanSet() {\n\t\t\t\trv.SetLen(j)\n\t\t\t} else if rvCanset {\n\t\t\t\trv = rv.Slice(0, j)\n\t\t\t\trvChanged = true\n\t\t\t} // else { d.errorf(\"kSlice: cannot change non-settable slice\") }\n\t\t\trvlen = j\n\t\t} else if j == 0 && rv.IsNil() {\n\t\t\tif rvCanset {\n\t\t\t\trv = reflect.MakeSlice(frt, 0, 0)\n\t\t\t\trvChanged = true\n\t\t\t} // else { d.errorf(\"kSlice: cannot change non-settable slice\") }\n\t\t}\n\t}\n\tslh.End()\n\n\tif rvChanged { // infers rvCanset=true, so it can be reset\n\t\trv0.Set(rv)\n\t}\n\n}\n\n// func (d *Decoder) kArray(f *codecFnInfo, rv reflect.Value) {\n// \t// d.decodeValueFn(rv.Slice(0, rv.Len()))\n// \tf.kSlice(rv.Slice(0, rv.Len()))\n// }\n\nfunc (d *Decoder) kMap(f *codecFnInfo, rv reflect.Value) {\n\tdd := d.d\n\tcontainerLen := d.mapStart()\n\tti := f.ti\n\tif rv.IsNil() {\n\t\trvlen := decInferLen(containerLen, d.h.MaxInitLen, int(ti.key.Size()+ti.elem.Size()))\n\t\trv.Set(makeMapReflect(ti.rt, rvlen))\n\t}\n\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn\n\t}\n\n\tktype, vtype := ti.key, ti.elem\n\tktypeId := rt2id(ktype)\n\tvtypeKind := vtype.Kind()\n\n\tvar keyFn, valFn *codecFn\n\tvar ktypeLo, vtypeLo reflect.Type\n\n\tfor ktypeLo = ktype; ktypeLo.Kind() == reflect.Ptr; ktypeLo = ktypeLo.Elem() {\n\t}\n\n\tfor vtypeLo = vtype; vtypeLo.Kind() == reflect.Ptr; vtypeLo = vtypeLo.Elem() {\n\t}\n\n\tvar mapGet, mapSet bool\n\trvvImmut := isImmutableKind(vtypeKind)\n\tif !d.h.MapValueReset {\n\t\t// if pointer, mapGet = true\n\t\t// if interface, mapGet = true if !DecodeNakedAlways (else false)\n\t\t// if builtin, mapGet = false\n\t\t// else mapGet = true\n\t\tif vtypeKind == reflect.Ptr {\n\t\t\tmapGet = true\n\t\t} else if vtypeKind == reflect.Interface {\n\t\t\tif !d.h.InterfaceReset {\n\t\t\t\tmapGet = true\n\t\t\t}\n\t\t} else if !rvvImmut {\n\t\t\tmapGet = true\n\t\t}\n\t}\n\n\tvar rvk, rvkp, rvv, rvz reflect.Value\n\trvkMut := !isImmutableKind(ktype.Kind()) // if ktype is immutable, then re-use the same rvk.\n\tktypeIsString := ktypeId == stringTypId\n\tktypeIsIntf := ktypeId == intfTypId\n\thasLen := containerLen > 0\n\tvar kstrbs []byte\n\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {\n\t\tif rvkMut || !rvkp.IsValid() {\n\t\t\trvkp = reflect.New(ktype)\n\t\t\trvk = rvkp.Elem()\n\t\t}\n\t\td.mapElemKey()\n\t\t// if false && dd.TryDecodeAsNil() { // nil cannot be a map key, so disregard this block\n\t\t// \t// Previously, if a nil key, we just ignored the mapped value and continued.\n\t\t// \t// However, that makes the result of encoding and then decoding map[intf]intf{nil:nil}\n\t\t// \t// to be an empty map.\n\t\t// \t// Instead, we treat a nil key as the zero value of the type.\n\t\t// \trvk.Set(reflect.Zero(ktype))\n\t\t// } else if ktypeIsString {\n\t\tif ktypeIsString {\n\t\t\tkstrbs = dd.DecodeStringAsBytes()\n\t\t\trvk.SetString(stringView(kstrbs))\n\t\t\t// NOTE: if doing an insert, you MUST use a real string (not stringview)\n\t\t} else {\n\t\t\tif keyFn == nil {\n\t\t\t\tkeyFn = d.h.fn(ktypeLo, true, true)\n\t\t\t}\n\t\t\td.decodeValue(rvk, keyFn, true)\n\t\t}\n\t\t// special case if a byte array.\n\t\tif ktypeIsIntf {\n\t\t\tif rvk2 := rvk.Elem(); rvk2.IsValid() {\n\t\t\t\tif rvk2.Type() == uint8SliceTyp {\n\t\t\t\t\trvk = reflect.ValueOf(d.string(rvk2.Bytes()))\n\t\t\t\t} else {\n\t\t\t\t\trvk = rvk2\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\td.mapElemValue()\n\n\t\t// Brittle, but OK per TryDecodeAsNil() contract.\n\t\t// i.e. TryDecodeAsNil never shares slices with other decDriver procedures\n\t\tif dd.TryDecodeAsNil() {\n\t\t\tif ktypeIsString {\n\t\t\t\trvk.SetString(d.string(kstrbs))\n\t\t\t}\n\t\t\tif d.h.DeleteOnNilMapValue {\n\t\t\t\trv.SetMapIndex(rvk, reflect.Value{})\n\t\t\t} else {\n\t\t\t\trv.SetMapIndex(rvk, reflect.Zero(vtype))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tmapSet = true // set to false if u do a get, and its a non-nil pointer\n\t\tif mapGet {\n\t\t\t// mapGet true only in case where kind=Ptr|Interface or kind is otherwise mutable.\n\t\t\trvv = rv.MapIndex(rvk)\n\t\t\tif !rvv.IsValid() {\n\t\t\t\trvv = reflect.New(vtype).Elem()\n\t\t\t} else if vtypeKind == reflect.Ptr {\n\t\t\t\tif rvv.IsNil() {\n\t\t\t\t\trvv = reflect.New(vtype).Elem()\n\t\t\t\t} else {\n\t\t\t\t\tmapSet = false\n\t\t\t\t}\n\t\t\t} else if vtypeKind == reflect.Interface {\n\t\t\t\t// not addressable, and thus not settable.\n\t\t\t\t// e MUST create a settable/addressable variant\n\t\t\t\trvv2 := reflect.New(rvv.Type()).Elem()\n\t\t\t\tif !rvv.IsNil() {\n\t\t\t\t\trvv2.Set(rvv)\n\t\t\t\t}\n\t\t\t\trvv = rvv2\n\t\t\t}\n\t\t\t// else it is ~mutable, and we can just decode into it directly\n\t\t} else if rvvImmut {\n\t\t\tif !rvz.IsValid() {\n\t\t\t\trvz = reflect.New(vtype).Elem()\n\t\t\t}\n\t\t\trvv = rvz\n\t\t} else {\n\t\t\trvv = reflect.New(vtype).Elem()\n\t\t}\n\n\t\t// We MUST be done with the stringview of the key, before decoding the value\n\t\t// so that we don't bastardize the reused byte array.\n\t\tif mapSet && ktypeIsString {\n\t\t\trvk.SetString(d.string(kstrbs))\n\t\t}\n\t\tif valFn == nil {\n\t\t\tvalFn = d.h.fn(vtypeLo, true, true)\n\t\t}\n\t\td.decodeValue(rvv, valFn, true)\n\t\t// d.decodeValueFn(rvv, valFn)\n\t\tif mapSet {\n\t\t\trv.SetMapIndex(rvk, rvv)\n\t\t}\n\t\t// if ktypeIsString {\n\t\t// \t// keepAlive4StringView(kstrbs) // not needed, as reference is outside loop\n\t\t// }\n\t}\n\n\td.mapEnd()\n\n}\n\n// decNaked is used to keep track of the primitives decoded.\n// Without it, we would have to decode each primitive and wrap it\n// in an interface{}, causing an allocation.\n// In this model, the primitives are decoded in a \"pseudo-atomic\" fashion,\n// so we can rest assured that no other decoding happens while these\n// primitives are being decoded.\n//\n// maps and arrays are not handled by this mechanism.\n// However, RawExt is, and we accommodate for extensions that decode\n// RawExt from DecodeNaked, but need to decode the value subsequently.\n// kInterfaceNaked and swallow, which call DecodeNaked, handle this caveat.\n//\n// However, decNaked also keeps some arrays of default maps and slices\n// used in DecodeNaked. This way, we can get a pointer to it\n// without causing a new heap allocation.\n//\n// kInterfaceNaked will ensure that there is no allocation for the common\n// uses.\n\ntype decNaked struct {\n\t// r RawExt // used for RawExt, uint, []byte.\n\n\t// primitives below\n\tu uint64\n\ti int64\n\tf float64\n\tl []byte\n\ts string\n\n\t// ---- cpu cache line boundary?\n\tt time.Time\n\tb bool\n\n\t// state\n\tv valueType\n\t// _ [6]bool // padding\n\n\t// ru, ri, rf, rl, rs, rb, rt reflect.Value // mapping to the primitives above\n\t//\n\t// _ [3]uint64 // padding\n}\n\n// func (n *decNaked) init() {\n// \tn.ru = reflect.ValueOf(&n.u).Elem()\n// \tn.ri = reflect.ValueOf(&n.i).Elem()\n// \tn.rf = reflect.ValueOf(&n.f).Elem()\n// \tn.rl = reflect.ValueOf(&n.l).Elem()\n// \tn.rs = reflect.ValueOf(&n.s).Elem()\n// \tn.rt = reflect.ValueOf(&n.t).Elem()\n// \tn.rb = reflect.ValueOf(&n.b).Elem()\n// \t// n.rr[] = reflect.ValueOf(&n.)\n// }\n\n// type decNakedPooler struct {\n// \tn   *decNaked\n// \tnsp *sync.Pool\n// }\n\n// // naked must be called before each call to .DecodeNaked, as they will use it.\n// func (d *decNakedPooler) naked() *decNaked {\n// \tif d.n == nil {\n// \t\t// consider one of:\n// \t\t//   - get from sync.Pool  (if GC is frequent, there's no value here)\n// \t\t//   - new alloc           (safest. only init'ed if it a naked decode will be done)\n// \t\t//   - field in Decoder    (makes the Decoder struct very big)\n// \t\t// To support using a decoder where a DecodeNaked is not needed,\n// \t\t// we prefer #1 or #2.\n// \t\t// d.n = new(decNaked) // &d.nv // new(decNaked) // grab from a sync.Pool\n// \t\t// d.n.init()\n// \t\tvar v interface{}\n// \t\td.nsp, v = pool.decNaked()\n// \t\td.n = v.(*decNaked)\n// \t}\n// \treturn d.n\n// }\n\n// func (d *decNakedPooler) end() {\n// \tif d.n != nil {\n// \t\t// if n != nil, then nsp != nil (they are always set together)\n// \t\td.nsp.Put(d.n)\n// \t\td.n, d.nsp = nil, nil\n// \t}\n// }\n\n// type rtid2rv struct {\n// \trtid uintptr\n// \trv   reflect.Value\n// }\n\n// --------------\n\ntype decReaderSwitch struct {\n\tesep     bool // has elem separators\n\tmtr, str bool // whether maptype or slicetype are known types\n\n\tbe   bool // is binary encoding\n\tjs   bool // is json handle\n\tjsms bool // is json handle, and MapKeyAsString\n\n\t// typ   entryType\n\tbytes bool // is bytes reader\n\tbufio bool // is this a bufioDecReader?\n\n\trb bytesDecReader\n\tri *ioDecReader\n\tbi *bufioDecReader\n}\n\n// numread, track and stopTrack are always inlined, as they just check int fields, etc.\n\n/*\nfunc (z *decReaderSwitch) numread() int {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.numread()\n\tcase entryTypeIo:\n\t\treturn z.ri.numread()\n\tdefault:\n\t\treturn z.bi.numread()\n\t}\n}\nfunc (z *decReaderSwitch) track() {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.rb.track()\n\tcase entryTypeIo:\n\t\tz.ri.track()\n\tdefault:\n\t\tz.bi.track()\n\t}\n}\nfunc (z *decReaderSwitch) stopTrack() []byte {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.stopTrack()\n\tcase entryTypeIo:\n\t\treturn z.ri.stopTrack()\n\tdefault:\n\t\treturn z.bi.stopTrack()\n\t}\n}\n\nfunc (z *decReaderSwitch) unreadn1() {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.rb.unreadn1()\n\tcase entryTypeIo:\n\t\tz.ri.unreadn1()\n\tdefault:\n\t\tz.bi.unreadn1()\n\t}\n}\nfunc (z *decReaderSwitch) readx(n int) []byte {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.readx(n)\n\tcase entryTypeIo:\n\t\treturn z.ri.readx(n)\n\tdefault:\n\t\treturn z.bi.readx(n)\n\t}\n}\nfunc (z *decReaderSwitch) readb(s []byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.rb.readb(s)\n\tcase entryTypeIo:\n\t\tz.ri.readb(s)\n\tdefault:\n\t\tz.bi.readb(s)\n\t}\n}\nfunc (z *decReaderSwitch) readn1() uint8 {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.readn1()\n\tcase entryTypeIo:\n\t\treturn z.ri.readn1()\n\tdefault:\n\t\treturn z.bi.readn1()\n\t}\n}\nfunc (z *decReaderSwitch) skip(accept *bitset256) (token byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.skip(accept)\n\tcase entryTypeIo:\n\t\treturn z.ri.skip(accept)\n\tdefault:\n\t\treturn z.bi.skip(accept)\n\t}\n}\nfunc (z *decReaderSwitch) readTo(in []byte, accept *bitset256) (out []byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.readTo(in, accept)\n\tcase entryTypeIo:\n\t\treturn z.ri.readTo(in, accept)\n\tdefault:\n\t\treturn z.bi.readTo(in, accept)\n\t}\n}\nfunc (z *decReaderSwitch) readUntil(in []byte, stop byte) (out []byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\treturn z.rb.readUntil(in, stop)\n\tcase entryTypeIo:\n\t\treturn z.ri.readUntil(in, stop)\n\tdefault:\n\t\treturn z.bi.readUntil(in, stop)\n\t}\n}\n\n*/\n\n// the if/else-if/else block is expensive to inline.\n// Each node of this construct costs a lot and dominates the budget.\n// Best to only do an if fast-path else block (so fast-path is inlined).\n// This is irrespective of inlineExtraCallCost set in $GOROOT/src/cmd/compile/internal/gc/inl.go\n//\n// In decReaderSwitch methods below, we delegate all IO functions into their own methods.\n// This allows for the inlining of the common path when z.bytes=true.\n// Go 1.12+ supports inlining methods with up to 1 inlined function (or 2 if no other constructs).\n\nfunc (z *decReaderSwitch) numread() uint {\n\tif z.bytes {\n\t\treturn z.rb.numread()\n\t} else if z.bufio {\n\t\treturn z.bi.numread()\n\t} else {\n\t\treturn z.ri.numread()\n\t}\n}\nfunc (z *decReaderSwitch) track() {\n\tif z.bytes {\n\t\tz.rb.track()\n\t} else if z.bufio {\n\t\tz.bi.track()\n\t} else {\n\t\tz.ri.track()\n\t}\n}\nfunc (z *decReaderSwitch) stopTrack() []byte {\n\tif z.bytes {\n\t\treturn z.rb.stopTrack()\n\t} else if z.bufio {\n\t\treturn z.bi.stopTrack()\n\t} else {\n\t\treturn z.ri.stopTrack()\n\t}\n}\n\n// func (z *decReaderSwitch) unreadn1() {\n// \tif z.bytes {\n// \t\tz.rb.unreadn1()\n// \t} else {\n// \t\tz.unreadn1IO()\n// \t}\n// }\n// func (z *decReaderSwitch) unreadn1IO() {\n// \tif z.bufio {\n// \t\tz.bi.unreadn1()\n// \t} else {\n// \t\tz.ri.unreadn1()\n// \t}\n// }\n\nfunc (z *decReaderSwitch) unreadn1() {\n\tif z.bytes {\n\t\tz.rb.unreadn1()\n\t} else if z.bufio {\n\t\tz.bi.unreadn1()\n\t} else {\n\t\tz.ri.unreadn1() // not inlined\n\t}\n}\n\nfunc (z *decReaderSwitch) readx(n uint) []byte {\n\tif z.bytes {\n\t\treturn z.rb.readx(n)\n\t}\n\treturn z.readxIO(n)\n}\nfunc (z *decReaderSwitch) readxIO(n uint) []byte {\n\tif z.bufio {\n\t\treturn z.bi.readx(n)\n\t}\n\treturn z.ri.readx(n)\n}\n\nfunc (z *decReaderSwitch) readb(s []byte) {\n\tif z.bytes {\n\t\tz.rb.readb(s)\n\t} else {\n\t\tz.readbIO(s)\n\t}\n}\n\n//go:noinline - fallback for io, ensures z.bytes path is inlined\nfunc (z *decReaderSwitch) readbIO(s []byte) {\n\tif z.bufio {\n\t\tz.bi.readb(s)\n\t} else {\n\t\tz.ri.readb(s)\n\t}\n}\n\nfunc (z *decReaderSwitch) readn1() uint8 {\n\tif z.bytes {\n\t\treturn z.rb.readn1()\n\t}\n\treturn z.readn1IO()\n}\nfunc (z *decReaderSwitch) readn1IO() uint8 {\n\tif z.bufio {\n\t\treturn z.bi.readn1()\n\t}\n\treturn z.ri.readn1()\n}\n\nfunc (z *decReaderSwitch) skip(accept *bitset256) (token byte) {\n\tif z.bytes {\n\t\treturn z.rb.skip(accept)\n\t}\n\treturn z.skipIO(accept)\n}\nfunc (z *decReaderSwitch) skipIO(accept *bitset256) (token byte) {\n\tif z.bufio {\n\t\treturn z.bi.skip(accept)\n\t}\n\treturn z.ri.skip(accept)\n}\n\nfunc (z *decReaderSwitch) readTo(in []byte, accept *bitset256) (out []byte) {\n\tif z.bytes {\n\t\treturn z.rb.readToNoInput(accept) // z.rb.readTo(in, accept)\n\t}\n\treturn z.readToIO(in, accept)\n}\n\n//go:noinline - fallback for io, ensures z.bytes path is inlined\nfunc (z *decReaderSwitch) readToIO(in []byte, accept *bitset256) (out []byte) {\n\tif z.bufio {\n\t\treturn z.bi.readTo(in, accept)\n\t}\n\treturn z.ri.readTo(in, accept)\n}\nfunc (z *decReaderSwitch) readUntil(in []byte, stop byte) (out []byte) {\n\tif z.bytes {\n\t\treturn z.rb.readUntilNoInput(stop)\n\t}\n\treturn z.readUntilIO(in, stop)\n}\n\nfunc (z *decReaderSwitch) readUntilIO(in []byte, stop byte) (out []byte) {\n\tif z.bufio {\n\t\treturn z.bi.readUntil(in, stop)\n\t}\n\treturn z.ri.readUntil(in, stop)\n}\n\n// Decoder reads and decodes an object from an input stream in a supported format.\n//\n// Decoder is NOT safe for concurrent use i.e. a Decoder cannot be used\n// concurrently in multiple goroutines.\n//\n// However, as Decoder could be allocation heavy to initialize, a Reset method is provided\n// so its state can be reused to decode new input streams repeatedly.\n// This is the idiomatic way to use.\ntype Decoder struct {\n\tpanicHdl\n\t// hopefully, reduce derefencing cost by laying the decReader inside the Decoder.\n\t// Try to put things that go together to fit within a cache line (8 words).\n\n\td decDriver\n\n\t// NOTE: Decoder shouldn't call its read methods,\n\t// as the handler MAY need to do some coordination.\n\t// r *decReaderSwitch\n\n\t// bi *bufioDecReader\n\t// cache the mapTypeId and sliceTypeId for faster comparisons\n\tmtid uintptr\n\tstid uintptr\n\n\tjdec *jsonDecDriver\n\th    *BasicHandle\n\thh   Handle\n\n\t// ---- cpu cache line boundary?\n\tdecReaderSwitch\n\n\t// ---- cpu cache line boundary?\n\tn decNaked\n\n\t// cr containerStateRecv\n\n\t// _ [4]uint8 // padding\n\n\tis map[string]string // used for interning strings\n\n\terr error\n\n\t// ---- cpu cache line boundary?\n\t// ---- writable fields during execution --- *try* to keep in sep cache line\n\tmaxdepth int16\n\tdepth    int16\n\tc        containerState\n\t_        [3]byte                      // padding\n\tb        [decScratchByteArrayLen]byte // scratch buffer, used by Decoder and xxxEncDrivers\n\n\t// padding - false sharing help // modify 232 if Decoder struct changes.\n\t// _ [cacheLineSize - 232%cacheLineSize]byte\n}\n\n// NewDecoder returns a Decoder for decoding a stream of bytes from an io.Reader.\n//\n// For efficiency, Users are encouraged to configure ReaderBufferSize on the handle\n// OR pass in a memory buffered reader (eg bufio.Reader, bytes.Buffer).\nfunc NewDecoder(r io.Reader, h Handle) *Decoder {\n\td := newDecoder(h)\n\td.Reset(r)\n\treturn d\n}\n\n// NewDecoderBytes returns a Decoder which efficiently decodes directly\n// from a byte slice with zero copying.\nfunc NewDecoderBytes(in []byte, h Handle) *Decoder {\n\td := newDecoder(h)\n\td.ResetBytes(in)\n\treturn d\n}\n\n// var defaultDecNaked decNaked\n\nfunc newDecoder(h Handle) *Decoder {\n\td := &Decoder{h: basicHandle(h), err: errDecoderNotInitialized}\n\td.bytes = true\n\tif useFinalizers {\n\t\truntime.SetFinalizer(d, (*Decoder).finalize)\n\t\t// xdebugf(\">>>> new(Decoder) with finalizer\")\n\t}\n\t// d.r = &d.decReaderSwitch\n\td.hh = h\n\td.be = h.isBinary()\n\t// NOTE: do not initialize d.n here. It is lazily initialized in d.naked()\n\tvar jh *JsonHandle\n\tjh, d.js = h.(*JsonHandle)\n\td.jdec = nil\n\tif d.js {\n\t\td.jsms = jh.MapKeyAsString\n\t}\n\td.esep = d.hh.hasElemSeparators()\n\tif d.h.InternString {\n\t\td.is = make(map[string]string, 32)\n\t}\n\td.d = h.newDecDriver(d)\n\tif d.js {\n\t\td.jdec = d.d.(*jsonDecDriver)\n\t}\n\t// d.cr, _ = d.d.(containerStateRecv)\n\treturn d\n}\n\nfunc (d *Decoder) r() *decReaderSwitch {\n\treturn &d.decReaderSwitch\n}\n\nfunc (d *Decoder) resetCommon() {\n\t// d.r = &d.decReaderSwitch\n\td.d.reset()\n\td.err = nil\n\td.depth = 0\n\td.maxdepth = d.h.MaxDepth\n\tif d.maxdepth <= 0 {\n\t\td.maxdepth = decDefMaxDepth\n\t}\n\t// reset all things which were cached from the Handle, but could change\n\td.mtid, d.stid = 0, 0\n\td.mtr, d.str = false, false\n\tif d.h.MapType != nil {\n\t\td.mtid = rt2id(d.h.MapType)\n\t\td.mtr = fastpathAV.index(d.mtid) != -1\n\t}\n\tif d.h.SliceType != nil {\n\t\td.stid = rt2id(d.h.SliceType)\n\t\td.str = fastpathAV.index(d.stid) != -1\n\t}\n}\n\n// Reset the Decoder with a new Reader to decode from,\n// clearing all state from last run(s).\nfunc (d *Decoder) Reset(r io.Reader) {\n\tif r == nil {\n\t\treturn\n\t}\n\td.bytes = false\n\t// d.typ = entryTypeUnset\n\tif d.h.ReaderBufferSize > 0 {\n\t\tif d.bi == nil {\n\t\t\td.bi = new(bufioDecReader)\n\t\t}\n\t\td.bi.reset(r, d.h.ReaderBufferSize)\n\t\t// d.r = d.bi\n\t\t// d.typ = entryTypeBufio\n\t\td.bufio = true\n\t} else {\n\t\t// d.ri.x = &d.b\n\t\t// d.s = d.sa[:0]\n\t\tif d.ri == nil {\n\t\t\td.ri = new(ioDecReader)\n\t\t}\n\t\td.ri.reset(r)\n\t\t// d.r = d.ri\n\t\t// d.typ = entryTypeIo\n\t\td.bufio = false\n\t}\n\td.resetCommon()\n}\n\n// ResetBytes resets the Decoder with a new []byte to decode from,\n// clearing all state from last run(s).\nfunc (d *Decoder) ResetBytes(in []byte) {\n\tif in == nil {\n\t\treturn\n\t}\n\td.bytes = true\n\td.bufio = false\n\t// d.typ = entryTypeBytes\n\td.rb.reset(in)\n\t// d.r = &d.rb\n\td.resetCommon()\n}\n\nfunc (d *Decoder) naked() *decNaked {\n\treturn &d.n\n}\n\n// Decode decodes the stream from reader and stores the result in the\n// value pointed to by v. v cannot be a nil pointer. v can also be\n// a reflect.Value of a pointer.\n//\n// Note that a pointer to a nil interface is not a nil pointer.\n// If you do not know what type of stream it is, pass in a pointer to a nil interface.\n// We will decode and store a value in that nil interface.\n//\n// Sample usages:\n//   // Decoding into a non-nil typed value\n//   var f float32\n//   err = codec.NewDecoder(r, handle).Decode(&f)\n//\n//   // Decoding into nil interface\n//   var v interface{}\n//   dec := codec.NewDecoder(r, handle)\n//   err = dec.Decode(&v)\n//\n// When decoding into a nil interface{}, we will decode into an appropriate value based\n// on the contents of the stream:\n//   - Numbers are decoded as float64, int64 or uint64.\n//   - Other values are decoded appropriately depending on the type:\n//     bool, string, []byte, time.Time, etc\n//   - Extensions are decoded as RawExt (if no ext function registered for the tag)\n// Configurations exist on the Handle to override defaults\n// (e.g. for MapType, SliceType and how to decode raw bytes).\n//\n// When decoding into a non-nil interface{} value, the mode of encoding is based on the\n// type of the value. When a value is seen:\n//   - If an extension is registered for it, call that extension function\n//   - If it implements BinaryUnmarshaler, call its UnmarshalBinary(data []byte) error\n//   - Else decode it based on its reflect.Kind\n//\n// There are some special rules when decoding into containers (slice/array/map/struct).\n// Decode will typically use the stream contents to UPDATE the container i.e. the values\n// in these containers will not be zero'ed before decoding.\n//   - A map can be decoded from a stream map, by updating matching keys.\n//   - A slice can be decoded from a stream array,\n//     by updating the first n elements, where n is length of the stream.\n//   - A slice can be decoded from a stream map, by decoding as if\n//     it contains a sequence of key-value pairs.\n//   - A struct can be decoded from a stream map, by updating matching fields.\n//   - A struct can be decoded from a stream array,\n//     by updating fields as they occur in the struct (by index).\n//\n// This in-place update maintains consistency in the decoding philosophy (i.e. we ALWAYS update\n// in place by default). However, the consequence of this is that values in slices or maps\n// which are not zero'ed before hand, will have part of the prior values in place after decode\n// if the stream doesn't contain an update for those parts.\n//\n// This in-place update can be disabled by configuring the MapValueReset and SliceElementReset\n// decode options available on every handle.\n//\n// Furthermore, when decoding a stream map or array with length of 0 into a nil map or slice,\n// we reset the destination map or slice to a zero-length value.\n//\n// However, when decoding a stream nil, we reset the destination container\n// to its \"zero\" value (e.g. nil for slice/map, etc).\n//\n// Note: we allow nil values in the stream anywhere except for map keys.\n// A nil value in the encoded stream where a map key is expected is treated as an error.\nfunc (d *Decoder) Decode(v interface{}) (err error) {\n\t// tried to use closure, as runtime optimizes defer with no params.\n\t// This seemed to be causing weird issues (like circular reference found, unexpected panic, etc).\n\t// Also, see https://github.com/golang/go/issues/14939#issuecomment-417836139\n\t// defer func() { d.deferred(&err) }()\n\t// { x, y := d, &err; defer func() { x.deferred(y) }() }\n\tif d.err != nil {\n\t\treturn d.err\n\t}\n\tif recoverPanicToErr {\n\t\tdefer func() {\n\t\t\tif x := recover(); x != nil {\n\t\t\t\tpanicValToErr(d, x, &d.err)\n\t\t\t\tif d.err != err {\n\t\t\t\t\terr = d.err\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\t// defer d.deferred(&err)\n\td.mustDecode(v)\n\treturn\n}\n\n// MustDecode is like Decode, but panics if unable to Decode.\n// This provides insight to the code location that triggered the error.\nfunc (d *Decoder) MustDecode(v interface{}) {\n\tif d.err != nil {\n\t\tpanic(d.err)\n\t}\n\td.mustDecode(v)\n}\n\n// MustDecode is like Decode, but panics if unable to Decode.\n// This provides insight to the code location that triggered the error.\nfunc (d *Decoder) mustDecode(v interface{}) {\n\t// TODO: Top-level: ensure that v is a pointer and not nil.\n\tif d.d.TryDecodeAsNil() {\n\t\tsetZero(v)\n\t\treturn\n\t}\n\tif d.bi == nil {\n\t\td.decode(v)\n\t\treturn\n\t}\n\n\td.bi.calls++\n\td.decode(v)\n\t// xprintf.(\">>>>>>>> >>>>>>>> num decFns: %v\\n\", d.cf.sn)\n\td.bi.calls--\n\tif !d.h.ExplicitRelease && d.bi.calls == 0 {\n\t\td.bi.release()\n\t}\n}\n\n// func (d *Decoder) deferred(err1 *error) {\n// \tif recoverPanicToErr {\n// \t\tif x := recover(); x != nil {\n// \t\t\tpanicValToErr(d, x, err1)\n// \t\t\tpanicValToErr(d, x, &d.err)\n// \t\t}\n// \t}\n// }\n\n//go:noinline -- as it is run by finalizer\nfunc (d *Decoder) finalize() {\n\t// xdebugf(\"finalizing Decoder\")\n\td.Release()\n}\n\n// Release releases shared (pooled) resources.\n//\n// It is important to call Release() when done with a Decoder, so those resources\n// are released instantly for use by subsequently created Decoders.\n//\n// By default, Release() is automatically called unless the option ExplicitRelease is set.\nfunc (d *Decoder) Release() {\n\tif d.bi != nil {\n\t\td.bi.release()\n\t}\n\t// d.decNakedPooler.end()\n}\n\n// // this is not a smart swallow, as it allocates objects and does unnecessary work.\n// func (d *Decoder) swallowViaHammer() {\n// \tvar blank interface{}\n// \td.decodeValueNoFn(reflect.ValueOf(&blank).Elem())\n// }\n\nfunc (d *Decoder) swallow() {\n\t// smarter decode that just swallows the content\n\tdd := d.d\n\tif dd.TryDecodeAsNil() {\n\t\treturn\n\t}\n\tswitch dd.ContainerType() {\n\tcase valueTypeMap:\n\t\tcontainerLen := d.mapStart()\n\t\thasLen := containerLen >= 0\n\t\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {\n\t\t\t// if clenGtEqualZero {if j >= containerLen {break} } else if dd.CheckBreak() {break}\n\t\t\td.mapElemKey()\n\t\t\td.swallow()\n\t\t\td.mapElemValue()\n\t\t\td.swallow()\n\t\t}\n\t\td.mapEnd()\n\tcase valueTypeArray:\n\t\tcontainerLen := d.arrayStart()\n\t\thasLen := containerLen >= 0\n\t\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {\n\t\t\td.arrayElem()\n\t\t\td.swallow()\n\t\t}\n\t\td.arrayEnd()\n\tcase valueTypeBytes:\n\t\tdd.DecodeBytes(d.b[:], true)\n\tcase valueTypeString:\n\t\tdd.DecodeStringAsBytes()\n\tdefault:\n\t\t// these are all primitives, which we can get from decodeNaked\n\t\t// if RawExt using Value, complete the processing.\n\t\tn := d.naked()\n\t\tdd.DecodeNaked()\n\t\tif n.v == valueTypeExt && n.l == nil {\n\t\t\tvar v2 interface{}\n\t\t\td.decode(&v2)\n\t\t}\n\t}\n}\n\nfunc setZero(iv interface{}) {\n\tif iv == nil || definitelyNil(iv) {\n\t\treturn\n\t}\n\tvar canDecode bool\n\tswitch v := iv.(type) {\n\tcase *string:\n\t\t*v = \"\"\n\tcase *bool:\n\t\t*v = false\n\tcase *int:\n\t\t*v = 0\n\tcase *int8:\n\t\t*v = 0\n\tcase *int16:\n\t\t*v = 0\n\tcase *int32:\n\t\t*v = 0\n\tcase *int64:\n\t\t*v = 0\n\tcase *uint:\n\t\t*v = 0\n\tcase *uint8:\n\t\t*v = 0\n\tcase *uint16:\n\t\t*v = 0\n\tcase *uint32:\n\t\t*v = 0\n\tcase *uint64:\n\t\t*v = 0\n\tcase *float32:\n\t\t*v = 0\n\tcase *float64:\n\t\t*v = 0\n\tcase *[]uint8:\n\t\t*v = nil\n\tcase *Raw:\n\t\t*v = nil\n\tcase *time.Time:\n\t\t*v = time.Time{}\n\tcase reflect.Value:\n\t\tif v, canDecode = isDecodeable(v); canDecode && v.CanSet() {\n\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t} // TODO: else drain if chan, clear if map, set all to nil if slice???\n\tdefault:\n\t\tif !fastpathDecodeSetZeroTypeSwitch(iv) {\n\t\t\tv := reflect.ValueOf(iv)\n\t\t\tif v, canDecode = isDecodeable(v); canDecode && v.CanSet() {\n\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t} // TODO: else drain if chan, clear if map, set all to nil if slice???\n\t\t}\n\t}\n}\n\nfunc (d *Decoder) decode(iv interface{}) {\n\t// a switch with only concrete types can be optimized.\n\t// consequently, we deal with nil and interfaces outside the switch.\n\n\tif iv == nil {\n\t\td.errorstr(errstrCannotDecodeIntoNil)\n\t\treturn\n\t}\n\n\tswitch v := iv.(type) {\n\t// case nil:\n\t// case Selfer:\n\tcase reflect.Value:\n\t\tv = d.ensureDecodeable(v)\n\t\td.decodeValue(v, nil, true)\n\n\tcase *string:\n\t\t*v = d.d.DecodeString()\n\tcase *bool:\n\t\t*v = d.d.DecodeBool()\n\tcase *int:\n\t\t*v = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\tcase *int8:\n\t\t*v = int8(chkOvf.IntV(d.d.DecodeInt64(), 8))\n\tcase *int16:\n\t\t*v = int16(chkOvf.IntV(d.d.DecodeInt64(), 16))\n\tcase *int32:\n\t\t*v = int32(chkOvf.IntV(d.d.DecodeInt64(), 32))\n\tcase *int64:\n\t\t*v = d.d.DecodeInt64()\n\tcase *uint:\n\t\t*v = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\tcase *uint8:\n\t\t*v = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\tcase *uint16:\n\t\t*v = uint16(chkOvf.UintV(d.d.DecodeUint64(), 16))\n\tcase *uint32:\n\t\t*v = uint32(chkOvf.UintV(d.d.DecodeUint64(), 32))\n\tcase *uint64:\n\t\t*v = d.d.DecodeUint64()\n\tcase *float32:\n\t\t*v = float32(d.decodeFloat32())\n\tcase *float64:\n\t\t*v = d.d.DecodeFloat64()\n\tcase *[]uint8:\n\t\t*v = d.d.DecodeBytes(*v, false)\n\tcase []uint8:\n\t\tb := d.d.DecodeBytes(v, false)\n\t\tif !(len(b) > 0 && len(b) == len(v) && &b[0] == &v[0]) {\n\t\t\tcopy(v, b)\n\t\t}\n\tcase *time.Time:\n\t\t*v = d.d.DecodeTime()\n\tcase *Raw:\n\t\t*v = d.rawBytes()\n\n\tcase *interface{}:\n\t\td.decodeValue(reflect.ValueOf(iv).Elem(), nil, true)\n\t\t// d.decodeValueNotNil(reflect.ValueOf(iv).Elem())\n\n\tdefault:\n\t\tif v, ok := iv.(Selfer); ok {\n\t\t\tv.CodecDecodeSelf(d)\n\t\t} else if !fastpathDecodeTypeSwitch(iv, d) {\n\t\t\tv := reflect.ValueOf(iv)\n\t\t\tv = d.ensureDecodeable(v)\n\t\t\td.decodeValue(v, nil, false)\n\t\t\t// d.decodeValueFallback(v)\n\t\t}\n\t}\n}\n\nfunc (d *Decoder) decodeValue(rv reflect.Value, fn *codecFn, chkAll bool) {\n\t// If stream is not containing a nil value, then we can deref to the base\n\t// non-pointer value, and decode into that.\n\tvar rvp reflect.Value\n\tvar rvpValid bool\n\tif rv.Kind() == reflect.Ptr {\n\t\trvpValid = true\n\t\tfor {\n\t\t\tif rv.IsNil() {\n\t\t\t\trv.Set(reflect.New(rv.Type().Elem()))\n\t\t\t}\n\t\t\trvp = rv\n\t\t\trv = rv.Elem()\n\t\t\tif rv.Kind() != reflect.Ptr {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tif fn == nil {\n\t\t// always pass checkCodecSelfer=true, in case T or ****T is passed, where *T is a Selfer\n\t\tfn = d.h.fn(rv.Type(), chkAll, true) // chkAll, chkAll)\n\t}\n\tif fn.i.addrD {\n\t\tif rvpValid {\n\t\t\tfn.fd(d, &fn.i, rvp)\n\t\t} else if rv.CanAddr() {\n\t\t\tfn.fd(d, &fn.i, rv.Addr())\n\t\t} else if !fn.i.addrF {\n\t\t\tfn.fd(d, &fn.i, rv)\n\t\t} else {\n\t\t\td.errorf(\"cannot decode into a non-pointer value\")\n\t\t}\n\t} else {\n\t\tfn.fd(d, &fn.i, rv)\n\t}\n\t// return rv\n}\n\nfunc (d *Decoder) structFieldNotFound(index int, rvkencname string) {\n\t// NOTE: rvkencname may be a stringView, so don't pass it to another function.\n\tif d.h.ErrorIfNoField {\n\t\tif index >= 0 {\n\t\t\td.errorf(\"no matching struct field found when decoding stream array at index %v\", index)\n\t\t\treturn\n\t\t} else if rvkencname != \"\" {\n\t\t\td.errorf(\"no matching struct field found when decoding stream map with key \" + rvkencname)\n\t\t\treturn\n\t\t}\n\t}\n\td.swallow()\n}\n\nfunc (d *Decoder) arrayCannotExpand(sliceLen, streamLen int) {\n\tif d.h.ErrorIfNoArrayExpand {\n\t\td.errorf(\"cannot expand array len during decode from %v to %v\", sliceLen, streamLen)\n\t}\n}\n\nfunc isDecodeable(rv reflect.Value) (rv2 reflect.Value, canDecode bool) {\n\tswitch rv.Kind() {\n\tcase reflect.Array:\n\t\treturn rv, rv.CanAddr()\n\tcase reflect.Ptr:\n\t\tif !rv.IsNil() {\n\t\t\treturn rv.Elem(), true\n\t\t}\n\tcase reflect.Slice, reflect.Chan, reflect.Map:\n\t\tif !rv.IsNil() {\n\t\t\treturn rv, true\n\t\t}\n\t}\n\treturn\n}\n\nfunc (d *Decoder) ensureDecodeable(rv reflect.Value) (rv2 reflect.Value) {\n\t// decode can take any reflect.Value that is a inherently addressable i.e.\n\t//   - array\n\t//   - non-nil chan    (we will SEND to it)\n\t//   - non-nil slice   (we will set its elements)\n\t//   - non-nil map     (we will put into it)\n\t//   - non-nil pointer (we can \"update\" it)\n\trv2, canDecode := isDecodeable(rv)\n\tif canDecode {\n\t\treturn\n\t}\n\tif !rv.IsValid() {\n\t\td.errorstr(errstrCannotDecodeIntoNil)\n\t\treturn\n\t}\n\tif !rv.CanInterface() {\n\t\td.errorf(\"cannot decode into a value without an interface: %v\", rv)\n\t\treturn\n\t}\n\trvi := rv2i(rv)\n\trvk := rv.Kind()\n\td.errorf(\"cannot decode into value of kind: %v, type: %T, %v\", rvk, rvi, rvi)\n\treturn\n}\n\nfunc (d *Decoder) depthIncr() {\n\td.depth++\n\tif d.depth >= d.maxdepth {\n\t\tpanic(errMaxDepthExceeded)\n\t}\n}\n\nfunc (d *Decoder) depthDecr() {\n\td.depth--\n}\n\n// Possibly get an interned version of a string\n//\n// This should mostly be used for map keys, where the key type is string.\n// This is because keys of a map/struct are typically reused across many objects.\nfunc (d *Decoder) string(v []byte) (s string) {\n\tif d.is == nil {\n\t\treturn string(v) // don't return stringView, as we need a real string here.\n\t}\n\ts, ok := d.is[string(v)] // no allocation here, per go implementation\n\tif !ok {\n\t\ts = string(v) // new allocation here\n\t\td.is[s] = s\n\t}\n\treturn s\n}\n\n// nextValueBytes returns the next value in the stream as a set of bytes.\nfunc (d *Decoder) nextValueBytes() (bs []byte) {\n\td.d.uncacheRead()\n\td.r().track()\n\td.swallow()\n\tbs = d.r().stopTrack()\n\treturn\n}\n\nfunc (d *Decoder) rawBytes() []byte {\n\t// ensure that this is not a view into the bytes\n\t// i.e. make new copy always.\n\tbs := d.nextValueBytes()\n\tbs2 := make([]byte, len(bs))\n\tcopy(bs2, bs)\n\treturn bs2\n}\n\nfunc (d *Decoder) wrapErr(v interface{}, err *error) {\n\t*err = decodeError{codecError: codecError{name: d.hh.Name(), err: v}, pos: int(d.r().numread())}\n}\n\n// NumBytesRead returns the number of bytes read\nfunc (d *Decoder) NumBytesRead() int {\n\treturn int(d.r().numread())\n}\n\n// decodeFloat32 will delegate to an appropriate DecodeFloat32 implementation (if exists),\n// else if will call DecodeFloat64 and ensure the value doesn't overflow.\n//\n// Note that we return float64 to reduce unnecessary conversions\nfunc (d *Decoder) decodeFloat32() float64 {\n\tif d.js {\n\t\treturn d.jdec.DecodeFloat32() // custom implementation for 32-bit\n\t}\n\treturn chkOvf.Float32V(d.d.DecodeFloat64())\n}\n\n// ---- container tracking\n// Note: We update the .c after calling the callback.\n// This way, the callback can know what the last status was.\n\nfunc (d *Decoder) mapStart() (v int) {\n\tv = d.d.ReadMapStart()\n\td.depthIncr()\n\td.c = containerMapStart\n\treturn\n}\n\nfunc (d *Decoder) mapElemKey() {\n\tif d.js {\n\t\td.jdec.ReadMapElemKey()\n\t}\n\td.c = containerMapKey\n}\n\nfunc (d *Decoder) mapElemValue() {\n\tif d.js {\n\t\td.jdec.ReadMapElemValue()\n\t}\n\td.c = containerMapValue\n}\n\nfunc (d *Decoder) mapEnd() {\n\td.d.ReadMapEnd()\n\td.depthDecr()\n\td.c = containerMapEnd\n\td.c = 0\n}\n\nfunc (d *Decoder) arrayStart() (v int) {\n\tv = d.d.ReadArrayStart()\n\td.depthIncr()\n\td.c = containerArrayStart\n\treturn\n}\n\nfunc (d *Decoder) arrayElem() {\n\tif d.js {\n\t\td.jdec.ReadArrayElem()\n\t}\n\td.c = containerArrayElem\n}\n\nfunc (d *Decoder) arrayEnd() {\n\td.d.ReadArrayEnd()\n\td.depthDecr()\n\td.c = containerArrayEnd\n\td.c = 0\n}\n\n// --------------------------------------------------\n\n// decSliceHelper assists when decoding into a slice, from a map or an array in the stream.\n// A slice can be set from a map or array in stream. This supports the MapBySlice interface.\ntype decSliceHelper struct {\n\td     *Decoder\n\tct    valueType\n\tarray bool\n}\n\nfunc (d *Decoder) decSliceHelperStart() (x decSliceHelper, clen int) {\n\tx.ct = d.d.ContainerType()\n\tx.d = d\n\tswitch x.ct {\n\tcase valueTypeArray:\n\t\tx.array = true\n\t\tclen = d.arrayStart()\n\tcase valueTypeMap:\n\t\tclen = d.mapStart() * 2\n\tdefault:\n\t\td.errorf(\"only encoded map or array can be decoded into a slice (%d)\", x.ct)\n\t}\n\treturn\n}\n\nfunc (x decSliceHelper) End() {\n\tif x.array {\n\t\tx.d.arrayEnd()\n\t} else {\n\t\tx.d.mapEnd()\n\t}\n}\n\nfunc (x decSliceHelper) ElemContainerState(index int) {\n\tif x.array {\n\t\tx.d.arrayElem()\n\t} else if index%2 == 0 {\n\t\tx.d.mapElemKey()\n\t} else {\n\t\tx.d.mapElemValue()\n\t}\n}\n\nfunc decByteSlice(r *decReaderSwitch, clen, maxInitLen int, bs []byte) (bsOut []byte) {\n\tif clen == 0 {\n\t\treturn zeroByteSlice\n\t}\n\tif len(bs) == clen {\n\t\tbsOut = bs\n\t\tr.readb(bsOut)\n\t} else if cap(bs) >= clen {\n\t\tbsOut = bs[:clen]\n\t\tr.readb(bsOut)\n\t} else {\n\t\t// bsOut = make([]byte, clen)\n\t\tlen2 := decInferLen(clen, maxInitLen, 1)\n\t\tbsOut = make([]byte, len2)\n\t\tr.readb(bsOut)\n\t\tfor len2 < clen {\n\t\t\tlen3 := decInferLen(clen-len2, maxInitLen, 1)\n\t\t\tbs3 := bsOut\n\t\t\tbsOut = make([]byte, len2+len3)\n\t\t\tcopy(bsOut, bs3)\n\t\t\tr.readb(bsOut[len2:])\n\t\t\tlen2 += len3\n\t\t}\n\t}\n\treturn\n}\n\n// func decByteSliceZeroCopy(r decReader, clen, maxInitLen int, bs []byte) (bsOut []byte) {\n// \tif _, ok := r.(*bytesDecReader); ok && clen <= maxInitLen {\n// \t\treturn r.readx(clen)\n// \t}\n// \treturn decByteSlice(r, clen, maxInitLen, bs)\n// }\n\nfunc detachZeroCopyBytes(isBytesReader bool, dest []byte, in []byte) (out []byte) {\n\tif xlen := len(in); xlen > 0 {\n\t\tif isBytesReader || xlen <= scratchByteArrayLen {\n\t\t\tif cap(dest) >= xlen {\n\t\t\t\tout = dest[:xlen]\n\t\t\t} else {\n\t\t\t\tout = make([]byte, xlen)\n\t\t\t}\n\t\t\tcopy(out, in)\n\t\t\treturn\n\t\t}\n\t}\n\treturn in\n}\n\n// decInferLen will infer a sensible length, given the following:\n//    - clen: length wanted.\n//    - maxlen: max length to be returned.\n//      if <= 0, it is unset, and we infer it based on the unit size\n//    - unit: number of bytes for each element of the collection\nfunc decInferLen(clen, maxlen, unit int) (rvlen int) {\n\t// handle when maxlen is not set i.e. <= 0\n\tif clen <= 0 {\n\t\treturn\n\t}\n\tif unit == 0 {\n\t\treturn clen\n\t}\n\tif maxlen <= 0 {\n\t\t// no maxlen defined. Use maximum of 256K memory, with a floor of 4K items.\n\t\t// maxlen = 256 * 1024 / unit\n\t\t// if maxlen < (4 * 1024) {\n\t\t// \tmaxlen = 4 * 1024\n\t\t// }\n\t\tif unit < (256 / 4) {\n\t\t\tmaxlen = 256 * 1024 / unit\n\t\t} else {\n\t\t\tmaxlen = 4 * 1024\n\t\t}\n\t}\n\tif clen > maxlen {\n\t\trvlen = maxlen\n\t} else {\n\t\trvlen = clen\n\t}\n\treturn\n}\n\nfunc expandSliceRV(s reflect.Value, st reflect.Type, canChange bool, stElemSize, num, slen, scap int) (\n\ts2 reflect.Value, scap2 int, changed bool, err string) {\n\tl1 := slen + num // new slice length\n\tif l1 < slen {\n\t\terr = errmsgExpandSliceOverflow\n\t\treturn\n\t}\n\tif l1 <= scap {\n\t\tif s.CanSet() {\n\t\t\ts.SetLen(l1)\n\t\t} else if canChange {\n\t\t\ts2 = s.Slice(0, l1)\n\t\t\tscap2 = scap\n\t\t\tchanged = true\n\t\t} else {\n\t\t\terr = errmsgExpandSliceCannotChange\n\t\t\treturn\n\t\t}\n\t\treturn\n\t}\n\tif !canChange {\n\t\terr = errmsgExpandSliceCannotChange\n\t\treturn\n\t}\n\tscap2 = growCap(scap, stElemSize, num)\n\ts2 = reflect.MakeSlice(st, l1, scap2)\n\tchanged = true\n\treflect.Copy(s2, s)\n\treturn\n}\n\nfunc decReadFull(r io.Reader, bs []byte) (n uint, err error) {\n\tvar nn int\n\tfor n < uint(len(bs)) && err == nil {\n\t\tnn, err = r.Read(bs[n:])\n\t\tif nn > 0 {\n\t\t\tif err == io.EOF {\n\t\t\t\t// leave EOF for next time\n\t\t\t\terr = nil\n\t\t\t}\n\t\t\tn += uint(nn)\n\t\t}\n\t}\n\t// xdebugf(\"decReadFull: len(bs): %v, n: %v, err: %v\", len(bs), n, err)\n\t// do not do this - it serves no purpose\n\t// if n != len(bs) && err == io.EOF { err = io.ErrUnexpectedEOF }\n\treturn\n}\n\nfunc decNakedReadRawBytes(dr decDriver, d *Decoder, n *decNaked, rawToString bool) {\n\tif rawToString {\n\t\tn.v = valueTypeString\n\t\tn.s = string(dr.DecodeBytes(d.b[:], true))\n\t} else {\n\t\tn.v = valueTypeBytes\n\t\tn.l = dr.DecodeBytes(nil, false)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/doc.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n/*\nPackage codec provides a\nHigh Performance, Feature-Rich Idiomatic Go 1.4+ codec/encoding library\nfor binc, msgpack, cbor, json.\n\nSupported Serialization formats are:\n\n  - msgpack: https://github.com/msgpack/msgpack\n  - binc:    http://github.com/ugorji/binc\n  - cbor:    http://cbor.io http://tools.ietf.org/html/rfc7049\n  - json:    http://json.org http://tools.ietf.org/html/rfc7159\n  - simple:\n\nThis package will carefully use 'package unsafe' for performance reasons in specific places.\nYou can build without unsafe use by passing the safe or appengine tag\ni.e. 'go install -tags=safe ...'. Note that unsafe is only supported for the last 4\ngo releases e.g. current go release is go 1.12, so we support unsafe use only from\ngo 1.9+ . This is because supporting unsafe requires knowledge of implementation details.\n\nFor detailed usage information, read the primer at http://ugorji.net/blog/go-codec-primer .\n\nThe idiomatic Go support is as seen in other encoding packages in\nthe standard library (ie json, xml, gob, etc).\n\nRich Feature Set includes:\n\n  - Simple but extremely powerful and feature-rich API\n  - Support for go1.4 and above, while selectively using newer APIs for later releases\n  - Excellent code coverage ( > 90% )\n  - Very High Performance.\n    Our extensive benchmarks show us outperforming Gob, Json, Bson, etc by 2-4X.\n  - Careful selected use of 'unsafe' for targeted performance gains.\n    100% mode exists where 'unsafe' is not used at all.\n  - Lock-free (sans mutex) concurrency for scaling to 100's of cores\n  - In-place updates during decode, with option to zero value in maps and slices prior to decode\n  - Coerce types where appropriate\n    e.g. decode an int in the stream into a float, decode numbers from formatted strings, etc\n  - Corner Cases:\n    Overflows, nil maps/slices, nil values in streams are handled correctly\n  - Standard field renaming via tags\n  - Support for omitting empty fields during an encoding\n  - Encoding from any value and decoding into pointer to any value\n    (struct, slice, map, primitives, pointers, interface{}, etc)\n  - Extensions to support efficient encoding/decoding of any named types\n  - Support encoding.(Binary|Text)(M|Unm)arshaler interfaces\n  - Support IsZero() bool to determine if a value is a zero value.\n    Analogous to time.Time.IsZero() bool.\n  - Decoding without a schema (into a interface{}).\n    Includes Options to configure what specific map or slice type to use\n    when decoding an encoded list or map into a nil interface{}\n  - Mapping a non-interface type to an interface, so we can decode appropriately\n    into any interface type with a correctly configured non-interface value.\n  - Encode a struct as an array, and decode struct from an array in the data stream\n  - Option to encode struct keys as numbers (instead of strings)\n    (to support structured streams with fields encoded as numeric codes)\n  - Comprehensive support for anonymous fields\n  - Fast (no-reflection) encoding/decoding of common maps and slices\n  - Code-generation for faster performance.\n  - Support binary (e.g. messagepack, cbor) and text (e.g. json) formats\n  - Support indefinite-length formats to enable true streaming\n    (for formats which support it e.g. json, cbor)\n  - Support canonical encoding, where a value is ALWAYS encoded as same sequence of bytes.\n    This mostly applies to maps, where iteration order is non-deterministic.\n  - NIL in data stream decoded as zero value\n  - Never silently skip data when decoding.\n    User decides whether to return an error or silently skip data when keys or indexes\n    in the data stream do not map to fields in the struct.\n  - Detect and error when encoding a cyclic reference (instead of stack overflow shutdown)\n  - Encode/Decode from/to chan types (for iterative streaming support)\n  - Drop-in replacement for encoding/json. `json:` key in struct tag supported.\n  - Provides a RPC Server and Client Codec for net/rpc communication protocol.\n  - Handle unique idiosyncrasies of codecs e.g.\n    - For messagepack, configure how ambiguities in handling raw bytes are resolved\n    - For messagepack, provide rpc server/client codec to support\n      msgpack-rpc protocol defined at:\n      https://github.com/msgpack-rpc/msgpack-rpc/blob/master/spec.md\n\nExtension Support\n\nUsers can register a function to handle the encoding or decoding of\ntheir custom types.\n\nThere are no restrictions on what the custom type can be. Some examples:\n\n    type BisSet   []int\n    type BitSet64 uint64\n    type UUID     string\n    type MyStructWithUnexportedFields struct { a int; b bool; c []int; }\n    type GifImage struct { ... }\n\nAs an illustration, MyStructWithUnexportedFields would normally be\nencoded as an empty map because it has no exported fields, while UUID\nwould be encoded as a string. However, with extension support, you can\nencode any of these however you like.\n\nCustom Encoding and Decoding\n\nThis package maintains symmetry in the encoding and decoding halfs.\nWe determine how to encode or decode by walking this decision tree\n\n  - is type a codec.Selfer?\n  - is there an extension registered for the type?\n  - is format binary, and is type a encoding.BinaryMarshaler and BinaryUnmarshaler?\n  - is format specifically json, and is type a encoding/json.Marshaler and Unmarshaler?\n  - is format text-based, and type an encoding.TextMarshaler and TextUnmarshaler?\n  - else we use a pair of functions based on the \"kind\" of the type e.g. map, slice, int64, etc\n\nThis symmetry is important to reduce chances of issues happening because the\nencoding and decoding sides are out of sync e.g. decoded via very specific\nencoding.TextUnmarshaler but encoded via kind-specific generalized mode.\n\nConsequently, if a type only defines one-half of the symmetry\n(e.g. it implements UnmarshalJSON() but not MarshalJSON() ),\nthen that type doesn't satisfy the check and we will continue walking down the\ndecision tree.\n\nRPC\n\nRPC Client and Server Codecs are implemented, so the codecs can be used\nwith the standard net/rpc package.\n\nUsage\n\nThe Handle is SAFE for concurrent READ, but NOT SAFE for concurrent modification.\n\nThe Encoder and Decoder are NOT safe for concurrent use.\n\nConsequently, the usage model is basically:\n\n    - Create and initialize the Handle before any use.\n      Once created, DO NOT modify it.\n    - Multiple Encoders or Decoders can now use the Handle concurrently.\n      They only read information off the Handle (never write).\n    - However, each Encoder or Decoder MUST not be used concurrently\n    - To re-use an Encoder/Decoder, call Reset(...) on it first.\n      This allows you use state maintained on the Encoder/Decoder.\n\nSample usage model:\n\n    // create and configure Handle\n    var (\n      bh codec.BincHandle\n      mh codec.MsgpackHandle\n      ch codec.CborHandle\n    )\n\n    mh.MapType = reflect.TypeOf(map[string]interface{}(nil))\n\n    // configure extensions\n    // e.g. for msgpack, define functions and enable Time support for tag 1\n    // mh.SetExt(reflect.TypeOf(time.Time{}), 1, myExt)\n\n    // create and use decoder/encoder\n    var (\n      r io.Reader\n      w io.Writer\n      b []byte\n      h = &bh // or mh to use msgpack\n    )\n\n    dec = codec.NewDecoder(r, h)\n    dec = codec.NewDecoderBytes(b, h)\n    err = dec.Decode(&v)\n\n    enc = codec.NewEncoder(w, h)\n    enc = codec.NewEncoderBytes(&b, h)\n    err = enc.Encode(v)\n\n    //RPC Server\n    go func() {\n        for {\n            conn, err := listener.Accept()\n            rpcCodec := codec.GoRpc.ServerCodec(conn, h)\n            //OR rpcCodec := codec.MsgpackSpecRpc.ServerCodec(conn, h)\n            rpc.ServeCodec(rpcCodec)\n        }\n    }()\n\n    //RPC Communication (client side)\n    conn, err = net.Dial(\"tcp\", \"localhost:5555\")\n    rpcCodec := codec.GoRpc.ClientCodec(conn, h)\n    //OR rpcCodec := codec.MsgpackSpecRpc.ClientCodec(conn, h)\n    client := rpc.NewClientWithCodec(rpcCodec)\n\nRunning Tests\n\nTo run tests, use the following:\n\n    go test\n\nTo run the full suite of tests, use the following:\n\n    go test -tags alltests -run Suite\n\nYou can run the tag 'safe' to run tests or build in safe mode. e.g.\n\n    go test -tags safe -run Json\n    go test -tags \"alltests safe\" -run Suite\n\nRunning Benchmarks\n\n    cd bench\n    go test -bench . -benchmem -benchtime 1s\n    \nPlease see http://github.com/ugorji/go-codec-bench .\n\nManaging Binary Size\n\nThis package adds some size to any binary that depends on it.\nThis is because we include an auto-generated file: `fast-path.generated.go`\nto help with performance when encoding/decoding slices and maps of\nbuilt in numeric, boolean, string and interface{} types.\n\nPrior to 2019-05-16, this package could add about 11MB to the size of your binaries.\nWe have now trimmed that in half, and the package contributes about 5.5MB.\n\nYou can override this by building (or running tests and benchmarks)\nwith the tag: `notfastpath`.\n\n    go install -tags notfastpath\n    go build -tags notfastpath\n    go test -tags notfastpath\n\nWith the tag `notfastpath`, we trim that size to about 2.9MB.\n\nBe aware that, at least in our representative microbenchmarks for cbor (for example),\npassing `notfastpath` tag causes up to 33% increase in decoding and\n50% increase in encoding speeds.\nYMMV.\n\nCaveats\n\nStruct fields matching the following are ignored during encoding and decoding\n    - struct tag value set to -\n    - func, complex numbers, unsafe pointers\n    - unexported and not embedded\n    - unexported and embedded and not struct kind\n    - unexported and embedded pointers (from go1.10)\n\nEvery other field in a struct will be encoded/decoded.\n\nEmbedded fields are encoded as if they exist in the top-level struct,\nwith some caveats. See Encode documentation.\n\n*/\npackage codec\n\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/encode.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// defEncByteBufSize is the default size of []byte used\n// for bufio buffer or []byte (when nil passed)\nconst defEncByteBufSize = 1 << 10 // 4:16, 6:64, 8:256, 10:1024\n\nvar errEncoderNotInitialized = errors.New(\"Encoder not initialized\")\n\n/*\n\n// encWriter abstracts writing to a byte array or to an io.Writer.\n//\n//\n// Deprecated: Use encWriterSwitch instead.\ntype encWriter interface {\n\twriteb([]byte)\n\twritestr(string)\n\twriteqstr(string) // write string wrapped in quotes ie \"...\"\n\twriten1(byte)\n\twriten2(byte, byte)\n\tend()\n}\n\n*/\n\n// encDriver abstracts the actual codec (binc vs msgpack, etc)\ntype encDriver interface {\n\tEncodeNil()\n\tEncodeInt(i int64)\n\tEncodeUint(i uint64)\n\tEncodeBool(b bool)\n\tEncodeFloat32(f float32)\n\tEncodeFloat64(f float64)\n\t// encodeExtPreamble(xtag byte, length int)\n\tEncodeRawExt(re *RawExt, e *Encoder)\n\tEncodeExt(v interface{}, xtag uint64, ext Ext, e *Encoder)\n\tEncodeStringEnc(c charEncoding, v string) // c cannot be cRAW\n\t// EncodeSymbol(v string)\n\tEncodeStringBytesRaw(v []byte)\n\tEncodeTime(time.Time)\n\t//encBignum(f *big.Int)\n\t//encStringRunes(c charEncoding, v []rune)\n\tWriteArrayStart(length int)\n\tWriteArrayEnd()\n\tWriteMapStart(length int)\n\tWriteMapEnd()\n\n\treset()\n\tatEndOfEncode()\n}\n\ntype encDriverContainerTracker interface {\n\tWriteArrayElem()\n\tWriteMapElemKey()\n\tWriteMapElemValue()\n}\n\ntype encDriverAsis interface {\n\tEncodeAsis(v []byte)\n}\n\ntype encodeError struct {\n\tcodecError\n}\n\nfunc (e encodeError) Error() string {\n\treturn fmt.Sprintf(\"%s encode error: %v\", e.name, e.err)\n}\n\ntype encDriverNoopContainerWriter struct{}\n\nfunc (encDriverNoopContainerWriter) WriteArrayStart(length int) {}\nfunc (encDriverNoopContainerWriter) WriteArrayEnd()             {}\nfunc (encDriverNoopContainerWriter) WriteMapStart(length int)   {}\nfunc (encDriverNoopContainerWriter) WriteMapEnd()               {}\nfunc (encDriverNoopContainerWriter) atEndOfEncode()             {}\n\n// func (encDriverNoopContainerWriter) WriteArrayElem()            {}\n// func (encDriverNoopContainerWriter) WriteMapElemKey()           {}\n// func (encDriverNoopContainerWriter) WriteMapElemValue()         {}\n\n// type encDriverTrackContainerWriter struct {\n// \tc containerState\n// }\n\n// func (e *encDriverTrackContainerWriter) WriteArrayStart(length int) { e.c = containerArrayStart }\n// func (e *encDriverTrackContainerWriter) WriteArrayElem()            { e.c = containerArrayElem }\n// func (e *encDriverTrackContainerWriter) WriteArrayEnd()             { e.c = containerArrayEnd }\n// func (e *encDriverTrackContainerWriter) WriteMapStart(length int)   { e.c = containerMapStart }\n// func (e *encDriverTrackContainerWriter) WriteMapElemKey()           { e.c = containerMapKey }\n// func (e *encDriverTrackContainerWriter) WriteMapElemValue()         { e.c = containerMapValue }\n// func (e *encDriverTrackContainerWriter) WriteMapEnd()               { e.c = containerMapEnd }\n// func (e *encDriverTrackContainerWriter) atEndOfEncode()             {}\n\n// type ioEncWriterWriter interface {\n// \tWriteByte(c byte) error\n// \tWriteString(s string) (n int, err error)\n// \tWrite(p []byte) (n int, err error)\n// }\n\n// EncodeOptions captures configuration options during encode.\ntype EncodeOptions struct {\n\t// WriterBufferSize is the size of the buffer used when writing.\n\t//\n\t// if > 0, we use a smart buffer internally for performance purposes.\n\tWriterBufferSize int\n\n\t// ChanRecvTimeout is the timeout used when selecting from a chan.\n\t//\n\t// Configuring this controls how we receive from a chan during the encoding process.\n\t//   - If ==0, we only consume the elements currently available in the chan.\n\t//   - if  <0, we consume until the chan is closed.\n\t//   - If  >0, we consume until this timeout.\n\tChanRecvTimeout time.Duration\n\n\t// StructToArray specifies to encode a struct as an array, and not as a map\n\tStructToArray bool\n\n\t// Canonical representation means that encoding a value will always result in the same\n\t// sequence of bytes.\n\t//\n\t// This only affects maps, as the iteration order for maps is random.\n\t//\n\t// The implementation MAY use the natural sort order for the map keys if possible:\n\t//\n\t//     - If there is a natural sort order (ie for number, bool, string or []byte keys),\n\t//       then the map keys are first sorted in natural order and then written\n\t//       with corresponding map values to the strema.\n\t//     - If there is no natural sort order, then the map keys will first be\n\t//       encoded into []byte, and then sorted,\n\t//       before writing the sorted keys and the corresponding map values to the stream.\n\t//\n\tCanonical bool\n\n\t// CheckCircularRef controls whether we check for circular references\n\t// and error fast during an encode.\n\t//\n\t// If enabled, an error is received if a pointer to a struct\n\t// references itself either directly or through one of its fields (iteratively).\n\t//\n\t// This is opt-in, as there may be a performance hit to checking circular references.\n\tCheckCircularRef bool\n\n\t// RecursiveEmptyCheck controls whether we descend into interfaces, structs and pointers\n\t// when checking if a value is empty.\n\t//\n\t// Note that this may make OmitEmpty more expensive, as it incurs a lot more reflect calls.\n\tRecursiveEmptyCheck bool\n\n\t// Raw controls whether we encode Raw values.\n\t// This is a \"dangerous\" option and must be explicitly set.\n\t// If set, we blindly encode Raw values as-is, without checking\n\t// if they are a correct representation of a value in that format.\n\t// If unset, we error out.\n\tRaw bool\n\n\t// StringToRaw controls how strings are encoded.\n\t//\n\t// As a go string is just an (immutable) sequence of bytes,\n\t// it can be encoded either as raw bytes or as a UTF string.\n\t//\n\t// By default, strings are encoded as UTF-8.\n\t// but can be treated as []byte during an encode.\n\t//\n\t// Note that things which we know (by definition) to be UTF-8\n\t// are ALWAYS encoded as UTF-8 strings.\n\t// These include encoding.TextMarshaler, time.Format calls, struct field names, etc.\n\tStringToRaw bool\n\n\t// // AsSymbols defines what should be encoded as symbols.\n\t// //\n\t// // Encoding as symbols can reduce the encoded size significantly.\n\t// //\n\t// // However, during decoding, each string to be encoded as a symbol must\n\t// // be checked to see if it has been seen before. Consequently, encoding time\n\t// // will increase if using symbols, because string comparisons has a clear cost.\n\t// //\n\t// // Sample values:\n\t// //   AsSymbolNone\n\t// //   AsSymbolAll\n\t// //   AsSymbolMapStringKeys\n\t// //   AsSymbolMapStringKeysFlag | AsSymbolStructFieldNameFlag\n\t// AsSymbols AsSymbolFlag\n}\n\n// ---------------------------------------------\n\n/*\n\ntype ioEncStringWriter interface {\n\tWriteString(s string) (n int, err error)\n}\n\n// ioEncWriter implements encWriter and can write to an io.Writer implementation\ntype ioEncWriter struct {\n\tw  io.Writer\n\tww io.Writer\n\tbw io.ByteWriter\n\tsw ioEncStringWriter\n\tfw ioFlusher\n\tb  [8]byte\n}\n\nfunc (z *ioEncWriter) reset(w io.Writer) {\n\tz.w = w\n\tvar ok bool\n\tif z.bw, ok = w.(io.ByteWriter); !ok {\n\t\tz.bw = z\n\t}\n\tif z.sw, ok = w.(ioEncStringWriter); !ok {\n\t\tz.sw = z\n\t}\n\tz.fw, _ = w.(ioFlusher)\n\tz.ww = w\n}\n\nfunc (z *ioEncWriter) WriteByte(b byte) (err error) {\n\tz.b[0] = b\n\t_, err = z.w.Write(z.b[:1])\n\treturn\n}\n\nfunc (z *ioEncWriter) WriteString(s string) (n int, err error) {\n\treturn z.w.Write(bytesView(s))\n}\n\nfunc (z *ioEncWriter) writeb(bs []byte) {\n\tif _, err := z.ww.Write(bs); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (z *ioEncWriter) writestr(s string) {\n\tif _, err := z.sw.WriteString(s); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (z *ioEncWriter) writeqstr(s string) {\n\twritestr(\"\\\"\" + s + \"\\\"\")\n}\n\nfunc (z *ioEncWriter) writen1(b byte) {\n\tif err := z.bw.WriteByte(b); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (z *ioEncWriter) writen2(b1, b2 byte) {\n\tvar err error\n\tif err = z.bw.WriteByte(b1); err == nil {\n\t\tif err = z.bw.WriteByte(b2); err == nil {\n\t\t\treturn\n\t\t}\n\t}\n\tpanic(err)\n}\n\n// func (z *ioEncWriter) writen5(b1, b2, b3, b4, b5 byte) {\n// \tz.b[0], z.b[1], z.b[2], z.b[3], z.b[4] = b1, b2, b3, b4, b5\n// \tif _, err := z.ww.Write(z.b[:5]); err != nil {\n// \t\tpanic(err)\n// \t}\n// }\n\n//go:noinline - so *encWriterSwitch.XXX has the bytesEncAppender.XXX inlined\nfunc (z *ioEncWriter) end() {\n\tif z.fw != nil {\n\t\tif err := z.fw.Flush(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n*/\n\n// ---------------------------------------------\n\n// bufioEncWriter\ntype bufioEncWriter struct {\n\tw io.Writer\n\n\tbuf []byte\n\n\tn int\n\n\t// Extensions can call Encode() within a current Encode() call.\n\t// We need to know when the top level Encode() call returns,\n\t// so we can decide whether to Release() or not.\n\tcalls uint16 // what depth in mustDecode are we in now.\n\n\tsz int // buf size\n\t// _ uint64 // padding (cache-aligned)\n\n\t// ---- cache line\n\n\t// write-most fields below\n\n\t// less used fields\n\tbytesBufPooler\n\n\tb [40]byte // scratch buffer and padding (cache-aligned)\n\t// a int\n\t// b   [4]byte\n\t// err\n}\n\nfunc (z *bufioEncWriter) reset(w io.Writer, bufsize int) {\n\tz.w = w\n\tz.n = 0\n\tz.calls = 0\n\tif bufsize <= 0 {\n\t\tbufsize = defEncByteBufSize\n\t}\n\tz.sz = bufsize\n\tif cap(z.buf) >= bufsize {\n\t\tz.buf = z.buf[:cap(z.buf)]\n\t} else if bufsize <= len(z.b) {\n\t\tz.buf = z.b[:]\n\t} else {\n\t\tz.buf = z.bytesBufPooler.get(bufsize)\n\t\t// z.buf = make([]byte, bufsize)\n\t}\n}\n\nfunc (z *bufioEncWriter) release() {\n\tz.buf = nil\n\tz.bytesBufPooler.end()\n}\n\n//go:noinline - flush only called intermittently\nfunc (z *bufioEncWriter) flushErr() (err error) {\n\tn, err := z.w.Write(z.buf[:z.n])\n\tz.n -= n\n\tif z.n > 0 && err == nil {\n\t\terr = io.ErrShortWrite\n\t}\n\tif n > 0 && z.n > 0 {\n\t\tcopy(z.buf, z.buf[n:z.n+n])\n\t}\n\treturn err\n}\n\nfunc (z *bufioEncWriter) flush() {\n\tif err := z.flushErr(); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (z *bufioEncWriter) writeb(s []byte) {\nLOOP:\n\ta := len(z.buf) - z.n\n\tif len(s) > a {\n\t\tz.n += copy(z.buf[z.n:], s[:a])\n\t\ts = s[a:]\n\t\tz.flush()\n\t\tgoto LOOP\n\t}\n\tz.n += copy(z.buf[z.n:], s)\n}\n\nfunc (z *bufioEncWriter) writestr(s string) {\n\t// z.writeb(bytesView(s)) // inlined below\nLOOP:\n\ta := len(z.buf) - z.n\n\tif len(s) > a {\n\t\tz.n += copy(z.buf[z.n:], s[:a])\n\t\ts = s[a:]\n\t\tz.flush()\n\t\tgoto LOOP\n\t}\n\tz.n += copy(z.buf[z.n:], s)\n}\n\nfunc (z *bufioEncWriter) writeqstr(s string) {\n\t// z.writen1('\"')\n\t// z.writestr(s)\n\t// z.writen1('\"')\n\n\tif z.n+len(s)+2 > len(z.buf) {\n\t\tz.flush()\n\t}\n\tz.buf[z.n] = '\"'\n\tz.n++\nLOOP:\n\ta := len(z.buf) - z.n\n\tif len(s)+1 > a {\n\t\tz.n += copy(z.buf[z.n:], s[:a])\n\t\ts = s[a:]\n\t\tz.flush()\n\t\tgoto LOOP\n\t}\n\tz.n += copy(z.buf[z.n:], s)\n\tz.buf[z.n] = '\"'\n\tz.n++\n}\n\nfunc (z *bufioEncWriter) writen1(b1 byte) {\n\tif 1 > len(z.buf)-z.n {\n\t\tz.flush()\n\t}\n\tz.buf[z.n] = b1\n\tz.n++\n}\n\nfunc (z *bufioEncWriter) writen2(b1, b2 byte) {\n\tif 2 > len(z.buf)-z.n {\n\t\tz.flush()\n\t}\n\tz.buf[z.n+1] = b2\n\tz.buf[z.n] = b1\n\tz.n += 2\n}\n\nfunc (z *bufioEncWriter) endErr() (err error) {\n\tif z.n > 0 {\n\t\terr = z.flushErr()\n\t}\n\treturn\n}\n\n// ---------------------------------------------\n\n// bytesEncAppender implements encWriter and can write to an byte slice.\ntype bytesEncAppender struct {\n\tb   []byte\n\tout *[]byte\n}\n\nfunc (z *bytesEncAppender) writeb(s []byte) {\n\tz.b = append(z.b, s...)\n}\nfunc (z *bytesEncAppender) writestr(s string) {\n\tz.b = append(z.b, s...)\n}\nfunc (z *bytesEncAppender) writeqstr(s string) {\n\t// z.writen1('\"')\n\t// z.writestr(s)\n\t// z.writen1('\"')\n\tz.b = append(append(append(z.b, '\"'), s...), '\"')\n\t// z.b = append(z.b, '\"')\n\t// z.b = append(z.b, s...)\n\t// z.b = append(z.b, '\"')\n}\nfunc (z *bytesEncAppender) writen1(b1 byte) {\n\tz.b = append(z.b, b1)\n}\nfunc (z *bytesEncAppender) writen2(b1, b2 byte) {\n\tz.b = append(z.b, b1, b2)\n}\nfunc (z *bytesEncAppender) endErr() error {\n\t*(z.out) = z.b\n\treturn nil\n}\nfunc (z *bytesEncAppender) reset(in []byte, out *[]byte) {\n\tz.b = in[:0]\n\tz.out = out\n}\n\n// ---------------------------------------------\n\nfunc (e *Encoder) rawExt(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeRawExt(rv2i(rv).(*RawExt), e)\n}\n\nfunc (e *Encoder) ext(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeExt(rv2i(rv), f.xfTag, f.xfFn, e)\n}\n\nfunc (e *Encoder) selferMarshal(f *codecFnInfo, rv reflect.Value) {\n\trv2i(rv).(Selfer).CodecEncodeSelf(e)\n}\n\nfunc (e *Encoder) binaryMarshal(f *codecFnInfo, rv reflect.Value) {\n\tbs, fnerr := rv2i(rv).(encoding.BinaryMarshaler).MarshalBinary()\n\te.marshalRaw(bs, fnerr)\n}\n\nfunc (e *Encoder) textMarshal(f *codecFnInfo, rv reflect.Value) {\n\tbs, fnerr := rv2i(rv).(encoding.TextMarshaler).MarshalText()\n\te.marshalUtf8(bs, fnerr)\n}\n\nfunc (e *Encoder) jsonMarshal(f *codecFnInfo, rv reflect.Value) {\n\tbs, fnerr := rv2i(rv).(jsonMarshaler).MarshalJSON()\n\te.marshalAsis(bs, fnerr)\n}\n\nfunc (e *Encoder) raw(f *codecFnInfo, rv reflect.Value) {\n\te.rawBytes(rv2i(rv).(Raw))\n}\n\nfunc (e *Encoder) kInvalid(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeNil()\n}\n\nfunc (e *Encoder) kErr(f *codecFnInfo, rv reflect.Value) {\n\te.errorf(\"unsupported kind %s, for %#v\", rv.Kind(), rv)\n}\n\nfunc (e *Encoder) kSlice(f *codecFnInfo, rv reflect.Value) {\n\t// array may be non-addressable, so we have to manage with care\n\t//   (don't call rv.Bytes, rv.Slice, etc).\n\t// E.g. type struct S{B [2]byte};\n\t//   Encode(S{}) will bomb on \"panic: slice of unaddressable array\".\n\tif f.seq != seqTypeArray {\n\t\tif rv.IsNil() {\n\t\t\te.e.EncodeNil()\n\t\t\treturn\n\t\t}\n\t\t// If in this method, then there was no extension function defined.\n\t\t// So it's okay to treat as []byte.\n\t\tif f.ti.rtid == uint8SliceTypId {\n\t\t\te.e.EncodeStringBytesRaw(rv.Bytes())\n\t\t\treturn\n\t\t}\n\t}\n\tif f.seq == seqTypeChan && f.ti.chandir&uint8(reflect.RecvDir) == 0 {\n\t\te.errorf(\"send-only channel cannot be encoded\")\n\t}\n\tmbs := f.ti.mbs\n\trtelem := f.ti.elem\n\t// if a slice, array or chan of bytes, treat specially\n\tif !mbs && uint8TypId == rt2id(rtelem) { // NOT rtelem.Kind() == reflect.Uint8\n\t\te.kSliceBytes(rv, f.seq)\n\t\treturn\n\t}\n\n\t// if chan, consume chan into a slice, and work off that slice.\n\tif f.seq == seqTypeChan {\n\t\trvcs := reflect.Zero(reflect.SliceOf(rtelem))\n\t\ttimeout := e.h.ChanRecvTimeout\n\t\tif timeout < 0 { // consume until close\n\t\t\tfor {\n\t\t\t\trecv, recvOk := rv.Recv()\n\t\t\t\tif !recvOk {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\trvcs = reflect.Append(rvcs, recv)\n\t\t\t}\n\t\t} else {\n\t\t\tcases := make([]reflect.SelectCase, 2)\n\t\t\tcases[0] = reflect.SelectCase{Dir: reflect.SelectRecv, Chan: rv}\n\t\t\tif timeout == 0 {\n\t\t\t\tcases[1] = reflect.SelectCase{Dir: reflect.SelectDefault}\n\t\t\t} else {\n\t\t\t\ttt := time.NewTimer(timeout)\n\t\t\t\tcases[1] = reflect.SelectCase{Dir: reflect.SelectRecv, Chan: reflect.ValueOf(tt.C)}\n\t\t\t}\n\t\t\tfor {\n\t\t\t\tchosen, recv, recvOk := reflect.Select(cases)\n\t\t\t\tif chosen == 1 || !recvOk {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\trvcs = reflect.Append(rvcs, recv)\n\t\t\t}\n\t\t}\n\t\trv = rvcs // TODO: ensure this doesn't mess up anywhere that rv of kind chan is expected\n\t}\n\n\tvar l = rv.Len()\n\tif mbs {\n\t\tif l%2 == 1 {\n\t\t\te.errorf(\"mapBySlice requires even slice length, but got %v\", l)\n\t\t\treturn\n\t\t}\n\t\te.mapStart(l / 2)\n\t} else {\n\t\te.arrayStart(l)\n\t}\n\n\tif l > 0 {\n\t\tvar fn *codecFn\n\t\tfor rtelem.Kind() == reflect.Ptr {\n\t\t\trtelem = rtelem.Elem()\n\t\t}\n\t\t// if kind is reflect.Interface, do not pre-determine the\n\t\t// encoding type, because preEncodeValue may break it down to\n\t\t// a concrete type and kInterface will bomb.\n\t\tif rtelem.Kind() != reflect.Interface {\n\t\t\tfn = e.h.fn(rtelem, true, true)\n\t\t}\n\t\tfor j := 0; j < l; j++ {\n\t\t\tif mbs {\n\t\t\t\tif j%2 == 0 {\n\t\t\t\t\te.mapElemKey()\n\t\t\t\t} else {\n\t\t\t\t\te.mapElemValue()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\te.arrayElem()\n\t\t\t}\n\t\t\te.encodeValue(rv.Index(j), fn, true)\n\t\t}\n\t}\n\n\tif mbs {\n\t\te.mapEnd()\n\t} else {\n\t\te.arrayEnd()\n\t}\n}\n\nfunc (e *Encoder) kSliceBytes(rv reflect.Value, seq seqType) {\n\t// xdebugf(\"kSliceBytes: seq: %d, rvType: %v\", seq, rv.Type())\n\tswitch seq {\n\tcase seqTypeSlice:\n\t\te.e.EncodeStringBytesRaw(rv.Bytes())\n\tcase seqTypeArray:\n\t\tvar l = rv.Len()\n\t\tif rv.CanAddr() {\n\t\t\te.e.EncodeStringBytesRaw(rv.Slice(0, l).Bytes())\n\t\t} else {\n\t\t\tvar bs []byte\n\t\t\tif l <= cap(e.b) {\n\t\t\t\tbs = e.b[:l]\n\t\t\t} else {\n\t\t\t\tbs = make([]byte, l)\n\t\t\t}\n\t\t\treflect.Copy(reflect.ValueOf(bs), rv)\n\t\t\te.e.EncodeStringBytesRaw(bs)\n\t\t}\n\tcase seqTypeChan:\n\t\t// do not use range, so that the number of elements encoded\n\t\t// does not change, and encoding does not hang waiting on someone to close chan.\n\t\t// for b := range rv2i(rv).(<-chan byte) { bs = append(bs, b) }\n\t\t// ch := rv2i(rv).(<-chan byte) // fix error - that this is a chan byte, not a <-chan byte.\n\n\t\tif rv.IsNil() {\n\t\t\te.e.EncodeNil()\n\t\t\tbreak\n\t\t}\n\t\tbs := e.b[:0]\n\t\tirv := rv2i(rv)\n\t\tch, ok := irv.(<-chan byte)\n\t\tif !ok {\n\t\t\tch = irv.(chan byte)\n\t\t}\n\n\tL1:\n\t\tswitch timeout := e.h.ChanRecvTimeout; {\n\t\tcase timeout == 0: // only consume available\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase b := <-ch:\n\t\t\t\t\tbs = append(bs, b)\n\t\t\t\tdefault:\n\t\t\t\t\tbreak L1\n\t\t\t\t}\n\t\t\t}\n\t\tcase timeout > 0: // consume until timeout\n\t\t\ttt := time.NewTimer(timeout)\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase b := <-ch:\n\t\t\t\t\tbs = append(bs, b)\n\t\t\t\tcase <-tt.C:\n\t\t\t\t\t// close(tt.C)\n\t\t\t\t\tbreak L1\n\t\t\t\t}\n\t\t\t}\n\t\tdefault: // consume until close\n\t\t\tfor b := range ch {\n\t\t\t\tbs = append(bs, b)\n\t\t\t}\n\t\t}\n\n\t\te.e.EncodeStringBytesRaw(bs)\n\t}\n}\n\nfunc (e *Encoder) kStructNoOmitempty(f *codecFnInfo, rv reflect.Value) {\n\tsfn := structFieldNode{v: rv, update: false}\n\tif f.ti.toArray || e.h.StructToArray { // toArray\n\t\te.arrayStart(len(f.ti.sfiSrc))\n\t\tfor _, si := range f.ti.sfiSrc {\n\t\t\te.arrayElem()\n\t\t\te.encodeValue(sfn.field(si), nil, true)\n\t\t}\n\t\te.arrayEnd()\n\t} else {\n\t\te.mapStart(len(f.ti.sfiSort))\n\t\tfor _, si := range f.ti.sfiSort {\n\t\t\te.mapElemKey()\n\t\t\te.kStructFieldKey(f.ti.keyType, si.encNameAsciiAlphaNum, si.encName)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(sfn.field(si), nil, true)\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) kStructFieldKey(keyType valueType, encNameAsciiAlphaNum bool, encName string) {\n\tencStructFieldKey(encName, e.e, e.w(), keyType, encNameAsciiAlphaNum, e.js)\n}\n\nfunc (e *Encoder) kStruct(f *codecFnInfo, rv reflect.Value) {\n\tvar newlen int\n\ttoMap := !(f.ti.toArray || e.h.StructToArray)\n\tvar mf map[string]interface{}\n\tif f.ti.mf {\n\t\tmf = rv2i(rv).(MissingFielder).CodecMissingFields()\n\t\ttoMap = true\n\t\tnewlen += len(mf)\n\t} else if f.ti.mfp {\n\t\tif rv.CanAddr() {\n\t\t\tmf = rv2i(rv.Addr()).(MissingFielder).CodecMissingFields()\n\t\t} else {\n\t\t\t// make a new addressable value of same one, and use it\n\t\t\trv2 := reflect.New(rv.Type())\n\t\t\trv2.Elem().Set(rv)\n\t\t\tmf = rv2i(rv2).(MissingFielder).CodecMissingFields()\n\t\t}\n\t\ttoMap = true\n\t\tnewlen += len(mf)\n\t}\n\tnewlen += len(f.ti.sfiSrc)\n\n\t// Use sync.Pool to reduce allocating slices unnecessarily.\n\t// The cost of sync.Pool is less than the cost of new allocation.\n\t//\n\t// Each element of the array pools one of encStructPool(8|16|32|64).\n\t// It allows the re-use of slices up to 64 in length.\n\t// A performance cost of encoding structs was collecting\n\t// which values were empty and should be omitted.\n\t// We needed slices of reflect.Value and string to collect them.\n\t// This shared pool reduces the amount of unnecessary creation we do.\n\t// The cost is that of locking sometimes, but sync.Pool is efficient\n\t// enough to reduce thread contention.\n\n\t// fmt.Printf(\">>>>>>>>>>>>>> encode.kStruct: newlen: %d\\n\", newlen)\n\tvar spool sfiRvPooler\n\tvar fkvs = spool.get(newlen)\n\n\trecur := e.h.RecursiveEmptyCheck\n\tsfn := structFieldNode{v: rv, update: false}\n\n\tvar kv sfiRv\n\tvar j int\n\tif toMap {\n\t\tnewlen = 0\n\t\tfor _, si := range f.ti.sfiSort { // use sorted array\n\t\t\t// kv.r = si.field(rv, false)\n\t\t\tkv.r = sfn.field(si)\n\t\t\tif si.omitEmpty() && isEmptyValue(kv.r, e.h.TypeInfos, recur, recur) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tkv.v = si // si.encName\n\t\t\tfkvs[newlen] = kv\n\t\t\tnewlen++\n\t\t}\n\t\tvar mflen int\n\t\tfor k, v := range mf {\n\t\t\tif k == \"\" {\n\t\t\t\tdelete(mf, k)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif f.ti.infoFieldOmitempty && isEmptyValue(reflect.ValueOf(v), e.h.TypeInfos, recur, recur) {\n\t\t\t\tdelete(mf, k)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmflen++\n\t\t}\n\t\t// encode it all\n\t\te.mapStart(newlen + mflen)\n\t\tfor j = 0; j < newlen; j++ {\n\t\t\tkv = fkvs[j]\n\t\t\te.mapElemKey()\n\t\t\te.kStructFieldKey(f.ti.keyType, kv.v.encNameAsciiAlphaNum, kv.v.encName)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(kv.r, nil, true)\n\t\t}\n\t\t// now, add the others\n\t\tfor k, v := range mf {\n\t\t\te.mapElemKey()\n\t\t\te.kStructFieldKey(f.ti.keyType, false, k)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v)\n\t\t}\n\t\te.mapEnd()\n\t} else {\n\t\tnewlen = len(f.ti.sfiSrc)\n\t\t// kv.v = nil\n\t\tfor i, si := range f.ti.sfiSrc { // use unsorted array (to match sequence in struct)\n\t\t\t// kv.r = si.field(rv, false)\n\t\t\tkv.r = sfn.field(si)\n\t\t\t// use the zero value.\n\t\t\t// if a reference or struct, set to nil (so you do not output too much)\n\t\t\tif si.omitEmpty() && isEmptyValue(kv.r, e.h.TypeInfos, recur, recur) {\n\t\t\t\tswitch kv.r.Kind() {\n\t\t\t\tcase reflect.Struct, reflect.Interface, reflect.Ptr, reflect.Array, reflect.Map, reflect.Slice:\n\t\t\t\t\tkv.r = reflect.Value{} //encode as nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tfkvs[i] = kv\n\t\t}\n\t\t// encode it all\n\t\te.arrayStart(newlen)\n\t\tfor j = 0; j < newlen; j++ {\n\t\t\te.arrayElem()\n\t\t\te.encodeValue(fkvs[j].r, nil, true)\n\t\t}\n\t\te.arrayEnd()\n\t}\n\n\t// do not use defer. Instead, use explicit pool return at end of function.\n\t// defer has a cost we are trying to avoid.\n\t// If there is a panic and these slices are not returned, it is ok.\n\tspool.end()\n}\n\nfunc (e *Encoder) kMap(f *codecFnInfo, rv reflect.Value) {\n\tif rv.IsNil() {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\n\tl := rv.Len()\n\te.mapStart(l)\n\tif l == 0 {\n\t\te.mapEnd()\n\t\treturn\n\t}\n\t// var asSymbols bool\n\t// determine the underlying key and val encFn's for the map.\n\t// This eliminates some work which is done for each loop iteration i.e.\n\t// rv.Type(), ref.ValueOf(rt).Pointer(), then check map/list for fn.\n\t//\n\t// However, if kind is reflect.Interface, do not pre-determine the\n\t// encoding type, because preEncodeValue may break it down to\n\t// a concrete type and kInterface will bomb.\n\tvar keyFn, valFn *codecFn\n\trtval := f.ti.elem\n\t// rtkeyid := rt2id(f.ti.key)\n\tfor rtval.Kind() == reflect.Ptr {\n\t\trtval = rtval.Elem()\n\t}\n\tif rtval.Kind() != reflect.Interface {\n\t\tvalFn = e.h.fn(rtval, true, true)\n\t}\n\tmks := rv.MapKeys()\n\n\tif e.h.Canonical {\n\t\te.kMapCanonical(f.ti.key, rv, mks, valFn)\n\t\te.mapEnd()\n\t\treturn\n\t}\n\n\trtkey := f.ti.key\n\tvar keyTypeIsString = stringTypId == rt2id(rtkey) // rtkeyid\n\tif !keyTypeIsString {\n\t\tfor rtkey.Kind() == reflect.Ptr {\n\t\t\trtkey = rtkey.Elem()\n\t\t}\n\t\tif rtkey.Kind() != reflect.Interface {\n\t\t\t// rtkeyid = rt2id(rtkey)\n\t\t\tkeyFn = e.h.fn(rtkey, true, true)\n\t\t}\n\t}\n\n\t// for j, lmks := 0, len(mks); j < lmks; j++ {\n\tfor j := range mks {\n\t\te.mapElemKey()\n\t\tif keyTypeIsString {\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(mks[j].String()))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, mks[j].String())\n\t\t\t}\n\t\t} else {\n\t\t\te.encodeValue(mks[j], keyFn, true)\n\t\t}\n\t\te.mapElemValue()\n\t\te.encodeValue(rv.MapIndex(mks[j]), valFn, true)\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) kMapCanonical(rtkey reflect.Type, rv reflect.Value, mks []reflect.Value, valFn *codecFn) {\n\t// we previously did out-of-band if an extension was registered.\n\t// This is not necessary, as the natural kind is sufficient for ordering.\n\n\tswitch rtkey.Kind() {\n\tcase reflect.Bool:\n\t\tmksv := make([]boolRv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksv[i]\n\t\t\tv.r = k\n\t\t\tv.v = k.Bool()\n\t\t}\n\t\tsort.Sort(boolRvSlice(mksv))\n\t\tfor i := range mksv {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeBool(mksv[i].v)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t}\n\tcase reflect.String:\n\t\tmksv := make([]stringRv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksv[i]\n\t\t\tv.r = k\n\t\t\tv.v = k.String()\n\t\t}\n\t\tsort.Sort(stringRvSlice(mksv))\n\t\tfor i := range mksv {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(mksv[i].v))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, mksv[i].v)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t}\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint, reflect.Uintptr:\n\t\tmksv := make([]uint64Rv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksv[i]\n\t\t\tv.r = k\n\t\t\tv.v = k.Uint()\n\t\t}\n\t\tsort.Sort(uint64RvSlice(mksv))\n\t\tfor i := range mksv {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(mksv[i].v)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t}\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tmksv := make([]int64Rv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksv[i]\n\t\t\tv.r = k\n\t\t\tv.v = k.Int()\n\t\t}\n\t\tsort.Sort(int64RvSlice(mksv))\n\t\tfor i := range mksv {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(mksv[i].v)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t}\n\tcase reflect.Float32:\n\t\tmksv := make([]float64Rv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksv[i]\n\t\t\tv.r = k\n\t\t\tv.v = k.Float()\n\t\t}\n\t\tsort.Sort(float64RvSlice(mksv))\n\t\tfor i := range mksv {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeFloat32(float32(mksv[i].v))\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t}\n\tcase reflect.Float64:\n\t\tmksv := make([]float64Rv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksv[i]\n\t\t\tv.r = k\n\t\t\tv.v = k.Float()\n\t\t}\n\t\tsort.Sort(float64RvSlice(mksv))\n\t\tfor i := range mksv {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeFloat64(mksv[i].v)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t}\n\tcase reflect.Struct:\n\t\tif rv.Type() == timeTyp {\n\t\t\tmksv := make([]timeRv, len(mks))\n\t\t\tfor i, k := range mks {\n\t\t\t\tv := &mksv[i]\n\t\t\t\tv.r = k\n\t\t\t\tv.v = rv2i(k).(time.Time)\n\t\t\t}\n\t\t\tsort.Sort(timeRvSlice(mksv))\n\t\t\tfor i := range mksv {\n\t\t\t\te.mapElemKey()\n\t\t\t\te.e.EncodeTime(mksv[i].v)\n\t\t\t\te.mapElemValue()\n\t\t\t\te.encodeValue(rv.MapIndex(mksv[i].r), valFn, true)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\tdefault:\n\t\t// out-of-band\n\t\t// first encode each key to a []byte first, then sort them, then record\n\t\tvar mksv []byte = make([]byte, 0, len(mks)*16) // temporary byte slice for the encoding\n\t\te2 := NewEncoderBytes(&mksv, e.hh)\n\t\tmksbv := make([]bytesRv, len(mks))\n\t\tfor i, k := range mks {\n\t\t\tv := &mksbv[i]\n\t\t\tl := len(mksv)\n\t\t\te2.MustEncode(k)\n\t\t\tv.r = k\n\t\t\tv.v = mksv[l:]\n\t\t}\n\t\tsort.Sort(bytesRvSlice(mksbv))\n\t\tfor j := range mksbv {\n\t\t\te.mapElemKey()\n\t\t\te.asis(mksbv[j].v)\n\t\t\te.mapElemValue()\n\t\t\te.encodeValue(rv.MapIndex(mksbv[j].r), valFn, true)\n\t\t}\n\t}\n}\n\n// // --------------------------------------------------\n\ntype encWriterSwitch struct {\n\tesep  bool // whether it has elem separators\n\tbytes bool // encoding to []byte\n\tisas  bool // whether e.as != nil\n\tjs    bool // is json encoder?\n\tbe    bool // is binary encoder?\n\n\tc containerState\n\t// _    [3]byte // padding\n\t// _    [2]uint64 // padding\n\t// _    uint64    // padding\n\t// wi   *ioEncWriter\n\twb bytesEncAppender\n\twf *bufioEncWriter\n\t// typ  entryType\n}\n\nfunc (z *encWriterSwitch) writeb(s []byte) {\n\tif z.bytes {\n\t\tz.wb.writeb(s)\n\t} else {\n\t\tz.wf.writeb(s)\n\t}\n}\nfunc (z *encWriterSwitch) writeqstr(s string) {\n\tif z.bytes {\n\t\tz.wb.writeqstr(s)\n\t} else {\n\t\tz.wf.writeqstr(s)\n\t}\n}\nfunc (z *encWriterSwitch) writestr(s string) {\n\tif z.bytes {\n\t\tz.wb.writestr(s)\n\t} else {\n\t\tz.wf.writestr(s)\n\t}\n}\nfunc (z *encWriterSwitch) writen1(b1 byte) {\n\tif z.bytes {\n\t\tz.wb.writen1(b1)\n\t} else {\n\t\tz.wf.writen1(b1)\n\t}\n}\nfunc (z *encWriterSwitch) writen2(b1, b2 byte) {\n\tif z.bytes {\n\t\tz.wb.writen2(b1, b2)\n\t} else {\n\t\tz.wf.writen2(b1, b2)\n\t}\n}\nfunc (z *encWriterSwitch) endErr() error {\n\tif z.bytes {\n\t\treturn z.wb.endErr()\n\t}\n\treturn z.wf.endErr()\n}\n\nfunc (z *encWriterSwitch) end() {\n\tif err := z.endErr(); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n/*\n\n// ------------------------------------------\nfunc (z *encWriterSwitch) writeb(s []byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.wb.writeb(s)\n\tcase entryTypeIo:\n\t\tz.wi.writeb(s)\n\tdefault:\n\t\tz.wf.writeb(s)\n\t}\n}\nfunc (z *encWriterSwitch) writestr(s string) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.wb.writestr(s)\n\tcase entryTypeIo:\n\t\tz.wi.writestr(s)\n\tdefault:\n\t\tz.wf.writestr(s)\n\t}\n}\nfunc (z *encWriterSwitch) writen1(b1 byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.wb.writen1(b1)\n\tcase entryTypeIo:\n\t\tz.wi.writen1(b1)\n\tdefault:\n\t\tz.wf.writen1(b1)\n\t}\n}\nfunc (z *encWriterSwitch) writen2(b1, b2 byte) {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.wb.writen2(b1, b2)\n\tcase entryTypeIo:\n\t\tz.wi.writen2(b1, b2)\n\tdefault:\n\t\tz.wf.writen2(b1, b2)\n\t}\n}\nfunc (z *encWriterSwitch) end() {\n\tswitch z.typ {\n\tcase entryTypeBytes:\n\t\tz.wb.end()\n\tcase entryTypeIo:\n\t\tz.wi.end()\n\tdefault:\n\t\tz.wf.end()\n\t}\n}\n\n// ------------------------------------------\nfunc (z *encWriterSwitch) writeb(s []byte) {\n\tif z.bytes {\n\t\tz.wb.writeb(s)\n\t} else {\n\t\tz.wi.writeb(s)\n\t}\n}\nfunc (z *encWriterSwitch) writestr(s string) {\n\tif z.bytes {\n\t\tz.wb.writestr(s)\n\t} else {\n\t\tz.wi.writestr(s)\n\t}\n}\nfunc (z *encWriterSwitch) writen1(b1 byte) {\n\tif z.bytes {\n\t\tz.wb.writen1(b1)\n\t} else {\n\t\tz.wi.writen1(b1)\n\t}\n}\nfunc (z *encWriterSwitch) writen2(b1, b2 byte) {\n\tif z.bytes {\n\t\tz.wb.writen2(b1, b2)\n\t} else {\n\t\tz.wi.writen2(b1, b2)\n\t}\n}\nfunc (z *encWriterSwitch) end() {\n\tif z.bytes {\n\t\tz.wb.end()\n\t} else {\n\t\tz.wi.end()\n\t}\n}\n\n*/\n\n// Encoder writes an object to an output stream in a supported format.\n//\n// Encoder is NOT safe for concurrent use i.e. a Encoder cannot be used\n// concurrently in multiple goroutines.\n//\n// However, as Encoder could be allocation heavy to initialize, a Reset method is provided\n// so its state can be reused to decode new input streams repeatedly.\n// This is the idiomatic way to use.\ntype Encoder struct {\n\tpanicHdl\n\t// hopefully, reduce derefencing cost by laying the encWriter inside the Encoder\n\te encDriver\n\n\t// NOTE: Encoder shouldn't call it's write methods,\n\t// as the handler MAY need to do some coordination.\n\t// w *encWriterSwitch\n\n\t// bw *bufio.Writer\n\tas encDriverAsis\n\n\tjenc *jsonEncDriver\n\th    *BasicHandle\n\thh   Handle\n\n\t// ---- cpu cache line boundary\n\tencWriterSwitch\n\n\terr error\n\n\t// ---- cpu cache line boundary\n\t// ---- writable fields during execution --- *try* to keep in sep cache line\n\tci    set        // holds set of addresses found during an encoding (if CheckCircularRef=true)\n\tcidef [1]uintptr // default ci\n\n\tb [(4 * 8)]byte // for encoding chan byte, (non-addressable) [N]byte, etc\n\n\t// ---- cpu cache line boundary?\n\t// b [scratchByteArrayLen]byte\n\t// _ [cacheLineSize - scratchByteArrayLen]byte // padding\n\t// b [cacheLineSize - (8 * 0)]byte // used for encoding a chan or (non-addressable) array of bytes\n}\n\n// NewEncoder returns an Encoder for encoding into an io.Writer.\n//\n// For efficiency, Users are encouraged to configure WriterBufferSize on the handle\n// OR pass in a memory buffered writer (eg bufio.Writer, bytes.Buffer).\nfunc NewEncoder(w io.Writer, h Handle) *Encoder {\n\te := newEncoder(h)\n\te.Reset(w)\n\treturn e\n}\n\n// NewEncoderBytes returns an encoder for encoding directly and efficiently\n// into a byte slice, using zero-copying to temporary slices.\n//\n// It will potentially replace the output byte slice pointed to.\n// After encoding, the out parameter contains the encoded contents.\nfunc NewEncoderBytes(out *[]byte, h Handle) *Encoder {\n\te := newEncoder(h)\n\te.ResetBytes(out)\n\treturn e\n}\n\nfunc newEncoder(h Handle) *Encoder {\n\te := &Encoder{h: basicHandle(h), err: errEncoderNotInitialized}\n\te.bytes = true\n\tif useFinalizers {\n\t\truntime.SetFinalizer(e, (*Encoder).finalize)\n\t\t// xdebugf(\">>>> new(Encoder) with finalizer\")\n\t}\n\t// e.w = &e.encWriterSwitch\n\te.hh = h\n\te.esep = h.hasElemSeparators()\n\n\treturn e\n}\n\nfunc (e *Encoder) w() *encWriterSwitch {\n\treturn &e.encWriterSwitch\n}\n\nfunc (e *Encoder) resetCommon() {\n\t// e.w = &e.encWriterSwitch\n\tif e.e == nil || e.hh.recreateEncDriver(e.e) {\n\t\te.e = e.hh.newEncDriver(e)\n\t\te.as, e.isas = e.e.(encDriverAsis)\n\t\t// e.cr, _ = e.e.(containerStateRecv)\n\t}\n\n\tif e.ci == nil {\n\t\te.ci = (set)(e.cidef[:0])\n\t} else {\n\t\te.ci = e.ci[:0]\n\t}\n\n\te.be = e.hh.isBinary()\n\te.jenc = nil\n\t_, e.js = e.hh.(*JsonHandle)\n\tif e.js {\n\t\te.jenc = e.e.(interface{ getJsonEncDriver() *jsonEncDriver }).getJsonEncDriver()\n\t}\n\te.e.reset()\n\te.c = 0\n\te.err = nil\n}\n\n// Reset resets the Encoder with a new output stream.\n//\n// This accommodates using the state of the Encoder,\n// where it has \"cached\" information about sub-engines.\nfunc (e *Encoder) Reset(w io.Writer) {\n\tif w == nil {\n\t\treturn\n\t}\n\t// var ok bool\n\te.bytes = false\n\tif e.wf == nil {\n\t\te.wf = new(bufioEncWriter)\n\t}\n\t// e.typ = entryTypeUnset\n\t// if e.h.WriterBufferSize > 0 {\n\t// \t// bw := bufio.NewWriterSize(w, e.h.WriterBufferSize)\n\t// \t// e.wi.bw = bw\n\t// \t// e.wi.sw = bw\n\t// \t// e.wi.fw = bw\n\t// \t// e.wi.ww = bw\n\t// \tif e.wf == nil {\n\t// \t\te.wf = new(bufioEncWriter)\n\t// \t}\n\t// \te.wf.reset(w, e.h.WriterBufferSize)\n\t// \te.typ = entryTypeBufio\n\t// } else {\n\t// \tif e.wi == nil {\n\t// \t\te.wi = new(ioEncWriter)\n\t// \t}\n\t// \te.wi.reset(w)\n\t// \te.typ = entryTypeIo\n\t// }\n\te.wf.reset(w, e.h.WriterBufferSize)\n\t// e.typ = entryTypeBufio\n\n\t// e.w = e.wi\n\te.resetCommon()\n}\n\n// ResetBytes resets the Encoder with a new destination output []byte.\nfunc (e *Encoder) ResetBytes(out *[]byte) {\n\tif out == nil {\n\t\treturn\n\t}\n\tvar in []byte = *out\n\tif in == nil {\n\t\tin = make([]byte, defEncByteBufSize)\n\t}\n\te.bytes = true\n\t// e.typ = entryTypeBytes\n\te.wb.reset(in, out)\n\t// e.w = &e.wb\n\te.resetCommon()\n}\n\n// Encode writes an object into a stream.\n//\n// Encoding can be configured via the struct tag for the fields.\n// The key (in the struct tags) that we look at is configurable.\n//\n// By default, we look up the \"codec\" key in the struct field's tags,\n// and fall bak to the \"json\" key if \"codec\" is absent.\n// That key in struct field's tag value is the key name,\n// followed by an optional comma and options.\n//\n// To set an option on all fields (e.g. omitempty on all fields), you\n// can create a field called _struct, and set flags on it. The options\n// which can be set on _struct are:\n//    - omitempty: so all fields are omitted if empty\n//    - toarray: so struct is encoded as an array\n//    - int: so struct key names are encoded as signed integers (instead of strings)\n//    - uint: so struct key names are encoded as unsigned integers (instead of strings)\n//    - float: so struct key names are encoded as floats (instead of strings)\n// More details on these below.\n//\n// Struct values \"usually\" encode as maps. Each exported struct field is encoded unless:\n//    - the field's tag is \"-\", OR\n//    - the field is empty (empty or the zero value) and its tag specifies the \"omitempty\" option.\n//\n// When encoding as a map, the first string in the tag (before the comma)\n// is the map key string to use when encoding.\n// ...\n// This key is typically encoded as a string.\n// However, there are instances where the encoded stream has mapping keys encoded as numbers.\n// For example, some cbor streams have keys as integer codes in the stream, but they should map\n// to fields in a structured object. Consequently, a struct is the natural representation in code.\n// For these, configure the struct to encode/decode the keys as numbers (instead of string).\n// This is done with the int,uint or float option on the _struct field (see above).\n//\n// However, struct values may encode as arrays. This happens when:\n//    - StructToArray Encode option is set, OR\n//    - the tag on the _struct field sets the \"toarray\" option\n// Note that omitempty is ignored when encoding struct values as arrays,\n// as an entry must be encoded for each field, to maintain its position.\n//\n// Values with types that implement MapBySlice are encoded as stream maps.\n//\n// The empty values (for omitempty option) are false, 0, any nil pointer\n// or interface value, and any array, slice, map, or string of length zero.\n//\n// Anonymous fields are encoded inline except:\n//    - the struct tag specifies a replacement name (first value)\n//    - the field is of an interface type\n//\n// Examples:\n//\n//      // NOTE: 'json:' can be used as struct tag key, in place 'codec:' below.\n//      type MyStruct struct {\n//          _struct bool    `codec:\",omitempty\"`   //set omitempty for every field\n//          Field1 string   `codec:\"-\"`            //skip this field\n//          Field2 int      `codec:\"myName\"`       //Use key \"myName\" in encode stream\n//          Field3 int32    `codec:\",omitempty\"`   //use key \"Field3\". Omit if empty.\n//          Field4 bool     `codec:\"f4,omitempty\"` //use key \"f4\". Omit if empty.\n//          io.Reader                              //use key \"Reader\".\n//          MyStruct        `codec:\"my1\"           //use key \"my1\".\n//          MyStruct                               //inline it\n//          ...\n//      }\n//\n//      type MyStruct struct {\n//          _struct bool    `codec:\",toarray\"`     //encode struct as an array\n//      }\n//\n//      type MyStruct struct {\n//          _struct bool    `codec:\",uint\"`        //encode struct with \"unsigned integer\" keys\n//          Field1 string   `codec:\"1\"`            //encode Field1 key using: EncodeInt(1)\n//          Field2 string   `codec:\"2\"`            //encode Field2 key using: EncodeInt(2)\n//      }\n//\n// The mode of encoding is based on the type of the value. When a value is seen:\n//   - If a Selfer, call its CodecEncodeSelf method\n//   - If an extension is registered for it, call that extension function\n//   - If implements encoding.(Binary|Text|JSON)Marshaler, call Marshal(Binary|Text|JSON) method\n//   - Else encode it based on its reflect.Kind\n//\n// Note that struct field names and keys in map[string]XXX will be treated as symbols.\n// Some formats support symbols (e.g. binc) and will properly encode the string\n// only once in the stream, and use a tag to refer to it thereafter.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\t// tried to use closure, as runtime optimizes defer with no params.\n\t// This seemed to be causing weird issues (like circular reference found, unexpected panic, etc).\n\t// Also, see https://github.com/golang/go/issues/14939#issuecomment-417836139\n\t// defer func() { e.deferred(&err) }() }\n\t// { x, y := e, &err; defer func() { x.deferred(y) }() }\n\tif e.err != nil {\n\t\treturn e.err\n\t}\n\tif recoverPanicToErr {\n\t\tdefer func() {\n\t\t\t// if error occurred during encoding, return that error;\n\t\t\t// else if error occurred on end'ing (i.e. during flush), return that error.\n\t\t\terr = e.w().endErr()\n\t\t\tx := recover()\n\t\t\tif x == nil {\n\t\t\t\tif e.err != err {\n\t\t\t\t\te.err = err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpanicValToErr(e, x, &e.err)\n\t\t\t\tif e.err != err {\n\t\t\t\t\terr = e.err\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\t// defer e.deferred(&err)\n\te.mustEncode(v)\n\treturn\n}\n\n// MustEncode is like Encode, but panics if unable to Encode.\n// This provides insight to the code location that triggered the error.\nfunc (e *Encoder) MustEncode(v interface{}) {\n\tif e.err != nil {\n\t\tpanic(e.err)\n\t}\n\te.mustEncode(v)\n}\n\nfunc (e *Encoder) mustEncode(v interface{}) {\n\tif e.wf == nil {\n\t\te.encode(v)\n\t\te.e.atEndOfEncode()\n\t\te.w().end()\n\t\treturn\n\t}\n\n\tif e.wf.buf == nil {\n\t\te.wf.buf = e.wf.bytesBufPooler.get(e.wf.sz)\n\t}\n\te.wf.calls++\n\n\te.encode(v)\n\n\te.wf.calls--\n\n\tif e.wf.calls == 0 {\n\t\te.e.atEndOfEncode()\n\t\te.w().end()\n\t\tif !e.h.ExplicitRelease {\n\t\t\te.wf.release()\n\t\t}\n\t}\n}\n\n// func (e *Encoder) deferred(err1 *error) {\n// \te.w().end()\n// \tif recoverPanicToErr {\n// \t\tif x := recover(); x != nil {\n// \t\t\tpanicValToErr(e, x, err1)\n// \t\t\tpanicValToErr(e, x, &e.err)\n// \t\t}\n// \t}\n// }\n\n//go:noinline -- as it is run by finalizer\nfunc (e *Encoder) finalize() {\n\t// xdebugf(\"finalizing Encoder\")\n\te.Release()\n}\n\n// Release releases shared (pooled) resources.\n//\n// It is important to call Release() when done with an Encoder, so those resources\n// are released instantly for use by subsequently created Encoders.\nfunc (e *Encoder) Release() {\n\tif e.wf != nil {\n\t\te.wf.release()\n\t}\n}\n\nfunc (e *Encoder) encode(iv interface{}) {\n\t// a switch with only concrete types can be optimized.\n\t// consequently, we deal with nil and interfaces outside the switch.\n\n\tif iv == nil || definitelyNil(iv) {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\n\tswitch v := iv.(type) {\n\t// case nil:\n\t// case Selfer:\n\tcase Raw:\n\t\te.rawBytes(v)\n\tcase reflect.Value:\n\t\te.encodeValue(v, nil, true)\n\n\tcase string:\n\t\tif e.h.StringToRaw {\n\t\t\te.e.EncodeStringBytesRaw(bytesView(v))\n\t\t} else {\n\t\t\te.e.EncodeStringEnc(cUTF8, v)\n\t\t}\n\tcase bool:\n\t\te.e.EncodeBool(v)\n\tcase int:\n\t\te.e.EncodeInt(int64(v))\n\tcase int8:\n\t\te.e.EncodeInt(int64(v))\n\tcase int16:\n\t\te.e.EncodeInt(int64(v))\n\tcase int32:\n\t\te.e.EncodeInt(int64(v))\n\tcase int64:\n\t\te.e.EncodeInt(v)\n\tcase uint:\n\t\te.e.EncodeUint(uint64(v))\n\tcase uint8:\n\t\te.e.EncodeUint(uint64(v))\n\tcase uint16:\n\t\te.e.EncodeUint(uint64(v))\n\tcase uint32:\n\t\te.e.EncodeUint(uint64(v))\n\tcase uint64:\n\t\te.e.EncodeUint(v)\n\tcase uintptr:\n\t\te.e.EncodeUint(uint64(v))\n\tcase float32:\n\t\te.e.EncodeFloat32(v)\n\tcase float64:\n\t\te.e.EncodeFloat64(v)\n\tcase time.Time:\n\t\te.e.EncodeTime(v)\n\tcase []uint8:\n\t\te.e.EncodeStringBytesRaw(v)\n\n\tcase *Raw:\n\t\te.rawBytes(*v)\n\n\tcase *string:\n\t\tif e.h.StringToRaw {\n\t\t\te.e.EncodeStringBytesRaw(bytesView(*v))\n\t\t} else {\n\t\t\te.e.EncodeStringEnc(cUTF8, *v)\n\t\t}\n\tcase *bool:\n\t\te.e.EncodeBool(*v)\n\tcase *int:\n\t\te.e.EncodeInt(int64(*v))\n\tcase *int8:\n\t\te.e.EncodeInt(int64(*v))\n\tcase *int16:\n\t\te.e.EncodeInt(int64(*v))\n\tcase *int32:\n\t\te.e.EncodeInt(int64(*v))\n\tcase *int64:\n\t\te.e.EncodeInt(*v)\n\tcase *uint:\n\t\te.e.EncodeUint(uint64(*v))\n\tcase *uint8:\n\t\te.e.EncodeUint(uint64(*v))\n\tcase *uint16:\n\t\te.e.EncodeUint(uint64(*v))\n\tcase *uint32:\n\t\te.e.EncodeUint(uint64(*v))\n\tcase *uint64:\n\t\te.e.EncodeUint(*v)\n\tcase *uintptr:\n\t\te.e.EncodeUint(uint64(*v))\n\tcase *float32:\n\t\te.e.EncodeFloat32(*v)\n\tcase *float64:\n\t\te.e.EncodeFloat64(*v)\n\tcase *time.Time:\n\t\te.e.EncodeTime(*v)\n\n\tcase *[]uint8:\n\t\te.e.EncodeStringBytesRaw(*v)\n\n\tdefault:\n\t\tif v, ok := iv.(Selfer); ok {\n\t\t\tv.CodecEncodeSelf(e)\n\t\t} else if !fastpathEncodeTypeSwitch(iv, e) {\n\t\t\t// checkfastpath=true (not false), as underlying slice/map type may be fast-path\n\t\t\te.encodeValue(reflect.ValueOf(iv), nil, true)\n\t\t}\n\t}\n}\n\nfunc (e *Encoder) encodeValue(rv reflect.Value, fn *codecFn, checkFastpath bool) {\n\t// if a valid fn is passed, it MUST BE for the dereferenced type of rv\n\tvar sptr uintptr\n\tvar rvp reflect.Value\n\tvar rvpValid bool\nTOP:\n\tswitch rv.Kind() {\n\tcase reflect.Ptr:\n\t\tif rv.IsNil() {\n\t\t\te.e.EncodeNil()\n\t\t\treturn\n\t\t}\n\t\trvpValid = true\n\t\trvp = rv\n\t\trv = rv.Elem()\n\t\tif e.h.CheckCircularRef && rv.Kind() == reflect.Struct {\n\t\t\t// TODO: Movable pointers will be an issue here. Future problem.\n\t\t\tsptr = rv.UnsafeAddr()\n\t\t\tbreak TOP\n\t\t}\n\t\tgoto TOP\n\tcase reflect.Interface:\n\t\tif rv.IsNil() {\n\t\t\te.e.EncodeNil()\n\t\t\treturn\n\t\t}\n\t\trv = rv.Elem()\n\t\tgoto TOP\n\tcase reflect.Slice, reflect.Map:\n\t\tif rv.IsNil() {\n\t\t\te.e.EncodeNil()\n\t\t\treturn\n\t\t}\n\tcase reflect.Invalid, reflect.Func:\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\n\tif sptr != 0 && (&e.ci).add(sptr) {\n\t\te.errorf(\"circular reference found: # %d\", sptr)\n\t}\n\n\tif fn == nil {\n\t\trt := rv.Type()\n\t\t// always pass checkCodecSelfer=true, in case T or ****T is passed, where *T is a Selfer\n\t\tfn = e.h.fn(rt, checkFastpath, true)\n\t}\n\tif fn.i.addrE {\n\t\tif rvpValid {\n\t\t\tfn.fe(e, &fn.i, rvp)\n\t\t} else if rv.CanAddr() {\n\t\t\tfn.fe(e, &fn.i, rv.Addr())\n\t\t} else {\n\t\t\trv2 := reflect.New(rv.Type())\n\t\t\trv2.Elem().Set(rv)\n\t\t\tfn.fe(e, &fn.i, rv2)\n\t\t}\n\t} else {\n\t\tfn.fe(e, &fn.i, rv)\n\t}\n\tif sptr != 0 {\n\t\t(&e.ci).remove(sptr)\n\t}\n}\n\n// func (e *Encoder) marshal(bs []byte, fnerr error, asis bool, c charEncoding) {\n// \tif fnerr != nil {\n// \t\tpanic(fnerr)\n// \t}\n// \tif bs == nil {\n// \t\te.e.EncodeNil()\n// \t} else if asis {\n// \t\te.asis(bs)\n// \t} else {\n// \t\te.e.EncodeStringBytesRaw(bs)\n// \t}\n// }\n\nfunc (e *Encoder) marshalUtf8(bs []byte, fnerr error) {\n\tif fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n\tif bs == nil {\n\t\te.e.EncodeNil()\n\t} else {\n\t\te.e.EncodeStringEnc(cUTF8, stringView(bs))\n\t}\n}\n\nfunc (e *Encoder) marshalAsis(bs []byte, fnerr error) {\n\tif fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n\tif bs == nil {\n\t\te.e.EncodeNil()\n\t} else {\n\t\te.asis(bs)\n\t}\n}\n\nfunc (e *Encoder) marshalRaw(bs []byte, fnerr error) {\n\tif fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n\tif bs == nil {\n\t\te.e.EncodeNil()\n\t} else {\n\t\te.e.EncodeStringBytesRaw(bs)\n\t}\n}\n\nfunc (e *Encoder) asis(v []byte) {\n\tif e.isas {\n\t\te.as.EncodeAsis(v)\n\t} else {\n\t\te.w().writeb(v)\n\t}\n}\n\nfunc (e *Encoder) rawBytes(vv Raw) {\n\tv := []byte(vv)\n\tif !e.h.Raw {\n\t\te.errorf(\"Raw values cannot be encoded: %v\", v)\n\t}\n\te.asis(v)\n}\n\nfunc (e *Encoder) wrapErr(v interface{}, err *error) {\n\t*err = encodeError{codecError{name: e.hh.Name(), err: v}}\n}\n\n// ---- container tracker methods\n// Note: We update the .c after calling the callback.\n// This way, the callback can know what the last status was.\n\nfunc (e *Encoder) mapStart(length int) {\n\te.e.WriteMapStart(length)\n\te.c = containerMapStart\n}\n\nfunc (e *Encoder) mapElemKey() {\n\tif e.js {\n\t\te.jenc.WriteMapElemKey()\n\t}\n\te.c = containerMapKey\n}\n\nfunc (e *Encoder) mapElemValue() {\n\tif e.js {\n\t\te.jenc.WriteMapElemValue()\n\t}\n\te.c = containerMapValue\n}\n\nfunc (e *Encoder) mapEnd() {\n\te.e.WriteMapEnd()\n\te.c = containerMapEnd\n\te.c = 0\n}\n\nfunc (e *Encoder) arrayStart(length int) {\n\te.e.WriteArrayStart(length)\n\te.c = containerArrayStart\n}\n\nfunc (e *Encoder) arrayElem() {\n\tif e.js {\n\t\te.jenc.WriteArrayElem()\n\t}\n\te.c = containerArrayElem\n}\n\nfunc (e *Encoder) arrayEnd() {\n\te.e.WriteArrayEnd()\n\te.c = 0\n\te.c = containerArrayEnd\n}\n\nfunc encStructFieldKey(encName string, ee encDriver, w *encWriterSwitch,\n\tkeyType valueType, encNameAsciiAlphaNum bool, js bool) {\n\tvar m must\n\t// use if-else-if, not switch (which compiles to binary-search)\n\t// since keyType is typically valueTypeString, branch prediction is pretty good.\n\tif keyType == valueTypeString {\n\t\tif js && encNameAsciiAlphaNum { // keyType == valueTypeString\n\t\t\tw.writeqstr(encName)\n\t\t\t// ----\n\t\t\t// w.writen1('\"')\n\t\t\t// w.writestr(encName)\n\t\t\t// w.writen1('\"')\n\t\t\t// ----\n\t\t\t// w.writestr(`\"` + encName + `\"`)\n\t\t\t// ----\n\t\t\t// // do concat myself, so it is faster than the generic string concat\n\t\t\t// b := make([]byte, len(encName)+2)\n\t\t\t// copy(b[1:], encName)\n\t\t\t// b[0] = '\"'\n\t\t\t// b[len(b)-1] = '\"'\n\t\t\t// w.writeb(b)\n\t\t} else { // keyType == valueTypeString\n\t\t\tee.EncodeStringEnc(cUTF8, encName)\n\t\t}\n\t} else if keyType == valueTypeInt {\n\t\tee.EncodeInt(m.Int(strconv.ParseInt(encName, 10, 64)))\n\t} else if keyType == valueTypeUint {\n\t\tee.EncodeUint(m.Uint(strconv.ParseUint(encName, 10, 64)))\n\t} else if keyType == valueTypeFloat {\n\t\tee.EncodeFloat64(m.Float(strconv.ParseFloat(encName, 64)))\n\t}\n}\n\n// func encStringAsRawBytesMaybe(ee encDriver, s string, stringToRaw bool) {\n// \tif stringToRaw {\n// \t\tee.EncodeStringBytesRaw(bytesView(s))\n// \t} else {\n// \t\tee.EncodeStringEnc(cUTF8, s)\n// \t}\n// }\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/fast-path.generated.go",
    "content": "// +build !notfastpath\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from fast-path.go.tmpl - DO NOT EDIT.\n\npackage codec\n\n// Fast path functions try to create a fast path encode or decode implementation\n// for common maps and slices.\n//\n// We define the functions and register them in this single file\n// so as not to pollute the encode.go and decode.go, and create a dependency in there.\n// This file can be omitted without causing a build failure.\n//\n// The advantage of fast paths is:\n//\t  - Many calls bypass reflection altogether\n//\n// Currently support\n//\t  - slice of all builtin types (numeric, bool, string, []byte)\n//    - maps of builtin types to builtin or interface{} type, EXCEPT FOR\n//      keys of type uintptr, int8/16/32, uint16/32, float32/64, bool, interface{}\n//      AND values of type type int8/16/32, uint16/32\n// This should provide adequate \"typical\" implementations.\n//\n// Note that fast track decode functions must handle values for which an address cannot be obtained.\n// For example:\n//\t m2 := map[string]int{}\n//\t p2 := []interface{}{m2}\n//\t // decoding into p2 will bomb if fast track functions do not treat like unaddressable.\n//\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n)\n\nconst fastpathEnabled = true\n\nconst fastpathMapBySliceErrMsg = \"mapBySlice requires even slice length, but got %v\"\n\ntype fastpathT struct{}\n\nvar fastpathTV fastpathT\n\ntype fastpathE struct {\n\trtid  uintptr\n\trt    reflect.Type\n\tencfn func(*Encoder, *codecFnInfo, reflect.Value)\n\tdecfn func(*Decoder, *codecFnInfo, reflect.Value)\n}\n\ntype fastpathA [88]fastpathE\n\nfunc (x *fastpathA) index(rtid uintptr) int {\n\t// use binary search to grab the index (adapted from sort/search.go)\n\t// Note: we use goto (instead of for loop) so this can be inlined.\n\t// h, i, j := 0, 0, len(x)\n\tvar h, i uint\n\tvar j = uint(len(x))\nLOOP:\n\tif i < j {\n\t\th = i + (j-i)/2\n\t\tif x[h].rtid < rtid {\n\t\t\ti = h + 1\n\t\t} else {\n\t\t\tj = h\n\t\t}\n\t\tgoto LOOP\n\t}\n\tif i < uint(len(x)) && x[i].rtid == rtid {\n\t\treturn int(i)\n\t}\n\treturn -1\n}\n\ntype fastpathAslice []fastpathE\n\nfunc (x fastpathAslice) Len() int           { return len(x) }\nfunc (x fastpathAslice) Less(i, j int) bool { return x[uint(i)].rtid < x[uint(j)].rtid }\nfunc (x fastpathAslice) Swap(i, j int)      { x[uint(i)], x[uint(j)] = x[uint(j)], x[uint(i)] }\n\nvar fastpathAV fastpathA\n\n// due to possible initialization loop error, make fastpath in an init()\nfunc init() {\n\tvar i uint = 0\n\tfn := func(v interface{},\n\t\tfe func(*Encoder, *codecFnInfo, reflect.Value),\n\t\tfd func(*Decoder, *codecFnInfo, reflect.Value)) {\n\t\txrt := reflect.TypeOf(v)\n\t\txptr := rt2id(xrt)\n\t\tfastpathAV[i] = fastpathE{xptr, xrt, fe, fd}\n\t\ti++\n\t}\n\n\tfn([]interface{}(nil), (*Encoder).fastpathEncSliceIntfR, (*Decoder).fastpathDecSliceIntfR)\n\tfn([]string(nil), (*Encoder).fastpathEncSliceStringR, (*Decoder).fastpathDecSliceStringR)\n\tfn([][]byte(nil), (*Encoder).fastpathEncSliceBytesR, (*Decoder).fastpathDecSliceBytesR)\n\tfn([]float32(nil), (*Encoder).fastpathEncSliceFloat32R, (*Decoder).fastpathDecSliceFloat32R)\n\tfn([]float64(nil), (*Encoder).fastpathEncSliceFloat64R, (*Decoder).fastpathDecSliceFloat64R)\n\tfn([]uint(nil), (*Encoder).fastpathEncSliceUintR, (*Decoder).fastpathDecSliceUintR)\n\tfn([]uint16(nil), (*Encoder).fastpathEncSliceUint16R, (*Decoder).fastpathDecSliceUint16R)\n\tfn([]uint32(nil), (*Encoder).fastpathEncSliceUint32R, (*Decoder).fastpathDecSliceUint32R)\n\tfn([]uint64(nil), (*Encoder).fastpathEncSliceUint64R, (*Decoder).fastpathDecSliceUint64R)\n\tfn([]uintptr(nil), (*Encoder).fastpathEncSliceUintptrR, (*Decoder).fastpathDecSliceUintptrR)\n\tfn([]int(nil), (*Encoder).fastpathEncSliceIntR, (*Decoder).fastpathDecSliceIntR)\n\tfn([]int8(nil), (*Encoder).fastpathEncSliceInt8R, (*Decoder).fastpathDecSliceInt8R)\n\tfn([]int16(nil), (*Encoder).fastpathEncSliceInt16R, (*Decoder).fastpathDecSliceInt16R)\n\tfn([]int32(nil), (*Encoder).fastpathEncSliceInt32R, (*Decoder).fastpathDecSliceInt32R)\n\tfn([]int64(nil), (*Encoder).fastpathEncSliceInt64R, (*Decoder).fastpathDecSliceInt64R)\n\tfn([]bool(nil), (*Encoder).fastpathEncSliceBoolR, (*Decoder).fastpathDecSliceBoolR)\n\n\tfn(map[string]interface{}(nil), (*Encoder).fastpathEncMapStringIntfR, (*Decoder).fastpathDecMapStringIntfR)\n\tfn(map[string]string(nil), (*Encoder).fastpathEncMapStringStringR, (*Decoder).fastpathDecMapStringStringR)\n\tfn(map[string][]byte(nil), (*Encoder).fastpathEncMapStringBytesR, (*Decoder).fastpathDecMapStringBytesR)\n\tfn(map[string]uint(nil), (*Encoder).fastpathEncMapStringUintR, (*Decoder).fastpathDecMapStringUintR)\n\tfn(map[string]uint8(nil), (*Encoder).fastpathEncMapStringUint8R, (*Decoder).fastpathDecMapStringUint8R)\n\tfn(map[string]uint64(nil), (*Encoder).fastpathEncMapStringUint64R, (*Decoder).fastpathDecMapStringUint64R)\n\tfn(map[string]uintptr(nil), (*Encoder).fastpathEncMapStringUintptrR, (*Decoder).fastpathDecMapStringUintptrR)\n\tfn(map[string]int(nil), (*Encoder).fastpathEncMapStringIntR, (*Decoder).fastpathDecMapStringIntR)\n\tfn(map[string]int64(nil), (*Encoder).fastpathEncMapStringInt64R, (*Decoder).fastpathDecMapStringInt64R)\n\tfn(map[string]float32(nil), (*Encoder).fastpathEncMapStringFloat32R, (*Decoder).fastpathDecMapStringFloat32R)\n\tfn(map[string]float64(nil), (*Encoder).fastpathEncMapStringFloat64R, (*Decoder).fastpathDecMapStringFloat64R)\n\tfn(map[string]bool(nil), (*Encoder).fastpathEncMapStringBoolR, (*Decoder).fastpathDecMapStringBoolR)\n\tfn(map[uint]interface{}(nil), (*Encoder).fastpathEncMapUintIntfR, (*Decoder).fastpathDecMapUintIntfR)\n\tfn(map[uint]string(nil), (*Encoder).fastpathEncMapUintStringR, (*Decoder).fastpathDecMapUintStringR)\n\tfn(map[uint][]byte(nil), (*Encoder).fastpathEncMapUintBytesR, (*Decoder).fastpathDecMapUintBytesR)\n\tfn(map[uint]uint(nil), (*Encoder).fastpathEncMapUintUintR, (*Decoder).fastpathDecMapUintUintR)\n\tfn(map[uint]uint8(nil), (*Encoder).fastpathEncMapUintUint8R, (*Decoder).fastpathDecMapUintUint8R)\n\tfn(map[uint]uint64(nil), (*Encoder).fastpathEncMapUintUint64R, (*Decoder).fastpathDecMapUintUint64R)\n\tfn(map[uint]uintptr(nil), (*Encoder).fastpathEncMapUintUintptrR, (*Decoder).fastpathDecMapUintUintptrR)\n\tfn(map[uint]int(nil), (*Encoder).fastpathEncMapUintIntR, (*Decoder).fastpathDecMapUintIntR)\n\tfn(map[uint]int64(nil), (*Encoder).fastpathEncMapUintInt64R, (*Decoder).fastpathDecMapUintInt64R)\n\tfn(map[uint]float32(nil), (*Encoder).fastpathEncMapUintFloat32R, (*Decoder).fastpathDecMapUintFloat32R)\n\tfn(map[uint]float64(nil), (*Encoder).fastpathEncMapUintFloat64R, (*Decoder).fastpathDecMapUintFloat64R)\n\tfn(map[uint]bool(nil), (*Encoder).fastpathEncMapUintBoolR, (*Decoder).fastpathDecMapUintBoolR)\n\tfn(map[uint8]interface{}(nil), (*Encoder).fastpathEncMapUint8IntfR, (*Decoder).fastpathDecMapUint8IntfR)\n\tfn(map[uint8]string(nil), (*Encoder).fastpathEncMapUint8StringR, (*Decoder).fastpathDecMapUint8StringR)\n\tfn(map[uint8][]byte(nil), (*Encoder).fastpathEncMapUint8BytesR, (*Decoder).fastpathDecMapUint8BytesR)\n\tfn(map[uint8]uint(nil), (*Encoder).fastpathEncMapUint8UintR, (*Decoder).fastpathDecMapUint8UintR)\n\tfn(map[uint8]uint8(nil), (*Encoder).fastpathEncMapUint8Uint8R, (*Decoder).fastpathDecMapUint8Uint8R)\n\tfn(map[uint8]uint64(nil), (*Encoder).fastpathEncMapUint8Uint64R, (*Decoder).fastpathDecMapUint8Uint64R)\n\tfn(map[uint8]uintptr(nil), (*Encoder).fastpathEncMapUint8UintptrR, (*Decoder).fastpathDecMapUint8UintptrR)\n\tfn(map[uint8]int(nil), (*Encoder).fastpathEncMapUint8IntR, (*Decoder).fastpathDecMapUint8IntR)\n\tfn(map[uint8]int64(nil), (*Encoder).fastpathEncMapUint8Int64R, (*Decoder).fastpathDecMapUint8Int64R)\n\tfn(map[uint8]float32(nil), (*Encoder).fastpathEncMapUint8Float32R, (*Decoder).fastpathDecMapUint8Float32R)\n\tfn(map[uint8]float64(nil), (*Encoder).fastpathEncMapUint8Float64R, (*Decoder).fastpathDecMapUint8Float64R)\n\tfn(map[uint8]bool(nil), (*Encoder).fastpathEncMapUint8BoolR, (*Decoder).fastpathDecMapUint8BoolR)\n\tfn(map[uint64]interface{}(nil), (*Encoder).fastpathEncMapUint64IntfR, (*Decoder).fastpathDecMapUint64IntfR)\n\tfn(map[uint64]string(nil), (*Encoder).fastpathEncMapUint64StringR, (*Decoder).fastpathDecMapUint64StringR)\n\tfn(map[uint64][]byte(nil), (*Encoder).fastpathEncMapUint64BytesR, (*Decoder).fastpathDecMapUint64BytesR)\n\tfn(map[uint64]uint(nil), (*Encoder).fastpathEncMapUint64UintR, (*Decoder).fastpathDecMapUint64UintR)\n\tfn(map[uint64]uint8(nil), (*Encoder).fastpathEncMapUint64Uint8R, (*Decoder).fastpathDecMapUint64Uint8R)\n\tfn(map[uint64]uint64(nil), (*Encoder).fastpathEncMapUint64Uint64R, (*Decoder).fastpathDecMapUint64Uint64R)\n\tfn(map[uint64]uintptr(nil), (*Encoder).fastpathEncMapUint64UintptrR, (*Decoder).fastpathDecMapUint64UintptrR)\n\tfn(map[uint64]int(nil), (*Encoder).fastpathEncMapUint64IntR, (*Decoder).fastpathDecMapUint64IntR)\n\tfn(map[uint64]int64(nil), (*Encoder).fastpathEncMapUint64Int64R, (*Decoder).fastpathDecMapUint64Int64R)\n\tfn(map[uint64]float32(nil), (*Encoder).fastpathEncMapUint64Float32R, (*Decoder).fastpathDecMapUint64Float32R)\n\tfn(map[uint64]float64(nil), (*Encoder).fastpathEncMapUint64Float64R, (*Decoder).fastpathDecMapUint64Float64R)\n\tfn(map[uint64]bool(nil), (*Encoder).fastpathEncMapUint64BoolR, (*Decoder).fastpathDecMapUint64BoolR)\n\tfn(map[int]interface{}(nil), (*Encoder).fastpathEncMapIntIntfR, (*Decoder).fastpathDecMapIntIntfR)\n\tfn(map[int]string(nil), (*Encoder).fastpathEncMapIntStringR, (*Decoder).fastpathDecMapIntStringR)\n\tfn(map[int][]byte(nil), (*Encoder).fastpathEncMapIntBytesR, (*Decoder).fastpathDecMapIntBytesR)\n\tfn(map[int]uint(nil), (*Encoder).fastpathEncMapIntUintR, (*Decoder).fastpathDecMapIntUintR)\n\tfn(map[int]uint8(nil), (*Encoder).fastpathEncMapIntUint8R, (*Decoder).fastpathDecMapIntUint8R)\n\tfn(map[int]uint64(nil), (*Encoder).fastpathEncMapIntUint64R, (*Decoder).fastpathDecMapIntUint64R)\n\tfn(map[int]uintptr(nil), (*Encoder).fastpathEncMapIntUintptrR, (*Decoder).fastpathDecMapIntUintptrR)\n\tfn(map[int]int(nil), (*Encoder).fastpathEncMapIntIntR, (*Decoder).fastpathDecMapIntIntR)\n\tfn(map[int]int64(nil), (*Encoder).fastpathEncMapIntInt64R, (*Decoder).fastpathDecMapIntInt64R)\n\tfn(map[int]float32(nil), (*Encoder).fastpathEncMapIntFloat32R, (*Decoder).fastpathDecMapIntFloat32R)\n\tfn(map[int]float64(nil), (*Encoder).fastpathEncMapIntFloat64R, (*Decoder).fastpathDecMapIntFloat64R)\n\tfn(map[int]bool(nil), (*Encoder).fastpathEncMapIntBoolR, (*Decoder).fastpathDecMapIntBoolR)\n\tfn(map[int64]interface{}(nil), (*Encoder).fastpathEncMapInt64IntfR, (*Decoder).fastpathDecMapInt64IntfR)\n\tfn(map[int64]string(nil), (*Encoder).fastpathEncMapInt64StringR, (*Decoder).fastpathDecMapInt64StringR)\n\tfn(map[int64][]byte(nil), (*Encoder).fastpathEncMapInt64BytesR, (*Decoder).fastpathDecMapInt64BytesR)\n\tfn(map[int64]uint(nil), (*Encoder).fastpathEncMapInt64UintR, (*Decoder).fastpathDecMapInt64UintR)\n\tfn(map[int64]uint8(nil), (*Encoder).fastpathEncMapInt64Uint8R, (*Decoder).fastpathDecMapInt64Uint8R)\n\tfn(map[int64]uint64(nil), (*Encoder).fastpathEncMapInt64Uint64R, (*Decoder).fastpathDecMapInt64Uint64R)\n\tfn(map[int64]uintptr(nil), (*Encoder).fastpathEncMapInt64UintptrR, (*Decoder).fastpathDecMapInt64UintptrR)\n\tfn(map[int64]int(nil), (*Encoder).fastpathEncMapInt64IntR, (*Decoder).fastpathDecMapInt64IntR)\n\tfn(map[int64]int64(nil), (*Encoder).fastpathEncMapInt64Int64R, (*Decoder).fastpathDecMapInt64Int64R)\n\tfn(map[int64]float32(nil), (*Encoder).fastpathEncMapInt64Float32R, (*Decoder).fastpathDecMapInt64Float32R)\n\tfn(map[int64]float64(nil), (*Encoder).fastpathEncMapInt64Float64R, (*Decoder).fastpathDecMapInt64Float64R)\n\tfn(map[int64]bool(nil), (*Encoder).fastpathEncMapInt64BoolR, (*Decoder).fastpathDecMapInt64BoolR)\n\n\tsort.Sort(fastpathAslice(fastpathAV[:]))\n}\n\n// -- encode\n\n// -- -- fast path type switch\nfunc fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool {\n\tswitch v := iv.(type) {\n\n\tcase []interface{}:\n\t\tfastpathTV.EncSliceIntfV(v, e)\n\tcase *[]interface{}:\n\t\tfastpathTV.EncSliceIntfV(*v, e)\n\tcase []string:\n\t\tfastpathTV.EncSliceStringV(v, e)\n\tcase *[]string:\n\t\tfastpathTV.EncSliceStringV(*v, e)\n\tcase [][]byte:\n\t\tfastpathTV.EncSliceBytesV(v, e)\n\tcase *[][]byte:\n\t\tfastpathTV.EncSliceBytesV(*v, e)\n\tcase []float32:\n\t\tfastpathTV.EncSliceFloat32V(v, e)\n\tcase *[]float32:\n\t\tfastpathTV.EncSliceFloat32V(*v, e)\n\tcase []float64:\n\t\tfastpathTV.EncSliceFloat64V(v, e)\n\tcase *[]float64:\n\t\tfastpathTV.EncSliceFloat64V(*v, e)\n\tcase []uint:\n\t\tfastpathTV.EncSliceUintV(v, e)\n\tcase *[]uint:\n\t\tfastpathTV.EncSliceUintV(*v, e)\n\tcase []uint16:\n\t\tfastpathTV.EncSliceUint16V(v, e)\n\tcase *[]uint16:\n\t\tfastpathTV.EncSliceUint16V(*v, e)\n\tcase []uint32:\n\t\tfastpathTV.EncSliceUint32V(v, e)\n\tcase *[]uint32:\n\t\tfastpathTV.EncSliceUint32V(*v, e)\n\tcase []uint64:\n\t\tfastpathTV.EncSliceUint64V(v, e)\n\tcase *[]uint64:\n\t\tfastpathTV.EncSliceUint64V(*v, e)\n\tcase []uintptr:\n\t\tfastpathTV.EncSliceUintptrV(v, e)\n\tcase *[]uintptr:\n\t\tfastpathTV.EncSliceUintptrV(*v, e)\n\tcase []int:\n\t\tfastpathTV.EncSliceIntV(v, e)\n\tcase *[]int:\n\t\tfastpathTV.EncSliceIntV(*v, e)\n\tcase []int8:\n\t\tfastpathTV.EncSliceInt8V(v, e)\n\tcase *[]int8:\n\t\tfastpathTV.EncSliceInt8V(*v, e)\n\tcase []int16:\n\t\tfastpathTV.EncSliceInt16V(v, e)\n\tcase *[]int16:\n\t\tfastpathTV.EncSliceInt16V(*v, e)\n\tcase []int32:\n\t\tfastpathTV.EncSliceInt32V(v, e)\n\tcase *[]int32:\n\t\tfastpathTV.EncSliceInt32V(*v, e)\n\tcase []int64:\n\t\tfastpathTV.EncSliceInt64V(v, e)\n\tcase *[]int64:\n\t\tfastpathTV.EncSliceInt64V(*v, e)\n\tcase []bool:\n\t\tfastpathTV.EncSliceBoolV(v, e)\n\tcase *[]bool:\n\t\tfastpathTV.EncSliceBoolV(*v, e)\n\n\tcase map[string]interface{}:\n\t\tfastpathTV.EncMapStringIntfV(v, e)\n\tcase *map[string]interface{}:\n\t\tfastpathTV.EncMapStringIntfV(*v, e)\n\tcase map[string]string:\n\t\tfastpathTV.EncMapStringStringV(v, e)\n\tcase *map[string]string:\n\t\tfastpathTV.EncMapStringStringV(*v, e)\n\tcase map[string][]byte:\n\t\tfastpathTV.EncMapStringBytesV(v, e)\n\tcase *map[string][]byte:\n\t\tfastpathTV.EncMapStringBytesV(*v, e)\n\tcase map[string]uint:\n\t\tfastpathTV.EncMapStringUintV(v, e)\n\tcase *map[string]uint:\n\t\tfastpathTV.EncMapStringUintV(*v, e)\n\tcase map[string]uint8:\n\t\tfastpathTV.EncMapStringUint8V(v, e)\n\tcase *map[string]uint8:\n\t\tfastpathTV.EncMapStringUint8V(*v, e)\n\tcase map[string]uint64:\n\t\tfastpathTV.EncMapStringUint64V(v, e)\n\tcase *map[string]uint64:\n\t\tfastpathTV.EncMapStringUint64V(*v, e)\n\tcase map[string]uintptr:\n\t\tfastpathTV.EncMapStringUintptrV(v, e)\n\tcase *map[string]uintptr:\n\t\tfastpathTV.EncMapStringUintptrV(*v, e)\n\tcase map[string]int:\n\t\tfastpathTV.EncMapStringIntV(v, e)\n\tcase *map[string]int:\n\t\tfastpathTV.EncMapStringIntV(*v, e)\n\tcase map[string]int64:\n\t\tfastpathTV.EncMapStringInt64V(v, e)\n\tcase *map[string]int64:\n\t\tfastpathTV.EncMapStringInt64V(*v, e)\n\tcase map[string]float32:\n\t\tfastpathTV.EncMapStringFloat32V(v, e)\n\tcase *map[string]float32:\n\t\tfastpathTV.EncMapStringFloat32V(*v, e)\n\tcase map[string]float64:\n\t\tfastpathTV.EncMapStringFloat64V(v, e)\n\tcase *map[string]float64:\n\t\tfastpathTV.EncMapStringFloat64V(*v, e)\n\tcase map[string]bool:\n\t\tfastpathTV.EncMapStringBoolV(v, e)\n\tcase *map[string]bool:\n\t\tfastpathTV.EncMapStringBoolV(*v, e)\n\tcase map[uint]interface{}:\n\t\tfastpathTV.EncMapUintIntfV(v, e)\n\tcase *map[uint]interface{}:\n\t\tfastpathTV.EncMapUintIntfV(*v, e)\n\tcase map[uint]string:\n\t\tfastpathTV.EncMapUintStringV(v, e)\n\tcase *map[uint]string:\n\t\tfastpathTV.EncMapUintStringV(*v, e)\n\tcase map[uint][]byte:\n\t\tfastpathTV.EncMapUintBytesV(v, e)\n\tcase *map[uint][]byte:\n\t\tfastpathTV.EncMapUintBytesV(*v, e)\n\tcase map[uint]uint:\n\t\tfastpathTV.EncMapUintUintV(v, e)\n\tcase *map[uint]uint:\n\t\tfastpathTV.EncMapUintUintV(*v, e)\n\tcase map[uint]uint8:\n\t\tfastpathTV.EncMapUintUint8V(v, e)\n\tcase *map[uint]uint8:\n\t\tfastpathTV.EncMapUintUint8V(*v, e)\n\tcase map[uint]uint64:\n\t\tfastpathTV.EncMapUintUint64V(v, e)\n\tcase *map[uint]uint64:\n\t\tfastpathTV.EncMapUintUint64V(*v, e)\n\tcase map[uint]uintptr:\n\t\tfastpathTV.EncMapUintUintptrV(v, e)\n\tcase *map[uint]uintptr:\n\t\tfastpathTV.EncMapUintUintptrV(*v, e)\n\tcase map[uint]int:\n\t\tfastpathTV.EncMapUintIntV(v, e)\n\tcase *map[uint]int:\n\t\tfastpathTV.EncMapUintIntV(*v, e)\n\tcase map[uint]int64:\n\t\tfastpathTV.EncMapUintInt64V(v, e)\n\tcase *map[uint]int64:\n\t\tfastpathTV.EncMapUintInt64V(*v, e)\n\tcase map[uint]float32:\n\t\tfastpathTV.EncMapUintFloat32V(v, e)\n\tcase *map[uint]float32:\n\t\tfastpathTV.EncMapUintFloat32V(*v, e)\n\tcase map[uint]float64:\n\t\tfastpathTV.EncMapUintFloat64V(v, e)\n\tcase *map[uint]float64:\n\t\tfastpathTV.EncMapUintFloat64V(*v, e)\n\tcase map[uint]bool:\n\t\tfastpathTV.EncMapUintBoolV(v, e)\n\tcase *map[uint]bool:\n\t\tfastpathTV.EncMapUintBoolV(*v, e)\n\tcase map[uint8]interface{}:\n\t\tfastpathTV.EncMapUint8IntfV(v, e)\n\tcase *map[uint8]interface{}:\n\t\tfastpathTV.EncMapUint8IntfV(*v, e)\n\tcase map[uint8]string:\n\t\tfastpathTV.EncMapUint8StringV(v, e)\n\tcase *map[uint8]string:\n\t\tfastpathTV.EncMapUint8StringV(*v, e)\n\tcase map[uint8][]byte:\n\t\tfastpathTV.EncMapUint8BytesV(v, e)\n\tcase *map[uint8][]byte:\n\t\tfastpathTV.EncMapUint8BytesV(*v, e)\n\tcase map[uint8]uint:\n\t\tfastpathTV.EncMapUint8UintV(v, e)\n\tcase *map[uint8]uint:\n\t\tfastpathTV.EncMapUint8UintV(*v, e)\n\tcase map[uint8]uint8:\n\t\tfastpathTV.EncMapUint8Uint8V(v, e)\n\tcase *map[uint8]uint8:\n\t\tfastpathTV.EncMapUint8Uint8V(*v, e)\n\tcase map[uint8]uint64:\n\t\tfastpathTV.EncMapUint8Uint64V(v, e)\n\tcase *map[uint8]uint64:\n\t\tfastpathTV.EncMapUint8Uint64V(*v, e)\n\tcase map[uint8]uintptr:\n\t\tfastpathTV.EncMapUint8UintptrV(v, e)\n\tcase *map[uint8]uintptr:\n\t\tfastpathTV.EncMapUint8UintptrV(*v, e)\n\tcase map[uint8]int:\n\t\tfastpathTV.EncMapUint8IntV(v, e)\n\tcase *map[uint8]int:\n\t\tfastpathTV.EncMapUint8IntV(*v, e)\n\tcase map[uint8]int64:\n\t\tfastpathTV.EncMapUint8Int64V(v, e)\n\tcase *map[uint8]int64:\n\t\tfastpathTV.EncMapUint8Int64V(*v, e)\n\tcase map[uint8]float32:\n\t\tfastpathTV.EncMapUint8Float32V(v, e)\n\tcase *map[uint8]float32:\n\t\tfastpathTV.EncMapUint8Float32V(*v, e)\n\tcase map[uint8]float64:\n\t\tfastpathTV.EncMapUint8Float64V(v, e)\n\tcase *map[uint8]float64:\n\t\tfastpathTV.EncMapUint8Float64V(*v, e)\n\tcase map[uint8]bool:\n\t\tfastpathTV.EncMapUint8BoolV(v, e)\n\tcase *map[uint8]bool:\n\t\tfastpathTV.EncMapUint8BoolV(*v, e)\n\tcase map[uint64]interface{}:\n\t\tfastpathTV.EncMapUint64IntfV(v, e)\n\tcase *map[uint64]interface{}:\n\t\tfastpathTV.EncMapUint64IntfV(*v, e)\n\tcase map[uint64]string:\n\t\tfastpathTV.EncMapUint64StringV(v, e)\n\tcase *map[uint64]string:\n\t\tfastpathTV.EncMapUint64StringV(*v, e)\n\tcase map[uint64][]byte:\n\t\tfastpathTV.EncMapUint64BytesV(v, e)\n\tcase *map[uint64][]byte:\n\t\tfastpathTV.EncMapUint64BytesV(*v, e)\n\tcase map[uint64]uint:\n\t\tfastpathTV.EncMapUint64UintV(v, e)\n\tcase *map[uint64]uint:\n\t\tfastpathTV.EncMapUint64UintV(*v, e)\n\tcase map[uint64]uint8:\n\t\tfastpathTV.EncMapUint64Uint8V(v, e)\n\tcase *map[uint64]uint8:\n\t\tfastpathTV.EncMapUint64Uint8V(*v, e)\n\tcase map[uint64]uint64:\n\t\tfastpathTV.EncMapUint64Uint64V(v, e)\n\tcase *map[uint64]uint64:\n\t\tfastpathTV.EncMapUint64Uint64V(*v, e)\n\tcase map[uint64]uintptr:\n\t\tfastpathTV.EncMapUint64UintptrV(v, e)\n\tcase *map[uint64]uintptr:\n\t\tfastpathTV.EncMapUint64UintptrV(*v, e)\n\tcase map[uint64]int:\n\t\tfastpathTV.EncMapUint64IntV(v, e)\n\tcase *map[uint64]int:\n\t\tfastpathTV.EncMapUint64IntV(*v, e)\n\tcase map[uint64]int64:\n\t\tfastpathTV.EncMapUint64Int64V(v, e)\n\tcase *map[uint64]int64:\n\t\tfastpathTV.EncMapUint64Int64V(*v, e)\n\tcase map[uint64]float32:\n\t\tfastpathTV.EncMapUint64Float32V(v, e)\n\tcase *map[uint64]float32:\n\t\tfastpathTV.EncMapUint64Float32V(*v, e)\n\tcase map[uint64]float64:\n\t\tfastpathTV.EncMapUint64Float64V(v, e)\n\tcase *map[uint64]float64:\n\t\tfastpathTV.EncMapUint64Float64V(*v, e)\n\tcase map[uint64]bool:\n\t\tfastpathTV.EncMapUint64BoolV(v, e)\n\tcase *map[uint64]bool:\n\t\tfastpathTV.EncMapUint64BoolV(*v, e)\n\tcase map[int]interface{}:\n\t\tfastpathTV.EncMapIntIntfV(v, e)\n\tcase *map[int]interface{}:\n\t\tfastpathTV.EncMapIntIntfV(*v, e)\n\tcase map[int]string:\n\t\tfastpathTV.EncMapIntStringV(v, e)\n\tcase *map[int]string:\n\t\tfastpathTV.EncMapIntStringV(*v, e)\n\tcase map[int][]byte:\n\t\tfastpathTV.EncMapIntBytesV(v, e)\n\tcase *map[int][]byte:\n\t\tfastpathTV.EncMapIntBytesV(*v, e)\n\tcase map[int]uint:\n\t\tfastpathTV.EncMapIntUintV(v, e)\n\tcase *map[int]uint:\n\t\tfastpathTV.EncMapIntUintV(*v, e)\n\tcase map[int]uint8:\n\t\tfastpathTV.EncMapIntUint8V(v, e)\n\tcase *map[int]uint8:\n\t\tfastpathTV.EncMapIntUint8V(*v, e)\n\tcase map[int]uint64:\n\t\tfastpathTV.EncMapIntUint64V(v, e)\n\tcase *map[int]uint64:\n\t\tfastpathTV.EncMapIntUint64V(*v, e)\n\tcase map[int]uintptr:\n\t\tfastpathTV.EncMapIntUintptrV(v, e)\n\tcase *map[int]uintptr:\n\t\tfastpathTV.EncMapIntUintptrV(*v, e)\n\tcase map[int]int:\n\t\tfastpathTV.EncMapIntIntV(v, e)\n\tcase *map[int]int:\n\t\tfastpathTV.EncMapIntIntV(*v, e)\n\tcase map[int]int64:\n\t\tfastpathTV.EncMapIntInt64V(v, e)\n\tcase *map[int]int64:\n\t\tfastpathTV.EncMapIntInt64V(*v, e)\n\tcase map[int]float32:\n\t\tfastpathTV.EncMapIntFloat32V(v, e)\n\tcase *map[int]float32:\n\t\tfastpathTV.EncMapIntFloat32V(*v, e)\n\tcase map[int]float64:\n\t\tfastpathTV.EncMapIntFloat64V(v, e)\n\tcase *map[int]float64:\n\t\tfastpathTV.EncMapIntFloat64V(*v, e)\n\tcase map[int]bool:\n\t\tfastpathTV.EncMapIntBoolV(v, e)\n\tcase *map[int]bool:\n\t\tfastpathTV.EncMapIntBoolV(*v, e)\n\tcase map[int64]interface{}:\n\t\tfastpathTV.EncMapInt64IntfV(v, e)\n\tcase *map[int64]interface{}:\n\t\tfastpathTV.EncMapInt64IntfV(*v, e)\n\tcase map[int64]string:\n\t\tfastpathTV.EncMapInt64StringV(v, e)\n\tcase *map[int64]string:\n\t\tfastpathTV.EncMapInt64StringV(*v, e)\n\tcase map[int64][]byte:\n\t\tfastpathTV.EncMapInt64BytesV(v, e)\n\tcase *map[int64][]byte:\n\t\tfastpathTV.EncMapInt64BytesV(*v, e)\n\tcase map[int64]uint:\n\t\tfastpathTV.EncMapInt64UintV(v, e)\n\tcase *map[int64]uint:\n\t\tfastpathTV.EncMapInt64UintV(*v, e)\n\tcase map[int64]uint8:\n\t\tfastpathTV.EncMapInt64Uint8V(v, e)\n\tcase *map[int64]uint8:\n\t\tfastpathTV.EncMapInt64Uint8V(*v, e)\n\tcase map[int64]uint64:\n\t\tfastpathTV.EncMapInt64Uint64V(v, e)\n\tcase *map[int64]uint64:\n\t\tfastpathTV.EncMapInt64Uint64V(*v, e)\n\tcase map[int64]uintptr:\n\t\tfastpathTV.EncMapInt64UintptrV(v, e)\n\tcase *map[int64]uintptr:\n\t\tfastpathTV.EncMapInt64UintptrV(*v, e)\n\tcase map[int64]int:\n\t\tfastpathTV.EncMapInt64IntV(v, e)\n\tcase *map[int64]int:\n\t\tfastpathTV.EncMapInt64IntV(*v, e)\n\tcase map[int64]int64:\n\t\tfastpathTV.EncMapInt64Int64V(v, e)\n\tcase *map[int64]int64:\n\t\tfastpathTV.EncMapInt64Int64V(*v, e)\n\tcase map[int64]float32:\n\t\tfastpathTV.EncMapInt64Float32V(v, e)\n\tcase *map[int64]float32:\n\t\tfastpathTV.EncMapInt64Float32V(*v, e)\n\tcase map[int64]float64:\n\t\tfastpathTV.EncMapInt64Float64V(v, e)\n\tcase *map[int64]float64:\n\t\tfastpathTV.EncMapInt64Float64V(*v, e)\n\tcase map[int64]bool:\n\t\tfastpathTV.EncMapInt64BoolV(v, e)\n\tcase *map[int64]bool:\n\t\tfastpathTV.EncMapInt64BoolV(*v, e)\n\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\n// -- -- fast path functions\n\nfunc (e *Encoder) fastpathEncSliceIntfR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceIntfV(rv2i(rv).([]interface{}), e)\n\t} else {\n\t\tfastpathTV.EncSliceIntfV(rv2i(rv).([]interface{}), e)\n\t}\n}\nfunc (fastpathT) EncSliceIntfV(v []interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.encode(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceIntfV(v []interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.encode(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceStringR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceStringV(rv2i(rv).([]string), e)\n\t} else {\n\t\tfastpathTV.EncSliceStringV(rv2i(rv).([]string), e)\n\t}\n}\nfunc (fastpathT) EncSliceStringV(v []string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\tif e.h.StringToRaw {\n\t\t\te.e.EncodeStringBytesRaw(bytesView(v[j]))\n\t\t} else {\n\t\t\te.e.EncodeStringEnc(cUTF8, v[j])\n\t\t}\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceStringV(v []string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[j]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[j])\n\t\t\t}\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceBytesR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceBytesV(rv2i(rv).([][]byte), e)\n\t} else {\n\t\tfastpathTV.EncSliceBytesV(rv2i(rv).([][]byte), e)\n\t}\n}\nfunc (fastpathT) EncSliceBytesV(v [][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeStringBytesRaw(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceBytesV(v [][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeStringBytesRaw(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceFloat32V(rv2i(rv).([]float32), e)\n\t} else {\n\t\tfastpathTV.EncSliceFloat32V(rv2i(rv).([]float32), e)\n\t}\n}\nfunc (fastpathT) EncSliceFloat32V(v []float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeFloat32(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceFloat32V(v []float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeFloat32(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceFloat64V(rv2i(rv).([]float64), e)\n\t} else {\n\t\tfastpathTV.EncSliceFloat64V(rv2i(rv).([]float64), e)\n\t}\n}\nfunc (fastpathT) EncSliceFloat64V(v []float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeFloat64(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceFloat64V(v []float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeFloat64(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceUintR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceUintV(rv2i(rv).([]uint), e)\n\t} else {\n\t\tfastpathTV.EncSliceUintV(rv2i(rv).([]uint), e)\n\t}\n}\nfunc (fastpathT) EncSliceUintV(v []uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeUint(uint64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceUintV(v []uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeUint(uint64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceUint8R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceUint8V(rv2i(rv).([]uint8), e)\n\t} else {\n\t\tfastpathTV.EncSliceUint8V(rv2i(rv).([]uint8), e)\n\t}\n}\nfunc (fastpathT) EncSliceUint8V(v []uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeUint(uint64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceUint8V(v []uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeUint(uint64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceUint16R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceUint16V(rv2i(rv).([]uint16), e)\n\t} else {\n\t\tfastpathTV.EncSliceUint16V(rv2i(rv).([]uint16), e)\n\t}\n}\nfunc (fastpathT) EncSliceUint16V(v []uint16, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeUint(uint64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceUint16V(v []uint16, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeUint(uint64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceUint32R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceUint32V(rv2i(rv).([]uint32), e)\n\t} else {\n\t\tfastpathTV.EncSliceUint32V(rv2i(rv).([]uint32), e)\n\t}\n}\nfunc (fastpathT) EncSliceUint32V(v []uint32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeUint(uint64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceUint32V(v []uint32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeUint(uint64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceUint64R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceUint64V(rv2i(rv).([]uint64), e)\n\t} else {\n\t\tfastpathTV.EncSliceUint64V(rv2i(rv).([]uint64), e)\n\t}\n}\nfunc (fastpathT) EncSliceUint64V(v []uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeUint(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceUint64V(v []uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeUint(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceUintptrV(rv2i(rv).([]uintptr), e)\n\t} else {\n\t\tfastpathTV.EncSliceUintptrV(rv2i(rv).([]uintptr), e)\n\t}\n}\nfunc (fastpathT) EncSliceUintptrV(v []uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.encode(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceUintptrV(v []uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.encode(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceIntR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceIntV(rv2i(rv).([]int), e)\n\t} else {\n\t\tfastpathTV.EncSliceIntV(rv2i(rv).([]int), e)\n\t}\n}\nfunc (fastpathT) EncSliceIntV(v []int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeInt(int64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceIntV(v []int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeInt(int64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceInt8R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceInt8V(rv2i(rv).([]int8), e)\n\t} else {\n\t\tfastpathTV.EncSliceInt8V(rv2i(rv).([]int8), e)\n\t}\n}\nfunc (fastpathT) EncSliceInt8V(v []int8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeInt(int64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceInt8V(v []int8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeInt(int64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceInt16R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceInt16V(rv2i(rv).([]int16), e)\n\t} else {\n\t\tfastpathTV.EncSliceInt16V(rv2i(rv).([]int16), e)\n\t}\n}\nfunc (fastpathT) EncSliceInt16V(v []int16, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeInt(int64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceInt16V(v []int16, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeInt(int64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceInt32R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceInt32V(rv2i(rv).([]int32), e)\n\t} else {\n\t\tfastpathTV.EncSliceInt32V(rv2i(rv).([]int32), e)\n\t}\n}\nfunc (fastpathT) EncSliceInt32V(v []int32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeInt(int64(v[j]))\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceInt32V(v []int32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeInt(int64(v[j]))\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceInt64R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceInt64V(rv2i(rv).([]int64), e)\n\t} else {\n\t\tfastpathTV.EncSliceInt64V(rv2i(rv).([]int64), e)\n\t}\n}\nfunc (fastpathT) EncSliceInt64V(v []int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeInt(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceInt64V(v []int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeInt(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncSliceBoolR(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.EncAsMapSliceBoolV(rv2i(rv).([]bool), e)\n\t} else {\n\t\tfastpathTV.EncSliceBoolV(rv2i(rv).([]bool), e)\n\t}\n}\nfunc (fastpathT) EncSliceBoolV(v []bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\te.e.EncodeBool(v[j])\n\t}\n\te.arrayEnd()\n}\nfunc (fastpathT) EncAsMapSliceBoolV(v []bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t} else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\te.e.EncodeBool(v[j])\n\t\t}\n\t\te.mapEnd()\n\t}\n}\n\nfunc (e *Encoder) fastpathEncMapStringIntfR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringIntfV(rv2i(rv).(map[string]interface{}), e)\n}\nfunc (fastpathT) EncMapStringIntfV(v map[string]interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringStringR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringStringV(rv2i(rv).(map[string]string), e)\n}\nfunc (fastpathT) EncMapStringStringV(v map[string]string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[k2]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[k2])\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v2)\n\t\t\t}\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringBytesR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringBytesV(rv2i(rv).(map[string][]byte), e)\n}\nfunc (fastpathT) EncMapStringBytesV(v map[string][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringUintR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringUintV(rv2i(rv).(map[string]uint), e)\n}\nfunc (fastpathT) EncMapStringUintV(v map[string]uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringUint8R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringUint8V(rv2i(rv).(map[string]uint8), e)\n}\nfunc (fastpathT) EncMapStringUint8V(v map[string]uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringUint64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringUint64V(rv2i(rv).(map[string]uint64), e)\n}\nfunc (fastpathT) EncMapStringUint64V(v map[string]uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringUintptrV(rv2i(rv).(map[string]uintptr), e)\n}\nfunc (fastpathT) EncMapStringUintptrV(v map[string]uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringIntR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringIntV(rv2i(rv).(map[string]int), e)\n}\nfunc (fastpathT) EncMapStringIntV(v map[string]int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringInt64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringInt64V(rv2i(rv).(map[string]int64), e)\n}\nfunc (fastpathT) EncMapStringInt64V(v map[string]int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringFloat32V(rv2i(rv).(map[string]float32), e)\n}\nfunc (fastpathT) EncMapStringFloat32V(v map[string]float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringFloat64V(rv2i(rv).(map[string]float64), e)\n}\nfunc (fastpathT) EncMapStringFloat64V(v map[string]float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapStringBoolR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapStringBoolV(rv2i(rv).(map[string]bool), e)\n}\nfunc (fastpathT) EncMapStringBoolV(v map[string]bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]string, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(stringSlice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(k2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, k2)\n\t\t\t}\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintIntfR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintIntfV(rv2i(rv).(map[uint]interface{}), e)\n}\nfunc (fastpathT) EncMapUintIntfV(v map[uint]interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintStringR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintStringV(rv2i(rv).(map[uint]string), e)\n}\nfunc (fastpathT) EncMapUintStringV(v map[uint]string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[uint(k2)]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[uint(k2)])\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v2)\n\t\t\t}\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintBytesR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintBytesV(rv2i(rv).(map[uint][]byte), e)\n}\nfunc (fastpathT) EncMapUintBytesV(v map[uint][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintUintR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintUintV(rv2i(rv).(map[uint]uint), e)\n}\nfunc (fastpathT) EncMapUintUintV(v map[uint]uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[uint(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintUint8R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintUint8V(rv2i(rv).(map[uint]uint8), e)\n}\nfunc (fastpathT) EncMapUintUint8V(v map[uint]uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[uint(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintUint64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintUint64V(rv2i(rv).(map[uint]uint64), e)\n}\nfunc (fastpathT) EncMapUintUint64V(v map[uint]uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintUintptrV(rv2i(rv).(map[uint]uintptr), e)\n}\nfunc (fastpathT) EncMapUintUintptrV(v map[uint]uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintIntR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintIntV(rv2i(rv).(map[uint]int), e)\n}\nfunc (fastpathT) EncMapUintIntV(v map[uint]int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v[uint(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintInt64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintInt64V(rv2i(rv).(map[uint]int64), e)\n}\nfunc (fastpathT) EncMapUintInt64V(v map[uint]int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintFloat32V(rv2i(rv).(map[uint]float32), e)\n}\nfunc (fastpathT) EncMapUintFloat32V(v map[uint]float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintFloat64V(rv2i(rv).(map[uint]float64), e)\n}\nfunc (fastpathT) EncMapUintFloat64V(v map[uint]float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUintBoolR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUintBoolV(rv2i(rv).(map[uint]bool), e)\n}\nfunc (fastpathT) EncMapUintBoolV(v map[uint]bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v[uint(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8IntfR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8IntfV(rv2i(rv).(map[uint8]interface{}), e)\n}\nfunc (fastpathT) EncMapUint8IntfV(v map[uint8]interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8StringR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8StringV(rv2i(rv).(map[uint8]string), e)\n}\nfunc (fastpathT) EncMapUint8StringV(v map[uint8]string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[uint8(k2)]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[uint8(k2)])\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v2)\n\t\t\t}\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8BytesR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8BytesV(rv2i(rv).(map[uint8][]byte), e)\n}\nfunc (fastpathT) EncMapUint8BytesV(v map[uint8][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8UintR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8UintV(rv2i(rv).(map[uint8]uint), e)\n}\nfunc (fastpathT) EncMapUint8UintV(v map[uint8]uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[uint8(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8Uint8R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8Uint8V(rv2i(rv).(map[uint8]uint8), e)\n}\nfunc (fastpathT) EncMapUint8Uint8V(v map[uint8]uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[uint8(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8Uint64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8Uint64V(rv2i(rv).(map[uint8]uint64), e)\n}\nfunc (fastpathT) EncMapUint8Uint64V(v map[uint8]uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8UintptrR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8UintptrV(rv2i(rv).(map[uint8]uintptr), e)\n}\nfunc (fastpathT) EncMapUint8UintptrV(v map[uint8]uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8IntR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8IntV(rv2i(rv).(map[uint8]int), e)\n}\nfunc (fastpathT) EncMapUint8IntV(v map[uint8]int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v[uint8(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8Int64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8Int64V(rv2i(rv).(map[uint8]int64), e)\n}\nfunc (fastpathT) EncMapUint8Int64V(v map[uint8]int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8Float32R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8Float32V(rv2i(rv).(map[uint8]float32), e)\n}\nfunc (fastpathT) EncMapUint8Float32V(v map[uint8]float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8Float64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8Float64V(rv2i(rv).(map[uint8]float64), e)\n}\nfunc (fastpathT) EncMapUint8Float64V(v map[uint8]float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint8BoolR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint8BoolV(rv2i(rv).(map[uint8]bool), e)\n}\nfunc (fastpathT) EncMapUint8BoolV(v map[uint8]bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = uint64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(uint8(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v[uint8(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(uint64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64IntfR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64IntfV(rv2i(rv).(map[uint64]interface{}), e)\n}\nfunc (fastpathT) EncMapUint64IntfV(v map[uint64]interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64StringR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64StringV(rv2i(rv).(map[uint64]string), e)\n}\nfunc (fastpathT) EncMapUint64StringV(v map[uint64]string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[k2]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[k2])\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v2)\n\t\t\t}\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64BytesR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64BytesV(rv2i(rv).(map[uint64][]byte), e)\n}\nfunc (fastpathT) EncMapUint64BytesV(v map[uint64][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64UintR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64UintV(rv2i(rv).(map[uint64]uint), e)\n}\nfunc (fastpathT) EncMapUint64UintV(v map[uint64]uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64Uint8R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64Uint8V(rv2i(rv).(map[uint64]uint8), e)\n}\nfunc (fastpathT) EncMapUint64Uint8V(v map[uint64]uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64Uint64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64Uint64V(rv2i(rv).(map[uint64]uint64), e)\n}\nfunc (fastpathT) EncMapUint64Uint64V(v map[uint64]uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64UintptrR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64UintptrV(rv2i(rv).(map[uint64]uintptr), e)\n}\nfunc (fastpathT) EncMapUint64UintptrV(v map[uint64]uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64IntR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64IntV(rv2i(rv).(map[uint64]int), e)\n}\nfunc (fastpathT) EncMapUint64IntV(v map[uint64]int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64Int64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64Int64V(rv2i(rv).(map[uint64]int64), e)\n}\nfunc (fastpathT) EncMapUint64Int64V(v map[uint64]int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64Float32R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64Float32V(rv2i(rv).(map[uint64]float32), e)\n}\nfunc (fastpathT) EncMapUint64Float32V(v map[uint64]float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64Float64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64Float64V(rv2i(rv).(map[uint64]float64), e)\n}\nfunc (fastpathT) EncMapUint64Float64V(v map[uint64]float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapUint64BoolR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapUint64BoolV(rv2i(rv).(map[uint64]bool), e)\n}\nfunc (fastpathT) EncMapUint64BoolV(v map[uint64]bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]uint64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(uint64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeUint(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntIntfR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntIntfV(rv2i(rv).(map[int]interface{}), e)\n}\nfunc (fastpathT) EncMapIntIntfV(v map[int]interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntStringR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntStringV(rv2i(rv).(map[int]string), e)\n}\nfunc (fastpathT) EncMapIntStringV(v map[int]string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[int(k2)]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[int(k2)])\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v2)\n\t\t\t}\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntBytesR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntBytesV(rv2i(rv).(map[int][]byte), e)\n}\nfunc (fastpathT) EncMapIntBytesV(v map[int][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntUintR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntUintV(rv2i(rv).(map[int]uint), e)\n}\nfunc (fastpathT) EncMapIntUintV(v map[int]uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[int(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntUint8R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntUint8V(rv2i(rv).(map[int]uint8), e)\n}\nfunc (fastpathT) EncMapIntUint8V(v map[int]uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[int(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntUint64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntUint64V(rv2i(rv).(map[int]uint64), e)\n}\nfunc (fastpathT) EncMapIntUint64V(v map[int]uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntUintptrV(rv2i(rv).(map[int]uintptr), e)\n}\nfunc (fastpathT) EncMapIntUintptrV(v map[int]uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntIntR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntIntV(rv2i(rv).(map[int]int), e)\n}\nfunc (fastpathT) EncMapIntIntV(v map[int]int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v[int(k2)]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntInt64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntInt64V(rv2i(rv).(map[int]int64), e)\n}\nfunc (fastpathT) EncMapIntInt64V(v map[int]int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntFloat32V(rv2i(rv).(map[int]float32), e)\n}\nfunc (fastpathT) EncMapIntFloat32V(v map[int]float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntFloat64V(rv2i(rv).(map[int]float64), e)\n}\nfunc (fastpathT) EncMapIntFloat64V(v map[int]float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapIntBoolR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapIntBoolV(rv2i(rv).(map[int]bool), e)\n}\nfunc (fastpathT) EncMapIntBoolV(v map[int]bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = int64(k)\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(int(k2)))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v[int(k2)])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(int64(k2))\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64IntfR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64IntfV(rv2i(rv).(map[int64]interface{}), e)\n}\nfunc (fastpathT) EncMapInt64IntfV(v map[int64]interface{}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64StringR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64StringV(rv2i(rv).(map[int64]string), e)\n}\nfunc (fastpathT) EncMapInt64StringV(v map[int64]string, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v[k2]))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v[k2])\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\tif e.h.StringToRaw {\n\t\t\t\te.e.EncodeStringBytesRaw(bytesView(v2))\n\t\t\t} else {\n\t\t\t\te.e.EncodeStringEnc(cUTF8, v2)\n\t\t\t}\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64BytesR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64BytesV(rv2i(rv).(map[int64][]byte), e)\n}\nfunc (fastpathT) EncMapInt64BytesV(v map[int64][]byte, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeStringBytesRaw(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64UintR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64UintV(rv2i(rv).(map[int64]uint), e)\n}\nfunc (fastpathT) EncMapInt64UintV(v map[int64]uint, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64Uint8R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64Uint8V(rv2i(rv).(map[int64]uint8), e)\n}\nfunc (fastpathT) EncMapInt64Uint8V(v map[int64]uint8, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(uint64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64Uint64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64Uint64V(rv2i(rv).(map[int64]uint64), e)\n}\nfunc (fastpathT) EncMapInt64Uint64V(v map[int64]uint64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeUint(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64UintptrR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64UintptrV(rv2i(rv).(map[int64]uintptr), e)\n}\nfunc (fastpathT) EncMapInt64UintptrV(v map[int64]uintptr, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64IntR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64IntV(rv2i(rv).(map[int64]int), e)\n}\nfunc (fastpathT) EncMapInt64IntV(v map[int64]int, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v[k2]))\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(int64(v2))\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64Int64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64Int64V(rv2i(rv).(map[int64]int64), e)\n}\nfunc (fastpathT) EncMapInt64Int64V(v map[int64]int64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeInt(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64Float32R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64Float32V(rv2i(rv).(map[int64]float32), e)\n}\nfunc (fastpathT) EncMapInt64Float32V(v map[int64]float32, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat32(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64Float64R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64Float64V(rv2i(rv).(map[int64]float64), e)\n}\nfunc (fastpathT) EncMapInt64Float64V(v map[int64]float64, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeFloat64(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\nfunc (e *Encoder) fastpathEncMapInt64BoolR(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.EncMapInt64BoolV(rv2i(rv).(map[int64]bool), e)\n}\nfunc (fastpathT) EncMapInt64BoolV(v map[int64]bool, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.mapStart(len(v))\n\tif e.h.Canonical {\n\t\tv2 := make([]int64, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = k\n\t\t\ti++\n\t\t}\n\t\tsort.Sort(int64Slice(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v[k2])\n\t\t}\n\t} else {\n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\te.e.EncodeInt(k2)\n\t\t\te.mapElemValue()\n\t\t\te.e.EncodeBool(v2)\n\t\t}\n\t}\n\te.mapEnd()\n}\n\n// -- decode\n\n// -- -- fast path type switch\nfunc fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool {\n\tvar changed bool\n\tswitch v := iv.(type) {\n\n\tcase []interface{}:\n\t\tvar v2 []interface{}\n\t\tv2, changed = fastpathTV.DecSliceIntfV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]interface{}:\n\t\tvar v2 []interface{}\n\t\tv2, changed = fastpathTV.DecSliceIntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []string:\n\t\tvar v2 []string\n\t\tv2, changed = fastpathTV.DecSliceStringV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]string:\n\t\tvar v2 []string\n\t\tv2, changed = fastpathTV.DecSliceStringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase [][]byte:\n\t\tvar v2 [][]byte\n\t\tv2, changed = fastpathTV.DecSliceBytesV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[][]byte:\n\t\tvar v2 [][]byte\n\t\tv2, changed = fastpathTV.DecSliceBytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []float32:\n\t\tvar v2 []float32\n\t\tv2, changed = fastpathTV.DecSliceFloat32V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]float32:\n\t\tvar v2 []float32\n\t\tv2, changed = fastpathTV.DecSliceFloat32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []float64:\n\t\tvar v2 []float64\n\t\tv2, changed = fastpathTV.DecSliceFloat64V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]float64:\n\t\tvar v2 []float64\n\t\tv2, changed = fastpathTV.DecSliceFloat64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []uint:\n\t\tvar v2 []uint\n\t\tv2, changed = fastpathTV.DecSliceUintV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]uint:\n\t\tvar v2 []uint\n\t\tv2, changed = fastpathTV.DecSliceUintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []uint16:\n\t\tvar v2 []uint16\n\t\tv2, changed = fastpathTV.DecSliceUint16V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]uint16:\n\t\tvar v2 []uint16\n\t\tv2, changed = fastpathTV.DecSliceUint16V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []uint32:\n\t\tvar v2 []uint32\n\t\tv2, changed = fastpathTV.DecSliceUint32V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]uint32:\n\t\tvar v2 []uint32\n\t\tv2, changed = fastpathTV.DecSliceUint32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []uint64:\n\t\tvar v2 []uint64\n\t\tv2, changed = fastpathTV.DecSliceUint64V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]uint64:\n\t\tvar v2 []uint64\n\t\tv2, changed = fastpathTV.DecSliceUint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []uintptr:\n\t\tvar v2 []uintptr\n\t\tv2, changed = fastpathTV.DecSliceUintptrV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]uintptr:\n\t\tvar v2 []uintptr\n\t\tv2, changed = fastpathTV.DecSliceUintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []int:\n\t\tvar v2 []int\n\t\tv2, changed = fastpathTV.DecSliceIntV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]int:\n\t\tvar v2 []int\n\t\tv2, changed = fastpathTV.DecSliceIntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []int8:\n\t\tvar v2 []int8\n\t\tv2, changed = fastpathTV.DecSliceInt8V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]int8:\n\t\tvar v2 []int8\n\t\tv2, changed = fastpathTV.DecSliceInt8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []int16:\n\t\tvar v2 []int16\n\t\tv2, changed = fastpathTV.DecSliceInt16V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]int16:\n\t\tvar v2 []int16\n\t\tv2, changed = fastpathTV.DecSliceInt16V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []int32:\n\t\tvar v2 []int32\n\t\tv2, changed = fastpathTV.DecSliceInt32V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]int32:\n\t\tvar v2 []int32\n\t\tv2, changed = fastpathTV.DecSliceInt32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []int64:\n\t\tvar v2 []int64\n\t\tv2, changed = fastpathTV.DecSliceInt64V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]int64:\n\t\tvar v2 []int64\n\t\tv2, changed = fastpathTV.DecSliceInt64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase []bool:\n\t\tvar v2 []bool\n\t\tv2, changed = fastpathTV.DecSliceBoolV(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]bool:\n\t\tvar v2 []bool\n\t\tv2, changed = fastpathTV.DecSliceBoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\n\tcase map[string]interface{}:\n\t\tfastpathTV.DecMapStringIntfV(v, false, d)\n\tcase *map[string]interface{}:\n\t\tvar v2 map[string]interface{}\n\t\tv2, changed = fastpathTV.DecMapStringIntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]string:\n\t\tfastpathTV.DecMapStringStringV(v, false, d)\n\tcase *map[string]string:\n\t\tvar v2 map[string]string\n\t\tv2, changed = fastpathTV.DecMapStringStringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string][]byte:\n\t\tfastpathTV.DecMapStringBytesV(v, false, d)\n\tcase *map[string][]byte:\n\t\tvar v2 map[string][]byte\n\t\tv2, changed = fastpathTV.DecMapStringBytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]uint:\n\t\tfastpathTV.DecMapStringUintV(v, false, d)\n\tcase *map[string]uint:\n\t\tvar v2 map[string]uint\n\t\tv2, changed = fastpathTV.DecMapStringUintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]uint8:\n\t\tfastpathTV.DecMapStringUint8V(v, false, d)\n\tcase *map[string]uint8:\n\t\tvar v2 map[string]uint8\n\t\tv2, changed = fastpathTV.DecMapStringUint8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]uint64:\n\t\tfastpathTV.DecMapStringUint64V(v, false, d)\n\tcase *map[string]uint64:\n\t\tvar v2 map[string]uint64\n\t\tv2, changed = fastpathTV.DecMapStringUint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]uintptr:\n\t\tfastpathTV.DecMapStringUintptrV(v, false, d)\n\tcase *map[string]uintptr:\n\t\tvar v2 map[string]uintptr\n\t\tv2, changed = fastpathTV.DecMapStringUintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]int:\n\t\tfastpathTV.DecMapStringIntV(v, false, d)\n\tcase *map[string]int:\n\t\tvar v2 map[string]int\n\t\tv2, changed = fastpathTV.DecMapStringIntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]int64:\n\t\tfastpathTV.DecMapStringInt64V(v, false, d)\n\tcase *map[string]int64:\n\t\tvar v2 map[string]int64\n\t\tv2, changed = fastpathTV.DecMapStringInt64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]float32:\n\t\tfastpathTV.DecMapStringFloat32V(v, false, d)\n\tcase *map[string]float32:\n\t\tvar v2 map[string]float32\n\t\tv2, changed = fastpathTV.DecMapStringFloat32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]float64:\n\t\tfastpathTV.DecMapStringFloat64V(v, false, d)\n\tcase *map[string]float64:\n\t\tvar v2 map[string]float64\n\t\tv2, changed = fastpathTV.DecMapStringFloat64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[string]bool:\n\t\tfastpathTV.DecMapStringBoolV(v, false, d)\n\tcase *map[string]bool:\n\t\tvar v2 map[string]bool\n\t\tv2, changed = fastpathTV.DecMapStringBoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]interface{}:\n\t\tfastpathTV.DecMapUintIntfV(v, false, d)\n\tcase *map[uint]interface{}:\n\t\tvar v2 map[uint]interface{}\n\t\tv2, changed = fastpathTV.DecMapUintIntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]string:\n\t\tfastpathTV.DecMapUintStringV(v, false, d)\n\tcase *map[uint]string:\n\t\tvar v2 map[uint]string\n\t\tv2, changed = fastpathTV.DecMapUintStringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint][]byte:\n\t\tfastpathTV.DecMapUintBytesV(v, false, d)\n\tcase *map[uint][]byte:\n\t\tvar v2 map[uint][]byte\n\t\tv2, changed = fastpathTV.DecMapUintBytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]uint:\n\t\tfastpathTV.DecMapUintUintV(v, false, d)\n\tcase *map[uint]uint:\n\t\tvar v2 map[uint]uint\n\t\tv2, changed = fastpathTV.DecMapUintUintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]uint8:\n\t\tfastpathTV.DecMapUintUint8V(v, false, d)\n\tcase *map[uint]uint8:\n\t\tvar v2 map[uint]uint8\n\t\tv2, changed = fastpathTV.DecMapUintUint8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]uint64:\n\t\tfastpathTV.DecMapUintUint64V(v, false, d)\n\tcase *map[uint]uint64:\n\t\tvar v2 map[uint]uint64\n\t\tv2, changed = fastpathTV.DecMapUintUint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]uintptr:\n\t\tfastpathTV.DecMapUintUintptrV(v, false, d)\n\tcase *map[uint]uintptr:\n\t\tvar v2 map[uint]uintptr\n\t\tv2, changed = fastpathTV.DecMapUintUintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]int:\n\t\tfastpathTV.DecMapUintIntV(v, false, d)\n\tcase *map[uint]int:\n\t\tvar v2 map[uint]int\n\t\tv2, changed = fastpathTV.DecMapUintIntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]int64:\n\t\tfastpathTV.DecMapUintInt64V(v, false, d)\n\tcase *map[uint]int64:\n\t\tvar v2 map[uint]int64\n\t\tv2, changed = fastpathTV.DecMapUintInt64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]float32:\n\t\tfastpathTV.DecMapUintFloat32V(v, false, d)\n\tcase *map[uint]float32:\n\t\tvar v2 map[uint]float32\n\t\tv2, changed = fastpathTV.DecMapUintFloat32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]float64:\n\t\tfastpathTV.DecMapUintFloat64V(v, false, d)\n\tcase *map[uint]float64:\n\t\tvar v2 map[uint]float64\n\t\tv2, changed = fastpathTV.DecMapUintFloat64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint]bool:\n\t\tfastpathTV.DecMapUintBoolV(v, false, d)\n\tcase *map[uint]bool:\n\t\tvar v2 map[uint]bool\n\t\tv2, changed = fastpathTV.DecMapUintBoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]interface{}:\n\t\tfastpathTV.DecMapUint8IntfV(v, false, d)\n\tcase *map[uint8]interface{}:\n\t\tvar v2 map[uint8]interface{}\n\t\tv2, changed = fastpathTV.DecMapUint8IntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]string:\n\t\tfastpathTV.DecMapUint8StringV(v, false, d)\n\tcase *map[uint8]string:\n\t\tvar v2 map[uint8]string\n\t\tv2, changed = fastpathTV.DecMapUint8StringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8][]byte:\n\t\tfastpathTV.DecMapUint8BytesV(v, false, d)\n\tcase *map[uint8][]byte:\n\t\tvar v2 map[uint8][]byte\n\t\tv2, changed = fastpathTV.DecMapUint8BytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]uint:\n\t\tfastpathTV.DecMapUint8UintV(v, false, d)\n\tcase *map[uint8]uint:\n\t\tvar v2 map[uint8]uint\n\t\tv2, changed = fastpathTV.DecMapUint8UintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]uint8:\n\t\tfastpathTV.DecMapUint8Uint8V(v, false, d)\n\tcase *map[uint8]uint8:\n\t\tvar v2 map[uint8]uint8\n\t\tv2, changed = fastpathTV.DecMapUint8Uint8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]uint64:\n\t\tfastpathTV.DecMapUint8Uint64V(v, false, d)\n\tcase *map[uint8]uint64:\n\t\tvar v2 map[uint8]uint64\n\t\tv2, changed = fastpathTV.DecMapUint8Uint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]uintptr:\n\t\tfastpathTV.DecMapUint8UintptrV(v, false, d)\n\tcase *map[uint8]uintptr:\n\t\tvar v2 map[uint8]uintptr\n\t\tv2, changed = fastpathTV.DecMapUint8UintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]int:\n\t\tfastpathTV.DecMapUint8IntV(v, false, d)\n\tcase *map[uint8]int:\n\t\tvar v2 map[uint8]int\n\t\tv2, changed = fastpathTV.DecMapUint8IntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]int64:\n\t\tfastpathTV.DecMapUint8Int64V(v, false, d)\n\tcase *map[uint8]int64:\n\t\tvar v2 map[uint8]int64\n\t\tv2, changed = fastpathTV.DecMapUint8Int64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]float32:\n\t\tfastpathTV.DecMapUint8Float32V(v, false, d)\n\tcase *map[uint8]float32:\n\t\tvar v2 map[uint8]float32\n\t\tv2, changed = fastpathTV.DecMapUint8Float32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]float64:\n\t\tfastpathTV.DecMapUint8Float64V(v, false, d)\n\tcase *map[uint8]float64:\n\t\tvar v2 map[uint8]float64\n\t\tv2, changed = fastpathTV.DecMapUint8Float64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint8]bool:\n\t\tfastpathTV.DecMapUint8BoolV(v, false, d)\n\tcase *map[uint8]bool:\n\t\tvar v2 map[uint8]bool\n\t\tv2, changed = fastpathTV.DecMapUint8BoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]interface{}:\n\t\tfastpathTV.DecMapUint64IntfV(v, false, d)\n\tcase *map[uint64]interface{}:\n\t\tvar v2 map[uint64]interface{}\n\t\tv2, changed = fastpathTV.DecMapUint64IntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]string:\n\t\tfastpathTV.DecMapUint64StringV(v, false, d)\n\tcase *map[uint64]string:\n\t\tvar v2 map[uint64]string\n\t\tv2, changed = fastpathTV.DecMapUint64StringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64][]byte:\n\t\tfastpathTV.DecMapUint64BytesV(v, false, d)\n\tcase *map[uint64][]byte:\n\t\tvar v2 map[uint64][]byte\n\t\tv2, changed = fastpathTV.DecMapUint64BytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]uint:\n\t\tfastpathTV.DecMapUint64UintV(v, false, d)\n\tcase *map[uint64]uint:\n\t\tvar v2 map[uint64]uint\n\t\tv2, changed = fastpathTV.DecMapUint64UintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]uint8:\n\t\tfastpathTV.DecMapUint64Uint8V(v, false, d)\n\tcase *map[uint64]uint8:\n\t\tvar v2 map[uint64]uint8\n\t\tv2, changed = fastpathTV.DecMapUint64Uint8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]uint64:\n\t\tfastpathTV.DecMapUint64Uint64V(v, false, d)\n\tcase *map[uint64]uint64:\n\t\tvar v2 map[uint64]uint64\n\t\tv2, changed = fastpathTV.DecMapUint64Uint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]uintptr:\n\t\tfastpathTV.DecMapUint64UintptrV(v, false, d)\n\tcase *map[uint64]uintptr:\n\t\tvar v2 map[uint64]uintptr\n\t\tv2, changed = fastpathTV.DecMapUint64UintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]int:\n\t\tfastpathTV.DecMapUint64IntV(v, false, d)\n\tcase *map[uint64]int:\n\t\tvar v2 map[uint64]int\n\t\tv2, changed = fastpathTV.DecMapUint64IntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]int64:\n\t\tfastpathTV.DecMapUint64Int64V(v, false, d)\n\tcase *map[uint64]int64:\n\t\tvar v2 map[uint64]int64\n\t\tv2, changed = fastpathTV.DecMapUint64Int64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]float32:\n\t\tfastpathTV.DecMapUint64Float32V(v, false, d)\n\tcase *map[uint64]float32:\n\t\tvar v2 map[uint64]float32\n\t\tv2, changed = fastpathTV.DecMapUint64Float32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]float64:\n\t\tfastpathTV.DecMapUint64Float64V(v, false, d)\n\tcase *map[uint64]float64:\n\t\tvar v2 map[uint64]float64\n\t\tv2, changed = fastpathTV.DecMapUint64Float64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[uint64]bool:\n\t\tfastpathTV.DecMapUint64BoolV(v, false, d)\n\tcase *map[uint64]bool:\n\t\tvar v2 map[uint64]bool\n\t\tv2, changed = fastpathTV.DecMapUint64BoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]interface{}:\n\t\tfastpathTV.DecMapIntIntfV(v, false, d)\n\tcase *map[int]interface{}:\n\t\tvar v2 map[int]interface{}\n\t\tv2, changed = fastpathTV.DecMapIntIntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]string:\n\t\tfastpathTV.DecMapIntStringV(v, false, d)\n\tcase *map[int]string:\n\t\tvar v2 map[int]string\n\t\tv2, changed = fastpathTV.DecMapIntStringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int][]byte:\n\t\tfastpathTV.DecMapIntBytesV(v, false, d)\n\tcase *map[int][]byte:\n\t\tvar v2 map[int][]byte\n\t\tv2, changed = fastpathTV.DecMapIntBytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]uint:\n\t\tfastpathTV.DecMapIntUintV(v, false, d)\n\tcase *map[int]uint:\n\t\tvar v2 map[int]uint\n\t\tv2, changed = fastpathTV.DecMapIntUintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]uint8:\n\t\tfastpathTV.DecMapIntUint8V(v, false, d)\n\tcase *map[int]uint8:\n\t\tvar v2 map[int]uint8\n\t\tv2, changed = fastpathTV.DecMapIntUint8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]uint64:\n\t\tfastpathTV.DecMapIntUint64V(v, false, d)\n\tcase *map[int]uint64:\n\t\tvar v2 map[int]uint64\n\t\tv2, changed = fastpathTV.DecMapIntUint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]uintptr:\n\t\tfastpathTV.DecMapIntUintptrV(v, false, d)\n\tcase *map[int]uintptr:\n\t\tvar v2 map[int]uintptr\n\t\tv2, changed = fastpathTV.DecMapIntUintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]int:\n\t\tfastpathTV.DecMapIntIntV(v, false, d)\n\tcase *map[int]int:\n\t\tvar v2 map[int]int\n\t\tv2, changed = fastpathTV.DecMapIntIntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]int64:\n\t\tfastpathTV.DecMapIntInt64V(v, false, d)\n\tcase *map[int]int64:\n\t\tvar v2 map[int]int64\n\t\tv2, changed = fastpathTV.DecMapIntInt64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]float32:\n\t\tfastpathTV.DecMapIntFloat32V(v, false, d)\n\tcase *map[int]float32:\n\t\tvar v2 map[int]float32\n\t\tv2, changed = fastpathTV.DecMapIntFloat32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]float64:\n\t\tfastpathTV.DecMapIntFloat64V(v, false, d)\n\tcase *map[int]float64:\n\t\tvar v2 map[int]float64\n\t\tv2, changed = fastpathTV.DecMapIntFloat64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int]bool:\n\t\tfastpathTV.DecMapIntBoolV(v, false, d)\n\tcase *map[int]bool:\n\t\tvar v2 map[int]bool\n\t\tv2, changed = fastpathTV.DecMapIntBoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]interface{}:\n\t\tfastpathTV.DecMapInt64IntfV(v, false, d)\n\tcase *map[int64]interface{}:\n\t\tvar v2 map[int64]interface{}\n\t\tv2, changed = fastpathTV.DecMapInt64IntfV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]string:\n\t\tfastpathTV.DecMapInt64StringV(v, false, d)\n\tcase *map[int64]string:\n\t\tvar v2 map[int64]string\n\t\tv2, changed = fastpathTV.DecMapInt64StringV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64][]byte:\n\t\tfastpathTV.DecMapInt64BytesV(v, false, d)\n\tcase *map[int64][]byte:\n\t\tvar v2 map[int64][]byte\n\t\tv2, changed = fastpathTV.DecMapInt64BytesV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]uint:\n\t\tfastpathTV.DecMapInt64UintV(v, false, d)\n\tcase *map[int64]uint:\n\t\tvar v2 map[int64]uint\n\t\tv2, changed = fastpathTV.DecMapInt64UintV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]uint8:\n\t\tfastpathTV.DecMapInt64Uint8V(v, false, d)\n\tcase *map[int64]uint8:\n\t\tvar v2 map[int64]uint8\n\t\tv2, changed = fastpathTV.DecMapInt64Uint8V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]uint64:\n\t\tfastpathTV.DecMapInt64Uint64V(v, false, d)\n\tcase *map[int64]uint64:\n\t\tvar v2 map[int64]uint64\n\t\tv2, changed = fastpathTV.DecMapInt64Uint64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]uintptr:\n\t\tfastpathTV.DecMapInt64UintptrV(v, false, d)\n\tcase *map[int64]uintptr:\n\t\tvar v2 map[int64]uintptr\n\t\tv2, changed = fastpathTV.DecMapInt64UintptrV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]int:\n\t\tfastpathTV.DecMapInt64IntV(v, false, d)\n\tcase *map[int64]int:\n\t\tvar v2 map[int64]int\n\t\tv2, changed = fastpathTV.DecMapInt64IntV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]int64:\n\t\tfastpathTV.DecMapInt64Int64V(v, false, d)\n\tcase *map[int64]int64:\n\t\tvar v2 map[int64]int64\n\t\tv2, changed = fastpathTV.DecMapInt64Int64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]float32:\n\t\tfastpathTV.DecMapInt64Float32V(v, false, d)\n\tcase *map[int64]float32:\n\t\tvar v2 map[int64]float32\n\t\tv2, changed = fastpathTV.DecMapInt64Float32V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]float64:\n\t\tfastpathTV.DecMapInt64Float64V(v, false, d)\n\tcase *map[int64]float64:\n\t\tvar v2 map[int64]float64\n\t\tv2, changed = fastpathTV.DecMapInt64Float64V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tcase map[int64]bool:\n\t\tfastpathTV.DecMapInt64BoolV(v, false, d)\n\tcase *map[int64]bool:\n\t\tvar v2 map[int64]bool\n\t\tv2, changed = fastpathTV.DecMapInt64BoolV(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2\n\t\t}\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc fastpathDecodeSetZeroTypeSwitch(iv interface{}) bool {\n\tswitch v := iv.(type) {\n\n\tcase *[]interface{}:\n\t\t*v = nil\n\tcase *[]string:\n\t\t*v = nil\n\tcase *[][]byte:\n\t\t*v = nil\n\tcase *[]float32:\n\t\t*v = nil\n\tcase *[]float64:\n\t\t*v = nil\n\tcase *[]uint:\n\t\t*v = nil\n\tcase *[]uint8:\n\t\t*v = nil\n\tcase *[]uint16:\n\t\t*v = nil\n\tcase *[]uint32:\n\t\t*v = nil\n\tcase *[]uint64:\n\t\t*v = nil\n\tcase *[]uintptr:\n\t\t*v = nil\n\tcase *[]int:\n\t\t*v = nil\n\tcase *[]int8:\n\t\t*v = nil\n\tcase *[]int16:\n\t\t*v = nil\n\tcase *[]int32:\n\t\t*v = nil\n\tcase *[]int64:\n\t\t*v = nil\n\tcase *[]bool:\n\t\t*v = nil\n\n\tcase *map[string]interface{}:\n\t\t*v = nil\n\tcase *map[string]string:\n\t\t*v = nil\n\tcase *map[string][]byte:\n\t\t*v = nil\n\tcase *map[string]uint:\n\t\t*v = nil\n\tcase *map[string]uint8:\n\t\t*v = nil\n\tcase *map[string]uint64:\n\t\t*v = nil\n\tcase *map[string]uintptr:\n\t\t*v = nil\n\tcase *map[string]int:\n\t\t*v = nil\n\tcase *map[string]int64:\n\t\t*v = nil\n\tcase *map[string]float32:\n\t\t*v = nil\n\tcase *map[string]float64:\n\t\t*v = nil\n\tcase *map[string]bool:\n\t\t*v = nil\n\tcase *map[uint]interface{}:\n\t\t*v = nil\n\tcase *map[uint]string:\n\t\t*v = nil\n\tcase *map[uint][]byte:\n\t\t*v = nil\n\tcase *map[uint]uint:\n\t\t*v = nil\n\tcase *map[uint]uint8:\n\t\t*v = nil\n\tcase *map[uint]uint64:\n\t\t*v = nil\n\tcase *map[uint]uintptr:\n\t\t*v = nil\n\tcase *map[uint]int:\n\t\t*v = nil\n\tcase *map[uint]int64:\n\t\t*v = nil\n\tcase *map[uint]float32:\n\t\t*v = nil\n\tcase *map[uint]float64:\n\t\t*v = nil\n\tcase *map[uint]bool:\n\t\t*v = nil\n\tcase *map[uint8]interface{}:\n\t\t*v = nil\n\tcase *map[uint8]string:\n\t\t*v = nil\n\tcase *map[uint8][]byte:\n\t\t*v = nil\n\tcase *map[uint8]uint:\n\t\t*v = nil\n\tcase *map[uint8]uint8:\n\t\t*v = nil\n\tcase *map[uint8]uint64:\n\t\t*v = nil\n\tcase *map[uint8]uintptr:\n\t\t*v = nil\n\tcase *map[uint8]int:\n\t\t*v = nil\n\tcase *map[uint8]int64:\n\t\t*v = nil\n\tcase *map[uint8]float32:\n\t\t*v = nil\n\tcase *map[uint8]float64:\n\t\t*v = nil\n\tcase *map[uint8]bool:\n\t\t*v = nil\n\tcase *map[uint64]interface{}:\n\t\t*v = nil\n\tcase *map[uint64]string:\n\t\t*v = nil\n\tcase *map[uint64][]byte:\n\t\t*v = nil\n\tcase *map[uint64]uint:\n\t\t*v = nil\n\tcase *map[uint64]uint8:\n\t\t*v = nil\n\tcase *map[uint64]uint64:\n\t\t*v = nil\n\tcase *map[uint64]uintptr:\n\t\t*v = nil\n\tcase *map[uint64]int:\n\t\t*v = nil\n\tcase *map[uint64]int64:\n\t\t*v = nil\n\tcase *map[uint64]float32:\n\t\t*v = nil\n\tcase *map[uint64]float64:\n\t\t*v = nil\n\tcase *map[uint64]bool:\n\t\t*v = nil\n\tcase *map[int]interface{}:\n\t\t*v = nil\n\tcase *map[int]string:\n\t\t*v = nil\n\tcase *map[int][]byte:\n\t\t*v = nil\n\tcase *map[int]uint:\n\t\t*v = nil\n\tcase *map[int]uint8:\n\t\t*v = nil\n\tcase *map[int]uint64:\n\t\t*v = nil\n\tcase *map[int]uintptr:\n\t\t*v = nil\n\tcase *map[int]int:\n\t\t*v = nil\n\tcase *map[int]int64:\n\t\t*v = nil\n\tcase *map[int]float32:\n\t\t*v = nil\n\tcase *map[int]float64:\n\t\t*v = nil\n\tcase *map[int]bool:\n\t\t*v = nil\n\tcase *map[int64]interface{}:\n\t\t*v = nil\n\tcase *map[int64]string:\n\t\t*v = nil\n\tcase *map[int64][]byte:\n\t\t*v = nil\n\tcase *map[int64]uint:\n\t\t*v = nil\n\tcase *map[int64]uint8:\n\t\t*v = nil\n\tcase *map[int64]uint64:\n\t\t*v = nil\n\tcase *map[int64]uintptr:\n\t\t*v = nil\n\tcase *map[int64]int:\n\t\t*v = nil\n\tcase *map[int64]int64:\n\t\t*v = nil\n\tcase *map[int64]float32:\n\t\t*v = nil\n\tcase *map[int64]float64:\n\t\t*v = nil\n\tcase *map[int64]bool:\n\t\t*v = nil\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\n// -- -- fast path functions\n\nfunc (d *Decoder) fastpathDecSliceIntfR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]interface{})\n\t\tif v, changed := fastpathTV.DecSliceIntfV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]interface{})\n\t\tv2, changed := fastpathTV.DecSliceIntfV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceIntfX(vp *[]interface{}, d *Decoder) {\n\tif v, changed := f.DecSliceIntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceIntfV(v []interface{}, canChange bool, d *Decoder) (_ []interface{}, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []interface{}{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]interface{}, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]interface{}, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, nil)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = nil\n\t\t} else {\n\t\t\td.decode(&v[uint(j)])\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]interface{}, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceStringR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]string)\n\t\tif v, changed := fastpathTV.DecSliceStringV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]string)\n\t\tv2, changed := fastpathTV.DecSliceStringV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceStringX(vp *[]string, d *Decoder) {\n\tif v, changed := f.DecSliceStringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceStringV(v []string, canChange bool, d *Decoder) (_ []string, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []string{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]string, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]string, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, \"\")\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = \"\"\n\t\t} else {\n\t\t\tv[uint(j)] = d.d.DecodeString()\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]string, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceBytesR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[][]byte)\n\t\tif v, changed := fastpathTV.DecSliceBytesV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([][]byte)\n\t\tv2, changed := fastpathTV.DecSliceBytesV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceBytesX(vp *[][]byte, d *Decoder) {\n\tif v, changed := f.DecSliceBytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceBytesV(v [][]byte, canChange bool, d *Decoder) (_ [][]byte, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = [][]byte{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 24)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([][]byte, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 24)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([][]byte, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, nil)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = nil\n\t\t} else {\n\t\t\tv[uint(j)] = d.d.DecodeBytes(nil, false)\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([][]byte, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]float32)\n\t\tif v, changed := fastpathTV.DecSliceFloat32V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]float32)\n\t\tv2, changed := fastpathTV.DecSliceFloat32V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceFloat32X(vp *[]float32, d *Decoder) {\n\tif v, changed := f.DecSliceFloat32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceFloat32V(v []float32, canChange bool, d *Decoder) (_ []float32, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []float32{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]float32, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]float32, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = float32(d.decodeFloat32())\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]float32, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]float64)\n\t\tif v, changed := fastpathTV.DecSliceFloat64V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]float64)\n\t\tv2, changed := fastpathTV.DecSliceFloat64V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceFloat64X(vp *[]float64, d *Decoder) {\n\tif v, changed := f.DecSliceFloat64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceFloat64V(v []float64, canChange bool, d *Decoder) (_ []float64, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []float64{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]float64, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]float64, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = d.d.DecodeFloat64()\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]float64, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceUintR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]uint)\n\t\tif v, changed := fastpathTV.DecSliceUintV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]uint)\n\t\tv2, changed := fastpathTV.DecSliceUintV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceUintX(vp *[]uint, d *Decoder) {\n\tif v, changed := f.DecSliceUintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceUintV(v []uint, canChange bool, d *Decoder) (_ []uint, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []uint{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]uint, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]uint, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]uint, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceUint8R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]uint8)\n\t\tif v, changed := fastpathTV.DecSliceUint8V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]uint8)\n\t\tv2, changed := fastpathTV.DecSliceUint8V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceUint8X(vp *[]uint8, d *Decoder) {\n\tif v, changed := f.DecSliceUint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceUint8V(v []uint8, canChange bool, d *Decoder) (_ []uint8, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []uint8{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]uint8, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]uint8, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]uint8, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceUint16R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]uint16)\n\t\tif v, changed := fastpathTV.DecSliceUint16V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]uint16)\n\t\tv2, changed := fastpathTV.DecSliceUint16V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceUint16X(vp *[]uint16, d *Decoder) {\n\tif v, changed := f.DecSliceUint16V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceUint16V(v []uint16, canChange bool, d *Decoder) (_ []uint16, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []uint16{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]uint16, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]uint16, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = uint16(chkOvf.UintV(d.d.DecodeUint64(), 16))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]uint16, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceUint32R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]uint32)\n\t\tif v, changed := fastpathTV.DecSliceUint32V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]uint32)\n\t\tv2, changed := fastpathTV.DecSliceUint32V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceUint32X(vp *[]uint32, d *Decoder) {\n\tif v, changed := f.DecSliceUint32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceUint32V(v []uint32, canChange bool, d *Decoder) (_ []uint32, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []uint32{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]uint32, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]uint32, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = uint32(chkOvf.UintV(d.d.DecodeUint64(), 32))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]uint32, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceUint64R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]uint64)\n\t\tif v, changed := fastpathTV.DecSliceUint64V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]uint64)\n\t\tv2, changed := fastpathTV.DecSliceUint64V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceUint64X(vp *[]uint64, d *Decoder) {\n\tif v, changed := f.DecSliceUint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceUint64V(v []uint64, canChange bool, d *Decoder) (_ []uint64, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []uint64{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]uint64, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]uint64, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = d.d.DecodeUint64()\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]uint64, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]uintptr)\n\t\tif v, changed := fastpathTV.DecSliceUintptrV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]uintptr)\n\t\tv2, changed := fastpathTV.DecSliceUintptrV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceUintptrX(vp *[]uintptr, d *Decoder) {\n\tif v, changed := f.DecSliceUintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceUintptrV(v []uintptr, canChange bool, d *Decoder) (_ []uintptr, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []uintptr{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]uintptr, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]uintptr, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]uintptr, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceIntR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]int)\n\t\tif v, changed := fastpathTV.DecSliceIntV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]int)\n\t\tv2, changed := fastpathTV.DecSliceIntV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceIntX(vp *[]int, d *Decoder) {\n\tif v, changed := f.DecSliceIntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceIntV(v []int, canChange bool, d *Decoder) (_ []int, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []int{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]int, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]int, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]int, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceInt8R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]int8)\n\t\tif v, changed := fastpathTV.DecSliceInt8V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]int8)\n\t\tv2, changed := fastpathTV.DecSliceInt8V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceInt8X(vp *[]int8, d *Decoder) {\n\tif v, changed := f.DecSliceInt8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceInt8V(v []int8, canChange bool, d *Decoder) (_ []int8, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []int8{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]int8, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]int8, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = int8(chkOvf.IntV(d.d.DecodeInt64(), 8))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]int8, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceInt16R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]int16)\n\t\tif v, changed := fastpathTV.DecSliceInt16V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]int16)\n\t\tv2, changed := fastpathTV.DecSliceInt16V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceInt16X(vp *[]int16, d *Decoder) {\n\tif v, changed := f.DecSliceInt16V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceInt16V(v []int16, canChange bool, d *Decoder) (_ []int16, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []int16{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]int16, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]int16, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = int16(chkOvf.IntV(d.d.DecodeInt64(), 16))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]int16, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceInt32R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]int32)\n\t\tif v, changed := fastpathTV.DecSliceInt32V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]int32)\n\t\tv2, changed := fastpathTV.DecSliceInt32V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceInt32X(vp *[]int32, d *Decoder) {\n\tif v, changed := f.DecSliceInt32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceInt32V(v []int32, canChange bool, d *Decoder) (_ []int32, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []int32{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]int32, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]int32, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = int32(chkOvf.IntV(d.d.DecodeInt64(), 32))\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]int32, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceInt64R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]int64)\n\t\tif v, changed := fastpathTV.DecSliceInt64V(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]int64)\n\t\tv2, changed := fastpathTV.DecSliceInt64V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceInt64X(vp *[]int64, d *Decoder) {\n\tif v, changed := f.DecSliceInt64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceInt64V(v []int64, canChange bool, d *Decoder) (_ []int64, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []int64{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]int64, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]int64, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, 0)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = 0\n\t\t} else {\n\t\t\tv[uint(j)] = d.d.DecodeInt64()\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]int64, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecSliceBoolR(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]bool)\n\t\tif v, changed := fastpathTV.DecSliceBoolV(*vp, !array, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tv := rv2i(rv).([]bool)\n\t\tv2, changed := fastpathTV.DecSliceBoolV(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) DecSliceBoolX(vp *[]bool, d *Decoder) {\n\tif v, changed := f.DecSliceBoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecSliceBoolV(v []bool, canChange bool, d *Decoder) (_ []bool, changed bool) {\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil {\n\t\t\t\tv = []bool{}\n\t\t\t} else if len(v) != 0 {\n\t\t\t\tv = v[:0]\n\t\t\t}\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int\n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]bool, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true\n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]bool, uint(xlen))\n\t\t\tchanged = true\n\t\t}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, false)\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t}\n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = false\n\t\t} else {\n\t\t\tv[uint(j)] = d.d.DecodeBool()\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]bool, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringIntfR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]interface{})\n\t\tif v, changed := fastpathTV.DecMapStringIntfV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringIntfV(rv2i(rv).(map[string]interface{}), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringIntfX(vp *map[string]interface{}, d *Decoder) {\n\tif v, changed := f.DecMapStringIntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringIntfV(v map[string]interface{}, canChange bool,\n\td *Decoder) (_ map[string]interface{}, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]interface{}, decInferLen(containerLen, d.h.MaxInitLen, 32))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n\tvar mk string\n\tvar mv interface{}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\td.decode(&mv)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringStringR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]string)\n\t\tif v, changed := fastpathTV.DecMapStringStringV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringStringV(rv2i(rv).(map[string]string), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringStringX(vp *map[string]string, d *Decoder) {\n\tif v, changed := f.DecMapStringStringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringStringV(v map[string]string, canChange bool,\n\td *Decoder) (_ map[string]string, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]string, decInferLen(containerLen, d.h.MaxInitLen, 32))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv string\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = \"\"\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeString()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringBytesR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string][]byte)\n\t\tif v, changed := fastpathTV.DecMapStringBytesV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringBytesV(rv2i(rv).(map[string][]byte), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringBytesX(vp *map[string][]byte, d *Decoder) {\n\tif v, changed := f.DecMapStringBytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringBytesV(v map[string][]byte, canChange bool,\n\td *Decoder) (_ map[string][]byte, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string][]byte, decInferLen(containerLen, d.h.MaxInitLen, 40))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset\n\tvar mk string\n\tvar mv []byte\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringUintR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]uint)\n\t\tif v, changed := fastpathTV.DecMapStringUintV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringUintV(rv2i(rv).(map[string]uint), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringUintX(vp *map[string]uint, d *Decoder) {\n\tif v, changed := f.DecMapStringUintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringUintV(v map[string]uint, canChange bool,\n\td *Decoder) (_ map[string]uint, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]uint, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv uint\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringUint8R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]uint8)\n\t\tif v, changed := fastpathTV.DecMapStringUint8V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringUint8V(rv2i(rv).(map[string]uint8), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringUint8X(vp *map[string]uint8, d *Decoder) {\n\tif v, changed := f.DecMapStringUint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringUint8V(v map[string]uint8, canChange bool,\n\td *Decoder) (_ map[string]uint8, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]uint8, decInferLen(containerLen, d.h.MaxInitLen, 17))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv uint8\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringUint64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]uint64)\n\t\tif v, changed := fastpathTV.DecMapStringUint64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringUint64V(rv2i(rv).(map[string]uint64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringUint64X(vp *map[string]uint64, d *Decoder) {\n\tif v, changed := f.DecMapStringUint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringUint64V(v map[string]uint64, canChange bool,\n\td *Decoder) (_ map[string]uint64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]uint64, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv uint64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeUint64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]uintptr)\n\t\tif v, changed := fastpathTV.DecMapStringUintptrV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringUintptrV(rv2i(rv).(map[string]uintptr), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringUintptrX(vp *map[string]uintptr, d *Decoder) {\n\tif v, changed := f.DecMapStringUintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringUintptrV(v map[string]uintptr, canChange bool,\n\td *Decoder) (_ map[string]uintptr, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]uintptr, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv uintptr\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringIntR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]int)\n\t\tif v, changed := fastpathTV.DecMapStringIntV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringIntV(rv2i(rv).(map[string]int), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringIntX(vp *map[string]int, d *Decoder) {\n\tif v, changed := f.DecMapStringIntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringIntV(v map[string]int, canChange bool,\n\td *Decoder) (_ map[string]int, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]int, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv int\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringInt64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]int64)\n\t\tif v, changed := fastpathTV.DecMapStringInt64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringInt64V(rv2i(rv).(map[string]int64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringInt64X(vp *map[string]int64, d *Decoder) {\n\tif v, changed := f.DecMapStringInt64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringInt64V(v map[string]int64, canChange bool,\n\td *Decoder) (_ map[string]int64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]int64, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv int64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeInt64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]float32)\n\t\tif v, changed := fastpathTV.DecMapStringFloat32V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringFloat32V(rv2i(rv).(map[string]float32), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringFloat32X(vp *map[string]float32, d *Decoder) {\n\tif v, changed := f.DecMapStringFloat32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringFloat32V(v map[string]float32, canChange bool,\n\td *Decoder) (_ map[string]float32, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]float32, decInferLen(containerLen, d.h.MaxInitLen, 20))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv float32\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = float32(d.decodeFloat32())\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]float64)\n\t\tif v, changed := fastpathTV.DecMapStringFloat64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringFloat64V(rv2i(rv).(map[string]float64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringFloat64X(vp *map[string]float64, d *Decoder) {\n\tif v, changed := f.DecMapStringFloat64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringFloat64V(v map[string]float64, canChange bool,\n\td *Decoder) (_ map[string]float64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]float64, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv float64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeFloat64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapStringBoolR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[string]bool)\n\t\tif v, changed := fastpathTV.DecMapStringBoolV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapStringBoolV(rv2i(rv).(map[string]bool), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapStringBoolX(vp *map[string]bool, d *Decoder) {\n\tif v, changed := f.DecMapStringBoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapStringBoolV(v map[string]bool, canChange bool,\n\td *Decoder) (_ map[string]bool, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[string]bool, decInferLen(containerLen, d.h.MaxInitLen, 17))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk string\n\tvar mv bool\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeString()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeBool()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintIntfR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]interface{})\n\t\tif v, changed := fastpathTV.DecMapUintIntfV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintIntfV(rv2i(rv).(map[uint]interface{}), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintIntfX(vp *map[uint]interface{}, d *Decoder) {\n\tif v, changed := f.DecMapUintIntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintIntfV(v map[uint]interface{}, canChange bool,\n\td *Decoder) (_ map[uint]interface{}, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]interface{}, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n\tvar mk uint\n\tvar mv interface{}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\td.decode(&mv)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintStringR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]string)\n\t\tif v, changed := fastpathTV.DecMapUintStringV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintStringV(rv2i(rv).(map[uint]string), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintStringX(vp *map[uint]string, d *Decoder) {\n\tif v, changed := f.DecMapUintStringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintStringV(v map[uint]string, canChange bool,\n\td *Decoder) (_ map[uint]string, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]string, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv string\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = \"\"\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeString()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintBytesR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint][]byte)\n\t\tif v, changed := fastpathTV.DecMapUintBytesV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintBytesV(rv2i(rv).(map[uint][]byte), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintBytesX(vp *map[uint][]byte, d *Decoder) {\n\tif v, changed := f.DecMapUintBytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintBytesV(v map[uint][]byte, canChange bool,\n\td *Decoder) (_ map[uint][]byte, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint][]byte, decInferLen(containerLen, d.h.MaxInitLen, 32))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset\n\tvar mk uint\n\tvar mv []byte\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintUintR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]uint)\n\t\tif v, changed := fastpathTV.DecMapUintUintV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintUintV(rv2i(rv).(map[uint]uint), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintUintX(vp *map[uint]uint, d *Decoder) {\n\tif v, changed := f.DecMapUintUintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintUintV(v map[uint]uint, canChange bool,\n\td *Decoder) (_ map[uint]uint, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]uint, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv uint\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintUint8R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]uint8)\n\t\tif v, changed := fastpathTV.DecMapUintUint8V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintUint8V(rv2i(rv).(map[uint]uint8), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintUint8X(vp *map[uint]uint8, d *Decoder) {\n\tif v, changed := f.DecMapUintUint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintUint8V(v map[uint]uint8, canChange bool,\n\td *Decoder) (_ map[uint]uint8, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]uint8, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv uint8\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintUint64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]uint64)\n\t\tif v, changed := fastpathTV.DecMapUintUint64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintUint64V(rv2i(rv).(map[uint]uint64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintUint64X(vp *map[uint]uint64, d *Decoder) {\n\tif v, changed := f.DecMapUintUint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintUint64V(v map[uint]uint64, canChange bool,\n\td *Decoder) (_ map[uint]uint64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]uint64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv uint64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeUint64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]uintptr)\n\t\tif v, changed := fastpathTV.DecMapUintUintptrV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintUintptrV(rv2i(rv).(map[uint]uintptr), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintUintptrX(vp *map[uint]uintptr, d *Decoder) {\n\tif v, changed := f.DecMapUintUintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintUintptrV(v map[uint]uintptr, canChange bool,\n\td *Decoder) (_ map[uint]uintptr, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]uintptr, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv uintptr\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintIntR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]int)\n\t\tif v, changed := fastpathTV.DecMapUintIntV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintIntV(rv2i(rv).(map[uint]int), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintIntX(vp *map[uint]int, d *Decoder) {\n\tif v, changed := f.DecMapUintIntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintIntV(v map[uint]int, canChange bool,\n\td *Decoder) (_ map[uint]int, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]int, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv int\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintInt64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]int64)\n\t\tif v, changed := fastpathTV.DecMapUintInt64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintInt64V(rv2i(rv).(map[uint]int64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintInt64X(vp *map[uint]int64, d *Decoder) {\n\tif v, changed := f.DecMapUintInt64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintInt64V(v map[uint]int64, canChange bool,\n\td *Decoder) (_ map[uint]int64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]int64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv int64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeInt64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]float32)\n\t\tif v, changed := fastpathTV.DecMapUintFloat32V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintFloat32V(rv2i(rv).(map[uint]float32), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintFloat32X(vp *map[uint]float32, d *Decoder) {\n\tif v, changed := f.DecMapUintFloat32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintFloat32V(v map[uint]float32, canChange bool,\n\td *Decoder) (_ map[uint]float32, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]float32, decInferLen(containerLen, d.h.MaxInitLen, 12))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv float32\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = float32(d.decodeFloat32())\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]float64)\n\t\tif v, changed := fastpathTV.DecMapUintFloat64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintFloat64V(rv2i(rv).(map[uint]float64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintFloat64X(vp *map[uint]float64, d *Decoder) {\n\tif v, changed := f.DecMapUintFloat64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintFloat64V(v map[uint]float64, canChange bool,\n\td *Decoder) (_ map[uint]float64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]float64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv float64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeFloat64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUintBoolR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint]bool)\n\t\tif v, changed := fastpathTV.DecMapUintBoolV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUintBoolV(rv2i(rv).(map[uint]bool), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUintBoolX(vp *map[uint]bool, d *Decoder) {\n\tif v, changed := f.DecMapUintBoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUintBoolV(v map[uint]bool, canChange bool,\n\td *Decoder) (_ map[uint]bool, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint]bool, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint\n\tvar mv bool\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeBool()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8IntfR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]interface{})\n\t\tif v, changed := fastpathTV.DecMapUint8IntfV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8IntfV(rv2i(rv).(map[uint8]interface{}), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8IntfX(vp *map[uint8]interface{}, d *Decoder) {\n\tif v, changed := f.DecMapUint8IntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8IntfV(v map[uint8]interface{}, canChange bool,\n\td *Decoder) (_ map[uint8]interface{}, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]interface{}, decInferLen(containerLen, d.h.MaxInitLen, 17))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n\tvar mk uint8\n\tvar mv interface{}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\td.decode(&mv)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8StringR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]string)\n\t\tif v, changed := fastpathTV.DecMapUint8StringV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8StringV(rv2i(rv).(map[uint8]string), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8StringX(vp *map[uint8]string, d *Decoder) {\n\tif v, changed := f.DecMapUint8StringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8StringV(v map[uint8]string, canChange bool,\n\td *Decoder) (_ map[uint8]string, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]string, decInferLen(containerLen, d.h.MaxInitLen, 17))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv string\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = \"\"\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeString()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8BytesR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8][]byte)\n\t\tif v, changed := fastpathTV.DecMapUint8BytesV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8BytesV(rv2i(rv).(map[uint8][]byte), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8BytesX(vp *map[uint8][]byte, d *Decoder) {\n\tif v, changed := f.DecMapUint8BytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8BytesV(v map[uint8][]byte, canChange bool,\n\td *Decoder) (_ map[uint8][]byte, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8][]byte, decInferLen(containerLen, d.h.MaxInitLen, 25))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset\n\tvar mk uint8\n\tvar mv []byte\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8UintR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]uint)\n\t\tif v, changed := fastpathTV.DecMapUint8UintV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8UintV(rv2i(rv).(map[uint8]uint), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8UintX(vp *map[uint8]uint, d *Decoder) {\n\tif v, changed := f.DecMapUint8UintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8UintV(v map[uint8]uint, canChange bool,\n\td *Decoder) (_ map[uint8]uint, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]uint, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv uint\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8Uint8R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]uint8)\n\t\tif v, changed := fastpathTV.DecMapUint8Uint8V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8Uint8V(rv2i(rv).(map[uint8]uint8), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8Uint8X(vp *map[uint8]uint8, d *Decoder) {\n\tif v, changed := f.DecMapUint8Uint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8Uint8V(v map[uint8]uint8, canChange bool,\n\td *Decoder) (_ map[uint8]uint8, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]uint8, decInferLen(containerLen, d.h.MaxInitLen, 2))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv uint8\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8Uint64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]uint64)\n\t\tif v, changed := fastpathTV.DecMapUint8Uint64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8Uint64V(rv2i(rv).(map[uint8]uint64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8Uint64X(vp *map[uint8]uint64, d *Decoder) {\n\tif v, changed := f.DecMapUint8Uint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8Uint64V(v map[uint8]uint64, canChange bool,\n\td *Decoder) (_ map[uint8]uint64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]uint64, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv uint64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeUint64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8UintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]uintptr)\n\t\tif v, changed := fastpathTV.DecMapUint8UintptrV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8UintptrV(rv2i(rv).(map[uint8]uintptr), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8UintptrX(vp *map[uint8]uintptr, d *Decoder) {\n\tif v, changed := f.DecMapUint8UintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8UintptrV(v map[uint8]uintptr, canChange bool,\n\td *Decoder) (_ map[uint8]uintptr, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]uintptr, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv uintptr\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8IntR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]int)\n\t\tif v, changed := fastpathTV.DecMapUint8IntV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8IntV(rv2i(rv).(map[uint8]int), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8IntX(vp *map[uint8]int, d *Decoder) {\n\tif v, changed := f.DecMapUint8IntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8IntV(v map[uint8]int, canChange bool,\n\td *Decoder) (_ map[uint8]int, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]int, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv int\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8Int64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]int64)\n\t\tif v, changed := fastpathTV.DecMapUint8Int64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8Int64V(rv2i(rv).(map[uint8]int64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8Int64X(vp *map[uint8]int64, d *Decoder) {\n\tif v, changed := f.DecMapUint8Int64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8Int64V(v map[uint8]int64, canChange bool,\n\td *Decoder) (_ map[uint8]int64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]int64, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv int64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeInt64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8Float32R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]float32)\n\t\tif v, changed := fastpathTV.DecMapUint8Float32V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8Float32V(rv2i(rv).(map[uint8]float32), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8Float32X(vp *map[uint8]float32, d *Decoder) {\n\tif v, changed := f.DecMapUint8Float32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8Float32V(v map[uint8]float32, canChange bool,\n\td *Decoder) (_ map[uint8]float32, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]float32, decInferLen(containerLen, d.h.MaxInitLen, 5))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv float32\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = float32(d.decodeFloat32())\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8Float64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]float64)\n\t\tif v, changed := fastpathTV.DecMapUint8Float64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8Float64V(rv2i(rv).(map[uint8]float64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8Float64X(vp *map[uint8]float64, d *Decoder) {\n\tif v, changed := f.DecMapUint8Float64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8Float64V(v map[uint8]float64, canChange bool,\n\td *Decoder) (_ map[uint8]float64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]float64, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv float64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeFloat64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint8BoolR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint8]bool)\n\t\tif v, changed := fastpathTV.DecMapUint8BoolV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint8BoolV(rv2i(rv).(map[uint8]bool), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint8BoolX(vp *map[uint8]bool, d *Decoder) {\n\tif v, changed := f.DecMapUint8BoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint8BoolV(v map[uint8]bool, canChange bool,\n\td *Decoder) (_ map[uint8]bool, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint8]bool, decInferLen(containerLen, d.h.MaxInitLen, 2))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint8\n\tvar mv bool\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeBool()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64IntfR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]interface{})\n\t\tif v, changed := fastpathTV.DecMapUint64IntfV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64IntfV(rv2i(rv).(map[uint64]interface{}), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64IntfX(vp *map[uint64]interface{}, d *Decoder) {\n\tif v, changed := f.DecMapUint64IntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64IntfV(v map[uint64]interface{}, canChange bool,\n\td *Decoder) (_ map[uint64]interface{}, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]interface{}, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n\tvar mk uint64\n\tvar mv interface{}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\td.decode(&mv)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64StringR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]string)\n\t\tif v, changed := fastpathTV.DecMapUint64StringV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64StringV(rv2i(rv).(map[uint64]string), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64StringX(vp *map[uint64]string, d *Decoder) {\n\tif v, changed := f.DecMapUint64StringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64StringV(v map[uint64]string, canChange bool,\n\td *Decoder) (_ map[uint64]string, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]string, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv string\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = \"\"\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeString()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64BytesR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64][]byte)\n\t\tif v, changed := fastpathTV.DecMapUint64BytesV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64BytesV(rv2i(rv).(map[uint64][]byte), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64BytesX(vp *map[uint64][]byte, d *Decoder) {\n\tif v, changed := f.DecMapUint64BytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64BytesV(v map[uint64][]byte, canChange bool,\n\td *Decoder) (_ map[uint64][]byte, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64][]byte, decInferLen(containerLen, d.h.MaxInitLen, 32))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset\n\tvar mk uint64\n\tvar mv []byte\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64UintR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]uint)\n\t\tif v, changed := fastpathTV.DecMapUint64UintV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64UintV(rv2i(rv).(map[uint64]uint), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64UintX(vp *map[uint64]uint, d *Decoder) {\n\tif v, changed := f.DecMapUint64UintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64UintV(v map[uint64]uint, canChange bool,\n\td *Decoder) (_ map[uint64]uint, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]uint, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv uint\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64Uint8R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]uint8)\n\t\tif v, changed := fastpathTV.DecMapUint64Uint8V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64Uint8V(rv2i(rv).(map[uint64]uint8), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64Uint8X(vp *map[uint64]uint8, d *Decoder) {\n\tif v, changed := f.DecMapUint64Uint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64Uint8V(v map[uint64]uint8, canChange bool,\n\td *Decoder) (_ map[uint64]uint8, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]uint8, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv uint8\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64Uint64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]uint64)\n\t\tif v, changed := fastpathTV.DecMapUint64Uint64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64Uint64V(rv2i(rv).(map[uint64]uint64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64Uint64X(vp *map[uint64]uint64, d *Decoder) {\n\tif v, changed := f.DecMapUint64Uint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64Uint64V(v map[uint64]uint64, canChange bool,\n\td *Decoder) (_ map[uint64]uint64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]uint64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv uint64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeUint64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64UintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]uintptr)\n\t\tif v, changed := fastpathTV.DecMapUint64UintptrV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64UintptrV(rv2i(rv).(map[uint64]uintptr), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64UintptrX(vp *map[uint64]uintptr, d *Decoder) {\n\tif v, changed := f.DecMapUint64UintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64UintptrV(v map[uint64]uintptr, canChange bool,\n\td *Decoder) (_ map[uint64]uintptr, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]uintptr, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv uintptr\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64IntR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]int)\n\t\tif v, changed := fastpathTV.DecMapUint64IntV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64IntV(rv2i(rv).(map[uint64]int), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64IntX(vp *map[uint64]int, d *Decoder) {\n\tif v, changed := f.DecMapUint64IntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64IntV(v map[uint64]int, canChange bool,\n\td *Decoder) (_ map[uint64]int, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]int, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv int\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64Int64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]int64)\n\t\tif v, changed := fastpathTV.DecMapUint64Int64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64Int64V(rv2i(rv).(map[uint64]int64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64Int64X(vp *map[uint64]int64, d *Decoder) {\n\tif v, changed := f.DecMapUint64Int64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64Int64V(v map[uint64]int64, canChange bool,\n\td *Decoder) (_ map[uint64]int64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]int64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv int64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeInt64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64Float32R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]float32)\n\t\tif v, changed := fastpathTV.DecMapUint64Float32V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64Float32V(rv2i(rv).(map[uint64]float32), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64Float32X(vp *map[uint64]float32, d *Decoder) {\n\tif v, changed := f.DecMapUint64Float32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64Float32V(v map[uint64]float32, canChange bool,\n\td *Decoder) (_ map[uint64]float32, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]float32, decInferLen(containerLen, d.h.MaxInitLen, 12))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv float32\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = float32(d.decodeFloat32())\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64Float64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]float64)\n\t\tif v, changed := fastpathTV.DecMapUint64Float64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64Float64V(rv2i(rv).(map[uint64]float64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64Float64X(vp *map[uint64]float64, d *Decoder) {\n\tif v, changed := f.DecMapUint64Float64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64Float64V(v map[uint64]float64, canChange bool,\n\td *Decoder) (_ map[uint64]float64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]float64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv float64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeFloat64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapUint64BoolR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[uint64]bool)\n\t\tif v, changed := fastpathTV.DecMapUint64BoolV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapUint64BoolV(rv2i(rv).(map[uint64]bool), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapUint64BoolX(vp *map[uint64]bool, d *Decoder) {\n\tif v, changed := f.DecMapUint64BoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapUint64BoolV(v map[uint64]bool, canChange bool,\n\td *Decoder) (_ map[uint64]bool, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[uint64]bool, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk uint64\n\tvar mv bool\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeUint64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeBool()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntIntfR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]interface{})\n\t\tif v, changed := fastpathTV.DecMapIntIntfV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntIntfV(rv2i(rv).(map[int]interface{}), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntIntfX(vp *map[int]interface{}, d *Decoder) {\n\tif v, changed := f.DecMapIntIntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntIntfV(v map[int]interface{}, canChange bool,\n\td *Decoder) (_ map[int]interface{}, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]interface{}, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n\tvar mk int\n\tvar mv interface{}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\td.decode(&mv)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntStringR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]string)\n\t\tif v, changed := fastpathTV.DecMapIntStringV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntStringV(rv2i(rv).(map[int]string), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntStringX(vp *map[int]string, d *Decoder) {\n\tif v, changed := f.DecMapIntStringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntStringV(v map[int]string, canChange bool,\n\td *Decoder) (_ map[int]string, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]string, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv string\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = \"\"\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeString()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntBytesR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int][]byte)\n\t\tif v, changed := fastpathTV.DecMapIntBytesV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntBytesV(rv2i(rv).(map[int][]byte), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntBytesX(vp *map[int][]byte, d *Decoder) {\n\tif v, changed := f.DecMapIntBytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntBytesV(v map[int][]byte, canChange bool,\n\td *Decoder) (_ map[int][]byte, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int][]byte, decInferLen(containerLen, d.h.MaxInitLen, 32))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset\n\tvar mk int\n\tvar mv []byte\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntUintR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]uint)\n\t\tif v, changed := fastpathTV.DecMapIntUintV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntUintV(rv2i(rv).(map[int]uint), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntUintX(vp *map[int]uint, d *Decoder) {\n\tif v, changed := f.DecMapIntUintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntUintV(v map[int]uint, canChange bool,\n\td *Decoder) (_ map[int]uint, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]uint, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv uint\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntUint8R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]uint8)\n\t\tif v, changed := fastpathTV.DecMapIntUint8V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntUint8V(rv2i(rv).(map[int]uint8), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntUint8X(vp *map[int]uint8, d *Decoder) {\n\tif v, changed := f.DecMapIntUint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntUint8V(v map[int]uint8, canChange bool,\n\td *Decoder) (_ map[int]uint8, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]uint8, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv uint8\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntUint64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]uint64)\n\t\tif v, changed := fastpathTV.DecMapIntUint64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntUint64V(rv2i(rv).(map[int]uint64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntUint64X(vp *map[int]uint64, d *Decoder) {\n\tif v, changed := f.DecMapIntUint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntUint64V(v map[int]uint64, canChange bool,\n\td *Decoder) (_ map[int]uint64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]uint64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv uint64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeUint64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntUintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]uintptr)\n\t\tif v, changed := fastpathTV.DecMapIntUintptrV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntUintptrV(rv2i(rv).(map[int]uintptr), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntUintptrX(vp *map[int]uintptr, d *Decoder) {\n\tif v, changed := f.DecMapIntUintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntUintptrV(v map[int]uintptr, canChange bool,\n\td *Decoder) (_ map[int]uintptr, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]uintptr, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv uintptr\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntIntR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]int)\n\t\tif v, changed := fastpathTV.DecMapIntIntV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntIntV(rv2i(rv).(map[int]int), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntIntX(vp *map[int]int, d *Decoder) {\n\tif v, changed := f.DecMapIntIntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntIntV(v map[int]int, canChange bool,\n\td *Decoder) (_ map[int]int, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]int, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv int\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntInt64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]int64)\n\t\tif v, changed := fastpathTV.DecMapIntInt64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntInt64V(rv2i(rv).(map[int]int64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntInt64X(vp *map[int]int64, d *Decoder) {\n\tif v, changed := f.DecMapIntInt64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntInt64V(v map[int]int64, canChange bool,\n\td *Decoder) (_ map[int]int64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]int64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv int64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeInt64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntFloat32R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]float32)\n\t\tif v, changed := fastpathTV.DecMapIntFloat32V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntFloat32V(rv2i(rv).(map[int]float32), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntFloat32X(vp *map[int]float32, d *Decoder) {\n\tif v, changed := f.DecMapIntFloat32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntFloat32V(v map[int]float32, canChange bool,\n\td *Decoder) (_ map[int]float32, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]float32, decInferLen(containerLen, d.h.MaxInitLen, 12))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv float32\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = float32(d.decodeFloat32())\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntFloat64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]float64)\n\t\tif v, changed := fastpathTV.DecMapIntFloat64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntFloat64V(rv2i(rv).(map[int]float64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntFloat64X(vp *map[int]float64, d *Decoder) {\n\tif v, changed := f.DecMapIntFloat64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntFloat64V(v map[int]float64, canChange bool,\n\td *Decoder) (_ map[int]float64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]float64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv float64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeFloat64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapIntBoolR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int]bool)\n\t\tif v, changed := fastpathTV.DecMapIntBoolV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapIntBoolV(rv2i(rv).(map[int]bool), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapIntBoolX(vp *map[int]bool, d *Decoder) {\n\tif v, changed := f.DecMapIntBoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapIntBoolV(v map[int]bool, canChange bool,\n\td *Decoder) (_ map[int]bool, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int]bool, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int\n\tvar mv bool\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeBool()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64IntfR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]interface{})\n\t\tif v, changed := fastpathTV.DecMapInt64IntfV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64IntfV(rv2i(rv).(map[int64]interface{}), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64IntfX(vp *map[int64]interface{}, d *Decoder) {\n\tif v, changed := f.DecMapInt64IntfV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64IntfV(v map[int64]interface{}, canChange bool,\n\td *Decoder) (_ map[int64]interface{}, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]interface{}, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n\tvar mk int64\n\tvar mv interface{}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\td.decode(&mv)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64StringR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]string)\n\t\tif v, changed := fastpathTV.DecMapInt64StringV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64StringV(rv2i(rv).(map[int64]string), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64StringX(vp *map[int64]string, d *Decoder) {\n\tif v, changed := f.DecMapInt64StringV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64StringV(v map[int64]string, canChange bool,\n\td *Decoder) (_ map[int64]string, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]string, decInferLen(containerLen, d.h.MaxInitLen, 24))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv string\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = \"\"\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeString()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64BytesR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64][]byte)\n\t\tif v, changed := fastpathTV.DecMapInt64BytesV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64BytesV(rv2i(rv).(map[int64][]byte), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64BytesX(vp *map[int64][]byte, d *Decoder) {\n\tif v, changed := f.DecMapInt64BytesV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64BytesV(v map[int64][]byte, canChange bool,\n\td *Decoder) (_ map[int64][]byte, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64][]byte, decInferLen(containerLen, d.h.MaxInitLen, 32))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tmapGet := v != nil && !d.h.MapValueReset\n\tvar mk int64\n\tvar mv []byte\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = nil\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif mapGet {\n\t\t\tmv = v[mk]\n\t\t} else {\n\t\t\tmv = nil\n\t\t}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64UintR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]uint)\n\t\tif v, changed := fastpathTV.DecMapInt64UintV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64UintV(rv2i(rv).(map[int64]uint), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64UintX(vp *map[int64]uint, d *Decoder) {\n\tif v, changed := f.DecMapInt64UintV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64UintV(v map[int64]uint, canChange bool,\n\td *Decoder) (_ map[int64]uint, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]uint, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv uint\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64Uint8R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]uint8)\n\t\tif v, changed := fastpathTV.DecMapInt64Uint8V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64Uint8V(rv2i(rv).(map[int64]uint8), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64Uint8X(vp *map[int64]uint8, d *Decoder) {\n\tif v, changed := f.DecMapInt64Uint8V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64Uint8V(v map[int64]uint8, canChange bool,\n\td *Decoder) (_ map[int64]uint8, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]uint8, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv uint8\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64Uint64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]uint64)\n\t\tif v, changed := fastpathTV.DecMapInt64Uint64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64Uint64V(rv2i(rv).(map[int64]uint64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64Uint64X(vp *map[int64]uint64, d *Decoder) {\n\tif v, changed := f.DecMapInt64Uint64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64Uint64V(v map[int64]uint64, canChange bool,\n\td *Decoder) (_ map[int64]uint64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]uint64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv uint64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeUint64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64UintptrR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]uintptr)\n\t\tif v, changed := fastpathTV.DecMapInt64UintptrV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64UintptrV(rv2i(rv).(map[int64]uintptr), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64UintptrX(vp *map[int64]uintptr, d *Decoder) {\n\tif v, changed := f.DecMapInt64UintptrV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64UintptrV(v map[int64]uintptr, canChange bool,\n\td *Decoder) (_ map[int64]uintptr, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]uintptr, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv uintptr\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64IntR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]int)\n\t\tif v, changed := fastpathTV.DecMapInt64IntV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64IntV(rv2i(rv).(map[int64]int), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64IntX(vp *map[int64]int, d *Decoder) {\n\tif v, changed := f.DecMapInt64IntV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64IntV(v map[int64]int, canChange bool,\n\td *Decoder) (_ map[int64]int, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]int, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv int\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64Int64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]int64)\n\t\tif v, changed := fastpathTV.DecMapInt64Int64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64Int64V(rv2i(rv).(map[int64]int64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64Int64X(vp *map[int64]int64, d *Decoder) {\n\tif v, changed := f.DecMapInt64Int64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64Int64V(v map[int64]int64, canChange bool,\n\td *Decoder) (_ map[int64]int64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]int64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv int64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeInt64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64Float32R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]float32)\n\t\tif v, changed := fastpathTV.DecMapInt64Float32V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64Float32V(rv2i(rv).(map[int64]float32), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64Float32X(vp *map[int64]float32, d *Decoder) {\n\tif v, changed := f.DecMapInt64Float32V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64Float32V(v map[int64]float32, canChange bool,\n\td *Decoder) (_ map[int64]float32, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]float32, decInferLen(containerLen, d.h.MaxInitLen, 12))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv float32\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = float32(d.decodeFloat32())\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64Float64R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]float64)\n\t\tif v, changed := fastpathTV.DecMapInt64Float64V(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64Float64V(rv2i(rv).(map[int64]float64), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64Float64X(vp *map[int64]float64, d *Decoder) {\n\tif v, changed := f.DecMapInt64Float64V(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64Float64V(v map[int64]float64, canChange bool,\n\td *Decoder) (_ map[int64]float64, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]float64, decInferLen(containerLen, d.h.MaxInitLen, 16))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv float64\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeFloat64()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n\nfunc (d *Decoder) fastpathDecMapInt64BoolR(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[int64]bool)\n\t\tif v, changed := fastpathTV.DecMapInt64BoolV(*vp, true, d); changed {\n\t\t\t*vp = v\n\t\t}\n\t} else {\n\t\tfastpathTV.DecMapInt64BoolV(rv2i(rv).(map[int64]bool), false, d)\n\t}\n}\nfunc (f fastpathT) DecMapInt64BoolX(vp *map[int64]bool, d *Decoder) {\n\tif v, changed := f.DecMapInt64BoolV(*vp, true, d); changed {\n\t\t*vp = v\n\t}\n}\nfunc (fastpathT) DecMapInt64BoolV(v map[int64]bool, canChange bool,\n\td *Decoder) (_ map[int64]bool, changed bool) {\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[int64]bool, decInferLen(containerLen, d.h.MaxInitLen, 9))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\tvar mk int64\n\tvar mv bool\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\tmk = d.d.DecodeInt64()\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {\n\t\t\t} else if d.h.DeleteOnNilMapValue {\n\t\t\t\tdelete(v, mk)\n\t\t\t} else {\n\t\t\t\tv[mk] = false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tmv = d.d.DecodeBool()\n\t\tif v != nil {\n\t\t\tv[mk] = mv\n\t\t}\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/fast-path.go.tmpl",
    "content": "// +build !notfastpath\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from fast-path.go.tmpl - DO NOT EDIT.\n\npackage codec\n\n// Fast path functions try to create a fast path encode or decode implementation\n// for common maps and slices.\n//\n// We define the functions and register them in this single file\n// so as not to pollute the encode.go and decode.go, and create a dependency in there.\n// This file can be omitted without causing a build failure.\n//\n// The advantage of fast paths is:\n//\t  - Many calls bypass reflection altogether\n// \n// Currently support\n//\t  - slice of all builtin types (numeric, bool, string, []byte)\n//    - maps of builtin types to builtin or interface{} type, EXCEPT FOR\n//      keys of type uintptr, int8/16/32, uint16/32, float32/64, bool, interface{}\n//      AND values of type type int8/16/32, uint16/32\n// This should provide adequate \"typical\" implementations.\n// \n// Note that fast track decode functions must handle values for which an address cannot be obtained.\n// For example: \n//\t m2 := map[string]int{}\n//\t p2 := []interface{}{m2}\n//\t // decoding into p2 will bomb if fast track functions do not treat like unaddressable.\n// \n\nimport (\n\t\"reflect\"\n\t\"sort\"\n)\n\nconst fastpathEnabled = true\n\nconst fastpathMapBySliceErrMsg = \"mapBySlice requires even slice length, but got %v\"\n\ntype fastpathT struct {}\n\nvar fastpathTV fastpathT\n\ntype fastpathE struct {\n\trtid uintptr\n\trt reflect.Type \n\tencfn func(*Encoder, *codecFnInfo, reflect.Value)\n\tdecfn func(*Decoder, *codecFnInfo, reflect.Value)\n}\n\ntype fastpathA [{{ .FastpathLen }}]fastpathE\n\nfunc (x *fastpathA) index(rtid uintptr) int {\n\t// use binary search to grab the index (adapted from sort/search.go)\n\t// Note: we use goto (instead of for loop) so this can be inlined.\n \t// h, i, j := 0, 0, len(x)\n\tvar h, i uint\n\tvar j = uint(len(x))\nLOOP:\n\tif i < j {\n\t\th = i + (j-i)/2\n\t\tif x[h].rtid < rtid {\n\t\t\ti = h + 1\n\t\t} else {\n\t\t\tj = h\n\t\t}\n\t\tgoto LOOP\n\t}\n\tif i < uint(len(x)) && x[i].rtid == rtid {\n\t\treturn int(i)\n\t}\n\treturn -1\n}\n\ntype fastpathAslice []fastpathE\n\nfunc (x fastpathAslice) Len() int { return len(x) }\nfunc (x fastpathAslice) Less(i, j int) bool { return x[uint(i)].rtid < x[uint(j)].rtid }\nfunc (x fastpathAslice) Swap(i, j int) { x[uint(i)], x[uint(j)] = x[uint(j)], x[uint(i)] }\n\nvar fastpathAV fastpathA\n\n// due to possible initialization loop error, make fastpath in an init()\nfunc init() {\n\tvar i uint = 0\n\tfn := func(v interface{},\n\t\tfe func(*Encoder, *codecFnInfo, reflect.Value),\n\t\tfd func(*Decoder, *codecFnInfo, reflect.Value)) {\n\t\txrt := reflect.TypeOf(v)\n\t\txptr := rt2id(xrt)\n\t\tfastpathAV[i] = fastpathE{xptr, xrt, fe, fd}\n\t\ti++\n\t}\n\t{{/* do not register []uint8 in fast-path */}}\n\t{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}{{if ne .Elem \"uint8\"}}\n\tfn([]{{ .Elem }}(nil), (*Encoder).{{ .MethodNamePfx \"fastpathEnc\" false }}R, (*Decoder).{{ .MethodNamePfx \"fastpathDec\" false }}R){{end}}{{end}}{{end}}{{end}}\n\t\n\t{{range .Values}}{{if not .Primitive}}{{if .MapKey }}\n\tfn(map[{{ .MapKey }}]{{ .Elem }}(nil), (*Encoder).{{ .MethodNamePfx \"fastpathEnc\" false }}R, (*Decoder).{{ .MethodNamePfx \"fastpathDec\" false }}R){{end}}{{end}}{{end}}\n\t\n\tsort.Sort(fastpathAslice(fastpathAV[:]))\n}\n\n// -- encode\n\n// -- -- fast path type switch\nfunc fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool {\n\tswitch v := iv.(type) {\n\n{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}{{if ne .Elem \"uint8\"}}\n\tcase []{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(v, e)\n\tcase *[]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(*v, e){{/*\n*/}}{{end}}{{end}}{{end}}{{end}}\n\n{{range .Values}}{{if not .Primitive}}{{if .MapKey }}\n\tcase map[{{ .MapKey }}]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(v, e)\n\tcase *map[{{ .MapKey }}]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(*v, e){{/*\n*/}}{{end}}{{end}}{{end}}\n\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\n{{/*\n**** removing this block, as they are never called directly ****\n\n\n\n**** removing this block, as they are never called directly ****\n\n\n\nfunc fastpathEncodeTypeSwitchSlice(iv interface{}, e *Encoder) bool {\n\tswitch v := iv.(type) {\n{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}\n\tcase []{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(v, e)\n\tcase *[]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(*v, e)\n{{end}}{{end}}{{end}}\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc fastpathEncodeTypeSwitchMap(iv interface{}, e *Encoder) bool {\n\tswitch v := iv.(type) {\n{{range .Values}}{{if not .Primitive}}{{if .MapKey }}\n\tcase map[{{ .MapKey }}]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(v, e)\n\tcase *map[{{ .MapKey }}]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(*v, e)\n{{end}}{{end}}{{end}}\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\n\n\n**** removing this block, as they are never called directly ****\n\n\n\n**** removing this block, as they are never called directly ****\n*/}}\n\n// -- -- fast path functions\n{{range .Values}}{{if not .Primitive}}{{if not .MapKey }} \nfunc (e *Encoder) {{ .MethodNamePfx \"fastpathEnc\" false }}R(f *codecFnInfo, rv reflect.Value) {\n\tif f.ti.mbs {\n\t\tfastpathTV.{{ .MethodNamePfx \"EncAsMap\" false }}V(rv2i(rv).([]{{ .Elem }}), e)\n\t} else {\n\t\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(rv2i(rv).([]{{ .Elem }}), e)\n\t}\n}\nfunc (fastpathT) {{ .MethodNamePfx \"Enc\" false }}V(v []{{ .Elem }}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n\t\treturn\n\t}\n\te.arrayStart(len(v))\n\tfor j := range v {\n\t\te.arrayElem()\n\t\t{{ encmd .Elem \"v[j]\"}}\n\t} \n\te.arrayEnd()\n}\nfunc (fastpathT) {{ .MethodNamePfx \"EncAsMap\" false }}V(v []{{ .Elem }}, e *Encoder) {\n\tif v == nil {\n\t\te.e.EncodeNil()\n    } else if len(v)%2 == 1 {\n\t\te.errorf(fastpathMapBySliceErrMsg, len(v))\n\t} else {\n\t\te.mapStart(len(v) / 2)\n\t\tfor j := range v {\n\t\t\tif j%2 == 0 {\n\t\t\t\te.mapElemKey()\n\t\t\t} else {\n\t\t\t\te.mapElemValue()\n\t\t\t}\n\t\t\t{{ encmd .Elem \"v[j]\"}}\n \t\t}\n\t\te.mapEnd()\n\t}\n}\n{{end}}{{end}}{{end}}\n\n{{range .Values}}{{if not .Primitive}}{{if .MapKey }}\nfunc (e *Encoder) {{ .MethodNamePfx \"fastpathEnc\" false }}R(f *codecFnInfo, rv reflect.Value) {\n\tfastpathTV.{{ .MethodNamePfx \"Enc\" false }}V(rv2i(rv).(map[{{ .MapKey }}]{{ .Elem }}), e)\n}\nfunc (fastpathT) {{ .MethodNamePfx \"Enc\" false }}V(v map[{{ .MapKey }}]{{ .Elem }}, e *Encoder) {\n\tif v == nil { e.e.EncodeNil(); return }\n\te.mapStart(len(v))\n\tif e.h.Canonical { {{/* need to figure out .NoCanonical */}}\n\t\t{{if eq .MapKey \"interface{}\"}}{{/* out of band */ -}}\n\t\tvar mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding\n\t\te2 := NewEncoderBytes(&mksv, e.hh)\n\t\tv2 := make([]bytesIntf, len(v))\n\t\tvar i, l uint\n\t\tvar vp *bytesIntf {{/* put loop variables outside. seems currently needed for better perf */}}\n\t\tfor k2 := range v {\n\t\t\tl = uint(len(mksv))\n\t\t\te2.MustEncode(k2)\n\t\t\tvp = &v2[i]\n\t\t\tvp.v = mksv[l:]\n\t\t\tvp.i = k2 \n\t\t\ti++\n\t\t}\n\t\tsort.Sort(bytesIntfSlice(v2))\n\t\tfor j := range v2 {\n\t\t\te.mapElemKey()\n\t\t\te.asis(v2[j].v)\n\t\t\te.mapElemValue()\n\t\t\te.encode(v[v2[j].i])\n\t\t} {{else}}{{ $x := sorttype .MapKey true}}v2 := make([]{{ $x }}, len(v))\n\t\tvar i uint\n\t\tfor k := range v {\n\t\t\tv2[i] = {{if eq $x .MapKey}}k{{else}}{{ $x }}(k){{end}}\n\t\t\ti++\n\t\t}\n\t\tsort.Sort({{ sorttype .MapKey false}}(v2))\n\t\tfor _, k2 := range v2 {\n\t\t\te.mapElemKey()\n\t\t\t{{if eq .MapKey \"string\"}} if e.h.StringToRaw {e.e.EncodeStringBytesRaw(bytesView(k2))} else {e.e.EncodeStringEnc(cUTF8, k2)} {{else}}{{ $y := printf \"%s(k2)\" .MapKey }}{{if eq $x .MapKey }}{{ $y = \"k2\" }}{{end}}{{ encmd .MapKey $y }}{{end}}\n\t\t\te.mapElemValue()\n\t\t\t{{ $y := printf \"v[%s(k2)]\" .MapKey }}{{if eq $x .MapKey }}{{ $y = \"v[k2]\" }}{{end}}{{ encmd .Elem $y }}\n\t\t} {{end}}\n\t} else { \n\t\tfor k2, v2 := range v {\n\t\t\te.mapElemKey()\n\t\t\t{{if eq .MapKey \"string\"}} if e.h.StringToRaw {e.e.EncodeStringBytesRaw(bytesView(k2))} else {e.e.EncodeStringEnc(cUTF8, k2)} {{else}}{{ encmd .MapKey \"k2\"}}{{end}}\n\t\t\te.mapElemValue()\n\t\t\t{{ encmd .Elem \"v2\"}}\n\t\t}\n\t}\n\te.mapEnd()\n}\n{{end}}{{end}}{{end}}\n\n// -- decode\n\n// -- -- fast path type switch\nfunc fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool {\n\t var changed bool\n\tswitch v := iv.(type) {\n{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}{{if ne .Elem \"uint8\"}}\n\tcase []{{ .Elem }}:\n\t\tvar v2 []{{ .Elem }}\n\t\tv2, changed = fastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(v, false, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t\tcopy(v, v2)\n\t\t}\n\tcase *[]{{ .Elem }}:\n\t\tvar v2 []{{ .Elem }}\n\t\tv2, changed = fastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2 \n\t\t}{{/*\n*/}}{{end}}{{end}}{{end}}{{end}}\n{{range .Values}}{{if not .Primitive}}{{if .MapKey }}{{/*\n// maps only change if nil, and in that case, there's no point copying\n*/}}\n\tcase map[{{ .MapKey }}]{{ .Elem }}:\n\t\tfastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(v, false, d)\n\tcase *map[{{ .MapKey }}]{{ .Elem }}:\n\t\t var v2 map[{{ .MapKey }}]{{ .Elem }}\n\t\tv2, changed = fastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(*v, true, d)\n\t\tif changed {\n\t\t\t*v = v2 \n\t\t}{{/*\n*/}}{{end}}{{end}}{{end}}\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc fastpathDecodeSetZeroTypeSwitch(iv interface{}) bool {\n\tswitch v := iv.(type) {\n{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}\n\tcase *[]{{ .Elem }}: \n\t\t*v = nil {{/*\n*/}}{{end}}{{end}}{{end}}\n{{range .Values}}{{if not .Primitive}}{{if .MapKey }}\n\tcase *map[{{ .MapKey }}]{{ .Elem }}: \n\t\t*v = nil {{/*\n*/}}{{end}}{{end}}{{end}}\n\tdefault:\n\t\t_ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4\n\t\treturn false\n\t}\n\treturn true\n}\n\n// -- -- fast path functions\n{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}\n{{/*\nSlices can change if they \n- did not come from an array\n- are addressable (from a ptr)\n- are settable (e.g. contained in an interface{})\n*/}}\nfunc (d *Decoder) {{ .MethodNamePfx \"fastpathDec\" false }}R(f *codecFnInfo, rv reflect.Value) {\n\tif array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*[]{{ .Elem }})\n\t\tif v, changed := fastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(*vp, !array, d); changed { *vp = v }\n\t} else {\n\t\tv := rv2i(rv).([]{{ .Elem }})\n\t\tv2, changed := fastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(v, !array, d)\n\t\tif changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {\n\t\t   copy(v, v2)\n\t\t}\n\t}\n}\nfunc (f fastpathT) {{ .MethodNamePfx \"Dec\" false }}X(vp *[]{{ .Elem }}, d *Decoder) {\n\tif v, changed := f.{{ .MethodNamePfx \"Dec\" false }}V(*vp, true, d); changed { *vp = v }\n}\nfunc (fastpathT) {{ .MethodNamePfx \"Dec\" false }}V(v []{{ .Elem }}, canChange bool, d *Decoder) (_ []{{ .Elem }}, changed bool) {\n\t{{/* dd := d.d\n\t\t// if d.d.isContainerType(valueTypeNil) { d.d.TryDecodeAsNil() }\n\t */ -}}\n\tslh, containerLenS := d.decSliceHelperStart()\n\tif containerLenS == 0 {\n\t\tif canChange {\n\t\t\tif v == nil { v = []{{ .Elem }}{} } else if len(v) != 0 { v = v[:0] }\n\t\t\tchanged = true\n\t\t}\n\t\tslh.End()\n\t\treturn v, changed\n\t}\n\thasLen := containerLenS > 0\n\tvar xlen int \n\tif hasLen && canChange {\n\t\tif containerLenS > cap(v) {\n\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, {{ .Size }})\n\t\t\tif xlen <= cap(v) {\n\t\t\t\tv = v[:uint(xlen)]\n\t\t\t} else {\n\t\t\t\tv = make([]{{ .Elem }}, uint(xlen))\n\t\t\t}\n\t\t\tchanged = true \n\t\t} else if containerLenS != len(v) {\n\t\t\tv = v[:containerLenS]\n\t\t\tchanged = true\n\t\t}\n\t}\n\tvar j int\n\tfor j = 0; (hasLen && j < containerLenS) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\tif j == 0 && len(v) == 0 && canChange {\n\t\t\tif hasLen {\n\t\t\t\txlen = decInferLen(containerLenS, d.h.MaxInitLen, {{ .Size }})\n\t\t\t} else {\n\t\t\t\txlen = 8\n\t\t\t}\n\t\t\tv = make([]{{ .Elem }}, uint(xlen))\n\t\t\tchanged = true \n\t\t}\n\t\t{{/* // if indefinite, etc, then expand the slice if necessary */ -}}\n\t\tvar decodeIntoBlank bool\n\t\tif j >= len(v) {\n\t\t\tif canChange {\n\t\t\t\tv = append(v, {{ zerocmd .Elem }})\n\t\t\t\tchanged = true\n\t\t\t} else {\n\t\t\t\td.arrayCannotExpand(len(v), j+1)\n\t\t\t\tdecodeIntoBlank = true\n\t\t\t}\n\t\t} \n\t\tslh.ElemContainerState(j)\n\t\tif decodeIntoBlank {\n\t\t\td.swallow()\n\t\t} else if d.d.TryDecodeAsNil() {\n\t\t\tv[uint(j)] = {{ zerocmd .Elem }}\n\t\t} else {\n\t\t\t{{ if eq .Elem \"interface{}\" }}d.decode(&v[uint(j)]){{ else }}v[uint(j)] = {{ decmd .Elem }}{{ end }}\n\t\t}\n\t}\n\tif canChange {\n\t\tif j < len(v) {\n\t\t\tv = v[:uint(j)]\n\t\t\tchanged = true\n\t\t} else if j == 0 && v == nil {\n\t\t\tv = make([]{{ .Elem }}, 0)\n\t\t\tchanged = true\n\t\t}\n\t}\n\tslh.End()\n\treturn v, changed \n}\n{{end}}{{end}}{{end}}\n\n{{range .Values}}{{if not .Primitive}}{{if .MapKey }}\n{{/*\nMaps can change if they are\n- addressable (from a ptr)\n- settable (e.g. contained in an interface{})\n*/}}\nfunc (d *Decoder) {{ .MethodNamePfx \"fastpathDec\" false }}R(f *codecFnInfo, rv reflect.Value) {\n\tif rv.Kind() == reflect.Ptr {\n\t\tvp := rv2i(rv).(*map[{{ .MapKey }}]{{ .Elem }})\n\t\tif v, changed := fastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(*vp, true, d); changed { *vp = v }\n\t} else {\n\t\tfastpathTV.{{ .MethodNamePfx \"Dec\" false }}V(rv2i(rv).(map[{{ .MapKey }}]{{ .Elem }}), false, d)\n\t}\n}\nfunc (f fastpathT) {{ .MethodNamePfx \"Dec\" false }}X(vp *map[{{ .MapKey }}]{{ .Elem }}, d *Decoder) {\n\tif v, changed := f.{{ .MethodNamePfx \"Dec\" false }}V(*vp, true, d); changed { *vp = v }\n}\nfunc (fastpathT) {{ .MethodNamePfx \"Dec\" false }}V(v map[{{ .MapKey }}]{{ .Elem }}, canChange bool, \n\td *Decoder) (_ map[{{ .MapKey }}]{{ .Elem }}, changed bool) {\n    {{/*\n\t\t// if d.d.isContainerType(valueTypeNil) {d.d.TryDecodeAsNil()\n\t*/ -}}\n\tcontainerLen := d.mapStart()\n\tif canChange && v == nil {\n\t\tv = make(map[{{ .MapKey }}]{{ .Elem }}, decInferLen(containerLen, d.h.MaxInitLen, {{ .Size }}))\n\t\tchanged = true\n\t}\n\tif containerLen == 0 {\n\t\td.mapEnd()\n\t\treturn v, changed\n\t}\n\t{{if eq .Elem \"interface{}\" }}mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset\n    {{else if eq .Elem \"bytes\" \"[]byte\" }}mapGet := v != nil && !d.h.MapValueReset\n    {{end -}}\n    var mk {{ .MapKey }}\n\tvar mv {{ .Elem }}\n\thasLen := containerLen > 0\n\tfor j := 0; (hasLen && j < containerLen) || !(hasLen || d.d.CheckBreak()); j++ {\n\t\td.mapElemKey()\n\t\t{{ if eq .MapKey \"interface{}\" }}mk = nil \n\t\td.decode(&mk)\n\t\tif bv, bok := mk.([]byte); bok {\n\t\t\tmk = d.string(bv) {{/* // maps cannot have []byte as key. switch to string. */}}\n\t\t}{{ else }}mk = {{ decmd .MapKey }}{{ end }}\n\t\td.mapElemValue()\n\t\tif d.d.TryDecodeAsNil() {\n\t\t\tif v == nil {} else if d.h.DeleteOnNilMapValue { delete(v, mk) } else { v[mk] = {{ zerocmd .Elem }} }\n\t\t\tcontinue \n\t\t}\n\t\t{{ if eq .Elem \"interface{}\" \"[]byte\" \"bytes\" -}}\n\t\tif mapGet { mv = v[mk] } else { mv = nil }\n\t\t{{ end -}}\n\t\t{{ if eq .Elem \"interface{}\" -}}\n\t\td.decode(&mv)\n\t\t{{ else if eq .Elem \"[]byte\" \"bytes\" -}}\n\t\tmv = d.d.DecodeBytes(mv, false)\n\t\t{{ else -}}\n\t\tmv = {{ decmd .Elem }}\n\t\t{{ end -}}\n\t\tif v != nil { v[mk] = mv }\n\t}\n\td.mapEnd()\n\treturn v, changed\n}\n{{end}}{{end}}{{end}}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/fast-path.not.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build notfastpath\n\npackage codec\n\nimport \"reflect\"\n\nconst fastpathEnabled = false\n\n// The generated fast-path code is very large, and adds a few seconds to the build time.\n// This causes test execution, execution of small tools which use codec, etc\n// to take a long time.\n//\n// To mitigate, we now support the notfastpath tag.\n// This tag disables fastpath during build, allowing for faster build, test execution,\n// short-program runs, etc.\n\nfunc fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool      { return false }\nfunc fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool      { return false }\nfunc fastpathEncodeTypeSwitchSlice(iv interface{}, e *Encoder) bool { return false }\nfunc fastpathEncodeTypeSwitchMap(iv interface{}, e *Encoder) bool   { return false }\nfunc fastpathDecodeSetZeroTypeSwitch(iv interface{}) bool           { return false }\n\ntype fastpathT struct{}\ntype fastpathE struct {\n\trtid  uintptr\n\trt    reflect.Type\n\tencfn func(*Encoder, *codecFnInfo, reflect.Value)\n\tdecfn func(*Decoder, *codecFnInfo, reflect.Value)\n}\ntype fastpathA [0]fastpathE\n\nfunc (x fastpathA) index(rtid uintptr) int { return -1 }\n\nfunc (_ fastpathT) DecSliceUint8V(v []uint8, canChange bool, d *Decoder) (_ []uint8, changed bool) {\n\tfn := d.h.fn(uint8SliceTyp, true, true)\n\td.kSlice(&fn.i, reflect.ValueOf(&v).Elem())\n\treturn v, true\n}\n\nvar fastpathAV fastpathA\nvar fastpathTV fastpathT\n\n// ----\ntype TestMammoth2Wrapper struct{} // to allow testMammoth work in notfastpath mode\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen-dec-array.go.tmpl",
    "content": "{{var \"v\"}} := {{if not isArray}}*{{end}}{{ .Varname }}\n{{var \"h\"}}, {{var \"l\"}} := z.DecSliceHelperStart() {{/* // helper, containerLenS */}}{{if not isArray}}\nvar {{var \"c\"}} bool {{/* // changed */}}\n_ = {{var \"c\"}}{{end}}\nif {{var \"l\"}} == 0 {\n\t{{if isSlice }}if {{var \"v\"}} == nil {\n\t\t{{var \"v\"}} = []{{ .Typ }}{}\n\t\t{{var \"c\"}} = true\n\t} else if len({{var \"v\"}}) != 0 {\n\t\t{{var \"v\"}} = {{var \"v\"}}[:0]\n\t\t{{var \"c\"}} = true\n\t} {{else if isChan }}if {{var \"v\"}} == nil {\n\t\t{{var \"v\"}} = make({{ .CTyp }}, 0)\n\t\t{{var \"c\"}} = true\n\t}\n    {{end -}}\n} else {\n\t{{var \"hl\"}} := {{var \"l\"}} > 0\n\tvar {{var \"rl\"}} int\n\t_ =  {{var \"rl\"}}\n\t{{if isSlice }} if {{var \"hl\"}} {\n\tif {{var \"l\"}} > cap({{var \"v\"}}) {\n\t\t{{var \"rl\"}} = z.DecInferLen({{var \"l\"}}, z.DecBasicHandle().MaxInitLen, {{ .Size }})\n\t\tif {{var \"rl\"}} <= cap({{var \"v\"}}) {\n\t\t\t{{var \"v\"}} = {{var \"v\"}}[:{{var \"rl\"}}]\n\t\t} else {\n\t\t\t{{var \"v\"}} = make([]{{ .Typ }}, {{var \"rl\"}})\n\t\t}\n\t\t{{var \"c\"}} = true\n\t} else if {{var \"l\"}} != len({{var \"v\"}}) {\n\t\t{{var \"v\"}} = {{var \"v\"}}[:{{var \"l\"}}]\n\t\t{{var \"c\"}} = true\n\t}\n\t}\n    {{end -}}\n\tvar {{var \"j\"}} int \n    {{/* // var {{var \"dn\"}} bool */ -}}\n\tfor {{var \"j\"}} = 0; ({{var \"hl\"}} && {{var \"j\"}} < {{var \"l\"}}) || !({{var \"hl\"}} || r.CheckBreak()); {{var \"j\"}}++ { // bounds-check-elimination\n\t\t{{if not isArray}} if {{var \"j\"}} == 0 && {{var \"v\"}} == nil {\n\t\t\tif {{var \"hl\"}} {\n\t\t\t\t{{var \"rl\"}} = z.DecInferLen({{var \"l\"}}, z.DecBasicHandle().MaxInitLen, {{ .Size }})\n\t\t\t} else {\n\t\t\t\t{{var \"rl\"}} = {{if isSlice}}8{{else if isChan}}64{{end}}\n\t\t\t}\n\t\t\t{{var \"v\"}} = make({{if isSlice}}[]{{ .Typ }}{{else if isChan}}{{.CTyp}}{{end}}, {{var \"rl\"}})\n\t\t\t{{var \"c\"}} = true \n\t\t}\n        {{end -}}\n\t\t{{var \"h\"}}.ElemContainerState({{var \"j\"}})\n        {{/* {{var \"dn\"}} = r.TryDecodeAsNil() */}}{{/* commented out, as decLineVar handles this already each time */ -}}\n        {{if isChan}}{{ $x := printf \"%[1]vvcx%[2]v\" .TempVar .Rand }}var {{$x}} {{ .Typ }}\n\t\t{{ decLineVar $x -}}\n\t\t{{var \"v\"}} <- {{ $x }}\n        // println(\">>>> sending \", {{ $x }}, \" into \", {{var \"v\"}}) // TODO: remove this\n        {{else}}{{/* // if indefinite, etc, then expand the slice if necessary */ -}}\n\t\tvar {{var \"db\"}} bool\n\t\tif {{var \"j\"}} >= len({{var \"v\"}}) {\n\t\t\t{{if isSlice }} {{var \"v\"}} = append({{var \"v\"}}, {{ zero }})\n\t\t\t{{var \"c\"}} = true\n\t\t\t{{else}} z.DecArrayCannotExpand(len(v), {{var \"j\"}}+1); {{var \"db\"}} = true\n\t\t\t{{end -}}\n\t\t}\n\t\tif {{var \"db\"}} {\n\t\t\tz.DecSwallow()\n\t\t} else {\n\t\t\t{{ $x := printf \"%[1]vv%[2]v[%[1]vj%[2]v]\" .TempVar .Rand }}{{ decLineVar $x -}}\n\t\t}\n        {{end -}}\n\t}\n\t{{if isSlice}} if {{var \"j\"}} < len({{var \"v\"}}) {\n\t\t{{var \"v\"}} = {{var \"v\"}}[:{{var \"j\"}}]\n\t\t{{var \"c\"}} = true\n\t} else if {{var \"j\"}} == 0 && {{var \"v\"}} == nil {\n\t\t{{var \"v\"}} = make([]{{ .Typ }}, 0)\n\t\t{{var \"c\"}} = true\n\t}\n    {{end -}}\n}\n{{var \"h\"}}.End()\n{{if not isArray }}if {{var \"c\"}} { \n\t*{{ .Varname }} = {{var \"v\"}}\n}\n{{end -}}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen-dec-map.go.tmpl",
    "content": "{{var \"v\"}} := *{{ .Varname }}\n{{var \"l\"}} := z.DecReadMapStart()\n{{var \"bh\"}} := z.DecBasicHandle()\nif {{var \"v\"}} == nil {\n\t{{var \"rl\"}} := z.DecInferLen({{var \"l\"}}, {{var \"bh\"}}.MaxInitLen, {{ .Size }})\n\t{{var \"v\"}} = make(map[{{ .KTyp }}]{{ .Typ }}, {{var \"rl\"}})\n\t*{{ .Varname }} = {{var \"v\"}}\n}\nvar {{var \"mk\"}} {{ .KTyp }}\nvar {{var \"mv\"}} {{ .Typ }}\nvar {{var \"mg\"}}, {{var \"mdn\"}} {{if decElemKindPtr}}, {{var \"ms\"}}, {{var \"mok\"}}{{end}} bool\nif {{var \"bh\"}}.MapValueReset {\n\t{{if decElemKindPtr}}{{var \"mg\"}} = true\n\t{{else if decElemKindIntf}}if !{{var \"bh\"}}.InterfaceReset { {{var \"mg\"}} = true }\n\t{{else if not decElemKindImmutable}}{{var \"mg\"}} = true\n\t{{end}} }\nif {{var \"l\"}} != 0 {\n{{var \"hl\"}} := {{var \"l\"}} > 0 \n\tfor {{var \"j\"}} := 0; ({{var \"hl\"}} && {{var \"j\"}} < {{var \"l\"}}) || !({{var \"hl\"}} || r.CheckBreak()); {{var \"j\"}}++ {\n\tz.DecReadMapElemKey() {{/* z.DecSendContainerState(codecSelfer_containerMapKey{{ .Sfx }}) */}}\n\t{{ $x := printf \"%vmk%v\" .TempVar .Rand }}{{ decLineVarK $x -}}\n\t{{ if eq .KTyp \"interface{}\" }}{{/* // special case if a byte array. */ -}}\n    if {{var \"bv\"}}, {{var \"bok\"}} := {{var \"mk\"}}.([]byte); {{var \"bok\"}} {\n\t\t{{var \"mk\"}} = string({{var \"bv\"}})\n\t}\n    {{ end -}}\n    {{if decElemKindPtr -}}\n\t{{var \"ms\"}} = true\n    {{end -}}\n\tif {{var \"mg\"}} {\n\t\t{{if decElemKindPtr -}}\n        {{var \"mv\"}}, {{var \"mok\"}} = {{var \"v\"}}[{{var \"mk\"}}] \n\t\tif {{var \"mok\"}} {\n\t\t\t{{var \"ms\"}} = false\n\t\t}\n        {{else -}}\n        {{var \"mv\"}} = {{var \"v\"}}[{{var \"mk\"}}]\n        {{end -}}\n\t} {{if not decElemKindImmutable}}else { {{var \"mv\"}} = {{decElemZero}} }{{end}}\n\tz.DecReadMapElemValue() {{/* z.DecSendContainerState(codecSelfer_containerMapValue{{ .Sfx }}) */}}\n\t{{var \"mdn\"}} = false\n\t{{ $x := printf \"%vmv%v\" .TempVar .Rand }}{{ $y := printf \"%vmdn%v\" .TempVar .Rand }}{{ decLineVar $x $y -}}\n\tif {{var \"mdn\"}} {\n\t\tif {{ var \"bh\" }}.DeleteOnNilMapValue { delete({{var \"v\"}}, {{var \"mk\"}}) } else { {{var \"v\"}}[{{var \"mk\"}}] = {{decElemZero}} }\n\t} else if {{if decElemKindPtr}} {{var \"ms\"}} && {{end}} {{var \"v\"}} != nil {\n\t\t{{var \"v\"}}[{{var \"mk\"}}] = {{var \"mv\"}}\n\t}\n}\n} // else len==0: TODO: Should we clear map entries?\nz.DecReadMapEnd() {{/* z.DecSendContainerState(codecSelfer_containerMapEnd{{ .Sfx }}) */}}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen-enc-chan.go.tmpl",
    "content": "{{.Label}}:\nswitch timeout{{.Sfx}} :=  z.EncBasicHandle().ChanRecvTimeout; {\ncase timeout{{.Sfx}} == 0: // only consume available\n\tfor {\n\t\tselect {\n\t\tcase b{{.Sfx}} := <-{{.Chan}}:\n\t\t\t{{ .Slice }} = append({{.Slice}}, b{{.Sfx}})\n\t\tdefault:\n\t\t\tbreak {{.Label}}\n\t\t}\n\t}\ncase timeout{{.Sfx}} > 0: // consume until timeout\n\ttt{{.Sfx}} := time.NewTimer(timeout{{.Sfx}})\n\tfor {\n\t\tselect {\n\t\tcase b{{.Sfx}} := <-{{.Chan}}:\n\t\t\t{{.Slice}} = append({{.Slice}}, b{{.Sfx}})\n\t\tcase <-tt{{.Sfx}}.C:\n\t\t\t// close(tt.C)\n\t\t\tbreak {{.Label}}\n\t\t}\n\t}\ndefault: // consume until close\n\tfor b{{.Sfx}} := range {{.Chan}} {\n\t\t{{.Slice}} = append({{.Slice}}, b{{.Sfx}})\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen-helper.generated.go",
    "content": "// comment this out // + build ignore\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from gen-helper.go.tmpl - DO NOT EDIT.\n\npackage codec\n\nimport (\n\t\"encoding\"\n\t\"reflect\"\n)\n\n// GenVersion is the current version of codecgen.\nconst GenVersion = 12\n\n// This file is used to generate helper code for codecgen.\n// The values here i.e. genHelper(En|De)coder are not to be used directly by\n// library users. They WILL change continuously and without notice.\n\n// GenHelperEncoder is exported so that it can be used externally by codecgen.\n//\n// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT NOTICE.\nfunc GenHelperEncoder(e *Encoder) (ge genHelperEncoder, ee genHelperEncDriver) {\n\tge = genHelperEncoder{e: e}\n\tee = genHelperEncDriver{encDriver: e.e}\n\treturn\n}\n\n// GenHelperDecoder is exported so that it can be used externally by codecgen.\n//\n// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT NOTICE.\nfunc GenHelperDecoder(d *Decoder) (gd genHelperDecoder, dd genHelperDecDriver) {\n\tgd = genHelperDecoder{d: d}\n\tdd = genHelperDecDriver{decDriver: d.d}\n\treturn\n}\n\ntype genHelperEncDriver struct {\n\tencDriver\n}\n\ntype genHelperDecDriver struct {\n\tdecDriver\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\ntype genHelperEncoder struct {\n\tM must\n\tF fastpathT\n\te *Encoder\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\ntype genHelperDecoder struct {\n\tC checkOverflow\n\tF fastpathT\n\td *Decoder\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncBasicHandle() *BasicHandle {\n\treturn f.e.h\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncBinary() bool {\n\treturn f.e.be // f.e.hh.isBinaryEncoding()\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) IsJSONHandle() bool {\n\treturn f.e.js\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncFallback(iv interface{}) {\n\t// f.e.encodeI(iv, false, false)\n\tf.e.encodeValue(reflect.ValueOf(iv), nil, false)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncTextMarshal(iv encoding.TextMarshaler) {\n\tbs, fnerr := iv.MarshalText()\n\tf.e.marshalUtf8(bs, fnerr)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncJSONMarshal(iv jsonMarshaler) {\n\tbs, fnerr := iv.MarshalJSON()\n\tf.e.marshalAsis(bs, fnerr)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncBinaryMarshal(iv encoding.BinaryMarshaler) {\n\tbs, fnerr := iv.MarshalBinary()\n\tf.e.marshalRaw(bs, fnerr)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncRaw(iv Raw) { f.e.rawBytes(iv) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) I2Rtid(v interface{}) uintptr {\n\treturn i2rtid(v)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) Extension(rtid uintptr) (xfn *extTypeTagFn) {\n\treturn f.e.h.getExt(rtid)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncExtension(v interface{}, xfFn *extTypeTagFn) {\n\tf.e.e.EncodeExt(v, xfFn.tag, xfFn.ext, f.e)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) WriteStr(s string) {\n\tf.e.w().writestr(s)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) BytesView(v string) []byte { return bytesView(v) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapStart(length int) { f.e.mapStart(length) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapEnd() { f.e.mapEnd() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteArrayStart(length int) { f.e.arrayStart(length) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteArrayEnd() { f.e.arrayEnd() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteArrayElem() { f.e.arrayElem() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapElemKey() { f.e.mapElemKey() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapElemValue() { f.e.mapElemValue() }\n\n// ---------------- DECODER FOLLOWS -----------------\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecBasicHandle() *BasicHandle {\n\treturn f.d.h\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecBinary() bool {\n\treturn f.d.be // f.d.hh.isBinaryEncoding()\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecSwallow() { f.d.swallow() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecScratchBuffer() []byte {\n\treturn f.d.b[:]\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecScratchArrayBuffer() *[decScratchByteArrayLen]byte {\n\treturn &f.d.b\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecFallback(iv interface{}, chkPtr bool) {\n\trv := reflect.ValueOf(iv)\n\tif chkPtr {\n\t\trv = f.d.ensureDecodeable(rv)\n\t}\n\tf.d.decodeValue(rv, nil, false)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecSliceHelperStart() (decSliceHelper, int) {\n\treturn f.d.decSliceHelperStart()\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecStructFieldNotFound(index int, name string) {\n\tf.d.structFieldNotFound(index, name)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecArrayCannotExpand(sliceLen, streamLen int) {\n\tf.d.arrayCannotExpand(sliceLen, streamLen)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecTextUnmarshal(tm encoding.TextUnmarshaler) {\n\tif fnerr := tm.UnmarshalText(f.d.d.DecodeStringAsBytes()); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecJSONUnmarshal(tm jsonUnmarshaler) {\n\t// bs := f.dd.DecodeStringAsBytes()\n\t// grab the bytes to be read, as UnmarshalJSON needs the full JSON so as to unmarshal it itself.\n\tif fnerr := tm.UnmarshalJSON(f.d.nextValueBytes()); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecBinaryUnmarshal(bm encoding.BinaryUnmarshaler) {\n\tif fnerr := bm.UnmarshalBinary(f.d.d.DecodeBytes(nil, true)); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecRaw() []byte { return f.d.rawBytes() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) IsJSONHandle() bool {\n\treturn f.d.js\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) I2Rtid(v interface{}) uintptr {\n\treturn i2rtid(v)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) Extension(rtid uintptr) (xfn *extTypeTagFn) {\n\treturn f.d.h.getExt(rtid)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecExtension(v interface{}, xfFn *extTypeTagFn) {\n\tf.d.d.DecodeExt(v, xfFn.tag, xfFn.ext)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecInferLen(clen, maxlen, unit int) (rvlen int) {\n\treturn decInferLen(clen, maxlen, unit)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) StringView(v []byte) string { return stringView(v) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapStart() int { return f.d.mapStart() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapEnd() { f.d.mapEnd() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadArrayStart() int { return f.d.arrayStart() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadArrayEnd() { f.d.arrayEnd() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadArrayElem() { f.d.arrayElem() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapElemKey() { f.d.mapElemKey() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapElemValue() { f.d.mapElemValue() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecDecodeFloat32() float64 { return f.d.decodeFloat32() }\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen-helper.go.tmpl",
    "content": "// comment this out // + build ignore\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from gen-helper.go.tmpl - DO NOT EDIT.\n\npackage codec\n\nimport (\n\t\"encoding\"\n\t\"reflect\"\n)\n\n// GenVersion is the current version of codecgen.\nconst GenVersion = {{ .Version }} \n\n// This file is used to generate helper code for codecgen. \n// The values here i.e. genHelper(En|De)coder are not to be used directly by \n// library users. They WILL change continuously and without notice.\n\n{{/*\n// To help enforce this, we create an unexported type with exported members.\n// The only way to get the type is via the one exported type that we control (somewhat).\n//\n// When static codecs are created for types, they will use this value\n// to perform encoding or decoding of primitives or known slice or map types.\n*/ -}}\n\n// GenHelperEncoder is exported so that it can be used externally by codecgen.\n//\n// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT NOTICE.\nfunc GenHelperEncoder(e *Encoder) (ge genHelperEncoder, ee genHelperEncDriver) {\n\tge = genHelperEncoder{e: e}\n\tee = genHelperEncDriver{encDriver: e.e}\n\treturn \n}\n\n// GenHelperDecoder is exported so that it can be used externally by codecgen.\n//\n// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT NOTICE.\nfunc GenHelperDecoder(d *Decoder) (gd genHelperDecoder, dd genHelperDecDriver) {\n\tgd = genHelperDecoder{d: d}\n\tdd = genHelperDecDriver{decDriver: d.d}\n\treturn\n}\n\ntype genHelperEncDriver struct {\n\tencDriver\n}\n\ntype genHelperDecDriver struct {\n\tdecDriver\n}\n\n{{/*\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (x genHelperEncDriver) EncStructFieldKey(keyType valueType, s string) {\n\tencStructFieldKey(s, x.encDriver, nil, keyType, false, false)\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (x genHelperDecDriver) DecStructFieldKey(keyType valueType, buf *[decScratchByteArrayLen]byte) []byte {\n\treturn decStructFieldKey(x.decDriver, keyType, buf)\n}\n*/ -}}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\ntype genHelperEncoder struct {\n\tM must\n\tF fastpathT \n\te *Encoder\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\ntype genHelperDecoder struct {\n\tC checkOverflow\n\tF fastpathT \n\td *Decoder\n}\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncBasicHandle() *BasicHandle {\n\treturn f.e.h\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncBinary() bool {\n\treturn f.e.be // f.e.hh.isBinaryEncoding()\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) IsJSONHandle() bool {\n\treturn f.e.js\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncFallback(iv interface{}) {\n\t// f.e.encodeI(iv, false, false)\n\tf.e.encodeValue(reflect.ValueOf(iv), nil, false)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncTextMarshal(iv encoding.TextMarshaler) {\n\tbs, fnerr := iv.MarshalText()\n\tf.e.marshalUtf8(bs, fnerr)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncJSONMarshal(iv jsonMarshaler) {\n\tbs, fnerr := iv.MarshalJSON()\n\tf.e.marshalAsis(bs, fnerr)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncBinaryMarshal(iv encoding.BinaryMarshaler) {\n\tbs, fnerr := iv.MarshalBinary()\n\tf.e.marshalRaw(bs, fnerr)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncRaw(iv Raw) { f.e.rawBytes(iv) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) I2Rtid(v interface{}) uintptr {\n\treturn i2rtid(v)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) Extension(rtid uintptr) (xfn *extTypeTagFn) {\n\treturn f.e.h.getExt(rtid)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncExtension(v interface{}, xfFn *extTypeTagFn) {\n\tf.e.e.EncodeExt(v, xfFn.tag, xfFn.ext, f.e)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) WriteStr(s string) {\n\tf.e.w().writestr(s)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) BytesView(v string) []byte { return bytesView(v) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapStart(length int) { f.e.mapStart(length) }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapEnd() { f.e.mapEnd() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteArrayStart(length int) { f.e.arrayStart(length) }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteArrayEnd() { f.e.arrayEnd() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteArrayElem() { f.e.arrayElem() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapElemKey() { f.e.mapElemKey() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperEncoder) EncWriteMapElemValue() { f.e.mapElemValue() }\n\n// ---------------- DECODER FOLLOWS -----------------\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecBasicHandle() *BasicHandle {\n\treturn f.d.h\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecBinary() bool {\n     return f.d.be // f.d.hh.isBinaryEncoding()\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecSwallow() { f.d.swallow() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecScratchBuffer() []byte {\n\treturn f.d.b[:]\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecScratchArrayBuffer() *[decScratchByteArrayLen]byte {\n\treturn &f.d.b\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecFallback(iv interface{}, chkPtr bool) {\n\trv := reflect.ValueOf(iv)\n\tif chkPtr {\n\t\trv = f.d.ensureDecodeable(rv)\n\t}\n\tf.d.decodeValue(rv, nil, false)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecSliceHelperStart() (decSliceHelper, int) {\n\treturn f.d.decSliceHelperStart()\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecStructFieldNotFound(index int, name string) {\n\tf.d.structFieldNotFound(index, name)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecArrayCannotExpand(sliceLen, streamLen int) {\n\tf.d.arrayCannotExpand(sliceLen, streamLen)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecTextUnmarshal(tm encoding.TextUnmarshaler) {\n\tif fnerr := tm.UnmarshalText(f.d.d.DecodeStringAsBytes()); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecJSONUnmarshal(tm jsonUnmarshaler) {\n\t// bs := f.dd.DecodeStringAsBytes()\n\t// grab the bytes to be read, as UnmarshalJSON needs the full JSON so as to unmarshal it itself.\n\tif fnerr := tm.UnmarshalJSON(f.d.nextValueBytes()); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecBinaryUnmarshal(bm encoding.BinaryUnmarshaler) {\n\tif fnerr := bm.UnmarshalBinary(f.d.d.DecodeBytes(nil, true)); fnerr != nil {\n\t\tpanic(fnerr)\n\t}\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecRaw() []byte {\treturn f.d.rawBytes() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) IsJSONHandle() bool {\n\treturn f.d.js \n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) I2Rtid(v interface{}) uintptr {\n\treturn i2rtid(v)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) Extension(rtid uintptr) (xfn *extTypeTagFn) {\n\treturn f.d.h.getExt(rtid)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecExtension(v interface{}, xfFn *extTypeTagFn) {\n\tf.d.d.DecodeExt(v, xfFn.tag, xfFn.ext)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecInferLen(clen, maxlen, unit int) (rvlen int) {\n\treturn decInferLen(clen, maxlen, unit)\n}\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) StringView(v []byte) string { return stringView(v) }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapStart() int { return f.d.mapStart() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapEnd() { f.d.mapEnd() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadArrayStart() int { return f.d.arrayStart() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadArrayEnd() { f.d.arrayEnd() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadArrayElem() { f.d.arrayElem() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapElemKey() { f.d.mapElemKey() }\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecReadMapElemValue() { f.d.mapElemValue() }\n\n// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*\nfunc (f genHelperDecoder) DecDecodeFloat32() float64 { return f.d.decodeFloat32() }\n\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen.generated.go",
    "content": "// +build codecgen.exec\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\n// DO NOT EDIT. THIS FILE IS AUTO-GENERATED FROM gen-dec-(map|array).go.tmpl\n\nconst genDecMapTmpl = `\n{{var \"v\"}} := *{{ .Varname }}\n{{var \"l\"}} := z.DecReadMapStart()\n{{var \"bh\"}} := z.DecBasicHandle()\nif {{var \"v\"}} == nil {\n\t{{var \"rl\"}} := z.DecInferLen({{var \"l\"}}, {{var \"bh\"}}.MaxInitLen, {{ .Size }})\n\t{{var \"v\"}} = make(map[{{ .KTyp }}]{{ .Typ }}, {{var \"rl\"}})\n\t*{{ .Varname }} = {{var \"v\"}}\n}\nvar {{var \"mk\"}} {{ .KTyp }}\nvar {{var \"mv\"}} {{ .Typ }}\nvar {{var \"mg\"}}, {{var \"mdn\"}} {{if decElemKindPtr}}, {{var \"ms\"}}, {{var \"mok\"}}{{end}} bool\nif {{var \"bh\"}}.MapValueReset {\n\t{{if decElemKindPtr}}{{var \"mg\"}} = true\n\t{{else if decElemKindIntf}}if !{{var \"bh\"}}.InterfaceReset { {{var \"mg\"}} = true }\n\t{{else if not decElemKindImmutable}}{{var \"mg\"}} = true\n\t{{end}} }\nif {{var \"l\"}} != 0 {\n{{var \"hl\"}} := {{var \"l\"}} > 0 \n\tfor {{var \"j\"}} := 0; ({{var \"hl\"}} && {{var \"j\"}} < {{var \"l\"}}) || !({{var \"hl\"}} || r.CheckBreak()); {{var \"j\"}}++ {\n\tz.DecReadMapElemKey() {{/* z.DecSendContainerState(codecSelfer_containerMapKey{{ .Sfx }}) */}}\n\t{{ $x := printf \"%vmk%v\" .TempVar .Rand }}{{ decLineVarK $x -}}\n\t{{ if eq .KTyp \"interface{}\" }}{{/* // special case if a byte array. */ -}}\n    if {{var \"bv\"}}, {{var \"bok\"}} := {{var \"mk\"}}.([]byte); {{var \"bok\"}} {\n\t\t{{var \"mk\"}} = string({{var \"bv\"}})\n\t}\n    {{ end -}}\n    {{if decElemKindPtr -}}\n\t{{var \"ms\"}} = true\n    {{end -}}\n\tif {{var \"mg\"}} {\n\t\t{{if decElemKindPtr -}}\n        {{var \"mv\"}}, {{var \"mok\"}} = {{var \"v\"}}[{{var \"mk\"}}] \n\t\tif {{var \"mok\"}} {\n\t\t\t{{var \"ms\"}} = false\n\t\t}\n        {{else -}}\n        {{var \"mv\"}} = {{var \"v\"}}[{{var \"mk\"}}]\n        {{end -}}\n\t} {{if not decElemKindImmutable}}else { {{var \"mv\"}} = {{decElemZero}} }{{end}}\n\tz.DecReadMapElemValue() {{/* z.DecSendContainerState(codecSelfer_containerMapValue{{ .Sfx }}) */}}\n\t{{var \"mdn\"}} = false\n\t{{ $x := printf \"%vmv%v\" .TempVar .Rand }}{{ $y := printf \"%vmdn%v\" .TempVar .Rand }}{{ decLineVar $x $y -}}\n\tif {{var \"mdn\"}} {\n\t\tif {{ var \"bh\" }}.DeleteOnNilMapValue { delete({{var \"v\"}}, {{var \"mk\"}}) } else { {{var \"v\"}}[{{var \"mk\"}}] = {{decElemZero}} }\n\t} else if {{if decElemKindPtr}} {{var \"ms\"}} && {{end}} {{var \"v\"}} != nil {\n\t\t{{var \"v\"}}[{{var \"mk\"}}] = {{var \"mv\"}}\n\t}\n}\n} // else len==0: TODO: Should we clear map entries?\nz.DecReadMapEnd() {{/* z.DecSendContainerState(codecSelfer_containerMapEnd{{ .Sfx }}) */}}\n`\n\nconst genDecListTmpl = `\n{{var \"v\"}} := {{if not isArray}}*{{end}}{{ .Varname }}\n{{var \"h\"}}, {{var \"l\"}} := z.DecSliceHelperStart() {{/* // helper, containerLenS */}}{{if not isArray}}\nvar {{var \"c\"}} bool {{/* // changed */}}\n_ = {{var \"c\"}}{{end}}\nif {{var \"l\"}} == 0 {\n\t{{if isSlice }}if {{var \"v\"}} == nil {\n\t\t{{var \"v\"}} = []{{ .Typ }}{}\n\t\t{{var \"c\"}} = true\n\t} else if len({{var \"v\"}}) != 0 {\n\t\t{{var \"v\"}} = {{var \"v\"}}[:0]\n\t\t{{var \"c\"}} = true\n\t} {{else if isChan }}if {{var \"v\"}} == nil {\n\t\t{{var \"v\"}} = make({{ .CTyp }}, 0)\n\t\t{{var \"c\"}} = true\n\t}\n    {{end -}}\n} else {\n\t{{var \"hl\"}} := {{var \"l\"}} > 0\n\tvar {{var \"rl\"}} int\n\t_ =  {{var \"rl\"}}\n\t{{if isSlice }} if {{var \"hl\"}} {\n\tif {{var \"l\"}} > cap({{var \"v\"}}) {\n\t\t{{var \"rl\"}} = z.DecInferLen({{var \"l\"}}, z.DecBasicHandle().MaxInitLen, {{ .Size }})\n\t\tif {{var \"rl\"}} <= cap({{var \"v\"}}) {\n\t\t\t{{var \"v\"}} = {{var \"v\"}}[:{{var \"rl\"}}]\n\t\t} else {\n\t\t\t{{var \"v\"}} = make([]{{ .Typ }}, {{var \"rl\"}})\n\t\t}\n\t\t{{var \"c\"}} = true\n\t} else if {{var \"l\"}} != len({{var \"v\"}}) {\n\t\t{{var \"v\"}} = {{var \"v\"}}[:{{var \"l\"}}]\n\t\t{{var \"c\"}} = true\n\t}\n\t}\n    {{end -}}\n\tvar {{var \"j\"}} int \n    {{/* // var {{var \"dn\"}} bool */ -}}\n\tfor {{var \"j\"}} = 0; ({{var \"hl\"}} && {{var \"j\"}} < {{var \"l\"}}) || !({{var \"hl\"}} || r.CheckBreak()); {{var \"j\"}}++ { // bounds-check-elimination\n\t\t{{if not isArray}} if {{var \"j\"}} == 0 && {{var \"v\"}} == nil {\n\t\t\tif {{var \"hl\"}} {\n\t\t\t\t{{var \"rl\"}} = z.DecInferLen({{var \"l\"}}, z.DecBasicHandle().MaxInitLen, {{ .Size }})\n\t\t\t} else {\n\t\t\t\t{{var \"rl\"}} = {{if isSlice}}8{{else if isChan}}64{{end}}\n\t\t\t}\n\t\t\t{{var \"v\"}} = make({{if isSlice}}[]{{ .Typ }}{{else if isChan}}{{.CTyp}}{{end}}, {{var \"rl\"}})\n\t\t\t{{var \"c\"}} = true \n\t\t}\n        {{end -}}\n\t\t{{var \"h\"}}.ElemContainerState({{var \"j\"}})\n        {{/* {{var \"dn\"}} = r.TryDecodeAsNil() */}}{{/* commented out, as decLineVar handles this already each time */ -}}\n        {{if isChan}}{{ $x := printf \"%[1]vvcx%[2]v\" .TempVar .Rand }}var {{$x}} {{ .Typ }}\n\t\t{{ decLineVar $x -}}\n\t\t{{var \"v\"}} <- {{ $x }}\n        // println(\">>>> sending \", {{ $x }}, \" into \", {{var \"v\"}}) // TODO: remove this\n        {{else}}{{/* // if indefinite, etc, then expand the slice if necessary */ -}}\n\t\tvar {{var \"db\"}} bool\n\t\tif {{var \"j\"}} >= len({{var \"v\"}}) {\n\t\t\t{{if isSlice }} {{var \"v\"}} = append({{var \"v\"}}, {{ zero }})\n\t\t\t{{var \"c\"}} = true\n\t\t\t{{else}} z.DecArrayCannotExpand(len(v), {{var \"j\"}}+1); {{var \"db\"}} = true\n\t\t\t{{end -}}\n\t\t}\n\t\tif {{var \"db\"}} {\n\t\t\tz.DecSwallow()\n\t\t} else {\n\t\t\t{{ $x := printf \"%[1]vv%[2]v[%[1]vj%[2]v]\" .TempVar .Rand }}{{ decLineVar $x -}}\n\t\t}\n        {{end -}}\n\t}\n\t{{if isSlice}} if {{var \"j\"}} < len({{var \"v\"}}) {\n\t\t{{var \"v\"}} = {{var \"v\"}}[:{{var \"j\"}}]\n\t\t{{var \"c\"}} = true\n\t} else if {{var \"j\"}} == 0 && {{var \"v\"}} == nil {\n\t\t{{var \"v\"}} = make([]{{ .Typ }}, 0)\n\t\t{{var \"c\"}} = true\n\t}\n    {{end -}}\n}\n{{var \"h\"}}.End()\n{{if not isArray }}if {{var \"c\"}} { \n\t*{{ .Varname }} = {{var \"v\"}}\n}\n{{end -}}\n`\n\nconst genEncChanTmpl = `\n{{.Label}}:\nswitch timeout{{.Sfx}} :=  z.EncBasicHandle().ChanRecvTimeout; {\ncase timeout{{.Sfx}} == 0: // only consume available\n\tfor {\n\t\tselect {\n\t\tcase b{{.Sfx}} := <-{{.Chan}}:\n\t\t\t{{ .Slice }} = append({{.Slice}}, b{{.Sfx}})\n\t\tdefault:\n\t\t\tbreak {{.Label}}\n\t\t}\n\t}\ncase timeout{{.Sfx}} > 0: // consume until timeout\n\ttt{{.Sfx}} := time.NewTimer(timeout{{.Sfx}})\n\tfor {\n\t\tselect {\n\t\tcase b{{.Sfx}} := <-{{.Chan}}:\n\t\t\t{{.Slice}} = append({{.Slice}}, b{{.Sfx}})\n\t\tcase <-tt{{.Sfx}}.C:\n\t\t\t// close(tt.C)\n\t\t\tbreak {{.Label}}\n\t\t}\n\t}\ndefault: // consume until close\n\tfor b{{.Sfx}} := range {{.Chan}} {\n\t\t{{.Slice}} = append({{.Slice}}, b{{.Sfx}})\n\t}\n}\n`\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/gen.go",
    "content": "// +build codecgen.exec\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/format\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"text/template\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// ---------------------------------------------------\n// codecgen supports the full cycle of reflection-based codec:\n//    - RawExt\n//    - Raw\n//    - Extensions\n//    - (Binary|Text|JSON)(Unm|M)arshal\n//    - generic by-kind\n//\n// This means that, for dynamic things, we MUST use reflection to at least get the reflect.Type.\n// In those areas, we try to only do reflection or interface-conversion when NECESSARY:\n//    - Extensions, only if Extensions are configured.\n//\n// However, codecgen doesn't support the following:\n//   - Canonical option. (codecgen IGNORES it currently)\n//     This is just because it has not been implemented.\n//   - MissingFielder implementation.\n//     If a type implements MissingFielder, it is completely ignored by codecgen.\n//\n// During encode/decode, Selfer takes precedence.\n// A type implementing Selfer will know how to encode/decode itself statically.\n//\n// The following field types are supported:\n//     array: [n]T\n//     slice: []T\n//     map: map[K]V\n//     primitive: [u]int[n], float(32|64), bool, string\n//     struct\n//\n// ---------------------------------------------------\n// Note that a Selfer cannot call (e|d).(En|De)code on itself,\n// as this will cause a circular reference, as (En|De)code will call Selfer methods.\n// Any type that implements Selfer must implement completely and not fallback to (En|De)code.\n//\n// In addition, code in this file manages the generation of fast-path implementations of\n// encode/decode of slices/maps of primitive keys/values.\n//\n// Users MUST re-generate their implementations whenever the code shape changes.\n// The generated code will panic if it was generated with a version older than the supporting library.\n// ---------------------------------------------------\n//\n// codec framework is very feature rich.\n// When encoding or decoding into an interface, it depends on the runtime type of the interface.\n// The type of the interface may be a named type, an extension, etc.\n// Consequently, we fallback to runtime codec for encoding/decoding interfaces.\n// In addition, we fallback for any value which cannot be guaranteed at runtime.\n// This allows us support ANY value, including any named types, specifically those which\n// do not implement our interfaces (e.g. Selfer).\n//\n// This explains some slowness compared to other code generation codecs (e.g. msgp).\n// This reduction in speed is only seen when your refers to interfaces,\n// e.g. type T struct { A interface{}; B []interface{}; C map[string]interface{} }\n//\n// codecgen will panic if the file was generated with an old version of the library in use.\n//\n// Note:\n//   It was a conscious decision to have gen.go always explicitly call EncodeNil or TryDecodeAsNil.\n//   This way, there isn't a function call overhead just to see that we should not enter a block of code.\n//\n// Note:\n//   codecgen-generated code depends on the variables defined by fast-path.generated.go.\n//   consequently, you cannot run with tags \"codecgen notfastpath\".\n\n// GenVersion is the current version of codecgen.\n//\n// NOTE: Increment this value each time codecgen changes fundamentally.\n// Fundamental changes are:\n//   - helper methods change (signature change, new ones added, some removed, etc)\n//   - codecgen command line changes\n//\n// v1: Initial Version\n// v2:\n// v3: Changes for Kubernetes:\n//     changes in signature of some unpublished helper methods and codecgen cmdline arguments.\n// v4: Removed separator support from (en|de)cDriver, and refactored codec(gen)\n// v5: changes to support faster json decoding. Let encoder/decoder maintain state of collections.\n// v6: removed unsafe from gen, and now uses codecgen.exec tag\n// v7:\n// v8: current - we now maintain compatibility with old generated code.\n// v9: skipped\n// v10: modified encDriver and decDriver interfaces.\n// v11: remove deprecated methods of encDriver and decDriver.\n// v12: removed deprecated methods from genHelper and changed container tracking logic\nconst genVersion = 12\n\nconst (\n\tgenCodecPkg        = \"codec1978\"\n\tgenTempVarPfx      = \"yy\"\n\tgenTopLevelVarName = \"x\"\n\n\t// ignore canBeNil parameter, and always set to true.\n\t// This is because nil can appear anywhere, so we should always check.\n\tgenAnythingCanBeNil = true\n\n\t// if genUseOneFunctionForDecStructMap, make a single codecDecodeSelferFromMap function;\n\t// else make codecDecodeSelferFromMap{LenPrefix,CheckBreak} so that conditionals\n\t// are not executed a lot.\n\t//\n\t// From testing, it didn't make much difference in runtime, so keep as true (one function only)\n\tgenUseOneFunctionForDecStructMap = true\n\n\t// genFastpathCanonical configures whether we support Canonical in fast path.\n\t// The savings is not much.\n\t//\n\t// NOTE: This MUST ALWAYS BE TRUE. fast-path.go.tmp doesn't handle it being false.\n\tgenFastpathCanonical = true // MUST be true\n\n\t// genFastpathTrimTypes configures whether we trim uncommon fastpath types.\n\tgenFastpathTrimTypes = true\n)\n\ntype genStructMapStyle uint8\n\nconst (\n\tgenStructMapStyleConsolidated genStructMapStyle = iota\n\tgenStructMapStyleLenPrefix\n\tgenStructMapStyleCheckBreak\n)\n\nvar (\n\terrGenAllTypesSamePkg  = errors.New(\"All types must be in the same package\")\n\terrGenExpectArrayOrMap = errors.New(\"unexpected type. Expecting array/map/slice\")\n\n\tgenBase64enc  = base64.NewEncoding(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__\")\n\tgenQNameRegex = regexp.MustCompile(`[A-Za-z_.]+`)\n)\n\ntype genBuf struct {\n\tbuf []byte\n}\n\nfunc (x *genBuf) s(s string) *genBuf              { x.buf = append(x.buf, s...); return x }\nfunc (x *genBuf) b(s []byte) *genBuf              { x.buf = append(x.buf, s...); return x }\nfunc (x *genBuf) v() string                       { return string(x.buf) }\nfunc (x *genBuf) f(s string, args ...interface{}) { x.s(fmt.Sprintf(s, args...)) }\nfunc (x *genBuf) reset() {\n\tif x.buf != nil {\n\t\tx.buf = x.buf[:0]\n\t}\n}\n\n// genRunner holds some state used during a Gen run.\ntype genRunner struct {\n\tw io.Writer // output\n\tc uint64    // counter used for generating varsfx\n\tf uint64    // counter used for saying false\n\n\tt  []reflect.Type   // list of types to run selfer on\n\ttc reflect.Type     // currently running selfer on this type\n\tte map[uintptr]bool // types for which the encoder has been created\n\ttd map[uintptr]bool // types for which the decoder has been created\n\tcp string           // codec import path\n\n\tim  map[string]reflect.Type // imports to add\n\timn map[string]string       // package names of imports to add\n\timc uint64                  // counter for import numbers\n\n\tis map[reflect.Type]struct{} // types seen during import search\n\tbp string                    // base PkgPath, for which we are generating for\n\n\tcpfx string // codec package prefix\n\n\ttm map[reflect.Type]struct{} // types for which enc/dec must be generated\n\tts []reflect.Type            // types for which enc/dec must be generated\n\n\txs string // top level variable/constant suffix\n\thn string // fn helper type name\n\n\tti *TypeInfos\n\t// rr *rand.Rand // random generator for file-specific types\n\n\tnx bool // no extensions\n}\n\ntype genIfClause struct {\n\thasIf bool\n}\n\nfunc (g *genIfClause) end(x *genRunner) {\n\tif g.hasIf {\n\t\tx.line(\"}\")\n\t}\n}\n\nfunc (g *genIfClause) c(last bool) (v string) {\n\tif last {\n\t\tif g.hasIf {\n\t\t\tv = \" } else { \"\n\t\t}\n\t} else if g.hasIf {\n\t\tv = \" } else if \"\n\t} else {\n\t\tv = \"if \"\n\t\tg.hasIf = true\n\t}\n\treturn\n}\n\n// Gen will write a complete go file containing Selfer implementations for each\n// type passed. All the types must be in the same package.\n//\n// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINUOUSLY WITHOUT NOTICE.\nfunc Gen(w io.Writer, buildTags, pkgName, uid string, noExtensions bool,\n\tti *TypeInfos, typ ...reflect.Type) {\n\t// All types passed to this method do not have a codec.Selfer method implemented directly.\n\t// codecgen already checks the AST and skips any types that define the codec.Selfer methods.\n\t// Consequently, there's no need to check and trim them if they implement codec.Selfer\n\n\tif len(typ) == 0 {\n\t\treturn\n\t}\n\tx := genRunner{\n\t\tw:   w,\n\t\tt:   typ,\n\t\tte:  make(map[uintptr]bool),\n\t\ttd:  make(map[uintptr]bool),\n\t\tim:  make(map[string]reflect.Type),\n\t\timn: make(map[string]string),\n\t\tis:  make(map[reflect.Type]struct{}),\n\t\ttm:  make(map[reflect.Type]struct{}),\n\t\tts:  []reflect.Type{},\n\t\tbp:  genImportPath(typ[0]),\n\t\txs:  uid,\n\t\tti:  ti,\n\t\tnx:  noExtensions,\n\t}\n\tif x.ti == nil {\n\t\tx.ti = defTypeInfos\n\t}\n\tif x.xs == \"\" {\n\t\trr := rand.New(rand.NewSource(time.Now().UnixNano()))\n\t\tx.xs = strconv.FormatInt(rr.Int63n(9999), 10)\n\t}\n\n\t// gather imports first:\n\tx.cp = genImportPath(reflect.TypeOf(x))\n\tx.imn[x.cp] = genCodecPkg\n\tfor _, t := range typ {\n\t\t// fmt.Printf(\"###########: PkgPath: '%v', Name: '%s'\\n\", genImportPath(t), t.Name())\n\t\tif genImportPath(t) != x.bp {\n\t\t\tpanic(errGenAllTypesSamePkg)\n\t\t}\n\t\tx.genRefPkgs(t)\n\t}\n\tif buildTags != \"\" {\n\t\tx.line(\"// +build \" + buildTags)\n\t\tx.line(\"\")\n\t}\n\tx.line(`\n\n// Code generated by codecgen - DO NOT EDIT.\n\n`)\n\tx.line(\"package \" + pkgName)\n\tx.line(\"\")\n\tx.line(\"import (\")\n\tif x.cp != x.bp {\n\t\tx.cpfx = genCodecPkg + \".\"\n\t\tx.linef(\"%s \\\"%s\\\"\", genCodecPkg, x.cp)\n\t}\n\t// use a sorted set of im keys, so that we can get consistent output\n\timKeys := make([]string, 0, len(x.im))\n\tfor k := range x.im {\n\t\timKeys = append(imKeys, k)\n\t}\n\tsort.Strings(imKeys)\n\tfor _, k := range imKeys { // for k, _ := range x.im {\n\t\tif k == x.imn[k] {\n\t\t\tx.linef(\"\\\"%s\\\"\", k)\n\t\t} else {\n\t\t\tx.linef(\"%s \\\"%s\\\"\", x.imn[k], k)\n\t\t}\n\t}\n\t// add required packages\n\tfor _, k := range [...]string{\"runtime\", \"errors\", \"strconv\"} { // \"reflect\", \"fmt\"\n\t\tif _, ok := x.im[k]; !ok {\n\t\t\tx.line(\"\\\"\" + k + \"\\\"\")\n\t\t}\n\t}\n\tx.line(\")\")\n\tx.line(\"\")\n\n\tx.line(\"const (\")\n\tx.linef(\"// ----- content types ----\")\n\tx.linef(\"codecSelferCcUTF8%s = %v\", x.xs, int64(cUTF8))\n\tx.linef(\"codecSelferCcRAW%s = %v\", x.xs, int64(cRAW))\n\tx.linef(\"// ----- value types used ----\")\n\tfor _, vt := range [...]valueType{\n\t\tvalueTypeArray, valueTypeMap, valueTypeString,\n\t\tvalueTypeInt, valueTypeUint, valueTypeFloat} {\n\t\tx.linef(\"codecSelferValueType%s%s = %v\", vt.String(), x.xs, int64(vt))\n\t}\n\n\tx.linef(\"codecSelferBitsize%s = uint8(32 << (^uint(0) >> 63))\", x.xs)\n\tx.line(\")\")\n\tx.line(\"var (\")\n\tx.line(\"errCodecSelferOnlyMapOrArrayEncodeToStruct\" + x.xs + \" = \" + \"\\nerrors.New(`only encoded map or array can be decoded into a struct`)\")\n\tx.line(\")\")\n\tx.line(\"\")\n\n\tx.hn = \"codecSelfer\" + x.xs\n\tx.line(\"type \" + x.hn + \" struct{}\")\n\tx.line(\"\")\n\tx.linef(\"func %sFalse() bool { return false }\", x.hn)\n\tx.line(\"\")\n\tx.varsfxreset()\n\tx.line(\"func init() {\")\n\tx.linef(\"if %sGenVersion != %v {\", x.cpfx, genVersion)\n\tx.line(\"_, file, _, _ := runtime.Caller(0)\")\n\tx.linef(\"ver := strconv.FormatInt(int64(%sGenVersion), 10)\", x.cpfx)\n\tx.outf(`panic(\"codecgen version mismatch: current: %v, need \" + ver + \". Re-generate file: \" + file)`, genVersion)\n\t// x.out(`panic(fmt.Errorf(\"codecgen version mismatch: current: %v, need %v. Re-generate file: %v\", `)\n\t// x.linef(`%v, %sGenVersion, file))`, genVersion, x.cpfx)\n\tx.linef(\"}\")\n\tif len(imKeys) > 0 {\n\t\tx.line(\"if false { // reference the types, but skip this branch at build/run time\")\n\t\tx.line(\"var _ byte\")\n\t\t// x.line(\"_ = strconv.ParseInt\")\n\t\t// var n int\n\t\t// for k, t := range x.im {\n\t\tfor _, k := range imKeys {\n\t\t\tt := x.im[k]\n\t\t\t// x.linef(\"var v%v %s.%s\", n, x.imn[k], t.Name())\n\t\t\t// n++\n\t\t\tx.linef(\"var _ %s.%s\", x.imn[k], t.Name())\n\t\t}\n\t\t// if n > 0 {\n\t\t// \tx.out(\"_\")\n\t\t// \tfor i := 1; i < n; i++ {\n\t\t// \t\tx.out(\", _\")\n\t\t// \t}\n\t\t// \tx.out(\" = v0\")\n\t\t// \tfor i := 1; i < n; i++ {\n\t\t// \t\tx.outf(\", v%v\", i)\n\t\t// \t}\n\t\t// }\n\t\tx.line(\"} \") // close if false\n\t}\n\tx.line(\"}\") // close init\n\tx.line(\"\")\n\n\t// generate rest of type info\n\tfor _, t := range typ {\n\t\tx.tc = t\n\t\tx.selfer(true)\n\t\tx.selfer(false)\n\t}\n\n\tfor _, t := range x.ts {\n\t\trtid := rt2id(t)\n\t\t// generate enc functions for all these slice/map types.\n\t\tx.varsfxreset()\n\t\tx.linef(\"func (x %s) enc%s(v %s%s, e *%sEncoder) {\", x.hn, x.genMethodNameT(t), x.arr2str(t, \"*\"), x.genTypeName(t), x.cpfx)\n\t\tx.genRequiredMethodVars(true)\n\t\tswitch t.Kind() {\n\t\tcase reflect.Array, reflect.Slice, reflect.Chan:\n\t\t\tx.encListFallback(\"v\", t)\n\t\tcase reflect.Map:\n\t\t\tx.encMapFallback(\"v\", t)\n\t\tdefault:\n\t\t\tpanic(errGenExpectArrayOrMap)\n\t\t}\n\t\tx.line(\"}\")\n\t\tx.line(\"\")\n\n\t\t// generate dec functions for all these slice/map types.\n\t\tx.varsfxreset()\n\t\tx.linef(\"func (x %s) dec%s(v *%s, d *%sDecoder) {\", x.hn, x.genMethodNameT(t), x.genTypeName(t), x.cpfx)\n\t\tx.genRequiredMethodVars(false)\n\t\tswitch t.Kind() {\n\t\tcase reflect.Array, reflect.Slice, reflect.Chan:\n\t\t\tx.decListFallback(\"v\", rtid, t)\n\t\tcase reflect.Map:\n\t\t\tx.decMapFallback(\"v\", rtid, t)\n\t\tdefault:\n\t\t\tpanic(errGenExpectArrayOrMap)\n\t\t}\n\t\tx.line(\"}\")\n\t\tx.line(\"\")\n\t}\n\n\tx.line(\"\")\n}\n\nfunc (x *genRunner) checkForSelfer(t reflect.Type, varname string) bool {\n\t// return varname != genTopLevelVarName && t != x.tc\n\t// the only time we checkForSelfer is if we are not at the TOP of the generated code.\n\treturn varname != genTopLevelVarName\n}\n\nfunc (x *genRunner) arr2str(t reflect.Type, s string) string {\n\tif t.Kind() == reflect.Array {\n\t\treturn s\n\t}\n\treturn \"\"\n}\n\nfunc (x *genRunner) genRequiredMethodVars(encode bool) {\n\tx.line(\"var h \" + x.hn)\n\tif encode {\n\t\tx.line(\"z, r := \" + x.cpfx + \"GenHelperEncoder(e)\")\n\t} else {\n\t\tx.line(\"z, r := \" + x.cpfx + \"GenHelperDecoder(d)\")\n\t}\n\tx.line(\"_, _, _ = h, z, r\")\n}\n\nfunc (x *genRunner) genRefPkgs(t reflect.Type) {\n\tif _, ok := x.is[t]; ok {\n\t\treturn\n\t}\n\tx.is[t] = struct{}{}\n\ttpkg, tname := genImportPath(t), t.Name()\n\tif tpkg != \"\" && tpkg != x.bp && tpkg != x.cp && tname != \"\" && tname[0] >= 'A' && tname[0] <= 'Z' {\n\t\tif _, ok := x.im[tpkg]; !ok {\n\t\t\tx.im[tpkg] = t\n\t\t\tif idx := strings.LastIndex(tpkg, \"/\"); idx < 0 {\n\t\t\t\tx.imn[tpkg] = tpkg\n\t\t\t} else {\n\t\t\t\tx.imc++\n\t\t\t\tx.imn[tpkg] = \"pkg\" + strconv.FormatUint(x.imc, 10) + \"_\" + genGoIdentifier(tpkg[idx+1:], false)\n\t\t\t}\n\t\t}\n\t}\n\tswitch t.Kind() {\n\tcase reflect.Array, reflect.Slice, reflect.Ptr, reflect.Chan:\n\t\tx.genRefPkgs(t.Elem())\n\tcase reflect.Map:\n\t\tx.genRefPkgs(t.Elem())\n\t\tx.genRefPkgs(t.Key())\n\tcase reflect.Struct:\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tif fname := t.Field(i).Name; fname != \"\" && fname[0] >= 'A' && fname[0] <= 'Z' {\n\t\t\t\tx.genRefPkgs(t.Field(i).Type)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// sayFalse will either say \"false\" or use a function call that returns false.\nfunc (x *genRunner) sayFalse() string {\n\tx.f++\n\tif x.f%2 == 0 {\n\t\treturn x.hn + \"False()\"\n\t}\n\treturn \"false\"\n}\n\nfunc (x *genRunner) varsfx() string {\n\tx.c++\n\treturn strconv.FormatUint(x.c, 10)\n}\n\nfunc (x *genRunner) varsfxreset() {\n\tx.c = 0\n}\n\nfunc (x *genRunner) out(s string) {\n\t_, err := io.WriteString(x.w, s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (x *genRunner) outf(s string, params ...interface{}) {\n\t_, err := fmt.Fprintf(x.w, s, params...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (x *genRunner) line(s string) {\n\tx.out(s)\n\tif len(s) == 0 || s[len(s)-1] != '\\n' {\n\t\tx.out(\"\\n\")\n\t}\n}\n\nfunc (x *genRunner) lineIf(s string) {\n\tif s != \"\" {\n\t\tx.line(s)\n\t}\n}\n\nfunc (x *genRunner) linef(s string, params ...interface{}) {\n\tx.outf(s, params...)\n\tif len(s) == 0 || s[len(s)-1] != '\\n' {\n\t\tx.out(\"\\n\")\n\t}\n}\n\nfunc (x *genRunner) genTypeName(t reflect.Type) (n string) {\n\t// defer func() { fmt.Printf(\">>>> ####: genTypeName: t: %v, name: '%s'\\n\", t, n) }()\n\n\t// if the type has a PkgPath, which doesn't match the current package,\n\t// then include it.\n\t// We cannot depend on t.String() because it includes current package,\n\t// or t.PkgPath because it includes full import path,\n\t//\n\tvar ptrPfx string\n\tfor t.Kind() == reflect.Ptr {\n\t\tptrPfx += \"*\"\n\t\tt = t.Elem()\n\t}\n\tif tn := t.Name(); tn != \"\" {\n\t\treturn ptrPfx + x.genTypeNamePrim(t)\n\t}\n\tswitch t.Kind() {\n\tcase reflect.Map:\n\t\treturn ptrPfx + \"map[\" + x.genTypeName(t.Key()) + \"]\" + x.genTypeName(t.Elem())\n\tcase reflect.Slice:\n\t\treturn ptrPfx + \"[]\" + x.genTypeName(t.Elem())\n\tcase reflect.Array:\n\t\treturn ptrPfx + \"[\" + strconv.FormatInt(int64(t.Len()), 10) + \"]\" + x.genTypeName(t.Elem())\n\tcase reflect.Chan:\n\t\treturn ptrPfx + t.ChanDir().String() + \" \" + x.genTypeName(t.Elem())\n\tdefault:\n\t\tif t == intfTyp {\n\t\t\treturn ptrPfx + \"interface{}\"\n\t\t} else {\n\t\t\treturn ptrPfx + x.genTypeNamePrim(t)\n\t\t}\n\t}\n}\n\nfunc (x *genRunner) genTypeNamePrim(t reflect.Type) (n string) {\n\tif t.Name() == \"\" {\n\t\treturn t.String()\n\t} else if genImportPath(t) == \"\" || genImportPath(t) == genImportPath(x.tc) {\n\t\treturn t.Name()\n\t} else {\n\t\treturn x.imn[genImportPath(t)] + \".\" + t.Name()\n\t\t// return t.String() // best way to get the package name inclusive\n\t}\n}\n\nfunc (x *genRunner) genZeroValueR(t reflect.Type) string {\n\t// if t is a named type, w\n\tswitch t.Kind() {\n\tcase reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func,\n\t\treflect.Slice, reflect.Map, reflect.Invalid:\n\t\treturn \"nil\"\n\tcase reflect.Bool:\n\t\treturn \"false\"\n\tcase reflect.String:\n\t\treturn `\"\"`\n\tcase reflect.Struct, reflect.Array:\n\t\treturn x.genTypeName(t) + \"{}\"\n\tdefault: // all numbers\n\t\treturn \"0\"\n\t}\n}\n\nfunc (x *genRunner) genMethodNameT(t reflect.Type) (s string) {\n\treturn genMethodNameT(t, x.tc)\n}\n\nfunc (x *genRunner) selfer(encode bool) {\n\tt := x.tc\n\tt0 := t\n\t// always make decode use a pointer receiver,\n\t// and structs/arrays always use a ptr receiver (encode|decode)\n\tisptr := !encode || t.Kind() == reflect.Array || (t.Kind() == reflect.Struct && t != timeTyp)\n\tx.varsfxreset()\n\n\tfnSigPfx := \"func (\" + genTopLevelVarName + \" \"\n\tif isptr {\n\t\tfnSigPfx += \"*\"\n\t}\n\tfnSigPfx += x.genTypeName(t)\n\tx.out(fnSigPfx)\n\n\tif isptr {\n\t\tt = reflect.PtrTo(t)\n\t}\n\tif encode {\n\t\tx.line(\") CodecEncodeSelf(e *\" + x.cpfx + \"Encoder) {\")\n\t\tx.genRequiredMethodVars(true)\n\t\tx.encVar(genTopLevelVarName, t)\n\t} else {\n\t\tx.line(\") CodecDecodeSelf(d *\" + x.cpfx + \"Decoder) {\")\n\t\tx.genRequiredMethodVars(false)\n\t\t// do not use decVar, as there is no need to check TryDecodeAsNil\n\t\t// or way to elegantly handle that, and also setting it to a\n\t\t// non-nil value doesn't affect the pointer passed.\n\t\t// x.decVar(genTopLevelVarName, t, false)\n\t\tx.dec(genTopLevelVarName, t0, true)\n\t}\n\tx.line(\"}\")\n\tx.line(\"\")\n\n\tif encode || t0.Kind() != reflect.Struct {\n\t\treturn\n\t}\n\n\t// write is containerMap\n\tif genUseOneFunctionForDecStructMap {\n\t\tx.out(fnSigPfx)\n\t\tx.line(\") codecDecodeSelfFromMap(l int, d *\" + x.cpfx + \"Decoder) {\")\n\t\tx.genRequiredMethodVars(false)\n\t\tx.decStructMap(genTopLevelVarName, \"l\", rt2id(t0), t0, genStructMapStyleConsolidated)\n\t\tx.line(\"}\")\n\t\tx.line(\"\")\n\t} else {\n\t\tx.out(fnSigPfx)\n\t\tx.line(\") codecDecodeSelfFromMapLenPrefix(l int, d *\" + x.cpfx + \"Decoder) {\")\n\t\tx.genRequiredMethodVars(false)\n\t\tx.decStructMap(genTopLevelVarName, \"l\", rt2id(t0), t0, genStructMapStyleLenPrefix)\n\t\tx.line(\"}\")\n\t\tx.line(\"\")\n\n\t\tx.out(fnSigPfx)\n\t\tx.line(\") codecDecodeSelfFromMapCheckBreak(l int, d *\" + x.cpfx + \"Decoder) {\")\n\t\tx.genRequiredMethodVars(false)\n\t\tx.decStructMap(genTopLevelVarName, \"l\", rt2id(t0), t0, genStructMapStyleCheckBreak)\n\t\tx.line(\"}\")\n\t\tx.line(\"\")\n\t}\n\n\t// write containerArray\n\tx.out(fnSigPfx)\n\tx.line(\") codecDecodeSelfFromArray(l int, d *\" + x.cpfx + \"Decoder) {\")\n\tx.genRequiredMethodVars(false)\n\tx.decStructArray(genTopLevelVarName, \"l\", \"return\", rt2id(t0), t0)\n\tx.line(\"}\")\n\tx.line(\"\")\n\n}\n\n// used for chan, array, slice, map\nfunc (x *genRunner) xtraSM(varname string, t reflect.Type, encode, isptr bool) {\n\tvar ptrPfx, addrPfx string\n\tif isptr {\n\t\tptrPfx = \"*\"\n\t} else {\n\t\taddrPfx = \"&\"\n\t}\n\tif encode {\n\t\tx.linef(\"h.enc%s((%s%s)(%s), e)\", x.genMethodNameT(t), ptrPfx, x.genTypeName(t), varname)\n\t} else {\n\t\tx.linef(\"h.dec%s((*%s)(%s%s), d)\", x.genMethodNameT(t), x.genTypeName(t), addrPfx, varname)\n\t}\n\tx.registerXtraT(t)\n}\n\nfunc (x *genRunner) registerXtraT(t reflect.Type) {\n\t// recursively register the types\n\tif _, ok := x.tm[t]; ok {\n\t\treturn\n\t}\n\tvar tkey reflect.Type\n\tswitch t.Kind() {\n\tcase reflect.Chan, reflect.Slice, reflect.Array:\n\tcase reflect.Map:\n\t\ttkey = t.Key()\n\tdefault:\n\t\treturn\n\t}\n\tx.tm[t] = struct{}{}\n\tx.ts = append(x.ts, t)\n\t// check if this refers to any xtra types eg. a slice of array: add the array\n\tx.registerXtraT(t.Elem())\n\tif tkey != nil {\n\t\tx.registerXtraT(tkey)\n\t}\n}\n\n// encVar will encode a variable.\n// The parameter, t, is the reflect.Type of the variable itself\nfunc (x *genRunner) encVar(varname string, t reflect.Type) {\n\t// xdebugf(\"varname: %s, t: %v\", varname, t)\n\tvar checkNil bool\n\tswitch t.Kind() {\n\tcase reflect.Ptr, reflect.Interface, reflect.Slice, reflect.Map, reflect.Chan:\n\t\tcheckNil = true\n\t}\n\tx.encVarChkNil(varname, t, checkNil)\n}\n\nfunc (x *genRunner) encVarChkNil(varname string, t reflect.Type, checkNil bool) {\n\tif checkNil {\n\t\tx.linef(\"if %s == nil { r.EncodeNil() } else { \", varname)\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Ptr:\n\t\ttelem := t.Elem()\n\t\ttek := telem.Kind()\n\t\tif tek == reflect.Array || (tek == reflect.Struct && telem != timeTyp) {\n\t\t\tx.enc(varname, genNonPtr(t))\n\t\t\tbreak\n\t\t}\n\t\ti := x.varsfx()\n\t\tx.line(genTempVarPfx + i + \" := *\" + varname)\n\t\tx.enc(genTempVarPfx+i, genNonPtr(t))\n\tcase reflect.Struct, reflect.Array:\n\t\tif t == timeTyp {\n\t\t\tx.enc(varname, t)\n\t\t\tbreak\n\t\t}\n\t\ti := x.varsfx()\n\t\tx.line(genTempVarPfx + i + \" := &\" + varname)\n\t\tx.enc(genTempVarPfx+i, t)\n\tdefault:\n\t\tx.enc(varname, t)\n\t}\n\n\tif checkNil {\n\t\tx.line(\"}\")\n\t}\n}\n\n// enc will encode a variable (varname) of type t, where t represents T.\n// if t is !time.Time and t is of kind reflect.Struct or reflect.Array, varname is of type *T\n// (to prevent copying),\n// else t is of type T\nfunc (x *genRunner) enc(varname string, t reflect.Type) {\n\trtid := rt2id(t)\n\tti2 := x.ti.get(rtid, t)\n\t// We call CodecEncodeSelf if one of the following are honored:\n\t//   - the type already implements Selfer, call that\n\t//   - the type has a Selfer implementation just created, use that\n\t//   - the type is in the list of the ones we will generate for, but it is not currently being generated\n\n\tmi := x.varsfx()\n\t// tptr := reflect.PtrTo(t)\n\ttk := t.Kind()\n\tif x.checkForSelfer(t, varname) {\n\t\tif tk == reflect.Array || (tk == reflect.Struct && rtid != timeTypId) { // varname is of type *T\n\t\t\t// if tptr.Implements(selferTyp) || t.Implements(selferTyp) {\n\t\t\tif ti2.isFlag(typeInfoFlagIsZeroerPtr) || ti2.isFlag(typeInfoFlagIsZeroer) {\n\t\t\t\tx.line(varname + \".CodecEncodeSelf(e)\")\n\t\t\t\treturn\n\t\t\t}\n\t\t} else { // varname is of type T\n\t\t\tif ti2.cs { // t.Implements(selferTyp) {\n\t\t\t\tx.line(varname + \".CodecEncodeSelf(e)\")\n\t\t\t\treturn\n\t\t\t} else if ti2.csp { // tptr.Implements(selferTyp) {\n\t\t\t\tx.linef(\"%ssf%s := &%s\", genTempVarPfx, mi, varname)\n\t\t\t\tx.linef(\"%ssf%s.CodecEncodeSelf(e)\", genTempVarPfx, mi)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tif _, ok := x.te[rtid]; ok {\n\t\t\tx.line(varname + \".CodecEncodeSelf(e)\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tinlist := false\n\tfor _, t0 := range x.t {\n\t\tif t == t0 {\n\t\t\tinlist = true\n\t\t\tif x.checkForSelfer(t, varname) {\n\t\t\t\tx.line(varname + \".CodecEncodeSelf(e)\")\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\tvar rtidAdded bool\n\tif t == x.tc {\n\t\tx.te[rtid] = true\n\t\trtidAdded = true\n\t}\n\n\t// check if\n\t//   - type is time.Time, RawExt, Raw\n\t//   - the type implements (Text|JSON|Binary)(Unm|M)arshal\n\n\tvar hasIf genIfClause\n\tdefer hasIf.end(x) // end if block (if necessary)\n\n\tif t == timeTyp {\n\t\tx.linef(\"%s !z.EncBasicHandle().TimeNotBuiltin { r.EncodeTime(%s)\", hasIf.c(false), varname)\n\t\t// return\n\t}\n\tif t == rawTyp {\n\t\tx.linef(\"%s z.EncRaw(%s)\", hasIf.c(true), varname)\n\t\treturn\n\t}\n\tif t == rawExtTyp {\n\t\tx.linef(\"%s r.EncodeRawExt(%s, e)\", hasIf.c(true), varname)\n\t\treturn\n\t}\n\t// only check for extensions if the type is named, and has a packagePath.\n\tvar arrayOrStruct = tk == reflect.Array || tk == reflect.Struct // meaning varname if of type *T\n\tif !x.nx && genImportPath(t) != \"\" && t.Name() != \"\" {\n\t\tyy := fmt.Sprintf(\"%sxt%s\", genTempVarPfx, mi)\n\t\tx.linef(\"%s %s := z.Extension(z.I2Rtid(%s)); %s != nil { z.EncExtension(%s, %s) \",\n\t\t\thasIf.c(false), yy, varname, yy, varname, yy)\n\t}\n\tif arrayOrStruct { // varname is of type *T\n\t\tif ti2.bm || ti2.bmp { // t.Implements(binaryMarshalerTyp) || tptr.Implements(binaryMarshalerTyp) {\n\t\t\tx.linef(\"%s z.EncBinary() { z.EncBinaryMarshal(%v) \", hasIf.c(false), varname)\n\t\t}\n\t\tif ti2.jm || ti2.jmp { // t.Implements(jsonMarshalerTyp) || tptr.Implements(jsonMarshalerTyp) {\n\t\t\tx.linef(\"%s !z.EncBinary() && z.IsJSONHandle() { z.EncJSONMarshal(%v) \", hasIf.c(false), varname)\n\t\t} else if ti2.tm || ti2.tmp { // t.Implements(textMarshalerTyp) || tptr.Implements(textMarshalerTyp) {\n\t\t\tx.linef(\"%s !z.EncBinary() { z.EncTextMarshal(%v) \", hasIf.c(false), varname)\n\t\t}\n\t} else { // varname is of type T\n\t\tif ti2.bm { // t.Implements(binaryMarshalerTyp) {\n\t\t\tx.linef(\"%s z.EncBinary() { z.EncBinaryMarshal(%v) \", hasIf.c(false), varname)\n\t\t} else if ti2.bmp { // tptr.Implements(binaryMarshalerTyp) {\n\t\t\tx.linef(\"%s z.EncBinary() { z.EncBinaryMarshal(&%v) \", hasIf.c(false), varname)\n\t\t}\n\t\tif ti2.jm { // t.Implements(jsonMarshalerTyp) {\n\t\t\tx.linef(\"%s !z.EncBinary() && z.IsJSONHandle() { z.EncJSONMarshal(%v) \", hasIf.c(false), varname)\n\t\t} else if ti2.jmp { // tptr.Implements(jsonMarshalerTyp) {\n\t\t\tx.linef(\"%s !z.EncBinary() && z.IsJSONHandle() { z.EncJSONMarshal(&%v) \", hasIf.c(false), varname)\n\t\t} else if ti2.tm { // t.Implements(textMarshalerTyp) {\n\t\t\tx.linef(\"%s !z.EncBinary() { z.EncTextMarshal(%v) \", hasIf.c(false), varname)\n\t\t} else if ti2.tmp { // tptr.Implements(textMarshalerTyp) {\n\t\t\tx.linef(\"%s !z.EncBinary() { z.EncTextMarshal(&%v) \", hasIf.c(false), varname)\n\t\t}\n\t}\n\tx.lineIf(hasIf.c(true))\n\n\tswitch t.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tx.line(\"r.EncodeInt(int64(\" + varname + \"))\")\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tx.line(\"r.EncodeUint(uint64(\" + varname + \"))\")\n\tcase reflect.Float32:\n\t\tx.line(\"r.EncodeFloat32(float32(\" + varname + \"))\")\n\tcase reflect.Float64:\n\t\tx.line(\"r.EncodeFloat64(float64(\" + varname + \"))\")\n\tcase reflect.Bool:\n\t\tx.line(\"r.EncodeBool(bool(\" + varname + \"))\")\n\tcase reflect.String:\n\t\tx.linef(\"if z.EncBasicHandle().StringToRaw { r.EncodeStringBytesRaw(z.BytesView(string(%s))) } else { r.EncodeStringEnc(codecSelferCcUTF8%s, string(%s)) }\", varname, x.xs, varname)\n\tcase reflect.Chan:\n\t\tx.xtraSM(varname, t, true, false)\n\t\t// x.encListFallback(varname, rtid, t)\n\tcase reflect.Array:\n\t\tx.xtraSM(varname, t, true, true)\n\tcase reflect.Slice:\n\t\t// if nil, call dedicated function\n\t\t// if a []uint8, call dedicated function\n\t\t// if a known fastpath slice, call dedicated function\n\t\t// else write encode function in-line.\n\t\t// - if elements are primitives or Selfers, call dedicated function on each member.\n\t\t// - else call Encoder.encode(XXX) on it.\n\t\tif rtid == uint8SliceTypId {\n\t\t\tx.line(\"r.EncodeStringBytesRaw([]byte(\" + varname + \"))\")\n\t\t} else if fastpathAV.index(rtid) != -1 {\n\t\t\tg := x.newFastpathGenV(t)\n\t\t\tx.line(\"z.F.\" + g.MethodNamePfx(\"Enc\", false) + \"V(\" + varname + \", e)\")\n\t\t} else {\n\t\t\tx.xtraSM(varname, t, true, false)\n\t\t\t// x.encListFallback(varname, rtid, t)\n\t\t}\n\tcase reflect.Map:\n\t\t// if nil, call dedicated function\n\t\t// if a known fastpath map, call dedicated function\n\t\t// else write encode function in-line.\n\t\t// - if elements are primitives or Selfers, call dedicated function on each member.\n\t\t// - else call Encoder.encode(XXX) on it.\n\t\t// x.line(\"if \" + varname + \" == nil { \\nr.EncodeNil()\\n } else { \")\n\t\tif fastpathAV.index(rtid) != -1 {\n\t\t\tg := x.newFastpathGenV(t)\n\t\t\tx.line(\"z.F.\" + g.MethodNamePfx(\"Enc\", false) + \"V(\" + varname + \", e)\")\n\t\t} else {\n\t\t\tx.xtraSM(varname, t, true, false)\n\t\t\t// x.encMapFallback(varname, rtid, t)\n\t\t}\n\tcase reflect.Struct:\n\t\tif !inlist {\n\t\t\tdelete(x.te, rtid)\n\t\t\tx.line(\"z.EncFallback(\" + varname + \")\")\n\t\t\tbreak\n\t\t}\n\t\tx.encStruct(varname, rtid, t)\n\tdefault:\n\t\tif rtidAdded {\n\t\t\tdelete(x.te, rtid)\n\t\t}\n\t\tx.line(\"z.EncFallback(\" + varname + \")\")\n\t}\n}\n\nfunc (x *genRunner) encZero(t reflect.Type) {\n\tswitch t.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tx.line(\"r.EncodeInt(0)\")\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tx.line(\"r.EncodeUint(0)\")\n\tcase reflect.Float32:\n\t\tx.line(\"r.EncodeFloat32(0)\")\n\tcase reflect.Float64:\n\t\tx.line(\"r.EncodeFloat64(0)\")\n\tcase reflect.Bool:\n\t\tx.line(\"r.EncodeBool(false)\")\n\tcase reflect.String:\n\t\tx.linef(`if z.EncBasicHandle().StringToRaw { r.EncodeStringBytesRaw([]byte{}) } else { r.EncodeStringEnc(codecSelferCcUTF8%s, \"\") }`, x.xs)\n\tdefault:\n\t\tx.line(\"r.EncodeNil()\")\n\t}\n}\n\nfunc (x *genRunner) doEncOmitEmptyLine(t2 reflect.StructField, varname string, buf *genBuf) {\n\tx.f = 0\n\tx.encOmitEmptyLine(t2, varname, buf)\n}\n\nfunc (x *genRunner) encOmitEmptyLine(t2 reflect.StructField, varname string, buf *genBuf) {\n\t// smartly check omitEmpty on a struct type, as it may contain uncomparable map/slice/etc.\n\t// also, for maps/slices/arrays, check if len ! 0 (not if == zero value)\n\tvarname2 := varname + \".\" + t2.Name\n\tswitch t2.Type.Kind() {\n\tcase reflect.Struct:\n\t\trtid2 := rt2id(t2.Type)\n\t\tti2 := x.ti.get(rtid2, t2.Type)\n\t\t// fmt.Printf(\">>>> structfield: omitempty: type: %s, field: %s\\n\", t2.Type.Name(), t2.Name)\n\t\tif ti2.rtid == timeTypId {\n\t\t\tbuf.s(\"!(\").s(varname2).s(\".IsZero())\")\n\t\t\tbreak\n\t\t}\n\t\tif ti2.isFlag(typeInfoFlagIsZeroerPtr) || ti2.isFlag(typeInfoFlagIsZeroer) {\n\t\t\tbuf.s(\"!(\").s(varname2).s(\".IsZero())\")\n\t\t\tbreak\n\t\t}\n\t\tif ti2.isFlag(typeInfoFlagComparable) {\n\t\t\tbuf.s(varname2).s(\" != \").s(x.genZeroValueR(t2.Type))\n\t\t\tbreak\n\t\t}\n\t\t// buf.s(\"(\")\n\t\tbuf.s(x.sayFalse()) // buf.s(\"false\")\n\t\tfor i, n := 0, t2.Type.NumField(); i < n; i++ {\n\t\t\tf := t2.Type.Field(i)\n\t\t\tif f.PkgPath != \"\" { // unexported\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbuf.s(\" || \")\n\t\t\tx.encOmitEmptyLine(f, varname2, buf)\n\t\t}\n\t\t//buf.s(\")\")\n\tcase reflect.Bool:\n\t\tbuf.s(varname2)\n\tcase reflect.Map, reflect.Slice, reflect.Array, reflect.Chan:\n\t\tbuf.s(\"len(\").s(varname2).s(\") != 0\")\n\tdefault:\n\t\tbuf.s(varname2).s(\" != \").s(x.genZeroValueR(t2.Type))\n\t}\n}\n\nfunc (x *genRunner) encStruct(varname string, rtid uintptr, t reflect.Type) {\n\t// xdebug2f(\"encStruct, varname: %s, t: %s\", varname, t)\n\t// Use knowledge from structfieldinfo (mbs, encodable fields. Ignore omitempty. )\n\t// replicate code in kStruct i.e. for each field, deref type to non-pointer, and call x.enc on it\n\n\t// if t === type currently running selfer on, do for all\n\tti := x.ti.get(rtid, t)\n\ti := x.varsfx()\n\tsepVarname := genTempVarPfx + \"sep\" + i\n\tnumfieldsvar := genTempVarPfx + \"q\" + i\n\tti2arrayvar := genTempVarPfx + \"r\" + i\n\tstruct2arrvar := genTempVarPfx + \"2arr\" + i\n\t// firstvar := genTempVarPfx + \"2first\" + i\n\n\tx.line(sepVarname + \" := !z.EncBinary()\")\n\tx.linef(\"%s := z.EncBasicHandle().StructToArray\", struct2arrvar)\n\tx.linef(\"_, _ = %s, %s\", sepVarname, struct2arrvar)\n\tx.linef(\"const %s bool = %v // struct tag has 'toArray'\", ti2arrayvar, ti.toArray)\n\t// x.linef(\"var %s bool = true\", firstvar)\n\n\ttisfi := ti.sfiSrc // always use sequence from file. decStruct expects same thing.\n\n\t// var nn int\n\t// due to omitEmpty, we need to calculate the\n\t// number of non-empty things we write out first.\n\t// This is required as we need to pre-determine the size of the container,\n\t// to support length-prefixing.\n\tif ti.anyOmitEmpty {\n\t\tx.linef(\"var %s = [%v]bool{ // should field at this index be written?\", numfieldsvar, len(tisfi))\n\n\t\tfor j, si := range tisfi {\n\t\t\t_ = j\n\t\t\tif !si.omitEmpty() {\n\t\t\t\t// x.linef(\"%s[%v] = true // %s\", numfieldsvar, j, si.fieldName)\n\t\t\t\tx.linef(\"true, // %s\", si.fieldName)\n\t\t\t\t// nn++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvar t2 reflect.StructField\n\t\t\tvar omitline genBuf\n\t\t\t{\n\t\t\t\tt2typ := t\n\t\t\t\tvarname3 := varname\n\t\t\t\t// go through the loop, record the t2 field explicitly,\n\t\t\t\t// and gather the omit line if embedded in pointers.\n\t\t\t\tfor ij, ix := range si.is {\n\t\t\t\t\tif uint8(ij) == si.nis {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tfor t2typ.Kind() == reflect.Ptr {\n\t\t\t\t\t\tt2typ = t2typ.Elem()\n\t\t\t\t\t}\n\t\t\t\t\tt2 = t2typ.Field(int(ix))\n\t\t\t\t\tt2typ = t2.Type\n\t\t\t\t\tvarname3 = varname3 + \".\" + t2.Name\n\t\t\t\t\t// do not include actual field in the omit line.\n\t\t\t\t\t// that is done subsequently (right after - below).\n\t\t\t\t\tif uint8(ij+1) < si.nis && t2typ.Kind() == reflect.Ptr {\n\t\t\t\t\t\tomitline.s(varname3).s(\" != nil && \")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tx.doEncOmitEmptyLine(t2, varname, &omitline)\n\t\t\tx.linef(\"%s, // %s\", omitline.v(), si.fieldName)\n\t\t}\n\t\tx.line(\"}\")\n\t\tx.linef(\"_ = %s\", numfieldsvar)\n\t}\n\t// x.linef(\"var %snn%s int\", genTempVarPfx, i)\n\n\ttype genFQN struct {\n\t\ti       string\n\t\tfqname  string\n\t\tnilLine genBuf\n\t\tnilVar  string\n\t\tcanNil  bool\n\t\tsf      reflect.StructField\n\t}\n\n\tgenFQNs := make([]genFQN, len(tisfi))\n\tfor j, si := range tisfi {\n\t\tq := &genFQNs[j]\n\t\tq.i = x.varsfx()\n\t\tq.nilVar = genTempVarPfx + \"n\" + q.i\n\t\tq.canNil = false\n\t\tq.fqname = varname\n\t\t{\n\t\t\tt2typ := t\n\t\t\tfor ij, ix := range si.is {\n\t\t\t\tif uint8(ij) == si.nis {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tfor t2typ.Kind() == reflect.Ptr {\n\t\t\t\t\tt2typ = t2typ.Elem()\n\t\t\t\t}\n\t\t\t\tq.sf = t2typ.Field(int(ix))\n\t\t\t\tt2typ = q.sf.Type\n\t\t\t\tq.fqname += \".\" + q.sf.Name\n\t\t\t\tif t2typ.Kind() == reflect.Ptr {\n\t\t\t\t\tif !q.canNil {\n\t\t\t\t\t\tq.nilLine.f(\"%s == nil\", q.fqname)\n\t\t\t\t\t\tq.canNil = true\n\t\t\t\t\t} else {\n\t\t\t\t\t\tq.nilLine.f(\" || %s == nil\", q.fqname)\n\t\t\t\t\t}\n\t\t\t\t\t// x.linef(\"if %s == nil { %s = true; goto LABEL%d }\", varname3, isNilVarName, i)\n\t\t\t\t\t// \"varname3 = new(\" + x.genTypeName(t3.Elem()) + \") }\")\n\t\t\t\t}\n\t\t\t}\n\t\t\t// t2 = t.FieldByIndex(si.is)\n\t\t}\n\t}\n\n\tfor j := range genFQNs {\n\t\tq := &genFQNs[j]\n\t\tif q.canNil {\n\t\t\tx.linef(\"var %s bool = %s\", q.nilVar, q.nilLine.v())\n\t\t\t// x.linef(\"if %s { %s = true }\", q.nilLine.v(), q.nilVar)\n\t\t}\n\t}\n\n\tx.linef(\"if %s || %s {\", ti2arrayvar, struct2arrvar) // if ti.toArray\n\tx.linef(\"z.EncWriteArrayStart(%d)\", len(tisfi))\n\n\tfor j, si := range tisfi {\n\t\tq := &genFQNs[j]\n\t\t// if the type of the field is a Selfer, or one of the ones\n\t\tif q.canNil {\n\t\t\tx.linef(\"if %s { z.EncWriteArrayElem(); r.EncodeNil() } else { \", q.nilVar)\n\t\t}\n\t\tx.linef(\"z.EncWriteArrayElem()\")\n\t\tif si.omitEmpty() {\n\t\t\tx.linef(\"if %s[%v] {\", numfieldsvar, j)\n\t\t}\n\t\t// xdebug2f(\"varname: %s, t2.Type: %s\", varname3, t2.Type)\n\t\tx.encVarChkNil(q.fqname, q.sf.Type, false)\n\t\tif si.omitEmpty() {\n\t\t\tx.linef(\"} else {\")\n\t\t\tx.encZero(q.sf.Type)\n\t\t\tx.linef(\"}\")\n\t\t}\n\t\tif q.canNil {\n\t\t\tx.line(\"}\")\n\t\t}\n\t}\n\n\tx.line(\"z.EncWriteArrayEnd()\")\n\tx.linef(\"} else {\") // if not ti.toArray\n\tif ti.anyOmitEmpty {\n\t\t// nn = 0\n\t\t// x.linef(\"var %snn%s = %v\", genTempVarPfx, i, nn)\n\t\tx.linef(\"var %snn%s int\", genTempVarPfx, i)\n\t\tx.linef(\"for _, b := range %s { if b { %snn%s++ } }\", numfieldsvar, genTempVarPfx, i)\n\t\tx.linef(\"z.EncWriteMapStart(%snn%s)\", genTempVarPfx, i)\n\t\tx.linef(\"%snn%s = %v\", genTempVarPfx, i, 0)\n\t} else {\n\t\tx.linef(\"z.EncWriteMapStart(%d)\", len(tisfi))\n\t}\n\n\tfor j, si := range tisfi {\n\t\tq := &genFQNs[j]\n\t\tif si.omitEmpty() {\n\t\t\tx.linef(\"if %s[%v] {\", numfieldsvar, j)\n\t\t}\n\t\tx.linef(\"z.EncWriteMapElemKey()\")\n\n\t\t// emulate EncStructFieldKey\n\t\tswitch ti.keyType {\n\t\tcase valueTypeInt:\n\t\t\tx.linef(\"r.EncodeInt(z.M.Int(strconv.ParseInt(`%s`, 10, 64)))\", si.encName)\n\t\tcase valueTypeUint:\n\t\t\tx.linef(\"r.EncodeUint(z.M.Uint(strconv.ParseUint(`%s`, 10, 64)))\", si.encName)\n\t\tcase valueTypeFloat:\n\t\t\tx.linef(\"r.EncodeFloat64(z.M.Float(strconv.ParseFloat(`%s`, 64)))\", si.encName)\n\t\tdefault: // string\n\t\t\tif si.encNameAsciiAlphaNum {\n\t\t\t\tx.linef(`if z.IsJSONHandle() { z.WriteStr(\"\\\"%s\\\"\") } else { `, si.encName)\n\t\t\t}\n\t\t\tx.linef(\"r.EncodeStringEnc(codecSelferCcUTF8%s, `%s`)\", x.xs, si.encName)\n\t\t\tif si.encNameAsciiAlphaNum {\n\t\t\t\tx.linef(\"}\")\n\t\t\t}\n\t\t}\n\t\t// x.linef(\"r.EncStructFieldKey(codecSelferValueType%s%s, `%s`)\", ti.keyType.String(), x.xs, si.encName)\n\t\tx.line(\"z.EncWriteMapElemValue()\")\n\t\tif q.canNil {\n\t\t\tx.line(\"if \" + q.nilVar + \" { r.EncodeNil() } else { \")\n\t\t\tx.encVarChkNil(q.fqname, q.sf.Type, false)\n\t\t\tx.line(\"}\")\n\t\t} else {\n\t\t\tx.encVarChkNil(q.fqname, q.sf.Type, false)\n\t\t}\n\t\tif si.omitEmpty() {\n\t\t\tx.line(\"}\")\n\t\t}\n\t}\n\tx.line(\"z.EncWriteMapEnd()\")\n\tx.linef(\"} \") // end if/else ti.toArray\n}\n\nfunc (x *genRunner) encListFallback(varname string, t reflect.Type) {\n\telemBytes := t.Elem().Kind() == reflect.Uint8\n\tif t.AssignableTo(uint8SliceTyp) {\n\t\tx.linef(\"r.EncodeStringBytesRaw([]byte(%s))\", varname)\n\t\treturn\n\t}\n\tif t.Kind() == reflect.Array && elemBytes {\n\t\tx.linef(\"r.EncodeStringBytesRaw(((*[%d]byte)(%s))[:])\", t.Len(), varname)\n\t\treturn\n\t}\n\ti := x.varsfx()\n\tif t.Kind() == reflect.Chan {\n\t\ttype ts struct {\n\t\t\tLabel, Chan, Slice, Sfx string\n\t\t}\n\t\ttm, err := template.New(\"\").Parse(genEncChanTmpl)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tx.linef(\"if %s == nil { r.EncodeNil() } else { \", varname)\n\t\tx.linef(\"var sch%s []%s\", i, x.genTypeName(t.Elem()))\n\t\terr = tm.Execute(x.w, &ts{\"Lsch\" + i, varname, \"sch\" + i, i})\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\t// x.linef(\"%s = sch%s\", varname, i)\n\t\tif elemBytes {\n\t\t\tx.linef(\"r.EncodeStringBytesRaw([]byte(%s))\", \"sch\"+i)\n\t\t\tx.line(\"}\")\n\t\t\treturn\n\t\t}\n\t\tvarname = \"sch\" + i\n\t}\n\n\tx.line(\"z.EncWriteArrayStart(len(\" + varname + \"))\")\n\tx.linef(\"for _, %sv%s := range %s {\", genTempVarPfx, i, varname)\n\tx.linef(\"z.EncWriteArrayElem()\")\n\n\tx.encVar(genTempVarPfx+\"v\"+i, t.Elem())\n\tx.line(\"}\")\n\tx.line(\"z.EncWriteArrayEnd()\")\n\tif t.Kind() == reflect.Chan {\n\t\tx.line(\"}\")\n\t}\n}\n\nfunc (x *genRunner) encMapFallback(varname string, t reflect.Type) {\n\t// TODO: expand this to handle canonical.\n\ti := x.varsfx()\n\tx.line(\"z.EncWriteMapStart(len(\" + varname + \"))\")\n\t// x.linef(\"var %sfirst%s = true\", genTempVarPfx, i)\n\tx.linef(\"for %sk%s, %sv%s := range %s {\", genTempVarPfx, i, genTempVarPfx, i, varname)\n\tx.linef(\"z.EncWriteMapElemKey()\")\n\t// x.linef(\"%sfirst%s = false\", genTempVarPfx, i)\n\tx.encVar(genTempVarPfx+\"k\"+i, t.Key())\n\tx.line(\"z.EncWriteMapElemValue()\")\n\tx.encVar(genTempVarPfx+\"v\"+i, t.Elem())\n\tx.line(\"}\")\n\tx.line(\"z.EncWriteMapEnd()\")\n}\n\nfunc (x *genRunner) decVarInitPtr(varname, nilvar string, t reflect.Type, si *structFieldInfo,\n\tnewbuf, nilbuf *genBuf) (varname3 string, t2 reflect.StructField) {\n\t//we must accommodate anonymous fields, where the embedded field is a nil pointer in the value.\n\t// t2 = t.FieldByIndex(si.is)\n\tvarname3 = varname\n\tt2typ := t\n\tt2kind := t2typ.Kind()\n\tvar nilbufed bool\n\tif si != nil {\n\t\tfor ij, ix := range si.is {\n\t\t\tif uint8(ij) == si.nis {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfor t2typ.Kind() == reflect.Ptr {\n\t\t\t\tt2typ = t2typ.Elem()\n\t\t\t}\n\t\t\tt2 = t2typ.Field(int(ix))\n\t\t\tt2typ = t2.Type\n\t\t\tvarname3 = varname3 + \".\" + t2.Name\n\t\t\tt2kind = t2typ.Kind()\n\t\t\tif t2kind != reflect.Ptr {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif newbuf != nil {\n\t\t\t\tnewbuf.f(\"if %s == nil { %s = new(%s) }\\n\", varname3, varname3, x.genTypeName(t2typ.Elem()))\n\t\t\t}\n\t\t\tif nilbuf != nil {\n\t\t\t\tif !nilbufed {\n\t\t\t\t\tnilbuf.s(\"if \").s(varname3).s(\" != nil\")\n\t\t\t\t\tnilbufed = true\n\t\t\t\t} else {\n\t\t\t\t\tnilbuf.s(\" && \").s(varname3).s(\" != nil\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// if t2typ.Kind() == reflect.Ptr {\n\t// \tvarname3 = varname3 + t2.Name\n\t// }\n\tif nilbuf != nil {\n\t\tif nilbufed {\n\t\t\tnilbuf.s(\" { \").s(\"// remove the if-true\\n\")\n\t\t}\n\t\tif nilvar != \"\" {\n\t\t\tnilbuf.s(nilvar).s(\" = true\")\n\t\t} else if tk := t2typ.Kind(); tk == reflect.Ptr {\n\t\t\tif strings.IndexByte(varname3, '.') != -1 || strings.IndexByte(varname3, '[') != -1 {\n\t\t\t\tnilbuf.s(varname3).s(\" = nil\")\n\t\t\t} else {\n\t\t\t\tnilbuf.s(\"*\").s(varname3).s(\" = \").s(x.genZeroValueR(t2typ.Elem()))\n\t\t\t}\n\t\t} else {\n\t\t\tnilbuf.s(varname3).s(\" = \").s(x.genZeroValueR(t2typ))\n\t\t}\n\t\tif nilbufed {\n\t\t\tnilbuf.s(\"}\")\n\t\t}\n\t}\n\treturn\n}\n\n// decVar takes a variable called varname, of type t\nfunc (x *genRunner) decVarMain(varname, rand string, t reflect.Type, checkNotNil bool) {\n\t// We only encode as nil if a nillable value.\n\t// This removes some of the wasted checks for TryDecodeAsNil.\n\t// We need to think about this more, to see what happens if omitempty, etc\n\t// cause a nil value to be stored when something is expected.\n\t// This could happen when decoding from a struct encoded as an array.\n\t// For that, decVar should be called with canNil=true, to force true as its value.\n\tvar varname2 string\n\tif t.Kind() != reflect.Ptr {\n\t\tif t.PkgPath() != \"\" || !x.decTryAssignPrimitive(varname, t, false) {\n\t\t\tx.dec(varname, t, false)\n\t\t}\n\t} else {\n\t\tif checkNotNil {\n\t\t\tx.linef(\"if %s == nil { %s = new(%s) }\", varname, varname, x.genTypeName(t.Elem()))\n\t\t}\n\t\t// Ensure we set underlying ptr to a non-nil value (so we can deref to it later).\n\t\t// There's a chance of a **T in here which is nil.\n\t\tvar ptrPfx string\n\t\tfor t = t.Elem(); t.Kind() == reflect.Ptr; t = t.Elem() {\n\t\t\tptrPfx += \"*\"\n\t\t\tif checkNotNil {\n\t\t\t\tx.linef(\"if %s%s == nil { %s%s = new(%s)}\",\n\t\t\t\t\tptrPfx, varname, ptrPfx, varname, x.genTypeName(t))\n\t\t\t}\n\t\t}\n\t\t// Should we create temp var if a slice/map indexing? No. dec(...) can now handle it.\n\n\t\tif ptrPfx == \"\" {\n\t\t\tx.dec(varname, t, true)\n\t\t} else {\n\t\t\tvarname2 = genTempVarPfx + \"z\" + rand\n\t\t\tx.line(varname2 + \" := \" + ptrPfx + varname)\n\t\t\tx.dec(varname2, t, true)\n\t\t}\n\t}\n}\n\n// decVar takes a variable called varname, of type t\nfunc (x *genRunner) decVar(varname, nilvar string, t reflect.Type, canBeNil, checkNotNil bool) {\n\ti := x.varsfx()\n\n\t// We only encode as nil if a nillable value.\n\t// This removes some of the wasted checks for TryDecodeAsNil.\n\t// We need to think about this more, to see what happens if omitempty, etc\n\t// cause a nil value to be stored when something is expected.\n\t// This could happen when decoding from a struct encoded as an array.\n\t// For that, decVar should be called with canNil=true, to force true as its value.\n\n\tif !canBeNil {\n\t\tcanBeNil = genAnythingCanBeNil || !genIsImmutable(t)\n\t}\n\n\tif canBeNil {\n\t\tvar buf genBuf\n\t\tx.decVarInitPtr(varname, nilvar, t, nil, nil, &buf)\n\t\tx.linef(\"if r.TryDecodeAsNil() { %s } else {\", buf.buf)\n\t} else {\n\t\tx.line(\"// cannot be nil\")\n\t}\n\n\tx.decVarMain(varname, i, t, checkNotNil)\n\n\tif canBeNil {\n\t\tx.line(\"} \")\n\t}\n}\n\n// dec will decode a variable (varname) of type t or ptrTo(t) if isptr==true.\n// t is always a basetype (i.e. not of kind reflect.Ptr).\nfunc (x *genRunner) dec(varname string, t reflect.Type, isptr bool) {\n\t// assumptions:\n\t//   - the varname is to a pointer already. No need to take address of it\n\t//   - t is always a baseType T (not a *T, etc).\n\trtid := rt2id(t)\n\tti2 := x.ti.get(rtid, t)\n\t// tptr := reflect.PtrTo(t)\n\tif x.checkForSelfer(t, varname) {\n\t\tif ti2.cs || ti2.csp { // t.Implements(selferTyp) || tptr.Implements(selferTyp) {\n\t\t\tx.line(varname + \".CodecDecodeSelf(d)\")\n\t\t\treturn\n\t\t}\n\t\tif _, ok := x.td[rtid]; ok {\n\t\t\tx.line(varname + \".CodecDecodeSelf(d)\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tinlist := false\n\tfor _, t0 := range x.t {\n\t\tif t == t0 {\n\t\t\tinlist = true\n\t\t\tif x.checkForSelfer(t, varname) {\n\t\t\t\tx.line(varname + \".CodecDecodeSelf(d)\")\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\tvar rtidAdded bool\n\tif t == x.tc {\n\t\tx.td[rtid] = true\n\t\trtidAdded = true\n\t}\n\n\t// check if\n\t//   - type is time.Time, Raw, RawExt\n\t//   - the type implements (Text|JSON|Binary)(Unm|M)arshal\n\n\tmi := x.varsfx()\n\t// x.linef(\"%sm%s := z.DecBinary()\", genTempVarPfx, mi)\n\t// x.linef(\"_ = %sm%s\", genTempVarPfx, mi)\n\n\tvar hasIf genIfClause\n\tdefer hasIf.end(x)\n\n\tvar ptrPfx, addrPfx string\n\tif isptr {\n\t\tptrPfx = \"*\"\n\t} else {\n\t\taddrPfx = \"&\"\n\t}\n\tif t == timeTyp {\n\t\tx.linef(\"%s !z.DecBasicHandle().TimeNotBuiltin { %s%v = r.DecodeTime()\", hasIf.c(false), ptrPfx, varname)\n\t\t// return\n\t}\n\tif t == rawTyp {\n\t\tx.linef(\"%s %s%v = z.DecRaw()\", hasIf.c(true), ptrPfx, varname)\n\t\treturn\n\t}\n\n\tif t == rawExtTyp {\n\t\tx.linef(\"%s r.DecodeExt(%s%v, 0, nil)\", hasIf.c(true), addrPfx, varname)\n\t\treturn\n\t}\n\n\t// only check for extensions if the type is named, and has a packagePath.\n\tif !x.nx && genImportPath(t) != \"\" && t.Name() != \"\" {\n\t\t// first check if extensions are configued, before doing the interface conversion\n\t\t// x.linef(\"} else if z.HasExtensions() && z.DecExt(%s) {\", varname)\n\t\tyy := fmt.Sprintf(\"%sxt%s\", genTempVarPfx, mi)\n\t\tx.linef(\"%s %s := z.Extension(z.I2Rtid(%s)); %s != nil { z.DecExtension(%s, %s) \", hasIf.c(false), yy, varname, yy, varname, yy)\n\t}\n\n\tif ti2.bu || ti2.bup { // t.Implements(binaryUnmarshalerTyp) || tptr.Implements(binaryUnmarshalerTyp) {\n\t\tx.linef(\"%s z.DecBinary() { z.DecBinaryUnmarshal(%s%v) \", hasIf.c(false), addrPfx, varname)\n\t}\n\tif ti2.ju || ti2.jup { // t.Implements(jsonUnmarshalerTyp) || tptr.Implements(jsonUnmarshalerTyp) {\n\t\tx.linef(\"%s !z.DecBinary() && z.IsJSONHandle() { z.DecJSONUnmarshal(%s%v)\", hasIf.c(false), addrPfx, varname)\n\t} else if ti2.tu || ti2.tup { // t.Implements(textUnmarshalerTyp) || tptr.Implements(textUnmarshalerTyp) {\n\t\tx.linef(\"%s !z.DecBinary() { z.DecTextUnmarshal(%s%v)\", hasIf.c(false), addrPfx, varname)\n\t}\n\n\tx.lineIf(hasIf.c(true))\n\n\tif x.decTryAssignPrimitive(varname, t, isptr) {\n\t\treturn\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Array, reflect.Chan:\n\t\tx.xtraSM(varname, t, false, isptr)\n\tcase reflect.Slice:\n\t\t// if a []uint8, call dedicated function\n\t\t// if a known fastpath slice, call dedicated function\n\t\t// else write encode function in-line.\n\t\t// - if elements are primitives or Selfers, call dedicated function on each member.\n\t\t// - else call Encoder.encode(XXX) on it.\n\t\tif rtid == uint8SliceTypId {\n\t\t\tx.linef(\"%s%s = r.DecodeBytes(%s(%s[]byte)(%s), false)\",\n\t\t\t\tptrPfx, varname, ptrPfx, ptrPfx, varname)\n\t\t} else if fastpathAV.index(rtid) != -1 {\n\t\t\tg := x.newFastpathGenV(t)\n\t\t\tx.linef(\"z.F.%sX(%s%s, d)\", g.MethodNamePfx(\"Dec\", false), addrPfx, varname)\n\t\t} else {\n\t\t\tx.xtraSM(varname, t, false, isptr)\n\t\t\t// x.decListFallback(varname, rtid, false, t)\n\t\t}\n\tcase reflect.Map:\n\t\t// if a known fastpath map, call dedicated function\n\t\t// else write encode function in-line.\n\t\t// - if elements are primitives or Selfers, call dedicated function on each member.\n\t\t// - else call Encoder.encode(XXX) on it.\n\t\tif fastpathAV.index(rtid) != -1 {\n\t\t\tg := x.newFastpathGenV(t)\n\t\t\tx.linef(\"z.F.%sX(%s%s, d)\", g.MethodNamePfx(\"Dec\", false), addrPfx, varname)\n\t\t} else {\n\t\t\tx.xtraSM(varname, t, false, isptr)\n\t\t\t// x.decMapFallback(varname, rtid, t)\n\t\t}\n\tcase reflect.Struct:\n\t\tif inlist {\n\t\t\t// no need to create temp variable if isptr, or x.F or x[F]\n\t\t\tif isptr || strings.IndexByte(varname, '.') != -1 || strings.IndexByte(varname, '[') != -1 {\n\t\t\t\tx.decStruct(varname, rtid, t)\n\t\t\t} else {\n\t\t\t\tvarname2 := genTempVarPfx + \"j\" + mi\n\t\t\t\tx.line(varname2 + \" := &\" + varname)\n\t\t\t\tx.decStruct(varname2, rtid, t)\n\t\t\t}\n\t\t} else {\n\t\t\t// delete(x.td, rtid)\n\t\t\tx.line(\"z.DecFallback(\" + addrPfx + varname + \", false)\")\n\t\t}\n\tdefault:\n\t\tif rtidAdded {\n\t\t\tdelete(x.te, rtid)\n\t\t}\n\t\tx.line(\"z.DecFallback(\" + addrPfx + varname + \", true)\")\n\t}\n}\n\nfunc (x *genRunner) decTryAssignPrimitive(varname string, t reflect.Type, isptr bool) (done bool) {\n\t// This should only be used for exact primitives (ie un-named types).\n\t// Named types may be implementations of Selfer, Unmarshaler, etc.\n\t// They should be handled by dec(...)\n\n\tvar ptr string\n\tif isptr {\n\t\tptr = \"*\"\n\t}\n\tswitch t.Kind() {\n\tcase reflect.Int:\n\t\tx.linef(\"%s%s = (%s)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize%s))\", ptr, varname, x.genTypeName(t), x.xs)\n\tcase reflect.Int8:\n\t\tx.linef(\"%s%s = (%s)(z.C.IntV(r.DecodeInt64(), 8))\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Int16:\n\t\tx.linef(\"%s%s = (%s)(z.C.IntV(r.DecodeInt64(), 16))\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Int32:\n\t\tx.linef(\"%s%s = (%s)(z.C.IntV(r.DecodeInt64(), 32))\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Int64:\n\t\tx.linef(\"%s%s = (%s)(r.DecodeInt64())\", ptr, varname, x.genTypeName(t))\n\n\tcase reflect.Uint:\n\t\tx.linef(\"%s%s = (%s)(z.C.UintV(r.DecodeUint64(), codecSelferBitsize%s))\", ptr, varname, x.genTypeName(t), x.xs)\n\tcase reflect.Uint8:\n\t\tx.linef(\"%s%s = (%s)(z.C.UintV(r.DecodeUint64(), 8))\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Uint16:\n\t\tx.linef(\"%s%s = (%s)(z.C.UintV(r.DecodeUint64(), 16))\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Uint32:\n\t\tx.linef(\"%s%s = (%s)(z.C.UintV(r.DecodeUint64(), 32))\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Uint64:\n\t\tx.linef(\"%s%s = (%s)(r.DecodeUint64())\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Uintptr:\n\t\tx.linef(\"%s%s = (%s)(z.C.UintV(r.DecodeUint64(), codecSelferBitsize%s))\", ptr, varname, x.genTypeName(t), x.xs)\n\n\tcase reflect.Float32:\n\t\tx.linef(\"%s%s = (%s)(z.DecDecodeFloat32())\", ptr, varname, x.genTypeName(t))\n\tcase reflect.Float64:\n\t\tx.linef(\"%s%s = (%s)(r.DecodeFloat64())\", ptr, varname, x.genTypeName(t))\n\n\tcase reflect.Bool:\n\t\tx.linef(\"%s%s = (%s)(r.DecodeBool())\", ptr, varname, x.genTypeName(t))\n\tcase reflect.String:\n\t\tx.linef(\"%s%s = (%s)(r.DecodeString())\", ptr, varname, x.genTypeName(t))\n\tdefault:\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (x *genRunner) decListFallback(varname string, rtid uintptr, t reflect.Type) {\n\tif t.AssignableTo(uint8SliceTyp) {\n\t\tx.line(\"*\" + varname + \" = r.DecodeBytes(*((*[]byte)(\" + varname + \")), false)\")\n\t\treturn\n\t}\n\tif t.Kind() == reflect.Array && t.Elem().Kind() == reflect.Uint8 {\n\t\tx.linef(\"r.DecodeBytes( ((*[%d]byte)(%s))[:], true)\", t.Len(), varname)\n\t\treturn\n\t}\n\ttype tstruc struct {\n\t\tTempVar   string\n\t\tRand      string\n\t\tVarname   string\n\t\tCTyp      string\n\t\tTyp       string\n\t\tImmutable bool\n\t\tSize      int\n\t}\n\ttelem := t.Elem()\n\tts := tstruc{genTempVarPfx, x.varsfx(), varname, x.genTypeName(t), x.genTypeName(telem), genIsImmutable(telem), int(telem.Size())}\n\n\tfuncs := make(template.FuncMap)\n\n\tfuncs[\"decLineVar\"] = func(varname string) string {\n\t\tx.decVar(varname, \"\", telem, false, true)\n\t\treturn \"\"\n\t}\n\tfuncs[\"var\"] = func(s string) string {\n\t\treturn ts.TempVar + s + ts.Rand\n\t}\n\tfuncs[\"zero\"] = func() string {\n\t\treturn x.genZeroValueR(telem)\n\t}\n\tfuncs[\"isArray\"] = func() bool {\n\t\treturn t.Kind() == reflect.Array\n\t}\n\tfuncs[\"isSlice\"] = func() bool {\n\t\treturn t.Kind() == reflect.Slice\n\t}\n\tfuncs[\"isChan\"] = func() bool {\n\t\treturn t.Kind() == reflect.Chan\n\t}\n\ttm, err := template.New(\"\").Funcs(funcs).Parse(genDecListTmpl)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tif err = tm.Execute(x.w, &ts); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (x *genRunner) decMapFallback(varname string, rtid uintptr, t reflect.Type) {\n\ttype tstruc struct {\n\t\tTempVar string\n\t\tSfx     string\n\t\tRand    string\n\t\tVarname string\n\t\tKTyp    string\n\t\tTyp     string\n\t\tSize    int\n\t}\n\ttelem := t.Elem()\n\ttkey := t.Key()\n\tts := tstruc{\n\t\tgenTempVarPfx, x.xs, x.varsfx(), varname, x.genTypeName(tkey),\n\t\tx.genTypeName(telem), int(telem.Size() + tkey.Size()),\n\t}\n\n\tfuncs := make(template.FuncMap)\n\tfuncs[\"decElemZero\"] = func() string {\n\t\treturn x.genZeroValueR(telem)\n\t}\n\tfuncs[\"decElemKindImmutable\"] = func() bool {\n\t\treturn genIsImmutable(telem)\n\t}\n\tfuncs[\"decElemKindPtr\"] = func() bool {\n\t\treturn telem.Kind() == reflect.Ptr\n\t}\n\tfuncs[\"decElemKindIntf\"] = func() bool {\n\t\treturn telem.Kind() == reflect.Interface\n\t}\n\tfuncs[\"decLineVarK\"] = func(varname string) string {\n\t\tx.decVar(varname, \"\", tkey, false, true)\n\t\treturn \"\"\n\t}\n\tfuncs[\"decLineVar\"] = func(varname, decodedNilVarname string) string {\n\t\tx.decVar(varname, decodedNilVarname, telem, false, true)\n\t\treturn \"\"\n\t}\n\tfuncs[\"var\"] = func(s string) string {\n\t\treturn ts.TempVar + s + ts.Rand\n\t}\n\n\ttm, err := template.New(\"\").Funcs(funcs).Parse(genDecMapTmpl)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tif err = tm.Execute(x.w, &ts); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (x *genRunner) decStructMapSwitch(kName string, varname string, rtid uintptr, t reflect.Type) {\n\tti := x.ti.get(rtid, t)\n\ttisfi := ti.sfiSrc // always use sequence from file. decStruct expects same thing.\n\tx.line(\"switch (\" + kName + \") {\")\n\tvar newbuf, nilbuf genBuf\n\tfor _, si := range tisfi {\n\t\tx.line(\"case \\\"\" + si.encName + \"\\\":\")\n\t\tnewbuf.reset()\n\t\tnilbuf.reset()\n\t\tvarname3, t2 := x.decVarInitPtr(varname, \"\", t, si, &newbuf, &nilbuf)\n\t\tx.linef(\"if r.TryDecodeAsNil() { %s } else { %s\", nilbuf.buf, newbuf.buf)\n\t\tx.decVarMain(varname3, x.varsfx(), t2.Type, false)\n\t\tx.line(\"}\")\n\t}\n\tx.line(\"default:\")\n\t// pass the slice here, so that the string will not escape, and maybe save allocation\n\tx.line(\"z.DecStructFieldNotFound(-1, \" + kName + \")\")\n\tx.line(\"} // end switch \" + kName)\n}\n\nfunc (x *genRunner) decStructMap(varname, lenvarname string, rtid uintptr, t reflect.Type, style genStructMapStyle) {\n\ttpfx := genTempVarPfx\n\tti := x.ti.get(rtid, t)\n\ti := x.varsfx()\n\tkName := tpfx + \"s\" + i\n\n\tswitch style {\n\tcase genStructMapStyleLenPrefix:\n\t\tx.linef(\"for %sj%s := 0; %sj%s < %s; %sj%s++ {\", tpfx, i, tpfx, i, lenvarname, tpfx, i)\n\tcase genStructMapStyleCheckBreak:\n\t\tx.linef(\"for %sj%s := 0; !r.CheckBreak(); %sj%s++ {\", tpfx, i, tpfx, i)\n\tdefault: // 0, otherwise.\n\t\tx.linef(\"var %shl%s bool = %s >= 0\", tpfx, i, lenvarname) // has length\n\t\tx.linef(\"for %sj%s := 0; ; %sj%s++ {\", tpfx, i, tpfx, i)\n\t\tx.linef(\"if %shl%s { if %sj%s >= %s { break }\", tpfx, i, tpfx, i, lenvarname)\n\t\tx.line(\"} else { if r.CheckBreak() { break }; }\")\n\t}\n\tx.line(\"z.DecReadMapElemKey()\")\n\n\t// emulate decstructfieldkey\n\tswitch ti.keyType {\n\tcase valueTypeInt:\n\t\tx.linef(\"%s := z.StringView(strconv.AppendInt(z.DecScratchArrayBuffer()[:0], r.DecodeInt64(), 10))\", kName)\n\tcase valueTypeUint:\n\t\tx.linef(\"%s := z.StringView(strconv.AppendUint(z.DecScratchArrayBuffer()[:0], r.DecodeUint64(), 10))\", kName)\n\tcase valueTypeFloat:\n\t\tx.linef(\"%s := z.StringView(strconv.AppendFloat(z.DecScratchArrayBuffer()[:0], r.DecodeFloat64(), 'f', -1, 64))\", kName)\n\tdefault: // string\n\t\tx.linef(\"%s := z.StringView(r.DecodeStringAsBytes())\", kName)\n\t}\n\t// x.linef(\"%s := z.StringView(r.DecStructFieldKey(codecSelferValueType%s%s, z.DecScratchArrayBuffer()))\", kName, ti.keyType.String(), x.xs)\n\n\tx.line(\"z.DecReadMapElemValue()\")\n\tx.decStructMapSwitch(kName, varname, rtid, t)\n\n\tx.line(\"} // end for \" + tpfx + \"j\" + i)\n\tx.line(\"z.DecReadMapEnd()\")\n}\n\nfunc (x *genRunner) decStructArray(varname, lenvarname, breakString string, rtid uintptr, t reflect.Type) {\n\ttpfx := genTempVarPfx\n\ti := x.varsfx()\n\tti := x.ti.get(rtid, t)\n\ttisfi := ti.sfiSrc // always use sequence from file. decStruct expects same thing.\n\tx.linef(\"var %sj%s int\", tpfx, i)\n\tx.linef(\"var %sb%s bool\", tpfx, i)                        // break\n\tx.linef(\"var %shl%s bool = %s >= 0\", tpfx, i, lenvarname) // has length\n\tvar newbuf, nilbuf genBuf\n\tfor _, si := range tisfi {\n\t\tx.linef(\"%sj%s++; if %shl%s { %sb%s = %sj%s > %s } else { %sb%s = r.CheckBreak() }\",\n\t\t\ttpfx, i, tpfx, i, tpfx, i,\n\t\t\ttpfx, i, lenvarname, tpfx, i)\n\t\tx.linef(\"if %sb%s { z.DecReadArrayEnd(); %s }\", tpfx, i, breakString)\n\t\tx.line(\"z.DecReadArrayElem()\")\n\t\tnewbuf.reset()\n\t\tnilbuf.reset()\n\t\tvarname3, t2 := x.decVarInitPtr(varname, \"\", t, si, &newbuf, &nilbuf)\n\t\tx.linef(\"if r.TryDecodeAsNil() { %s } else { %s\", nilbuf.buf, newbuf.buf)\n\t\tx.decVarMain(varname3, x.varsfx(), t2.Type, false)\n\t\tx.line(\"}\")\n\t}\n\t// read remaining values and throw away.\n\tx.line(\"for {\")\n\tx.linef(\"%sj%s++; if %shl%s { %sb%s = %sj%s > %s } else { %sb%s = r.CheckBreak() }\",\n\t\ttpfx, i, tpfx, i, tpfx, i,\n\t\ttpfx, i, lenvarname, tpfx, i)\n\tx.linef(\"if %sb%s { break }\", tpfx, i)\n\tx.line(\"z.DecReadArrayElem()\")\n\tx.linef(`z.DecStructFieldNotFound(%sj%s - 1, \"\")`, tpfx, i)\n\tx.line(\"}\")\n\tx.line(\"z.DecReadArrayEnd()\")\n}\n\nfunc (x *genRunner) decStruct(varname string, rtid uintptr, t reflect.Type) {\n\t// varname MUST be a ptr, or a struct field or a slice element.\n\ti := x.varsfx()\n\tx.linef(\"%sct%s := r.ContainerType()\", genTempVarPfx, i)\n\tx.linef(\"if %sct%s == codecSelferValueTypeMap%s {\", genTempVarPfx, i, x.xs)\n\tx.line(genTempVarPfx + \"l\" + i + \" := z.DecReadMapStart()\")\n\tx.linef(\"if %sl%s == 0 {\", genTempVarPfx, i)\n\tx.line(\"z.DecReadMapEnd()\")\n\tif genUseOneFunctionForDecStructMap {\n\t\tx.line(\"} else { \")\n\t\tx.linef(\"%s.codecDecodeSelfFromMap(%sl%s, d)\", varname, genTempVarPfx, i)\n\t} else {\n\t\tx.line(\"} else if \" + genTempVarPfx + \"l\" + i + \" > 0 { \")\n\t\tx.line(varname + \".codecDecodeSelfFromMapLenPrefix(\" + genTempVarPfx + \"l\" + i + \", d)\")\n\t\tx.line(\"} else {\")\n\t\tx.line(varname + \".codecDecodeSelfFromMapCheckBreak(\" + genTempVarPfx + \"l\" + i + \", d)\")\n\t}\n\tx.line(\"}\")\n\n\t// else if container is array\n\tx.linef(\"} else if %sct%s == codecSelferValueTypeArray%s {\", genTempVarPfx, i, x.xs)\n\tx.line(genTempVarPfx + \"l\" + i + \" := z.DecReadArrayStart()\")\n\tx.linef(\"if %sl%s == 0 {\", genTempVarPfx, i)\n\tx.line(\"z.DecReadArrayEnd()\")\n\tx.line(\"} else { \")\n\tx.linef(\"%s.codecDecodeSelfFromArray(%sl%s, d)\", varname, genTempVarPfx, i)\n\tx.line(\"}\")\n\t// else panic\n\tx.line(\"} else { \")\n\tx.line(\"panic(errCodecSelferOnlyMapOrArrayEncodeToStruct\" + x.xs + \")\")\n\tx.line(\"} \")\n}\n\n// --------\n\ntype fastpathGenV struct {\n\t// fastpathGenV is either a primitive (Primitive != \"\") or a map (MapKey != \"\") or a slice\n\tMapKey      string\n\tElem        string\n\tPrimitive   string\n\tSize        int\n\tNoCanonical bool\n}\n\nfunc (x *genRunner) newFastpathGenV(t reflect.Type) (v fastpathGenV) {\n\tv.NoCanonical = !genFastpathCanonical\n\tswitch t.Kind() {\n\tcase reflect.Slice, reflect.Array:\n\t\tte := t.Elem()\n\t\tv.Elem = x.genTypeName(te)\n\t\tv.Size = int(te.Size())\n\tcase reflect.Map:\n\t\tte, tk := t.Elem(), t.Key()\n\t\tv.Elem = x.genTypeName(te)\n\t\tv.MapKey = x.genTypeName(tk)\n\t\tv.Size = int(te.Size() + tk.Size())\n\tdefault:\n\t\tpanic(\"unexpected type for newFastpathGenV. Requires map or slice type\")\n\t}\n\treturn\n}\n\nfunc (x *fastpathGenV) MethodNamePfx(prefix string, prim bool) string {\n\tvar name []byte\n\tif prefix != \"\" {\n\t\tname = append(name, prefix...)\n\t}\n\tif prim {\n\t\tname = append(name, genTitleCaseName(x.Primitive)...)\n\t} else {\n\t\tif x.MapKey == \"\" {\n\t\t\tname = append(name, \"Slice\"...)\n\t\t} else {\n\t\t\tname = append(name, \"Map\"...)\n\t\t\tname = append(name, genTitleCaseName(x.MapKey)...)\n\t\t}\n\t\tname = append(name, genTitleCaseName(x.Elem)...)\n\t}\n\treturn string(name)\n}\n\n// genImportPath returns import path of a non-predeclared named typed, or an empty string otherwise.\n//\n// This handles the misbehaviour that occurs when 1.5-style vendoring is enabled,\n// where PkgPath returns the full path, including the vendoring pre-fix that should have been stripped.\n// We strip it here.\nfunc genImportPath(t reflect.Type) (s string) {\n\ts = t.PkgPath()\n\tif genCheckVendor {\n\t\t// HACK: always handle vendoring. It should be typically on in go 1.6, 1.7\n\t\ts = genStripVendor(s)\n\t}\n\treturn\n}\n\n// A go identifier is (letter|_)[letter|number|_]*\nfunc genGoIdentifier(s string, checkFirstChar bool) string {\n\tb := make([]byte, 0, len(s))\n\tt := make([]byte, 4)\n\tvar n int\n\tfor i, r := range s {\n\t\tif checkFirstChar && i == 0 && !unicode.IsLetter(r) {\n\t\t\tb = append(b, '_')\n\t\t}\n\t\t// r must be unicode_letter, unicode_digit or _\n\t\tif unicode.IsLetter(r) || unicode.IsDigit(r) {\n\t\t\tn = utf8.EncodeRune(t, r)\n\t\t\tb = append(b, t[:n]...)\n\t\t} else {\n\t\t\tb = append(b, '_')\n\t\t}\n\t}\n\treturn string(b)\n}\n\nfunc genNonPtr(t reflect.Type) reflect.Type {\n\tfor t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\treturn t\n}\n\nfunc genTitleCaseName(s string) string {\n\tswitch s {\n\tcase \"interface{}\", \"interface {}\":\n\t\treturn \"Intf\"\n\tcase \"[]byte\", \"[]uint8\", \"bytes\":\n\t\treturn \"Bytes\"\n\tdefault:\n\t\treturn strings.ToUpper(s[0:1]) + s[1:]\n\t}\n}\n\nfunc genMethodNameT(t reflect.Type, tRef reflect.Type) (n string) {\n\tvar ptrPfx string\n\tfor t.Kind() == reflect.Ptr {\n\t\tptrPfx += \"Ptrto\"\n\t\tt = t.Elem()\n\t}\n\ttstr := t.String()\n\tif tn := t.Name(); tn != \"\" {\n\t\tif tRef != nil && genImportPath(t) == genImportPath(tRef) {\n\t\t\treturn ptrPfx + tn\n\t\t} else {\n\t\t\tif genQNameRegex.MatchString(tstr) {\n\t\t\t\treturn ptrPfx + strings.Replace(tstr, \".\", \"_\", 1000)\n\t\t\t} else {\n\t\t\t\treturn ptrPfx + genCustomTypeName(tstr)\n\t\t\t}\n\t\t}\n\t}\n\tswitch t.Kind() {\n\tcase reflect.Map:\n\t\treturn ptrPfx + \"Map\" + genMethodNameT(t.Key(), tRef) + genMethodNameT(t.Elem(), tRef)\n\tcase reflect.Slice:\n\t\treturn ptrPfx + \"Slice\" + genMethodNameT(t.Elem(), tRef)\n\tcase reflect.Array:\n\t\treturn ptrPfx + \"Array\" + strconv.FormatInt(int64(t.Len()), 10) + genMethodNameT(t.Elem(), tRef)\n\tcase reflect.Chan:\n\t\tvar cx string\n\t\tswitch t.ChanDir() {\n\t\tcase reflect.SendDir:\n\t\t\tcx = \"ChanSend\"\n\t\tcase reflect.RecvDir:\n\t\t\tcx = \"ChanRecv\"\n\t\tdefault:\n\t\t\tcx = \"Chan\"\n\t\t}\n\t\treturn ptrPfx + cx + genMethodNameT(t.Elem(), tRef)\n\tdefault:\n\t\tif t == intfTyp {\n\t\t\treturn ptrPfx + \"Interface\"\n\t\t} else {\n\t\t\tif tRef != nil && genImportPath(t) == genImportPath(tRef) {\n\t\t\t\tif t.Name() != \"\" {\n\t\t\t\t\treturn ptrPfx + t.Name()\n\t\t\t\t} else {\n\t\t\t\t\treturn ptrPfx + genCustomTypeName(tstr)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// best way to get the package name inclusive\n\t\t\t\t// return ptrPfx + strings.Replace(tstr, \".\", \"_\", 1000)\n\t\t\t\t// return ptrPfx + genBase64enc.EncodeToString([]byte(tstr))\n\t\t\t\tif t.Name() != \"\" && genQNameRegex.MatchString(tstr) {\n\t\t\t\t\treturn ptrPfx + strings.Replace(tstr, \".\", \"_\", 1000)\n\t\t\t\t} else {\n\t\t\t\t\treturn ptrPfx + genCustomTypeName(tstr)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// genCustomNameForType base64encodes the t.String() value in such a way\n// that it can be used within a function name.\nfunc genCustomTypeName(tstr string) string {\n\tlen2 := genBase64enc.EncodedLen(len(tstr))\n\tbufx := make([]byte, len2)\n\tgenBase64enc.Encode(bufx, []byte(tstr))\n\tfor i := len2 - 1; i >= 0; i-- {\n\t\tif bufx[i] == '=' {\n\t\t\tlen2--\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn string(bufx[:len2])\n}\n\nfunc genIsImmutable(t reflect.Type) (v bool) {\n\treturn isImmutableKind(t.Kind())\n}\n\ntype genInternal struct {\n\tVersion int\n\tValues  []fastpathGenV\n}\n\nfunc (x genInternal) FastpathLen() (l int) {\n\tfor _, v := range x.Values {\n\t\tif v.Primitive == \"\" && !(v.MapKey == \"\" && v.Elem == \"uint8\") {\n\t\t\tl++\n\t\t}\n\t}\n\treturn\n}\n\nfunc genInternalZeroValue(s string) string {\n\tswitch s {\n\tcase \"interface{}\", \"interface {}\":\n\t\treturn \"nil\"\n\tcase \"[]byte\", \"[]uint8\", \"bytes\":\n\t\treturn \"nil\"\n\tcase \"bool\":\n\t\treturn \"false\"\n\tcase \"string\":\n\t\treturn `\"\"`\n\tdefault:\n\t\treturn \"0\"\n\t}\n}\n\nvar genInternalNonZeroValueIdx [6]uint64\nvar genInternalNonZeroValueStrs = [2][6]string{\n\t{`\"string-is-an-interface\"`, \"true\", `\"some-string\"`, `[]byte(\"some-string\")`, \"11.1\", \"33\"},\n\t{`\"string-is-an-interface-2\"`, \"true\", `\"some-string-2\"`, `[]byte(\"some-string-2\")`, \"22.2\", \"44\"},\n}\n\nfunc genInternalNonZeroValue(s string) string {\n\tvar i int\n\tswitch s {\n\tcase \"interface{}\", \"interface {}\":\n\t\ti = 0\n\tcase \"bool\":\n\t\ti = 1\n\tcase \"string\":\n\t\ti = 2\n\tcase \"bytes\", \"[]byte\", \"[]uint8\":\n\t\ti = 3\n\tcase \"float32\", \"float64\", \"float\", \"double\":\n\t\ti = 4\n\tdefault:\n\t\ti = 5\n\t}\n\tgenInternalNonZeroValueIdx[i]++\n\treturn genInternalNonZeroValueStrs[genInternalNonZeroValueIdx[i]%2][i] // return string, to remove ambiguity\n}\n\nfunc genInternalEncCommandAsString(s string, vname string) string {\n\tswitch s {\n\tcase \"uint64\":\n\t\treturn \"e.e.EncodeUint(\" + vname + \")\"\n\tcase \"uint\", \"uint8\", \"uint16\", \"uint32\":\n\t\treturn \"e.e.EncodeUint(uint64(\" + vname + \"))\"\n\tcase \"int64\":\n\t\treturn \"e.e.EncodeInt(\" + vname + \")\"\n\tcase \"int\", \"int8\", \"int16\", \"int32\":\n\t\treturn \"e.e.EncodeInt(int64(\" + vname + \"))\"\n\tcase \"[]byte\", \"[]uint8\", \"bytes\":\n\t\treturn \"e.e.EncodeStringBytesRaw(\" + vname + \")\"\n\tcase \"string\":\n\t\treturn \"if e.h.StringToRaw { e.e.EncodeStringBytesRaw(bytesView(\" + vname + \")) \" +\n\t\t\t\"} else { e.e.EncodeStringEnc(cUTF8, \" + vname + \") }\"\n\tcase \"float32\":\n\t\treturn \"e.e.EncodeFloat32(\" + vname + \")\"\n\tcase \"float64\":\n\t\treturn \"e.e.EncodeFloat64(\" + vname + \")\"\n\tcase \"bool\":\n\t\treturn \"e.e.EncodeBool(\" + vname + \")\"\n\t// case \"symbol\":\n\t// \treturn \"e.e.EncodeSymbol(\" + vname + \")\"\n\tdefault:\n\t\treturn \"e.encode(\" + vname + \")\"\n\t}\n}\n\nfunc genInternalDecCommandAsString(s string) string {\n\tswitch s {\n\tcase \"uint\":\n\t\treturn \"uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\"\n\tcase \"uint8\":\n\t\treturn \"uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\"\n\tcase \"uint16\":\n\t\treturn \"uint16(chkOvf.UintV(d.d.DecodeUint64(), 16))\"\n\tcase \"uint32\":\n\t\treturn \"uint32(chkOvf.UintV(d.d.DecodeUint64(), 32))\"\n\tcase \"uint64\":\n\t\treturn \"d.d.DecodeUint64()\"\n\tcase \"uintptr\":\n\t\treturn \"uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\"\n\tcase \"int\":\n\t\treturn \"int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\"\n\tcase \"int8\":\n\t\treturn \"int8(chkOvf.IntV(d.d.DecodeInt64(), 8))\"\n\tcase \"int16\":\n\t\treturn \"int16(chkOvf.IntV(d.d.DecodeInt64(), 16))\"\n\tcase \"int32\":\n\t\treturn \"int32(chkOvf.IntV(d.d.DecodeInt64(), 32))\"\n\tcase \"int64\":\n\t\treturn \"d.d.DecodeInt64()\"\n\n\tcase \"string\":\n\t\treturn \"d.d.DecodeString()\"\n\tcase \"[]byte\", \"[]uint8\", \"bytes\":\n\t\treturn \"d.d.DecodeBytes(nil, false)\"\n\tcase \"float32\":\n\t\treturn \"float32(d.decodeFloat32())\"\n\tcase \"float64\":\n\t\treturn \"d.d.DecodeFloat64()\"\n\tcase \"bool\":\n\t\treturn \"d.d.DecodeBool()\"\n\tdefault:\n\t\tpanic(errors.New(\"gen internal: unknown type for decode: \" + s))\n\t}\n}\n\nfunc genInternalSortType(s string, elem bool) string {\n\tfor _, v := range [...]string{\n\t\t\"int\", \"uint\", \"float\",\n\t\t\"bool\",\n\t\t\"string\", \"bytes\", \"[]uint8\", \"[]byte\",\n\t} {\n\t\tif v == \"[]byte\" || v == \"[]uint8\" {\n\t\t\tv = \"bytes\"\n\t\t}\n\t\tif strings.HasPrefix(s, v) {\n\t\t\tif v == \"int\" || v == \"uint\" || v == \"float\" {\n\t\t\t\tv += \"64\"\n\t\t\t}\n\t\t\tif elem {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\treturn v + \"Slice\"\n\t\t}\n\t}\n\tpanic(\"sorttype: unexpected type: \" + s)\n}\n\nfunc genStripVendor(s string) string {\n\t// HACK: Misbehaviour occurs in go 1.5. May have to re-visit this later.\n\t// if s contains /vendor/ OR startsWith vendor/, then return everything after it.\n\tconst vendorStart = \"vendor/\"\n\tconst vendorInline = \"/vendor/\"\n\tif i := strings.LastIndex(s, vendorInline); i >= 0 {\n\t\ts = s[i+len(vendorInline):]\n\t} else if strings.HasPrefix(s, vendorStart) {\n\t\ts = s[len(vendorStart):]\n\t}\n\treturn s\n}\n\n// var genInternalMu sync.Mutex\nvar genInternalV = genInternal{Version: genVersion}\nvar genInternalTmplFuncs template.FuncMap\nvar genInternalOnce sync.Once\n\nfunc genInternalInit() {\n\twordSizeBytes := int(intBitsize) / 8\n\n\ttypesizes := map[string]int{\n\t\t\"interface{}\": 2 * wordSizeBytes,\n\t\t\"string\":      2 * wordSizeBytes,\n\t\t\"[]byte\":      3 * wordSizeBytes,\n\t\t\"uint\":        1 * wordSizeBytes,\n\t\t\"uint8\":       1,\n\t\t\"uint16\":      2,\n\t\t\"uint32\":      4,\n\t\t\"uint64\":      8,\n\t\t\"uintptr\":     1 * wordSizeBytes,\n\t\t\"int\":         1 * wordSizeBytes,\n\t\t\"int8\":        1,\n\t\t\"int16\":       2,\n\t\t\"int32\":       4,\n\t\t\"int64\":       8,\n\t\t\"float32\":     4,\n\t\t\"float64\":     8,\n\t\t\"bool\":        1,\n\t}\n\n\t// keep as slice, so it is in specific iteration order.\n\t// Initial order was uint64, string, interface{}, int, int64, ...\n\n\tvar types = [...]string{\n\t\t\"interface{}\",\n\t\t\"string\",\n\t\t\"[]byte\",\n\t\t\"float32\",\n\t\t\"float64\",\n\t\t\"uint\",\n\t\t\"uint8\",\n\t\t\"uint16\",\n\t\t\"uint32\",\n\t\t\"uint64\",\n\t\t\"uintptr\",\n\t\t\"int\",\n\t\t\"int8\",\n\t\t\"int16\",\n\t\t\"int32\",\n\t\t\"int64\",\n\t\t\"bool\",\n\t}\n\n\tvar primitivetypes, slicetypes, mapkeytypes, mapvaltypes []string\n\n\tprimitivetypes = types[:]\n\tslicetypes = types[:]\n\tmapkeytypes = types[:]\n\tmapvaltypes = types[:]\n\n\tif genFastpathTrimTypes {\n\t\tmapkeytypes = []string{\n\t\t\t//\"interface{}\",\n\t\t\t\"string\",\n\t\t\t//\"[]byte\",\n\t\t\t//\"float32\",\n\t\t\t//\"float64\",\n\t\t\t\"uint\",\n\t\t\t\"uint8\",\n\t\t\t//\"uint16\",\n\t\t\t//\"uint32\",\n\t\t\t\"uint64\",\n\t\t\t//\"uintptr\",\n\t\t\t\"int\",\n\t\t\t//\"int8\",\n\t\t\t//\"int16\",\n\t\t\t//\"int32\",\n\t\t\t\"int64\",\n\t\t\t// \"bool\",\n\t\t}\n\n\t\tmapvaltypes = []string{\n\t\t\t\"interface{}\",\n\t\t\t\"string\",\n\t\t\t\"[]byte\",\n\t\t\t\"uint\",\n\t\t\t\"uint8\",\n\t\t\t//\"uint16\",\n\t\t\t//\"uint32\",\n\t\t\t\"uint64\",\n\t\t\t\"uintptr\",\n\t\t\t\"int\",\n\t\t\t//\"int8\",\n\t\t\t//\"int16\",\n\t\t\t//\"int32\",\n\t\t\t\"int64\",\n\t\t\t\"float32\",\n\t\t\t\"float64\",\n\t\t\t\"bool\",\n\t\t}\n\t}\n\n\t// var mapkeytypes [len(&types) - 1]string // skip bool\n\t// copy(mapkeytypes[:], types[:])\n\n\t// var mb []byte\n\t// mb = append(mb, '|')\n\t// for _, s := range mapkeytypes {\n\t// \tmb = append(mb, s...)\n\t// \tmb = append(mb, '|')\n\t// }\n\t// var mapkeytypestr = string(mb)\n\n\tvar gt = genInternal{Version: genVersion}\n\n\t// For each slice or map type, there must be a (symmetrical) Encode and Decode fast-path function\n\n\tfor _, s := range primitivetypes {\n\t\tgt.Values = append(gt.Values,\n\t\t\tfastpathGenV{Primitive: s, Size: typesizes[s], NoCanonical: !genFastpathCanonical})\n\t}\n\tfor _, s := range slicetypes {\n\t\t// if s != \"uint8\" { // do not generate fast path for slice of bytes. Treat specially already.\n\t\t// \tgt.Values = append(gt.Values, fastpathGenV{Elem: s, Size: typesizes[s]})\n\t\t// }\n\t\tgt.Values = append(gt.Values,\n\t\t\tfastpathGenV{Elem: s, Size: typesizes[s], NoCanonical: !genFastpathCanonical})\n\t}\n\tfor _, s := range mapkeytypes {\n\t\t// if _, ok := typesizes[s]; !ok {\n\t\t// if strings.Contains(mapkeytypestr, \"|\"+s+\"|\") {\n\t\t// \tgt.Values = append(gt.Values, fastpathGenV{MapKey: s, Elem: s, Size: 2 * typesizes[s]})\n\t\t// }\n\t\tfor _, ms := range mapvaltypes {\n\t\t\tgt.Values = append(gt.Values,\n\t\t\t\tfastpathGenV{MapKey: s, Elem: ms, Size: typesizes[s] + typesizes[ms], NoCanonical: !genFastpathCanonical})\n\t\t}\n\t}\n\n\tfuncs := make(template.FuncMap)\n\t// funcs[\"haspfx\"] = strings.HasPrefix\n\tfuncs[\"encmd\"] = genInternalEncCommandAsString\n\tfuncs[\"decmd\"] = genInternalDecCommandAsString\n\tfuncs[\"zerocmd\"] = genInternalZeroValue\n\tfuncs[\"nonzerocmd\"] = genInternalNonZeroValue\n\tfuncs[\"hasprefix\"] = strings.HasPrefix\n\tfuncs[\"sorttype\"] = genInternalSortType\n\n\tgenInternalV = gt\n\tgenInternalTmplFuncs = funcs\n}\n\n// genInternalGoFile is used to generate source files from templates.\n// It is run by the program author alone.\n// Unfortunately, it has to be exported so that it can be called from a command line tool.\n// *** DO NOT USE ***\nfunc genInternalGoFile(r io.Reader, w io.Writer) (err error) {\n\tgenInternalOnce.Do(genInternalInit)\n\n\tgt := genInternalV\n\n\tt := template.New(\"\").Funcs(genInternalTmplFuncs)\n\n\ttmplstr, err := ioutil.ReadAll(r)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif t, err = t.Parse(string(tmplstr)); err != nil {\n\t\treturn\n\t}\n\n\tvar out bytes.Buffer\n\terr = t.Execute(&out, gt)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tbout, err := format.Source(out.Bytes())\n\tif err != nil {\n\t\tw.Write(out.Bytes()) // write out if error, so we can still see.\n\t\t// w.Write(bout) // write out if error, as much as possible, so we can still see.\n\t\treturn\n\t}\n\tw.Write(bout)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/go.mod",
    "content": "module github.com/ugorji/go/codec\n\nrequire (\n\tgithub.com/ugorji/go v1.1.5-pre\n)\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_arrayof_gte_go15.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build go1.5\n\npackage codec\n\nimport \"reflect\"\n\nconst reflectArrayOfSupported = true\n\nfunc reflectArrayOf(count int, elem reflect.Type) reflect.Type {\n\treturn reflect.ArrayOf(count, elem)\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_arrayof_lt_go15.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build !go1.5\n\npackage codec\n\nimport \"reflect\"\n\nconst reflectArrayOfSupported = false\n\nfunc reflectArrayOf(count int, elem reflect.Type) reflect.Type {\n\tpanic(\"codec: reflect.ArrayOf unsupported in this go version\")\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_makemap_gte_go19.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build go1.9\n\npackage codec\n\nimport \"reflect\"\n\nfunc makeMapReflect(t reflect.Type, size int) reflect.Value {\n\tif size < 0 {\n\t\treturn reflect.MakeMapWithSize(t, 4)\n\t}\n\treturn reflect.MakeMapWithSize(t, size)\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_makemap_lt_go19.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build !go1.9\n\npackage codec\n\nimport \"reflect\"\n\nfunc makeMapReflect(t reflect.Type, size int) reflect.Value {\n\treturn reflect.MakeMap(t)\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_unexportedembeddedptr_gte_go110.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build go1.10\n\npackage codec\n\nconst allowSetUnexportedEmbeddedPtr = false\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_unexportedembeddedptr_lt_go110.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build !go1.10\n\npackage codec\n\nconst allowSetUnexportedEmbeddedPtr = true\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_unsupported_lt_go14.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build !go1.4\n\npackage codec\n\n// This codec package will only work for go1.4 and above.\n// This is for the following reasons:\n//   - go 1.4 was released in 2014\n//   - go runtime is written fully in go\n//   - interface only holds pointers\n//   - reflect.Value is stabilized as 3 words\n\nfunc init() {\n\tpanic(\"codec: go 1.3 and below are not supported\")\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_vendor_eq_go15.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build go1.5,!go1.6\n\npackage codec\n\nimport \"os\"\n\nvar genCheckVendor = os.Getenv(\"GO15VENDOREXPERIMENT\") == \"1\"\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_vendor_eq_go16.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build go1.6,!go1.7\n\npackage codec\n\nimport \"os\"\n\nvar genCheckVendor = os.Getenv(\"GO15VENDOREXPERIMENT\") != \"0\"\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_vendor_gte_go17.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build go1.7\n\npackage codec\n\nconst genCheckVendor = true\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/goversion_vendor_lt_go15.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// +build !go1.5\n\npackage codec\n\nvar genCheckVendor = false\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/helper.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\n// Contains code shared by both encode and decode.\n\n// Some shared ideas around encoding/decoding\n// ------------------------------------------\n//\n// If an interface{} is passed, we first do a type assertion to see if it is\n// a primitive type or a map/slice of primitive types, and use a fastpath to handle it.\n//\n// If we start with a reflect.Value, we are already in reflect.Value land and\n// will try to grab the function for the underlying Type and directly call that function.\n// This is more performant than calling reflect.Value.Interface().\n//\n// This still helps us bypass many layers of reflection, and give best performance.\n//\n// Containers\n// ------------\n// Containers in the stream are either associative arrays (key-value pairs) or\n// regular arrays (indexed by incrementing integers).\n//\n// Some streams support indefinite-length containers, and use a breaking\n// byte-sequence to denote that the container has come to an end.\n//\n// Some streams also are text-based, and use explicit separators to denote the\n// end/beginning of different values.\n//\n// During encode, we use a high-level condition to determine how to iterate through\n// the container. That decision is based on whether the container is text-based (with\n// separators) or binary (without separators). If binary, we do not even call the\n// encoding of separators.\n//\n// During decode, we use a different high-level condition to determine how to iterate\n// through the containers. That decision is based on whether the stream contained\n// a length prefix, or if it used explicit breaks. If length-prefixed, we assume that\n// it has to be binary, and we do not even try to read separators.\n//\n// Philosophy\n// ------------\n// On decode, this codec will update containers appropriately:\n//    - If struct, update fields from stream into fields of struct.\n//      If field in stream not found in struct, handle appropriately (based on option).\n//      If a struct field has no corresponding value in the stream, leave it AS IS.\n//      If nil in stream, set value to nil/zero value.\n//    - If map, update map from stream.\n//      If the stream value is NIL, set the map to nil.\n//    - if slice, try to update up to length of array in stream.\n//      if container len is less than stream array length,\n//      and container cannot be expanded, handled (based on option).\n//      This means you can decode 4-element stream array into 1-element array.\n//\n// ------------------------------------\n// On encode, user can specify omitEmpty. This means that the value will be omitted\n// if the zero value. The problem may occur during decode, where omitted values do not affect\n// the value being decoded into. This means that if decoding into a struct with an\n// int field with current value=5, and the field is omitted in the stream, then after\n// decoding, the value will still be 5 (not 0).\n// omitEmpty only works if you guarantee that you always decode into zero-values.\n//\n// ------------------------------------\n// We could have truncated a map to remove keys not available in the stream,\n// or set values in the struct which are not in the stream to their zero values.\n// We decided against it because there is no efficient way to do it.\n// We may introduce it as an option later.\n// However, that will require enabling it for both runtime and code generation modes.\n//\n// To support truncate, we need to do 2 passes over the container:\n//   map\n//   - first collect all keys (e.g. in k1)\n//   - for each key in stream, mark k1 that the key should not be removed\n//   - after updating map, do second pass and call delete for all keys in k1 which are not marked\n//   struct:\n//   - for each field, track the *typeInfo s1\n//   - iterate through all s1, and for each one not marked, set value to zero\n//   - this involves checking the possible anonymous fields which are nil ptrs.\n//     too much work.\n//\n// ------------------------------------------\n// Error Handling is done within the library using panic.\n//\n// This way, the code doesn't have to keep checking if an error has happened,\n// and we don't have to keep sending the error value along with each call\n// or storing it in the En|Decoder and checking it constantly along the way.\n//\n// The disadvantage is that small functions which use panics cannot be inlined.\n// The code accounts for that by only using panics behind an interface;\n// since interface calls cannot be inlined, this is irrelevant.\n//\n// We considered storing the error is En|Decoder.\n//   - once it has its err field set, it cannot be used again.\n//   - panicing will be optional, controlled by const flag.\n//   - code should always check error first and return early.\n// We eventually decided against it as it makes the code clumsier to always\n// check for these error conditions.\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\nconst (\n\tscratchByteArrayLen = 32\n\t// initCollectionCap   = 16 // 32 is defensive. 16 is preferred.\n\n\t// Support encoding.(Binary|Text)(Unm|M)arshaler.\n\t// This constant flag will enable or disable it.\n\tsupportMarshalInterfaces = true\n\n\t// for debugging, set this to false, to catch panic traces.\n\t// Note that this will always cause rpc tests to fail, since they need io.EOF sent via panic.\n\trecoverPanicToErr = true\n\n\t// arrayCacheLen is the length of the cache used in encoder or decoder for\n\t// allowing zero-alloc initialization.\n\t// arrayCacheLen = 8\n\n\t// size of the cacheline: defaulting to value for archs: amd64, arm64, 386\n\t// should use \"runtime/internal/sys\".CacheLineSize, but that is not exposed.\n\tcacheLineSize = 64\n\n\twordSizeBits = 32 << (^uint(0) >> 63) // strconv.IntSize\n\twordSize     = wordSizeBits / 8\n\n\t// so structFieldInfo fits into 8 bytes\n\tmaxLevelsEmbedding = 14\n\n\t// useFinalizers=true configures finalizers to release pool'ed resources\n\t// acquired by Encoder/Decoder during their GC.\n\t//\n\t// Note that calling SetFinalizer is always expensive,\n\t// as code must be run on the systemstack even for SetFinalizer(t, nil).\n\t//\n\t// We document that folks SHOULD call Release() when done, or they can\n\t// explicitly call SetFinalizer themselves e.g.\n\t//    runtime.SetFinalizer(e, (*Encoder).Release)\n\t//    runtime.SetFinalizer(d, (*Decoder).Release)\n\tuseFinalizers = false\n)\n\nvar oneByteArr [1]byte\nvar zeroByteSlice = oneByteArr[:0:0]\n\nvar codecgen bool\n\nvar refBitset bitset256\nvar pool pooler\nvar panicv panicHdl\n\nfunc init() {\n\tpool.init()\n\n\trefBitset.set(byte(reflect.Map))\n\trefBitset.set(byte(reflect.Ptr))\n\trefBitset.set(byte(reflect.Func))\n\trefBitset.set(byte(reflect.Chan))\n}\n\ntype handleFlag uint8\n\nconst (\n\tinitedHandleFlag handleFlag = 1 << iota\n\tbinaryHandleFlag\n\tjsonHandleFlag\n)\n\ntype clsErr struct {\n\tclosed    bool  // is it closed?\n\terrClosed error // error on closing\n}\n\n// type entryType uint8\n\n// const (\n// \tentryTypeBytes entryType = iota // make this 0, so a comparison is cheap\n// \tentryTypeIo\n// \tentryTypeBufio\n// \tentryTypeUnset = 255\n// )\n\ntype charEncoding uint8\n\nconst (\n\t_ charEncoding = iota // make 0 unset\n\tcUTF8\n\tcUTF16LE\n\tcUTF16BE\n\tcUTF32LE\n\tcUTF32BE\n\t// Deprecated: not a true char encoding value\n\tcRAW charEncoding = 255\n)\n\n// valueType is the stream type\ntype valueType uint8\n\nconst (\n\tvalueTypeUnset valueType = iota\n\tvalueTypeNil\n\tvalueTypeInt\n\tvalueTypeUint\n\tvalueTypeFloat\n\tvalueTypeBool\n\tvalueTypeString\n\tvalueTypeSymbol\n\tvalueTypeBytes\n\tvalueTypeMap\n\tvalueTypeArray\n\tvalueTypeTime\n\tvalueTypeExt\n\n\t// valueTypeInvalid = 0xff\n)\n\nvar valueTypeStrings = [...]string{\n\t\"Unset\",\n\t\"Nil\",\n\t\"Int\",\n\t\"Uint\",\n\t\"Float\",\n\t\"Bool\",\n\t\"String\",\n\t\"Symbol\",\n\t\"Bytes\",\n\t\"Map\",\n\t\"Array\",\n\t\"Timestamp\",\n\t\"Ext\",\n}\n\nfunc (x valueType) String() string {\n\tif int(x) < len(valueTypeStrings) {\n\t\treturn valueTypeStrings[x]\n\t}\n\treturn strconv.FormatInt(int64(x), 10)\n}\n\ntype seqType uint8\n\nconst (\n\t_ seqType = iota\n\tseqTypeArray\n\tseqTypeSlice\n\tseqTypeChan\n)\n\n// note that containerMapStart and containerArraySend are not sent.\n// This is because the ReadXXXStart and EncodeXXXStart already does these.\ntype containerState uint8\n\nconst (\n\t_ containerState = iota\n\n\tcontainerMapStart\n\tcontainerMapKey\n\tcontainerMapValue\n\tcontainerMapEnd\n\tcontainerArrayStart\n\tcontainerArrayElem\n\tcontainerArrayEnd\n)\n\n// // sfiIdx used for tracking where a (field/enc)Name is seen in a []*structFieldInfo\n// type sfiIdx struct {\n// \tname  string\n// \tindex int\n// }\n\n// do not recurse if a containing type refers to an embedded type\n// which refers back to its containing type (via a pointer).\n// The second time this back-reference happens, break out,\n// so as not to cause an infinite loop.\nconst rgetMaxRecursion = 2\n\n// Anecdotally, we believe most types have <= 12 fields.\n// - even Java's PMD rules set TooManyFields threshold to 15.\n// However, go has embedded fields, which should be regarded as\n// top level, allowing structs to possibly double or triple.\n// In addition, we don't want to keep creating transient arrays,\n// especially for the sfi index tracking, and the evtypes tracking.\n//\n// So - try to keep typeInfoLoadArray within 2K bytes\nconst (\n\ttypeInfoLoadArraySfisLen   = 16\n\ttypeInfoLoadArraySfiidxLen = 8 * 112\n\ttypeInfoLoadArrayEtypesLen = 12\n\ttypeInfoLoadArrayBLen      = 8 * 4\n)\n\n// typeInfoLoad is a transient object used while loading up a typeInfo.\ntype typeInfoLoad struct {\n\t// fNames   []string\n\t// encNames []string\n\tetypes []uintptr\n\tsfis   []structFieldInfo\n}\n\n// typeInfoLoadArray is a cache object used to efficiently load up a typeInfo without\n// much allocation.\ntype typeInfoLoadArray struct {\n\t// fNames   [typeInfoLoadArrayLen]string\n\t// encNames [typeInfoLoadArrayLen]string\n\tsfis   [typeInfoLoadArraySfisLen]structFieldInfo\n\tsfiidx [typeInfoLoadArraySfiidxLen]byte\n\tetypes [typeInfoLoadArrayEtypesLen]uintptr\n\tb      [typeInfoLoadArrayBLen]byte // scratch - used for struct field names\n}\n\n// // cacheLineSafer denotes that a type is safe for cache-line access.\n// // This could mean that\n// type cacheLineSafer interface {\n// \tcacheLineSafe()\n// }\n\n// mirror json.Marshaler and json.Unmarshaler here,\n// so we don't import the encoding/json package\n\ntype jsonMarshaler interface {\n\tMarshalJSON() ([]byte, error)\n}\ntype jsonUnmarshaler interface {\n\tUnmarshalJSON([]byte) error\n}\n\ntype isZeroer interface {\n\tIsZero() bool\n}\n\ntype codecError struct {\n\tname string\n\terr  interface{}\n}\n\nfunc (e codecError) Cause() error {\n\tswitch xerr := e.err.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase error:\n\t\treturn xerr\n\tcase string:\n\t\treturn errors.New(xerr)\n\tcase fmt.Stringer:\n\t\treturn errors.New(xerr.String())\n\tdefault:\n\t\treturn fmt.Errorf(\"%v\", e.err)\n\t}\n}\n\nfunc (e codecError) Error() string {\n\treturn fmt.Sprintf(\"%s error: %v\", e.name, e.err)\n}\n\n// type byteAccepter func(byte) bool\n\nvar (\n\tbigen               = binary.BigEndian\n\tstructInfoFieldName = \"_struct\"\n\n\tmapStrIntfTyp  = reflect.TypeOf(map[string]interface{}(nil))\n\tmapIntfIntfTyp = reflect.TypeOf(map[interface{}]interface{}(nil))\n\tintfSliceTyp   = reflect.TypeOf([]interface{}(nil))\n\tintfTyp        = intfSliceTyp.Elem()\n\n\treflectValTyp = reflect.TypeOf((*reflect.Value)(nil)).Elem()\n\n\tstringTyp     = reflect.TypeOf(\"\")\n\ttimeTyp       = reflect.TypeOf(time.Time{})\n\trawExtTyp     = reflect.TypeOf(RawExt{})\n\trawTyp        = reflect.TypeOf(Raw{})\n\tuintptrTyp    = reflect.TypeOf(uintptr(0))\n\tuint8Typ      = reflect.TypeOf(uint8(0))\n\tuint8SliceTyp = reflect.TypeOf([]uint8(nil))\n\tuintTyp       = reflect.TypeOf(uint(0))\n\tintTyp        = reflect.TypeOf(int(0))\n\n\tmapBySliceTyp = reflect.TypeOf((*MapBySlice)(nil)).Elem()\n\n\tbinaryMarshalerTyp   = reflect.TypeOf((*encoding.BinaryMarshaler)(nil)).Elem()\n\tbinaryUnmarshalerTyp = reflect.TypeOf((*encoding.BinaryUnmarshaler)(nil)).Elem()\n\n\ttextMarshalerTyp   = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n\ttextUnmarshalerTyp = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()\n\n\tjsonMarshalerTyp   = reflect.TypeOf((*jsonMarshaler)(nil)).Elem()\n\tjsonUnmarshalerTyp = reflect.TypeOf((*jsonUnmarshaler)(nil)).Elem()\n\n\tselferTyp         = reflect.TypeOf((*Selfer)(nil)).Elem()\n\tmissingFielderTyp = reflect.TypeOf((*MissingFielder)(nil)).Elem()\n\tiszeroTyp         = reflect.TypeOf((*isZeroer)(nil)).Elem()\n\n\tuint8TypId      = rt2id(uint8Typ)\n\tuint8SliceTypId = rt2id(uint8SliceTyp)\n\trawExtTypId     = rt2id(rawExtTyp)\n\trawTypId        = rt2id(rawTyp)\n\tintfTypId       = rt2id(intfTyp)\n\ttimeTypId       = rt2id(timeTyp)\n\tstringTypId     = rt2id(stringTyp)\n\n\tmapStrIntfTypId  = rt2id(mapStrIntfTyp)\n\tmapIntfIntfTypId = rt2id(mapIntfIntfTyp)\n\tintfSliceTypId   = rt2id(intfSliceTyp)\n\t// mapBySliceTypId  = rt2id(mapBySliceTyp)\n\n\tintBitsize  = uint8(intTyp.Bits())\n\tuintBitsize = uint8(uintTyp.Bits())\n\n\t// bsAll0x00 = []byte{0, 0, 0, 0, 0, 0, 0, 0}\n\tbsAll0xff = []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}\n\n\tchkOvf checkOverflow\n\n\terrNoFieldNameToStructFieldInfo = errors.New(\"no field name passed to parseStructFieldInfo\")\n)\n\nvar defTypeInfos = NewTypeInfos([]string{\"codec\", \"json\"})\n\nvar immutableKindsSet = [32]bool{\n\t// reflect.Invalid:  ,\n\treflect.Bool:       true,\n\treflect.Int:        true,\n\treflect.Int8:       true,\n\treflect.Int16:      true,\n\treflect.Int32:      true,\n\treflect.Int64:      true,\n\treflect.Uint:       true,\n\treflect.Uint8:      true,\n\treflect.Uint16:     true,\n\treflect.Uint32:     true,\n\treflect.Uint64:     true,\n\treflect.Uintptr:    true,\n\treflect.Float32:    true,\n\treflect.Float64:    true,\n\treflect.Complex64:  true,\n\treflect.Complex128: true,\n\t// reflect.Array\n\t// reflect.Chan\n\t// reflect.Func: true,\n\t// reflect.Interface\n\t// reflect.Map\n\t// reflect.Ptr\n\t// reflect.Slice\n\treflect.String: true,\n\t// reflect.Struct\n\t// reflect.UnsafePointer\n}\n\n// Selfer defines methods by which a value can encode or decode itself.\n//\n// Any type which implements Selfer will be able to encode or decode itself.\n// Consequently, during (en|de)code, this takes precedence over\n// (text|binary)(M|Unm)arshal or extension support.\n//\n// By definition, it is not allowed for a Selfer to directly call Encode or Decode on itself.\n// If that is done, Encode/Decode will rightfully fail with a Stack Overflow style error.\n// For example, the snippet below will cause such an error.\n//     type testSelferRecur struct{}\n//     func (s *testSelferRecur) CodecEncodeSelf(e *Encoder) { e.MustEncode(s) }\n//     func (s *testSelferRecur) CodecDecodeSelf(d *Decoder) { d.MustDecode(s) }\n//\n// Note: *the first set of bytes of any value MUST NOT represent nil in the format*.\n// This is because, during each decode, we first check the the next set of bytes\n// represent nil, and if so, we just set the value to nil.\ntype Selfer interface {\n\tCodecEncodeSelf(*Encoder)\n\tCodecDecodeSelf(*Decoder)\n}\n\n// MissingFielder defines the interface allowing structs to internally decode or encode\n// values which do not map to struct fields.\n//\n// We expect that this interface is bound to a pointer type (so the mutation function works).\n//\n// A use-case is if a version of a type unexports a field, but you want compatibility between\n// both versions during encoding and decoding.\n//\n// Note that the interface is completely ignored during codecgen.\ntype MissingFielder interface {\n\t// CodecMissingField is called to set a missing field and value pair.\n\t//\n\t// It returns true if the missing field was set on the struct.\n\tCodecMissingField(field []byte, value interface{}) bool\n\n\t// CodecMissingFields returns the set of fields which are not struct fields\n\tCodecMissingFields() map[string]interface{}\n}\n\n// MapBySlice is a tag interface that denotes wrapped slice should encode as a map in the stream.\n// The slice contains a sequence of key-value pairs.\n// This affords storing a map in a specific sequence in the stream.\n//\n// Example usage:\n//    type T1 []string         // or []int or []Point or any other \"slice\" type\n//    func (_ T1) MapBySlice{} // T1 now implements MapBySlice, and will be encoded as a map\n//    type T2 struct { KeyValues T1 }\n//\n//    var kvs = []string{\"one\", \"1\", \"two\", \"2\", \"three\", \"3\"}\n//    var v2 = T2{ KeyValues: T1(kvs) }\n//    // v2 will be encoded like the map: {\"KeyValues\": {\"one\": \"1\", \"two\": \"2\", \"three\": \"3\"} }\n//\n// The support of MapBySlice affords the following:\n//   - A slice type which implements MapBySlice will be encoded as a map\n//   - A slice can be decoded from a map in the stream\n//   - It MUST be a slice type (not a pointer receiver) that implements MapBySlice\ntype MapBySlice interface {\n\tMapBySlice()\n}\n\n// BasicHandle encapsulates the common options and extension functions.\n//\n// Deprecated: DO NOT USE DIRECTLY. EXPORTED FOR GODOC BENEFIT. WILL BE REMOVED.\ntype BasicHandle struct {\n\t// BasicHandle is always a part of a different type.\n\t// It doesn't have to fit into it own cache lines.\n\n\t// TypeInfos is used to get the type info for any type.\n\t//\n\t// If not configured, the default TypeInfos is used, which uses struct tag keys: codec, json\n\tTypeInfos *TypeInfos\n\n\t// Note: BasicHandle is not comparable, due to these slices here (extHandle, intf2impls).\n\t// If *[]T is used instead, this becomes comparable, at the cost of extra indirection.\n\t// Thses slices are used all the time, so keep as slices (not pointers).\n\n\textHandle\n\n\tintf2impls\n\n\tEncodeOptions\n\n\tDecodeOptions\n\n\tRPCOptions\n\n\t// TimeNotBuiltin configures whether time.Time should be treated as a builtin type.\n\t//\n\t// All Handlers should know how to encode/decode time.Time as part of the core\n\t// format specification, or as a standard extension defined by the format.\n\t//\n\t// However, users can elect to handle time.Time as a custom extension, or via the\n\t// standard library's encoding.Binary(M|Unm)arshaler or Text(M|Unm)arshaler interface.\n\t// To elect this behavior, users can set TimeNotBuiltin=true.\n\t// Note: Setting TimeNotBuiltin=true can be used to enable the legacy behavior\n\t// (for Cbor and Msgpack), where time.Time was not a builtin supported type.\n\tTimeNotBuiltin bool\n\n\t// ExplicitRelease configures whether Release() is implicitly called after an encode or\n\t// decode call.\n\t//\n\t// If you will hold onto an Encoder or Decoder for re-use, by calling Reset(...)\n\t// on it or calling (Must)Encode repeatedly into a given []byte or io.Writer,\n\t// then you do not want it to be implicitly closed after each Encode/Decode call.\n\t// Doing so will unnecessarily return resources to the shared pool, only for you to\n\t// grab them right after again to do another Encode/Decode call.\n\t//\n\t// Instead, you configure ExplicitRelease=true, and you explicitly call Release() when\n\t// you are truly done.\n\t//\n\t// As an alternative, you can explicitly set a finalizer - so its resources\n\t// are returned to the shared pool before it is garbage-collected. Do it as below:\n\t//    runtime.SetFinalizer(e, (*Encoder).Release)\n\t//    runtime.SetFinalizer(d, (*Decoder).Release)\n\tExplicitRelease bool\n\n\t// flags handleFlag // holds flag for if binaryEncoding, jsonHandler, etc\n\t// be    bool       // is handle a binary encoding?\n\t// js    bool       // is handle javascript handler?\n\t// n  byte // first letter of handle name\n\t// _  uint16 // padding\n\n\t// ---- cache line\n\n\t// noBuiltInTypeChecker\n\n\tinited uint32 // holds if inited, and also handle flags (binary encoding, json handler, etc)\n\tmu     sync.Mutex\n\t// _      uint32 // padding\n\trtidFns atomicRtidFnSlice\n\n\t// r []uintptr     // rtids mapped to s above\n}\n\n// basicHandle returns an initialized BasicHandle from the Handle.\nfunc basicHandle(hh Handle) (x *BasicHandle) {\n\tx = hh.getBasicHandle()\n\t// ** We need to simulate once.Do, to ensure no data race within the block.\n\t// ** Consequently, below would not work.\n\t// if atomic.CompareAndSwapUint32(&x.inited, 0, 1) {\n\t// \tx.be = hh.isBinary()\n\t// \t_, x.js = hh.(*JsonHandle)\n\t// \tx.n = hh.Name()[0]\n\t// }\n\n\t// simulate once.Do using our own stored flag and mutex as a CompareAndSwap\n\t// is not sufficient, since a race condition can occur within init(Handle) function.\n\t// init is made noinline, so that this function can be inlined by its caller.\n\tif atomic.LoadUint32(&x.inited) == 0 {\n\t\tx.init(hh)\n\t}\n\treturn\n}\n\nfunc (x *BasicHandle) isJs() bool {\n\treturn handleFlag(x.inited)&jsonHandleFlag != 0\n}\n\nfunc (x *BasicHandle) isBe() bool {\n\treturn handleFlag(x.inited)&binaryHandleFlag != 0\n}\n\n//go:noinline\nfunc (x *BasicHandle) init(hh Handle) {\n\t// make it uninlineable, as it is called at most once\n\tx.mu.Lock()\n\tif x.inited == 0 {\n\t\tvar f = initedHandleFlag\n\t\tif hh.isBinary() {\n\t\t\tf |= binaryHandleFlag\n\t\t}\n\t\tif _, b := hh.(*JsonHandle); b {\n\t\t\tf |= jsonHandleFlag\n\t\t}\n\t\t// _, x.js = hh.(*JsonHandle)\n\t\t// x.n = hh.Name()[0]\n\t\tatomic.StoreUint32(&x.inited, uint32(f))\n\t}\n\tx.mu.Unlock()\n}\n\nfunc (x *BasicHandle) getBasicHandle() *BasicHandle {\n\treturn x\n}\n\nfunc (x *BasicHandle) getTypeInfo(rtid uintptr, rt reflect.Type) (pti *typeInfo) {\n\tif x.TypeInfos == nil {\n\t\treturn defTypeInfos.get(rtid, rt)\n\t}\n\treturn x.TypeInfos.get(rtid, rt)\n}\n\nfunc findFn(s []codecRtidFn, rtid uintptr) (i uint, fn *codecFn) {\n\t// binary search. adapted from sort/search.go.\n\t// Note: we use goto (instead of for loop) so this can be inlined.\n\n\t// h, i, j := 0, 0, len(s)\n\tvar h uint // var h, i uint\n\tvar j = uint(len(s))\nLOOP:\n\tif i < j {\n\t\th = i + (j-i)/2\n\t\tif s[h].rtid < rtid {\n\t\t\ti = h + 1\n\t\t} else {\n\t\t\tj = h\n\t\t}\n\t\tgoto LOOP\n\t}\n\tif i < uint(len(s)) && s[i].rtid == rtid {\n\t\tfn = s[i].fn\n\t}\n\treturn\n}\n\nfunc (x *BasicHandle) fn(rt reflect.Type, checkFastpath, checkCodecSelfer bool) (fn *codecFn) {\n\trtid := rt2id(rt)\n\tsp := x.rtidFns.load()\n\tif sp != nil {\n\t\tif _, fn = findFn(sp, rtid); fn != nil {\n\t\t\t// xdebugf(\"<<<< %c: found fn for %v in rtidfns of size: %v\", c.n, rt, len(sp))\n\t\t\treturn\n\t\t}\n\t}\n\tc := x\n\t// xdebugf(\"#### for %c: load fn for %v in rtidfns of size: %v\", c.n, rt, len(sp))\n\tfn = new(codecFn)\n\tfi := &(fn.i)\n\tti := c.getTypeInfo(rtid, rt)\n\tfi.ti = ti\n\n\trk := reflect.Kind(ti.kind)\n\n\tif checkCodecSelfer && (ti.cs || ti.csp) {\n\t\tfn.fe = (*Encoder).selferMarshal\n\t\tfn.fd = (*Decoder).selferUnmarshal\n\t\tfi.addrF = true\n\t\tfi.addrD = ti.csp\n\t\tfi.addrE = ti.csp\n\t} else if rtid == timeTypId && !c.TimeNotBuiltin {\n\t\tfn.fe = (*Encoder).kTime\n\t\tfn.fd = (*Decoder).kTime\n\t} else if rtid == rawTypId {\n\t\tfn.fe = (*Encoder).raw\n\t\tfn.fd = (*Decoder).raw\n\t} else if rtid == rawExtTypId {\n\t\tfn.fe = (*Encoder).rawExt\n\t\tfn.fd = (*Decoder).rawExt\n\t\tfi.addrF = true\n\t\tfi.addrD = true\n\t\tfi.addrE = true\n\t} else if xfFn := c.getExt(rtid); xfFn != nil {\n\t\tfi.xfTag, fi.xfFn = xfFn.tag, xfFn.ext\n\t\tfn.fe = (*Encoder).ext\n\t\tfn.fd = (*Decoder).ext\n\t\tfi.addrF = true\n\t\tfi.addrD = true\n\t\tif rk == reflect.Struct || rk == reflect.Array {\n\t\t\tfi.addrE = true\n\t\t}\n\t} else if supportMarshalInterfaces && c.isBe() && (ti.bm || ti.bmp) && (ti.bu || ti.bup) {\n\t\tfn.fe = (*Encoder).binaryMarshal\n\t\tfn.fd = (*Decoder).binaryUnmarshal\n\t\tfi.addrF = true\n\t\tfi.addrD = ti.bup\n\t\tfi.addrE = ti.bmp\n\t} else if supportMarshalInterfaces && !c.isBe() && c.isJs() &&\n\t\t(ti.jm || ti.jmp) && (ti.ju || ti.jup) {\n\t\t//If JSON, we should check JSONMarshal before textMarshal\n\t\tfn.fe = (*Encoder).jsonMarshal\n\t\tfn.fd = (*Decoder).jsonUnmarshal\n\t\tfi.addrF = true\n\t\tfi.addrD = ti.jup\n\t\tfi.addrE = ti.jmp\n\t} else if supportMarshalInterfaces && !c.isBe() && (ti.tm || ti.tmp) && (ti.tu || ti.tup) {\n\t\tfn.fe = (*Encoder).textMarshal\n\t\tfn.fd = (*Decoder).textUnmarshal\n\t\tfi.addrF = true\n\t\tfi.addrD = ti.tup\n\t\tfi.addrE = ti.tmp\n\t} else {\n\t\tif fastpathEnabled && checkFastpath && (rk == reflect.Map || rk == reflect.Slice) {\n\t\t\tif ti.pkgpath == \"\" { // un-named slice or map\n\t\t\t\tif idx := fastpathAV.index(rtid); idx != -1 {\n\t\t\t\t\tfn.fe = fastpathAV[idx].encfn\n\t\t\t\t\tfn.fd = fastpathAV[idx].decfn\n\t\t\t\t\tfi.addrD = true\n\t\t\t\t\tfi.addrF = false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// use mapping for underlying type if there\n\t\t\t\tvar rtu reflect.Type\n\t\t\t\tif rk == reflect.Map {\n\t\t\t\t\trtu = reflect.MapOf(ti.key, ti.elem)\n\t\t\t\t} else {\n\t\t\t\t\trtu = reflect.SliceOf(ti.elem)\n\t\t\t\t}\n\t\t\t\trtuid := rt2id(rtu)\n\t\t\t\tif idx := fastpathAV.index(rtuid); idx != -1 {\n\t\t\t\t\txfnf := fastpathAV[idx].encfn\n\t\t\t\t\txrt := fastpathAV[idx].rt\n\t\t\t\t\tfn.fe = func(e *Encoder, xf *codecFnInfo, xrv reflect.Value) {\n\t\t\t\t\t\txfnf(e, xf, xrv.Convert(xrt))\n\t\t\t\t\t}\n\t\t\t\t\tfi.addrD = true\n\t\t\t\t\tfi.addrF = false // meaning it can be an address(ptr) or a value\n\t\t\t\t\txfnf2 := fastpathAV[idx].decfn\n\t\t\t\t\tfn.fd = func(d *Decoder, xf *codecFnInfo, xrv reflect.Value) {\n\t\t\t\t\t\tif xrv.Kind() == reflect.Ptr {\n\t\t\t\t\t\t\txfnf2(d, xf, xrv.Convert(reflect.PtrTo(xrt)))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\txfnf2(d, xf, xrv.Convert(xrt))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif fn.fe == nil && fn.fd == nil {\n\t\t\tswitch rk {\n\t\t\tcase reflect.Bool:\n\t\t\t\tfn.fe = (*Encoder).kBool\n\t\t\t\tfn.fd = (*Decoder).kBool\n\t\t\tcase reflect.String:\n\t\t\t\tfn.fe = (*Encoder).kString\n\t\t\t\tfn.fd = (*Decoder).kString\n\t\t\tcase reflect.Int:\n\t\t\t\tfn.fd = (*Decoder).kInt\n\t\t\t\tfn.fe = (*Encoder).kInt\n\t\t\tcase reflect.Int8:\n\t\t\t\tfn.fe = (*Encoder).kInt8\n\t\t\t\tfn.fd = (*Decoder).kInt8\n\t\t\tcase reflect.Int16:\n\t\t\t\tfn.fe = (*Encoder).kInt16\n\t\t\t\tfn.fd = (*Decoder).kInt16\n\t\t\tcase reflect.Int32:\n\t\t\t\tfn.fe = (*Encoder).kInt32\n\t\t\t\tfn.fd = (*Decoder).kInt32\n\t\t\tcase reflect.Int64:\n\t\t\t\tfn.fe = (*Encoder).kInt64\n\t\t\t\tfn.fd = (*Decoder).kInt64\n\t\t\tcase reflect.Uint:\n\t\t\t\tfn.fd = (*Decoder).kUint\n\t\t\t\tfn.fe = (*Encoder).kUint\n\t\t\tcase reflect.Uint8:\n\t\t\t\tfn.fe = (*Encoder).kUint8\n\t\t\t\tfn.fd = (*Decoder).kUint8\n\t\t\tcase reflect.Uint16:\n\t\t\t\tfn.fe = (*Encoder).kUint16\n\t\t\t\tfn.fd = (*Decoder).kUint16\n\t\t\tcase reflect.Uint32:\n\t\t\t\tfn.fe = (*Encoder).kUint32\n\t\t\t\tfn.fd = (*Decoder).kUint32\n\t\t\tcase reflect.Uint64:\n\t\t\t\tfn.fe = (*Encoder).kUint64\n\t\t\t\tfn.fd = (*Decoder).kUint64\n\t\t\tcase reflect.Uintptr:\n\t\t\t\tfn.fe = (*Encoder).kUintptr\n\t\t\t\tfn.fd = (*Decoder).kUintptr\n\t\t\tcase reflect.Float32:\n\t\t\t\tfn.fe = (*Encoder).kFloat32\n\t\t\t\tfn.fd = (*Decoder).kFloat32\n\t\t\tcase reflect.Float64:\n\t\t\t\tfn.fe = (*Encoder).kFloat64\n\t\t\t\tfn.fd = (*Decoder).kFloat64\n\t\t\tcase reflect.Invalid:\n\t\t\t\tfn.fe = (*Encoder).kInvalid\n\t\t\t\tfn.fd = (*Decoder).kErr\n\t\t\tcase reflect.Chan:\n\t\t\t\tfi.seq = seqTypeChan\n\t\t\t\tfn.fe = (*Encoder).kSlice\n\t\t\t\tfn.fd = (*Decoder).kSlice\n\t\t\tcase reflect.Slice:\n\t\t\t\tfi.seq = seqTypeSlice\n\t\t\t\tfn.fe = (*Encoder).kSlice\n\t\t\t\tfn.fd = (*Decoder).kSlice\n\t\t\tcase reflect.Array:\n\t\t\t\tfi.seq = seqTypeArray\n\t\t\t\tfn.fe = (*Encoder).kSlice\n\t\t\t\tfi.addrF = false\n\t\t\t\tfi.addrD = false\n\t\t\t\trt2 := reflect.SliceOf(ti.elem)\n\t\t\t\tfn.fd = func(d *Decoder, xf *codecFnInfo, xrv reflect.Value) {\n\t\t\t\t\td.h.fn(rt2, true, false).fd(d, xf, xrv.Slice(0, xrv.Len()))\n\t\t\t\t}\n\t\t\t\t// fn.fd = (*Decoder).kArray\n\t\t\tcase reflect.Struct:\n\t\t\t\tif ti.anyOmitEmpty || ti.mf || ti.mfp {\n\t\t\t\t\tfn.fe = (*Encoder).kStruct\n\t\t\t\t} else {\n\t\t\t\t\tfn.fe = (*Encoder).kStructNoOmitempty\n\t\t\t\t}\n\t\t\t\tfn.fd = (*Decoder).kStruct\n\t\t\tcase reflect.Map:\n\t\t\t\tfn.fe = (*Encoder).kMap\n\t\t\t\tfn.fd = (*Decoder).kMap\n\t\t\tcase reflect.Interface:\n\t\t\t\t// encode: reflect.Interface are handled already by preEncodeValue\n\t\t\t\tfn.fd = (*Decoder).kInterface\n\t\t\t\tfn.fe = (*Encoder).kErr\n\t\t\tdefault:\n\t\t\t\t// reflect.Ptr and reflect.Interface are handled already by preEncodeValue\n\t\t\t\tfn.fe = (*Encoder).kErr\n\t\t\t\tfn.fd = (*Decoder).kErr\n\t\t\t}\n\t\t}\n\t}\n\n\tc.mu.Lock()\n\tvar sp2 []codecRtidFn\n\tsp = c.rtidFns.load()\n\tif sp == nil {\n\t\tsp2 = []codecRtidFn{{rtid, fn}}\n\t\tc.rtidFns.store(sp2)\n\t\t// xdebugf(\">>>> adding rt: %v to rtidfns of size: %v\", rt, len(sp2))\n\t\t// xdebugf(\">>>> loading stored rtidfns of size: %v\", len(c.rtidFns.load()))\n\t} else {\n\t\tidx, fn2 := findFn(sp, rtid)\n\t\tif fn2 == nil {\n\t\t\tsp2 = make([]codecRtidFn, len(sp)+1)\n\t\t\tcopy(sp2, sp[:idx])\n\t\t\tcopy(sp2[idx+1:], sp[idx:])\n\t\t\tsp2[idx] = codecRtidFn{rtid, fn}\n\t\t\tc.rtidFns.store(sp2)\n\t\t\t// xdebugf(\">>>> adding rt: %v to rtidfns of size: %v\", rt, len(sp2))\n\n\t\t}\n\t}\n\tc.mu.Unlock()\n\treturn\n}\n\n// Handle defines a specific encoding format. It also stores any runtime state\n// used during an Encoding or Decoding session e.g. stored state about Types, etc.\n//\n// Once a handle is configured, it can be shared across multiple Encoders and Decoders.\n//\n// Note that a Handle is NOT safe for concurrent modification.\n// Consequently, do not modify it after it is configured if shared among\n// multiple Encoders and Decoders in different goroutines.\n//\n// Consequently, the typical usage model is that a Handle is pre-configured\n// before first time use, and not modified while in use.\n// Such a pre-configured Handle is safe for concurrent access.\ntype Handle interface {\n\tName() string\n\t// return the basic handle. It may not have been inited.\n\t// Prefer to use basicHandle() helper function that ensures it has been inited.\n\tgetBasicHandle() *BasicHandle\n\trecreateEncDriver(encDriver) bool\n\tnewEncDriver(w *Encoder) encDriver\n\tnewDecDriver(r *Decoder) decDriver\n\tisBinary() bool\n\thasElemSeparators() bool\n\t// IsBuiltinType(rtid uintptr) bool\n}\n\n// Raw represents raw formatted bytes.\n// We \"blindly\" store it during encode and retrieve the raw bytes during decode.\n// Note: it is dangerous during encode, so we may gate the behaviour\n// behind an Encode flag which must be explicitly set.\ntype Raw []byte\n\n// RawExt represents raw unprocessed extension data.\n// Some codecs will decode extension data as a *RawExt\n// if there is no registered extension for the tag.\n//\n// Only one of Data or Value is nil.\n// If Data is nil, then the content of the RawExt is in the Value.\ntype RawExt struct {\n\tTag uint64\n\t// Data is the []byte which represents the raw ext. If nil, ext is exposed in Value.\n\t// Data is used by codecs (e.g. binc, msgpack, simple) which do custom serialization of types\n\tData []byte\n\t// Value represents the extension, if Data is nil.\n\t// Value is used by codecs (e.g. cbor, json) which leverage the format to do\n\t// custom serialization of the types.\n\tValue interface{}\n}\n\n// BytesExt handles custom (de)serialization of types to/from []byte.\n// It is used by codecs (e.g. binc, msgpack, simple) which do custom serialization of the types.\ntype BytesExt interface {\n\t// WriteExt converts a value to a []byte.\n\t//\n\t// Note: v is a pointer iff the registered extension type is a struct or array kind.\n\tWriteExt(v interface{}) []byte\n\n\t// ReadExt updates a value from a []byte.\n\t//\n\t// Note: dst is always a pointer kind to the registered extension type.\n\tReadExt(dst interface{}, src []byte)\n}\n\n// InterfaceExt handles custom (de)serialization of types to/from another interface{} value.\n// The Encoder or Decoder will then handle the further (de)serialization of that known type.\n//\n// It is used by codecs (e.g. cbor, json) which use the format to do custom serialization of types.\ntype InterfaceExt interface {\n\t// ConvertExt converts a value into a simpler interface for easy encoding\n\t// e.g. convert time.Time to int64.\n\t//\n\t// Note: v is a pointer iff the registered extension type is a struct or array kind.\n\tConvertExt(v interface{}) interface{}\n\n\t// UpdateExt updates a value from a simpler interface for easy decoding\n\t// e.g. convert int64 to time.Time.\n\t//\n\t// Note: dst is always a pointer kind to the registered extension type.\n\tUpdateExt(dst interface{}, src interface{})\n}\n\n// Ext handles custom (de)serialization of custom types / extensions.\ntype Ext interface {\n\tBytesExt\n\tInterfaceExt\n}\n\n// addExtWrapper is a wrapper implementation to support former AddExt exported method.\ntype addExtWrapper struct {\n\tencFn func(reflect.Value) ([]byte, error)\n\tdecFn func(reflect.Value, []byte) error\n}\n\nfunc (x addExtWrapper) WriteExt(v interface{}) []byte {\n\tbs, err := x.encFn(reflect.ValueOf(v))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn bs\n}\n\nfunc (x addExtWrapper) ReadExt(v interface{}, bs []byte) {\n\tif err := x.decFn(reflect.ValueOf(v), bs); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (x addExtWrapper) ConvertExt(v interface{}) interface{} {\n\treturn x.WriteExt(v)\n}\n\nfunc (x addExtWrapper) UpdateExt(dest interface{}, v interface{}) {\n\tx.ReadExt(dest, v.([]byte))\n}\n\ntype bytesExtFailer struct{}\n\nfunc (bytesExtFailer) WriteExt(v interface{}) []byte {\n\tpanicv.errorstr(\"BytesExt.WriteExt is not supported\")\n\treturn nil\n}\nfunc (bytesExtFailer) ReadExt(v interface{}, bs []byte) {\n\tpanicv.errorstr(\"BytesExt.ReadExt is not supported\")\n}\n\ntype interfaceExtFailer struct{}\n\nfunc (interfaceExtFailer) ConvertExt(v interface{}) interface{} {\n\tpanicv.errorstr(\"InterfaceExt.ConvertExt is not supported\")\n\treturn nil\n}\nfunc (interfaceExtFailer) UpdateExt(dest interface{}, v interface{}) {\n\tpanicv.errorstr(\"InterfaceExt.UpdateExt is not supported\")\n}\n\n// type extWrapper struct {\n// \tBytesExt\n// \tInterfaceExt\n// }\n\ntype bytesExtWrapper struct {\n\tinterfaceExtFailer\n\tBytesExt\n}\n\ntype interfaceExtWrapper struct {\n\tbytesExtFailer\n\tInterfaceExt\n}\n\ntype binaryEncodingType struct{}\n\nfunc (binaryEncodingType) isBinary() bool { return true }\n\ntype textEncodingType struct{}\n\nfunc (textEncodingType) isBinary() bool { return false }\n\n// noBuiltInTypes is embedded into many types which do not support builtins\n// e.g. msgpack, simple, cbor.\n\n// type noBuiltInTypeChecker struct{}\n// func (noBuiltInTypeChecker) IsBuiltinType(rt uintptr) bool { return false }\n// type noBuiltInTypes struct{ noBuiltInTypeChecker }\n\ntype noBuiltInTypes struct{}\n\nfunc (noBuiltInTypes) EncodeBuiltin(rt uintptr, v interface{}) {}\nfunc (noBuiltInTypes) DecodeBuiltin(rt uintptr, v interface{}) {}\n\n// type noStreamingCodec struct{}\n// func (noStreamingCodec) CheckBreak() bool { return false }\n// func (noStreamingCodec) hasElemSeparators() bool { return false }\n\ntype noElemSeparators struct{}\n\nfunc (noElemSeparators) hasElemSeparators() (v bool)            { return }\nfunc (noElemSeparators) recreateEncDriver(e encDriver) (v bool) { return }\n\n// bigenHelper.\n// Users must already slice the x completely, because we will not reslice.\ntype bigenHelper struct {\n\tx []byte // must be correctly sliced to appropriate len. slicing is a cost.\n\tw *encWriterSwitch\n}\n\nfunc (z bigenHelper) writeUint16(v uint16) {\n\tbigen.PutUint16(z.x, v)\n\tz.w.writeb(z.x)\n}\n\nfunc (z bigenHelper) writeUint32(v uint32) {\n\tbigen.PutUint32(z.x, v)\n\tz.w.writeb(z.x)\n}\n\nfunc (z bigenHelper) writeUint64(v uint64) {\n\tbigen.PutUint64(z.x, v)\n\tz.w.writeb(z.x)\n}\n\ntype extTypeTagFn struct {\n\trtid    uintptr\n\trtidptr uintptr\n\trt      reflect.Type\n\ttag     uint64\n\text     Ext\n\t// _       [1]uint64 // padding\n}\n\ntype extHandle []extTypeTagFn\n\n// AddExt registes an encode and decode function for a reflect.Type.\n// To deregister an Ext, call AddExt with nil encfn and/or nil decfn.\n//\n// Deprecated: Use SetBytesExt or SetInterfaceExt on the Handle instead.\nfunc (o *extHandle) AddExt(rt reflect.Type, tag byte,\n\tencfn func(reflect.Value) ([]byte, error),\n\tdecfn func(reflect.Value, []byte) error) (err error) {\n\tif encfn == nil || decfn == nil {\n\t\treturn o.SetExt(rt, uint64(tag), nil)\n\t}\n\treturn o.SetExt(rt, uint64(tag), addExtWrapper{encfn, decfn})\n}\n\n// SetExt will set the extension for a tag and reflect.Type.\n// Note that the type must be a named type, and specifically not a pointer or Interface.\n// An error is returned if that is not honored.\n// To Deregister an ext, call SetExt with nil Ext.\n//\n// Deprecated: Use SetBytesExt or SetInterfaceExt on the Handle instead.\nfunc (o *extHandle) SetExt(rt reflect.Type, tag uint64, ext Ext) (err error) {\n\t// o is a pointer, because we may need to initialize it\n\trk := rt.Kind()\n\tfor rk == reflect.Ptr {\n\t\trt = rt.Elem()\n\t\trk = rt.Kind()\n\t}\n\n\tif rt.PkgPath() == \"\" || rk == reflect.Interface { // || rk == reflect.Ptr {\n\t\treturn fmt.Errorf(\"codec.Handle.SetExt: Takes named type, not a pointer or interface: %v\", rt)\n\t}\n\n\trtid := rt2id(rt)\n\tswitch rtid {\n\tcase timeTypId, rawTypId, rawExtTypId:\n\t\t// all natively supported type, so cannot have an extension\n\t\treturn // TODO: should we silently ignore, or return an error???\n\t}\n\t// if o == nil {\n\t// \treturn errors.New(\"codec.Handle.SetExt: extHandle not initialized\")\n\t// }\n\to2 := *o\n\t// if o2 == nil {\n\t// \treturn errors.New(\"codec.Handle.SetExt: extHandle not initialized\")\n\t// }\n\tfor i := range o2 {\n\t\tv := &o2[i]\n\t\tif v.rtid == rtid {\n\t\t\tv.tag, v.ext = tag, ext\n\t\t\treturn\n\t\t}\n\t}\n\trtidptr := rt2id(reflect.PtrTo(rt))\n\t*o = append(o2, extTypeTagFn{rtid, rtidptr, rt, tag, ext}) // , [1]uint64{}})\n\treturn\n}\n\nfunc (o extHandle) getExt(rtid uintptr) (v *extTypeTagFn) {\n\tfor i := range o {\n\t\tv = &o[i]\n\t\tif v.rtid == rtid || v.rtidptr == rtid {\n\t\t\treturn\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (o extHandle) getExtForTag(tag uint64) (v *extTypeTagFn) {\n\tfor i := range o {\n\t\tv = &o[i]\n\t\tif v.tag == tag {\n\t\t\treturn\n\t\t}\n\t}\n\treturn nil\n}\n\ntype intf2impl struct {\n\trtid uintptr // for intf\n\timpl reflect.Type\n\t// _    [1]uint64 // padding // not-needed, as *intf2impl is never returned.\n}\n\ntype intf2impls []intf2impl\n\n// Intf2Impl maps an interface to an implementing type.\n// This allows us support infering the concrete type\n// and populating it when passed an interface.\n// e.g. var v io.Reader can be decoded as a bytes.Buffer, etc.\n//\n// Passing a nil impl will clear the mapping.\nfunc (o *intf2impls) Intf2Impl(intf, impl reflect.Type) (err error) {\n\tif impl != nil && !impl.Implements(intf) {\n\t\treturn fmt.Errorf(\"Intf2Impl: %v does not implement %v\", impl, intf)\n\t}\n\trtid := rt2id(intf)\n\to2 := *o\n\tfor i := range o2 {\n\t\tv := &o2[i]\n\t\tif v.rtid == rtid {\n\t\t\tv.impl = impl\n\t\t\treturn\n\t\t}\n\t}\n\t*o = append(o2, intf2impl{rtid, impl})\n\treturn\n}\n\nfunc (o intf2impls) intf2impl(rtid uintptr) (rv reflect.Value) {\n\tfor i := range o {\n\t\tv := &o[i]\n\t\tif v.rtid == rtid {\n\t\t\tif v.impl == nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif v.impl.Kind() == reflect.Ptr {\n\t\t\t\treturn reflect.New(v.impl.Elem())\n\t\t\t}\n\t\t\treturn reflect.New(v.impl).Elem()\n\t\t}\n\t}\n\treturn\n}\n\ntype structFieldInfoFlag uint8\n\nconst (\n\t_ structFieldInfoFlag = 1 << iota\n\tstructFieldInfoFlagReady\n\tstructFieldInfoFlagOmitEmpty\n)\n\nfunc (x *structFieldInfoFlag) flagSet(f structFieldInfoFlag) {\n\t*x = *x | f\n}\n\nfunc (x *structFieldInfoFlag) flagClr(f structFieldInfoFlag) {\n\t*x = *x &^ f\n}\n\nfunc (x structFieldInfoFlag) flagGet(f structFieldInfoFlag) bool {\n\treturn x&f != 0\n}\n\nfunc (x structFieldInfoFlag) omitEmpty() bool {\n\treturn x.flagGet(structFieldInfoFlagOmitEmpty)\n}\n\nfunc (x structFieldInfoFlag) ready() bool {\n\treturn x.flagGet(structFieldInfoFlagReady)\n}\n\ntype structFieldInfo struct {\n\tencName   string // encode name\n\tfieldName string // field name\n\n\tis  [maxLevelsEmbedding]uint16 // (recursive/embedded) field index in struct\n\tnis uint8                      // num levels of embedding. if 1, then it's not embedded.\n\n\tencNameAsciiAlphaNum bool // the encName only contains ascii alphabet and numbers\n\tstructFieldInfoFlag\n\t// _ [1]byte // padding\n}\n\nfunc (si *structFieldInfo) setToZeroValue(v reflect.Value) {\n\tif v, valid := si.field(v, false); valid {\n\t\tv.Set(reflect.Zero(v.Type()))\n\t}\n}\n\n// rv returns the field of the struct.\n// If anonymous, it returns an Invalid\nfunc (si *structFieldInfo) field(v reflect.Value, update bool) (rv2 reflect.Value, valid bool) {\n\t// replicate FieldByIndex\n\tfor i, x := range si.is {\n\t\tif uint8(i) == si.nis {\n\t\t\tbreak\n\t\t}\n\t\tif v, valid = baseStructRv(v, update); !valid {\n\t\t\treturn\n\t\t}\n\t\tv = v.Field(int(x))\n\t}\n\n\treturn v, true\n}\n\n// func (si *structFieldInfo) fieldval(v reflect.Value, update bool) reflect.Value {\n// \tv, _ = si.field(v, update)\n// \treturn v\n// }\n\nfunc parseStructInfo(stag string) (toArray, omitEmpty bool, keytype valueType) {\n\tkeytype = valueTypeString // default\n\tif stag == \"\" {\n\t\treturn\n\t}\n\tfor i, s := range strings.Split(stag, \",\") {\n\t\tif i == 0 {\n\t\t} else {\n\t\t\tswitch s {\n\t\t\tcase \"omitempty\":\n\t\t\t\tomitEmpty = true\n\t\t\tcase \"toarray\":\n\t\t\t\ttoArray = true\n\t\t\tcase \"int\":\n\t\t\t\tkeytype = valueTypeInt\n\t\t\tcase \"uint\":\n\t\t\t\tkeytype = valueTypeUint\n\t\t\tcase \"float\":\n\t\t\t\tkeytype = valueTypeFloat\n\t\t\t\t// case \"bool\":\n\t\t\t\t// \tkeytype = valueTypeBool\n\t\t\tcase \"string\":\n\t\t\t\tkeytype = valueTypeString\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc (si *structFieldInfo) parseTag(stag string) {\n\t// if fname == \"\" {\n\t// \tpanic(errNoFieldNameToStructFieldInfo)\n\t// }\n\n\tif stag == \"\" {\n\t\treturn\n\t}\n\tfor i, s := range strings.Split(stag, \",\") {\n\t\tif i == 0 {\n\t\t\tif s != \"\" {\n\t\t\t\tsi.encName = s\n\t\t\t}\n\t\t} else {\n\t\t\tswitch s {\n\t\t\tcase \"omitempty\":\n\t\t\t\tsi.flagSet(structFieldInfoFlagOmitEmpty)\n\t\t\t\t// si.omitEmpty = true\n\t\t\t\t// case \"toarray\":\n\t\t\t\t// \tsi.toArray = true\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype sfiSortedByEncName []*structFieldInfo\n\nfunc (p sfiSortedByEncName) Len() int           { return len(p) }\nfunc (p sfiSortedByEncName) Less(i, j int) bool { return p[uint(i)].encName < p[uint(j)].encName }\nfunc (p sfiSortedByEncName) Swap(i, j int)      { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\n\nconst structFieldNodeNumToCache = 4\n\ntype structFieldNodeCache struct {\n\trv  [structFieldNodeNumToCache]reflect.Value\n\tidx [structFieldNodeNumToCache]uint32\n\tnum uint8\n}\n\nfunc (x *structFieldNodeCache) get(key uint32) (fv reflect.Value, valid bool) {\n\tfor i, k := range &x.idx {\n\t\tif uint8(i) == x.num {\n\t\t\treturn // break\n\t\t}\n\t\tif key == k {\n\t\t\treturn x.rv[i], true\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x *structFieldNodeCache) tryAdd(fv reflect.Value, key uint32) {\n\tif x.num < structFieldNodeNumToCache {\n\t\tx.rv[x.num] = fv\n\t\tx.idx[x.num] = key\n\t\tx.num++\n\t\treturn\n\t}\n}\n\ntype structFieldNode struct {\n\tv      reflect.Value\n\tcache2 structFieldNodeCache\n\tcache3 structFieldNodeCache\n\tupdate bool\n}\n\nfunc (x *structFieldNode) field(si *structFieldInfo) (fv reflect.Value) {\n\t// return si.fieldval(x.v, x.update)\n\t// Note: we only cache if nis=2 or nis=3 i.e. up to 2 levels of embedding\n\t// This mostly saves us time on the repeated calls to v.Elem, v.Field, etc.\n\tvar valid bool\n\tswitch si.nis {\n\tcase 1:\n\t\tfv = x.v.Field(int(si.is[0]))\n\tcase 2:\n\t\tif fv, valid = x.cache2.get(uint32(si.is[0])); valid {\n\t\t\tfv = fv.Field(int(si.is[1]))\n\t\t\treturn\n\t\t}\n\t\tfv = x.v.Field(int(si.is[0]))\n\t\tif fv, valid = baseStructRv(fv, x.update); !valid {\n\t\t\treturn\n\t\t}\n\t\tx.cache2.tryAdd(fv, uint32(si.is[0]))\n\t\tfv = fv.Field(int(si.is[1]))\n\tcase 3:\n\t\tvar key uint32 = uint32(si.is[0])<<16 | uint32(si.is[1])\n\t\tif fv, valid = x.cache3.get(key); valid {\n\t\t\tfv = fv.Field(int(si.is[2]))\n\t\t\treturn\n\t\t}\n\t\tfv = x.v.Field(int(si.is[0]))\n\t\tif fv, valid = baseStructRv(fv, x.update); !valid {\n\t\t\treturn\n\t\t}\n\t\tfv = fv.Field(int(si.is[1]))\n\t\tif fv, valid = baseStructRv(fv, x.update); !valid {\n\t\t\treturn\n\t\t}\n\t\tx.cache3.tryAdd(fv, key)\n\t\tfv = fv.Field(int(si.is[2]))\n\tdefault:\n\t\tfv, _ = si.field(x.v, x.update)\n\t}\n\treturn\n}\n\nfunc baseStructRv(v reflect.Value, update bool) (v2 reflect.Value, valid bool) {\n\tfor v.Kind() == reflect.Ptr {\n\t\tif v.IsNil() {\n\t\t\tif !update {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t}\n\t\tv = v.Elem()\n\t}\n\treturn v, true\n}\n\ntype typeInfoFlag uint8\n\nconst (\n\ttypeInfoFlagComparable = 1 << iota\n\ttypeInfoFlagIsZeroer\n\ttypeInfoFlagIsZeroerPtr\n)\n\n// typeInfo keeps static (non-changing readonly)information\n// about each (non-ptr) type referenced in the encode/decode sequence.\n//\n// During an encode/decode sequence, we work as below:\n//   - If base is a built in type, en/decode base value\n//   - If base is registered as an extension, en/decode base value\n//   - If type is binary(M/Unm)arshaler, call Binary(M/Unm)arshal method\n//   - If type is text(M/Unm)arshaler, call Text(M/Unm)arshal method\n//   - Else decode appropriately based on the reflect.Kind\ntype typeInfo struct {\n\trt      reflect.Type\n\telem    reflect.Type\n\tpkgpath string\n\n\trtid uintptr\n\t// rv0  reflect.Value // saved zero value, used if immutableKind\n\n\tnumMeth uint16 // number of methods\n\tkind    uint8\n\tchandir uint8\n\n\tanyOmitEmpty bool      // true if a struct, and any of the fields are tagged \"omitempty\"\n\ttoArray      bool      // whether this (struct) type should be encoded as an array\n\tkeyType      valueType // if struct, how is the field name stored in a stream? default is string\n\tmbs          bool      // base type (T or *T) is a MapBySlice\n\n\t// ---- cpu cache line boundary?\n\tsfiSort []*structFieldInfo // sorted. Used when enc/dec struct to map.\n\tsfiSrc  []*structFieldInfo // unsorted. Used when enc/dec struct to array.\n\n\tkey reflect.Type\n\n\t// ---- cpu cache line boundary?\n\t// sfis         []structFieldInfo // all sfi, in src order, as created.\n\tsfiNamesSort []byte // all names, with indexes into the sfiSort\n\n\t// format of marshal type fields below: [btj][mu]p? OR csp?\n\n\tbm  bool // T is a binaryMarshaler\n\tbmp bool // *T is a binaryMarshaler\n\tbu  bool // T is a binaryUnmarshaler\n\tbup bool // *T is a binaryUnmarshaler\n\ttm  bool // T is a textMarshaler\n\ttmp bool // *T is a textMarshaler\n\ttu  bool // T is a textUnmarshaler\n\ttup bool // *T is a textUnmarshaler\n\n\tjm  bool // T is a jsonMarshaler\n\tjmp bool // *T is a jsonMarshaler\n\tju  bool // T is a jsonUnmarshaler\n\tjup bool // *T is a jsonUnmarshaler\n\tcs  bool // T is a Selfer\n\tcsp bool // *T is a Selfer\n\tmf  bool // T is a MissingFielder\n\tmfp bool // *T is a MissingFielder\n\n\t// other flags, with individual bits representing if set.\n\tflags              typeInfoFlag\n\tinfoFieldOmitempty bool\n\n\t// _ [6]byte   // padding\n\t// _ [2]uint64 // padding\n}\n\nfunc (ti *typeInfo) isFlag(f typeInfoFlag) bool {\n\treturn ti.flags&f != 0\n}\n\nfunc (ti *typeInfo) indexForEncName(name []byte) (index int16) {\n\tvar sn []byte\n\tif len(name)+2 <= 32 {\n\t\tvar buf [32]byte // should not escape to heap\n\t\tsn = buf[:len(name)+2]\n\t} else {\n\t\tsn = make([]byte, len(name)+2)\n\t}\n\tcopy(sn[1:], name)\n\tsn[0], sn[len(sn)-1] = tiSep2(name), 0xff\n\tj := bytes.Index(ti.sfiNamesSort, sn)\n\tif j < 0 {\n\t\treturn -1\n\t}\n\tindex = int16(uint16(ti.sfiNamesSort[j+len(sn)+1]) | uint16(ti.sfiNamesSort[j+len(sn)])<<8)\n\treturn\n}\n\ntype rtid2ti struct {\n\trtid uintptr\n\tti   *typeInfo\n}\n\n// TypeInfos caches typeInfo for each type on first inspection.\n//\n// It is configured with a set of tag keys, which are used to get\n// configuration for the type.\ntype TypeInfos struct {\n\t// infos: formerly map[uintptr]*typeInfo, now *[]rtid2ti, 2 words expected\n\tinfos atomicTypeInfoSlice\n\tmu    sync.Mutex\n\t_     uint64 // padding (cache-aligned)\n\ttags  []string\n\t_     uint64 // padding (cache-aligned)\n}\n\n// NewTypeInfos creates a TypeInfos given a set of struct tags keys.\n//\n// This allows users customize the struct tag keys which contain configuration\n// of their types.\nfunc NewTypeInfos(tags []string) *TypeInfos {\n\treturn &TypeInfos{tags: tags}\n}\n\nfunc (x *TypeInfos) structTag(t reflect.StructTag) (s string) {\n\t// check for tags: codec, json, in that order.\n\t// this allows seamless support for many configured structs.\n\tfor _, x := range x.tags {\n\t\ts = t.Get(x)\n\t\tif s != \"\" {\n\t\t\treturn s\n\t\t}\n\t}\n\treturn\n}\n\nfunc findTypeInfo(s []rtid2ti, rtid uintptr) (i uint, ti *typeInfo) {\n\t// binary search. adapted from sort/search.go.\n\t// Note: we use goto (instead of for loop) so this can be inlined.\n\n\t// if sp == nil {\n\t// \treturn -1, nil\n\t// }\n\t// s := *sp\n\n\t// h, i, j := 0, 0, len(s)\n\tvar h uint // var h, i uint\n\tvar j = uint(len(s))\nLOOP:\n\tif i < j {\n\t\th = i + (j-i)/2\n\t\tif s[h].rtid < rtid {\n\t\t\ti = h + 1\n\t\t} else {\n\t\t\tj = h\n\t\t}\n\t\tgoto LOOP\n\t}\n\tif i < uint(len(s)) && s[i].rtid == rtid {\n\t\tti = s[i].ti\n\t}\n\treturn\n}\n\nfunc (x *TypeInfos) get(rtid uintptr, rt reflect.Type) (pti *typeInfo) {\n\tsp := x.infos.load()\n\tif sp != nil {\n\t\t_, pti = findTypeInfo(sp, rtid)\n\t\tif pti != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\trk := rt.Kind()\n\n\tif rk == reflect.Ptr { // || (rk == reflect.Interface && rtid != intfTypId) {\n\t\tpanicv.errorf(\"invalid kind passed to TypeInfos.get: %v - %v\", rk, rt)\n\t}\n\n\t// do not hold lock while computing this.\n\t// it may lead to duplication, but that's ok.\n\tti := typeInfo{\n\t\trt:      rt,\n\t\trtid:    rtid,\n\t\tkind:    uint8(rk),\n\t\tpkgpath: rt.PkgPath(),\n\t\tkeyType: valueTypeString, // default it - so it's never 0\n\t}\n\t// ti.rv0 = reflect.Zero(rt)\n\n\t// ti.comparable = rt.Comparable()\n\tti.numMeth = uint16(rt.NumMethod())\n\n\tti.bm, ti.bmp = implIntf(rt, binaryMarshalerTyp)\n\tti.bu, ti.bup = implIntf(rt, binaryUnmarshalerTyp)\n\tti.tm, ti.tmp = implIntf(rt, textMarshalerTyp)\n\tti.tu, ti.tup = implIntf(rt, textUnmarshalerTyp)\n\tti.jm, ti.jmp = implIntf(rt, jsonMarshalerTyp)\n\tti.ju, ti.jup = implIntf(rt, jsonUnmarshalerTyp)\n\tti.cs, ti.csp = implIntf(rt, selferTyp)\n\tti.mf, ti.mfp = implIntf(rt, missingFielderTyp)\n\n\tb1, b2 := implIntf(rt, iszeroTyp)\n\tif b1 {\n\t\tti.flags |= typeInfoFlagIsZeroer\n\t}\n\tif b2 {\n\t\tti.flags |= typeInfoFlagIsZeroerPtr\n\t}\n\tif rt.Comparable() {\n\t\tti.flags |= typeInfoFlagComparable\n\t}\n\n\tswitch rk {\n\tcase reflect.Struct:\n\t\tvar omitEmpty bool\n\t\tif f, ok := rt.FieldByName(structInfoFieldName); ok {\n\t\t\tti.toArray, omitEmpty, ti.keyType = parseStructInfo(x.structTag(f.Tag))\n\t\t\tti.infoFieldOmitempty = omitEmpty\n\t\t} else {\n\t\t\tti.keyType = valueTypeString\n\t\t}\n\t\tpp, pi := &pool.tiload, pool.tiload.Get() // pool.tiLoad()\n\t\tpv := pi.(*typeInfoLoadArray)\n\t\tpv.etypes[0] = ti.rtid\n\t\t// vv := typeInfoLoad{pv.fNames[:0], pv.encNames[:0], pv.etypes[:1], pv.sfis[:0]}\n\t\tvv := typeInfoLoad{pv.etypes[:1], pv.sfis[:0]}\n\t\tx.rget(rt, rtid, omitEmpty, nil, &vv)\n\t\t// ti.sfis = vv.sfis\n\t\tti.sfiSrc, ti.sfiSort, ti.sfiNamesSort, ti.anyOmitEmpty = rgetResolveSFI(rt, vv.sfis, pv)\n\t\tpp.Put(pi)\n\tcase reflect.Map:\n\t\tti.elem = rt.Elem()\n\t\tti.key = rt.Key()\n\tcase reflect.Slice:\n\t\tti.mbs, _ = implIntf(rt, mapBySliceTyp)\n\t\tti.elem = rt.Elem()\n\tcase reflect.Chan:\n\t\tti.elem = rt.Elem()\n\t\tti.chandir = uint8(rt.ChanDir())\n\tcase reflect.Array, reflect.Ptr:\n\t\tti.elem = rt.Elem()\n\t}\n\t// sfi = sfiSrc\n\n\tx.mu.Lock()\n\tsp = x.infos.load()\n\tvar sp2 []rtid2ti\n\tif sp == nil {\n\t\tpti = &ti\n\t\tsp2 = []rtid2ti{{rtid, pti}}\n\t\tx.infos.store(sp2)\n\t} else {\n\t\tvar idx uint\n\t\tidx, pti = findTypeInfo(sp, rtid)\n\t\tif pti == nil {\n\t\t\tpti = &ti\n\t\t\tsp2 = make([]rtid2ti, len(sp)+1)\n\t\t\tcopy(sp2, sp[:idx])\n\t\t\tcopy(sp2[idx+1:], sp[idx:])\n\t\t\tsp2[idx] = rtid2ti{rtid, pti}\n\t\t\tx.infos.store(sp2)\n\t\t}\n\t}\n\tx.mu.Unlock()\n\treturn\n}\n\nfunc (x *TypeInfos) rget(rt reflect.Type, rtid uintptr, omitEmpty bool,\n\tindexstack []uint16, pv *typeInfoLoad) {\n\t// Read up fields and store how to access the value.\n\t//\n\t// It uses go's rules for message selectors,\n\t// which say that the field with the shallowest depth is selected.\n\t//\n\t// Note: we consciously use slices, not a map, to simulate a set.\n\t//       Typically, types have < 16 fields,\n\t//       and iteration using equals is faster than maps there\n\tflen := rt.NumField()\n\tif flen > (1<<maxLevelsEmbedding - 1) {\n\t\tpanicv.errorf(\"codec: types with > %v fields are not supported - has %v fields\",\n\t\t\t(1<<maxLevelsEmbedding - 1), flen)\n\t}\n\t// pv.sfis = make([]structFieldInfo, flen)\nLOOP:\n\tfor j, jlen := uint16(0), uint16(flen); j < jlen; j++ {\n\t\tf := rt.Field(int(j))\n\t\tfkind := f.Type.Kind()\n\t\t// skip if a func type, or is unexported, or structTag value == \"-\"\n\t\tswitch fkind {\n\t\tcase reflect.Func, reflect.Complex64, reflect.Complex128, reflect.UnsafePointer:\n\t\t\tcontinue LOOP\n\t\t}\n\n\t\tisUnexported := f.PkgPath != \"\"\n\t\tif isUnexported && !f.Anonymous {\n\t\t\tcontinue\n\t\t}\n\t\tstag := x.structTag(f.Tag)\n\t\tif stag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar si structFieldInfo\n\t\tvar parsed bool\n\t\t// if anonymous and no struct tag (or it's blank),\n\t\t// and a struct (or pointer to struct), inline it.\n\t\tif f.Anonymous && fkind != reflect.Interface {\n\t\t\t// ^^ redundant but ok: per go spec, an embedded pointer type cannot be to an interface\n\t\t\tft := f.Type\n\t\t\tisPtr := ft.Kind() == reflect.Ptr\n\t\t\tfor ft.Kind() == reflect.Ptr {\n\t\t\t\tft = ft.Elem()\n\t\t\t}\n\t\t\tisStruct := ft.Kind() == reflect.Struct\n\n\t\t\t// Ignore embedded fields of unexported non-struct types.\n\t\t\t// Also, from go1.10, ignore pointers to unexported struct types\n\t\t\t// because unmarshal cannot assign a new struct to an unexported field.\n\t\t\t// See https://golang.org/issue/21357\n\t\t\tif (isUnexported && !isStruct) || (!allowSetUnexportedEmbeddedPtr && isUnexported && isPtr) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdoInline := stag == \"\"\n\t\t\tif !doInline {\n\t\t\t\tsi.parseTag(stag)\n\t\t\t\tparsed = true\n\t\t\t\tdoInline = si.encName == \"\"\n\t\t\t\t// doInline = si.isZero()\n\t\t\t}\n\t\t\tif doInline && isStruct {\n\t\t\t\t// if etypes contains this, don't call rget again (as fields are already seen here)\n\t\t\t\tftid := rt2id(ft)\n\t\t\t\t// We cannot recurse forever, but we need to track other field depths.\n\t\t\t\t// So - we break if we see a type twice (not the first time).\n\t\t\t\t// This should be sufficient to handle an embedded type that refers to its\n\t\t\t\t// owning type, which then refers to its embedded type.\n\t\t\t\tprocessIt := true\n\t\t\t\tnumk := 0\n\t\t\t\tfor _, k := range pv.etypes {\n\t\t\t\t\tif k == ftid {\n\t\t\t\t\t\tnumk++\n\t\t\t\t\t\tif numk == rgetMaxRecursion {\n\t\t\t\t\t\t\tprocessIt = false\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif processIt {\n\t\t\t\t\tpv.etypes = append(pv.etypes, ftid)\n\t\t\t\t\tindexstack2 := make([]uint16, len(indexstack)+1)\n\t\t\t\t\tcopy(indexstack2, indexstack)\n\t\t\t\t\tindexstack2[len(indexstack)] = j\n\t\t\t\t\t// indexstack2 := append(append(make([]int, 0, len(indexstack)+4), indexstack...), j)\n\t\t\t\t\tx.rget(ft, ftid, omitEmpty, indexstack2, pv)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// after the anonymous dance: if an unexported field, skip\n\t\tif isUnexported {\n\t\t\tcontinue\n\t\t}\n\n\t\tif f.Name == \"\" {\n\t\t\tpanic(errNoFieldNameToStructFieldInfo)\n\t\t}\n\n\t\t// pv.fNames = append(pv.fNames, f.Name)\n\t\t// if si.encName == \"\" {\n\n\t\tif !parsed {\n\t\t\tsi.encName = f.Name\n\t\t\tsi.parseTag(stag)\n\t\t\tparsed = true\n\t\t} else if si.encName == \"\" {\n\t\t\tsi.encName = f.Name\n\t\t}\n\t\tsi.encNameAsciiAlphaNum = true\n\t\tfor i := len(si.encName) - 1; i >= 0; i-- { // bounds-check elimination\n\t\t\tb := si.encName[i]\n\t\t\tif (b >= '0' && b <= '9') || (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsi.encNameAsciiAlphaNum = false\n\t\t\tbreak\n\t\t}\n\t\tsi.fieldName = f.Name\n\t\tsi.flagSet(structFieldInfoFlagReady)\n\n\t\t// pv.encNames = append(pv.encNames, si.encName)\n\n\t\t// si.ikind = int(f.Type.Kind())\n\t\tif len(indexstack) > maxLevelsEmbedding-1 {\n\t\t\tpanicv.errorf(\"codec: only supports up to %v depth of embedding - type has %v depth\",\n\t\t\t\tmaxLevelsEmbedding-1, len(indexstack))\n\t\t}\n\t\tsi.nis = uint8(len(indexstack)) + 1\n\t\tcopy(si.is[:], indexstack)\n\t\tsi.is[len(indexstack)] = j\n\n\t\tif omitEmpty {\n\t\t\tsi.flagSet(structFieldInfoFlagOmitEmpty)\n\t\t}\n\t\tpv.sfis = append(pv.sfis, si)\n\t}\n}\n\nfunc tiSep(name string) uint8 {\n\t// (xn[0]%64) // (between 192-255 - outside ascii BMP)\n\t// return 0xfe - (name[0] & 63)\n\t// return 0xfe - (name[0] & 63) - uint8(len(name))\n\t// return 0xfe - (name[0] & 63) - uint8(len(name)&63)\n\t// return ((0xfe - (name[0] & 63)) & 0xf8) | (uint8(len(name) & 0x07))\n\treturn 0xfe - (name[0] & 63) - uint8(len(name)&63)\n}\n\nfunc tiSep2(name []byte) uint8 {\n\treturn 0xfe - (name[0] & 63) - uint8(len(name)&63)\n}\n\n// resolves the struct field info got from a call to rget.\n// Returns a trimmed, unsorted and sorted []*structFieldInfo.\nfunc rgetResolveSFI(rt reflect.Type, x []structFieldInfo, pv *typeInfoLoadArray) (\n\ty, z []*structFieldInfo, ss []byte, anyOmitEmpty bool) {\n\tsa := pv.sfiidx[:0]\n\tsn := pv.b[:]\n\tn := len(x)\n\n\tvar xn string\n\tvar ui uint16\n\tvar sep byte\n\n\tfor i := range x {\n\t\tui = uint16(i)\n\t\txn = x[i].encName // fieldName or encName? use encName for now.\n\t\tif len(xn)+2 > cap(sn) {\n\t\t\tsn = make([]byte, len(xn)+2)\n\t\t} else {\n\t\t\tsn = sn[:len(xn)+2]\n\t\t}\n\t\t// use a custom sep, so that misses are less frequent,\n\t\t// since the sep (first char in search) is as unique as first char in field name.\n\t\tsep = tiSep(xn)\n\t\tsn[0], sn[len(sn)-1] = sep, 0xff\n\t\tcopy(sn[1:], xn)\n\t\tj := bytes.Index(sa, sn)\n\t\tif j == -1 {\n\t\t\tsa = append(sa, sep)\n\t\t\tsa = append(sa, xn...)\n\t\t\tsa = append(sa, 0xff, byte(ui>>8), byte(ui))\n\t\t} else {\n\t\t\tindex := uint16(sa[j+len(sn)+1]) | uint16(sa[j+len(sn)])<<8\n\t\t\t// one of them must be cleared (reset to nil),\n\t\t\t// and the index updated appropriately\n\t\t\ti2clear := ui                // index to be cleared\n\t\t\tif x[i].nis < x[index].nis { // this one is shallower\n\t\t\t\t// update the index to point to this later one.\n\t\t\t\tsa[j+len(sn)], sa[j+len(sn)+1] = byte(ui>>8), byte(ui)\n\t\t\t\t// clear the earlier one, as this later one is shallower.\n\t\t\t\ti2clear = index\n\t\t\t}\n\t\t\tif x[i2clear].ready() {\n\t\t\t\tx[i2clear].flagClr(structFieldInfoFlagReady)\n\t\t\t\tn--\n\t\t\t}\n\t\t}\n\t}\n\n\tvar w []structFieldInfo\n\tsharingArray := len(x) <= typeInfoLoadArraySfisLen // sharing array with typeInfoLoadArray\n\tif sharingArray {\n\t\tw = make([]structFieldInfo, n)\n\t}\n\n\t// remove all the nils (non-ready)\n\ty = make([]*structFieldInfo, n)\n\tn = 0\n\tvar sslen int\n\tfor i := range x {\n\t\tif !x[i].ready() {\n\t\t\tcontinue\n\t\t}\n\t\tif !anyOmitEmpty && x[i].omitEmpty() {\n\t\t\tanyOmitEmpty = true\n\t\t}\n\t\tif sharingArray {\n\t\t\tw[n] = x[i]\n\t\t\ty[n] = &w[n]\n\t\t} else {\n\t\t\ty[n] = &x[i]\n\t\t}\n\t\tsslen = sslen + len(x[i].encName) + 4\n\t\tn++\n\t}\n\tif n != len(y) {\n\t\tpanicv.errorf(\"failure reading struct %v - expecting %d of %d valid fields, got %d\",\n\t\t\trt, len(y), len(x), n)\n\t}\n\n\tz = make([]*structFieldInfo, len(y))\n\tcopy(z, y)\n\tsort.Sort(sfiSortedByEncName(z))\n\n\tsharingArray = len(sa) <= typeInfoLoadArraySfiidxLen\n\tif sharingArray {\n\t\tss = make([]byte, 0, sslen)\n\t} else {\n\t\tss = sa[:0] // reuse the newly made sa array if necessary\n\t}\n\tfor i := range z {\n\t\txn = z[i].encName\n\t\tsep = tiSep(xn)\n\t\tui = uint16(i)\n\t\tss = append(ss, sep)\n\t\tss = append(ss, xn...)\n\t\tss = append(ss, 0xff, byte(ui>>8), byte(ui))\n\t}\n\treturn\n}\n\nfunc implIntf(rt, iTyp reflect.Type) (base bool, indir bool) {\n\treturn rt.Implements(iTyp), reflect.PtrTo(rt).Implements(iTyp)\n}\n\n// isEmptyStruct is only called from isEmptyValue, and checks if a struct is empty:\n//    - does it implement IsZero() bool\n//    - is it comparable, and can i compare directly using ==\n//    - if checkStruct, then walk through the encodable fields\n//      and check if they are empty or not.\nfunc isEmptyStruct(v reflect.Value, tinfos *TypeInfos, deref, checkStruct bool) bool {\n\t// v is a struct kind - no need to check again.\n\t// We only check isZero on a struct kind, to reduce the amount of times\n\t// that we lookup the rtid and typeInfo for each type as we walk the tree.\n\n\tvt := v.Type()\n\trtid := rt2id(vt)\n\tif tinfos == nil {\n\t\ttinfos = defTypeInfos\n\t}\n\tti := tinfos.get(rtid, vt)\n\tif ti.rtid == timeTypId {\n\t\treturn rv2i(v).(time.Time).IsZero()\n\t}\n\tif ti.isFlag(typeInfoFlagIsZeroerPtr) && v.CanAddr() {\n\t\treturn rv2i(v.Addr()).(isZeroer).IsZero()\n\t}\n\tif ti.isFlag(typeInfoFlagIsZeroer) {\n\t\treturn rv2i(v).(isZeroer).IsZero()\n\t}\n\tif ti.isFlag(typeInfoFlagComparable) {\n\t\treturn rv2i(v) == rv2i(reflect.Zero(vt))\n\t}\n\tif !checkStruct {\n\t\treturn false\n\t}\n\t// We only care about what we can encode/decode,\n\t// so that is what we use to check omitEmpty.\n\tfor _, si := range ti.sfiSrc {\n\t\tsfv, valid := si.field(v, false)\n\t\tif valid && !isEmptyValue(sfv, tinfos, deref, checkStruct) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// func roundFloat(x float64) float64 {\n// \tt := math.Trunc(x)\n// \tif math.Abs(x-t) >= 0.5 {\n// \t\treturn t + math.Copysign(1, x)\n// \t}\n// \treturn t\n// }\n\nfunc panicToErr(h errDecorator, err *error) {\n\t// Note: This method MUST be called directly from defer i.e. defer panicToErr ...\n\t// else it seems the recover is not fully handled\n\tif recoverPanicToErr {\n\t\tif x := recover(); x != nil {\n\t\t\t// fmt.Printf(\"panic'ing with: %v\\n\", x)\n\t\t\t// debug.PrintStack()\n\t\t\tpanicValToErr(h, x, err)\n\t\t}\n\t}\n}\n\nfunc panicValToErr(h errDecorator, v interface{}, err *error) {\n\tswitch xerr := v.(type) {\n\tcase nil:\n\tcase error:\n\t\tswitch xerr {\n\t\tcase nil:\n\t\tcase io.EOF, io.ErrUnexpectedEOF, errEncoderNotInitialized, errDecoderNotInitialized:\n\t\t\t// treat as special (bubble up)\n\t\t\t*err = xerr\n\t\tdefault:\n\t\t\th.wrapErr(xerr, err)\n\t\t}\n\tcase string:\n\t\tif xerr != \"\" {\n\t\t\th.wrapErr(xerr, err)\n\t\t}\n\tcase fmt.Stringer:\n\t\tif xerr != nil {\n\t\t\th.wrapErr(xerr, err)\n\t\t}\n\tdefault:\n\t\th.wrapErr(v, err)\n\t}\n}\n\nfunc isImmutableKind(k reflect.Kind) (v bool) {\n\t// return immutableKindsSet[k]\n\t// since we know reflect.Kind is in range 0..31, then use the k%32 == k constraint\n\treturn immutableKindsSet[k%reflect.Kind(len(immutableKindsSet))] // bounds-check-elimination\n}\n\n// ----\n\ntype codecFnInfo struct {\n\tti    *typeInfo\n\txfFn  Ext\n\txfTag uint64\n\tseq   seqType\n\taddrD bool\n\taddrF bool // if addrD, this says whether decode function can take a value or a ptr\n\taddrE bool\n}\n\n// codecFn encapsulates the captured variables and the encode function.\n// This way, we only do some calculations one times, and pass to the\n// code block that should be called (encapsulated in a function)\n// instead of executing the checks every time.\ntype codecFn struct {\n\ti  codecFnInfo\n\tfe func(*Encoder, *codecFnInfo, reflect.Value)\n\tfd func(*Decoder, *codecFnInfo, reflect.Value)\n\t_  [1]uint64 // padding (cache-aligned)\n}\n\ntype codecRtidFn struct {\n\trtid uintptr\n\tfn   *codecFn\n}\n\n// ----\n\n// these \"checkOverflow\" functions must be inlinable, and not call anybody.\n// Overflow means that the value cannot be represented without wrapping/overflow.\n// Overflow=false does not mean that the value can be represented without losing precision\n// (especially for floating point).\n\ntype checkOverflow struct{}\n\n// func (checkOverflow) Float16(f float64) (overflow bool) {\n// \tpanicv.errorf(\"unimplemented\")\n// \tif f < 0 {\n// \t\tf = -f\n// \t}\n// \treturn math.MaxFloat32 < f && f <= math.MaxFloat64\n// }\n\nfunc (checkOverflow) Float32(v float64) (overflow bool) {\n\tif v < 0 {\n\t\tv = -v\n\t}\n\treturn math.MaxFloat32 < v && v <= math.MaxFloat64\n}\nfunc (checkOverflow) Uint(v uint64, bitsize uint8) (overflow bool) {\n\tif bitsize == 0 || bitsize >= 64 || v == 0 {\n\t\treturn\n\t}\n\tif trunc := (v << (64 - bitsize)) >> (64 - bitsize); v != trunc {\n\t\toverflow = true\n\t}\n\treturn\n}\nfunc (checkOverflow) Int(v int64, bitsize uint8) (overflow bool) {\n\tif bitsize == 0 || bitsize >= 64 || v == 0 {\n\t\treturn\n\t}\n\tif trunc := (v << (64 - bitsize)) >> (64 - bitsize); v != trunc {\n\t\toverflow = true\n\t}\n\treturn\n}\nfunc (checkOverflow) SignedInt(v uint64) (overflow bool) {\n\t//e.g. -127 to 128 for int8\n\tpos := (v >> 63) == 0\n\tui2 := v & 0x7fffffffffffffff\n\tif pos {\n\t\tif ui2 > math.MaxInt64 {\n\t\t\toverflow = true\n\t\t}\n\t} else {\n\t\tif ui2 > math.MaxInt64-1 {\n\t\t\toverflow = true\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x checkOverflow) Float32V(v float64) float64 {\n\tif x.Float32(v) {\n\t\tpanicv.errorf(\"float32 overflow: %v\", v)\n\t}\n\treturn v\n}\nfunc (x checkOverflow) UintV(v uint64, bitsize uint8) uint64 {\n\tif x.Uint(v, bitsize) {\n\t\tpanicv.errorf(\"uint64 overflow: %v\", v)\n\t}\n\treturn v\n}\nfunc (x checkOverflow) IntV(v int64, bitsize uint8) int64 {\n\tif x.Int(v, bitsize) {\n\t\tpanicv.errorf(\"int64 overflow: %v\", v)\n\t}\n\treturn v\n}\nfunc (x checkOverflow) SignedIntV(v uint64) int64 {\n\tif x.SignedInt(v) {\n\t\tpanicv.errorf(\"uint64 to int64 overflow: %v\", v)\n\t}\n\treturn int64(v)\n}\n\n// ------------------ FLOATING POINT -----------------\n\nfunc isNaN64(f float64) bool { return f != f }\nfunc isNaN32(f float32) bool { return f != f }\nfunc abs32(f float32) float32 {\n\treturn math.Float32frombits(math.Float32bits(f) &^ (1 << 31))\n}\n\n// Per go spec, floats are represented in memory as\n// IEEE single or double precision floating point values.\n//\n// We also looked at the source for stdlib math/modf.go,\n// reviewed https://github.com/chewxy/math32\n// and read wikipedia documents describing the formats.\n//\n// It became clear that we could easily look at the bits to determine\n// whether any fraction exists.\n//\n// This is all we need for now.\n\nfunc noFrac64(f float64) (v bool) {\n\tx := math.Float64bits(f)\n\te := uint64(x>>52)&0x7FF - 1023 // uint(x>>shift)&mask - bias\n\t// clear top 12+e bits, the integer part; if the rest is 0, then no fraction.\n\tif e < 52 {\n\t\t// return x&((1<<64-1)>>(12+e)) == 0\n\t\treturn x<<(12+e) == 0\n\t}\n\treturn\n}\nfunc noFrac32(f float32) (v bool) {\n\tx := math.Float32bits(f)\n\te := uint32(x>>23)&0xFF - 127 // uint(x>>shift)&mask - bias\n\t// clear top 9+e bits, the integer part; if the rest is 0, then no fraction.\n\tif e < 23 {\n\t\t// return x&((1<<32-1)>>(9+e)) == 0\n\t\treturn x<<(9+e) == 0\n\t}\n\treturn\n}\n\n// func noFrac(f float64) bool {\n// \t_, frac := math.Modf(float64(f))\n// \treturn frac == 0\n// }\n\n// -----------------------\n\ntype ioFlusher interface {\n\tFlush() error\n}\n\ntype ioPeeker interface {\n\tPeek(int) ([]byte, error)\n}\n\ntype ioBuffered interface {\n\tBuffered() int\n}\n\n// -----------------------\n\ntype sfiRv struct {\n\tv *structFieldInfo\n\tr reflect.Value\n}\n\n// -----------------\n\ntype set []uintptr\n\nfunc (s *set) add(v uintptr) (exists bool) {\n\t// e.ci is always nil, or len >= 1\n\tx := *s\n\t// defer func() { xdebugf(\"set.add: len: %d\", len(x)) }()\n\n\tif x == nil {\n\t\tx = make([]uintptr, 1, 8)\n\t\tx[0] = v\n\t\t*s = x\n\t\treturn\n\t}\n\t// typically, length will be 1. make this perform.\n\tif len(x) == 1 {\n\t\tif j := x[0]; j == 0 {\n\t\t\tx[0] = v\n\t\t} else if j == v {\n\t\t\texists = true\n\t\t} else {\n\t\t\tx = append(x, v)\n\t\t\t*s = x\n\t\t}\n\t\treturn\n\t}\n\t// check if it exists\n\tfor _, j := range x {\n\t\tif j == v {\n\t\t\texists = true\n\t\t\treturn\n\t\t}\n\t}\n\t// try to replace a \"deleted\" slot\n\tfor i, j := range x {\n\t\tif j == 0 {\n\t\t\tx[i] = v\n\t\t\treturn\n\t\t}\n\t}\n\t// if unable to replace deleted slot, just append it.\n\tx = append(x, v)\n\t*s = x\n\treturn\n}\n\nfunc (s *set) remove(v uintptr) (exists bool) {\n\tx := *s\n\tif len(x) == 0 {\n\t\treturn\n\t}\n\tif len(x) == 1 {\n\t\tif x[0] == v {\n\t\t\tx[0] = 0\n\t\t}\n\t\treturn\n\t}\n\tfor i, j := range x {\n\t\tif j == v {\n\t\t\texists = true\n\t\t\tx[i] = 0 // set it to 0, as way to delete it.\n\t\t\t// copy(x[i:], x[i+1:])\n\t\t\t// x = x[:len(x)-1]\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// ------\n\n// bitset types are better than [256]bool, because they permit the whole\n// bitset array being on a single cache line and use less memory.\n//\n// Also, since pos is a byte (0-255), there's no bounds checks on indexing (cheap).\n//\n// We previously had bitset128 [16]byte, and bitset32 [4]byte, but those introduces\n// bounds checking, so we discarded them, and everyone uses bitset256.\n//\n// given x > 0 and n > 0 and x is exactly 2^n, then pos/x === pos>>n AND pos%x === pos&(x-1).\n// consequently, pos/32 === pos>>5, pos/16 === pos>>4, pos/8 === pos>>3, pos%8 == pos&7\n\ntype bitset256 [32]byte\n\nfunc (x *bitset256) isset(pos byte) bool {\n\treturn x[pos>>3]&(1<<(pos&7)) != 0\n}\n\n// func (x *bitset256) issetv(pos byte) byte {\n// \treturn x[pos>>3] & (1 << (pos & 7))\n// }\n\nfunc (x *bitset256) set(pos byte) {\n\tx[pos>>3] |= (1 << (pos & 7))\n}\n\n// func (x *bitset256) unset(pos byte) {\n// \tx[pos>>3] &^= (1 << (pos & 7))\n// }\n\n// type bit2set256 [64]byte\n\n// func (x *bit2set256) set(pos byte, v1, v2 bool) {\n// \tvar pos2 uint8 = (pos & 3) << 1 // returning 0, 2, 4 or 6\n// \tif v1 {\n// \t\tx[pos>>2] |= 1 << (pos2 + 1)\n// \t}\n// \tif v2 {\n// \t\tx[pos>>2] |= 1 << pos2\n// \t}\n// }\n// func (x *bit2set256) get(pos byte) uint8 {\n// \tvar pos2 uint8 = (pos & 3) << 1     // returning 0, 2, 4 or 6\n// \treturn x[pos>>2] << (6 - pos2) >> 6 // 11000000 -> 00000011\n// }\n\n// ------------\n\ntype pooler struct {\n\t// function-scoped pooled resources\n\ttiload                                      sync.Pool // for type info loading\n\tsfiRv8, sfiRv16, sfiRv32, sfiRv64, sfiRv128 sync.Pool // for struct encoding\n\n\t// lifetime-scoped pooled resources\n\t// dn                                 sync.Pool // for decNaked\n\tbuf1k, buf2k, buf4k, buf8k, buf16k, buf32k, buf64k sync.Pool // for [N]byte\n}\n\nfunc (p *pooler) init() {\n\tp.tiload.New = func() interface{} { return new(typeInfoLoadArray) }\n\n\tp.sfiRv8.New = func() interface{} { return new([8]sfiRv) }\n\tp.sfiRv16.New = func() interface{} { return new([16]sfiRv) }\n\tp.sfiRv32.New = func() interface{} { return new([32]sfiRv) }\n\tp.sfiRv64.New = func() interface{} { return new([64]sfiRv) }\n\tp.sfiRv128.New = func() interface{} { return new([128]sfiRv) }\n\n\t// p.dn.New = func() interface{} { x := new(decNaked); x.init(); return x }\n\n\tp.buf1k.New = func() interface{} { return new([1 * 1024]byte) }\n\tp.buf2k.New = func() interface{} { return new([2 * 1024]byte) }\n\tp.buf4k.New = func() interface{} { return new([4 * 1024]byte) }\n\tp.buf8k.New = func() interface{} { return new([8 * 1024]byte) }\n\tp.buf16k.New = func() interface{} { return new([16 * 1024]byte) }\n\tp.buf32k.New = func() interface{} { return new([32 * 1024]byte) }\n\tp.buf64k.New = func() interface{} { return new([64 * 1024]byte) }\n\n}\n\n// func (p *pooler) sfiRv8() (sp *sync.Pool, v interface{}) {\n// \treturn &p.strRv8, p.strRv8.Get()\n// }\n// func (p *pooler) sfiRv16() (sp *sync.Pool, v interface{}) {\n// \treturn &p.strRv16, p.strRv16.Get()\n// }\n// func (p *pooler) sfiRv32() (sp *sync.Pool, v interface{}) {\n// \treturn &p.strRv32, p.strRv32.Get()\n// }\n// func (p *pooler) sfiRv64() (sp *sync.Pool, v interface{}) {\n// \treturn &p.strRv64, p.strRv64.Get()\n// }\n// func (p *pooler) sfiRv128() (sp *sync.Pool, v interface{}) {\n// \treturn &p.strRv128, p.strRv128.Get()\n// }\n\n// func (p *pooler) bytes1k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf1k, p.buf1k.Get()\n// }\n// func (p *pooler) bytes2k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf2k, p.buf2k.Get()\n// }\n// func (p *pooler) bytes4k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf4k, p.buf4k.Get()\n// }\n// func (p *pooler) bytes8k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf8k, p.buf8k.Get()\n// }\n// func (p *pooler) bytes16k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf16k, p.buf16k.Get()\n// }\n// func (p *pooler) bytes32k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf32k, p.buf32k.Get()\n// }\n// func (p *pooler) bytes64k() (sp *sync.Pool, v interface{}) {\n// \treturn &p.buf64k, p.buf64k.Get()\n// }\n\n// func (p *pooler) tiLoad() (sp *sync.Pool, v interface{}) {\n// \treturn &p.tiload, p.tiload.Get()\n// }\n\n// func (p *pooler) decNaked() (sp *sync.Pool, v interface{}) {\n// \treturn &p.dn, p.dn.Get()\n// }\n\n// func (p *pooler) decNaked() (v *decNaked, f func(*decNaked) ) {\n// \tsp := &(p.dn)\n// \tvv := sp.Get()\n// \treturn vv.(*decNaked), func(x *decNaked) { sp.Put(vv) }\n// }\n// func (p *pooler) decNakedGet() (v interface{}) {\n// \treturn p.dn.Get()\n// }\n// func (p *pooler) tiLoadGet() (v interface{}) {\n// \treturn p.tiload.Get()\n// }\n// func (p *pooler) decNakedPut(v interface{}) {\n// \tp.dn.Put(v)\n// }\n// func (p *pooler) tiLoadPut(v interface{}) {\n// \tp.tiload.Put(v)\n// }\n\n// ----------------------------------------------------\n\ntype panicHdl struct{}\n\nfunc (panicHdl) errorv(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc (panicHdl) errorstr(message string) {\n\tif message != \"\" {\n\t\tpanic(message)\n\t}\n}\n\nfunc (panicHdl) errorf(format string, params ...interface{}) {\n\tif format == \"\" {\n\t} else if len(params) == 0 {\n\t\tpanic(format)\n\t} else {\n\t\tpanic(fmt.Sprintf(format, params...))\n\t}\n}\n\n// ----------------------------------------------------\n\ntype errDecorator interface {\n\twrapErr(in interface{}, out *error)\n}\n\ntype errDecoratorDef struct{}\n\nfunc (errDecoratorDef) wrapErr(v interface{}, e *error) { *e = fmt.Errorf(\"%v\", v) }\n\n// ----------------------------------------------------\n\ntype must struct{}\n\nfunc (must) String(s string, err error) string {\n\tif err != nil {\n\t\tpanicv.errorv(err)\n\t}\n\treturn s\n}\nfunc (must) Int(s int64, err error) int64 {\n\tif err != nil {\n\t\tpanicv.errorv(err)\n\t}\n\treturn s\n}\nfunc (must) Uint(s uint64, err error) uint64 {\n\tif err != nil {\n\t\tpanicv.errorv(err)\n\t}\n\treturn s\n}\nfunc (must) Float(s float64, err error) float64 {\n\tif err != nil {\n\t\tpanicv.errorv(err)\n\t}\n\treturn s\n}\n\n// -------------------\n\ntype bytesBufPooler struct {\n\tpool    *sync.Pool\n\tpoolbuf interface{}\n}\n\nfunc (z *bytesBufPooler) end() {\n\tif z.pool != nil {\n\t\tz.pool.Put(z.poolbuf)\n\t\tz.pool, z.poolbuf = nil, nil\n\t}\n}\n\nfunc (z *bytesBufPooler) get(bufsize int) (buf []byte) {\n\t// ensure an end is called first (if necessary)\n\tif z.pool != nil {\n\t\tz.pool.Put(z.poolbuf)\n\t\tz.pool, z.poolbuf = nil, nil\n\t}\n\n\t// // Try to use binary search.\n\t// // This is not optimal, as most folks select 1k or 2k buffers\n\t// // so a linear search is better (sequence of if/else blocks)\n\t// if bufsize < 1 {\n\t// \tbufsize = 0\n\t// } else {\n\t// \tbufsize--\n\t// \tbufsize /= 1024\n\t// }\n\t// switch bufsize {\n\t// case 0:\n\t// \tz.pool, z.poolbuf = pool.bytes1k()\n\t// \tbuf = z.poolbuf.(*[1 * 1024]byte)[:]\n\t// case 1:\n\t// \tz.pool, z.poolbuf = pool.bytes2k()\n\t// \tbuf = z.poolbuf.(*[2 * 1024]byte)[:]\n\t// case 2, 3:\n\t// \tz.pool, z.poolbuf = pool.bytes4k()\n\t// \tbuf = z.poolbuf.(*[4 * 1024]byte)[:]\n\t// case 4, 5, 6, 7:\n\t// \tz.pool, z.poolbuf = pool.bytes8k()\n\t// \tbuf = z.poolbuf.(*[8 * 1024]byte)[:]\n\t// case 8, 9, 10, 11, 12, 13, 14, 15:\n\t// \tz.pool, z.poolbuf = pool.bytes16k()\n\t// \tbuf = z.poolbuf.(*[16 * 1024]byte)[:]\n\t// case 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31:\n\t// \tz.pool, z.poolbuf = pool.bytes32k()\n\t// \tbuf = z.poolbuf.(*[32 * 1024]byte)[:]\n\t// default:\n\t// \tz.pool, z.poolbuf = pool.bytes64k()\n\t// \tbuf = z.poolbuf.(*[64 * 1024]byte)[:]\n\t// }\n\t// return\n\n\tif bufsize <= 1*1024 {\n\t\tz.pool, z.poolbuf = &pool.buf1k, pool.buf1k.Get() // pool.bytes1k()\n\t\tbuf = z.poolbuf.(*[1 * 1024]byte)[:]\n\t} else if bufsize <= 2*1024 {\n\t\tz.pool, z.poolbuf = &pool.buf2k, pool.buf2k.Get() // pool.bytes2k()\n\t\tbuf = z.poolbuf.(*[2 * 1024]byte)[:]\n\t} else if bufsize <= 4*1024 {\n\t\tz.pool, z.poolbuf = &pool.buf4k, pool.buf4k.Get() // pool.bytes4k()\n\t\tbuf = z.poolbuf.(*[4 * 1024]byte)[:]\n\t} else if bufsize <= 8*1024 {\n\t\tz.pool, z.poolbuf = &pool.buf8k, pool.buf8k.Get() // pool.bytes8k()\n\t\tbuf = z.poolbuf.(*[8 * 1024]byte)[:]\n\t} else if bufsize <= 16*1024 {\n\t\tz.pool, z.poolbuf = &pool.buf16k, pool.buf16k.Get() // pool.bytes16k()\n\t\tbuf = z.poolbuf.(*[16 * 1024]byte)[:]\n\t} else if bufsize <= 32*1024 {\n\t\tz.pool, z.poolbuf = &pool.buf32k, pool.buf32k.Get() // pool.bytes32k()\n\t\tbuf = z.poolbuf.(*[32 * 1024]byte)[:]\n\t} else {\n\t\tz.pool, z.poolbuf = &pool.buf64k, pool.buf64k.Get() // pool.bytes64k()\n\t\tbuf = z.poolbuf.(*[64 * 1024]byte)[:]\n\t}\n\treturn\n}\n\n// ----------------\n\ntype sfiRvPooler struct {\n\tpool  *sync.Pool\n\tpoolv interface{}\n}\n\nfunc (z *sfiRvPooler) end() {\n\tif z.pool != nil {\n\t\tz.pool.Put(z.poolv)\n\t\tz.pool, z.poolv = nil, nil\n\t}\n}\n\nfunc (z *sfiRvPooler) get(newlen int) (fkvs []sfiRv) {\n\tif newlen < 0 { // bounds-check-elimination\n\t\t// cannot happen // here for bounds-check-elimination\n\t} else if newlen <= 8 {\n\t\tz.pool, z.poolv = &pool.sfiRv8, pool.sfiRv8.Get() // pool.sfiRv8()\n\t\tfkvs = z.poolv.(*[8]sfiRv)[:newlen]\n\t} else if newlen <= 16 {\n\t\tz.pool, z.poolv = &pool.sfiRv16, pool.sfiRv16.Get() // pool.sfiRv16()\n\t\tfkvs = z.poolv.(*[16]sfiRv)[:newlen]\n\t} else if newlen <= 32 {\n\t\tz.pool, z.poolv = &pool.sfiRv32, pool.sfiRv32.Get() // pool.sfiRv32()\n\t\tfkvs = z.poolv.(*[32]sfiRv)[:newlen]\n\t} else if newlen <= 64 {\n\t\tz.pool, z.poolv = &pool.sfiRv64, pool.sfiRv64.Get() // pool.sfiRv64()\n\t\tfkvs = z.poolv.(*[64]sfiRv)[:newlen]\n\t} else if newlen <= 128 {\n\t\tz.pool, z.poolv = &pool.sfiRv128, pool.sfiRv128.Get() // pool.sfiRv128()\n\t\tfkvs = z.poolv.(*[128]sfiRv)[:newlen]\n\t} else {\n\t\tfkvs = make([]sfiRv, newlen)\n\t}\n\treturn\n}\n\n// xdebugf printf. the message in red on the terminal.\n// Use it in place of fmt.Printf (which it calls internally)\nfunc xdebugf(pattern string, args ...interface{}) {\n\tvar delim string\n\tif len(pattern) > 0 && pattern[len(pattern)-1] != '\\n' {\n\t\tdelim = \"\\n\"\n\t}\n\tfmt.Printf(\"\\033[1;31m\"+pattern+delim+\"\\033[0m\", args...)\n}\n\n// xdebug2f printf. the message in blue on the terminal.\n// Use it in place of fmt.Printf (which it calls internally)\nfunc xdebug2f(pattern string, args ...interface{}) {\n\tvar delim string\n\tif len(pattern) > 0 && pattern[len(pattern)-1] != '\\n' {\n\t\tdelim = \"\\n\"\n\t}\n\tfmt.Printf(\"\\033[1;34m\"+pattern+delim+\"\\033[0m\", args...)\n}\n\n// func isImmutableKind(k reflect.Kind) (v bool) {\n// \treturn false ||\n// \t\tk == reflect.Int ||\n// \t\tk == reflect.Int8 ||\n// \t\tk == reflect.Int16 ||\n// \t\tk == reflect.Int32 ||\n// \t\tk == reflect.Int64 ||\n// \t\tk == reflect.Uint ||\n// \t\tk == reflect.Uint8 ||\n// \t\tk == reflect.Uint16 ||\n// \t\tk == reflect.Uint32 ||\n// \t\tk == reflect.Uint64 ||\n// \t\tk == reflect.Uintptr ||\n// \t\tk == reflect.Float32 ||\n// \t\tk == reflect.Float64 ||\n// \t\tk == reflect.Bool ||\n// \t\tk == reflect.String\n// }\n\n// func timeLocUTCName(tzint int16) string {\n// \tif tzint == 0 {\n// \t\treturn \"UTC\"\n// \t}\n// \tvar tzname = []byte(\"UTC+00:00\")\n// \t//tzname := fmt.Sprintf(\"UTC%s%02d:%02d\", tzsign, tz/60, tz%60) //perf issue using Sprintf.. inline below.\n// \t//tzhr, tzmin := tz/60, tz%60 //faster if u convert to int first\n// \tvar tzhr, tzmin int16\n// \tif tzint < 0 {\n// \t\ttzname[3] = '-' // (TODO: verify. this works here)\n// \t\ttzhr, tzmin = -tzint/60, (-tzint)%60\n// \t} else {\n// \t\ttzhr, tzmin = tzint/60, tzint%60\n// \t}\n// \ttzname[4] = timeDigits[tzhr/10]\n// \ttzname[5] = timeDigits[tzhr%10]\n// \ttzname[7] = timeDigits[tzmin/10]\n// \ttzname[8] = timeDigits[tzmin%10]\n// \treturn string(tzname)\n// \t//return time.FixedZone(string(tzname), int(tzint)*60)\n// }\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/helper_internal.go",
    "content": "// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\n// All non-std package dependencies live in this file,\n// so porting to different environment is easy (just update functions).\n\nfunc pruneSignExt(v []byte, pos bool) (n int) {\n\tif len(v) < 2 {\n\t} else if pos && v[0] == 0 {\n\t\tfor ; v[n] == 0 && n+1 < len(v) && (v[n+1]&(1<<7) == 0); n++ {\n\t\t}\n\t} else if !pos && v[0] == 0xff {\n\t\tfor ; v[n] == 0xff && n+1 < len(v) && (v[n+1]&(1<<7) != 0); n++ {\n\t\t}\n\t}\n\treturn\n}\n\n// validate that this function is correct ...\n// culled from OGRE (Object-Oriented Graphics Rendering Engine)\n// function: halfToFloatI (http://stderr.org/doc/ogre-doc/api/OgreBitwise_8h-source.html)\nfunc halfFloatToFloatBits(yy uint16) (d uint32) {\n\ty := uint32(yy)\n\ts := (y >> 15) & 0x01\n\te := (y >> 10) & 0x1f\n\tm := y & 0x03ff\n\n\tif e == 0 {\n\t\tif m == 0 { // plu or minus 0\n\t\t\treturn s << 31\n\t\t}\n\t\t// Denormalized number -- renormalize it\n\t\tfor (m & 0x00000400) == 0 {\n\t\t\tm <<= 1\n\t\t\te -= 1\n\t\t}\n\t\te += 1\n\t\tconst zz uint32 = 0x0400\n\t\tm &= ^zz\n\t} else if e == 31 {\n\t\tif m == 0 { // Inf\n\t\t\treturn (s << 31) | 0x7f800000\n\t\t}\n\t\treturn (s << 31) | 0x7f800000 | (m << 13) // NaN\n\t}\n\te = e + (127 - 15)\n\tm = m << 13\n\treturn (s << 31) | (e << 23) | m\n}\n\n// GrowCap will return a new capacity for a slice, given the following:\n//   - oldCap: current capacity\n//   - unit: in-memory size of an element\n//   - num: number of elements to add\nfunc growCap(oldCap, unit, num int) (newCap int) {\n\t// appendslice logic (if cap < 1024, *2, else *1.25):\n\t//   leads to many copy calls, especially when copying bytes.\n\t//   bytes.Buffer model (2*cap + n): much better for bytes.\n\t// smarter way is to take the byte-size of the appended element(type) into account\n\n\t// maintain 3 thresholds:\n\t// t1: if cap <= t1, newcap = 2x\n\t// t2: if cap <= t2, newcap = 1.75x\n\t// t3: if cap <= t3, newcap = 1.5x\n\t//     else          newcap = 1.25x\n\t//\n\t// t1, t2, t3 >= 1024 always.\n\t// i.e. if unit size >= 16, then always do 2x or 1.25x (ie t1, t2, t3 are all same)\n\t//\n\t// With this, appending for bytes increase by:\n\t//    100% up to 4K\n\t//     75% up to 8K\n\t//     50% up to 16K\n\t//     25% beyond that\n\n\t// unit can be 0 e.g. for struct{}{}; handle that appropriately\n\tvar t1, t2, t3 int // thresholds\n\tif unit <= 1 {\n\t\tt1, t2, t3 = 4*1024, 8*1024, 16*1024\n\t} else if unit < 16 {\n\t\tt3 = 16 / unit * 1024\n\t\tt1 = t3 * 1 / 4\n\t\tt2 = t3 * 2 / 4\n\t} else {\n\t\tt1, t2, t3 = 1024, 1024, 1024\n\t}\n\n\tvar x int // temporary variable\n\n\t// x is multiplier here: one of 5, 6, 7 or 8; incr of 25%, 50%, 75% or 100% respectively\n\tif oldCap <= t1 { // [0,t1]\n\t\tx = 8\n\t} else if oldCap > t3 { // (t3,infinity]\n\t\tx = 5\n\t} else if oldCap <= t2 { // (t1,t2]\n\t\tx = 7\n\t} else { // (t2,t3]\n\t\tx = 6\n\t}\n\tnewCap = x * oldCap / 4\n\n\tif num > 0 {\n\t\tnewCap += num\n\t}\n\n\t// ensure newCap is a multiple of 64 (if it is > 64) or 16.\n\tif newCap > 64 {\n\t\tif x = newCap % 64; x != 0 {\n\t\t\tx = newCap / 64\n\t\t\tnewCap = 64 * (x + 1)\n\t\t}\n\t} else {\n\t\tif x = newCap % 16; x != 0 {\n\t\t\tx = newCap / 16\n\t\t\tnewCap = 16 * (x + 1)\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/helper_not_unsafe.go",
    "content": "// +build !go1.7 safe appengine\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\nconst safeMode = true\n\n// stringView returns a view of the []byte as a string.\n// In unsafe mode, it doesn't incur allocation and copying caused by conversion.\n// In regular safe mode, it is an allocation and copy.\n//\n// Usage: Always maintain a reference to v while result of this call is in use,\n//        and call keepAlive4BytesView(v) at point where done with view.\nfunc stringView(v []byte) string {\n\treturn string(v)\n}\n\n// bytesView returns a view of the string as a []byte.\n// In unsafe mode, it doesn't incur allocation and copying caused by conversion.\n// In regular safe mode, it is an allocation and copy.\n//\n// Usage: Always maintain a reference to v while result of this call is in use,\n//        and call keepAlive4BytesView(v) at point where done with view.\nfunc bytesView(v string) []byte {\n\treturn []byte(v)\n}\n\nfunc definitelyNil(v interface{}) bool {\n\t// this is a best-effort option.\n\t// We just return false, so we don't unnecessarily incur the cost of reflection this early.\n\treturn false\n}\n\nfunc rv2i(rv reflect.Value) interface{} {\n\treturn rv.Interface()\n}\n\nfunc rt2id(rt reflect.Type) uintptr {\n\treturn reflect.ValueOf(rt).Pointer()\n}\n\n// func rv2rtid(rv reflect.Value) uintptr {\n// \treturn reflect.ValueOf(rv.Type()).Pointer()\n// }\n\nfunc i2rtid(i interface{}) uintptr {\n\treturn reflect.ValueOf(reflect.TypeOf(i)).Pointer()\n}\n\n// --------------------------\n\nfunc isEmptyValue(v reflect.Value, tinfos *TypeInfos, deref, checkStruct bool) bool {\n\tswitch v.Kind() {\n\tcase reflect.Invalid:\n\t\treturn true\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\tif deref {\n\t\t\tif v.IsNil() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn isEmptyValue(v.Elem(), tinfos, deref, checkStruct)\n\t\t}\n\t\treturn v.IsNil()\n\tcase reflect.Struct:\n\t\treturn isEmptyStruct(v, tinfos, deref, checkStruct)\n\t}\n\treturn false\n}\n\n// --------------------------\n// type ptrToRvMap struct{}\n\n// func (*ptrToRvMap) init() {}\n// func (*ptrToRvMap) get(i interface{}) reflect.Value {\n// \treturn reflect.ValueOf(i).Elem()\n// }\n\n// --------------------------\ntype atomicClsErr struct {\n\tv atomic.Value\n}\n\nfunc (x *atomicClsErr) load() (e clsErr) {\n\tif i := x.v.Load(); i != nil {\n\t\te = i.(clsErr)\n\t}\n\treturn\n}\n\nfunc (x *atomicClsErr) store(p clsErr) {\n\tx.v.Store(p)\n}\n\n// --------------------------\ntype atomicTypeInfoSlice struct { // expected to be 2 words\n\tv atomic.Value\n}\n\nfunc (x *atomicTypeInfoSlice) load() (e []rtid2ti) {\n\tif i := x.v.Load(); i != nil {\n\t\te = i.([]rtid2ti)\n\t}\n\treturn\n}\n\nfunc (x *atomicTypeInfoSlice) store(p []rtid2ti) {\n\tx.v.Store(p)\n}\n\n// --------------------------\ntype atomicRtidFnSlice struct { // expected to be 2 words\n\tv atomic.Value\n}\n\nfunc (x *atomicRtidFnSlice) load() (e []codecRtidFn) {\n\tif i := x.v.Load(); i != nil {\n\t\te = i.([]codecRtidFn)\n\t}\n\treturn\n}\n\nfunc (x *atomicRtidFnSlice) store(p []codecRtidFn) {\n\tx.v.Store(p)\n}\n\n// --------------------------\nfunc (n *decNaked) ru() reflect.Value {\n\treturn reflect.ValueOf(&n.u).Elem()\n}\nfunc (n *decNaked) ri() reflect.Value {\n\treturn reflect.ValueOf(&n.i).Elem()\n}\nfunc (n *decNaked) rf() reflect.Value {\n\treturn reflect.ValueOf(&n.f).Elem()\n}\nfunc (n *decNaked) rl() reflect.Value {\n\treturn reflect.ValueOf(&n.l).Elem()\n}\nfunc (n *decNaked) rs() reflect.Value {\n\treturn reflect.ValueOf(&n.s).Elem()\n}\nfunc (n *decNaked) rt() reflect.Value {\n\treturn reflect.ValueOf(&n.t).Elem()\n}\nfunc (n *decNaked) rb() reflect.Value {\n\treturn reflect.ValueOf(&n.b).Elem()\n}\n\n// --------------------------\nfunc (d *Decoder) raw(f *codecFnInfo, rv reflect.Value) {\n\trv.SetBytes(d.rawBytes())\n}\n\nfunc (d *Decoder) kString(f *codecFnInfo, rv reflect.Value) {\n\trv.SetString(d.d.DecodeString())\n}\n\nfunc (d *Decoder) kBool(f *codecFnInfo, rv reflect.Value) {\n\trv.SetBool(d.d.DecodeBool())\n}\n\nfunc (d *Decoder) kTime(f *codecFnInfo, rv reflect.Value) {\n\trv.Set(reflect.ValueOf(d.d.DecodeTime()))\n}\n\nfunc (d *Decoder) kFloat32(f *codecFnInfo, rv reflect.Value) {\n\trv.SetFloat(d.decodeFloat32())\n}\n\nfunc (d *Decoder) kFloat64(f *codecFnInfo, rv reflect.Value) {\n\trv.SetFloat(d.d.DecodeFloat64())\n}\n\nfunc (d *Decoder) kInt(f *codecFnInfo, rv reflect.Value) {\n\trv.SetInt(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n}\n\nfunc (d *Decoder) kInt8(f *codecFnInfo, rv reflect.Value) {\n\trv.SetInt(chkOvf.IntV(d.d.DecodeInt64(), 8))\n}\n\nfunc (d *Decoder) kInt16(f *codecFnInfo, rv reflect.Value) {\n\trv.SetInt(chkOvf.IntV(d.d.DecodeInt64(), 16))\n}\n\nfunc (d *Decoder) kInt32(f *codecFnInfo, rv reflect.Value) {\n\trv.SetInt(chkOvf.IntV(d.d.DecodeInt64(), 32))\n}\n\nfunc (d *Decoder) kInt64(f *codecFnInfo, rv reflect.Value) {\n\trv.SetInt(d.d.DecodeInt64())\n}\n\nfunc (d *Decoder) kUint(f *codecFnInfo, rv reflect.Value) {\n\trv.SetUint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n}\n\nfunc (d *Decoder) kUintptr(f *codecFnInfo, rv reflect.Value) {\n\trv.SetUint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n}\n\nfunc (d *Decoder) kUint8(f *codecFnInfo, rv reflect.Value) {\n\trv.SetUint(chkOvf.UintV(d.d.DecodeUint64(), 8))\n}\n\nfunc (d *Decoder) kUint16(f *codecFnInfo, rv reflect.Value) {\n\trv.SetUint(chkOvf.UintV(d.d.DecodeUint64(), 16))\n}\n\nfunc (d *Decoder) kUint32(f *codecFnInfo, rv reflect.Value) {\n\trv.SetUint(chkOvf.UintV(d.d.DecodeUint64(), 32))\n}\n\nfunc (d *Decoder) kUint64(f *codecFnInfo, rv reflect.Value) {\n\trv.SetUint(d.d.DecodeUint64())\n}\n\n// ----------------\n\nfunc (e *Encoder) kBool(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeBool(rv.Bool())\n}\n\nfunc (e *Encoder) kTime(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeTime(rv2i(rv).(time.Time))\n}\n\nfunc (e *Encoder) kString(f *codecFnInfo, rv reflect.Value) {\n\ts := rv.String()\n\tif e.h.StringToRaw {\n\t\te.e.EncodeStringBytesRaw(bytesView(s))\n\t} else {\n\t\te.e.EncodeStringEnc(cUTF8, s)\n\t}\n}\n\nfunc (e *Encoder) kFloat64(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeFloat64(rv.Float())\n}\n\nfunc (e *Encoder) kFloat32(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeFloat32(float32(rv.Float()))\n}\n\nfunc (e *Encoder) kInt(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeInt(rv.Int())\n}\n\nfunc (e *Encoder) kInt8(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeInt(rv.Int())\n}\n\nfunc (e *Encoder) kInt16(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeInt(rv.Int())\n}\n\nfunc (e *Encoder) kInt32(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeInt(rv.Int())\n}\n\nfunc (e *Encoder) kInt64(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeInt(rv.Int())\n}\n\nfunc (e *Encoder) kUint(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeUint(rv.Uint())\n}\n\nfunc (e *Encoder) kUint8(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeUint(rv.Uint())\n}\n\nfunc (e *Encoder) kUint16(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeUint(rv.Uint())\n}\n\nfunc (e *Encoder) kUint32(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeUint(rv.Uint())\n}\n\nfunc (e *Encoder) kUint64(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeUint(rv.Uint())\n}\n\nfunc (e *Encoder) kUintptr(f *codecFnInfo, rv reflect.Value) {\n\te.e.EncodeUint(rv.Uint())\n}\n\n// // keepAlive4BytesView maintains a reference to the input parameter for bytesView.\n// //\n// // Usage: call this at point where done with the bytes view.\n// func keepAlive4BytesView(v string) {}\n\n// // keepAlive4BytesView maintains a reference to the input parameter for stringView.\n// //\n// // Usage: call this at point where done with the string view.\n// func keepAlive4StringView(v []byte) {}\n\n// func definitelyNil(v interface{}) bool {\n// \trv := reflect.ValueOf(v)\n// \tswitch rv.Kind() {\n// \tcase reflect.Invalid:\n// \t\treturn true\n// \tcase reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Slice, reflect.Map, reflect.Func:\n// \t\treturn rv.IsNil()\n// \tdefault:\n// \t\treturn false\n// \t}\n// }\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/helper_unsafe.go",
    "content": "// +build !safe\n// +build !appengine\n// +build go1.7\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"time\"\n\t\"unsafe\"\n)\n\n// This file has unsafe variants of some helper methods.\n// NOTE: See helper_not_unsafe.go for the usage information.\n\n// var zeroRTv [4]uintptr\n\nconst safeMode = false\nconst unsafeFlagIndir = 1 << 7 // keep in sync with GO_ROOT/src/reflect/value.go\n\ntype unsafeString struct {\n\tData unsafe.Pointer\n\tLen  int\n}\n\ntype unsafeSlice struct {\n\tData unsafe.Pointer\n\tLen  int\n\tCap  int\n}\n\ntype unsafeIntf struct {\n\ttyp  unsafe.Pointer\n\tword unsafe.Pointer\n}\n\ntype unsafeReflectValue struct {\n\ttyp  unsafe.Pointer\n\tptr  unsafe.Pointer\n\tflag uintptr\n}\n\nfunc stringView(v []byte) string {\n\tif len(v) == 0 {\n\t\treturn \"\"\n\t}\n\tbx := (*unsafeSlice)(unsafe.Pointer(&v))\n\treturn *(*string)(unsafe.Pointer(&unsafeString{bx.Data, bx.Len}))\n}\n\nfunc bytesView(v string) []byte {\n\tif len(v) == 0 {\n\t\treturn zeroByteSlice\n\t}\n\tsx := (*unsafeString)(unsafe.Pointer(&v))\n\treturn *(*[]byte)(unsafe.Pointer(&unsafeSlice{sx.Data, sx.Len, sx.Len}))\n}\n\nfunc definitelyNil(v interface{}) bool {\n\t// There is no global way of checking if an interface is nil.\n\t// For true references (map, ptr, func, chan), you can just look\n\t// at the word of the interface. However, for slices, you have to dereference\n\t// the word, and get a pointer to the 3-word interface value.\n\t//\n\t// However, the following are cheap calls\n\t// - TypeOf(interface): cheap 2-line call.\n\t// - ValueOf(interface{}): expensive\n\t// - type.Kind: cheap call through an interface\n\t// - Value.Type(): cheap call\n\t//                 except it's a method value (e.g. r.Read, which implies that it is a Func)\n\n\treturn ((*unsafeIntf)(unsafe.Pointer(&v))).word == nil\n}\n\nfunc rv2i(rv reflect.Value) interface{} {\n\t// TODO: consider a more generally-known optimization for reflect.Value ==> Interface\n\t//\n\t// Currently, we use this fragile method that taps into implememtation details from\n\t// the source go stdlib reflect/value.go, and trims the implementation.\n\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t// true references (map, func, chan, ptr - NOT slice) may be double-referenced as flagIndir\n\tvar ptr unsafe.Pointer\n\tif refBitset.isset(byte(urv.flag&(1<<5-1))) && urv.flag&unsafeFlagIndir != 0 {\n\t\tptr = *(*unsafe.Pointer)(urv.ptr)\n\t} else {\n\t\tptr = urv.ptr\n\t}\n\treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{typ: urv.typ, word: ptr}))\n}\n\nfunc rt2id(rt reflect.Type) uintptr {\n\treturn uintptr(((*unsafeIntf)(unsafe.Pointer(&rt))).word)\n}\n\n// func rv2rtid(rv reflect.Value) uintptr {\n// \treturn uintptr((*unsafeReflectValue)(unsafe.Pointer(&rv)).typ)\n// }\n\nfunc i2rtid(i interface{}) uintptr {\n\treturn uintptr(((*unsafeIntf)(unsafe.Pointer(&i))).typ)\n}\n\n// --------------------------\n\nfunc isEmptyValue(v reflect.Value, tinfos *TypeInfos, deref, checkStruct bool) bool {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&v))\n\tif urv.flag == 0 {\n\t\treturn true\n\t}\n\tswitch v.Kind() {\n\tcase reflect.Invalid:\n\t\treturn true\n\tcase reflect.String:\n\t\treturn (*unsafeString)(urv.ptr).Len == 0\n\tcase reflect.Slice:\n\t\treturn (*unsafeSlice)(urv.ptr).Len == 0\n\tcase reflect.Bool:\n\t\treturn !*(*bool)(urv.ptr)\n\tcase reflect.Int:\n\t\treturn *(*int)(urv.ptr) == 0\n\tcase reflect.Int8:\n\t\treturn *(*int8)(urv.ptr) == 0\n\tcase reflect.Int16:\n\t\treturn *(*int16)(urv.ptr) == 0\n\tcase reflect.Int32:\n\t\treturn *(*int32)(urv.ptr) == 0\n\tcase reflect.Int64:\n\t\treturn *(*int64)(urv.ptr) == 0\n\tcase reflect.Uint:\n\t\treturn *(*uint)(urv.ptr) == 0\n\tcase reflect.Uint8:\n\t\treturn *(*uint8)(urv.ptr) == 0\n\tcase reflect.Uint16:\n\t\treturn *(*uint16)(urv.ptr) == 0\n\tcase reflect.Uint32:\n\t\treturn *(*uint32)(urv.ptr) == 0\n\tcase reflect.Uint64:\n\t\treturn *(*uint64)(urv.ptr) == 0\n\tcase reflect.Uintptr:\n\t\treturn *(*uintptr)(urv.ptr) == 0\n\tcase reflect.Float32:\n\t\treturn *(*float32)(urv.ptr) == 0\n\tcase reflect.Float64:\n\t\treturn *(*float64)(urv.ptr) == 0\n\tcase reflect.Interface:\n\t\tisnil := urv.ptr == nil || *(*unsafe.Pointer)(urv.ptr) == nil\n\t\tif deref {\n\t\t\tif isnil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn isEmptyValue(v.Elem(), tinfos, deref, checkStruct)\n\t\t}\n\t\treturn isnil\n\tcase reflect.Ptr:\n\t\t// isnil := urv.ptr == nil (not sufficient, as a pointer value encodes the type)\n\t\tisnil := urv.ptr == nil || *(*unsafe.Pointer)(urv.ptr) == nil\n\t\tif deref {\n\t\t\tif isnil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn isEmptyValue(v.Elem(), tinfos, deref, checkStruct)\n\t\t}\n\t\treturn isnil\n\tcase reflect.Struct:\n\t\treturn isEmptyStruct(v, tinfos, deref, checkStruct)\n\tcase reflect.Map, reflect.Array, reflect.Chan:\n\t\treturn v.Len() == 0\n\t}\n\treturn false\n}\n\n// --------------------------\n\n// atomicXXX is expected to be 2 words (for symmetry with atomic.Value)\n//\n// Note that we do not atomically load/store length and data pointer separately,\n// as this could lead to some races. Instead, we atomically load/store cappedSlice.\n//\n// Note: with atomic.(Load|Store)Pointer, we MUST work with an unsafe.Pointer directly.\n\n// ----------------------\ntype atomicTypeInfoSlice struct {\n\tv unsafe.Pointer // *[]rtid2ti\n\t_ uint64         // padding (atomicXXX expected to be 2 words)\n}\n\nfunc (x *atomicTypeInfoSlice) load() (s []rtid2ti) {\n\tx2 := atomic.LoadPointer(&x.v)\n\tif x2 != nil {\n\t\ts = *(*[]rtid2ti)(x2)\n\t}\n\treturn\n}\n\nfunc (x *atomicTypeInfoSlice) store(p []rtid2ti) {\n\tatomic.StorePointer(&x.v, unsafe.Pointer(&p))\n}\n\n// --------------------------\ntype atomicRtidFnSlice struct {\n\tv unsafe.Pointer // *[]codecRtidFn\n\t// _ uint64         // padding (atomicXXX expected to be 2 words) (make 1 word so JsonHandle fits)\n}\n\nfunc (x *atomicRtidFnSlice) load() (s []codecRtidFn) {\n\tx2 := atomic.LoadPointer(&x.v)\n\tif x2 != nil {\n\t\ts = *(*[]codecRtidFn)(x2)\n\t}\n\treturn\n}\n\nfunc (x *atomicRtidFnSlice) store(p []codecRtidFn) {\n\tatomic.StorePointer(&x.v, unsafe.Pointer(&p))\n}\n\n// --------------------------\ntype atomicClsErr struct {\n\tv unsafe.Pointer // *clsErr\n\t_ uint64         // padding (atomicXXX expected to be 2 words)\n}\n\nfunc (x *atomicClsErr) load() (e clsErr) {\n\tx2 := (*clsErr)(atomic.LoadPointer(&x.v))\n\tif x2 != nil {\n\t\te = *x2\n\t}\n\treturn\n}\n\nfunc (x *atomicClsErr) store(p clsErr) {\n\tatomic.StorePointer(&x.v, unsafe.Pointer(&p))\n}\n\n// --------------------------\n\n// to create a reflect.Value for each member field of decNaked,\n// we first create a global decNaked, and create reflect.Value\n// for them all.\n// This way, we have the flags and type in the reflect.Value.\n// Then, when a reflect.Value is called, we just copy it,\n// update the ptr to the decNaked's, and return it.\n\ntype unsafeDecNakedWrapper struct {\n\tdecNaked\n\tru, ri, rf, rl, rs, rb, rt reflect.Value // mapping to the primitives above\n}\n\nfunc (n *unsafeDecNakedWrapper) init() {\n\tn.ru = reflect.ValueOf(&n.u).Elem()\n\tn.ri = reflect.ValueOf(&n.i).Elem()\n\tn.rf = reflect.ValueOf(&n.f).Elem()\n\tn.rl = reflect.ValueOf(&n.l).Elem()\n\tn.rs = reflect.ValueOf(&n.s).Elem()\n\tn.rt = reflect.ValueOf(&n.t).Elem()\n\tn.rb = reflect.ValueOf(&n.b).Elem()\n\t// n.rr[] = reflect.ValueOf(&n.)\n}\n\nvar defUnsafeDecNakedWrapper unsafeDecNakedWrapper\n\nfunc init() {\n\tdefUnsafeDecNakedWrapper.init()\n}\n\nfunc (n *decNaked) ru() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.ru\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.u)\n\treturn\n}\nfunc (n *decNaked) ri() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.ri\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.i)\n\treturn\n}\nfunc (n *decNaked) rf() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.rf\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.f)\n\treturn\n}\nfunc (n *decNaked) rl() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.rl\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.l)\n\treturn\n}\nfunc (n *decNaked) rs() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.rs\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.s)\n\treturn\n}\nfunc (n *decNaked) rt() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.rt\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.t)\n\treturn\n}\nfunc (n *decNaked) rb() (v reflect.Value) {\n\tv = defUnsafeDecNakedWrapper.rb\n\t((*unsafeReflectValue)(unsafe.Pointer(&v))).ptr = unsafe.Pointer(&n.b)\n\treturn\n}\n\n// --------------------------\nfunc (d *Decoder) raw(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*[]byte)(urv.ptr) = d.rawBytes()\n}\n\nfunc (d *Decoder) kString(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*string)(urv.ptr) = d.d.DecodeString()\n}\n\nfunc (d *Decoder) kBool(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*bool)(urv.ptr) = d.d.DecodeBool()\n}\n\nfunc (d *Decoder) kTime(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*time.Time)(urv.ptr) = d.d.DecodeTime()\n}\n\nfunc (d *Decoder) kFloat32(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*float32)(urv.ptr) = float32(d.decodeFloat32())\n}\n\nfunc (d *Decoder) kFloat64(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*float64)(urv.ptr) = d.d.DecodeFloat64()\n}\n\nfunc (d *Decoder) kInt(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*int)(urv.ptr) = int(chkOvf.IntV(d.d.DecodeInt64(), intBitsize))\n}\n\nfunc (d *Decoder) kInt8(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*int8)(urv.ptr) = int8(chkOvf.IntV(d.d.DecodeInt64(), 8))\n}\n\nfunc (d *Decoder) kInt16(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*int16)(urv.ptr) = int16(chkOvf.IntV(d.d.DecodeInt64(), 16))\n}\n\nfunc (d *Decoder) kInt32(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*int32)(urv.ptr) = int32(chkOvf.IntV(d.d.DecodeInt64(), 32))\n}\n\nfunc (d *Decoder) kInt64(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*int64)(urv.ptr) = d.d.DecodeInt64()\n}\n\nfunc (d *Decoder) kUint(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*uint)(urv.ptr) = uint(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n}\n\nfunc (d *Decoder) kUintptr(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*uintptr)(urv.ptr) = uintptr(chkOvf.UintV(d.d.DecodeUint64(), uintBitsize))\n}\n\nfunc (d *Decoder) kUint8(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*uint8)(urv.ptr) = uint8(chkOvf.UintV(d.d.DecodeUint64(), 8))\n}\n\nfunc (d *Decoder) kUint16(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*uint16)(urv.ptr) = uint16(chkOvf.UintV(d.d.DecodeUint64(), 16))\n}\n\nfunc (d *Decoder) kUint32(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*uint32)(urv.ptr) = uint32(chkOvf.UintV(d.d.DecodeUint64(), 32))\n}\n\nfunc (d *Decoder) kUint64(f *codecFnInfo, rv reflect.Value) {\n\turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\t*(*uint64)(urv.ptr) = d.d.DecodeUint64()\n}\n\n// ------------\n\nfunc (e *Encoder) kBool(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeBool(*(*bool)(v.ptr))\n}\n\nfunc (e *Encoder) kTime(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeTime(*(*time.Time)(v.ptr))\n}\n\nfunc (e *Encoder) kString(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\ts := *(*string)(v.ptr)\n\tif e.h.StringToRaw {\n\t\te.e.EncodeStringBytesRaw(bytesView(s))\n\t} else {\n\t\te.e.EncodeStringEnc(cUTF8, s)\n\t}\n}\n\nfunc (e *Encoder) kFloat64(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeFloat64(*(*float64)(v.ptr))\n}\n\nfunc (e *Encoder) kFloat32(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeFloat32(*(*float32)(v.ptr))\n}\n\nfunc (e *Encoder) kInt(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeInt(int64(*(*int)(v.ptr)))\n}\n\nfunc (e *Encoder) kInt8(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeInt(int64(*(*int8)(v.ptr)))\n}\n\nfunc (e *Encoder) kInt16(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeInt(int64(*(*int16)(v.ptr)))\n}\n\nfunc (e *Encoder) kInt32(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeInt(int64(*(*int32)(v.ptr)))\n}\n\nfunc (e *Encoder) kInt64(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeInt(int64(*(*int64)(v.ptr)))\n}\n\nfunc (e *Encoder) kUint(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeUint(uint64(*(*uint)(v.ptr)))\n}\n\nfunc (e *Encoder) kUint8(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeUint(uint64(*(*uint8)(v.ptr)))\n}\n\nfunc (e *Encoder) kUint16(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeUint(uint64(*(*uint16)(v.ptr)))\n}\n\nfunc (e *Encoder) kUint32(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeUint(uint64(*(*uint32)(v.ptr)))\n}\n\nfunc (e *Encoder) kUint64(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeUint(uint64(*(*uint64)(v.ptr)))\n}\n\nfunc (e *Encoder) kUintptr(f *codecFnInfo, rv reflect.Value) {\n\tv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\te.e.EncodeUint(uint64(*(*uintptr)(v.ptr)))\n}\n\n// ------------\n\n// func (d *Decoder) raw(f *codecFnInfo, rv reflect.Value) {\n// \turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n// \t// if urv.flag&unsafeFlagIndir != 0 {\n// \t// \turv.ptr = *(*unsafe.Pointer)(urv.ptr)\n// \t// }\n// \t*(*[]byte)(urv.ptr) = d.rawBytes()\n// }\n\n// func rv0t(rt reflect.Type) reflect.Value {\n// \tut := (*unsafeIntf)(unsafe.Pointer(&rt))\n// \t// we need to determine whether ifaceIndir, and then whether to just pass 0 as the ptr\n// \tuv := unsafeReflectValue{ut.word, &zeroRTv, flag(rt.Kind())}\n// \treturn *(*reflect.Value)(unsafe.Pointer(&uv})\n// }\n\n// func rv2i(rv reflect.Value) interface{} {\n// \turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n// \t// true references (map, func, chan, ptr - NOT slice) may be double-referenced as flagIndir\n// \tvar ptr unsafe.Pointer\n// \t// kk := reflect.Kind(urv.flag & (1<<5 - 1))\n// \t// if (kk == reflect.Map || kk == reflect.Ptr || kk == reflect.Chan || kk == reflect.Func) && urv.flag&unsafeFlagIndir != 0 {\n// \tif refBitset.isset(byte(urv.flag&(1<<5-1))) && urv.flag&unsafeFlagIndir != 0 {\n// \t\tptr = *(*unsafe.Pointer)(urv.ptr)\n// \t} else {\n// \t\tptr = urv.ptr\n// \t}\n// \treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{typ: urv.typ, word: ptr}))\n// \t// return *(*interface{})(unsafe.Pointer(&unsafeIntf{word: *(*unsafe.Pointer)(urv.ptr), typ: urv.typ}))\n// \t// return *(*interface{})(unsafe.Pointer(&unsafeIntf{word: urv.ptr, typ: urv.typ}))\n// }\n\n// func definitelyNil(v interface{}) bool {\n// \tvar ui *unsafeIntf = (*unsafeIntf)(unsafe.Pointer(&v))\n// \tif ui.word == nil {\n// \t\treturn true\n// \t}\n// \tvar tk = reflect.TypeOf(v).Kind()\n// \treturn (tk == reflect.Interface || tk == reflect.Slice) && *(*unsafe.Pointer)(ui.word) == nil\n// \tfmt.Printf(\">>>> definitely nil: isnil: %v, TYPE: \\t%T, word: %v, *word: %v, type: %v, nil: %v\\n\",\n// \tv == nil, v, word, *((*unsafe.Pointer)(word)), ui.typ, nil)\n// }\n\n// func keepAlive4BytesView(v string) {\n// \truntime.KeepAlive(v)\n// }\n\n// func keepAlive4StringView(v []byte) {\n// \truntime.KeepAlive(v)\n// }\n\n// func rt2id(rt reflect.Type) uintptr {\n// \treturn uintptr(((*unsafeIntf)(unsafe.Pointer(&rt))).word)\n// \t// var i interface{} = rt\n// \t// // ui := (*unsafeIntf)(unsafe.Pointer(&i))\n// \t// return ((*unsafeIntf)(unsafe.Pointer(&i))).word\n// }\n\n// func rv2i(rv reflect.Value) interface{} {\n// \turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n// \t// non-reference type: already indir\n// \t// reference type: depend on flagIndir property ('cos maybe was double-referenced)\n// \t// const (unsafeRvFlagKindMask    = 1<<5 - 1 , unsafeRvFlagIndir       = 1 << 7 )\n// \t// rvk := reflect.Kind(urv.flag & (1<<5 - 1))\n// \t// if (rvk == reflect.Chan ||\n// \t// \trvk == reflect.Func ||\n// \t// \trvk == reflect.Interface ||\n// \t// \trvk == reflect.Map ||\n// \t// \trvk == reflect.Ptr ||\n// \t// \trvk == reflect.UnsafePointer) && urv.flag&(1<<8) != 0 {\n// \t// \tfmt.Printf(\">>>>> ---- double indirect reference: %v, %v\\n\", rvk, rv.Type())\n// \t// \treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: *(*unsafe.Pointer)(urv.ptr), typ: urv.typ}))\n// \t// }\n// \tif urv.flag&(1<<5-1) == uintptr(reflect.Map) && urv.flag&(1<<7) != 0 {\n// \t\t// fmt.Printf(\">>>>> ---- double indirect reference: %v, %v\\n\", rvk, rv.Type())\n// \t\treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: *(*unsafe.Pointer)(urv.ptr), typ: urv.typ}))\n// \t}\n// \t// fmt.Printf(\">>>>> ++++ direct reference: %v, %v\\n\", rvk, rv.Type())\n// \treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: urv.ptr, typ: urv.typ}))\n// }\n\n// const (\n// \tunsafeRvFlagKindMask    = 1<<5 - 1\n// \tunsafeRvKindDirectIface = 1 << 5\n// \tunsafeRvFlagIndir       = 1 << 7\n// \tunsafeRvFlagAddr        = 1 << 8\n// \tunsafeRvFlagMethod      = 1 << 9\n\n// \t_USE_RV_INTERFACE bool = false\n// \t_UNSAFE_RV_DEBUG       = true\n// )\n\n// type unsafeRtype struct {\n// \t_    [2]uintptr\n// \t_    uint32\n// \t_    uint8\n// \t_    uint8\n// \t_    uint8\n// \tkind uint8\n// \t_    [2]uintptr\n// \t_    int32\n// }\n\n// func _rv2i(rv reflect.Value) interface{} {\n// \t// Note: From use,\n// \t//   - it's never an interface\n// \t//   - the only calls here are for ifaceIndir types.\n// \t//     (though that conditional is wrong)\n// \t//     To know for sure, we need the value of t.kind (which is not exposed).\n// \t//\n// \t// Need to validate the path: type is indirect ==> only value is indirect ==> default (value is direct)\n// \t//    - Type indirect, Value indirect: ==> numbers, boolean, slice, struct, array, string\n// \t//    - Type Direct,   Value indirect: ==> map???\n// \t//    - Type Direct,   Value direct:   ==> pointers, unsafe.Pointer, func, chan, map\n// \t//\n// \t// TRANSLATES TO:\n// \t//    if typeIndirect { } else if valueIndirect { } else { }\n// \t//\n// \t// Since we don't deal with funcs, then \"flagNethod\" is unset, and can be ignored.\n\n// \tif _USE_RV_INTERFACE {\n// \t\treturn rv.Interface()\n// \t}\n// \turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n\n// \t// if urv.flag&unsafeRvFlagMethod != 0 || urv.flag&unsafeRvFlagKindMask == uintptr(reflect.Interface) {\n// \t// \tprintln(\"***** IS flag method or interface: delegating to rv.Interface()\")\n// \t// \treturn rv.Interface()\n// \t// }\n\n// \t// if urv.flag&unsafeRvFlagKindMask == uintptr(reflect.Interface) {\n// \t// \tprintln(\"***** IS Interface: delegate to rv.Interface\")\n// \t// \treturn rv.Interface()\n// \t// }\n// \t// if urv.flag&unsafeRvFlagKindMask&unsafeRvKindDirectIface == 0 {\n// \t// \tif urv.flag&unsafeRvFlagAddr == 0 {\n// \t// \t\tprintln(\"***** IS ifaceIndir typ\")\n// \t// \t\t// ui := unsafeIntf{word: urv.ptr, typ: urv.typ}\n// \t// \t\t// return *(*interface{})(unsafe.Pointer(&ui))\n// \t// \t\t// return *(*interface{})(unsafe.Pointer(&unsafeIntf{word: urv.ptr, typ: urv.typ}))\n// \t// \t}\n// \t// } else if urv.flag&unsafeRvFlagIndir != 0 {\n// \t// \tprintln(\"***** IS flagindir\")\n// \t// \t// return *(*interface{})(unsafe.Pointer(&unsafeIntf{word: *(*unsafe.Pointer)(urv.ptr), typ: urv.typ}))\n// \t// } else {\n// \t// \tprintln(\"***** NOT flagindir\")\n// \t// \treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: urv.ptr, typ: urv.typ}))\n// \t// }\n// \t// println(\"***** default: delegate to rv.Interface\")\n\n// \turt := (*unsafeRtype)(unsafe.Pointer(urv.typ))\n// \tif _UNSAFE_RV_DEBUG {\n// \t\tfmt.Printf(\">>>> start: %v: \", rv.Type())\n// \t\tfmt.Printf(\"%v - %v\\n\", *urv, *urt)\n// \t}\n// \tif urt.kind&unsafeRvKindDirectIface == 0 {\n// \t\tif _UNSAFE_RV_DEBUG {\n// \t\t\tfmt.Printf(\"**** +ifaceIndir type: %v\\n\", rv.Type())\n// \t\t}\n// \t\t// println(\"***** IS ifaceIndir typ\")\n// \t\t// if true || urv.flag&unsafeRvFlagAddr == 0 {\n// \t\t// \t// println(\"    ***** IS NOT addr\")\n// \t\treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: urv.ptr, typ: urv.typ}))\n// \t\t// }\n// \t} else if urv.flag&unsafeRvFlagIndir != 0 {\n// \t\tif _UNSAFE_RV_DEBUG {\n// \t\t\tfmt.Printf(\"**** +flagIndir type: %v\\n\", rv.Type())\n// \t\t}\n// \t\t// println(\"***** IS flagindir\")\n// \t\treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: *(*unsafe.Pointer)(urv.ptr), typ: urv.typ}))\n// \t} else {\n// \t\tif _UNSAFE_RV_DEBUG {\n// \t\t\tfmt.Printf(\"**** -flagIndir type: %v\\n\", rv.Type())\n// \t\t}\n// \t\t// println(\"***** NOT flagindir\")\n// \t\treturn *(*interface{})(unsafe.Pointer(&unsafeIntf{word: urv.ptr, typ: urv.typ}))\n// \t}\n// \t// println(\"***** default: delegating to rv.Interface()\")\n// \t// return rv.Interface()\n// }\n\n// var staticM0 = make(map[string]uint64)\n// var staticI0 = (int32)(-5)\n\n// func staticRv2iTest() {\n// \ti0 := (int32)(-5)\n// \tm0 := make(map[string]uint16)\n// \tm0[\"1\"] = 1\n// \tfor _, i := range []interface{}{\n// \t\t(int)(7),\n// \t\t(uint)(8),\n// \t\t(int16)(-9),\n// \t\t(uint16)(19),\n// \t\t(uintptr)(77),\n// \t\t(bool)(true),\n// \t\tfloat32(-32.7),\n// \t\tfloat64(64.9),\n// \t\tcomplex(float32(19), 5),\n// \t\tcomplex(float64(-32), 7),\n// \t\t[4]uint64{1, 2, 3, 4},\n// \t\t(chan<- int)(nil), // chan,\n// \t\trv2i,              // func\n// \t\tio.Writer(ioutil.Discard),\n// \t\tmake(map[string]uint),\n// \t\t(map[string]uint)(nil),\n// \t\tstaticM0,\n// \t\tm0,\n// \t\t&m0,\n// \t\ti0,\n// \t\t&i0,\n// \t\t&staticI0,\n// \t\t&staticM0,\n// \t\t[]uint32{6, 7, 8},\n// \t\t\"abc\",\n// \t\tRaw{},\n// \t\tRawExt{},\n// \t\t&Raw{},\n// \t\t&RawExt{},\n// \t\tunsafe.Pointer(&i0),\n// \t} {\n// \t\ti2 := rv2i(reflect.ValueOf(i))\n// \t\teq := reflect.DeepEqual(i, i2)\n// \t\tfmt.Printf(\">>>> %v == %v? %v\\n\", i, i2, eq)\n// \t}\n// \t// os.Exit(0)\n// }\n\n// func init() {\n// \tstaticRv2iTest()\n// }\n\n// func rv2i(rv reflect.Value) interface{} {\n// \tif _USE_RV_INTERFACE || rv.Kind() == reflect.Interface || rv.CanAddr() {\n// \t\treturn rv.Interface()\n// \t}\n// \t// var i interface{}\n// \t// ui := (*unsafeIntf)(unsafe.Pointer(&i))\n// \tvar ui unsafeIntf\n// \turv := (*unsafeReflectValue)(unsafe.Pointer(&rv))\n// \t// fmt.Printf(\"urv: flag: %b, typ: %b, ptr: %b\\n\", urv.flag, uintptr(urv.typ), uintptr(urv.ptr))\n// \tif (urv.flag&unsafeRvFlagKindMask)&unsafeRvKindDirectIface == 0 {\n// \t\tif urv.flag&unsafeRvFlagAddr != 0 {\n// \t\t\tprintln(\"***** indirect and addressable! Needs typed move - delegate to rv.Interface()\")\n// \t\t\treturn rv.Interface()\n// \t\t}\n// \t\tprintln(\"****** indirect type/kind\")\n// \t\tui.word = urv.ptr\n// \t} else if urv.flag&unsafeRvFlagIndir != 0 {\n// \t\tprintln(\"****** unsafe rv flag indir\")\n// \t\tui.word = *(*unsafe.Pointer)(urv.ptr)\n// \t} else {\n// \t\tprintln(\"****** default: assign prt to word directly\")\n// \t\tui.word = urv.ptr\n// \t}\n// \t// ui.word = urv.ptr\n// \tui.typ = urv.typ\n// \t// fmt.Printf(\"(pointers) ui.typ: %p, word: %p\\n\", ui.typ, ui.word)\n// \t// fmt.Printf(\"(binary)   ui.typ: %b, word: %b\\n\", uintptr(ui.typ), uintptr(ui.word))\n// \treturn *(*interface{})(unsafe.Pointer(&ui))\n// \t// return i\n// }\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/json.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\n// By default, this json support uses base64 encoding for bytes, because you cannot\n// store and read any arbitrary string in json (only unicode).\n// However, the user can configre how to encode/decode bytes.\n//\n// This library specifically supports UTF-8 for encoding and decoding only.\n//\n// Note that the library will happily encode/decode things which are not valid\n// json e.g. a map[int64]string. We do it for consistency. With valid json,\n// we will encode and decode appropriately.\n// Users can specify their map type if necessary to force it.\n//\n// Note:\n//   - we cannot use strconv.Quote and strconv.Unquote because json quotes/unquotes differently.\n//     We implement it here.\n\n// Top-level methods of json(End|Dec)Driver (which are implementations of (en|de)cDriver\n// MUST not call one-another.\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n//--------------------------------\n\nvar jsonLiterals = [...]byte{\n\t'\"', 't', 'r', 'u', 'e', '\"',\n\t'\"', 'f', 'a', 'l', 's', 'e', '\"',\n\t'\"', 'n', 'u', 'l', 'l', '\"',\n}\n\nconst (\n\tjsonLitTrueQ  = 0\n\tjsonLitTrue   = 1\n\tjsonLitFalseQ = 6\n\tjsonLitFalse  = 7\n\t// jsonLitNullQ  = 13\n\tjsonLitNull = 14\n)\n\nvar (\n\tjsonLiteral4True  = jsonLiterals[jsonLitTrue+1 : jsonLitTrue+4]\n\tjsonLiteral4False = jsonLiterals[jsonLitFalse+1 : jsonLitFalse+5]\n\tjsonLiteral4Null  = jsonLiterals[jsonLitNull+1 : jsonLitNull+4]\n)\n\nconst (\n\tjsonU4Chk2 = '0'\n\tjsonU4Chk1 = 'a' - 10\n\tjsonU4Chk0 = 'A' - 10\n\n\tjsonScratchArrayLen = cacheLineSize // 64\n)\n\nconst (\n\t// If !jsonValidateSymbols, decoding will be faster, by skipping some checks:\n\t//   - If we see first character of null, false or true,\n\t//     do not validate subsequent characters.\n\t//   - e.g. if we see a n, assume null and skip next 3 characters,\n\t//     and do not validate they are ull.\n\t// P.S. Do not expect a significant decoding boost from this.\n\tjsonValidateSymbols = true\n\n\tjsonSpacesOrTabsLen = 128\n\n\tjsonAlwaysReturnInternString = false\n)\n\nvar (\n\t// jsonTabs and jsonSpaces are used as caches for indents\n\tjsonTabs, jsonSpaces [jsonSpacesOrTabsLen]byte\n\n\tjsonCharHtmlSafeSet   bitset256\n\tjsonCharSafeSet       bitset256\n\tjsonCharWhitespaceSet bitset256\n\tjsonNumSet            bitset256\n)\n\nfunc init() {\n\tvar i byte\n\tfor i = 0; i < jsonSpacesOrTabsLen; i++ {\n\t\tjsonSpaces[i] = ' '\n\t\tjsonTabs[i] = '\\t'\n\t}\n\n\t// populate the safe values as true: note: ASCII control characters are (0-31)\n\t// jsonCharSafeSet:     all true except (0-31) \" \\\n\t// jsonCharHtmlSafeSet: all true except (0-31) \" \\ < > &\n\tfor i = 32; i < utf8.RuneSelf; i++ {\n\t\tswitch i {\n\t\tcase '\"', '\\\\':\n\t\tcase '<', '>', '&':\n\t\t\tjsonCharSafeSet.set(i) // = true\n\t\tdefault:\n\t\t\tjsonCharSafeSet.set(i)\n\t\t\tjsonCharHtmlSafeSet.set(i)\n\t\t}\n\t}\n\tfor i = 0; i <= utf8.RuneSelf; i++ {\n\t\tswitch i {\n\t\tcase ' ', '\\t', '\\r', '\\n':\n\t\t\tjsonCharWhitespaceSet.set(i)\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'e', 'E', '.', '+', '-':\n\t\t\tjsonNumSet.set(i)\n\t\t}\n\t}\n}\n\n// ----------------\n\ntype jsonEncDriverTypical struct {\n\tjsonEncDriver\n}\n\nfunc (e *jsonEncDriverTypical) WriteArrayStart(length int) {\n\te.w.writen1('[')\n}\n\nfunc (e *jsonEncDriverTypical) WriteArrayElem() {\n\tif e.e.c != containerArrayStart {\n\t\te.w.writen1(',')\n\t}\n}\n\nfunc (e *jsonEncDriverTypical) WriteArrayEnd() {\n\te.w.writen1(']')\n}\n\nfunc (e *jsonEncDriverTypical) WriteMapStart(length int) {\n\te.w.writen1('{')\n}\n\nfunc (e *jsonEncDriverTypical) WriteMapElemKey() {\n\tif e.e.c != containerMapStart {\n\t\te.w.writen1(',')\n\t}\n}\n\nfunc (e *jsonEncDriverTypical) WriteMapElemValue() {\n\te.w.writen1(':')\n}\n\nfunc (e *jsonEncDriverTypical) WriteMapEnd() {\n\te.w.writen1('}')\n}\n\nfunc (e *jsonEncDriverTypical) EncodeBool(b bool) {\n\tif b {\n\t\te.w.writeb(jsonLiterals[jsonLitTrue : jsonLitTrue+4])\n\t} else {\n\t\te.w.writeb(jsonLiterals[jsonLitFalse : jsonLitFalse+5])\n\t}\n}\n\nfunc (e *jsonEncDriverTypical) EncodeInt(v int64) {\n\te.w.writeb(strconv.AppendInt(e.b[:0], v, 10))\n}\n\nfunc (e *jsonEncDriverTypical) EncodeUint(v uint64) {\n\te.w.writeb(strconv.AppendUint(e.b[:0], v, 10))\n}\n\nfunc (e *jsonEncDriverTypical) EncodeFloat64(f float64) {\n\tfmt, prec := jsonFloatStrconvFmtPrec64(f)\n\te.w.writeb(strconv.AppendFloat(e.b[:0], f, fmt, int(prec), 64))\n\t// e.w.writeb(strconv.AppendFloat(e.b[:0], f, jsonFloatStrconvFmtPrec64(f), 64))\n}\n\nfunc (e *jsonEncDriverTypical) EncodeFloat32(f float32) {\n\tfmt, prec := jsonFloatStrconvFmtPrec32(f)\n\te.w.writeb(strconv.AppendFloat(e.b[:0], float64(f), fmt, int(prec), 32))\n}\n\n// func (e *jsonEncDriverTypical) encodeFloat(f float64, bitsize uint8) {\n// \tfmt, prec := jsonFloatStrconvFmtPrec(f, bitsize == 32)\n// \te.w.writeb(strconv.AppendFloat(e.b[:0], f, fmt, prec, int(bitsize)))\n// }\n\n// func (e *jsonEncDriverTypical) atEndOfEncode() {\n// \tif e.tw {\n// \t\te.w.writen1(' ')\n// \t}\n// }\n\n// ----------------\n\ntype jsonEncDriverGeneric struct {\n\tjsonEncDriver\n}\n\n// indent is done as below:\n//   - newline and indent are added before each mapKey or arrayElem\n//   - newline and indent are added before each ending,\n//     except there was no entry (so we can have {} or [])\n\nfunc (e *jsonEncDriverGeneric) reset() {\n\te.jsonEncDriver.reset()\n\te.d, e.dl, e.di = false, 0, 0\n\tif e.h.Indent != 0 {\n\t\te.d = true\n\t\te.di = int8(e.h.Indent)\n\t}\n\t// if e.h.Indent > 0 {\n\t// \te.d = true\n\t// \te.di = int8(e.h.Indent)\n\t// } else if e.h.Indent < 0 {\n\t// \te.d = true\n\t// \t// e.dt = true\n\t// \te.di = int8(-e.h.Indent)\n\t// }\n\te.ks = e.h.MapKeyAsString\n\te.is = e.h.IntegerAsString\n}\n\nfunc (e *jsonEncDriverGeneric) WriteArrayStart(length int) {\n\tif e.d {\n\t\te.dl++\n\t}\n\te.w.writen1('[')\n}\n\nfunc (e *jsonEncDriverGeneric) WriteArrayEnd() {\n\tif e.d {\n\t\te.dl--\n\t\te.writeIndent()\n\t}\n\te.w.writen1(']')\n}\n\nfunc (e *jsonEncDriverGeneric) WriteMapStart(length int) {\n\tif e.d {\n\t\te.dl++\n\t}\n\te.w.writen1('{')\n}\n\nfunc (e *jsonEncDriverGeneric) WriteMapEnd() {\n\tif e.d {\n\t\te.dl--\n\t\tif e.e.c != containerMapStart {\n\t\t\te.writeIndent()\n\t\t}\n\t}\n\te.w.writen1('}')\n}\n\nfunc (e *jsonEncDriverGeneric) EncodeBool(b bool) {\n\tif e.ks && e.e.c == containerMapKey {\n\t\tif b {\n\t\t\te.w.writeb(jsonLiterals[jsonLitTrueQ : jsonLitTrueQ+6])\n\t\t} else {\n\t\t\te.w.writeb(jsonLiterals[jsonLitFalseQ : jsonLitFalseQ+7])\n\t\t}\n\t} else {\n\t\tif b {\n\t\t\te.w.writeb(jsonLiterals[jsonLitTrue : jsonLitTrue+4])\n\t\t} else {\n\t\t\te.w.writeb(jsonLiterals[jsonLitFalse : jsonLitFalse+5])\n\t\t}\n\t}\n}\n\nfunc (e *jsonEncDriverGeneric) encodeFloat(f float64, bitsize, fmt byte, prec int8) {\n\tvar blen int\n\tif e.ks && e.e.c == containerMapKey {\n\t\tblen = 2 + len(strconv.AppendFloat(e.b[1:1], f, fmt, int(prec), int(bitsize)))\n\t\te.b[0] = '\"'\n\t\te.b[blen-1] = '\"'\n\t} else {\n\t\tblen = len(strconv.AppendFloat(e.b[:0], f, fmt, int(prec), int(bitsize)))\n\t}\n\te.w.writeb(e.b[:blen])\n}\n\nfunc (e *jsonEncDriverGeneric) EncodeFloat64(f float64) {\n\tfmt, prec := jsonFloatStrconvFmtPrec64(f)\n\te.encodeFloat(f, 64, fmt, prec)\n}\n\nfunc (e *jsonEncDriverGeneric) EncodeFloat32(f float32) {\n\tfmt, prec := jsonFloatStrconvFmtPrec32(f)\n\te.encodeFloat(float64(f), 32, fmt, prec)\n}\n\nfunc (e *jsonEncDriverGeneric) EncodeInt(v int64) {\n\tx := e.is\n\tif x == 'A' || x == 'L' && (v > 1<<53 || v < -(1<<53)) || (e.ks && e.e.c == containerMapKey) {\n\t\tblen := 2 + len(strconv.AppendInt(e.b[1:1], v, 10))\n\t\te.b[0] = '\"'\n\t\te.b[blen-1] = '\"'\n\t\te.w.writeb(e.b[:blen])\n\t\treturn\n\t}\n\te.w.writeb(strconv.AppendInt(e.b[:0], v, 10))\n}\n\nfunc (e *jsonEncDriverGeneric) EncodeUint(v uint64) {\n\tx := e.is\n\tif x == 'A' || x == 'L' && v > 1<<53 || (e.ks && e.e.c == containerMapKey) {\n\t\tblen := 2 + len(strconv.AppendUint(e.b[1:1], v, 10))\n\t\te.b[0] = '\"'\n\t\te.b[blen-1] = '\"'\n\t\te.w.writeb(e.b[:blen])\n\t\treturn\n\t}\n\te.w.writeb(strconv.AppendUint(e.b[:0], v, 10))\n}\n\n// func (e *jsonEncDriverGeneric) EncodeFloat32(f float32) {\n// \t// e.encodeFloat(float64(f), 32)\n// \t// always encode all floats as IEEE 64-bit floating point.\n// \t// It also ensures that we can decode in full precision even if into a float32,\n// \t// as what is written is always to float64 precision.\n// \te.EncodeFloat64(float64(f))\n// }\n\n// func (e *jsonEncDriverGeneric) atEndOfEncode() {\n// \tif e.tw {\n// \t\tif e.d {\n// \t\t\te.w.writen1('\\n')\n// \t\t} else {\n// \t\t\te.w.writen1(' ')\n// \t\t}\n// \t}\n// }\n\n// --------------------\n\ntype jsonEncDriver struct {\n\tnoBuiltInTypes\n\tw *encWriterSwitch\n\te *Encoder\n\th *JsonHandle\n\n\tbs []byte // for encoding strings\n\tse interfaceExtWrapper\n\n\t// ---- cpu cache line boundary?\n\t// ds string // indent string\n\tdi int8 // indent per: if negative, use tabs\n\td  bool // indenting?\n\t// dt bool   // indent using tabs\n\tdl uint16 // indent level\n\tks bool   // map key as string\n\tis byte   // integer as string\n\n\ts *bitset256 // safe set for characters (taking h.HTMLAsIs into consideration)\n\t// scratch: encode time, numbers, etc. Note: leave 1 byte for containerState\n\tb [jsonScratchArrayLen - 16]byte // leave space for bs(len,cap), containerState\n}\n\n// Keep writeIndent, WriteArrayElem, WriteMapElemKey, WriteMapElemValue\n// in jsonEncDriver, so that *Encoder can directly call them\n\nfunc (e *jsonEncDriver) getJsonEncDriver() *jsonEncDriver { return e }\n\nfunc (e *jsonEncDriver) writeIndent() {\n\te.w.writen1('\\n')\n\tx := int(e.di) * int(e.dl)\n\tif e.di < 0 {\n\t\tx = -x\n\t\tfor x > jsonSpacesOrTabsLen {\n\t\t\te.w.writeb(jsonTabs[:])\n\t\t\tx -= jsonSpacesOrTabsLen\n\t\t}\n\t\te.w.writeb(jsonTabs[:x])\n\t} else {\n\t\tfor x > jsonSpacesOrTabsLen {\n\t\t\te.w.writeb(jsonSpaces[:])\n\t\t\tx -= jsonSpacesOrTabsLen\n\t\t}\n\t\te.w.writeb(jsonSpaces[:x])\n\t}\n}\n\nfunc (e *jsonEncDriver) WriteArrayElem() {\n\t// xdebugf(\"WriteArrayElem: e.e.c: %d\", e.e.c)\n\tif e.e.c != containerArrayStart {\n\t\te.w.writen1(',')\n\t}\n\tif e.d {\n\t\te.writeIndent()\n\t}\n}\n\nfunc (e *jsonEncDriver) WriteMapElemKey() {\n\tif e.e.c != containerMapStart {\n\t\te.w.writen1(',')\n\t}\n\tif e.d {\n\t\te.writeIndent()\n\t}\n}\n\nfunc (e *jsonEncDriver) WriteMapElemValue() {\n\tif e.d {\n\t\te.w.writen2(':', ' ')\n\t} else {\n\t\te.w.writen1(':')\n\t}\n}\n\nfunc (e *jsonEncDriver) EncodeNil() {\n\t// We always encode nil as just null (never in quotes)\n\t// This allows us to easily decode if a nil in the json stream\n\t// ie if initial token is n.\n\te.w.writeb(jsonLiterals[jsonLitNull : jsonLitNull+4])\n\n\t// if e.h.MapKeyAsString && e.e.c == containerMapKey {\n\t// \te.w.writeb(jsonLiterals[jsonLitNullQ : jsonLitNullQ+6])\n\t// } else {\n\t// \te.w.writeb(jsonLiterals[jsonLitNull : jsonLitNull+4])\n\t// }\n}\n\nfunc (e *jsonEncDriver) EncodeTime(t time.Time) {\n\t// Do NOT use MarshalJSON, as it allocates internally.\n\t// instead, we call AppendFormat directly, using our scratch buffer (e.b)\n\tif t.IsZero() {\n\t\te.EncodeNil()\n\t} else {\n\t\te.b[0] = '\"'\n\t\tb := t.AppendFormat(e.b[1:1], time.RFC3339Nano)\n\t\te.b[len(b)+1] = '\"'\n\t\te.w.writeb(e.b[:len(b)+2])\n\t}\n\t// v, err := t.MarshalJSON(); if err != nil { e.e.error(err) } e.w.writeb(v)\n}\n\nfunc (e *jsonEncDriver) EncodeExt(rv interface{}, xtag uint64, ext Ext, en *Encoder) {\n\tif v := ext.ConvertExt(rv); v == nil {\n\t\te.EncodeNil()\n\t} else {\n\t\ten.encode(v)\n\t}\n}\n\nfunc (e *jsonEncDriver) EncodeRawExt(re *RawExt, en *Encoder) {\n\t// only encodes re.Value (never re.Data)\n\tif re.Value == nil {\n\t\te.EncodeNil()\n\t} else {\n\t\ten.encode(re.Value)\n\t}\n}\n\nfunc (e *jsonEncDriver) EncodeStringEnc(c charEncoding, v string) {\n\te.quoteStr(v)\n}\n\nfunc (e *jsonEncDriver) EncodeStringBytesRaw(v []byte) {\n\t// if encoding raw bytes and RawBytesExt is configured, use it to encode\n\tif v == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tif e.se.InterfaceExt != nil {\n\t\te.EncodeExt(v, 0, &e.se, e.e)\n\t\treturn\n\t}\n\n\tslen := base64.StdEncoding.EncodedLen(len(v)) + 2\n\tif cap(e.bs) >= slen {\n\t\te.bs = e.bs[:slen]\n\t} else {\n\t\te.bs = make([]byte, slen)\n\t}\n\te.bs[0] = '\"'\n\tbase64.StdEncoding.Encode(e.bs[1:], v)\n\te.bs[slen-1] = '\"'\n\te.w.writeb(e.bs)\n}\n\nfunc (e *jsonEncDriver) EncodeAsis(v []byte) {\n\te.w.writeb(v)\n}\n\nfunc (e *jsonEncDriver) quoteStr(s string) {\n\t// adapted from std pkg encoding/json\n\tconst hex = \"0123456789abcdef\"\n\tw := e.w\n\tw.writen1('\"')\n\tvar start int\n\tfor i := 0; i < len(s); {\n\t\t// encode all bytes < 0x20 (except \\r, \\n).\n\t\t// also encode < > & to prevent security holes when served to some browsers.\n\n\t\t// We optimize for ascii, by assumining that most characters are in the BMP\n\t\t// and natively consumed by json without much computation.\n\n\t\t// if 0x20 <= b && b != '\\\\' && b != '\"' && b != '<' && b != '>' && b != '&' {\n\t\t// if (htmlasis && jsonCharSafeSet.isset(b)) || jsonCharHtmlSafeSet.isset(b) {\n\t\tif e.s.isset(s[i]) {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\tif b := s[i]; b < utf8.RuneSelf {\n\t\t\tif start < i {\n\t\t\t\tw.writestr(s[start:i])\n\t\t\t}\n\t\t\tswitch b {\n\t\t\tcase '\\\\', '\"':\n\t\t\t\tw.writen2('\\\\', b)\n\t\t\tcase '\\n':\n\t\t\t\tw.writen2('\\\\', 'n')\n\t\t\tcase '\\r':\n\t\t\t\tw.writen2('\\\\', 'r')\n\t\t\tcase '\\b':\n\t\t\t\tw.writen2('\\\\', 'b')\n\t\t\tcase '\\f':\n\t\t\t\tw.writen2('\\\\', 'f')\n\t\t\tcase '\\t':\n\t\t\t\tw.writen2('\\\\', 't')\n\t\t\tdefault:\n\t\t\t\tw.writestr(`\\u00`)\n\t\t\t\tw.writen2(hex[b>>4], hex[b&0xF])\n\t\t\t}\n\t\t\ti++\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\tc, size := utf8.DecodeRuneInString(s[i:])\n\t\tif c == utf8.RuneError {\n\t\t\tif size == 1 {\n\t\t\t\tif start < i {\n\t\t\t\t\tw.writestr(s[start:i])\n\t\t\t\t}\n\t\t\t\tw.writestr(`\\ufffd`)\n\t\t\t\ti++\n\t\t\t\tstart = i\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// U+2028 is LINE SEPARATOR. U+2029 is PARAGRAPH SEPARATOR.\n\t\t// Both technically valid JSON, but bomb on JSONP, so fix here unconditionally.\n\t\tif c == '\\u2028' || c == '\\u2029' {\n\t\t\tif start < i {\n\t\t\t\tw.writestr(s[start:i])\n\t\t\t}\n\t\t\tw.writestr(`\\u202`)\n\t\t\tw.writen1(hex[c&0xF])\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\ti += size\n\t}\n\tif start < len(s) {\n\t\tw.writestr(s[start:])\n\t}\n\tw.writen1('\"')\n}\n\nfunc (e *jsonEncDriver) atEndOfEncode() {\n\t// if e.e.c == 0 { // scalar written, output space\n\t// \te.w.writen1(' ')\n\t// } else if e.h.TermWhitespace { // container written, output new-line\n\t// \te.w.writen1('\\n')\n\t// }\n\tif e.h.TermWhitespace {\n\t\tif e.e.c == 0 { // scalar written, output space\n\t\t\te.w.writen1(' ')\n\t\t} else { // container written, output new-line\n\t\t\te.w.writen1('\\n')\n\t\t}\n\t}\n\n}\n\ntype jsonDecDriver struct {\n\tnoBuiltInTypes\n\td  *Decoder\n\th  *JsonHandle\n\tr  *decReaderSwitch\n\tse interfaceExtWrapper\n\n\tbs []byte // scratch, initialized from b. For parsing strings or numbers.\n\t// ---- writable fields during execution --- *try* to keep in sep cache line\n\n\t// ---- cpu cache line boundary?\n\tb [jsonScratchArrayLen]byte // scratch 1, used for parsing strings or numbers or time.Time\n\t// ---- cpu cache line boundary?\n\t// c     containerState\n\ttok   uint8                         // used to store the token read right after skipWhiteSpace\n\tfnull bool                          // found null from appendStringAsBytes\n\t_     [2]byte                       // padding\n\tbstr  [4]byte                       // scratch used for string \\UXXX parsing\n\tb2    [jsonScratchArrayLen - 8]byte // scratch 2, used only for readUntil, decNumBytes\n\n\t// _ [3]uint64 // padding\n\t// n jsonNum\n}\n\n// func jsonIsWS(b byte) bool {\n// \t// return b == ' ' || b == '\\t' || b == '\\r' || b == '\\n'\n// \treturn jsonCharWhitespaceSet.isset(b)\n// }\n\nfunc (d *jsonDecDriver) uncacheRead() {\n\tif d.tok != 0 {\n\t\td.r.unreadn1()\n\t\td.tok = 0\n\t}\n}\n\nfunc (d *jsonDecDriver) ReadMapStart() int {\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tconst xc uint8 = '{'\n\tif d.tok != xc {\n\t\td.d.errorf(\"read map - expect char '%c' but got char '%c'\", xc, d.tok)\n\t}\n\td.tok = 0\n\treturn -1\n}\n\nfunc (d *jsonDecDriver) ReadArrayStart() int {\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tconst xc uint8 = '['\n\tif d.tok != xc {\n\t\td.d.errorf(\"read array - expect char '%c' but got char '%c'\", xc, d.tok)\n\t}\n\td.tok = 0\n\treturn -1\n}\n\nfunc (d *jsonDecDriver) CheckBreak() bool {\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\treturn d.tok == '}' || d.tok == ']'\n}\n\n// For the ReadXXX methods below, we could just delegate to helper functions\n// readContainerState(c containerState, xc uint8, check bool)\n// - ReadArrayElem would become:\n//   readContainerState(containerArrayElem, ',', d.d.c != containerArrayStart)\n//\n// However, until mid-stack inlining comes in go1.11 which supports inlining of\n// one-liners, we explicitly write them all 5 out to elide the extra func call.\n//\n// TODO: For Go 1.11, if inlined, consider consolidating these.\n\nfunc (d *jsonDecDriver) ReadArrayElem() {\n\tconst xc uint8 = ','\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\t// xdebugf(\"ReadArrayElem: d.d.c: %d, token: %c\", d.d.c, d.tok)\n\tif d.d.c != containerArrayStart {\n\t\tif d.tok != xc {\n\t\t\td.d.errorf(\"read array element - expect char '%c' but got char '%c'\", xc, d.tok)\n\t\t}\n\t\td.tok = 0\n\t}\n}\n\nfunc (d *jsonDecDriver) ReadArrayEnd() {\n\tconst xc uint8 = ']'\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tif d.tok != xc {\n\t\td.d.errorf(\"read array end - expect char '%c' but got char '%c'\", xc, d.tok)\n\t}\n\td.tok = 0\n}\n\nfunc (d *jsonDecDriver) ReadMapElemKey() {\n\tconst xc uint8 = ','\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tif d.d.c != containerMapStart {\n\t\tif d.tok != xc {\n\t\t\td.d.errorf(\"read map key - expect char '%c' but got char '%c'\", xc, d.tok)\n\t\t}\n\t\td.tok = 0\n\t}\n}\n\nfunc (d *jsonDecDriver) ReadMapElemValue() {\n\tconst xc uint8 = ':'\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tif d.tok != xc {\n\t\td.d.errorf(\"read map value - expect char '%c' but got char '%c'\", xc, d.tok)\n\t}\n\td.tok = 0\n}\n\nfunc (d *jsonDecDriver) ReadMapEnd() {\n\tconst xc uint8 = '}'\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tif d.tok != xc {\n\t\td.d.errorf(\"read map end - expect char '%c' but got char '%c'\", xc, d.tok)\n\t}\n\td.tok = 0\n}\n\n// func (d *jsonDecDriver) readLit(length, fromIdx uint8) {\n// \t// length here is always less than 8 (literals are: null, true, false)\n// \tbs := d.r.readx(int(length))\n// \td.tok = 0\n// \tif jsonValidateSymbols && !bytes.Equal(bs, jsonLiterals[fromIdx:fromIdx+length]) {\n// \t\td.d.errorf(\"expecting %s: got %s\", jsonLiterals[fromIdx:fromIdx+length], bs)\n// \t}\n// }\n\nfunc (d *jsonDecDriver) readLit4True() {\n\tbs := d.r.readx(3)\n\td.tok = 0\n\tif jsonValidateSymbols && !bytes.Equal(bs, jsonLiteral4True) {\n\t\td.d.errorf(\"expecting %s: got %s\", jsonLiteral4True, bs)\n\t}\n}\n\nfunc (d *jsonDecDriver) readLit4False() {\n\tbs := d.r.readx(4)\n\td.tok = 0\n\tif jsonValidateSymbols && !bytes.Equal(bs, jsonLiteral4False) {\n\t\td.d.errorf(\"expecting %s: got %s\", jsonLiteral4False, bs)\n\t}\n}\n\nfunc (d *jsonDecDriver) readLit4Null() {\n\tbs := d.r.readx(3)\n\td.tok = 0\n\tif jsonValidateSymbols && !bytes.Equal(bs, jsonLiteral4Null) {\n\t\td.d.errorf(\"expecting %s: got %s\", jsonLiteral4Null, bs)\n\t}\n}\n\nfunc (d *jsonDecDriver) TryDecodeAsNil() bool {\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\t// we shouldn't try to see if \"null\" was here, right?\n\t// only the plain string: `null` denotes a nil (ie not quotes)\n\tif d.tok == 'n' {\n\t\td.readLit4Null()\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *jsonDecDriver) DecodeBool() (v bool) {\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tfquot := d.d.c == containerMapKey && d.tok == '\"'\n\tif fquot {\n\t\td.tok = d.r.readn1()\n\t}\n\tswitch d.tok {\n\tcase 'f':\n\t\td.readLit4False()\n\t\t// v = false\n\tcase 't':\n\t\td.readLit4True()\n\t\tv = true\n\tdefault:\n\t\td.d.errorf(\"decode bool: got first char %c\", d.tok)\n\t\t// v = false // \"unreachable\"\n\t}\n\tif fquot {\n\t\td.r.readn1()\n\t}\n\treturn\n}\n\nfunc (d *jsonDecDriver) DecodeTime() (t time.Time) {\n\t// read string, and pass the string into json.unmarshal\n\td.appendStringAsBytes()\n\tif d.fnull {\n\t\treturn\n\t}\n\tt, err := time.Parse(time.RFC3339, stringView(d.bs))\n\tif err != nil {\n\t\td.d.errorv(err)\n\t}\n\treturn\n}\n\nfunc (d *jsonDecDriver) ContainerType() (vt valueType) {\n\t// check container type by checking the first char\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\n\t// optimize this, so we don't do 4 checks but do one computation.\n\t// return jsonContainerSet[d.tok]\n\n\t// ContainerType is mostly called for Map and Array,\n\t// so this conditional is good enough (max 2 checks typically)\n\tif b := d.tok; b == '{' {\n\t\treturn valueTypeMap\n\t} else if b == '[' {\n\t\treturn valueTypeArray\n\t} else if b == 'n' {\n\t\treturn valueTypeNil\n\t} else if b == '\"' {\n\t\treturn valueTypeString\n\t}\n\treturn valueTypeUnset\n}\n\nfunc (d *jsonDecDriver) decNumBytes() (bs []byte) {\n\t// stores num bytes in d.bs\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tif d.tok == '\"' {\n\t\tbs = d.r.readUntil(d.b2[:0], '\"')\n\t\tbs = bs[:len(bs)-1]\n\t} else {\n\t\td.r.unreadn1()\n\t\tbs = d.r.readTo(d.bs[:0], &jsonNumSet)\n\t}\n\td.tok = 0\n\treturn bs\n}\n\nfunc (d *jsonDecDriver) DecodeUint64() (u uint64) {\n\tbs := d.decNumBytes()\n\tif len(bs) == 0 {\n\t\treturn\n\t}\n\tn, neg, badsyntax, overflow := jsonParseInteger(bs)\n\tif overflow {\n\t\td.d.errorf(\"overflow parsing unsigned integer: %s\", bs)\n\t} else if neg {\n\t\td.d.errorf(\"minus found parsing unsigned integer: %s\", bs)\n\t} else if badsyntax {\n\t\t// fallback: try to decode as float, and cast\n\t\tn = d.decUint64ViaFloat(stringView(bs))\n\t}\n\treturn n\n}\n\nfunc (d *jsonDecDriver) DecodeInt64() (i int64) {\n\tconst cutoff = uint64(1 << uint(64-1))\n\tbs := d.decNumBytes()\n\tif len(bs) == 0 {\n\t\treturn\n\t}\n\tn, neg, badsyntax, overflow := jsonParseInteger(bs)\n\tif overflow {\n\t\td.d.errorf(\"overflow parsing integer: %s\", bs)\n\t} else if badsyntax {\n\t\t// d.d.errorf(\"invalid syntax for integer: %s\", bs)\n\t\t// fallback: try to decode as float, and cast\n\t\tif neg {\n\t\t\tn = d.decUint64ViaFloat(stringView(bs[1:]))\n\t\t} else {\n\t\t\tn = d.decUint64ViaFloat(stringView(bs))\n\t\t}\n\t}\n\tif neg {\n\t\tif n > cutoff {\n\t\t\td.d.errorf(\"overflow parsing integer: %s\", bs)\n\t\t}\n\t\ti = -(int64(n))\n\t} else {\n\t\tif n >= cutoff {\n\t\t\td.d.errorf(\"overflow parsing integer: %s\", bs)\n\t\t}\n\t\ti = int64(n)\n\t}\n\treturn\n}\n\nfunc (d *jsonDecDriver) decUint64ViaFloat(s string) (u uint64) {\n\tif len(s) == 0 {\n\t\treturn\n\t}\n\tf, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\td.d.errorf(\"invalid syntax for integer: %s\", s)\n\t\t// d.d.errorv(err)\n\t}\n\tfi, ff := math.Modf(f)\n\tif ff > 0 {\n\t\td.d.errorf(\"fractional part found parsing integer: %s\", s)\n\t} else if fi > float64(math.MaxUint64) {\n\t\td.d.errorf(\"overflow parsing integer: %s\", s)\n\t}\n\treturn uint64(fi)\n}\n\nfunc (d *jsonDecDriver) decodeFloat(bitsize int) (f float64) {\n\tbs := d.decNumBytes()\n\tif len(bs) == 0 {\n\t\treturn\n\t}\n\tf, err := strconv.ParseFloat(stringView(bs), bitsize)\n\tif err != nil {\n\t\td.d.errorv(err)\n\t}\n\treturn\n}\n\nfunc (d *jsonDecDriver) DecodeFloat64() (f float64) {\n\treturn d.decodeFloat(64)\n}\n\nfunc (d *jsonDecDriver) DecodeFloat32() (f float64) {\n\treturn d.decodeFloat(32)\n}\n\nfunc (d *jsonDecDriver) DecodeExt(rv interface{}, xtag uint64, ext Ext) (realxtag uint64) {\n\tif ext == nil {\n\t\tre := rv.(*RawExt)\n\t\tre.Tag = xtag\n\t\td.d.decode(&re.Value)\n\t} else {\n\t\tvar v interface{}\n\t\td.d.decode(&v)\n\t\text.UpdateExt(rv, v)\n\t}\n\treturn\n}\n\nfunc (d *jsonDecDriver) DecodeBytes(bs []byte, zerocopy bool) (bsOut []byte) {\n\t// if decoding into raw bytes, and the RawBytesExt is configured, use it to decode.\n\tif d.se.InterfaceExt != nil {\n\t\tbsOut = bs\n\t\td.DecodeExt(&bsOut, 0, &d.se)\n\t\treturn\n\t}\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\t// check if an \"array\" of uint8's (see ContainerType for how to infer if an array)\n\tif d.tok == '[' {\n\t\tbsOut, _ = fastpathTV.DecSliceUint8V(bs, true, d.d)\n\t\treturn\n\t}\n\td.appendStringAsBytes()\n\t// base64 encodes []byte{} as \"\", and we encode nil []byte as null.\n\t// Consequently, base64 should decode null as a nil []byte, and \"\" as an empty []byte{}.\n\t// appendStringAsBytes returns a zero-len slice for both, so as not to reset d.bs.\n\t// However, it sets a fnull field to true, so we can check if a null was found.\n\tif len(d.bs) == 0 {\n\t\tif d.fnull {\n\t\t\treturn nil\n\t\t}\n\t\treturn []byte{}\n\t}\n\tbs0 := d.bs\n\tslen := base64.StdEncoding.DecodedLen(len(bs0))\n\tif slen <= cap(bs) {\n\t\tbsOut = bs[:slen]\n\t} else if zerocopy && slen <= cap(d.b2) {\n\t\tbsOut = d.b2[:slen]\n\t} else {\n\t\tbsOut = make([]byte, slen)\n\t}\n\tslen2, err := base64.StdEncoding.Decode(bsOut, bs0)\n\tif err != nil {\n\t\td.d.errorf(\"error decoding base64 binary '%s': %v\", bs0, err)\n\t\treturn nil\n\t}\n\tif slen != slen2 {\n\t\tbsOut = bsOut[:slen2]\n\t}\n\treturn\n}\n\nfunc (d *jsonDecDriver) DecodeString() (s string) {\n\td.appendStringAsBytes()\n\treturn d.bsToString()\n}\n\nfunc (d *jsonDecDriver) DecodeStringAsBytes() (s []byte) {\n\td.appendStringAsBytes()\n\treturn d.bs\n}\n\nfunc (d *jsonDecDriver) appendStringAsBytes() {\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\n\td.fnull = false\n\tif d.tok != '\"' {\n\t\t// d.d.errorf(\"expect char '%c' but got char '%c'\", '\"', d.tok)\n\t\t// handle non-string scalar: null, true, false or a number\n\t\tswitch d.tok {\n\t\tcase 'n':\n\t\t\td.readLit4Null()\n\t\t\td.bs = d.bs[:0]\n\t\t\td.fnull = true\n\t\tcase 'f':\n\t\t\td.readLit4False()\n\t\t\td.bs = d.bs[:5]\n\t\t\tcopy(d.bs, \"false\")\n\t\tcase 't':\n\t\t\td.readLit4True()\n\t\t\td.bs = d.bs[:4]\n\t\t\tcopy(d.bs, \"true\")\n\t\tdefault:\n\t\t\t// try to parse a valid number\n\t\t\tbs := d.decNumBytes()\n\t\t\tif len(bs) <= cap(d.bs) {\n\t\t\t\td.bs = d.bs[:len(bs)]\n\t\t\t} else {\n\t\t\t\td.bs = make([]byte, len(bs))\n\t\t\t}\n\t\t\tcopy(d.bs, bs)\n\t\t}\n\t\treturn\n\t}\n\n\td.tok = 0\n\tr := d.r\n\tvar cs = r.readUntil(d.b2[:0], '\"')\n\tvar cslen = uint(len(cs))\n\tvar c uint8\n\tv := d.bs[:0]\n\t// append on each byte seen can be expensive, so we just\n\t// keep track of where we last read a contiguous set of\n\t// non-special bytes (using cursor variable),\n\t// and when we see a special byte\n\t// e.g. end-of-slice, \" or \\,\n\t// we will append the full range into the v slice before proceeding\n\tvar i, cursor uint\n\tfor {\n\t\tif i == cslen {\n\t\t\tv = append(v, cs[cursor:]...)\n\t\t\tcs = r.readUntil(d.b2[:0], '\"')\n\t\t\tcslen = uint(len(cs))\n\t\t\ti, cursor = 0, 0\n\t\t}\n\t\tc = cs[i]\n\t\tif c == '\"' {\n\t\t\tv = append(v, cs[cursor:i]...)\n\t\t\tbreak\n\t\t}\n\t\tif c != '\\\\' {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\tv = append(v, cs[cursor:i]...)\n\t\ti++\n\t\tc = cs[i]\n\t\tswitch c {\n\t\tcase '\"', '\\\\', '/', '\\'':\n\t\t\tv = append(v, c)\n\t\tcase 'b':\n\t\t\tv = append(v, '\\b')\n\t\tcase 'f':\n\t\t\tv = append(v, '\\f')\n\t\tcase 'n':\n\t\t\tv = append(v, '\\n')\n\t\tcase 'r':\n\t\t\tv = append(v, '\\r')\n\t\tcase 't':\n\t\t\tv = append(v, '\\t')\n\t\tcase 'u':\n\t\t\tvar r rune\n\t\t\tvar rr uint32\n\t\t\tif cslen < i+4 {\n\t\t\t\td.d.errorf(\"need at least 4 more bytes for unicode sequence\")\n\t\t\t}\n\t\t\tvar j uint\n\t\t\tfor _, c = range cs[i+1 : i+5] { // bounds-check-elimination\n\t\t\t\t// best to use explicit if-else\n\t\t\t\t// - not a table, etc which involve memory loads, array lookup with bounds checks, etc\n\t\t\t\tif c >= '0' && c <= '9' {\n\t\t\t\t\trr = rr*16 + uint32(c-jsonU4Chk2)\n\t\t\t\t} else if c >= 'a' && c <= 'f' {\n\t\t\t\t\trr = rr*16 + uint32(c-jsonU4Chk1)\n\t\t\t\t} else if c >= 'A' && c <= 'F' {\n\t\t\t\t\trr = rr*16 + uint32(c-jsonU4Chk0)\n\t\t\t\t} else {\n\t\t\t\t\tr = unicode.ReplacementChar\n\t\t\t\t\ti += 4\n\t\t\t\t\tgoto encode_rune\n\t\t\t\t}\n\t\t\t}\n\t\t\tr = rune(rr)\n\t\t\ti += 4\n\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\tif len(cs) >= int(i+6) {\n\t\t\t\t\tvar cx = cs[i+1:][:6:6] // [:6] affords bounds-check-elimination\n\t\t\t\t\tif cx[0] == '\\\\' && cx[1] == 'u' {\n\t\t\t\t\t\ti += 2\n\t\t\t\t\t\tvar rr1 uint32\n\t\t\t\t\t\tfor j = 2; j < 6; j++ {\n\t\t\t\t\t\t\tc = cx[j]\n\t\t\t\t\t\t\tif c >= '0' && c <= '9' {\n\t\t\t\t\t\t\t\trr = rr*16 + uint32(c-jsonU4Chk2)\n\t\t\t\t\t\t\t} else if c >= 'a' && c <= 'f' {\n\t\t\t\t\t\t\t\trr = rr*16 + uint32(c-jsonU4Chk1)\n\t\t\t\t\t\t\t} else if c >= 'A' && c <= 'F' {\n\t\t\t\t\t\t\t\trr = rr*16 + uint32(c-jsonU4Chk0)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tr = unicode.ReplacementChar\n\t\t\t\t\t\t\t\ti += 4\n\t\t\t\t\t\t\t\tgoto encode_rune\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = utf16.DecodeRune(r, rune(rr1))\n\t\t\t\t\t\ti += 4\n\t\t\t\t\t\tgoto encode_rune\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tr = unicode.ReplacementChar\n\t\t\t}\n\t\tencode_rune:\n\t\t\tw2 := utf8.EncodeRune(d.bstr[:], r)\n\t\t\tv = append(v, d.bstr[:w2]...)\n\t\tdefault:\n\t\t\td.d.errorf(\"unsupported escaped value: %c\", c)\n\t\t}\n\t\ti++\n\t\tcursor = i\n\t}\n\td.bs = v\n}\n\nfunc (d *jsonDecDriver) nakedNum(z *decNaked, bs []byte) (err error) {\n\tconst cutoff = uint64(1 << uint(64-1))\n\n\tvar n uint64\n\tvar neg, badsyntax, overflow bool\n\n\tif len(bs) == 0 {\n\t\tif d.h.PreferFloat {\n\t\t\tz.v = valueTypeFloat\n\t\t\tz.f = 0\n\t\t} else if d.h.SignedInteger {\n\t\t\tz.v = valueTypeInt\n\t\t\tz.i = 0\n\t\t} else {\n\t\t\tz.v = valueTypeUint\n\t\t\tz.u = 0\n\t\t}\n\t\treturn\n\t}\n\tif d.h.PreferFloat {\n\t\tgoto F\n\t}\n\tn, neg, badsyntax, overflow = jsonParseInteger(bs)\n\tif badsyntax || overflow {\n\t\tgoto F\n\t}\n\tif neg {\n\t\tif n > cutoff {\n\t\t\tgoto F\n\t\t}\n\t\tz.v = valueTypeInt\n\t\tz.i = -(int64(n))\n\t} else if d.h.SignedInteger {\n\t\tif n >= cutoff {\n\t\t\tgoto F\n\t\t}\n\t\tz.v = valueTypeInt\n\t\tz.i = int64(n)\n\t} else {\n\t\tz.v = valueTypeUint\n\t\tz.u = n\n\t}\n\treturn\nF:\n\tz.v = valueTypeFloat\n\tz.f, err = strconv.ParseFloat(stringView(bs), 64)\n\treturn\n}\n\nfunc (d *jsonDecDriver) bsToString() string {\n\t// if x := d.s.sc; x != nil && x.so && x.st == '}' { // map key\n\tif jsonAlwaysReturnInternString || d.d.c == containerMapKey {\n\t\treturn d.d.string(d.bs)\n\t}\n\treturn string(d.bs)\n}\n\nfunc (d *jsonDecDriver) DecodeNaked() {\n\tz := d.d.naked()\n\t// var decodeFurther bool\n\n\tif d.tok == 0 {\n\t\td.tok = d.r.skip(&jsonCharWhitespaceSet)\n\t}\n\tswitch d.tok {\n\tcase 'n':\n\t\td.readLit4Null()\n\t\tz.v = valueTypeNil\n\tcase 'f':\n\t\td.readLit4False()\n\t\tz.v = valueTypeBool\n\t\tz.b = false\n\tcase 't':\n\t\td.readLit4True()\n\t\tz.v = valueTypeBool\n\t\tz.b = true\n\tcase '{':\n\t\tz.v = valueTypeMap // don't consume. kInterfaceNaked will call ReadMapStart\n\tcase '[':\n\t\tz.v = valueTypeArray // don't consume. kInterfaceNaked will call ReadArrayStart\n\tcase '\"':\n\t\t// if a string, and MapKeyAsString, then try to decode it as a nil, bool or number first\n\t\td.appendStringAsBytes()\n\t\tif len(d.bs) > 0 && d.d.c == containerMapKey && d.h.MapKeyAsString {\n\t\t\tswitch stringView(d.bs) {\n\t\t\tcase \"null\":\n\t\t\t\tz.v = valueTypeNil\n\t\t\tcase \"true\":\n\t\t\t\tz.v = valueTypeBool\n\t\t\t\tz.b = true\n\t\t\tcase \"false\":\n\t\t\t\tz.v = valueTypeBool\n\t\t\t\tz.b = false\n\t\t\tdefault:\n\t\t\t\t// check if a number: float, int or uint\n\t\t\t\tif err := d.nakedNum(z, d.bs); err != nil {\n\t\t\t\t\tz.v = valueTypeString\n\t\t\t\t\tz.s = d.bsToString()\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tz.v = valueTypeString\n\t\t\tz.s = d.bsToString()\n\t\t}\n\tdefault: // number\n\t\tbs := d.decNumBytes()\n\t\tif len(bs) == 0 {\n\t\t\td.d.errorf(\"decode number from empty string\")\n\t\t\treturn\n\t\t}\n\t\tif err := d.nakedNum(z, bs); err != nil {\n\t\t\td.d.errorf(\"decode number from %s: %v\", bs, err)\n\t\t\treturn\n\t\t}\n\t}\n\t// if decodeFurther {\n\t// \td.s.sc.retryRead()\n\t// }\n}\n\n//----------------------\n\n// JsonHandle is a handle for JSON encoding format.\n//\n// Json is comprehensively supported:\n//    - decodes numbers into interface{} as int, uint or float64\n//      based on how the number looks and some config parameters e.g. PreferFloat, SignedInt, etc.\n//    - decode integers from float formatted numbers e.g. 1.27e+8\n//    - decode any json value (numbers, bool, etc) from quoted strings\n//    - configurable way to encode/decode []byte .\n//      by default, encodes and decodes []byte using base64 Std Encoding\n//    - UTF-8 support for encoding and decoding\n//\n// It has better performance than the json library in the standard library,\n// by leveraging the performance improvements of the codec library.\n//\n// In addition, it doesn't read more bytes than necessary during a decode, which allows\n// reading multiple values from a stream containing json and non-json content.\n// For example, a user can read a json value, then a cbor value, then a msgpack value,\n// all from the same stream in sequence.\n//\n// Note that, when decoding quoted strings, invalid UTF-8 or invalid UTF-16 surrogate pairs are\n// not treated as an error. Instead, they are replaced by the Unicode replacement character U+FFFD.\ntype JsonHandle struct {\n\ttextEncodingType\n\tBasicHandle\n\n\t// Indent indicates how a value is encoded.\n\t//   - If positive, indent by that number of spaces.\n\t//   - If negative, indent by that number of tabs.\n\tIndent int8\n\n\t// IntegerAsString controls how integers (signed and unsigned) are encoded.\n\t//\n\t// Per the JSON Spec, JSON numbers are 64-bit floating point numbers.\n\t// Consequently, integers > 2^53 cannot be represented as a JSON number without losing precision.\n\t// This can be mitigated by configuring how to encode integers.\n\t//\n\t// IntegerAsString interpretes the following values:\n\t//   - if 'L', then encode integers > 2^53 as a json string.\n\t//   - if 'A', then encode all integers as a json string\n\t//             containing the exact integer representation as a decimal.\n\t//   - else    encode all integers as a json number (default)\n\tIntegerAsString byte\n\n\t// HTMLCharsAsIs controls how to encode some special characters to html: < > &\n\t//\n\t// By default, we encode them as \\uXXX\n\t// to prevent security holes when served from some browsers.\n\tHTMLCharsAsIs bool\n\n\t// PreferFloat says that we will default to decoding a number as a float.\n\t// If not set, we will examine the characters of the number and decode as an\n\t// integer type if it doesn't have any of the characters [.eE].\n\tPreferFloat bool\n\n\t// TermWhitespace says that we add a whitespace character\n\t// at the end of an encoding.\n\t//\n\t// The whitespace is important, especially if using numbers in a context\n\t// where multiple items are written to a stream.\n\tTermWhitespace bool\n\n\t// MapKeyAsString says to encode all map keys as strings.\n\t//\n\t// Use this to enforce strict json output.\n\t// The only caveat is that nil value is ALWAYS written as null (never as \"null\")\n\tMapKeyAsString bool\n\n\t// _ uint64 // padding (cache line)\n\n\t// Note: below, we store hardly-used items\n\t// e.g. RawBytesExt (which is already cached in the (en|de)cDriver).\n\n\t// RawBytesExt, if configured, is used to encode and decode raw bytes in a custom way.\n\t// If not configured, raw bytes are encoded to/from base64 text.\n\tRawBytesExt InterfaceExt\n\n\t// _ [2]uint64 // padding\n}\n\n// Name returns the name of the handle: json\nfunc (h *JsonHandle) Name() string            { return \"json\" }\nfunc (h *JsonHandle) hasElemSeparators() bool { return true }\nfunc (h *JsonHandle) typical() bool {\n\treturn h.Indent == 0 && !h.MapKeyAsString && h.IntegerAsString != 'A' && h.IntegerAsString != 'L'\n}\n\nfunc (h *JsonHandle) recreateEncDriver(ed encDriver) (v bool) {\n\t_, v = ed.(*jsonEncDriverTypical)\n\treturn v != h.typical()\n}\n\n// SetInterfaceExt sets an extension\nfunc (h *JsonHandle) SetInterfaceExt(rt reflect.Type, tag uint64, ext InterfaceExt) (err error) {\n\treturn h.SetExt(rt, tag, &interfaceExtWrapper{InterfaceExt: ext})\n}\n\nfunc (h *JsonHandle) newEncDriver(e *Encoder) (ee encDriver) {\n\tvar hd *jsonEncDriver\n\tif h.typical() {\n\t\tvar v jsonEncDriverTypical\n\t\tee = &v\n\t\thd = &v.jsonEncDriver\n\t} else {\n\t\tvar v jsonEncDriverGeneric\n\t\tee = &v\n\t\thd = &v.jsonEncDriver\n\t}\n\thd.e, hd.h, hd.bs = e, h, hd.b[:0]\n\tee.reset()\n\treturn\n}\n\nfunc (h *JsonHandle) newDecDriver(d *Decoder) decDriver {\n\t// d := jsonDecDriver{r: r.(*bytesDecReader), h: h}\n\thd := jsonDecDriver{d: d, h: h}\n\thd.bs = hd.b[:0]\n\thd.reset()\n\treturn &hd\n}\n\nfunc (e *jsonEncDriver) reset() {\n\te.w = e.e.w()\n\t// (htmlasis && jsonCharSafeSet.isset(b)) || jsonCharHtmlSafeSet.isset(b)\n\tif e.h.HTMLCharsAsIs {\n\t\te.s = &jsonCharSafeSet\n\t} else {\n\t\te.s = &jsonCharHtmlSafeSet\n\t}\n\te.se.InterfaceExt = e.h.RawBytesExt\n\tif e.bs == nil {\n\t\te.bs = e.b[:0]\n\t} else {\n\t\te.bs = e.bs[:0]\n\t}\n}\n\nfunc (d *jsonDecDriver) reset() {\n\td.r = d.d.r()\n\td.se.InterfaceExt = d.h.RawBytesExt\n\tif d.bs != nil {\n\t\td.bs = d.bs[:0]\n\t}\n\td.tok = 0\n\t// d.n.reset()\n}\n\n// jsonFloatStrconvFmtPrec ...\n//\n// ensure that every float has an 'e' or '.' in it,/ for easy differentiation from integers.\n// this is better/faster than checking if  encoded value has [e.] and appending if needed.\n\n// func jsonFloatStrconvFmtPrec(f float64, bits32 bool) (fmt byte, prec int) {\n// \tfmt = 'f'\n// \tprec = -1\n// \tvar abs = math.Abs(f)\n// \tif abs == 0 || abs == 1 {\n// \t\tprec = 1\n// \t} else if !bits32 && (abs < 1e-6 || abs >= 1e21) ||\n// \t\tbits32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n// \t\tfmt = 'e'\n// \t} else if _, frac := math.Modf(abs); frac == 0 {\n// \t\t// ensure that floats have a .0 at the end, for easy identification as floats\n// \t\tprec = 1\n// \t}\n// \treturn\n// }\n\nfunc jsonFloatStrconvFmtPrec64(f float64) (fmt byte, prec int8) {\n\tfmt = 'f'\n\tprec = -1\n\tvar abs = math.Abs(f)\n\tif abs == 0 || abs == 1 {\n\t\tprec = 1\n\t} else if abs < 1e-6 || abs >= 1e21 {\n\t\tfmt = 'e'\n\t} else if noFrac64(abs) { // _, frac := math.Modf(abs); frac == 0 {\n\t\tprec = 1\n\t}\n\treturn\n}\n\nfunc jsonFloatStrconvFmtPrec32(f float32) (fmt byte, prec int8) {\n\tfmt = 'f'\n\tprec = -1\n\tvar abs = abs32(f)\n\tif abs == 0 || abs == 1 {\n\t\tprec = 1\n\t} else if abs < 1e-6 || abs >= 1e21 {\n\t\tfmt = 'e'\n\t} else if noFrac32(abs) { // _, frac := math.Modf(abs); frac == 0 {\n\t\tprec = 1\n\t}\n\treturn\n}\n\n// custom-fitted version of strconv.Parse(Ui|I)nt.\n// Also ensures we don't have to search for .eE to determine if a float or not.\n// Note: s CANNOT be a zero-length slice.\nfunc jsonParseInteger(s []byte) (n uint64, neg, badSyntax, overflow bool) {\n\tconst maxUint64 = (1<<64 - 1)\n\tconst cutoff = maxUint64/10 + 1\n\n\tif len(s) == 0 { // bounds-check-elimination\n\t\t// treat empty string as zero value\n\t\t// badSyntax = true\n\t\treturn\n\t}\n\tswitch s[0] {\n\tcase '+':\n\t\ts = s[1:]\n\tcase '-':\n\t\ts = s[1:]\n\t\tneg = true\n\t}\n\tfor _, c := range s {\n\t\tif c < '0' || c > '9' {\n\t\t\tbadSyntax = true\n\t\t\treturn\n\t\t}\n\t\t// unsigned integers don't overflow well on multiplication, so check cutoff here\n\t\t// e.g. (maxUint64-5)*10 doesn't overflow well ...\n\t\tif n >= cutoff {\n\t\t\toverflow = true\n\t\t\treturn\n\t\t}\n\t\tn *= 10\n\t\tn1 := n + uint64(c-'0')\n\t\tif n1 < n || n1 > maxUint64 {\n\t\t\toverflow = true\n\t\t\treturn\n\t\t}\n\t\tn = n1\n\t}\n\treturn\n}\n\nvar _ decDriverContainerTracker = (*jsonDecDriver)(nil)\nvar _ encDriverContainerTracker = (*jsonEncDriver)(nil)\nvar _ decDriver = (*jsonDecDriver)(nil)\nvar _ encDriver = (*jsonEncDriverGeneric)(nil)\nvar _ encDriver = (*jsonEncDriverTypical)(nil)\nvar _ (interface{ getJsonEncDriver() *jsonEncDriver }) = (*jsonEncDriverTypical)(nil)\nvar _ (interface{ getJsonEncDriver() *jsonEncDriver }) = (*jsonEncDriverGeneric)(nil)\nvar _ (interface{ getJsonEncDriver() *jsonEncDriver }) = (*jsonEncDriver)(nil)\n\n// var _ encDriver = (*jsonEncDriver)(nil)\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/mammoth-test.go.tmpl",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from mammoth-test.go.tmpl - DO NOT EDIT.\n\npackage codec\n\nimport \"testing\"\nimport \"fmt\"\nimport \"reflect\"\n\n// TestMammoth has all the different paths optimized in fast-path\n// It has all the primitives, slices and maps.\n// \n// For each of those types, it has a pointer and a non-pointer field.\n\nfunc init() { _ = fmt.Printf } // so we can include fmt as needed\n\ntype TestMammoth struct {\n\n{{range .Values }}{{if .Primitive }}{{/*\n*/}}{{ .MethodNamePfx \"F\" true }} {{ .Primitive }}\n{{ .MethodNamePfx \"Fptr\" true }} *{{ .Primitive }}\n{{end}}{{end}}\n\n{{range .Values }}{{if not .Primitive }}{{if not .MapKey }}{{/*\n*/}}{{ .MethodNamePfx \"F\" false }} []{{ .Elem }}\n{{ .MethodNamePfx \"Fptr\" false }} *[]{{ .Elem }}\n{{end}}{{end}}{{end}}\n\n{{range .Values }}{{if not .Primitive }}{{if .MapKey }}{{/*\n*/}}{{ .MethodNamePfx \"F\" false }} map[{{ .MapKey }}]{{ .Elem }}\n{{ .MethodNamePfx \"Fptr\" false }} *map[{{ .MapKey }}]{{ .Elem }}\n{{end}}{{end}}{{end}}\n\n}\n\n{{range .Values }}{{if not .Primitive }}{{if not .MapKey }}{{/*\n*/}} type {{ .MethodNamePfx \"typMbs\" false }} []{{ .Elem }}\nfunc (_ {{ .MethodNamePfx \"typMbs\" false }}) MapBySlice() { }\n{{end}}{{end}}{{end}}\n\n{{range .Values }}{{if not .Primitive }}{{if .MapKey }}{{/*\n*/}} type {{ .MethodNamePfx \"typMap\" false }} map[{{ .MapKey }}]{{ .Elem }}\n{{end}}{{end}}{{end}}\n\nfunc doTestMammothSlices(t *testing.T, h Handle) {\n{{range $i, $e := .Values }}{{if not .Primitive }}{{if not .MapKey }}{{/*\n*/}}\n    var v{{$i}}va [8]{{ .Elem }}\n    for _, v := range [][]{{ .Elem }}{ nil, {}, { {{ nonzerocmd .Elem }}, {{ zerocmd .Elem }}, {{ zerocmd .Elem }}, {{ nonzerocmd .Elem }} } } { {{/*\n    // fmt.Printf(\">>>> running mammoth slice v{{$i}}: %v\\n\", v)\n    //   - encode value to some []byte\n    //   - decode into a length-wise-equal []byte\n    //   - check if equal to initial slice\n    //   - encode ptr to the value\n    //   - check if encode bytes are same\n    //   - decode into ptrs to: nil, then 1-elem slice, equal-length, then large len slice\n    //   - decode into non-addressable slice of equal length, then larger len \n    //   - for each decode, compare elem-by-elem to the original slice\n    //   - \n    //   - rinse and repeat for a MapBySlice version\n    //   - \n    */}}\n    var v{{$i}}v1, v{{$i}}v2 []{{ .Elem }}\n\tv{{$i}}v1 = v\n\tbs{{$i}} := testMarshalErr(v{{$i}}v1, h, t, \"enc-slice-v{{$i}}\")\n\tif v == nil { v{{$i}}v2 = nil } else { v{{$i}}v2 = make([]{{ .Elem }}, len(v)) }\n\ttestUnmarshalErr(v{{$i}}v2, bs{{$i}}, h, t, \"dec-slice-v{{$i}}\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-slice-v{{$i}}\")\n\tif v == nil { v{{$i}}v2 = nil } else { v{{$i}}v2 = make([]{{ .Elem }}, len(v)) }\n\ttestUnmarshalErr(reflect.ValueOf(v{{$i}}v2), bs{{$i}}, h, t, \"dec-slice-v{{$i}}-noaddr\") // non-addressable value\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-slice-v{{$i}}-noaddr\")\n\t// ...\n\tbs{{$i}} = testMarshalErr(&v{{$i}}v1, h, t, \"enc-slice-v{{$i}}-p\")\n\tv{{$i}}v2 = nil\n\ttestUnmarshalErr(&v{{$i}}v2, bs{{$i}}, h, t, \"dec-slice-v{{$i}}-p\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-slice-v{{$i}}-p\")\n\tv{{$i}}va = [8]{{ .Elem }}{} // clear the array\n\tv{{$i}}v2 = v{{$i}}va[:1:1]\n\ttestUnmarshalErr(&v{{$i}}v2, bs{{$i}}, h, t, \"dec-slice-v{{$i}}-p-1\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-slice-v{{$i}}-p-1\")\n\tv{{$i}}va = [8]{{ .Elem }}{} // clear the array\n\tv{{$i}}v2 = v{{$i}}va[:len(v{{$i}}v1):len(v{{$i}}v1)]\n\ttestUnmarshalErr(&v{{$i}}v2, bs{{$i}}, h, t, \"dec-slice-v{{$i}}-p-len\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-slice-v{{$i}}-p-len\")\n\tv{{$i}}va = [8]{{ .Elem }}{} // clear the array\n\tv{{$i}}v2 = v{{$i}}va[:]\n\ttestUnmarshalErr(&v{{$i}}v2, bs{{$i}}, h, t, \"dec-slice-v{{$i}}-p-cap\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-slice-v{{$i}}-p-cap\")\n\tif len(v{{$i}}v1) > 1 {\n\tv{{$i}}va = [8]{{ .Elem }}{} // clear the array\n\ttestUnmarshalErr((&v{{$i}}va)[:len(v{{$i}}v1)], bs{{$i}}, h, t, \"dec-slice-v{{$i}}-p-len-noaddr\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}va[:len(v{{$i}}v1)], t, \"equal-slice-v{{$i}}-p-len-noaddr\")\n\tv{{$i}}va = [8]{{ .Elem }}{} // clear the array\n\ttestUnmarshalErr((&v{{$i}}va)[:], bs{{$i}}, h, t, \"dec-slice-v{{$i}}-p-cap-noaddr\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}va[:len(v{{$i}}v1)], t, \"equal-slice-v{{$i}}-p-cap-noaddr\")\n    }\n    // ...\n    var v{{$i}}v3, v{{$i}}v4 {{ .MethodNamePfx \"typMbs\" false }}\n\tv{{$i}}v2 = nil\n    if v != nil { v{{$i}}v2 = make([]{{ .Elem }}, len(v)) }\n    v{{$i}}v3 = {{ .MethodNamePfx \"typMbs\" false }}(v{{$i}}v1)\n    v{{$i}}v4 = {{ .MethodNamePfx \"typMbs\" false }}(v{{$i}}v2)\n    bs{{$i}} = testMarshalErr(v{{$i}}v3, h, t, \"enc-slice-v{{$i}}-custom\")\n    testUnmarshalErr(v{{$i}}v4, bs{{$i}}, h, t, \"dec-slice-v{{$i}}-custom\")\n    testDeepEqualErr(v{{$i}}v3, v{{$i}}v4, t, \"equal-slice-v{{$i}}-custom\")\n    bs{{$i}} = testMarshalErr(&v{{$i}}v3, h, t, \"enc-slice-v{{$i}}-custom-p\")\n    v{{$i}}v2 = nil\n    v{{$i}}v4 = {{ .MethodNamePfx \"typMbs\" false }}(v{{$i}}v2)\n    testUnmarshalErr(&v{{$i}}v4, bs{{$i}}, h, t, \"dec-slice-v{{$i}}-custom-p\")\n    testDeepEqualErr(v{{$i}}v3, v{{$i}}v4, t, \"equal-slice-v{{$i}}-custom-p\")\n    }\n{{end}}{{end}}{{end}}\n}\n\nfunc doTestMammothMaps(t *testing.T, h Handle) {\n{{range $i, $e := .Values }}{{if not .Primitive }}{{if .MapKey }}{{/*\n*/}}\n    for _, v := range []map[{{ .MapKey }}]{{ .Elem }}{ nil, {}, { {{ nonzerocmd .MapKey }}:{{ zerocmd .Elem }} {{if ne \"bool\" .MapKey}}, {{ nonzerocmd .MapKey }}:{{ nonzerocmd .Elem }} {{end}} } } {\n    // fmt.Printf(\">>>> running mammoth map v{{$i}}: %v\\n\", v)\n    var v{{$i}}v1, v{{$i}}v2 map[{{ .MapKey }}]{{ .Elem }}\n\tv{{$i}}v1 = v\n\tbs{{$i}} := testMarshalErr(v{{$i}}v1, h, t, \"enc-map-v{{$i}}\")\n\tif v == nil { v{{$i}}v2 = nil } else { v{{$i}}v2 = make(map[{{ .MapKey }}]{{ .Elem }}, len(v)) } // reset map\n\ttestUnmarshalErr(v{{$i}}v2, bs{{$i}}, h, t, \"dec-map-v{{$i}}\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-map-v{{$i}}\")\n\tif v == nil { v{{$i}}v2 = nil } else { v{{$i}}v2 = make(map[{{ .MapKey }}]{{ .Elem }}, len(v)) } // reset map\n\ttestUnmarshalErr(reflect.ValueOf(v{{$i}}v2), bs{{$i}}, h, t, \"dec-map-v{{$i}}-noaddr\") // decode into non-addressable map value\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-map-v{{$i}}-noaddr\")\n\tif v == nil { v{{$i}}v2 = nil } else { v{{$i}}v2 = make(map[{{ .MapKey }}]{{ .Elem }}, len(v)) } // reset map\n\ttestUnmarshalErr(&v{{$i}}v2, bs{{$i}}, h, t, \"dec-map-v{{$i}}-p-len\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-map-v{{$i}}-p-len\")\n\tbs{{$i}} = testMarshalErr(&v{{$i}}v1, h, t, \"enc-map-v{{$i}}-p\")\n\tv{{$i}}v2 = nil\n\ttestUnmarshalErr(&v{{$i}}v2, bs{{$i}}, h, t, \"dec-map-v{{$i}}-p-nil\")\n\ttestDeepEqualErr(v{{$i}}v1, v{{$i}}v2, t, \"equal-map-v{{$i}}-p-nil\")\n    // ...\n\tif v == nil { v{{$i}}v2 = nil } else { v{{$i}}v2 = make(map[{{ .MapKey }}]{{ .Elem }}, len(v)) } // reset map\n    var v{{$i}}v3, v{{$i}}v4 {{ .MethodNamePfx \"typMap\" false }}\n\tv{{$i}}v3 = {{ .MethodNamePfx \"typMap\" false }}(v{{$i}}v1)\n\tv{{$i}}v4 = {{ .MethodNamePfx \"typMap\" false }}(v{{$i}}v2)\n    bs{{$i}} = testMarshalErr(v{{$i}}v3, h, t, \"enc-map-v{{$i}}-custom\")\n\ttestUnmarshalErr(v{{$i}}v4, bs{{$i}}, h, t, \"dec-map-v{{$i}}-p-len\")\n\ttestDeepEqualErr(v{{$i}}v3, v{{$i}}v4, t, \"equal-map-v{{$i}}-p-len\")\n    }\n{{end}}{{end}}{{end}}\n\n}\n\nfunc doTestMammothMapsAndSlices(t *testing.T, h Handle) {\n     doTestMammothSlices(t, h)\n     doTestMammothMaps(t, h)\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/mammoth2-test.go.tmpl",
    "content": "// +build !notfastpath\n\n// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from mammoth2-test.go.tmpl - DO NOT EDIT.\n\npackage codec\n\n// Increase codecoverage by covering all the codecgen paths, in fast-path and gen-helper.go....\n//\n// Add:\n// - test file for creating a mammoth generated file as _mammoth_generated.go\n//   - generate a second mammoth files in a different file: mammoth2_generated_test.go\n//     - mammoth-test.go.tmpl will do this\n//   - run codecgen on it, into mammoth2_codecgen_generated_test.go (no build tags)\n//   - as part of TestMammoth, run it also\n//   - this will cover all the codecgen, gen-helper, etc in one full run\n//   - check in mammoth* files into github also\n// - then\n//\n// Now, add some types:\n//  - some that implement BinaryMarshal, TextMarshal, JSONMarshal, and one that implements none of it\n//  - create a wrapper type that includes TestMammoth2, with it in slices, and maps, and the custom types\n//  - this wrapper object is what we work encode/decode (so that the codecgen methods are called)\n\n\n// import \"encoding/binary\"\nimport \"fmt\"\n\ntype TestMammoth2 struct {\n\n{{range .Values }}{{if .Primitive }}{{/*\n*/}}{{ .MethodNamePfx \"F\" true }} {{ .Primitive }}\n{{ .MethodNamePfx \"Fptr\" true }} *{{ .Primitive }}\n{{end}}{{end}}\n\n{{range .Values }}{{if not .Primitive }}{{if not .MapKey }}{{/*\n*/}}{{ .MethodNamePfx \"F\" false }} []{{ .Elem }}\n{{ .MethodNamePfx \"Fptr\" false }} *[]{{ .Elem }}\n{{end}}{{end}}{{end}}\n\n{{range .Values }}{{if not .Primitive }}{{if .MapKey }}{{/*\n*/}}{{ .MethodNamePfx \"F\" false }} map[{{ .MapKey }}]{{ .Elem }}\n{{ .MethodNamePfx \"Fptr\" false }} *map[{{ .MapKey }}]{{ .Elem }}\n{{end}}{{end}}{{end}}\n\n}\n\n// -----------\n\ntype testMammoth2Binary uint64\nfunc (x testMammoth2Binary) MarshalBinary() (data []byte, err error) {\ndata = make([]byte, 8)\nbigen.PutUint64(data, uint64(x))\nreturn\n}\nfunc (x *testMammoth2Binary) UnmarshalBinary(data []byte) (err error) {\n*x = testMammoth2Binary(bigen.Uint64(data))\nreturn\n}\n\ntype testMammoth2Text uint64\nfunc (x testMammoth2Text) MarshalText() (data []byte, err error) {\ndata = []byte(fmt.Sprintf(\"%b\", uint64(x)))\nreturn\n}\nfunc (x *testMammoth2Text) UnmarshalText(data []byte) (err error) {\n_, err = fmt.Sscanf(string(data), \"%b\", (*uint64)(x))\nreturn\n}\n\ntype testMammoth2Json uint64\nfunc (x testMammoth2Json) MarshalJSON() (data []byte, err error) {\ndata = []byte(fmt.Sprintf(\"%v\", uint64(x)))\nreturn\n}\nfunc (x *testMammoth2Json) UnmarshalJSON(data []byte) (err error) {\n_, err = fmt.Sscanf(string(data), \"%v\", (*uint64)(x))\nreturn\n}\n\ntype testMammoth2Basic [4]uint64\n\ntype TestMammoth2Wrapper struct {\n  V TestMammoth2\n  T testMammoth2Text\n  B testMammoth2Binary\n  J testMammoth2Json\n  C testMammoth2Basic\n  M map[testMammoth2Basic]TestMammoth2\n  L []TestMammoth2\n  A [4]int64\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/msgpack.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n/*\nMSGPACK\n\nMsgpack-c implementation powers the c, c++, python, ruby, etc libraries.\nWe need to maintain compatibility with it and how it encodes integer values\nwithout caring about the type.\n\nFor compatibility with behaviour of msgpack-c reference implementation:\n  - Go intX (>0) and uintX\n       IS ENCODED AS\n    msgpack +ve fixnum, unsigned\n  - Go intX (<0)\n       IS ENCODED AS\n    msgpack -ve fixnum, signed\n*/\n\npackage codec\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net/rpc\"\n\t\"reflect\"\n\t\"time\"\n)\n\nconst (\n\tmpPosFixNumMin byte = 0x00\n\tmpPosFixNumMax byte = 0x7f\n\tmpFixMapMin    byte = 0x80\n\tmpFixMapMax    byte = 0x8f\n\tmpFixArrayMin  byte = 0x90\n\tmpFixArrayMax  byte = 0x9f\n\tmpFixStrMin    byte = 0xa0\n\tmpFixStrMax    byte = 0xbf\n\tmpNil          byte = 0xc0\n\t_              byte = 0xc1\n\tmpFalse        byte = 0xc2\n\tmpTrue         byte = 0xc3\n\tmpFloat        byte = 0xca\n\tmpDouble       byte = 0xcb\n\tmpUint8        byte = 0xcc\n\tmpUint16       byte = 0xcd\n\tmpUint32       byte = 0xce\n\tmpUint64       byte = 0xcf\n\tmpInt8         byte = 0xd0\n\tmpInt16        byte = 0xd1\n\tmpInt32        byte = 0xd2\n\tmpInt64        byte = 0xd3\n\n\t// extensions below\n\tmpBin8     byte = 0xc4\n\tmpBin16    byte = 0xc5\n\tmpBin32    byte = 0xc6\n\tmpExt8     byte = 0xc7\n\tmpExt16    byte = 0xc8\n\tmpExt32    byte = 0xc9\n\tmpFixExt1  byte = 0xd4\n\tmpFixExt2  byte = 0xd5\n\tmpFixExt4  byte = 0xd6\n\tmpFixExt8  byte = 0xd7\n\tmpFixExt16 byte = 0xd8\n\n\tmpStr8  byte = 0xd9 // new\n\tmpStr16 byte = 0xda\n\tmpStr32 byte = 0xdb\n\n\tmpArray16 byte = 0xdc\n\tmpArray32 byte = 0xdd\n\n\tmpMap16 byte = 0xde\n\tmpMap32 byte = 0xdf\n\n\tmpNegFixNumMin byte = 0xe0\n\tmpNegFixNumMax byte = 0xff\n)\n\nvar mpTimeExtTag int8 = -1\nvar mpTimeExtTagU = uint8(mpTimeExtTag)\n\n// var mpdesc = map[byte]string{\n// \tmpPosFixNumMin: \"PosFixNumMin\",\n// \tmpPosFixNumMax: \"PosFixNumMax\",\n// \tmpFixMapMin:    \"FixMapMin\",\n// \tmpFixMapMax:    \"FixMapMax\",\n// \tmpFixArrayMin:  \"FixArrayMin\",\n// \tmpFixArrayMax:  \"FixArrayMax\",\n// \tmpFixStrMin:    \"FixStrMin\",\n// \tmpFixStrMax:    \"FixStrMax\",\n// \tmpNil:          \"Nil\",\n// \tmpFalse:        \"False\",\n// \tmpTrue:         \"True\",\n// \tmpFloat:        \"Float\",\n// \tmpDouble:       \"Double\",\n// \tmpUint8:        \"Uint8\",\n// \tmpUint16:       \"Uint16\",\n// \tmpUint32:       \"Uint32\",\n// \tmpUint64:       \"Uint64\",\n// \tmpInt8:         \"Int8\",\n// \tmpInt16:        \"Int16\",\n// \tmpInt32:        \"Int32\",\n// \tmpInt64:        \"Int64\",\n// \tmpBin8:         \"Bin8\",\n// \tmpBin16:        \"Bin16\",\n// \tmpBin32:        \"Bin32\",\n// \tmpExt8:         \"Ext8\",\n// \tmpExt16:        \"Ext16\",\n// \tmpExt32:        \"Ext32\",\n// \tmpFixExt1:      \"FixExt1\",\n// \tmpFixExt2:      \"FixExt2\",\n// \tmpFixExt4:      \"FixExt4\",\n// \tmpFixExt8:      \"FixExt8\",\n// \tmpFixExt16:     \"FixExt16\",\n// \tmpStr8:         \"Str8\",\n// \tmpStr16:        \"Str16\",\n// \tmpStr32:        \"Str32\",\n// \tmpArray16:      \"Array16\",\n// \tmpArray32:      \"Array32\",\n// \tmpMap16:        \"Map16\",\n// \tmpMap32:        \"Map32\",\n// \tmpNegFixNumMin: \"NegFixNumMin\",\n// \tmpNegFixNumMax: \"NegFixNumMax\",\n// }\n\nfunc mpdesc(bd byte) string {\n\tswitch bd {\n\tcase mpNil:\n\t\treturn \"nil\"\n\tcase mpFalse:\n\t\treturn \"false\"\n\tcase mpTrue:\n\t\treturn \"true\"\n\tcase mpFloat, mpDouble:\n\t\treturn \"float\"\n\tcase mpUint8, mpUint16, mpUint32, mpUint64:\n\t\treturn \"uint\"\n\tcase mpInt8, mpInt16, mpInt32, mpInt64:\n\t\treturn \"int\"\n\tdefault:\n\t\tswitch {\n\t\tcase bd >= mpPosFixNumMin && bd <= mpPosFixNumMax:\n\t\t\treturn \"int\"\n\t\tcase bd >= mpNegFixNumMin && bd <= mpNegFixNumMax:\n\t\t\treturn \"int\"\n\t\tcase bd == mpStr8, bd == mpStr16, bd == mpStr32, bd >= mpFixStrMin && bd <= mpFixStrMax:\n\t\t\treturn \"string|bytes\"\n\t\tcase bd == mpBin8, bd == mpBin16, bd == mpBin32:\n\t\t\treturn \"bytes\"\n\t\tcase bd == mpArray16, bd == mpArray32, bd >= mpFixArrayMin && bd <= mpFixArrayMax:\n\t\t\treturn \"array\"\n\t\tcase bd == mpMap16, bd == mpMap32, bd >= mpFixMapMin && bd <= mpFixMapMax:\n\t\t\treturn \"map\"\n\t\tcase bd >= mpFixExt1 && bd <= mpFixExt16, bd >= mpExt8 && bd <= mpExt32:\n\t\t\treturn \"ext\"\n\t\tdefault:\n\t\t\treturn \"unknown\"\n\t\t}\n\t}\n}\n\n// MsgpackSpecRpcMultiArgs is a special type which signifies to the MsgpackSpecRpcCodec\n// that the backend RPC service takes multiple arguments, which have been arranged\n// in sequence in the slice.\n//\n// The Codec then passes it AS-IS to the rpc service (without wrapping it in an\n// array of 1 element).\ntype MsgpackSpecRpcMultiArgs []interface{}\n\n// A MsgpackContainer type specifies the different types of msgpackContainers.\ntype msgpackContainerType struct {\n\tfixCutoff             uint8\n\tbFixMin, b8, b16, b32 byte\n\t// hasFixMin, has8, has8Always bool\n}\n\nvar (\n\tmsgpackContainerRawLegacy = msgpackContainerType{\n\t\t32, mpFixStrMin, 0, mpStr16, mpStr32,\n\t}\n\tmsgpackContainerStr = msgpackContainerType{\n\t\t32, mpFixStrMin, mpStr8, mpStr16, mpStr32, // true, true, false,\n\t}\n\tmsgpackContainerBin = msgpackContainerType{\n\t\t0, 0, mpBin8, mpBin16, mpBin32, // false, true, true,\n\t}\n\tmsgpackContainerList = msgpackContainerType{\n\t\t16, mpFixArrayMin, 0, mpArray16, mpArray32, // true, false, false,\n\t}\n\tmsgpackContainerMap = msgpackContainerType{\n\t\t16, mpFixMapMin, 0, mpMap16, mpMap32, // true, false, false,\n\t}\n)\n\n//---------------------------------------------\n\ntype msgpackEncDriver struct {\n\tnoBuiltInTypes\n\tencDriverNoopContainerWriter\n\t// encNoSeparator\n\te *Encoder\n\tw *encWriterSwitch\n\th *MsgpackHandle\n\tx [8]byte\n\t// _ [3]uint64 // padding\n}\n\nfunc (e *msgpackEncDriver) EncodeNil() {\n\te.w.writen1(mpNil)\n}\n\nfunc (e *msgpackEncDriver) EncodeInt(i int64) {\n\tif e.h.PositiveIntUnsigned && i >= 0 {\n\t\te.EncodeUint(uint64(i))\n\t} else if i > math.MaxInt8 {\n\t\tif i <= math.MaxInt16 {\n\t\t\te.w.writen1(mpInt16)\n\t\t\tbigenHelper{e.x[:2], e.w}.writeUint16(uint16(i))\n\t\t} else if i <= math.MaxInt32 {\n\t\t\te.w.writen1(mpInt32)\n\t\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(i))\n\t\t} else {\n\t\t\te.w.writen1(mpInt64)\n\t\t\tbigenHelper{e.x[:8], e.w}.writeUint64(uint64(i))\n\t\t}\n\t} else if i >= -32 {\n\t\tif e.h.NoFixedNum {\n\t\t\te.w.writen2(mpInt8, byte(i))\n\t\t} else {\n\t\t\te.w.writen1(byte(i))\n\t\t}\n\t} else if i >= math.MinInt8 {\n\t\te.w.writen2(mpInt8, byte(i))\n\t} else if i >= math.MinInt16 {\n\t\te.w.writen1(mpInt16)\n\t\tbigenHelper{e.x[:2], e.w}.writeUint16(uint16(i))\n\t} else if i >= math.MinInt32 {\n\t\te.w.writen1(mpInt32)\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(i))\n\t} else {\n\t\te.w.writen1(mpInt64)\n\t\tbigenHelper{e.x[:8], e.w}.writeUint64(uint64(i))\n\t}\n}\n\nfunc (e *msgpackEncDriver) EncodeUint(i uint64) {\n\tif i <= math.MaxInt8 {\n\t\tif e.h.NoFixedNum {\n\t\t\te.w.writen2(mpUint8, byte(i))\n\t\t} else {\n\t\t\te.w.writen1(byte(i))\n\t\t}\n\t} else if i <= math.MaxUint8 {\n\t\te.w.writen2(mpUint8, byte(i))\n\t} else if i <= math.MaxUint16 {\n\t\te.w.writen1(mpUint16)\n\t\tbigenHelper{e.x[:2], e.w}.writeUint16(uint16(i))\n\t} else if i <= math.MaxUint32 {\n\t\te.w.writen1(mpUint32)\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(i))\n\t} else {\n\t\te.w.writen1(mpUint64)\n\t\tbigenHelper{e.x[:8], e.w}.writeUint64(uint64(i))\n\t}\n}\n\nfunc (e *msgpackEncDriver) EncodeBool(b bool) {\n\tif b {\n\t\te.w.writen1(mpTrue)\n\t} else {\n\t\te.w.writen1(mpFalse)\n\t}\n}\n\nfunc (e *msgpackEncDriver) EncodeFloat32(f float32) {\n\te.w.writen1(mpFloat)\n\tbigenHelper{e.x[:4], e.w}.writeUint32(math.Float32bits(f))\n}\n\nfunc (e *msgpackEncDriver) EncodeFloat64(f float64) {\n\te.w.writen1(mpDouble)\n\tbigenHelper{e.x[:8], e.w}.writeUint64(math.Float64bits(f))\n}\n\nfunc (e *msgpackEncDriver) EncodeTime(t time.Time) {\n\tif t.IsZero() {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tt = t.UTC()\n\tsec, nsec := t.Unix(), uint64(t.Nanosecond())\n\tvar data64 uint64\n\tvar l = 4\n\tif sec >= 0 && sec>>34 == 0 {\n\t\tdata64 = (nsec << 34) | uint64(sec)\n\t\tif data64&0xffffffff00000000 != 0 {\n\t\t\tl = 8\n\t\t}\n\t} else {\n\t\tl = 12\n\t}\n\tif e.h.WriteExt {\n\t\te.encodeExtPreamble(mpTimeExtTagU, l)\n\t} else {\n\t\te.writeContainerLen(msgpackContainerRawLegacy, l)\n\t}\n\tswitch l {\n\tcase 4:\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(data64))\n\tcase 8:\n\t\tbigenHelper{e.x[:8], e.w}.writeUint64(data64)\n\tcase 12:\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(nsec))\n\t\tbigenHelper{e.x[:8], e.w}.writeUint64(uint64(sec))\n\t}\n}\n\nfunc (e *msgpackEncDriver) EncodeExt(v interface{}, xtag uint64, ext Ext, _ *Encoder) {\n\tbs := ext.WriteExt(v)\n\tif bs == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tif e.h.WriteExt {\n\t\te.encodeExtPreamble(uint8(xtag), len(bs))\n\t\te.w.writeb(bs)\n\t} else {\n\t\te.EncodeStringBytesRaw(bs)\n\t}\n}\n\nfunc (e *msgpackEncDriver) EncodeRawExt(re *RawExt, _ *Encoder) {\n\te.encodeExtPreamble(uint8(re.Tag), len(re.Data))\n\te.w.writeb(re.Data)\n}\n\nfunc (e *msgpackEncDriver) encodeExtPreamble(xtag byte, l int) {\n\tif l == 1 {\n\t\te.w.writen2(mpFixExt1, xtag)\n\t} else if l == 2 {\n\t\te.w.writen2(mpFixExt2, xtag)\n\t} else if l == 4 {\n\t\te.w.writen2(mpFixExt4, xtag)\n\t} else if l == 8 {\n\t\te.w.writen2(mpFixExt8, xtag)\n\t} else if l == 16 {\n\t\te.w.writen2(mpFixExt16, xtag)\n\t} else if l < 256 {\n\t\te.w.writen2(mpExt8, byte(l))\n\t\te.w.writen1(xtag)\n\t} else if l < 65536 {\n\t\te.w.writen1(mpExt16)\n\t\tbigenHelper{e.x[:2], e.w}.writeUint16(uint16(l))\n\t\te.w.writen1(xtag)\n\t} else {\n\t\te.w.writen1(mpExt32)\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(l))\n\t\te.w.writen1(xtag)\n\t}\n}\n\nfunc (e *msgpackEncDriver) WriteArrayStart(length int) {\n\te.writeContainerLen(msgpackContainerList, length)\n}\n\nfunc (e *msgpackEncDriver) WriteMapStart(length int) {\n\te.writeContainerLen(msgpackContainerMap, length)\n}\n\nfunc (e *msgpackEncDriver) EncodeStringEnc(c charEncoding, s string) {\n\tslen := len(s)\n\tif e.h.WriteExt {\n\t\te.writeContainerLen(msgpackContainerStr, slen)\n\t} else {\n\t\te.writeContainerLen(msgpackContainerRawLegacy, slen)\n\t}\n\tif slen > 0 {\n\t\te.w.writestr(s)\n\t}\n}\n\nfunc (e *msgpackEncDriver) EncodeStringBytesRaw(bs []byte) {\n\tif bs == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tslen := len(bs)\n\tif e.h.WriteExt {\n\t\te.writeContainerLen(msgpackContainerBin, slen)\n\t} else {\n\t\te.writeContainerLen(msgpackContainerRawLegacy, slen)\n\t}\n\tif slen > 0 {\n\t\te.w.writeb(bs)\n\t}\n}\n\nfunc (e *msgpackEncDriver) writeContainerLen(ct msgpackContainerType, l int) {\n\tif ct.fixCutoff > 0 && l < int(ct.fixCutoff) {\n\t\te.w.writen1(ct.bFixMin | byte(l))\n\t} else if ct.b8 > 0 && l < 256 {\n\t\te.w.writen2(ct.b8, uint8(l))\n\t} else if l < 65536 {\n\t\te.w.writen1(ct.b16)\n\t\tbigenHelper{e.x[:2], e.w}.writeUint16(uint16(l))\n\t} else {\n\t\te.w.writen1(ct.b32)\n\t\tbigenHelper{e.x[:4], e.w}.writeUint32(uint32(l))\n\t}\n}\n\n//---------------------------------------------\n\ntype msgpackDecDriver struct {\n\td *Decoder\n\tr *decReaderSwitch\n\th *MsgpackHandle\n\t// b      [scratchByteArrayLen]byte\n\tbd     byte\n\tbdRead bool\n\tbr     bool // bytes reader\n\tnoBuiltInTypes\n\t// noStreamingCodec\n\t// decNoSeparator\n\tdecDriverNoopContainerReader\n\t// _ [3]uint64 // padding\n}\n\n// Note: This returns either a primitive (int, bool, etc) for non-containers,\n// or a containerType, or a specific type denoting nil or extension.\n// It is called when a nil interface{} is passed, leaving it up to the DecDriver\n// to introspect the stream and decide how best to decode.\n// It deciphers the value by looking at the stream first.\nfunc (d *msgpackDecDriver) DecodeNaked() {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tbd := d.bd\n\tn := d.d.naked()\n\tvar decodeFurther bool\n\n\tswitch bd {\n\tcase mpNil:\n\t\tn.v = valueTypeNil\n\t\td.bdRead = false\n\tcase mpFalse:\n\t\tn.v = valueTypeBool\n\t\tn.b = false\n\tcase mpTrue:\n\t\tn.v = valueTypeBool\n\t\tn.b = true\n\n\tcase mpFloat:\n\t\tn.v = valueTypeFloat\n\t\tn.f = float64(math.Float32frombits(bigen.Uint32(d.r.readx(4))))\n\tcase mpDouble:\n\t\tn.v = valueTypeFloat\n\t\tn.f = math.Float64frombits(bigen.Uint64(d.r.readx(8)))\n\n\tcase mpUint8:\n\t\tn.v = valueTypeUint\n\t\tn.u = uint64(d.r.readn1())\n\tcase mpUint16:\n\t\tn.v = valueTypeUint\n\t\tn.u = uint64(bigen.Uint16(d.r.readx(2)))\n\tcase mpUint32:\n\t\tn.v = valueTypeUint\n\t\tn.u = uint64(bigen.Uint32(d.r.readx(4)))\n\tcase mpUint64:\n\t\tn.v = valueTypeUint\n\t\tn.u = uint64(bigen.Uint64(d.r.readx(8)))\n\n\tcase mpInt8:\n\t\tn.v = valueTypeInt\n\t\tn.i = int64(int8(d.r.readn1()))\n\tcase mpInt16:\n\t\tn.v = valueTypeInt\n\t\tn.i = int64(int16(bigen.Uint16(d.r.readx(2))))\n\tcase mpInt32:\n\t\tn.v = valueTypeInt\n\t\tn.i = int64(int32(bigen.Uint32(d.r.readx(4))))\n\tcase mpInt64:\n\t\tn.v = valueTypeInt\n\t\tn.i = int64(int64(bigen.Uint64(d.r.readx(8))))\n\n\tdefault:\n\t\tswitch {\n\t\tcase bd >= mpPosFixNumMin && bd <= mpPosFixNumMax:\n\t\t\t// positive fixnum (always signed)\n\t\t\tn.v = valueTypeInt\n\t\t\tn.i = int64(int8(bd))\n\t\tcase bd >= mpNegFixNumMin && bd <= mpNegFixNumMax:\n\t\t\t// negative fixnum\n\t\t\tn.v = valueTypeInt\n\t\t\tn.i = int64(int8(bd))\n\t\tcase bd == mpStr8, bd == mpStr16, bd == mpStr32, bd >= mpFixStrMin && bd <= mpFixStrMax:\n\t\t\tif d.h.WriteExt || d.h.RawToString {\n\t\t\t\tn.v = valueTypeString\n\t\t\t\tn.s = d.DecodeString()\n\t\t\t} else {\n\t\t\t\tn.v = valueTypeBytes\n\t\t\t\tn.l = d.DecodeBytes(nil, false)\n\t\t\t}\n\t\tcase bd == mpBin8, bd == mpBin16, bd == mpBin32:\n\t\t\tdecNakedReadRawBytes(d, d.d, n, d.h.RawToString)\n\t\tcase bd == mpArray16, bd == mpArray32, bd >= mpFixArrayMin && bd <= mpFixArrayMax:\n\t\t\tn.v = valueTypeArray\n\t\t\tdecodeFurther = true\n\t\tcase bd == mpMap16, bd == mpMap32, bd >= mpFixMapMin && bd <= mpFixMapMax:\n\t\t\tn.v = valueTypeMap\n\t\t\tdecodeFurther = true\n\t\tcase bd >= mpFixExt1 && bd <= mpFixExt16, bd >= mpExt8 && bd <= mpExt32:\n\t\t\tn.v = valueTypeExt\n\t\t\tclen := d.readExtLen()\n\t\t\tn.u = uint64(d.r.readn1())\n\t\t\tif n.u == uint64(mpTimeExtTagU) {\n\t\t\t\tn.v = valueTypeTime\n\t\t\t\tn.t = d.decodeTime(clen)\n\t\t\t} else if d.br {\n\t\t\t\tn.l = d.r.readx(uint(clen))\n\t\t\t} else {\n\t\t\t\tn.l = decByteSlice(d.r, clen, d.d.h.MaxInitLen, d.d.b[:])\n\t\t\t}\n\t\tdefault:\n\t\t\td.d.errorf(\"cannot infer value: %s: Ox%x/%d/%s\", msgBadDesc, bd, bd, mpdesc(bd))\n\t\t}\n\t}\n\tif !decodeFurther {\n\t\td.bdRead = false\n\t}\n\tif n.v == valueTypeUint && d.h.SignedInteger {\n\t\tn.v = valueTypeInt\n\t\tn.i = int64(n.u)\n\t}\n}\n\n// int can be decoded from msgpack type: intXXX or uintXXX\nfunc (d *msgpackDecDriver) DecodeInt64() (i int64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tswitch d.bd {\n\tcase mpUint8:\n\t\ti = int64(uint64(d.r.readn1()))\n\tcase mpUint16:\n\t\ti = int64(uint64(bigen.Uint16(d.r.readx(2))))\n\tcase mpUint32:\n\t\ti = int64(uint64(bigen.Uint32(d.r.readx(4))))\n\tcase mpUint64:\n\t\ti = int64(bigen.Uint64(d.r.readx(8)))\n\tcase mpInt8:\n\t\ti = int64(int8(d.r.readn1()))\n\tcase mpInt16:\n\t\ti = int64(int16(bigen.Uint16(d.r.readx(2))))\n\tcase mpInt32:\n\t\ti = int64(int32(bigen.Uint32(d.r.readx(4))))\n\tcase mpInt64:\n\t\ti = int64(bigen.Uint64(d.r.readx(8)))\n\tdefault:\n\t\tswitch {\n\t\tcase d.bd >= mpPosFixNumMin && d.bd <= mpPosFixNumMax:\n\t\t\ti = int64(int8(d.bd))\n\t\tcase d.bd >= mpNegFixNumMin && d.bd <= mpNegFixNumMax:\n\t\t\ti = int64(int8(d.bd))\n\t\tdefault:\n\t\t\td.d.errorf(\"cannot decode signed integer: %s: %x/%s\", msgBadDesc, d.bd, mpdesc(d.bd))\n\t\t\treturn\n\t\t}\n\t}\n\td.bdRead = false\n\treturn\n}\n\n// uint can be decoded from msgpack type: intXXX or uintXXX\nfunc (d *msgpackDecDriver) DecodeUint64() (ui uint64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tswitch d.bd {\n\tcase mpUint8:\n\t\tui = uint64(d.r.readn1())\n\tcase mpUint16:\n\t\tui = uint64(bigen.Uint16(d.r.readx(2)))\n\tcase mpUint32:\n\t\tui = uint64(bigen.Uint32(d.r.readx(4)))\n\tcase mpUint64:\n\t\tui = bigen.Uint64(d.r.readx(8))\n\tcase mpInt8:\n\t\tif i := int64(int8(d.r.readn1())); i >= 0 {\n\t\t\tui = uint64(i)\n\t\t} else {\n\t\t\td.d.errorf(\"assigning negative signed value: %v, to unsigned type\", i)\n\t\t\treturn\n\t\t}\n\tcase mpInt16:\n\t\tif i := int64(int16(bigen.Uint16(d.r.readx(2)))); i >= 0 {\n\t\t\tui = uint64(i)\n\t\t} else {\n\t\t\td.d.errorf(\"assigning negative signed value: %v, to unsigned type\", i)\n\t\t\treturn\n\t\t}\n\tcase mpInt32:\n\t\tif i := int64(int32(bigen.Uint32(d.r.readx(4)))); i >= 0 {\n\t\t\tui = uint64(i)\n\t\t} else {\n\t\t\td.d.errorf(\"assigning negative signed value: %v, to unsigned type\", i)\n\t\t\treturn\n\t\t}\n\tcase mpInt64:\n\t\tif i := int64(bigen.Uint64(d.r.readx(8))); i >= 0 {\n\t\t\tui = uint64(i)\n\t\t} else {\n\t\t\td.d.errorf(\"assigning negative signed value: %v, to unsigned type\", i)\n\t\t\treturn\n\t\t}\n\tdefault:\n\t\tswitch {\n\t\tcase d.bd >= mpPosFixNumMin && d.bd <= mpPosFixNumMax:\n\t\t\tui = uint64(d.bd)\n\t\tcase d.bd >= mpNegFixNumMin && d.bd <= mpNegFixNumMax:\n\t\t\td.d.errorf(\"assigning negative signed value: %v, to unsigned type\", int(d.bd))\n\t\t\treturn\n\t\tdefault:\n\t\t\td.d.errorf(\"cannot decode unsigned integer: %s: %x/%s\", msgBadDesc, d.bd, mpdesc(d.bd))\n\t\t\treturn\n\t\t}\n\t}\n\td.bdRead = false\n\treturn\n}\n\n// float can either be decoded from msgpack type: float, double or intX\nfunc (d *msgpackDecDriver) DecodeFloat64() (f float64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == mpFloat {\n\t\tf = float64(math.Float32frombits(bigen.Uint32(d.r.readx(4))))\n\t} else if d.bd == mpDouble {\n\t\tf = math.Float64frombits(bigen.Uint64(d.r.readx(8)))\n\t} else {\n\t\tf = float64(d.DecodeInt64())\n\t}\n\td.bdRead = false\n\treturn\n}\n\n// bool can be decoded from bool, fixnum 0 or 1.\nfunc (d *msgpackDecDriver) DecodeBool() (b bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == mpFalse || d.bd == 0 {\n\t\t// b = false\n\t} else if d.bd == mpTrue || d.bd == 1 {\n\t\tb = true\n\t} else {\n\t\td.d.errorf(\"cannot decode bool: %s: %x/%s\", msgBadDesc, d.bd, mpdesc(d.bd))\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *msgpackDecDriver) DecodeBytes(bs []byte, zerocopy bool) (bsOut []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\n\tbd := d.bd\n\tvar clen int\n\tif bd == mpNil {\n\t\td.bdRead = false\n\t\treturn\n\t} else if bd == mpBin8 || bd == mpBin16 || bd == mpBin32 {\n\t\tclen = d.readContainerLen(msgpackContainerBin) // binary\n\t} else if bd == mpStr8 || bd == mpStr16 || bd == mpStr32 ||\n\t\t(bd >= mpFixStrMin && bd <= mpFixStrMax) {\n\t\tclen = d.readContainerLen(msgpackContainerStr) // string/raw\n\t} else if bd == mpArray16 || bd == mpArray32 ||\n\t\t(bd >= mpFixArrayMin && bd <= mpFixArrayMax) {\n\t\t// check if an \"array\" of uint8's\n\t\tif zerocopy && len(bs) == 0 {\n\t\t\tbs = d.d.b[:]\n\t\t}\n\t\tbsOut, _ = fastpathTV.DecSliceUint8V(bs, true, d.d)\n\t\treturn\n\t} else {\n\t\td.d.errorf(\"invalid byte descriptor for decoding bytes, got: 0x%x\", d.bd)\n\t\treturn\n\t}\n\n\td.bdRead = false\n\tif zerocopy {\n\t\tif d.br {\n\t\t\treturn d.r.readx(uint(clen))\n\t\t} else if len(bs) == 0 {\n\t\t\tbs = d.d.b[:]\n\t\t}\n\t}\n\treturn decByteSlice(d.r, clen, d.h.MaxInitLen, bs)\n}\n\nfunc (d *msgpackDecDriver) DecodeString() (s string) {\n\treturn string(d.DecodeBytes(d.d.b[:], true))\n}\n\nfunc (d *msgpackDecDriver) DecodeStringAsBytes() (s []byte) {\n\treturn d.DecodeBytes(d.d.b[:], true)\n}\n\nfunc (d *msgpackDecDriver) readNextBd() {\n\td.bd = d.r.readn1()\n\td.bdRead = true\n}\n\nfunc (d *msgpackDecDriver) uncacheRead() {\n\tif d.bdRead {\n\t\td.r.unreadn1()\n\t\td.bdRead = false\n\t}\n}\n\nfunc (d *msgpackDecDriver) ContainerType() (vt valueType) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tbd := d.bd\n\t// if bd == mpNil {\n\t// \t// nil\n\t// } else if bd == mpBin8 || bd == mpBin16 || bd == mpBin32 {\n\t// \t// binary\n\t// } else if bd == mpStr8 || bd == mpStr16 || bd == mpStr32 ||\n\t// (bd >= mpFixStrMin && bd <= mpFixStrMax) {\n\t// \t// string/raw\n\t// } else if bd == mpArray16 || bd == mpArray32 ||\n\t// (bd >= mpFixArrayMin && bd <= mpFixArrayMax) {\n\t// \t// array\n\t// } else if bd == mpMap16 || bd == mpMap32 || (bd >= mpFixMapMin && bd <= mpFixMapMax) {\n\t// \t// map\n\t// }\n\tif bd == mpNil {\n\t\treturn valueTypeNil\n\t} else if bd == mpBin8 || bd == mpBin16 || bd == mpBin32 {\n\t\treturn valueTypeBytes\n\t} else if bd == mpStr8 || bd == mpStr16 || bd == mpStr32 ||\n\t\t(bd >= mpFixStrMin && bd <= mpFixStrMax) {\n\t\tif d.h.WriteExt || d.h.RawToString { // UTF-8 string (new spec)\n\t\t\treturn valueTypeString\n\t\t}\n\t\treturn valueTypeBytes // raw (old spec)\n\t} else if bd == mpArray16 || bd == mpArray32 || (bd >= mpFixArrayMin && bd <= mpFixArrayMax) {\n\t\treturn valueTypeArray\n\t} else if bd == mpMap16 || bd == mpMap32 || (bd >= mpFixMapMin && bd <= mpFixMapMax) {\n\t\treturn valueTypeMap\n\t}\n\t// else {\n\t// d.d.errorf(\"isContainerType: unsupported parameter: %v\", vt)\n\t// }\n\treturn valueTypeUnset\n}\n\nfunc (d *msgpackDecDriver) TryDecodeAsNil() (v bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == mpNil {\n\t\td.bdRead = false\n\t\treturn true\n\t}\n\treturn\n}\n\nfunc (d *msgpackDecDriver) readContainerLen(ct msgpackContainerType) (clen int) {\n\tbd := d.bd\n\tif bd == mpNil {\n\t\tclen = -1 // to represent nil\n\t} else if bd == ct.b8 {\n\t\tclen = int(d.r.readn1())\n\t} else if bd == ct.b16 {\n\t\tclen = int(bigen.Uint16(d.r.readx(2)))\n\t} else if bd == ct.b32 {\n\t\tclen = int(bigen.Uint32(d.r.readx(4)))\n\t} else if (ct.bFixMin & bd) == ct.bFixMin {\n\t\tclen = int(ct.bFixMin ^ bd)\n\t} else {\n\t\td.d.errorf(\"cannot read container length: %s: hex: %x, decimal: %d\", msgBadDesc, bd, bd)\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *msgpackDecDriver) ReadMapStart() int {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\treturn d.readContainerLen(msgpackContainerMap)\n}\n\nfunc (d *msgpackDecDriver) ReadArrayStart() int {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\treturn d.readContainerLen(msgpackContainerList)\n}\n\nfunc (d *msgpackDecDriver) readExtLen() (clen int) {\n\tswitch d.bd {\n\tcase mpNil:\n\t\tclen = -1 // to represent nil\n\tcase mpFixExt1:\n\t\tclen = 1\n\tcase mpFixExt2:\n\t\tclen = 2\n\tcase mpFixExt4:\n\t\tclen = 4\n\tcase mpFixExt8:\n\t\tclen = 8\n\tcase mpFixExt16:\n\t\tclen = 16\n\tcase mpExt8:\n\t\tclen = int(d.r.readn1())\n\tcase mpExt16:\n\t\tclen = int(bigen.Uint16(d.r.readx(2)))\n\tcase mpExt32:\n\t\tclen = int(bigen.Uint32(d.r.readx(4)))\n\tdefault:\n\t\td.d.errorf(\"decoding ext bytes: found unexpected byte: %x\", d.bd)\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *msgpackDecDriver) DecodeTime() (t time.Time) {\n\t// decode time from string bytes or ext\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tbd := d.bd\n\tvar clen int\n\tif bd == mpNil {\n\t\td.bdRead = false\n\t\treturn\n\t} else if bd == mpBin8 || bd == mpBin16 || bd == mpBin32 {\n\t\tclen = d.readContainerLen(msgpackContainerBin) // binary\n\t} else if bd == mpStr8 || bd == mpStr16 || bd == mpStr32 ||\n\t\t(bd >= mpFixStrMin && bd <= mpFixStrMax) {\n\t\tclen = d.readContainerLen(msgpackContainerStr) // string/raw\n\t} else {\n\t\t// expect to see mpFixExt4,-1 OR mpFixExt8,-1 OR mpExt8,12,-1\n\t\td.bdRead = false\n\t\tb2 := d.r.readn1()\n\t\tif d.bd == mpFixExt4 && b2 == mpTimeExtTagU {\n\t\t\tclen = 4\n\t\t} else if d.bd == mpFixExt8 && b2 == mpTimeExtTagU {\n\t\t\tclen = 8\n\t\t} else if d.bd == mpExt8 && b2 == 12 && d.r.readn1() == mpTimeExtTagU {\n\t\t\tclen = 12\n\t\t} else {\n\t\t\td.d.errorf(\"invalid stream for decoding time as extension: got 0x%x, 0x%x\", d.bd, b2)\n\t\t\treturn\n\t\t}\n\t}\n\treturn d.decodeTime(clen)\n}\n\nfunc (d *msgpackDecDriver) decodeTime(clen int) (t time.Time) {\n\t// bs = d.r.readx(clen)\n\td.bdRead = false\n\tswitch clen {\n\tcase 4:\n\t\tt = time.Unix(int64(bigen.Uint32(d.r.readx(4))), 0).UTC()\n\tcase 8:\n\t\ttv := bigen.Uint64(d.r.readx(8))\n\t\tt = time.Unix(int64(tv&0x00000003ffffffff), int64(tv>>34)).UTC()\n\tcase 12:\n\t\tnsec := bigen.Uint32(d.r.readx(4))\n\t\tsec := bigen.Uint64(d.r.readx(8))\n\t\tt = time.Unix(int64(sec), int64(nsec)).UTC()\n\tdefault:\n\t\td.d.errorf(\"invalid length of bytes for decoding time - expecting 4 or 8 or 12, got %d\", clen)\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *msgpackDecDriver) DecodeExt(rv interface{}, xtag uint64, ext Ext) (realxtag uint64) {\n\tif xtag > 0xff {\n\t\td.d.errorf(\"ext: tag must be <= 0xff; got: %v\", xtag)\n\t\treturn\n\t}\n\trealxtag1, xbs := d.decodeExtV(ext != nil, uint8(xtag))\n\trealxtag = uint64(realxtag1)\n\tif ext == nil {\n\t\tre := rv.(*RawExt)\n\t\tre.Tag = realxtag\n\t\tre.Data = detachZeroCopyBytes(d.br, re.Data, xbs)\n\t} else {\n\t\text.ReadExt(rv, xbs)\n\t}\n\treturn\n}\n\nfunc (d *msgpackDecDriver) decodeExtV(verifyTag bool, tag byte) (xtag byte, xbs []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\txbd := d.bd\n\tif xbd == mpBin8 || xbd == mpBin16 || xbd == mpBin32 {\n\t\txbs = d.DecodeBytes(nil, true)\n\t} else if xbd == mpStr8 || xbd == mpStr16 || xbd == mpStr32 ||\n\t\t(xbd >= mpFixStrMin && xbd <= mpFixStrMax) {\n\t\txbs = d.DecodeStringAsBytes()\n\t} else {\n\t\tclen := d.readExtLen()\n\t\txtag = d.r.readn1()\n\t\tif verifyTag && xtag != tag {\n\t\t\td.d.errorf(\"wrong extension tag - got %b, expecting %v\", xtag, tag)\n\t\t\treturn\n\t\t}\n\t\tif d.br {\n\t\t\txbs = d.r.readx(uint(clen))\n\t\t} else {\n\t\t\txbs = decByteSlice(d.r, clen, d.d.h.MaxInitLen, d.d.b[:])\n\t\t}\n\t}\n\td.bdRead = false\n\treturn\n}\n\n//--------------------------------------------------\n\n//MsgpackHandle is a Handle for the Msgpack Schema-Free Encoding Format.\ntype MsgpackHandle struct {\n\tBasicHandle\n\n\t// NoFixedNum says to output all signed integers as 2-bytes, never as 1-byte fixednum.\n\tNoFixedNum bool\n\n\t// WriteExt controls whether the new spec is honored.\n\t//\n\t// With WriteExt=true, we can encode configured extensions with extension tags\n\t// and encode string/[]byte/extensions in a way compatible with the new spec\n\t// but incompatible with the old spec.\n\t//\n\t// For compatibility with the old spec, set WriteExt=false.\n\t//\n\t// With WriteExt=false:\n\t//    configured extensions are serialized as raw bytes (not msgpack extensions).\n\t//    reserved byte descriptors like Str8 and those enabling the new msgpack Binary type\n\t//    are not encoded.\n\tWriteExt bool\n\n\t// PositiveIntUnsigned says to encode positive integers as unsigned.\n\tPositiveIntUnsigned bool\n\n\tbinaryEncodingType\n\tnoElemSeparators\n\n\t_ [1]uint64 // padding (cache-aligned)\n}\n\n// Name returns the name of the handle: msgpack\nfunc (h *MsgpackHandle) Name() string { return \"msgpack\" }\n\n// SetBytesExt sets an extension\nfunc (h *MsgpackHandle) SetBytesExt(rt reflect.Type, tag uint64, ext BytesExt) (err error) {\n\treturn h.SetExt(rt, tag, &bytesExtWrapper{BytesExt: ext})\n}\n\nfunc (h *MsgpackHandle) newEncDriver(e *Encoder) encDriver {\n\treturn &msgpackEncDriver{e: e, w: e.w(), h: h}\n}\n\nfunc (h *MsgpackHandle) newDecDriver(d *Decoder) decDriver {\n\treturn &msgpackDecDriver{d: d, h: h, r: d.r(), br: d.bytes}\n}\n\nfunc (e *msgpackEncDriver) reset() {\n\te.w = e.e.w()\n}\n\nfunc (d *msgpackDecDriver) reset() {\n\td.r, d.br = d.d.r(), d.d.bytes\n\td.bd, d.bdRead = 0, false\n}\n\n//--------------------------------------------------\n\ntype msgpackSpecRpcCodec struct {\n\trpcCodec\n}\n\n// /////////////// Spec RPC Codec ///////////////////\nfunc (c *msgpackSpecRpcCodec) WriteRequest(r *rpc.Request, body interface{}) error {\n\t// WriteRequest can write to both a Go service, and other services that do\n\t// not abide by the 1 argument rule of a Go service.\n\t// We discriminate based on if the body is a MsgpackSpecRpcMultiArgs\n\tvar bodyArr []interface{}\n\tif m, ok := body.(MsgpackSpecRpcMultiArgs); ok {\n\t\tbodyArr = ([]interface{})(m)\n\t} else {\n\t\tbodyArr = []interface{}{body}\n\t}\n\tr2 := []interface{}{0, uint32(r.Seq), r.ServiceMethod, bodyArr}\n\treturn c.write(r2, nil, false)\n}\n\nfunc (c *msgpackSpecRpcCodec) WriteResponse(r *rpc.Response, body interface{}) error {\n\tvar moe interface{}\n\tif r.Error != \"\" {\n\t\tmoe = r.Error\n\t}\n\tif moe != nil && body != nil {\n\t\tbody = nil\n\t}\n\tr2 := []interface{}{1, uint32(r.Seq), moe, body}\n\treturn c.write(r2, nil, false)\n}\n\nfunc (c *msgpackSpecRpcCodec) ReadResponseHeader(r *rpc.Response) error {\n\treturn c.parseCustomHeader(1, &r.Seq, &r.Error)\n}\n\nfunc (c *msgpackSpecRpcCodec) ReadRequestHeader(r *rpc.Request) error {\n\treturn c.parseCustomHeader(0, &r.Seq, &r.ServiceMethod)\n}\n\nfunc (c *msgpackSpecRpcCodec) ReadRequestBody(body interface{}) error {\n\tif body == nil { // read and discard\n\t\treturn c.read(nil)\n\t}\n\tbodyArr := []interface{}{body}\n\treturn c.read(&bodyArr)\n}\n\nfunc (c *msgpackSpecRpcCodec) parseCustomHeader(expectTypeByte byte, msgid *uint64, methodOrError *string) (err error) {\n\tif cls := c.cls.load(); cls.closed {\n\t\treturn io.EOF\n\t}\n\n\t// We read the response header by hand\n\t// so that the body can be decoded on its own from the stream at a later time.\n\n\tconst fia byte = 0x94 //four item array descriptor value\n\t// Not sure why the panic of EOF is swallowed above.\n\t// if bs1 := c.dec.r.readn1(); bs1 != fia {\n\t// \terr = fmt.Errorf(\"Unexpected value for array descriptor: Expecting %v. Received %v\", fia, bs1)\n\t// \treturn\n\t// }\n\tvar ba [1]byte\n\tvar n int\n\tfor {\n\t\tn, err = c.r.Read(ba[:])\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tif n == 1 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tvar b = ba[0]\n\tif b != fia {\n\t\terr = fmt.Errorf(\"not array - %s %x/%s\", msgBadDesc, b, mpdesc(b))\n\t} else {\n\t\terr = c.read(&b)\n\t\tif err == nil {\n\t\t\tif b != expectTypeByte {\n\t\t\t\terr = fmt.Errorf(\"%s - expecting %v but got %x/%s\",\n\t\t\t\t\tmsgBadDesc, expectTypeByte, b, mpdesc(b))\n\t\t\t} else {\n\t\t\t\terr = c.read(msgid)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = c.read(methodOrError)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n//--------------------------------------------------\n\n// msgpackSpecRpc is the implementation of Rpc that uses custom communication protocol\n// as defined in the msgpack spec at https://github.com/msgpack-rpc/msgpack-rpc/blob/master/spec.md\ntype msgpackSpecRpc struct{}\n\n// MsgpackSpecRpc implements Rpc using the communication protocol defined in\n// the msgpack spec at https://github.com/msgpack-rpc/msgpack-rpc/blob/master/spec.md .\n//\n// See GoRpc documentation, for information on buffering for better performance.\nvar MsgpackSpecRpc msgpackSpecRpc\n\nfunc (x msgpackSpecRpc) ServerCodec(conn io.ReadWriteCloser, h Handle) rpc.ServerCodec {\n\treturn &msgpackSpecRpcCodec{newRPCCodec(conn, h)}\n}\n\nfunc (x msgpackSpecRpc) ClientCodec(conn io.ReadWriteCloser, h Handle) rpc.ClientCodec {\n\treturn &msgpackSpecRpcCodec{newRPCCodec(conn, h)}\n}\n\nvar _ decDriver = (*msgpackDecDriver)(nil)\nvar _ encDriver = (*msgpackEncDriver)(nil)\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/prebuild.go",
    "content": "// +build prebuild\n\npackage main\n\nimport (\n\t\"bytes\"\n\t\"go/format\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"strings\"\n\t\"text/template\"\n)\n\nfunc genInternalSortableTypes() []string {\n\treturn []string{\n\t\t\"string\",\n\t\t\"float32\",\n\t\t\"float64\",\n\t\t\"uint\",\n\t\t\"uint8\",\n\t\t\"uint16\",\n\t\t\"uint32\",\n\t\t\"uint64\",\n\t\t\"uintptr\",\n\t\t\"int\",\n\t\t\"int8\",\n\t\t\"int16\",\n\t\t\"int32\",\n\t\t\"int64\",\n\t\t\"bool\",\n\t\t\"time\",\n\t\t\"bytes\",\n\t}\n}\n\nfunc genInternalSortablePlusTypes() []string {\n\treturn []string{\n\t\t\"string\",\n\t\t\"float64\",\n\t\t\"uint64\",\n\t\t\"uintptr\",\n\t\t\"int64\",\n\t\t\"bool\",\n\t\t\"time\",\n\t\t\"bytes\",\n\t}\n}\n\nfunc genTypeForShortName(s string) string {\n\tswitch s {\n\tcase \"time\":\n\t\treturn \"time.Time\"\n\tcase \"bytes\":\n\t\treturn \"[]byte\"\n\t}\n\treturn s\n}\n\nfunc genArgs(args ...interface{}) map[string]interface{} {\n\tm := make(map[string]interface{}, len(args)/2)\n\tfor i := 0; i < len(args); {\n\t\tm[args[i].(string)] = args[i+1]\n\t\ti += 2\n\t}\n\treturn m\n}\n\nfunc genEndsWith(s0 string, sn ...string) bool {\n\tfor _, s := range sn {\n\t\tif strings.HasSuffix(s0, s) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc chkerr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc run(fnameIn, fnameOut string) {\n\tvar err error\n\n\tfuncs := make(template.FuncMap)\n\tfuncs[\"sortables\"] = genInternalSortableTypes\n\tfuncs[\"sortablesplus\"] = genInternalSortablePlusTypes\n\tfuncs[\"tshort\"] = genTypeForShortName\n\tfuncs[\"endswith\"] = genEndsWith\n\tfuncs[\"args\"] = genArgs\n\n\tt := template.New(\"\").Funcs(funcs)\n\tfin, err := os.Open(fnameIn)\n\tchkerr(err)\n\tdefer fin.Close()\n\tfout, err := os.Create(fnameOut)\n\tchkerr(err)\n\tdefer fout.Close()\n\ttmplstr, err := ioutil.ReadAll(fin)\n\tchkerr(err)\n\tt, err = t.Parse(string(tmplstr))\n\tchkerr(err)\n\tvar out bytes.Buffer\n\terr = t.Execute(&out, 0)\n\tchkerr(err)\n\tbout, err := format.Source(out.Bytes())\n\tif err != nil {\n\t\tfout.Write(out.Bytes()) // write out if error, so we can still see.\n\t\t// w.Write(bout) // write out if error, as much as possible, so we can still see.\n\t}\n\tchkerr(err)\n\t_, err = fout.Write(bout)\n\tchkerr(err)\n}\n\nfunc main() {\n\trun(\"sort-slice.go.tmpl\", \"sort-slice.generated.go\")\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/rpc.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"bufio\"\n\t\"errors\"\n\t\"io\"\n\t\"net/rpc\"\n)\n\nvar errRpcJsonNeedsTermWhitespace = errors.New(\"rpc requires JsonHandle with TermWhitespace=true\")\n\n// Rpc provides a rpc Server or Client Codec for rpc communication.\ntype Rpc interface {\n\tServerCodec(conn io.ReadWriteCloser, h Handle) rpc.ServerCodec\n\tClientCodec(conn io.ReadWriteCloser, h Handle) rpc.ClientCodec\n}\n\n// RPCOptions holds options specific to rpc functionality\ntype RPCOptions struct {\n\t// RPCNoBuffer configures whether we attempt to buffer reads and writes during RPC calls.\n\t//\n\t// Set RPCNoBuffer=true to turn buffering off.\n\t// Buffering can still be done if buffered connections are passed in, or\n\t// buffering is configured on the handle.\n\tRPCNoBuffer bool\n}\n\n// rpcCodec defines the struct members and common methods.\ntype rpcCodec struct {\n\tc io.Closer\n\tr io.Reader\n\tw io.Writer\n\tf ioFlusher\n\n\tdec *Decoder\n\tenc *Encoder\n\t// bw  *bufio.Writer\n\t// br  *bufio.Reader\n\th Handle\n\n\tcls atomicClsErr\n}\n\nfunc newRPCCodec(conn io.ReadWriteCloser, h Handle) rpcCodec {\n\t// return newRPCCodec2(bufio.NewReader(conn), bufio.NewWriter(conn), conn, h)\n\treturn newRPCCodec2(conn, conn, conn, h)\n}\n\nfunc newRPCCodec2(r io.Reader, w io.Writer, c io.Closer, h Handle) rpcCodec {\n\t// defensive: ensure that jsonH has TermWhitespace turned on.\n\tif jsonH, ok := h.(*JsonHandle); ok && !jsonH.TermWhitespace {\n\t\tpanic(errRpcJsonNeedsTermWhitespace)\n\t}\n\t// always ensure that we use a flusher, and always flush what was written to the connection.\n\t// we lose nothing by using a buffered writer internally.\n\tf, ok := w.(ioFlusher)\n\tbh := basicHandle(h)\n\tif !bh.RPCNoBuffer {\n\t\tif bh.WriterBufferSize <= 0 {\n\t\t\tif !ok {\n\t\t\t\tbw := bufio.NewWriter(w)\n\t\t\t\tf, w = bw, bw\n\t\t\t}\n\t\t}\n\t\tif bh.ReaderBufferSize <= 0 {\n\t\t\tif _, ok = w.(ioPeeker); !ok {\n\t\t\t\tif _, ok = w.(ioBuffered); !ok {\n\t\t\t\t\tbr := bufio.NewReader(r)\n\t\t\t\t\tr = br\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn rpcCodec{\n\t\tc:   c,\n\t\tw:   w,\n\t\tr:   r,\n\t\tf:   f,\n\t\th:   h,\n\t\tenc: NewEncoder(w, h),\n\t\tdec: NewDecoder(r, h),\n\t}\n}\n\nfunc (c *rpcCodec) write(obj1, obj2 interface{}, writeObj2 bool) (err error) {\n\tif c.c != nil {\n\t\tcls := c.cls.load()\n\t\tif cls.closed {\n\t\t\treturn cls.errClosed\n\t\t}\n\t}\n\terr = c.enc.Encode(obj1)\n\tif err == nil {\n\t\tif writeObj2 {\n\t\t\terr = c.enc.Encode(obj2)\n\t\t}\n\t\t// if err == nil && c.f != nil {\n\t\t// \terr = c.f.Flush()\n\t\t// }\n\t}\n\tif c.f != nil {\n\t\tif err == nil {\n\t\t\terr = c.f.Flush()\n\t\t} else {\n\t\t\t_ = c.f.Flush() // swallow flush error, so we maintain prior error on write\n\t\t}\n\t}\n\treturn\n}\n\nfunc (c *rpcCodec) swallow(err *error) {\n\tdefer panicToErr(c.dec, err)\n\tc.dec.swallow()\n}\n\nfunc (c *rpcCodec) read(obj interface{}) (err error) {\n\tif c.c != nil {\n\t\tcls := c.cls.load()\n\t\tif cls.closed {\n\t\t\treturn cls.errClosed\n\t\t}\n\t}\n\t//If nil is passed in, we should read and discard\n\tif obj == nil {\n\t\t// var obj2 interface{}\n\t\t// return c.dec.Decode(&obj2)\n\t\tc.swallow(&err)\n\t\treturn\n\t}\n\treturn c.dec.Decode(obj)\n}\n\nfunc (c *rpcCodec) Close() error {\n\tif c.c == nil {\n\t\treturn nil\n\t}\n\tcls := c.cls.load()\n\tif cls.closed {\n\t\treturn cls.errClosed\n\t}\n\tcls.errClosed = c.c.Close()\n\tcls.closed = true\n\tc.cls.store(cls)\n\treturn cls.errClosed\n}\n\nfunc (c *rpcCodec) ReadResponseBody(body interface{}) error {\n\treturn c.read(body)\n}\n\n// -------------------------------------\n\ntype goRpcCodec struct {\n\trpcCodec\n}\n\nfunc (c *goRpcCodec) WriteRequest(r *rpc.Request, body interface{}) error {\n\treturn c.write(r, body, true)\n}\n\nfunc (c *goRpcCodec) WriteResponse(r *rpc.Response, body interface{}) error {\n\treturn c.write(r, body, true)\n}\n\nfunc (c *goRpcCodec) ReadResponseHeader(r *rpc.Response) error {\n\treturn c.read(r)\n}\n\nfunc (c *goRpcCodec) ReadRequestHeader(r *rpc.Request) error {\n\treturn c.read(r)\n}\n\nfunc (c *goRpcCodec) ReadRequestBody(body interface{}) error {\n\treturn c.read(body)\n}\n\n// -------------------------------------\n\n// goRpc is the implementation of Rpc that uses the communication protocol\n// as defined in net/rpc package.\ntype goRpc struct{}\n\n// GoRpc implements Rpc using the communication protocol defined in net/rpc package.\n//\n// Note: network connection (from net.Dial, of type io.ReadWriteCloser) is not buffered.\n//\n// For performance, you should configure WriterBufferSize and ReaderBufferSize on the handle.\n// This ensures we use an adequate buffer during reading and writing.\n// If not configured, we will internally initialize and use a buffer during reads and writes.\n// This can be turned off via the RPCNoBuffer option on the Handle.\n//   var handle codec.JsonHandle\n//   handle.RPCNoBuffer = true // turns off attempt by rpc module to initialize a buffer\n//\n// Example 1: one way of configuring buffering explicitly:\n//   var handle codec.JsonHandle // codec handle\n//   handle.ReaderBufferSize = 1024\n//   handle.WriterBufferSize = 1024\n//   var conn io.ReadWriteCloser // connection got from a socket\n//   var serverCodec = GoRpc.ServerCodec(conn, handle)\n//   var clientCodec = GoRpc.ClientCodec(conn, handle)\n//\n// Example 2: you can also explicitly create a buffered connection yourself,\n// and not worry about configuring the buffer sizes in the Handle.\n//   var handle codec.Handle     // codec handle\n//   var conn io.ReadWriteCloser // connection got from a socket\n//   var bufconn = struct {      // bufconn here is a buffered io.ReadWriteCloser\n//       io.Closer\n//       *bufio.Reader\n//       *bufio.Writer\n//   }{conn, bufio.NewReader(conn), bufio.NewWriter(conn)}\n//   var serverCodec = GoRpc.ServerCodec(bufconn, handle)\n//   var clientCodec = GoRpc.ClientCodec(bufconn, handle)\n//\nvar GoRpc goRpc\n\nfunc (x goRpc) ServerCodec(conn io.ReadWriteCloser, h Handle) rpc.ServerCodec {\n\treturn &goRpcCodec{newRPCCodec(conn, h)}\n}\n\nfunc (x goRpc) ClientCodec(conn io.ReadWriteCloser, h Handle) rpc.ClientCodec {\n\treturn &goRpcCodec{newRPCCodec(conn, h)}\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/simple.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\npackage codec\n\nimport (\n\t\"math\"\n\t\"reflect\"\n\t\"time\"\n)\n\nconst (\n\t_               uint8 = iota\n\tsimpleVdNil           = 1\n\tsimpleVdFalse         = 2\n\tsimpleVdTrue          = 3\n\tsimpleVdFloat32       = 4\n\tsimpleVdFloat64       = 5\n\n\t// each lasts for 4 (ie n, n+1, n+2, n+3)\n\tsimpleVdPosInt = 8\n\tsimpleVdNegInt = 12\n\n\tsimpleVdTime = 24\n\n\t// containers: each lasts for 4 (ie n, n+1, n+2, ... n+7)\n\tsimpleVdString    = 216\n\tsimpleVdByteArray = 224\n\tsimpleVdArray     = 232\n\tsimpleVdMap       = 240\n\tsimpleVdExt       = 248\n)\n\ntype simpleEncDriver struct {\n\tnoBuiltInTypes\n\tencDriverNoopContainerWriter\n\t// encNoSeparator\n\te *Encoder\n\th *SimpleHandle\n\tw *encWriterSwitch\n\tb [8]byte\n\t// c containerState\n\t// encDriverTrackContainerWriter\n\t_ [2]uint64 // padding (cache-aligned)\n}\n\nfunc (e *simpleEncDriver) EncodeNil() {\n\te.w.writen1(simpleVdNil)\n}\n\nfunc (e *simpleEncDriver) EncodeBool(b bool) {\n\tif e.h.EncZeroValuesAsNil && e.e.c != containerMapKey && !b {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tif b {\n\t\te.w.writen1(simpleVdTrue)\n\t} else {\n\t\te.w.writen1(simpleVdFalse)\n\t}\n}\n\nfunc (e *simpleEncDriver) EncodeFloat32(f float32) {\n\tif e.h.EncZeroValuesAsNil && e.e.c != containerMapKey && f == 0.0 {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\te.w.writen1(simpleVdFloat32)\n\tbigenHelper{e.b[:4], e.w}.writeUint32(math.Float32bits(f))\n}\n\nfunc (e *simpleEncDriver) EncodeFloat64(f float64) {\n\tif e.h.EncZeroValuesAsNil && e.e.c != containerMapKey && f == 0.0 {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\te.w.writen1(simpleVdFloat64)\n\tbigenHelper{e.b[:8], e.w}.writeUint64(math.Float64bits(f))\n}\n\nfunc (e *simpleEncDriver) EncodeInt(v int64) {\n\tif v < 0 {\n\t\te.encUint(uint64(-v), simpleVdNegInt)\n\t} else {\n\t\te.encUint(uint64(v), simpleVdPosInt)\n\t}\n}\n\nfunc (e *simpleEncDriver) EncodeUint(v uint64) {\n\te.encUint(v, simpleVdPosInt)\n}\n\nfunc (e *simpleEncDriver) encUint(v uint64, bd uint8) {\n\tif e.h.EncZeroValuesAsNil && e.e.c != containerMapKey && v == 0 {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tif v <= math.MaxUint8 {\n\t\te.w.writen2(bd, uint8(v))\n\t} else if v <= math.MaxUint16 {\n\t\te.w.writen1(bd + 1)\n\t\tbigenHelper{e.b[:2], e.w}.writeUint16(uint16(v))\n\t} else if v <= math.MaxUint32 {\n\t\te.w.writen1(bd + 2)\n\t\tbigenHelper{e.b[:4], e.w}.writeUint32(uint32(v))\n\t} else { // if v <= math.MaxUint64 {\n\t\te.w.writen1(bd + 3)\n\t\tbigenHelper{e.b[:8], e.w}.writeUint64(v)\n\t}\n}\n\nfunc (e *simpleEncDriver) encLen(bd byte, length int) {\n\tif length == 0 {\n\t\te.w.writen1(bd)\n\t} else if length <= math.MaxUint8 {\n\t\te.w.writen1(bd + 1)\n\t\te.w.writen1(uint8(length))\n\t} else if length <= math.MaxUint16 {\n\t\te.w.writen1(bd + 2)\n\t\tbigenHelper{e.b[:2], e.w}.writeUint16(uint16(length))\n\t} else if int64(length) <= math.MaxUint32 {\n\t\te.w.writen1(bd + 3)\n\t\tbigenHelper{e.b[:4], e.w}.writeUint32(uint32(length))\n\t} else {\n\t\te.w.writen1(bd + 4)\n\t\tbigenHelper{e.b[:8], e.w}.writeUint64(uint64(length))\n\t}\n}\n\nfunc (e *simpleEncDriver) EncodeExt(rv interface{}, xtag uint64, ext Ext, _ *Encoder) {\n\tbs := ext.WriteExt(rv)\n\tif bs == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\te.encodeExtPreamble(uint8(xtag), len(bs))\n\te.w.writeb(bs)\n}\n\nfunc (e *simpleEncDriver) EncodeRawExt(re *RawExt, _ *Encoder) {\n\te.encodeExtPreamble(uint8(re.Tag), len(re.Data))\n\te.w.writeb(re.Data)\n}\n\nfunc (e *simpleEncDriver) encodeExtPreamble(xtag byte, length int) {\n\te.encLen(simpleVdExt, length)\n\te.w.writen1(xtag)\n}\n\nfunc (e *simpleEncDriver) WriteArrayStart(length int) {\n\te.encLen(simpleVdArray, length)\n}\n\nfunc (e *simpleEncDriver) WriteMapStart(length int) {\n\te.encLen(simpleVdMap, length)\n}\n\n// func (e *simpleEncDriver) EncodeSymbol(v string) {\n// \te.EncodeStringEnc(cUTF8, v)\n// }\n\nfunc (e *simpleEncDriver) EncodeStringEnc(c charEncoding, v string) {\n\tif false && e.h.EncZeroValuesAsNil && e.e.c != containerMapKey && v == \"\" {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\te.encLen(simpleVdString, len(v))\n\te.w.writestr(v)\n}\n\nfunc (e *simpleEncDriver) EncodeStringBytesRaw(v []byte) {\n\t// if e.h.EncZeroValuesAsNil && e.c != containerMapKey && v == nil {\n\tif v == nil {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\te.encLen(simpleVdByteArray, len(v))\n\te.w.writeb(v)\n}\n\nfunc (e *simpleEncDriver) EncodeTime(t time.Time) {\n\t// if e.h.EncZeroValuesAsNil && e.c != containerMapKey && t.IsZero() {\n\tif t.IsZero() {\n\t\te.EncodeNil()\n\t\treturn\n\t}\n\tv, err := t.MarshalBinary()\n\tif err != nil {\n\t\te.e.errorv(err)\n\t\treturn\n\t}\n\t// time.Time marshalbinary takes about 14 bytes.\n\te.w.writen2(simpleVdTime, uint8(len(v)))\n\te.w.writeb(v)\n}\n\n//------------------------------------\n\ntype simpleDecDriver struct {\n\td      *Decoder\n\th      *SimpleHandle\n\tr      *decReaderSwitch\n\tbdRead bool\n\tbd     byte\n\tbr     bool // a bytes reader?\n\t// c      containerState\n\t// b      [scratchByteArrayLen]byte\n\tnoBuiltInTypes\n\t// noStreamingCodec\n\tdecDriverNoopContainerReader\n\t// _ [3]uint64 // padding\n}\n\nfunc (d *simpleDecDriver) readNextBd() {\n\td.bd = d.r.readn1()\n\td.bdRead = true\n}\n\nfunc (d *simpleDecDriver) uncacheRead() {\n\tif d.bdRead {\n\t\td.r.unreadn1()\n\t\td.bdRead = false\n\t}\n}\n\nfunc (d *simpleDecDriver) ContainerType() (vt valueType) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tswitch d.bd {\n\tcase simpleVdNil:\n\t\treturn valueTypeNil\n\tcase simpleVdByteArray, simpleVdByteArray + 1,\n\t\tsimpleVdByteArray + 2, simpleVdByteArray + 3, simpleVdByteArray + 4:\n\t\treturn valueTypeBytes\n\tcase simpleVdString, simpleVdString + 1,\n\t\tsimpleVdString + 2, simpleVdString + 3, simpleVdString + 4:\n\t\treturn valueTypeString\n\tcase simpleVdArray, simpleVdArray + 1,\n\t\tsimpleVdArray + 2, simpleVdArray + 3, simpleVdArray + 4:\n\t\treturn valueTypeArray\n\tcase simpleVdMap, simpleVdMap + 1,\n\t\tsimpleVdMap + 2, simpleVdMap + 3, simpleVdMap + 4:\n\t\treturn valueTypeMap\n\t\t// case simpleVdTime:\n\t\t// \treturn valueTypeTime\n\t}\n\t// else {\n\t// d.d.errorf(\"isContainerType: unsupported parameter: %v\", vt)\n\t// }\n\treturn valueTypeUnset\n}\n\nfunc (d *simpleDecDriver) TryDecodeAsNil() bool {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == simpleVdNil {\n\t\td.bdRead = false\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *simpleDecDriver) decCheckInteger() (ui uint64, neg bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tswitch d.bd {\n\tcase simpleVdPosInt:\n\t\tui = uint64(d.r.readn1())\n\tcase simpleVdPosInt + 1:\n\t\tui = uint64(bigen.Uint16(d.r.readx(2)))\n\tcase simpleVdPosInt + 2:\n\t\tui = uint64(bigen.Uint32(d.r.readx(4)))\n\tcase simpleVdPosInt + 3:\n\t\tui = uint64(bigen.Uint64(d.r.readx(8)))\n\tcase simpleVdNegInt:\n\t\tui = uint64(d.r.readn1())\n\t\tneg = true\n\tcase simpleVdNegInt + 1:\n\t\tui = uint64(bigen.Uint16(d.r.readx(2)))\n\t\tneg = true\n\tcase simpleVdNegInt + 2:\n\t\tui = uint64(bigen.Uint32(d.r.readx(4)))\n\t\tneg = true\n\tcase simpleVdNegInt + 3:\n\t\tui = uint64(bigen.Uint64(d.r.readx(8)))\n\t\tneg = true\n\tdefault:\n\t\td.d.errorf(\"integer only valid from pos/neg integer1..8. Invalid descriptor: %v\", d.bd)\n\t\treturn\n\t}\n\t// don't do this check, because callers may only want the unsigned value.\n\t// if ui > math.MaxInt64 {\n\t// \td.d.errorf(\"decIntAny: Integer out of range for signed int64: %v\", ui)\n\t//\t\treturn\n\t// }\n\treturn\n}\n\nfunc (d *simpleDecDriver) DecodeInt64() (i int64) {\n\tui, neg := d.decCheckInteger()\n\ti = chkOvf.SignedIntV(ui)\n\tif neg {\n\t\ti = -i\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *simpleDecDriver) DecodeUint64() (ui uint64) {\n\tui, neg := d.decCheckInteger()\n\tif neg {\n\t\td.d.errorf(\"assigning negative signed value to unsigned type\")\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *simpleDecDriver) DecodeFloat64() (f float64) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == simpleVdFloat32 {\n\t\tf = float64(math.Float32frombits(bigen.Uint32(d.r.readx(4))))\n\t} else if d.bd == simpleVdFloat64 {\n\t\tf = math.Float64frombits(bigen.Uint64(d.r.readx(8)))\n\t} else {\n\t\tif d.bd >= simpleVdPosInt && d.bd <= simpleVdNegInt+3 {\n\t\t\tf = float64(d.DecodeInt64())\n\t\t} else {\n\t\t\td.d.errorf(\"float only valid from float32/64: Invalid descriptor: %v\", d.bd)\n\t\t\treturn\n\t\t}\n\t}\n\td.bdRead = false\n\treturn\n}\n\n// bool can be decoded from bool only (single byte).\nfunc (d *simpleDecDriver) DecodeBool() (b bool) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == simpleVdTrue {\n\t\tb = true\n\t} else if d.bd == simpleVdFalse {\n\t} else {\n\t\td.d.errorf(\"cannot decode bool - %s: %x\", msgBadDesc, d.bd)\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *simpleDecDriver) ReadMapStart() (length int) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\td.bdRead = false\n\treturn d.decLen()\n}\n\nfunc (d *simpleDecDriver) ReadArrayStart() (length int) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\td.bdRead = false\n\treturn d.decLen()\n}\n\nfunc (d *simpleDecDriver) decLen() int {\n\tswitch d.bd % 8 {\n\tcase 0:\n\t\treturn 0\n\tcase 1:\n\t\treturn int(d.r.readn1())\n\tcase 2:\n\t\treturn int(bigen.Uint16(d.r.readx(2)))\n\tcase 3:\n\t\tui := uint64(bigen.Uint32(d.r.readx(4)))\n\t\tif chkOvf.Uint(ui, intBitsize) {\n\t\t\td.d.errorf(\"overflow integer: %v\", ui)\n\t\t\treturn 0\n\t\t}\n\t\treturn int(ui)\n\tcase 4:\n\t\tui := bigen.Uint64(d.r.readx(8))\n\t\tif chkOvf.Uint(ui, intBitsize) {\n\t\t\td.d.errorf(\"overflow integer: %v\", ui)\n\t\t\treturn 0\n\t\t}\n\t\treturn int(ui)\n\t}\n\td.d.errorf(\"cannot read length: bd%%8 must be in range 0..4. Got: %d\", d.bd%8)\n\treturn -1\n}\n\nfunc (d *simpleDecDriver) DecodeString() (s string) {\n\treturn string(d.DecodeBytes(d.d.b[:], true))\n}\n\nfunc (d *simpleDecDriver) DecodeStringAsBytes() (s []byte) {\n\treturn d.DecodeBytes(d.d.b[:], true)\n}\n\nfunc (d *simpleDecDriver) DecodeBytes(bs []byte, zerocopy bool) (bsOut []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == simpleVdNil {\n\t\td.bdRead = false\n\t\treturn\n\t}\n\t// check if an \"array\" of uint8's (see ContainerType for how to infer if an array)\n\tif d.bd >= simpleVdArray && d.bd <= simpleVdMap+4 {\n\t\tif len(bs) == 0 && zerocopy {\n\t\t\tbs = d.d.b[:]\n\t\t}\n\t\tbsOut, _ = fastpathTV.DecSliceUint8V(bs, true, d.d)\n\t\treturn\n\t}\n\n\tclen := d.decLen()\n\td.bdRead = false\n\tif zerocopy {\n\t\tif d.br {\n\t\t\treturn d.r.readx(uint(clen))\n\t\t} else if len(bs) == 0 {\n\t\t\tbs = d.d.b[:]\n\t\t}\n\t}\n\treturn decByteSlice(d.r, clen, d.d.h.MaxInitLen, bs)\n}\n\nfunc (d *simpleDecDriver) DecodeTime() (t time.Time) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tif d.bd == simpleVdNil {\n\t\td.bdRead = false\n\t\treturn\n\t}\n\tif d.bd != simpleVdTime {\n\t\td.d.errorf(\"invalid descriptor for time.Time - expect 0x%x, received 0x%x\", simpleVdTime, d.bd)\n\t\treturn\n\t}\n\td.bdRead = false\n\tclen := int(d.r.readn1())\n\tb := d.r.readx(uint(clen))\n\tif err := (&t).UnmarshalBinary(b); err != nil {\n\t\td.d.errorv(err)\n\t}\n\treturn\n}\n\nfunc (d *simpleDecDriver) DecodeExt(rv interface{}, xtag uint64, ext Ext) (realxtag uint64) {\n\tif xtag > 0xff {\n\t\td.d.errorf(\"ext: tag must be <= 0xff; got: %v\", xtag)\n\t\treturn\n\t}\n\trealxtag1, xbs := d.decodeExtV(ext != nil, uint8(xtag))\n\trealxtag = uint64(realxtag1)\n\tif ext == nil {\n\t\tre := rv.(*RawExt)\n\t\tre.Tag = realxtag\n\t\tre.Data = detachZeroCopyBytes(d.br, re.Data, xbs)\n\t} else {\n\t\text.ReadExt(rv, xbs)\n\t}\n\treturn\n}\n\nfunc (d *simpleDecDriver) decodeExtV(verifyTag bool, tag byte) (xtag byte, xbs []byte) {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\tswitch d.bd {\n\tcase simpleVdExt, simpleVdExt + 1, simpleVdExt + 2, simpleVdExt + 3, simpleVdExt + 4:\n\t\tl := d.decLen()\n\t\txtag = d.r.readn1()\n\t\tif verifyTag && xtag != tag {\n\t\t\td.d.errorf(\"wrong extension tag. Got %b. Expecting: %v\", xtag, tag)\n\t\t\treturn\n\t\t}\n\t\tif d.br {\n\t\t\txbs = d.r.readx(uint(l))\n\t\t} else {\n\t\t\txbs = decByteSlice(d.r, l, d.d.h.MaxInitLen, d.d.b[:])\n\t\t}\n\tcase simpleVdByteArray, simpleVdByteArray + 1,\n\t\tsimpleVdByteArray + 2, simpleVdByteArray + 3, simpleVdByteArray + 4:\n\t\txbs = d.DecodeBytes(nil, true)\n\tdefault:\n\t\td.d.errorf(\"ext - %s - expecting extensions/bytearray, got: 0x%x\", msgBadDesc, d.bd)\n\t\treturn\n\t}\n\td.bdRead = false\n\treturn\n}\n\nfunc (d *simpleDecDriver) DecodeNaked() {\n\tif !d.bdRead {\n\t\td.readNextBd()\n\t}\n\n\tn := d.d.naked()\n\tvar decodeFurther bool\n\n\tswitch d.bd {\n\tcase simpleVdNil:\n\t\tn.v = valueTypeNil\n\tcase simpleVdFalse:\n\t\tn.v = valueTypeBool\n\t\tn.b = false\n\tcase simpleVdTrue:\n\t\tn.v = valueTypeBool\n\t\tn.b = true\n\tcase simpleVdPosInt, simpleVdPosInt + 1, simpleVdPosInt + 2, simpleVdPosInt + 3:\n\t\tif d.h.SignedInteger {\n\t\t\tn.v = valueTypeInt\n\t\t\tn.i = d.DecodeInt64()\n\t\t} else {\n\t\t\tn.v = valueTypeUint\n\t\t\tn.u = d.DecodeUint64()\n\t\t}\n\tcase simpleVdNegInt, simpleVdNegInt + 1, simpleVdNegInt + 2, simpleVdNegInt + 3:\n\t\tn.v = valueTypeInt\n\t\tn.i = d.DecodeInt64()\n\tcase simpleVdFloat32:\n\t\tn.v = valueTypeFloat\n\t\tn.f = d.DecodeFloat64()\n\tcase simpleVdFloat64:\n\t\tn.v = valueTypeFloat\n\t\tn.f = d.DecodeFloat64()\n\tcase simpleVdTime:\n\t\tn.v = valueTypeTime\n\t\tn.t = d.DecodeTime()\n\tcase simpleVdString, simpleVdString + 1,\n\t\tsimpleVdString + 2, simpleVdString + 3, simpleVdString + 4:\n\t\tn.v = valueTypeString\n\t\tn.s = d.DecodeString()\n\tcase simpleVdByteArray, simpleVdByteArray + 1,\n\t\tsimpleVdByteArray + 2, simpleVdByteArray + 3, simpleVdByteArray + 4:\n\t\tdecNakedReadRawBytes(d, d.d, n, d.h.RawToString)\n\tcase simpleVdExt, simpleVdExt + 1, simpleVdExt + 2, simpleVdExt + 3, simpleVdExt + 4:\n\t\tn.v = valueTypeExt\n\t\tl := d.decLen()\n\t\tn.u = uint64(d.r.readn1())\n\t\tif d.br {\n\t\t\tn.l = d.r.readx(uint(l))\n\t\t} else {\n\t\t\tn.l = decByteSlice(d.r, l, d.d.h.MaxInitLen, d.d.b[:])\n\t\t}\n\tcase simpleVdArray, simpleVdArray + 1, simpleVdArray + 2,\n\t\tsimpleVdArray + 3, simpleVdArray + 4:\n\t\tn.v = valueTypeArray\n\t\tdecodeFurther = true\n\tcase simpleVdMap, simpleVdMap + 1, simpleVdMap + 2, simpleVdMap + 3, simpleVdMap + 4:\n\t\tn.v = valueTypeMap\n\t\tdecodeFurther = true\n\tdefault:\n\t\td.d.errorf(\"cannot infer value - %s 0x%x\", msgBadDesc, d.bd)\n\t}\n\n\tif !decodeFurther {\n\t\td.bdRead = false\n\t}\n}\n\n//------------------------------------\n\n// SimpleHandle is a Handle for a very simple encoding format.\n//\n// simple is a simplistic codec similar to binc, but not as compact.\n//   - Encoding of a value is always preceded by the descriptor byte (bd)\n//   - True, false, nil are encoded fully in 1 byte (the descriptor)\n//   - Integers (intXXX, uintXXX) are encoded in 1, 2, 4 or 8 bytes (plus a descriptor byte).\n//     There are positive (uintXXX and intXXX >= 0) and negative (intXXX < 0) integers.\n//   - Floats are encoded in 4 or 8 bytes (plus a descriptor byte)\n//   - Length of containers (strings, bytes, array, map, extensions)\n//     are encoded in 0, 1, 2, 4 or 8 bytes.\n//     Zero-length containers have no length encoded.\n//     For others, the number of bytes is given by pow(2, bd%3)\n//   - maps are encoded as [bd] [length] [[key][value]]...\n//   - arrays are encoded as [bd] [length] [value]...\n//   - extensions are encoded as [bd] [length] [tag] [byte]...\n//   - strings/bytearrays are encoded as [bd] [length] [byte]...\n//   - time.Time are encoded as [bd] [length] [byte]...\n//\n// The full spec will be published soon.\ntype SimpleHandle struct {\n\tBasicHandle\n\tbinaryEncodingType\n\tnoElemSeparators\n\t// EncZeroValuesAsNil says to encode zero values for numbers, bool, string, etc as nil\n\tEncZeroValuesAsNil bool\n\n\t_ [1]uint64 // padding (cache-aligned)\n}\n\n// Name returns the name of the handle: simple\nfunc (h *SimpleHandle) Name() string { return \"simple\" }\n\n// SetBytesExt sets an extension\nfunc (h *SimpleHandle) SetBytesExt(rt reflect.Type, tag uint64, ext BytesExt) (err error) {\n\treturn h.SetExt(rt, tag, &bytesExtWrapper{BytesExt: ext})\n}\n\n// func (h *SimpleHandle) hasElemSeparators() bool { return true } // as it implements Write(Map|Array)XXX\n\nfunc (h *SimpleHandle) newEncDriver(e *Encoder) encDriver {\n\treturn &simpleEncDriver{e: e, w: e.w(), h: h}\n}\n\nfunc (h *SimpleHandle) newDecDriver(d *Decoder) decDriver {\n\treturn &simpleDecDriver{d: d, h: h, r: d.r(), br: d.bytes}\n}\n\nfunc (e *simpleEncDriver) reset() {\n\te.w = e.e.w()\n}\n\nfunc (d *simpleDecDriver) reset() {\n\td.r, d.br = d.d.r(), d.d.bytes\n\td.bd, d.bdRead = 0, false\n}\n\nvar _ decDriver = (*simpleDecDriver)(nil)\nvar _ encDriver = (*simpleEncDriver)(nil)\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/sort-slice.generated.go",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from sort-slice.go.tmpl - DO NOT EDIT.\n\npackage codec\n\nimport \"time\"\nimport \"reflect\"\nimport \"bytes\"\n\ntype stringSlice []string\n\nfunc (p stringSlice) Len() int      { return len(p) }\nfunc (p stringSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p stringSlice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype float32Slice []float32\n\nfunc (p float32Slice) Len() int      { return len(p) }\nfunc (p float32Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p float32Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)] || isNaN32(p[uint(i)]) && !isNaN32(p[uint(j)])\n}\n\ntype float64Slice []float64\n\nfunc (p float64Slice) Len() int      { return len(p) }\nfunc (p float64Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p float64Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)] || isNaN64(p[uint(i)]) && !isNaN64(p[uint(j)])\n}\n\ntype uintSlice []uint\n\nfunc (p uintSlice) Len() int      { return len(p) }\nfunc (p uintSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uintSlice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype uint8Slice []uint8\n\nfunc (p uint8Slice) Len() int      { return len(p) }\nfunc (p uint8Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uint8Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype uint16Slice []uint16\n\nfunc (p uint16Slice) Len() int      { return len(p) }\nfunc (p uint16Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uint16Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype uint32Slice []uint32\n\nfunc (p uint32Slice) Len() int      { return len(p) }\nfunc (p uint32Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uint32Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype uint64Slice []uint64\n\nfunc (p uint64Slice) Len() int      { return len(p) }\nfunc (p uint64Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uint64Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype uintptrSlice []uintptr\n\nfunc (p uintptrSlice) Len() int      { return len(p) }\nfunc (p uintptrSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uintptrSlice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype intSlice []int\n\nfunc (p intSlice) Len() int      { return len(p) }\nfunc (p intSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p intSlice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype int8Slice []int8\n\nfunc (p int8Slice) Len() int      { return len(p) }\nfunc (p int8Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p int8Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype int16Slice []int16\n\nfunc (p int16Slice) Len() int      { return len(p) }\nfunc (p int16Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p int16Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype int32Slice []int32\n\nfunc (p int32Slice) Len() int      { return len(p) }\nfunc (p int32Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p int32Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype int64Slice []int64\n\nfunc (p int64Slice) Len() int      { return len(p) }\nfunc (p int64Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p int64Slice) Less(i, j int) bool {\n\treturn p[uint(i)] < p[uint(j)]\n}\n\ntype boolSlice []bool\n\nfunc (p boolSlice) Len() int      { return len(p) }\nfunc (p boolSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p boolSlice) Less(i, j int) bool {\n\treturn !p[uint(i)] && p[uint(j)]\n}\n\ntype timeSlice []time.Time\n\nfunc (p timeSlice) Len() int      { return len(p) }\nfunc (p timeSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p timeSlice) Less(i, j int) bool {\n\treturn p[uint(i)].Before(p[uint(j)])\n}\n\ntype bytesSlice [][]byte\n\nfunc (p bytesSlice) Len() int      { return len(p) }\nfunc (p bytesSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p bytesSlice) Less(i, j int) bool {\n\treturn bytes.Compare(p[uint(i)], p[uint(j)]) == -1\n}\n\ntype stringRv struct {\n\tv string\n\tr reflect.Value\n}\ntype stringRvSlice []stringRv\n\nfunc (p stringRvSlice) Len() int      { return len(p) }\nfunc (p stringRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p stringRvSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype stringIntf struct {\n\tv string\n\ti interface{}\n}\ntype stringIntfSlice []stringIntf\n\nfunc (p stringIntfSlice) Len() int      { return len(p) }\nfunc (p stringIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p stringIntfSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype float64Rv struct {\n\tv float64\n\tr reflect.Value\n}\ntype float64RvSlice []float64Rv\n\nfunc (p float64RvSlice) Len() int      { return len(p) }\nfunc (p float64RvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p float64RvSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v || isNaN64(p[uint(i)].v) && !isNaN64(p[uint(j)].v)\n}\n\ntype float64Intf struct {\n\tv float64\n\ti interface{}\n}\ntype float64IntfSlice []float64Intf\n\nfunc (p float64IntfSlice) Len() int      { return len(p) }\nfunc (p float64IntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p float64IntfSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v || isNaN64(p[uint(i)].v) && !isNaN64(p[uint(j)].v)\n}\n\ntype uint64Rv struct {\n\tv uint64\n\tr reflect.Value\n}\ntype uint64RvSlice []uint64Rv\n\nfunc (p uint64RvSlice) Len() int      { return len(p) }\nfunc (p uint64RvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uint64RvSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype uint64Intf struct {\n\tv uint64\n\ti interface{}\n}\ntype uint64IntfSlice []uint64Intf\n\nfunc (p uint64IntfSlice) Len() int      { return len(p) }\nfunc (p uint64IntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uint64IntfSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype uintptrRv struct {\n\tv uintptr\n\tr reflect.Value\n}\ntype uintptrRvSlice []uintptrRv\n\nfunc (p uintptrRvSlice) Len() int      { return len(p) }\nfunc (p uintptrRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uintptrRvSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype uintptrIntf struct {\n\tv uintptr\n\ti interface{}\n}\ntype uintptrIntfSlice []uintptrIntf\n\nfunc (p uintptrIntfSlice) Len() int      { return len(p) }\nfunc (p uintptrIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p uintptrIntfSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype int64Rv struct {\n\tv int64\n\tr reflect.Value\n}\ntype int64RvSlice []int64Rv\n\nfunc (p int64RvSlice) Len() int      { return len(p) }\nfunc (p int64RvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p int64RvSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype int64Intf struct {\n\tv int64\n\ti interface{}\n}\ntype int64IntfSlice []int64Intf\n\nfunc (p int64IntfSlice) Len() int      { return len(p) }\nfunc (p int64IntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p int64IntfSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v < p[uint(j)].v\n}\n\ntype boolRv struct {\n\tv bool\n\tr reflect.Value\n}\ntype boolRvSlice []boolRv\n\nfunc (p boolRvSlice) Len() int      { return len(p) }\nfunc (p boolRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p boolRvSlice) Less(i, j int) bool {\n\treturn !p[uint(i)].v && p[uint(j)].v\n}\n\ntype boolIntf struct {\n\tv bool\n\ti interface{}\n}\ntype boolIntfSlice []boolIntf\n\nfunc (p boolIntfSlice) Len() int      { return len(p) }\nfunc (p boolIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p boolIntfSlice) Less(i, j int) bool {\n\treturn !p[uint(i)].v && p[uint(j)].v\n}\n\ntype timeRv struct {\n\tv time.Time\n\tr reflect.Value\n}\ntype timeRvSlice []timeRv\n\nfunc (p timeRvSlice) Len() int      { return len(p) }\nfunc (p timeRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p timeRvSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v.Before(p[uint(j)].v)\n}\n\ntype timeIntf struct {\n\tv time.Time\n\ti interface{}\n}\ntype timeIntfSlice []timeIntf\n\nfunc (p timeIntfSlice) Len() int      { return len(p) }\nfunc (p timeIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p timeIntfSlice) Less(i, j int) bool {\n\treturn p[uint(i)].v.Before(p[uint(j)].v)\n}\n\ntype bytesRv struct {\n\tv []byte\n\tr reflect.Value\n}\ntype bytesRvSlice []bytesRv\n\nfunc (p bytesRvSlice) Len() int      { return len(p) }\nfunc (p bytesRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p bytesRvSlice) Less(i, j int) bool {\n\treturn bytes.Compare(p[uint(i)].v, p[uint(j)].v) == -1\n}\n\ntype bytesIntf struct {\n\tv []byte\n\ti interface{}\n}\ntype bytesIntfSlice []bytesIntf\n\nfunc (p bytesIntfSlice) Len() int      { return len(p) }\nfunc (p bytesIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p bytesIntfSlice) Less(i, j int) bool {\n\treturn bytes.Compare(p[uint(i)].v, p[uint(j)].v) == -1\n}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/sort-slice.go.tmpl",
    "content": "// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.\n// Use of this source code is governed by a MIT license found in the LICENSE file.\n\n// Code generated from sort-slice.go.tmpl - DO NOT EDIT.\n\n{{/*\nxxxSlice\nxxxIntf\nxxxIntfSlice\nxxxRv\nxxxRvSlice\n\nI'm not going to create them for\n- sortables\n- sortablesplus\n\nWith the parameters passed in sortables or sortablesplus,\n'time, 'bytes' are special, and correspond to time.Time and []byte respectively.\n*/}}\n\npackage codec\n\nimport \"time\"\nimport \"reflect\"\nimport \"bytes\"\n\n{{/* func init() { _ = time.Unix } */}}\n\n{{define \"T\"}}\nfunc (p {{ .Type }}) Len() int           { return len(p) }\nfunc (p {{ .Type }}) Swap(i, j int)      { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }\nfunc (p {{ .Type }}) Less(i, j int) bool {\n\t{{ if eq .Kind \"bool\"         }} return !p[uint(i)]{{.V}} && p[uint(j)]{{.V}}\n    {{ else if eq .Kind \"float32\" }} return p[uint(i)]{{.V}} < p[uint(j)]{{.V}} || isNaN32(p[uint(i)]{{.V}}) && !isNaN32(p[uint(j)]{{.V}})\n    {{ else if eq .Kind \"float64\" }} return p[uint(i)]{{.V}} < p[uint(j)]{{.V}} || isNaN64(p[uint(i)]{{.V}}) && !isNaN64(p[uint(j)]{{.V}})\n    {{ else if eq .Kind \"time\"    }} return p[uint(i)]{{.V}}.Before(p[uint(j)]{{.V}})\n    {{ else if eq .Kind \"bytes\"   }} return bytes.Compare(p[uint(i)]{{.V}}, p[uint(j)]{{.V}}) == -1\n    {{ else                    }} return p[uint(i)]{{.V}} < p[uint(j)]{{.V}}\n    {{ end -}}\n}\n{{end}}\n\n{{range $i, $v := sortables }}{{ $t := tshort $v }}\ntype {{ $v }}Slice []{{ $t }}\n{{template \"T\" args \"Kind\" $v \"Type\" (print $v \"Slice\") \"V\" \"\"}}\n{{end}}\n\n{{range $i, $v := sortablesplus }}{{ $t := tshort $v }}\n\ntype {{ $v }}Rv struct {\n\tv {{ $t }}\n\tr reflect.Value\n}\ntype {{ $v }}RvSlice []{{ $v }}Rv\n{{template \"T\" args \"Kind\" $v \"Type\" (print $v \"RvSlice\") \"V\" \".v\"}}\n\ntype {{ $v }}Intf struct {\n\tv {{ $t }}\n\ti interface{}\n}\ntype {{ $v }}IntfSlice []{{ $v }}Intf\n{{template \"T\" args \"Kind\" $v \"Type\" (print $v \"IntfSlice\") \"V\" \".v\"}}\n\n{{end}}\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/test-cbor-goldens.json",
    "content": "[\n  {\n    \"cbor\": \"AA==\",\n    \"hex\": \"00\",\n    \"roundtrip\": true,\n    \"decoded\": 0\n  },\n  {\n    \"cbor\": \"AQ==\",\n    \"hex\": \"01\",\n    \"roundtrip\": true,\n    \"decoded\": 1\n  },\n  {\n    \"cbor\": \"Cg==\",\n    \"hex\": \"0a\",\n    \"roundtrip\": true,\n    \"decoded\": 10\n  },\n  {\n    \"cbor\": \"Fw==\",\n    \"hex\": \"17\",\n    \"roundtrip\": true,\n    \"decoded\": 23\n  },\n  {\n    \"cbor\": \"GBg=\",\n    \"hex\": \"1818\",\n    \"roundtrip\": true,\n    \"decoded\": 24\n  },\n  {\n    \"cbor\": \"GBk=\",\n    \"hex\": \"1819\",\n    \"roundtrip\": true,\n    \"decoded\": 25\n  },\n  {\n    \"cbor\": \"GGQ=\",\n    \"hex\": \"1864\",\n    \"roundtrip\": true,\n    \"decoded\": 100\n  },\n  {\n    \"cbor\": \"GQPo\",\n    \"hex\": \"1903e8\",\n    \"roundtrip\": true,\n    \"decoded\": 1000\n  },\n  {\n    \"cbor\": \"GgAPQkA=\",\n    \"hex\": \"1a000f4240\",\n    \"roundtrip\": true,\n    \"decoded\": 1000000\n  },\n  {\n    \"cbor\": \"GwAAAOjUpRAA\",\n    \"hex\": \"1b000000e8d4a51000\",\n    \"roundtrip\": true,\n    \"decoded\": 1000000000000\n  },\n  {\n    \"cbor\": \"G///////////\",\n    \"hex\": \"1bffffffffffffffff\",\n    \"roundtrip\": true,\n    \"decoded\": 18446744073709551615\n  },\n  {\n    \"cbor\": \"wkkBAAAAAAAAAAA=\",\n    \"hex\": \"c249010000000000000000\",\n    \"roundtrip\": true,\n    \"decoded\": 18446744073709551616\n  },\n  {\n    \"cbor\": \"O///////////\",\n    \"hex\": \"3bffffffffffffffff\",\n    \"roundtrip\": true,\n    \"decoded\": -18446744073709551616,\n    \"skip\": true\n  },\n  {\n    \"cbor\": \"w0kBAAAAAAAAAAA=\",\n    \"hex\": \"c349010000000000000000\",\n    \"roundtrip\": true,\n    \"decoded\": -18446744073709551617\n  },\n  {\n    \"cbor\": \"IA==\",\n    \"hex\": \"20\",\n    \"roundtrip\": true,\n    \"decoded\": -1\n  },\n  {\n    \"cbor\": \"KQ==\",\n    \"hex\": \"29\",\n    \"roundtrip\": true,\n    \"decoded\": -10\n  },\n  {\n    \"cbor\": \"OGM=\",\n    \"hex\": \"3863\",\n    \"roundtrip\": true,\n    \"decoded\": -100\n  },\n  {\n    \"cbor\": \"OQPn\",\n    \"hex\": \"3903e7\",\n    \"roundtrip\": true,\n    \"decoded\": -1000\n  },\n  {\n    \"cbor\": \"+QAA\",\n    \"hex\": \"f90000\",\n    \"roundtrip\": true,\n    \"decoded\": 0.0\n  },\n  {\n    \"cbor\": \"+YAA\",\n    \"hex\": \"f98000\",\n    \"roundtrip\": true,\n    \"decoded\": -0.0\n  },\n  {\n    \"cbor\": \"+TwA\",\n    \"hex\": \"f93c00\",\n    \"roundtrip\": true,\n    \"decoded\": 1.0\n  },\n  {\n    \"cbor\": \"+z/xmZmZmZma\",\n    \"hex\": \"fb3ff199999999999a\",\n    \"roundtrip\": true,\n    \"decoded\": 1.1\n  },\n  {\n    \"cbor\": \"+T4A\",\n    \"hex\": \"f93e00\",\n    \"roundtrip\": true,\n    \"decoded\": 1.5\n  },\n  {\n    \"cbor\": \"+Xv/\",\n    \"hex\": \"f97bff\",\n    \"roundtrip\": true,\n    \"decoded\": 65504.0\n  },\n  {\n    \"cbor\": \"+kfDUAA=\",\n    \"hex\": \"fa47c35000\",\n    \"roundtrip\": true,\n    \"decoded\": 100000.0\n  },\n  {\n    \"cbor\": \"+n9///8=\",\n    \"hex\": \"fa7f7fffff\",\n    \"roundtrip\": true,\n    \"decoded\": 3.4028234663852886e+38\n  },\n  {\n    \"cbor\": \"+3435DyIAHWc\",\n    \"hex\": \"fb7e37e43c8800759c\",\n    \"roundtrip\": true,\n    \"decoded\": 1.0e+300\n  },\n  {\n    \"cbor\": \"+QAB\",\n    \"hex\": \"f90001\",\n    \"roundtrip\": true,\n    \"decoded\": 5.960464477539063e-08\n  },\n  {\n    \"cbor\": \"+QQA\",\n    \"hex\": \"f90400\",\n    \"roundtrip\": true,\n    \"decoded\": 6.103515625e-05\n  },\n  {\n    \"cbor\": \"+cQA\",\n    \"hex\": \"f9c400\",\n    \"roundtrip\": true,\n    \"decoded\": -4.0\n  },\n  {\n    \"cbor\": \"+8AQZmZmZmZm\",\n    \"hex\": \"fbc010666666666666\",\n    \"roundtrip\": true,\n    \"decoded\": -4.1\n  },\n  {\n    \"cbor\": \"+XwA\",\n    \"hex\": \"f97c00\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"Infinity\"\n  },\n  {\n    \"cbor\": \"+X4A\",\n    \"hex\": \"f97e00\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"NaN\"\n  },\n  {\n    \"cbor\": \"+fwA\",\n    \"hex\": \"f9fc00\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"-Infinity\"\n  },\n  {\n    \"cbor\": \"+n+AAAA=\",\n    \"hex\": \"fa7f800000\",\n    \"roundtrip\": false,\n    \"diagnostic\": \"Infinity\"\n  },\n  {\n    \"cbor\": \"+n/AAAA=\",\n    \"hex\": \"fa7fc00000\",\n    \"roundtrip\": false,\n    \"diagnostic\": \"NaN\"\n  },\n  {\n    \"cbor\": \"+v+AAAA=\",\n    \"hex\": \"faff800000\",\n    \"roundtrip\": false,\n    \"diagnostic\": \"-Infinity\"\n  },\n  {\n    \"cbor\": \"+3/wAAAAAAAA\",\n    \"hex\": \"fb7ff0000000000000\",\n    \"roundtrip\": false,\n    \"diagnostic\": \"Infinity\"\n  },\n  {\n    \"cbor\": \"+3/4AAAAAAAA\",\n    \"hex\": \"fb7ff8000000000000\",\n    \"roundtrip\": false,\n    \"diagnostic\": \"NaN\"\n  },\n  {\n    \"cbor\": \"+//wAAAAAAAA\",\n    \"hex\": \"fbfff0000000000000\",\n    \"roundtrip\": false,\n    \"diagnostic\": \"-Infinity\"\n  },\n  {\n    \"cbor\": \"9A==\",\n    \"hex\": \"f4\",\n    \"roundtrip\": true,\n    \"decoded\": false\n  },\n  {\n    \"cbor\": \"9Q==\",\n    \"hex\": \"f5\",\n    \"roundtrip\": true,\n    \"decoded\": true\n  },\n  {\n    \"cbor\": \"9g==\",\n    \"hex\": \"f6\",\n    \"roundtrip\": true,\n    \"decoded\": null\n  },\n  {\n    \"cbor\": \"9w==\",\n    \"hex\": \"f7\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"undefined\"\n  },\n  {\n    \"cbor\": \"8A==\",\n    \"hex\": \"f0\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"simple(16)\"\n  },\n  {\n    \"cbor\": \"+Bg=\",\n    \"hex\": \"f818\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"simple(24)\"\n  },\n  {\n    \"cbor\": \"+P8=\",\n    \"hex\": \"f8ff\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"simple(255)\"\n  },\n  {\n    \"cbor\": \"wHQyMDEzLTAzLTIxVDIwOjA0OjAwWg==\",\n    \"hex\": \"c074323031332d30332d32315432303a30343a30305a\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"0(\\\"2013-03-21T20:04:00Z\\\")\"\n  },\n  {\n    \"cbor\": \"wRpRS2ew\",\n    \"hex\": \"c11a514b67b0\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"1(1363896240)\"\n  },\n  {\n    \"cbor\": \"wftB1FLZ7CAAAA==\",\n    \"hex\": \"c1fb41d452d9ec200000\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"1(1363896240.5)\"\n  },\n  {\n    \"cbor\": \"10QBAgME\",\n    \"hex\": \"d74401020304\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"23(h'01020304')\"\n  },\n  {\n    \"cbor\": \"2BhFZElFVEY=\",\n    \"hex\": \"d818456449455446\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"24(h'6449455446')\"\n  },\n  {\n    \"cbor\": \"2CB2aHR0cDovL3d3dy5leGFtcGxlLmNvbQ==\",\n    \"hex\": \"d82076687474703a2f2f7777772e6578616d706c652e636f6d\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"32(\\\"http://www.example.com\\\")\"\n  },\n  {\n    \"cbor\": \"QA==\",\n    \"hex\": \"40\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"h''\"\n  },\n  {\n    \"cbor\": \"RAECAwQ=\",\n    \"hex\": \"4401020304\",\n    \"roundtrip\": true,\n    \"diagnostic\": \"h'01020304'\"\n  },\n  {\n    \"cbor\": \"YA==\",\n    \"hex\": \"60\",\n    \"roundtrip\": true,\n    \"decoded\": \"\"\n  },\n  {\n    \"cbor\": \"YWE=\",\n    \"hex\": \"6161\",\n    \"roundtrip\": true,\n    \"decoded\": \"a\"\n  },\n  {\n    \"cbor\": \"ZElFVEY=\",\n    \"hex\": \"6449455446\",\n    \"roundtrip\": true,\n    \"decoded\": \"IETF\"\n  },\n  {\n    \"cbor\": \"YiJc\",\n    \"hex\": \"62225c\",\n    \"roundtrip\": true,\n    \"decoded\": \"\\\"\\\\\"\n  },\n  {\n    \"cbor\": \"YsO8\",\n    \"hex\": \"62c3bc\",\n    \"roundtrip\": true,\n    \"decoded\": \"ü\"\n  },\n  {\n    \"cbor\": \"Y+awtA==\",\n    \"hex\": \"63e6b0b4\",\n    \"roundtrip\": true,\n    \"decoded\": \"水\"\n  },\n  {\n    \"cbor\": \"ZPCQhZE=\",\n    \"hex\": \"64f0908591\",\n    \"roundtrip\": true,\n    \"decoded\": \"𐅑\"\n  },\n  {\n    \"cbor\": \"gA==\",\n    \"hex\": \"80\",\n    \"roundtrip\": true,\n    \"decoded\": [\n\n    ]\n  },\n  {\n    \"cbor\": \"gwECAw==\",\n    \"hex\": \"83010203\",\n    \"roundtrip\": true,\n    \"decoded\": [\n      1,\n      2,\n      3\n    ]\n  },\n  {\n    \"cbor\": \"gwGCAgOCBAU=\",\n    \"hex\": \"8301820203820405\",\n    \"roundtrip\": true,\n    \"decoded\": [\n      1,\n      [\n        2,\n        3\n      ],\n      [\n        4,\n        5\n      ]\n    ]\n  },\n  {\n    \"cbor\": \"mBkBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgYGBk=\",\n    \"hex\": \"98190102030405060708090a0b0c0d0e0f101112131415161718181819\",\n    \"roundtrip\": true,\n    \"decoded\": [\n      1,\n      2,\n      3,\n      4,\n      5,\n      6,\n      7,\n      8,\n      9,\n      10,\n      11,\n      12,\n      13,\n      14,\n      15,\n      16,\n      17,\n      18,\n      19,\n      20,\n      21,\n      22,\n      23,\n      24,\n      25\n    ]\n  },\n  {\n    \"cbor\": \"oA==\",\n    \"hex\": \"a0\",\n    \"roundtrip\": true,\n    \"decoded\": {\n    }\n  },\n  {\n    \"cbor\": \"ogECAwQ=\",\n    \"hex\": \"a201020304\",\n    \"roundtrip\": true,\n    \"skip\": true,\n    \"diagnostic\": \"{1: 2, 3: 4}\"\n  },\n  {\n    \"cbor\": \"omFhAWFiggID\",\n    \"hex\": \"a26161016162820203\",\n    \"roundtrip\": true,\n    \"decoded\": {\n      \"a\": 1,\n      \"b\": [\n        2,\n        3\n      ]\n    }\n  },\n  {\n    \"cbor\": \"gmFhoWFiYWM=\",\n    \"hex\": \"826161a161626163\",\n    \"roundtrip\": true,\n    \"decoded\": [\n      \"a\",\n      {\n        \"b\": \"c\"\n      }\n    ]\n  },\n  {\n    \"cbor\": \"pWFhYUFhYmFCYWNhQ2FkYURhZWFF\",\n    \"hex\": \"a56161614161626142616361436164614461656145\",\n    \"roundtrip\": true,\n    \"decoded\": {\n      \"a\": \"A\",\n      \"b\": \"B\",\n      \"c\": \"C\",\n      \"d\": \"D\",\n      \"e\": \"E\"\n    }\n  },\n  {\n    \"cbor\": \"X0IBAkMDBAX/\",\n    \"hex\": \"5f42010243030405ff\",\n    \"roundtrip\": false,\n    \"skip\": true,\n    \"diagnostic\": \"(_ h'0102', h'030405')\"\n  },\n  {\n    \"cbor\": \"f2VzdHJlYWRtaW5n/w==\",\n    \"hex\": \"7f657374726561646d696e67ff\",\n    \"roundtrip\": false,\n    \"decoded\": \"streaming\"\n  },\n  {\n    \"cbor\": \"n/8=\",\n    \"hex\": \"9fff\",\n    \"roundtrip\": false,\n    \"decoded\": [\n\n    ]\n  },\n  {\n    \"cbor\": \"nwGCAgOfBAX//w==\",\n    \"hex\": \"9f018202039f0405ffff\",\n    \"roundtrip\": false,\n    \"decoded\": [\n      1,\n      [\n        2,\n        3\n      ],\n      [\n        4,\n        5\n      ]\n    ]\n  },\n  {\n    \"cbor\": \"nwGCAgOCBAX/\",\n    \"hex\": \"9f01820203820405ff\",\n    \"roundtrip\": false,\n    \"decoded\": [\n      1,\n      [\n        2,\n        3\n      ],\n      [\n        4,\n        5\n      ]\n    ]\n  },\n  {\n    \"cbor\": \"gwGCAgOfBAX/\",\n    \"hex\": \"83018202039f0405ff\",\n    \"roundtrip\": false,\n    \"decoded\": [\n      1,\n      [\n        2,\n        3\n      ],\n      [\n        4,\n        5\n      ]\n    ]\n  },\n  {\n    \"cbor\": \"gwGfAgP/ggQF\",\n    \"hex\": \"83019f0203ff820405\",\n    \"roundtrip\": false,\n    \"decoded\": [\n      1,\n      [\n        2,\n        3\n      ],\n      [\n        4,\n        5\n      ]\n    ]\n  },\n  {\n    \"cbor\": \"nwECAwQFBgcICQoLDA0ODxAREhMUFRYXGBgYGf8=\",\n    \"hex\": \"9f0102030405060708090a0b0c0d0e0f101112131415161718181819ff\",\n    \"roundtrip\": false,\n    \"decoded\": [\n      1,\n      2,\n      3,\n      4,\n      5,\n      6,\n      7,\n      8,\n      9,\n      10,\n      11,\n      12,\n      13,\n      14,\n      15,\n      16,\n      17,\n      18,\n      19,\n      20,\n      21,\n      22,\n      23,\n      24,\n      25\n    ]\n  },\n  {\n    \"cbor\": \"v2FhAWFinwID//8=\",\n    \"hex\": \"bf61610161629f0203ffff\",\n    \"roundtrip\": false,\n    \"decoded\": {\n      \"a\": 1,\n      \"b\": [\n        2,\n        3\n      ]\n    }\n  },\n  {\n    \"cbor\": \"gmFhv2FiYWP/\",\n    \"hex\": \"826161bf61626163ff\",\n    \"roundtrip\": false,\n    \"decoded\": [\n      \"a\",\n      {\n        \"b\": \"c\"\n      }\n    ]\n  },\n  {\n    \"cbor\": \"v2NGdW71Y0FtdCH/\",\n    \"hex\": \"bf6346756ef563416d7421ff\",\n    \"roundtrip\": false,\n    \"decoded\": {\n      \"Fun\": true,\n      \"Amt\": -2\n    }\n  }\n]\n"
  },
  {
    "path": "vendor/github.com/ugorji/go/codec/test.py",
    "content": "#!/usr/bin/env python\n\n# This will create golden files in a directory passed to it.\n# A Test calls this internally to create the golden files\n# So it can process them (so we don't have to checkin the files).\n\n# Ensure msgpack-python and cbor are installed first, using:\n#   sudo apt-get install python-dev\n#   sudo apt-get install python-pip\n#   pip install --user msgpack-python msgpack-rpc-python cbor\n\n# Ensure all \"string\" keys are utf strings (else encoded as bytes)\n\nimport cbor, msgpack, msgpackrpc, sys, os, threading\n\ndef get_test_data_list():\n    # get list with all primitive types, and a combo type\n    l0 = [ \n        -8,\n         -1616,\n         -32323232,\n         -6464646464646464,\n         192,\n         1616,\n         32323232,\n         6464646464646464,\n         192,\n         -3232.0,\n         -6464646464.0,\n         3232.0,\n         6464.0,\n         6464646464.0,\n         False,\n         True,\n         u\"null\",\n         None,\n         u\"some&day>some<day\",\n         1328176922000002000,\n         u\"\",\n         -2206187877999998000,\n         u\"bytestring\",\n         270,\n         u\"none\",\n        -2013855847999995777,\n         #-6795364578871345152,\n         ]\n    l1 = [\n        { \"true\": True,\n          \"false\": False },\n        { \"true\": u\"True\",\n          \"false\": False,\n          \"uint16(1616)\": 1616 },\n        { \"list\": [1616, 32323232, True, -3232.0, {\"TRUE\":True, \"FALSE\":False}, [True, False] ],\n          \"int32\":32323232, \"bool\": True, \n          \"LONG STRING\": u\"123456789012345678901234567890123456789012345678901234567890\",\n          \"SHORT STRING\": u\"1234567890\" },\n        { True: \"true\", 138: False, \"false\": 200 }\n        ]\n    \n    l = []\n    l.extend(l0)\n    l.append(l0)\n    l.append(1)\n    l.extend(l1)\n    return l\n\ndef build_test_data(destdir):\n    l = get_test_data_list()\n    for i in range(len(l)):\n        # packer = msgpack.Packer()\n        serialized = msgpack.dumps(l[i])\n        f = open(os.path.join(destdir, str(i) + '.msgpack.golden'), 'wb')\n        f.write(serialized)\n        f.close()\n        serialized = cbor.dumps(l[i])\n        f = open(os.path.join(destdir, str(i) + '.cbor.golden'), 'wb')\n        f.write(serialized)\n        f.close()\n\ndef doRpcServer(port, stopTimeSec):\n    class EchoHandler(object):\n        def Echo123(self, msg1, msg2, msg3):\n            return (\"1:%s 2:%s 3:%s\" % (msg1, msg2, msg3))\n        def EchoStruct(self, msg):\n            return (\"%s\" % msg)\n    \n    addr = msgpackrpc.Address('127.0.0.1', port)\n    server = msgpackrpc.Server(EchoHandler())\n    server.listen(addr)\n    # run thread to stop it after stopTimeSec seconds if > 0\n    if stopTimeSec > 0:\n        def myStopRpcServer():\n            server.stop()\n        t = threading.Timer(stopTimeSec, myStopRpcServer)\n        t.start()\n    server.start()\n\ndef doRpcClientToPythonSvc(port):\n    address = msgpackrpc.Address('127.0.0.1', port)\n    client = msgpackrpc.Client(address, unpack_encoding='utf-8')\n    print client.call(\"Echo123\", \"A1\", \"B2\", \"C3\")\n    print client.call(\"EchoStruct\", {\"A\" :\"Aa\", \"B\":\"Bb\", \"C\":\"Cc\"})\n   \ndef doRpcClientToGoSvc(port):\n    # print \">>>> port: \", port, \" <<<<<\"\n    address = msgpackrpc.Address('127.0.0.1', port)\n    client = msgpackrpc.Client(address, unpack_encoding='utf-8')\n    print client.call(\"TestRpcInt.Echo123\", [\"A1\", \"B2\", \"C3\"])\n    print client.call(\"TestRpcInt.EchoStruct\", {\"A\" :\"Aa\", \"B\":\"Bb\", \"C\":\"Cc\"})\n\ndef doMain(args):\n    if len(args) == 2 and args[0] == \"testdata\":\n        build_test_data(args[1])\n    elif len(args) == 3 and args[0] == \"rpc-server\":\n        doRpcServer(int(args[1]), int(args[2]))\n    elif len(args) == 2 and args[0] == \"rpc-client-python-service\":\n        doRpcClientToPythonSvc(int(args[1]))\n    elif len(args) == 2 and args[0] == \"rpc-client-go-service\":\n        doRpcClientToGoSvc(int(args[1]))\n    else:\n        print(\"Usage: test.py \" + \n              \"[testdata|rpc-server|rpc-client-python-service|rpc-client-go-service] ...\")\n    \nif __name__ == \"__main__\":\n    doMain(sys.argv[1:])\n\n"
  },
  {
    "path": "vendor/github.com/unknwon/com/go.mod",
    "content": "module github.com/unknwon/com\n\nrequire (\n\tgithub.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect\n\tgithub.com/jtolds/gls v4.2.1+incompatible // indirect\n\tgithub.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304 // indirect\n\tgithub.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c\n)\n"
  },
  {
    "path": "vendor/github.com/unknwon/com/go.sum",
    "content": "github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=\ngithub.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE=\ngithub.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304 h1:Jpy1PXuP99tXNrhbq2BaPz9B+jNAvH1JPQQpG/9GCXY=\ngithub.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c h1:Ho+uVpkel/udgjbwB5Lktg9BtvJSh2DT0Hi6LPSyI2w=\ngithub.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=\n"
  },
  {
    "path": "vendor/golang.org/x/image/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/golang.org/x/image/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/golang.org/x/image/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/image/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/image/font/font.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package font defines an interface for font faces, for drawing text on an\n// image.\n//\n// Other packages provide font face implementations. For example, a truetype\n// package would provide one based on .ttf font files.\npackage font // import \"golang.org/x/image/font\"\n\nimport (\n\t\"image\"\n\t\"image/draw\"\n\t\"io\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// TODO: who is responsible for caches (glyph images, glyph indices, kerns)?\n// The Drawer or the Face?\n\n// Face is a font face. Its glyphs are often derived from a font file, such as\n// \"Comic_Sans_MS.ttf\", but a face has a specific size, style, weight and\n// hinting. For example, the 12pt and 18pt versions of Comic Sans are two\n// different faces, even if derived from the same font file.\n//\n// A Face is not safe for concurrent use by multiple goroutines, as its methods\n// may re-use implementation-specific caches and mask image buffers.\n//\n// To create a Face, look to other packages that implement specific font file\n// formats.\ntype Face interface {\n\tio.Closer\n\n\t// Glyph returns the draw.DrawMask parameters (dr, mask, maskp) to draw r's\n\t// glyph at the sub-pixel destination location dot, and that glyph's\n\t// advance width.\n\t//\n\t// It returns !ok if the face does not contain a glyph for r.\n\t//\n\t// The contents of the mask image returned by one Glyph call may change\n\t// after the next Glyph call. Callers that want to cache the mask must make\n\t// a copy.\n\tGlyph(dot fixed.Point26_6, r rune) (\n\t\tdr image.Rectangle, mask image.Image, maskp image.Point, advance fixed.Int26_6, ok bool)\n\n\t// GlyphBounds returns the bounding box of r's glyph, drawn at a dot equal\n\t// to the origin, and that glyph's advance width.\n\t//\n\t// It returns !ok if the face does not contain a glyph for r.\n\t//\n\t// The glyph's ascent and descent equal -bounds.Min.Y and +bounds.Max.Y. A\n\t// visual depiction of what these metrics are is at\n\t// https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Art/glyph_metrics_2x.png\n\tGlyphBounds(r rune) (bounds fixed.Rectangle26_6, advance fixed.Int26_6, ok bool)\n\n\t// GlyphAdvance returns the advance width of r's glyph.\n\t//\n\t// It returns !ok if the face does not contain a glyph for r.\n\tGlyphAdvance(r rune) (advance fixed.Int26_6, ok bool)\n\n\t// Kern returns the horizontal adjustment for the kerning pair (r0, r1). A\n\t// positive kern means to move the glyphs further apart.\n\tKern(r0, r1 rune) fixed.Int26_6\n\n\t// Metrics returns the metrics for this Face.\n\tMetrics() Metrics\n\n\t// TODO: ColoredGlyph for various emoji?\n\t// TODO: Ligatures? Shaping?\n}\n\n// Metrics holds the metrics for a Face. A visual depiction is at\n// https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Art/glyph_metrics_2x.png\ntype Metrics struct {\n\t// Height is the recommended amount of vertical space between two lines of\n\t// text.\n\tHeight fixed.Int26_6\n\n\t// Ascent is the distance from the top of a line to its baseline.\n\tAscent fixed.Int26_6\n\n\t// Descent is the distance from the bottom of a line to its baseline. The\n\t// value is typically positive, even though a descender goes below the\n\t// baseline.\n\tDescent fixed.Int26_6\n}\n\n// Drawer draws text on a destination image.\n//\n// A Drawer is not safe for concurrent use by multiple goroutines, since its\n// Face is not.\ntype Drawer struct {\n\t// Dst is the destination image.\n\tDst draw.Image\n\t// Src is the source image.\n\tSrc image.Image\n\t// Face provides the glyph mask images.\n\tFace Face\n\t// Dot is the baseline location to draw the next glyph. The majority of the\n\t// affected pixels will be above and to the right of the dot, but some may\n\t// be below or to the left. For example, drawing a 'j' in an italic face\n\t// may affect pixels below and to the left of the dot.\n\tDot fixed.Point26_6\n\n\t// TODO: Clip image.Image?\n\t// TODO: SrcP image.Point for Src images other than *image.Uniform? How\n\t// does it get updated during DrawString?\n}\n\n// TODO: should DrawString return the last rune drawn, so the next DrawString\n// call can kern beforehand? Or should that be the responsibility of the caller\n// if they really want to do that, since they have to explicitly shift d.Dot\n// anyway? What if ligatures span more than two runes? What if grapheme\n// clusters span multiple runes?\n//\n// TODO: do we assume that the input is in any particular Unicode Normalization\n// Form?\n//\n// TODO: have DrawRunes(s []rune)? DrawRuneReader(io.RuneReader)?? If we take\n// io.RuneReader, we can't assume that we can rewind the stream.\n//\n// TODO: how does this work with line breaking: drawing text up until a\n// vertical line? Should DrawString return the number of runes drawn?\n\n// DrawBytes draws s at the dot and advances the dot's location.\n//\n// It is equivalent to DrawString(string(s)) but may be more efficient.\nfunc (d *Drawer) DrawBytes(s []byte) {\n\tprevC := rune(-1)\n\tfor len(s) > 0 {\n\t\tc, size := utf8.DecodeRune(s)\n\t\ts = s[size:]\n\t\tif prevC >= 0 {\n\t\t\td.Dot.X += d.Face.Kern(prevC, c)\n\t\t}\n\t\tdr, mask, maskp, advance, ok := d.Face.Glyph(d.Dot, c)\n\t\tif !ok {\n\t\t\t// TODO: is falling back on the U+FFFD glyph the responsibility of\n\t\t\t// the Drawer or the Face?\n\t\t\t// TODO: set prevC = '\\ufffd'?\n\t\t\tcontinue\n\t\t}\n\t\tdraw.DrawMask(d.Dst, dr, d.Src, image.Point{}, mask, maskp, draw.Over)\n\t\td.Dot.X += advance\n\t\tprevC = c\n\t}\n}\n\n// DrawString draws s at the dot and advances the dot's location.\nfunc (d *Drawer) DrawString(s string) {\n\tprevC := rune(-1)\n\tfor _, c := range s {\n\t\tif prevC >= 0 {\n\t\t\td.Dot.X += d.Face.Kern(prevC, c)\n\t\t}\n\t\tdr, mask, maskp, advance, ok := d.Face.Glyph(d.Dot, c)\n\t\tif !ok {\n\t\t\t// TODO: is falling back on the U+FFFD glyph the responsibility of\n\t\t\t// the Drawer or the Face?\n\t\t\t// TODO: set prevC = '\\ufffd'?\n\t\t\tcontinue\n\t\t}\n\t\tdraw.DrawMask(d.Dst, dr, d.Src, image.Point{}, mask, maskp, draw.Over)\n\t\td.Dot.X += advance\n\t\tprevC = c\n\t}\n}\n\n// BoundBytes returns the bounding box of s, drawn at the drawer dot, as well as\n// the advance.\n//\n// It is equivalent to BoundBytes(string(s)) but may be more efficient.\nfunc (d *Drawer) BoundBytes(s []byte) (bounds fixed.Rectangle26_6, advance fixed.Int26_6) {\n\tbounds, advance = BoundBytes(d.Face, s)\n\tbounds.Min = bounds.Min.Add(d.Dot)\n\tbounds.Max = bounds.Max.Add(d.Dot)\n\treturn\n}\n\n// BoundString returns the bounding box of s, drawn at the drawer dot, as well\n// as the advance.\nfunc (d *Drawer) BoundString(s string) (bounds fixed.Rectangle26_6, advance fixed.Int26_6) {\n\tbounds, advance = BoundString(d.Face, s)\n\tbounds.Min = bounds.Min.Add(d.Dot)\n\tbounds.Max = bounds.Max.Add(d.Dot)\n\treturn\n}\n\n// MeasureBytes returns how far dot would advance by drawing s.\n//\n// It is equivalent to MeasureString(string(s)) but may be more efficient.\nfunc (d *Drawer) MeasureBytes(s []byte) (advance fixed.Int26_6) {\n\treturn MeasureBytes(d.Face, s)\n}\n\n// MeasureString returns how far dot would advance by drawing s.\nfunc (d *Drawer) MeasureString(s string) (advance fixed.Int26_6) {\n\treturn MeasureString(d.Face, s)\n}\n\n// BoundBytes returns the bounding box of s with f, drawn at a dot equal to the\n// origin, as well as the advance.\n//\n// It is equivalent to BoundString(string(s)) but may be more efficient.\nfunc BoundBytes(f Face, s []byte) (bounds fixed.Rectangle26_6, advance fixed.Int26_6) {\n\tprevC := rune(-1)\n\tfor len(s) > 0 {\n\t\tc, size := utf8.DecodeRune(s)\n\t\ts = s[size:]\n\t\tif prevC >= 0 {\n\t\t\tadvance += f.Kern(prevC, c)\n\t\t}\n\t\tb, a, ok := f.GlyphBounds(c)\n\t\tif !ok {\n\t\t\t// TODO: is falling back on the U+FFFD glyph the responsibility of\n\t\t\t// the Drawer or the Face?\n\t\t\t// TODO: set prevC = '\\ufffd'?\n\t\t\tcontinue\n\t\t}\n\t\tb.Min.X += advance\n\t\tb.Max.X += advance\n\t\tbounds = bounds.Union(b)\n\t\tadvance += a\n\t\tprevC = c\n\t}\n\treturn\n}\n\n// BoundString returns the bounding box of s with f, drawn at a dot equal to the\n// origin, as well as the advance.\nfunc BoundString(f Face, s string) (bounds fixed.Rectangle26_6, advance fixed.Int26_6) {\n\tprevC := rune(-1)\n\tfor _, c := range s {\n\t\tif prevC >= 0 {\n\t\t\tadvance += f.Kern(prevC, c)\n\t\t}\n\t\tb, a, ok := f.GlyphBounds(c)\n\t\tif !ok {\n\t\t\t// TODO: is falling back on the U+FFFD glyph the responsibility of\n\t\t\t// the Drawer or the Face?\n\t\t\t// TODO: set prevC = '\\ufffd'?\n\t\t\tcontinue\n\t\t}\n\t\tb.Min.X += advance\n\t\tb.Max.X += advance\n\t\tbounds = bounds.Union(b)\n\t\tadvance += a\n\t\tprevC = c\n\t}\n\treturn\n}\n\n// MeasureBytes returns how far dot would advance by drawing s with f.\n//\n// It is equivalent to MeasureString(string(s)) but may be more efficient.\nfunc MeasureBytes(f Face, s []byte) (advance fixed.Int26_6) {\n\tprevC := rune(-1)\n\tfor len(s) > 0 {\n\t\tc, size := utf8.DecodeRune(s)\n\t\ts = s[size:]\n\t\tif prevC >= 0 {\n\t\t\tadvance += f.Kern(prevC, c)\n\t\t}\n\t\ta, ok := f.GlyphAdvance(c)\n\t\tif !ok {\n\t\t\t// TODO: is falling back on the U+FFFD glyph the responsibility of\n\t\t\t// the Drawer or the Face?\n\t\t\t// TODO: set prevC = '\\ufffd'?\n\t\t\tcontinue\n\t\t}\n\t\tadvance += a\n\t\tprevC = c\n\t}\n\treturn advance\n}\n\n// MeasureString returns how far dot would advance by drawing s with f.\nfunc MeasureString(f Face, s string) (advance fixed.Int26_6) {\n\tprevC := rune(-1)\n\tfor _, c := range s {\n\t\tif prevC >= 0 {\n\t\t\tadvance += f.Kern(prevC, c)\n\t\t}\n\t\ta, ok := f.GlyphAdvance(c)\n\t\tif !ok {\n\t\t\t// TODO: is falling back on the U+FFFD glyph the responsibility of\n\t\t\t// the Drawer or the Face?\n\t\t\t// TODO: set prevC = '\\ufffd'?\n\t\t\tcontinue\n\t\t}\n\t\tadvance += a\n\t\tprevC = c\n\t}\n\treturn advance\n}\n\n// Hinting selects how to quantize a vector font's glyph nodes.\n//\n// Not all fonts support hinting.\ntype Hinting int\n\nconst (\n\tHintingNone Hinting = iota\n\tHintingVertical\n\tHintingFull\n)\n\n// Stretch selects a normal, condensed, or expanded face.\n//\n// Not all fonts support stretches.\ntype Stretch int\n\nconst (\n\tStretchUltraCondensed Stretch = -4\n\tStretchExtraCondensed Stretch = -3\n\tStretchCondensed      Stretch = -2\n\tStretchSemiCondensed  Stretch = -1\n\tStretchNormal         Stretch = +0\n\tStretchSemiExpanded   Stretch = +1\n\tStretchExpanded       Stretch = +2\n\tStretchExtraExpanded  Stretch = +3\n\tStretchUltraExpanded  Stretch = +4\n)\n\n// Style selects a normal, italic, or oblique face.\n//\n// Not all fonts support styles.\ntype Style int\n\nconst (\n\tStyleNormal Style = iota\n\tStyleItalic\n\tStyleOblique\n)\n\n// Weight selects a normal, light or bold face.\n//\n// Not all fonts support weights.\n//\n// The named Weight constants (e.g. WeightBold) correspond to CSS' common\n// weight names (e.g. \"Bold\"), but the numerical values differ, so that in Go,\n// the zero value means to use a normal weight. For the CSS names and values,\n// see https://developer.mozilla.org/en/docs/Web/CSS/font-weight\ntype Weight int\n\nconst (\n\tWeightThin       Weight = -3 // CSS font-weight value 100.\n\tWeightExtraLight Weight = -2 // CSS font-weight value 200.\n\tWeightLight      Weight = -1 // CSS font-weight value 300.\n\tWeightNormal     Weight = +0 // CSS font-weight value 400.\n\tWeightMedium     Weight = +1 // CSS font-weight value 500.\n\tWeightSemiBold   Weight = +2 // CSS font-weight value 600.\n\tWeightBold       Weight = +3 // CSS font-weight value 700.\n\tWeightExtraBold  Weight = +4 // CSS font-weight value 800.\n\tWeightBlack      Weight = +5 // CSS font-weight value 900.\n)\n"
  },
  {
    "path": "vendor/golang.org/x/image/math/fixed/fixed.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package fixed implements fixed-point integer types.\npackage fixed // import \"golang.org/x/image/math/fixed\"\n\nimport (\n\t\"fmt\"\n)\n\n// TODO: implement fmt.Formatter for %f and %g.\n\n// I returns the integer value i as an Int26_6.\n//\n// For example, passing the integer value 2 yields Int26_6(128).\nfunc I(i int) Int26_6 {\n\treturn Int26_6(i << 6)\n}\n\n// Int26_6 is a signed 26.6 fixed-point number.\n//\n// The integer part ranges from -33554432 to 33554431, inclusive. The\n// fractional part has 6 bits of precision.\n//\n// For example, the number one-and-a-quarter is Int26_6(1<<6 + 1<<4).\ntype Int26_6 int32\n\n// String returns a human-readable representation of a 26.6 fixed-point number.\n//\n// For example, the number one-and-a-quarter becomes \"1:16\".\nfunc (x Int26_6) String() string {\n\tconst shift, mask = 6, 1<<6 - 1\n\tif x >= 0 {\n\t\treturn fmt.Sprintf(\"%d:%02d\", int32(x>>shift), int32(x&mask))\n\t}\n\tx = -x\n\tif x >= 0 {\n\t\treturn fmt.Sprintf(\"-%d:%02d\", int32(x>>shift), int32(x&mask))\n\t}\n\treturn \"-33554432:00\" // The minimum value is -(1<<25).\n}\n\n// Floor returns the greatest integer value less than or equal to x.\n//\n// Its return type is int, not Int26_6.\nfunc (x Int26_6) Floor() int { return int((x + 0x00) >> 6) }\n\n// Round returns the nearest integer value to x. Ties are rounded up.\n//\n// Its return type is int, not Int26_6.\nfunc (x Int26_6) Round() int { return int((x + 0x20) >> 6) }\n\n// Ceil returns the least integer value greater than or equal to x.\n//\n// Its return type is int, not Int26_6.\nfunc (x Int26_6) Ceil() int { return int((x + 0x3f) >> 6) }\n\n// Mul returns x*y in 26.6 fixed-point arithmetic.\nfunc (x Int26_6) Mul(y Int26_6) Int26_6 {\n\treturn Int26_6((int64(x)*int64(y) + 1<<5) >> 6)\n}\n\n// Int52_12 is a signed 52.12 fixed-point number.\n//\n// The integer part ranges from -2251799813685248 to 2251799813685247,\n// inclusive. The fractional part has 12 bits of precision.\n//\n// For example, the number one-and-a-quarter is Int52_12(1<<12 + 1<<10).\ntype Int52_12 int64\n\n// String returns a human-readable representation of a 52.12 fixed-point\n// number.\n//\n// For example, the number one-and-a-quarter becomes \"1:1024\".\nfunc (x Int52_12) String() string {\n\tconst shift, mask = 12, 1<<12 - 1\n\tif x >= 0 {\n\t\treturn fmt.Sprintf(\"%d:%04d\", int64(x>>shift), int64(x&mask))\n\t}\n\tx = -x\n\tif x >= 0 {\n\t\treturn fmt.Sprintf(\"-%d:%04d\", int64(x>>shift), int64(x&mask))\n\t}\n\treturn \"-2251799813685248:0000\" // The minimum value is -(1<<51).\n}\n\n// Floor returns the greatest integer value less than or equal to x.\n//\n// Its return type is int, not Int52_12.\nfunc (x Int52_12) Floor() int { return int((x + 0x000) >> 12) }\n\n// Round returns the nearest integer value to x. Ties are rounded up.\n//\n// Its return type is int, not Int52_12.\nfunc (x Int52_12) Round() int { return int((x + 0x800) >> 12) }\n\n// Ceil returns the least integer value greater than or equal to x.\n//\n// Its return type is int, not Int52_12.\nfunc (x Int52_12) Ceil() int { return int((x + 0xfff) >> 12) }\n\n// Mul returns x*y in 52.12 fixed-point arithmetic.\nfunc (x Int52_12) Mul(y Int52_12) Int52_12 {\n\tconst M, N = 52, 12\n\tlo, hi := muli64(int64(x), int64(y))\n\tret := Int52_12(hi<<M | lo>>N)\n\tret += Int52_12((lo >> (N - 1)) & 1) // Round to nearest, instead of rounding down.\n\treturn ret\n}\n\n// muli64 multiplies two int64 values, returning the 128-bit signed integer\n// result as two uint64 values.\n//\n// This implementation is similar to $GOROOT/src/runtime/softfloat64.go's mullu\n// function, which is in turn adapted from Hacker's Delight.\nfunc muli64(u, v int64) (lo, hi uint64) {\n\tconst (\n\t\ts    = 32\n\t\tmask = 1<<s - 1\n\t)\n\n\tu1 := uint64(u >> s)\n\tu0 := uint64(u & mask)\n\tv1 := uint64(v >> s)\n\tv0 := uint64(v & mask)\n\n\tw0 := u0 * v0\n\tt := u1*v0 + w0>>s\n\tw1 := t & mask\n\tw2 := uint64(int64(t) >> s)\n\tw1 += u0 * v1\n\treturn uint64(u) * uint64(v), u1*v1 + w2 + uint64(int64(w1)>>s)\n}\n\n// P returns the integer values x and y as a Point26_6.\n//\n// For example, passing the integer values (2, -3) yields Point26_6{128, -192}.\nfunc P(x, y int) Point26_6 {\n\treturn Point26_6{Int26_6(x << 6), Int26_6(y << 6)}\n}\n\n// Point26_6 is a 26.6 fixed-point coordinate pair.\n//\n// It is analogous to the image.Point type in the standard library.\ntype Point26_6 struct {\n\tX, Y Int26_6\n}\n\n// Add returns the vector p+q.\nfunc (p Point26_6) Add(q Point26_6) Point26_6 {\n\treturn Point26_6{p.X + q.X, p.Y + q.Y}\n}\n\n// Sub returns the vector p-q.\nfunc (p Point26_6) Sub(q Point26_6) Point26_6 {\n\treturn Point26_6{p.X - q.X, p.Y - q.Y}\n}\n\n// Mul returns the vector p*k.\nfunc (p Point26_6) Mul(k Int26_6) Point26_6 {\n\treturn Point26_6{p.X * k / 64, p.Y * k / 64}\n}\n\n// Div returns the vector p/k.\nfunc (p Point26_6) Div(k Int26_6) Point26_6 {\n\treturn Point26_6{p.X * 64 / k, p.Y * 64 / k}\n}\n\n// In returns whether p is in r.\nfunc (p Point26_6) In(r Rectangle26_6) bool {\n\treturn r.Min.X <= p.X && p.X < r.Max.X && r.Min.Y <= p.Y && p.Y < r.Max.Y\n}\n\n// Point52_12 is a 52.12 fixed-point coordinate pair.\n//\n// It is analogous to the image.Point type in the standard library.\ntype Point52_12 struct {\n\tX, Y Int52_12\n}\n\n// Add returns the vector p+q.\nfunc (p Point52_12) Add(q Point52_12) Point52_12 {\n\treturn Point52_12{p.X + q.X, p.Y + q.Y}\n}\n\n// Sub returns the vector p-q.\nfunc (p Point52_12) Sub(q Point52_12) Point52_12 {\n\treturn Point52_12{p.X - q.X, p.Y - q.Y}\n}\n\n// Mul returns the vector p*k.\nfunc (p Point52_12) Mul(k Int52_12) Point52_12 {\n\treturn Point52_12{p.X * k / 4096, p.Y * k / 4096}\n}\n\n// Div returns the vector p/k.\nfunc (p Point52_12) Div(k Int52_12) Point52_12 {\n\treturn Point52_12{p.X * 4096 / k, p.Y * 4096 / k}\n}\n\n// In returns whether p is in r.\nfunc (p Point52_12) In(r Rectangle52_12) bool {\n\treturn r.Min.X <= p.X && p.X < r.Max.X && r.Min.Y <= p.Y && p.Y < r.Max.Y\n}\n\n// R returns the integer values minX, minY, maxX, maxY as a Rectangle26_6.\n//\n// For example, passing the integer values (0, 1, 2, 3) yields\n// Rectangle26_6{Point26_6{0, 64}, Point26_6{128, 192}}.\n//\n// Like the image.Rect function in the standard library, the returned rectangle\n// has minimum and maximum coordinates swapped if necessary so that it is\n// well-formed.\nfunc R(minX, minY, maxX, maxY int) Rectangle26_6 {\n\tif minX > maxX {\n\t\tminX, maxX = maxX, minX\n\t}\n\tif minY > maxY {\n\t\tminY, maxY = maxY, minY\n\t}\n\treturn Rectangle26_6{\n\t\tPoint26_6{\n\t\t\tInt26_6(minX << 6),\n\t\t\tInt26_6(minY << 6),\n\t\t},\n\t\tPoint26_6{\n\t\t\tInt26_6(maxX << 6),\n\t\t\tInt26_6(maxY << 6),\n\t\t},\n\t}\n}\n\n// Rectangle26_6 is a 26.6 fixed-point coordinate rectangle. The Min bound is\n// inclusive and the Max bound is exclusive. It is well-formed if Min.X <=\n// Max.X and likewise for Y.\n//\n// It is analogous to the image.Rectangle type in the standard library.\ntype Rectangle26_6 struct {\n\tMin, Max Point26_6\n}\n\n// Add returns the rectangle r translated by p.\nfunc (r Rectangle26_6) Add(p Point26_6) Rectangle26_6 {\n\treturn Rectangle26_6{\n\t\tPoint26_6{r.Min.X + p.X, r.Min.Y + p.Y},\n\t\tPoint26_6{r.Max.X + p.X, r.Max.Y + p.Y},\n\t}\n}\n\n// Sub returns the rectangle r translated by -p.\nfunc (r Rectangle26_6) Sub(p Point26_6) Rectangle26_6 {\n\treturn Rectangle26_6{\n\t\tPoint26_6{r.Min.X - p.X, r.Min.Y - p.Y},\n\t\tPoint26_6{r.Max.X - p.X, r.Max.Y - p.Y},\n\t}\n}\n\n// Intersect returns the largest rectangle contained by both r and s. If the\n// two rectangles do not overlap then the zero rectangle will be returned.\nfunc (r Rectangle26_6) Intersect(s Rectangle26_6) Rectangle26_6 {\n\tif r.Min.X < s.Min.X {\n\t\tr.Min.X = s.Min.X\n\t}\n\tif r.Min.Y < s.Min.Y {\n\t\tr.Min.Y = s.Min.Y\n\t}\n\tif r.Max.X > s.Max.X {\n\t\tr.Max.X = s.Max.X\n\t}\n\tif r.Max.Y > s.Max.Y {\n\t\tr.Max.Y = s.Max.Y\n\t}\n\t// Letting r0 and s0 be the values of r and s at the time that the method\n\t// is called, this next line is equivalent to:\n\t//\n\t// if max(r0.Min.X, s0.Min.X) >= min(r0.Max.X, s0.Max.X) || likewiseForY { etc }\n\tif r.Empty() {\n\t\treturn Rectangle26_6{}\n\t}\n\treturn r\n}\n\n// Union returns the smallest rectangle that contains both r and s.\nfunc (r Rectangle26_6) Union(s Rectangle26_6) Rectangle26_6 {\n\tif r.Empty() {\n\t\treturn s\n\t}\n\tif s.Empty() {\n\t\treturn r\n\t}\n\tif r.Min.X > s.Min.X {\n\t\tr.Min.X = s.Min.X\n\t}\n\tif r.Min.Y > s.Min.Y {\n\t\tr.Min.Y = s.Min.Y\n\t}\n\tif r.Max.X < s.Max.X {\n\t\tr.Max.X = s.Max.X\n\t}\n\tif r.Max.Y < s.Max.Y {\n\t\tr.Max.Y = s.Max.Y\n\t}\n\treturn r\n}\n\n// Empty returns whether the rectangle contains no points.\nfunc (r Rectangle26_6) Empty() bool {\n\treturn r.Min.X >= r.Max.X || r.Min.Y >= r.Max.Y\n}\n\n// In returns whether every point in r is in s.\nfunc (r Rectangle26_6) In(s Rectangle26_6) bool {\n\tif r.Empty() {\n\t\treturn true\n\t}\n\t// Note that r.Max is an exclusive bound for r, so that r.In(s)\n\t// does not require that r.Max.In(s).\n\treturn s.Min.X <= r.Min.X && r.Max.X <= s.Max.X &&\n\t\ts.Min.Y <= r.Min.Y && r.Max.Y <= s.Max.Y\n}\n\n// Rectangle52_12 is a 52.12 fixed-point coordinate rectangle. The Min bound is\n// inclusive and the Max bound is exclusive. It is well-formed if Min.X <=\n// Max.X and likewise for Y.\n//\n// It is analogous to the image.Rectangle type in the standard library.\ntype Rectangle52_12 struct {\n\tMin, Max Point52_12\n}\n\n// Add returns the rectangle r translated by p.\nfunc (r Rectangle52_12) Add(p Point52_12) Rectangle52_12 {\n\treturn Rectangle52_12{\n\t\tPoint52_12{r.Min.X + p.X, r.Min.Y + p.Y},\n\t\tPoint52_12{r.Max.X + p.X, r.Max.Y + p.Y},\n\t}\n}\n\n// Sub returns the rectangle r translated by -p.\nfunc (r Rectangle52_12) Sub(p Point52_12) Rectangle52_12 {\n\treturn Rectangle52_12{\n\t\tPoint52_12{r.Min.X - p.X, r.Min.Y - p.Y},\n\t\tPoint52_12{r.Max.X - p.X, r.Max.Y - p.Y},\n\t}\n}\n\n// Intersect returns the largest rectangle contained by both r and s. If the\n// two rectangles do not overlap then the zero rectangle will be returned.\nfunc (r Rectangle52_12) Intersect(s Rectangle52_12) Rectangle52_12 {\n\tif r.Min.X < s.Min.X {\n\t\tr.Min.X = s.Min.X\n\t}\n\tif r.Min.Y < s.Min.Y {\n\t\tr.Min.Y = s.Min.Y\n\t}\n\tif r.Max.X > s.Max.X {\n\t\tr.Max.X = s.Max.X\n\t}\n\tif r.Max.Y > s.Max.Y {\n\t\tr.Max.Y = s.Max.Y\n\t}\n\t// Letting r0 and s0 be the values of r and s at the time that the method\n\t// is called, this next line is equivalent to:\n\t//\n\t// if max(r0.Min.X, s0.Min.X) >= min(r0.Max.X, s0.Max.X) || likewiseForY { etc }\n\tif r.Empty() {\n\t\treturn Rectangle52_12{}\n\t}\n\treturn r\n}\n\n// Union returns the smallest rectangle that contains both r and s.\nfunc (r Rectangle52_12) Union(s Rectangle52_12) Rectangle52_12 {\n\tif r.Empty() {\n\t\treturn s\n\t}\n\tif s.Empty() {\n\t\treturn r\n\t}\n\tif r.Min.X > s.Min.X {\n\t\tr.Min.X = s.Min.X\n\t}\n\tif r.Min.Y > s.Min.Y {\n\t\tr.Min.Y = s.Min.Y\n\t}\n\tif r.Max.X < s.Max.X {\n\t\tr.Max.X = s.Max.X\n\t}\n\tif r.Max.Y < s.Max.Y {\n\t\tr.Max.Y = s.Max.Y\n\t}\n\treturn r\n}\n\n// Empty returns whether the rectangle contains no points.\nfunc (r Rectangle52_12) Empty() bool {\n\treturn r.Min.X >= r.Max.X || r.Min.Y >= r.Max.Y\n}\n\n// In returns whether every point in r is in s.\nfunc (r Rectangle52_12) In(s Rectangle52_12) bool {\n\tif r.Empty() {\n\t\treturn true\n\t}\n\t// Note that r.Max is an exclusive bound for r, so that r.In(s)\n\t// does not require that r.Max.In(s).\n\treturn s.Min.X <= r.Min.X && r.Max.X <= s.Max.X &&\n\t\ts.Min.Y <= r.Min.Y && r.Max.Y <= s.Max.Y\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/golang.org/x/net/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/golang.org/x/net/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/net/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/net/context/context.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package context defines the Context type, which carries deadlines,\n// cancelation signals, and other request-scoped values across API boundaries\n// and between processes.\n// As of Go 1.7 this package is available in the standard library under the\n// name context.  https://golang.org/pkg/context.\n//\n// Incoming requests to a server should create a Context, and outgoing calls to\n// servers should accept a Context. The chain of function calls between must\n// propagate the Context, optionally replacing it with a modified copy created\n// using WithDeadline, WithTimeout, WithCancel, or WithValue.\n//\n// Programs that use Contexts should follow these rules to keep interfaces\n// consistent across packages and enable static analysis tools to check context\n// propagation:\n//\n// Do not store Contexts inside a struct type; instead, pass a Context\n// explicitly to each function that needs it. The Context should be the first\n// parameter, typically named ctx:\n//\n// \tfunc DoSomething(ctx context.Context, arg Arg) error {\n// \t\t// ... use ctx ...\n// \t}\n//\n// Do not pass a nil Context, even if a function permits it. Pass context.TODO\n// if you are unsure about which Context to use.\n//\n// Use context Values only for request-scoped data that transits processes and\n// APIs, not for passing optional parameters to functions.\n//\n// The same Context may be passed to functions running in different goroutines;\n// Contexts are safe for simultaneous use by multiple goroutines.\n//\n// See http://blog.golang.org/context for example code for a server that uses\n// Contexts.\npackage context // import \"golang.org/x/net/context\"\n\n// Background returns a non-nil, empty Context. It is never canceled, has no\n// values, and has no deadline. It is typically used by the main function,\n// initialization, and tests, and as the top-level Context for incoming\n// requests.\nfunc Background() Context {\n\treturn background\n}\n\n// TODO returns a non-nil, empty Context. Code should use context.TODO when\n// it's unclear which Context to use or it is not yet available (because the\n// surrounding function has not yet been extended to accept a Context\n// parameter).  TODO is recognized by static analysis tools that determine\n// whether Contexts are propagated correctly in a program.\nfunc TODO() Context {\n\treturn todo\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/context/go17.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build go1.7\n\npackage context\n\nimport (\n\t\"context\" // standard library's context, as of Go 1.7\n\t\"time\"\n)\n\nvar (\n\ttodo       = context.TODO()\n\tbackground = context.Background()\n)\n\n// Canceled is the error returned by Context.Err when the context is canceled.\nvar Canceled = context.Canceled\n\n// DeadlineExceeded is the error returned by Context.Err when the context's\n// deadline passes.\nvar DeadlineExceeded = context.DeadlineExceeded\n\n// WithCancel returns a copy of parent with a new Done channel. The returned\n// context's Done channel is closed when the returned cancel function is called\n// or when the parent context's Done channel is closed, whichever happens first.\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this Context complete.\nfunc WithCancel(parent Context) (ctx Context, cancel CancelFunc) {\n\tctx, f := context.WithCancel(parent)\n\treturn ctx, CancelFunc(f)\n}\n\n// WithDeadline returns a copy of the parent context with the deadline adjusted\n// to be no later than d. If the parent's deadline is already earlier than d,\n// WithDeadline(parent, d) is semantically equivalent to parent. The returned\n// context's Done channel is closed when the deadline expires, when the returned\n// cancel function is called, or when the parent context's Done channel is\n// closed, whichever happens first.\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this Context complete.\nfunc WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {\n\tctx, f := context.WithDeadline(parent, deadline)\n\treturn ctx, CancelFunc(f)\n}\n\n// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this Context complete:\n//\n// \tfunc slowOperationWithTimeout(ctx context.Context) (Result, error) {\n// \t\tctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)\n// \t\tdefer cancel()  // releases resources if slowOperation completes before timeout elapses\n// \t\treturn slowOperation(ctx)\n// \t}\nfunc WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {\n\treturn WithDeadline(parent, time.Now().Add(timeout))\n}\n\n// WithValue returns a copy of parent in which the value associated with key is\n// val.\n//\n// Use context Values only for request-scoped data that transits processes and\n// APIs, not for passing optional parameters to functions.\nfunc WithValue(parent Context, key interface{}, val interface{}) Context {\n\treturn context.WithValue(parent, key, val)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/context/go19.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build go1.9\n\npackage context\n\nimport \"context\" // standard library's context, as of Go 1.7\n\n// A Context carries a deadline, a cancelation signal, and other values across\n// API boundaries.\n//\n// Context's methods may be called by multiple goroutines simultaneously.\ntype Context = context.Context\n\n// A CancelFunc tells an operation to abandon its work.\n// A CancelFunc does not wait for the work to stop.\n// After the first call, subsequent calls to a CancelFunc do nothing.\ntype CancelFunc = context.CancelFunc\n"
  },
  {
    "path": "vendor/golang.org/x/net/context/pre_go17.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !go1.7\n\npackage context\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n)\n\n// An emptyCtx is never canceled, has no values, and has no deadline. It is not\n// struct{}, since vars of this type must have distinct addresses.\ntype emptyCtx int\n\nfunc (*emptyCtx) Deadline() (deadline time.Time, ok bool) {\n\treturn\n}\n\nfunc (*emptyCtx) Done() <-chan struct{} {\n\treturn nil\n}\n\nfunc (*emptyCtx) Err() error {\n\treturn nil\n}\n\nfunc (*emptyCtx) Value(key interface{}) interface{} {\n\treturn nil\n}\n\nfunc (e *emptyCtx) String() string {\n\tswitch e {\n\tcase background:\n\t\treturn \"context.Background\"\n\tcase todo:\n\t\treturn \"context.TODO\"\n\t}\n\treturn \"unknown empty Context\"\n}\n\nvar (\n\tbackground = new(emptyCtx)\n\ttodo       = new(emptyCtx)\n)\n\n// Canceled is the error returned by Context.Err when the context is canceled.\nvar Canceled = errors.New(\"context canceled\")\n\n// DeadlineExceeded is the error returned by Context.Err when the context's\n// deadline passes.\nvar DeadlineExceeded = errors.New(\"context deadline exceeded\")\n\n// WithCancel returns a copy of parent with a new Done channel. The returned\n// context's Done channel is closed when the returned cancel function is called\n// or when the parent context's Done channel is closed, whichever happens first.\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this Context complete.\nfunc WithCancel(parent Context) (ctx Context, cancel CancelFunc) {\n\tc := newCancelCtx(parent)\n\tpropagateCancel(parent, c)\n\treturn c, func() { c.cancel(true, Canceled) }\n}\n\n// newCancelCtx returns an initialized cancelCtx.\nfunc newCancelCtx(parent Context) *cancelCtx {\n\treturn &cancelCtx{\n\t\tContext: parent,\n\t\tdone:    make(chan struct{}),\n\t}\n}\n\n// propagateCancel arranges for child to be canceled when parent is.\nfunc propagateCancel(parent Context, child canceler) {\n\tif parent.Done() == nil {\n\t\treturn // parent is never canceled\n\t}\n\tif p, ok := parentCancelCtx(parent); ok {\n\t\tp.mu.Lock()\n\t\tif p.err != nil {\n\t\t\t// parent has already been canceled\n\t\t\tchild.cancel(false, p.err)\n\t\t} else {\n\t\t\tif p.children == nil {\n\t\t\t\tp.children = make(map[canceler]bool)\n\t\t\t}\n\t\t\tp.children[child] = true\n\t\t}\n\t\tp.mu.Unlock()\n\t} else {\n\t\tgo func() {\n\t\t\tselect {\n\t\t\tcase <-parent.Done():\n\t\t\t\tchild.cancel(false, parent.Err())\n\t\t\tcase <-child.Done():\n\t\t\t}\n\t\t}()\n\t}\n}\n\n// parentCancelCtx follows a chain of parent references until it finds a\n// *cancelCtx. This function understands how each of the concrete types in this\n// package represents its parent.\nfunc parentCancelCtx(parent Context) (*cancelCtx, bool) {\n\tfor {\n\t\tswitch c := parent.(type) {\n\t\tcase *cancelCtx:\n\t\t\treturn c, true\n\t\tcase *timerCtx:\n\t\t\treturn c.cancelCtx, true\n\t\tcase *valueCtx:\n\t\t\tparent = c.Context\n\t\tdefault:\n\t\t\treturn nil, false\n\t\t}\n\t}\n}\n\n// removeChild removes a context from its parent.\nfunc removeChild(parent Context, child canceler) {\n\tp, ok := parentCancelCtx(parent)\n\tif !ok {\n\t\treturn\n\t}\n\tp.mu.Lock()\n\tif p.children != nil {\n\t\tdelete(p.children, child)\n\t}\n\tp.mu.Unlock()\n}\n\n// A canceler is a context type that can be canceled directly. The\n// implementations are *cancelCtx and *timerCtx.\ntype canceler interface {\n\tcancel(removeFromParent bool, err error)\n\tDone() <-chan struct{}\n}\n\n// A cancelCtx can be canceled. When canceled, it also cancels any children\n// that implement canceler.\ntype cancelCtx struct {\n\tContext\n\n\tdone chan struct{} // closed by the first cancel call.\n\n\tmu       sync.Mutex\n\tchildren map[canceler]bool // set to nil by the first cancel call\n\terr      error             // set to non-nil by the first cancel call\n}\n\nfunc (c *cancelCtx) Done() <-chan struct{} {\n\treturn c.done\n}\n\nfunc (c *cancelCtx) Err() error {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\treturn c.err\n}\n\nfunc (c *cancelCtx) String() string {\n\treturn fmt.Sprintf(\"%v.WithCancel\", c.Context)\n}\n\n// cancel closes c.done, cancels each of c's children, and, if\n// removeFromParent is true, removes c from its parent's children.\nfunc (c *cancelCtx) cancel(removeFromParent bool, err error) {\n\tif err == nil {\n\t\tpanic(\"context: internal error: missing cancel error\")\n\t}\n\tc.mu.Lock()\n\tif c.err != nil {\n\t\tc.mu.Unlock()\n\t\treturn // already canceled\n\t}\n\tc.err = err\n\tclose(c.done)\n\tfor child := range c.children {\n\t\t// NOTE: acquiring the child's lock while holding parent's lock.\n\t\tchild.cancel(false, err)\n\t}\n\tc.children = nil\n\tc.mu.Unlock()\n\n\tif removeFromParent {\n\t\tremoveChild(c.Context, c)\n\t}\n}\n\n// WithDeadline returns a copy of the parent context with the deadline adjusted\n// to be no later than d. If the parent's deadline is already earlier than d,\n// WithDeadline(parent, d) is semantically equivalent to parent. The returned\n// context's Done channel is closed when the deadline expires, when the returned\n// cancel function is called, or when the parent context's Done channel is\n// closed, whichever happens first.\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this Context complete.\nfunc WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {\n\tif cur, ok := parent.Deadline(); ok && cur.Before(deadline) {\n\t\t// The current deadline is already sooner than the new one.\n\t\treturn WithCancel(parent)\n\t}\n\tc := &timerCtx{\n\t\tcancelCtx: newCancelCtx(parent),\n\t\tdeadline:  deadline,\n\t}\n\tpropagateCancel(parent, c)\n\td := deadline.Sub(time.Now())\n\tif d <= 0 {\n\t\tc.cancel(true, DeadlineExceeded) // deadline has already passed\n\t\treturn c, func() { c.cancel(true, Canceled) }\n\t}\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tif c.err == nil {\n\t\tc.timer = time.AfterFunc(d, func() {\n\t\t\tc.cancel(true, DeadlineExceeded)\n\t\t})\n\t}\n\treturn c, func() { c.cancel(true, Canceled) }\n}\n\n// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to\n// implement Done and Err. It implements cancel by stopping its timer then\n// delegating to cancelCtx.cancel.\ntype timerCtx struct {\n\t*cancelCtx\n\ttimer *time.Timer // Under cancelCtx.mu.\n\n\tdeadline time.Time\n}\n\nfunc (c *timerCtx) Deadline() (deadline time.Time, ok bool) {\n\treturn c.deadline, true\n}\n\nfunc (c *timerCtx) String() string {\n\treturn fmt.Sprintf(\"%v.WithDeadline(%s [%s])\", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now()))\n}\n\nfunc (c *timerCtx) cancel(removeFromParent bool, err error) {\n\tc.cancelCtx.cancel(false, err)\n\tif removeFromParent {\n\t\t// Remove this timerCtx from its parent cancelCtx's children.\n\t\tremoveChild(c.cancelCtx.Context, c)\n\t}\n\tc.mu.Lock()\n\tif c.timer != nil {\n\t\tc.timer.Stop()\n\t\tc.timer = nil\n\t}\n\tc.mu.Unlock()\n}\n\n// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).\n//\n// Canceling this context releases resources associated with it, so code should\n// call cancel as soon as the operations running in this Context complete:\n//\n// \tfunc slowOperationWithTimeout(ctx context.Context) (Result, error) {\n// \t\tctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)\n// \t\tdefer cancel()  // releases resources if slowOperation completes before timeout elapses\n// \t\treturn slowOperation(ctx)\n// \t}\nfunc WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {\n\treturn WithDeadline(parent, time.Now().Add(timeout))\n}\n\n// WithValue returns a copy of parent in which the value associated with key is\n// val.\n//\n// Use context Values only for request-scoped data that transits processes and\n// APIs, not for passing optional parameters to functions.\nfunc WithValue(parent Context, key interface{}, val interface{}) Context {\n\treturn &valueCtx{parent, key, val}\n}\n\n// A valueCtx carries a key-value pair. It implements Value for that key and\n// delegates all other calls to the embedded Context.\ntype valueCtx struct {\n\tContext\n\tkey, val interface{}\n}\n\nfunc (c *valueCtx) String() string {\n\treturn fmt.Sprintf(\"%v.WithValue(%#v, %#v)\", c.Context, c.key, c.val)\n}\n\nfunc (c *valueCtx) Value(key interface{}) interface{} {\n\tif c.key == key {\n\t\treturn c.val\n\t}\n\treturn c.Context.Value(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/context/pre_go19.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !go1.9\n\npackage context\n\nimport \"time\"\n\n// A Context carries a deadline, a cancelation signal, and other values across\n// API boundaries.\n//\n// Context's methods may be called by multiple goroutines simultaneously.\ntype Context interface {\n\t// Deadline returns the time when work done on behalf of this context\n\t// should be canceled. Deadline returns ok==false when no deadline is\n\t// set. Successive calls to Deadline return the same results.\n\tDeadline() (deadline time.Time, ok bool)\n\n\t// Done returns a channel that's closed when work done on behalf of this\n\t// context should be canceled. Done may return nil if this context can\n\t// never be canceled. Successive calls to Done return the same value.\n\t//\n\t// WithCancel arranges for Done to be closed when cancel is called;\n\t// WithDeadline arranges for Done to be closed when the deadline\n\t// expires; WithTimeout arranges for Done to be closed when the timeout\n\t// elapses.\n\t//\n\t// Done is provided for use in select statements:\n\t//\n\t//  // Stream generates values with DoSomething and sends them to out\n\t//  // until DoSomething returns an error or ctx.Done is closed.\n\t//  func Stream(ctx context.Context, out chan<- Value) error {\n\t//  \tfor {\n\t//  \t\tv, err := DoSomething(ctx)\n\t//  \t\tif err != nil {\n\t//  \t\t\treturn err\n\t//  \t\t}\n\t//  \t\tselect {\n\t//  \t\tcase <-ctx.Done():\n\t//  \t\t\treturn ctx.Err()\n\t//  \t\tcase out <- v:\n\t//  \t\t}\n\t//  \t}\n\t//  }\n\t//\n\t// See http://blog.golang.org/pipelines for more examples of how to use\n\t// a Done channel for cancelation.\n\tDone() <-chan struct{}\n\n\t// Err returns a non-nil error value after Done is closed. Err returns\n\t// Canceled if the context was canceled or DeadlineExceeded if the\n\t// context's deadline passed. No other values for Err are defined.\n\t// After Done is closed, successive calls to Err return the same value.\n\tErr() error\n\n\t// Value returns the value associated with this context for key, or nil\n\t// if no value is associated with key. Successive calls to Value with\n\t// the same key returns the same result.\n\t//\n\t// Use context values only for request-scoped data that transits\n\t// processes and API boundaries, not for passing optional parameters to\n\t// functions.\n\t//\n\t// A key identifies a specific value in a Context. Functions that wish\n\t// to store values in Context typically allocate a key in a global\n\t// variable then use that key as the argument to context.WithValue and\n\t// Context.Value. A key can be any type that supports equality;\n\t// packages should define keys as an unexported type to avoid\n\t// collisions.\n\t//\n\t// Packages that define a Context key should provide type-safe accessors\n\t// for the values stores using that key:\n\t//\n\t// \t// Package user defines a User type that's stored in Contexts.\n\t// \tpackage user\n\t//\n\t// \timport \"golang.org/x/net/context\"\n\t//\n\t// \t// User is the type of value stored in the Contexts.\n\t// \ttype User struct {...}\n\t//\n\t// \t// key is an unexported type for keys defined in this package.\n\t// \t// This prevents collisions with keys defined in other packages.\n\t// \ttype key int\n\t//\n\t// \t// userKey is the key for user.User values in Contexts. It is\n\t// \t// unexported; clients use user.NewContext and user.FromContext\n\t// \t// instead of using this key directly.\n\t// \tvar userKey key = 0\n\t//\n\t// \t// NewContext returns a new Context that carries value u.\n\t// \tfunc NewContext(ctx context.Context, u *User) context.Context {\n\t// \t\treturn context.WithValue(ctx, userKey, u)\n\t// \t}\n\t//\n\t// \t// FromContext returns the User value stored in ctx, if any.\n\t// \tfunc FromContext(ctx context.Context) (*User, bool) {\n\t// \t\tu, ok := ctx.Value(userKey).(*User)\n\t// \t\treturn u, ok\n\t// \t}\n\tValue(key interface{}) interface{}\n}\n\n// A CancelFunc tells an operation to abandon its work.\n// A CancelFunc does not wait for the work to stop.\n// After the first call, subsequent calls to a CancelFunc do nothing.\ntype CancelFunc func()\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/idna10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build go1.10\n\n// Package idna implements IDNA2008 using the compatibility processing\n// defined by UTS (Unicode Technical Standard) #46, which defines a standard to\n// deal with the transition from IDNA2003.\n//\n// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC\n// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.\n// UTS #46 is defined in https://www.unicode.org/reports/tr46.\n// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the\n// differences between these two standards.\npackage idna // import \"golang.org/x/net/idna\"\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/secure/bidirule\"\n\t\"golang.org/x/text/unicode/bidi\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// NOTE: Unlike common practice in Go APIs, the functions will return a\n// sanitized domain name in case of errors. Browsers sometimes use a partially\n// evaluated string as lookup.\n// TODO: the current error handling is, in my opinion, the least opinionated.\n// Other strategies are also viable, though:\n// Option 1) Return an empty string in case of error, but allow the user to\n//    specify explicitly which errors to ignore.\n// Option 2) Return the partially evaluated string if it is itself a valid\n//    string, otherwise return the empty string in case of error.\n// Option 3) Option 1 and 2.\n// Option 4) Always return an empty string for now and implement Option 1 as\n//    needed, and document that the return string may not be empty in case of\n//    error in the future.\n// I think Option 1 is best, but it is quite opinionated.\n\n// ToASCII is a wrapper for Punycode.ToASCII.\nfunc ToASCII(s string) (string, error) {\n\treturn Punycode.process(s, true)\n}\n\n// ToUnicode is a wrapper for Punycode.ToUnicode.\nfunc ToUnicode(s string) (string, error) {\n\treturn Punycode.process(s, false)\n}\n\n// An Option configures a Profile at creation time.\ntype Option func(*options)\n\n// Transitional sets a Profile to use the Transitional mapping as defined in UTS\n// #46. This will cause, for example, \"ß\" to be mapped to \"ss\". Using the\n// transitional mapping provides a compromise between IDNA2003 and IDNA2008\n// compatibility. It is used by most browsers when resolving domain names. This\n// option is only meaningful if combined with MapForLookup.\nfunc Transitional(transitional bool) Option {\n\treturn func(o *options) { o.transitional = true }\n}\n\n// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts\n// are longer than allowed by the RFC.\nfunc VerifyDNSLength(verify bool) Option {\n\treturn func(o *options) { o.verifyDNSLength = verify }\n}\n\n// RemoveLeadingDots removes leading label separators. Leading runes that map to\n// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.\n//\n// This is the behavior suggested by the UTS #46 and is adopted by some\n// browsers.\nfunc RemoveLeadingDots(remove bool) Option {\n\treturn func(o *options) { o.removeLeadingDots = remove }\n}\n\n// ValidateLabels sets whether to check the mandatory label validation criteria\n// as defined in Section 5.4 of RFC 5891. This includes testing for correct use\n// of hyphens ('-'), normalization, validity of runes, and the context rules.\nfunc ValidateLabels(enable bool) Option {\n\treturn func(o *options) {\n\t\t// Don't override existing mappings, but set one that at least checks\n\t\t// normalization if it is not set.\n\t\tif o.mapping == nil && enable {\n\t\t\to.mapping = normalize\n\t\t}\n\t\to.trie = trie\n\t\to.validateLabels = enable\n\t\to.fromPuny = validateFromPunycode\n\t}\n}\n\n// StrictDomainName limits the set of permissible ASCII characters to those\n// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the\n// hyphen). This is set by default for MapForLookup and ValidateForRegistration.\n//\n// This option is useful, for instance, for browsers that allow characters\n// outside this range, for example a '_' (U+005F LOW LINE). See\n// http://www.rfc-editor.org/std/std3.txt for more details This option\n// corresponds to the UseSTD3ASCIIRules option in UTS #46.\nfunc StrictDomainName(use bool) Option {\n\treturn func(o *options) {\n\t\to.trie = trie\n\t\to.useSTD3Rules = use\n\t\to.fromPuny = validateFromPunycode\n\t}\n}\n\n// NOTE: the following options pull in tables. The tables should not be linked\n// in as long as the options are not used.\n\n// BidiRule enables the Bidi rule as defined in RFC 5893. Any application\n// that relies on proper validation of labels should include this rule.\nfunc BidiRule() Option {\n\treturn func(o *options) { o.bidirule = bidirule.ValidString }\n}\n\n// ValidateForRegistration sets validation options to verify that a given IDN is\n// properly formatted for registration as defined by Section 4 of RFC 5891.\nfunc ValidateForRegistration() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateRegistration\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tVerifyDNSLength(true)(o)\n\t\tBidiRule()(o)\n\t}\n}\n\n// MapForLookup sets validation and mapping options such that a given IDN is\n// transformed for domain name lookup according to the requirements set out in\n// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,\n// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option\n// to add this check.\n//\n// The mappings include normalization and mapping case, width and other\n// compatibility mappings.\nfunc MapForLookup() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateAndMap\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t}\n}\n\ntype options struct {\n\ttransitional      bool\n\tuseSTD3Rules      bool\n\tvalidateLabels    bool\n\tverifyDNSLength   bool\n\tremoveLeadingDots bool\n\n\ttrie *idnaTrie\n\n\t// fromPuny calls validation rules when converting A-labels to U-labels.\n\tfromPuny func(p *Profile, s string) error\n\n\t// mapping implements a validation and mapping step as defined in RFC 5895\n\t// or UTS 46, tailored to, for example, domain registration or lookup.\n\tmapping func(p *Profile, s string) (mapped string, isBidi bool, err error)\n\n\t// bidirule, if specified, checks whether s conforms to the Bidi Rule\n\t// defined in RFC 5893.\n\tbidirule func(s string) bool\n}\n\n// A Profile defines the configuration of an IDNA mapper.\ntype Profile struct {\n\toptions\n}\n\nfunc apply(o *options, opts []Option) {\n\tfor _, f := range opts {\n\t\tf(o)\n\t}\n}\n\n// New creates a new Profile.\n//\n// With no options, the returned Profile is the most permissive and equals the\n// Punycode Profile. Options can be passed to further restrict the Profile. The\n// MapForLookup and ValidateForRegistration options set a collection of options,\n// for lookup and registration purposes respectively, which can be tailored by\n// adding more fine-grained options, where later options override earlier\n// options.\nfunc New(o ...Option) *Profile {\n\tp := &Profile{}\n\tapply(&p.options, o)\n\treturn p\n}\n\n// ToASCII converts a domain or domain label to its ASCII form. For example,\n// ToASCII(\"bücher.example.com\") is \"xn--bcher-kva.example.com\", and\n// ToASCII(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToASCII(s string) (string, error) {\n\treturn p.process(s, true)\n}\n\n// ToUnicode converts a domain or domain label to its Unicode form. For example,\n// ToUnicode(\"xn--bcher-kva.example.com\") is \"bücher.example.com\", and\n// ToUnicode(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToUnicode(s string) (string, error) {\n\tpp := *p\n\tpp.transitional = false\n\treturn pp.process(s, false)\n}\n\n// String reports a string with a description of the profile for debugging\n// purposes. The string format may change with different versions.\nfunc (p *Profile) String() string {\n\ts := \"\"\n\tif p.transitional {\n\t\ts = \"Transitional\"\n\t} else {\n\t\ts = \"NonTransitional\"\n\t}\n\tif p.useSTD3Rules {\n\t\ts += \":UseSTD3Rules\"\n\t}\n\tif p.validateLabels {\n\t\ts += \":ValidateLabels\"\n\t}\n\tif p.verifyDNSLength {\n\t\ts += \":VerifyDNSLength\"\n\t}\n\treturn s\n}\n\nvar (\n\t// Punycode is a Profile that does raw punycode processing with a minimum\n\t// of validation.\n\tPunycode *Profile = punycode\n\n\t// Lookup is the recommended profile for looking up domain names, according\n\t// to Section 5 of RFC 5891. The exact configuration of this profile may\n\t// change over time.\n\tLookup *Profile = lookup\n\n\t// Display is the recommended profile for displaying domain names.\n\t// The configuration of this profile may change over time.\n\tDisplay *Profile = display\n\n\t// Registration is the recommended profile for checking whether a given\n\t// IDN is valid for registration, according to Section 4 of RFC 5891.\n\tRegistration *Profile = registration\n\n\tpunycode = &Profile{}\n\tlookup   = &Profile{options{\n\t\ttransitional:   true,\n\t\tuseSTD3Rules:   true,\n\t\tvalidateLabels: true,\n\t\ttrie:           trie,\n\t\tfromPuny:       validateFromPunycode,\n\t\tmapping:        validateAndMap,\n\t\tbidirule:       bidirule.ValidString,\n\t}}\n\tdisplay = &Profile{options{\n\t\tuseSTD3Rules:   true,\n\t\tvalidateLabels: true,\n\t\ttrie:           trie,\n\t\tfromPuny:       validateFromPunycode,\n\t\tmapping:        validateAndMap,\n\t\tbidirule:       bidirule.ValidString,\n\t}}\n\tregistration = &Profile{options{\n\t\tuseSTD3Rules:    true,\n\t\tvalidateLabels:  true,\n\t\tverifyDNSLength: true,\n\t\ttrie:            trie,\n\t\tfromPuny:        validateFromPunycode,\n\t\tmapping:         validateRegistration,\n\t\tbidirule:        bidirule.ValidString,\n\t}}\n\n\t// TODO: profiles\n\t// Register: recommended for approving domain names: don't do any mappings\n\t// but rather reject on invalid input. Bundle or block deviation characters.\n)\n\ntype labelError struct{ label, code_ string }\n\nfunc (e labelError) code() string { return e.code_ }\nfunc (e labelError) Error() string {\n\treturn fmt.Sprintf(\"idna: invalid label %q\", e.label)\n}\n\ntype runeError rune\n\nfunc (e runeError) code() string { return \"P1\" }\nfunc (e runeError) Error() string {\n\treturn fmt.Sprintf(\"idna: disallowed rune %U\", e)\n}\n\n// process implements the algorithm described in section 4 of UTS #46,\n// see https://www.unicode.org/reports/tr46.\nfunc (p *Profile) process(s string, toASCII bool) (string, error) {\n\tvar err error\n\tvar isBidi bool\n\tif p.mapping != nil {\n\t\ts, isBidi, err = p.mapping(p, s)\n\t}\n\t// Remove leading empty labels.\n\tif p.removeLeadingDots {\n\t\tfor ; len(s) > 0 && s[0] == '.'; s = s[1:] {\n\t\t}\n\t}\n\t// TODO: allow for a quick check of the tables data.\n\t// It seems like we should only create this error on ToASCII, but the\n\t// UTS 46 conformance tests suggests we should always check this.\n\tif err == nil && p.verifyDNSLength && s == \"\" {\n\t\terr = &labelError{s, \"A4\"}\n\t}\n\tlabels := labelIter{orig: s}\n\tfor ; !labels.done(); labels.next() {\n\t\tlabel := labels.label()\n\t\tif label == \"\" {\n\t\t\t// Empty labels are not okay. The label iterator skips the last\n\t\t\t// label if it is empty.\n\t\t\tif err == nil && p.verifyDNSLength {\n\t\t\t\terr = &labelError{s, \"A4\"}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(label, acePrefix) {\n\t\t\tu, err2 := decode(label[len(acePrefix):])\n\t\t\tif err2 != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\t// Spec says keep the old label.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tisBidi = isBidi || bidirule.DirectionString(u) != bidi.LeftToRight\n\t\t\tlabels.set(u)\n\t\t\tif err == nil && p.validateLabels {\n\t\t\t\terr = p.fromPuny(p, u)\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// This should be called on NonTransitional, according to the\n\t\t\t\t// spec, but that currently does not have any effect. Use the\n\t\t\t\t// original profile to preserve options.\n\t\t\t\terr = p.validateLabel(u)\n\t\t\t}\n\t\t} else if err == nil {\n\t\t\terr = p.validateLabel(label)\n\t\t}\n\t}\n\tif isBidi && p.bidirule != nil && err == nil {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tif !p.bidirule(labels.label()) {\n\t\t\t\terr = &labelError{s, \"B\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif toASCII {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tlabel := labels.label()\n\t\t\tif !ascii(label) {\n\t\t\t\ta, err2 := encode(acePrefix, label)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\tlabel = a\n\t\t\t\tlabels.set(a)\n\t\t\t}\n\t\t\tn := len(label)\n\t\t\tif p.verifyDNSLength && err == nil && (n == 0 || n > 63) {\n\t\t\t\terr = &labelError{label, \"A4\"}\n\t\t\t}\n\t\t}\n\t}\n\ts = labels.result()\n\tif toASCII && p.verifyDNSLength && err == nil {\n\t\t// Compute the length of the domain name minus the root label and its dot.\n\t\tn := len(s)\n\t\tif n > 0 && s[n-1] == '.' {\n\t\t\tn--\n\t\t}\n\t\tif len(s) < 1 || n > 253 {\n\t\t\terr = &labelError{s, \"A4\"}\n\t\t}\n\t}\n\treturn s, err\n}\n\nfunc normalize(p *Profile, s string) (mapped string, isBidi bool, err error) {\n\t// TODO: consider first doing a quick check to see if any of these checks\n\t// need to be done. This will make it slower in the general case, but\n\t// faster in the common case.\n\tmapped = norm.NFC.String(s)\n\tisBidi = bidirule.DirectionString(mapped) == bidi.RightToLeft\n\treturn mapped, isBidi, nil\n}\n\nfunc validateRegistration(p *Profile, s string) (idem string, bidi bool, err error) {\n\t// TODO: filter need for normalization in loop below.\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn s, false, &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\treturn s, bidi, runeError(utf8.RuneError)\n\t\t}\n\t\tbidi = bidi || info(v).isBidi(s[i:])\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\t// TODO: handle the NV8 defined in the Unicode idna data set to allow\n\t\t// for strict conformance to IDNA2008.\n\t\tcase valid, deviation:\n\t\tcase disallowed, mapped, unknown, ignored:\n\t\t\tr, _ := utf8.DecodeRuneInString(s[i:])\n\t\t\treturn s, bidi, runeError(r)\n\t\t}\n\t\ti += sz\n\t}\n\treturn s, bidi, nil\n}\n\nfunc (c info) isBidi(s string) bool {\n\tif !c.isMapped() {\n\t\treturn c&attributesMask == rtl\n\t}\n\t// TODO: also store bidi info for mapped data. This is possible, but a bit\n\t// cumbersome and not for the common case.\n\tp, _ := bidi.LookupString(s)\n\tswitch p.Class() {\n\tcase bidi.R, bidi.AL, bidi.AN:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc validateAndMap(p *Profile, s string) (vm string, bidi bool, err error) {\n\tvar (\n\t\tb []byte\n\t\tk int\n\t)\n\t// combinedInfoBits contains the or-ed bits of all runes. We use this\n\t// to derive the mayNeedNorm bit later. This may trigger normalization\n\t// overeagerly, but it will not do so in the common case. The end result\n\t// is another 10% saving on BenchmarkProfile for the common case.\n\tvar combinedInfoBits info\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\tb = append(b, s[k:i]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t\tk = len(s)\n\t\t\tif err == nil {\n\t\t\t\terr = runeError(utf8.RuneError)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcombinedInfoBits |= info(v)\n\t\tbidi = bidi || info(v).isBidi(s[i:])\n\t\tstart := i\n\t\ti += sz\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\tcase valid:\n\t\t\tcontinue\n\t\tcase disallowed:\n\t\t\tif err == nil {\n\t\t\t\tr, _ := utf8.DecodeRuneInString(s[start:])\n\t\t\t\terr = runeError(r)\n\t\t\t}\n\t\t\tcontinue\n\t\tcase mapped, deviation:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = info(v).appendMapping(b, s[start:i])\n\t\tcase ignored:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\t// drop the rune\n\t\tcase unknown:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t}\n\t\tk = i\n\t}\n\tif k == 0 {\n\t\t// No changes so far.\n\t\tif combinedInfoBits&mayNeedNorm != 0 {\n\t\t\ts = norm.NFC.String(s)\n\t\t}\n\t} else {\n\t\tb = append(b, s[k:]...)\n\t\tif norm.NFC.QuickSpan(b) != len(b) {\n\t\t\tb = norm.NFC.Bytes(b)\n\t\t}\n\t\t// TODO: the punycode converters require strings as input.\n\t\ts = string(b)\n\t}\n\treturn s, bidi, err\n}\n\n// A labelIter allows iterating over domain name labels.\ntype labelIter struct {\n\torig     string\n\tslice    []string\n\tcurStart int\n\tcurEnd   int\n\ti        int\n}\n\nfunc (l *labelIter) reset() {\n\tl.curStart = 0\n\tl.curEnd = 0\n\tl.i = 0\n}\n\nfunc (l *labelIter) done() bool {\n\treturn l.curStart >= len(l.orig)\n}\n\nfunc (l *labelIter) result() string {\n\tif l.slice != nil {\n\t\treturn strings.Join(l.slice, \".\")\n\t}\n\treturn l.orig\n}\n\nfunc (l *labelIter) label() string {\n\tif l.slice != nil {\n\t\treturn l.slice[l.i]\n\t}\n\tp := strings.IndexByte(l.orig[l.curStart:], '.')\n\tl.curEnd = l.curStart + p\n\tif p == -1 {\n\t\tl.curEnd = len(l.orig)\n\t}\n\treturn l.orig[l.curStart:l.curEnd]\n}\n\n// next sets the value to the next label. It skips the last label if it is empty.\nfunc (l *labelIter) next() {\n\tl.i++\n\tif l.slice != nil {\n\t\tif l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == \"\" {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t} else {\n\t\tl.curStart = l.curEnd + 1\n\t\tif l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t}\n}\n\nfunc (l *labelIter) set(s string) {\n\tif l.slice == nil {\n\t\tl.slice = strings.Split(l.orig, \".\")\n\t}\n\tl.slice[l.i] = s\n}\n\n// acePrefix is the ASCII Compatible Encoding prefix.\nconst acePrefix = \"xn--\"\n\nfunc (p *Profile) simplify(cat category) category {\n\tswitch cat {\n\tcase disallowedSTD3Mapped:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = mapped\n\t\t}\n\tcase disallowedSTD3Valid:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = valid\n\t\t}\n\tcase deviation:\n\t\tif !p.transitional {\n\t\t\tcat = valid\n\t\t}\n\tcase validNV8, validXV8:\n\t\t// TODO: handle V2008\n\t\tcat = valid\n\t}\n\treturn cat\n}\n\nfunc validateFromPunycode(p *Profile, s string) error {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn &labelError{s, \"V1\"}\n\t}\n\t// TODO: detect whether string may have to be normalized in the following\n\t// loop.\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\treturn runeError(utf8.RuneError)\n\t\t}\n\t\tif c := p.simplify(info(v).category()); c != valid && c != deviation {\n\t\t\treturn &labelError{s, \"V6\"}\n\t\t}\n\t\ti += sz\n\t}\n\treturn nil\n}\n\nconst (\n\tzwnj = \"\\u200c\"\n\tzwj  = \"\\u200d\"\n)\n\ntype joinState int8\n\nconst (\n\tstateStart joinState = iota\n\tstateVirama\n\tstateBefore\n\tstateBeforeVirama\n\tstateAfter\n\tstateFAIL\n)\n\nvar joinStates = [][numJoinTypes]joinState{\n\tstateStart: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateVirama,\n\t},\n\tstateVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t},\n\tstateBefore: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateBefore,\n\t\tjoinZWNJ:   stateAfter,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateBeforeVirama,\n\t},\n\tstateBeforeVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t\tjoiningT: stateBefore,\n\t},\n\tstateAfter: {\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateAfter,\n\t\tjoiningR:   stateStart,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateAfter, // no-op as we can't accept joiners here\n\t},\n\tstateFAIL: {\n\t\t0:          stateFAIL,\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateFAIL,\n\t\tjoiningT:   stateFAIL,\n\t\tjoiningR:   stateFAIL,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateFAIL,\n\t},\n}\n\n// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are\n// already implicitly satisfied by the overall implementation.\nfunc (p *Profile) validateLabel(s string) (err error) {\n\tif s == \"\" {\n\t\tif p.verifyDNSLength {\n\t\t\treturn &labelError{s, \"A4\"}\n\t\t}\n\t\treturn nil\n\t}\n\tif !p.validateLabels {\n\t\treturn nil\n\t}\n\ttrie := p.trie // p.validateLabels is only set if trie is set.\n\tif len(s) > 4 && s[2] == '-' && s[3] == '-' {\n\t\treturn &labelError{s, \"V2\"}\n\t}\n\tif s[0] == '-' || s[len(s)-1] == '-' {\n\t\treturn &labelError{s, \"V3\"}\n\t}\n\t// TODO: merge the use of this in the trie.\n\tv, sz := trie.lookupString(s)\n\tx := info(v)\n\tif x.isModifier() {\n\t\treturn &labelError{s, \"V5\"}\n\t}\n\t// Quickly return in the absence of zero-width (non) joiners.\n\tif strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {\n\t\treturn nil\n\t}\n\tst := stateStart\n\tfor i := 0; ; {\n\t\tjt := x.joinType()\n\t\tif s[i:i+sz] == zwj {\n\t\t\tjt = joinZWJ\n\t\t} else if s[i:i+sz] == zwnj {\n\t\t\tjt = joinZWNJ\n\t\t}\n\t\tst = joinStates[st][jt]\n\t\tif x.isViramaModifier() {\n\t\t\tst = joinStates[st][joinVirama]\n\t\t}\n\t\tif i += sz; i == len(s) {\n\t\t\tbreak\n\t\t}\n\t\tv, sz = trie.lookupString(s[i:])\n\t\tx = info(v)\n\t}\n\tif st == stateFAIL || st == stateAfter {\n\t\treturn &labelError{s, \"C\"}\n\t}\n\treturn nil\n}\n\nfunc ascii(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/idna9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !go1.10\n\n// Package idna implements IDNA2008 using the compatibility processing\n// defined by UTS (Unicode Technical Standard) #46, which defines a standard to\n// deal with the transition from IDNA2003.\n//\n// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC\n// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.\n// UTS #46 is defined in https://www.unicode.org/reports/tr46.\n// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the\n// differences between these two standards.\npackage idna // import \"golang.org/x/net/idna\"\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/secure/bidirule\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// NOTE: Unlike common practice in Go APIs, the functions will return a\n// sanitized domain name in case of errors. Browsers sometimes use a partially\n// evaluated string as lookup.\n// TODO: the current error handling is, in my opinion, the least opinionated.\n// Other strategies are also viable, though:\n// Option 1) Return an empty string in case of error, but allow the user to\n//    specify explicitly which errors to ignore.\n// Option 2) Return the partially evaluated string if it is itself a valid\n//    string, otherwise return the empty string in case of error.\n// Option 3) Option 1 and 2.\n// Option 4) Always return an empty string for now and implement Option 1 as\n//    needed, and document that the return string may not be empty in case of\n//    error in the future.\n// I think Option 1 is best, but it is quite opinionated.\n\n// ToASCII is a wrapper for Punycode.ToASCII.\nfunc ToASCII(s string) (string, error) {\n\treturn Punycode.process(s, true)\n}\n\n// ToUnicode is a wrapper for Punycode.ToUnicode.\nfunc ToUnicode(s string) (string, error) {\n\treturn Punycode.process(s, false)\n}\n\n// An Option configures a Profile at creation time.\ntype Option func(*options)\n\n// Transitional sets a Profile to use the Transitional mapping as defined in UTS\n// #46. This will cause, for example, \"ß\" to be mapped to \"ss\". Using the\n// transitional mapping provides a compromise between IDNA2003 and IDNA2008\n// compatibility. It is used by most browsers when resolving domain names. This\n// option is only meaningful if combined with MapForLookup.\nfunc Transitional(transitional bool) Option {\n\treturn func(o *options) { o.transitional = true }\n}\n\n// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts\n// are longer than allowed by the RFC.\nfunc VerifyDNSLength(verify bool) Option {\n\treturn func(o *options) { o.verifyDNSLength = verify }\n}\n\n// RemoveLeadingDots removes leading label separators. Leading runes that map to\n// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.\n//\n// This is the behavior suggested by the UTS #46 and is adopted by some\n// browsers.\nfunc RemoveLeadingDots(remove bool) Option {\n\treturn func(o *options) { o.removeLeadingDots = remove }\n}\n\n// ValidateLabels sets whether to check the mandatory label validation criteria\n// as defined in Section 5.4 of RFC 5891. This includes testing for correct use\n// of hyphens ('-'), normalization, validity of runes, and the context rules.\nfunc ValidateLabels(enable bool) Option {\n\treturn func(o *options) {\n\t\t// Don't override existing mappings, but set one that at least checks\n\t\t// normalization if it is not set.\n\t\tif o.mapping == nil && enable {\n\t\t\to.mapping = normalize\n\t\t}\n\t\to.trie = trie\n\t\to.validateLabels = enable\n\t\to.fromPuny = validateFromPunycode\n\t}\n}\n\n// StrictDomainName limits the set of permissable ASCII characters to those\n// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the\n// hyphen). This is set by default for MapForLookup and ValidateForRegistration.\n//\n// This option is useful, for instance, for browsers that allow characters\n// outside this range, for example a '_' (U+005F LOW LINE). See\n// http://www.rfc-editor.org/std/std3.txt for more details This option\n// corresponds to the UseSTD3ASCIIRules option in UTS #46.\nfunc StrictDomainName(use bool) Option {\n\treturn func(o *options) {\n\t\to.trie = trie\n\t\to.useSTD3Rules = use\n\t\to.fromPuny = validateFromPunycode\n\t}\n}\n\n// NOTE: the following options pull in tables. The tables should not be linked\n// in as long as the options are not used.\n\n// BidiRule enables the Bidi rule as defined in RFC 5893. Any application\n// that relies on proper validation of labels should include this rule.\nfunc BidiRule() Option {\n\treturn func(o *options) { o.bidirule = bidirule.ValidString }\n}\n\n// ValidateForRegistration sets validation options to verify that a given IDN is\n// properly formatted for registration as defined by Section 4 of RFC 5891.\nfunc ValidateForRegistration() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateRegistration\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tVerifyDNSLength(true)(o)\n\t\tBidiRule()(o)\n\t}\n}\n\n// MapForLookup sets validation and mapping options such that a given IDN is\n// transformed for domain name lookup according to the requirements set out in\n// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,\n// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option\n// to add this check.\n//\n// The mappings include normalization and mapping case, width and other\n// compatibility mappings.\nfunc MapForLookup() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateAndMap\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tRemoveLeadingDots(true)(o)\n\t}\n}\n\ntype options struct {\n\ttransitional      bool\n\tuseSTD3Rules      bool\n\tvalidateLabels    bool\n\tverifyDNSLength   bool\n\tremoveLeadingDots bool\n\n\ttrie *idnaTrie\n\n\t// fromPuny calls validation rules when converting A-labels to U-labels.\n\tfromPuny func(p *Profile, s string) error\n\n\t// mapping implements a validation and mapping step as defined in RFC 5895\n\t// or UTS 46, tailored to, for example, domain registration or lookup.\n\tmapping func(p *Profile, s string) (string, error)\n\n\t// bidirule, if specified, checks whether s conforms to the Bidi Rule\n\t// defined in RFC 5893.\n\tbidirule func(s string) bool\n}\n\n// A Profile defines the configuration of a IDNA mapper.\ntype Profile struct {\n\toptions\n}\n\nfunc apply(o *options, opts []Option) {\n\tfor _, f := range opts {\n\t\tf(o)\n\t}\n}\n\n// New creates a new Profile.\n//\n// With no options, the returned Profile is the most permissive and equals the\n// Punycode Profile. Options can be passed to further restrict the Profile. The\n// MapForLookup and ValidateForRegistration options set a collection of options,\n// for lookup and registration purposes respectively, which can be tailored by\n// adding more fine-grained options, where later options override earlier\n// options.\nfunc New(o ...Option) *Profile {\n\tp := &Profile{}\n\tapply(&p.options, o)\n\treturn p\n}\n\n// ToASCII converts a domain or domain label to its ASCII form. For example,\n// ToASCII(\"bücher.example.com\") is \"xn--bcher-kva.example.com\", and\n// ToASCII(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToASCII(s string) (string, error) {\n\treturn p.process(s, true)\n}\n\n// ToUnicode converts a domain or domain label to its Unicode form. For example,\n// ToUnicode(\"xn--bcher-kva.example.com\") is \"bücher.example.com\", and\n// ToUnicode(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToUnicode(s string) (string, error) {\n\tpp := *p\n\tpp.transitional = false\n\treturn pp.process(s, false)\n}\n\n// String reports a string with a description of the profile for debugging\n// purposes. The string format may change with different versions.\nfunc (p *Profile) String() string {\n\ts := \"\"\n\tif p.transitional {\n\t\ts = \"Transitional\"\n\t} else {\n\t\ts = \"NonTransitional\"\n\t}\n\tif p.useSTD3Rules {\n\t\ts += \":UseSTD3Rules\"\n\t}\n\tif p.validateLabels {\n\t\ts += \":ValidateLabels\"\n\t}\n\tif p.verifyDNSLength {\n\t\ts += \":VerifyDNSLength\"\n\t}\n\treturn s\n}\n\nvar (\n\t// Punycode is a Profile that does raw punycode processing with a minimum\n\t// of validation.\n\tPunycode *Profile = punycode\n\n\t// Lookup is the recommended profile for looking up domain names, according\n\t// to Section 5 of RFC 5891. The exact configuration of this profile may\n\t// change over time.\n\tLookup *Profile = lookup\n\n\t// Display is the recommended profile for displaying domain names.\n\t// The configuration of this profile may change over time.\n\tDisplay *Profile = display\n\n\t// Registration is the recommended profile for checking whether a given\n\t// IDN is valid for registration, according to Section 4 of RFC 5891.\n\tRegistration *Profile = registration\n\n\tpunycode = &Profile{}\n\tlookup   = &Profile{options{\n\t\ttransitional:      true,\n\t\tuseSTD3Rules:      true,\n\t\tvalidateLabels:    true,\n\t\tremoveLeadingDots: true,\n\t\ttrie:              trie,\n\t\tfromPuny:          validateFromPunycode,\n\t\tmapping:           validateAndMap,\n\t\tbidirule:          bidirule.ValidString,\n\t}}\n\tdisplay = &Profile{options{\n\t\tuseSTD3Rules:      true,\n\t\tvalidateLabels:    true,\n\t\tremoveLeadingDots: true,\n\t\ttrie:              trie,\n\t\tfromPuny:          validateFromPunycode,\n\t\tmapping:           validateAndMap,\n\t\tbidirule:          bidirule.ValidString,\n\t}}\n\tregistration = &Profile{options{\n\t\tuseSTD3Rules:    true,\n\t\tvalidateLabels:  true,\n\t\tverifyDNSLength: true,\n\t\ttrie:            trie,\n\t\tfromPuny:        validateFromPunycode,\n\t\tmapping:         validateRegistration,\n\t\tbidirule:        bidirule.ValidString,\n\t}}\n\n\t// TODO: profiles\n\t// Register: recommended for approving domain names: don't do any mappings\n\t// but rather reject on invalid input. Bundle or block deviation characters.\n)\n\ntype labelError struct{ label, code_ string }\n\nfunc (e labelError) code() string { return e.code_ }\nfunc (e labelError) Error() string {\n\treturn fmt.Sprintf(\"idna: invalid label %q\", e.label)\n}\n\ntype runeError rune\n\nfunc (e runeError) code() string { return \"P1\" }\nfunc (e runeError) Error() string {\n\treturn fmt.Sprintf(\"idna: disallowed rune %U\", e)\n}\n\n// process implements the algorithm described in section 4 of UTS #46,\n// see https://www.unicode.org/reports/tr46.\nfunc (p *Profile) process(s string, toASCII bool) (string, error) {\n\tvar err error\n\tif p.mapping != nil {\n\t\ts, err = p.mapping(p, s)\n\t}\n\t// Remove leading empty labels.\n\tif p.removeLeadingDots {\n\t\tfor ; len(s) > 0 && s[0] == '.'; s = s[1:] {\n\t\t}\n\t}\n\t// It seems like we should only create this error on ToASCII, but the\n\t// UTS 46 conformance tests suggests we should always check this.\n\tif err == nil && p.verifyDNSLength && s == \"\" {\n\t\terr = &labelError{s, \"A4\"}\n\t}\n\tlabels := labelIter{orig: s}\n\tfor ; !labels.done(); labels.next() {\n\t\tlabel := labels.label()\n\t\tif label == \"\" {\n\t\t\t// Empty labels are not okay. The label iterator skips the last\n\t\t\t// label if it is empty.\n\t\t\tif err == nil && p.verifyDNSLength {\n\t\t\t\terr = &labelError{s, \"A4\"}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(label, acePrefix) {\n\t\t\tu, err2 := decode(label[len(acePrefix):])\n\t\t\tif err2 != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\t// Spec says keep the old label.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlabels.set(u)\n\t\t\tif err == nil && p.validateLabels {\n\t\t\t\terr = p.fromPuny(p, u)\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// This should be called on NonTransitional, according to the\n\t\t\t\t// spec, but that currently does not have any effect. Use the\n\t\t\t\t// original profile to preserve options.\n\t\t\t\terr = p.validateLabel(u)\n\t\t\t}\n\t\t} else if err == nil {\n\t\t\terr = p.validateLabel(label)\n\t\t}\n\t}\n\tif toASCII {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tlabel := labels.label()\n\t\t\tif !ascii(label) {\n\t\t\t\ta, err2 := encode(acePrefix, label)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\tlabel = a\n\t\t\t\tlabels.set(a)\n\t\t\t}\n\t\t\tn := len(label)\n\t\t\tif p.verifyDNSLength && err == nil && (n == 0 || n > 63) {\n\t\t\t\terr = &labelError{label, \"A4\"}\n\t\t\t}\n\t\t}\n\t}\n\ts = labels.result()\n\tif toASCII && p.verifyDNSLength && err == nil {\n\t\t// Compute the length of the domain name minus the root label and its dot.\n\t\tn := len(s)\n\t\tif n > 0 && s[n-1] == '.' {\n\t\t\tn--\n\t\t}\n\t\tif len(s) < 1 || n > 253 {\n\t\t\terr = &labelError{s, \"A4\"}\n\t\t}\n\t}\n\treturn s, err\n}\n\nfunc normalize(p *Profile, s string) (string, error) {\n\treturn norm.NFC.String(s), nil\n}\n\nfunc validateRegistration(p *Profile, s string) (string, error) {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn s, &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\t// TODO: handle the NV8 defined in the Unicode idna data set to allow\n\t\t// for strict conformance to IDNA2008.\n\t\tcase valid, deviation:\n\t\tcase disallowed, mapped, unknown, ignored:\n\t\t\tr, _ := utf8.DecodeRuneInString(s[i:])\n\t\t\treturn s, runeError(r)\n\t\t}\n\t\ti += sz\n\t}\n\treturn s, nil\n}\n\nfunc validateAndMap(p *Profile, s string) (string, error) {\n\tvar (\n\t\terr error\n\t\tb   []byte\n\t\tk   int\n\t)\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tstart := i\n\t\ti += sz\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\tcase valid:\n\t\t\tcontinue\n\t\tcase disallowed:\n\t\t\tif err == nil {\n\t\t\t\tr, _ := utf8.DecodeRuneInString(s[start:])\n\t\t\t\terr = runeError(r)\n\t\t\t}\n\t\t\tcontinue\n\t\tcase mapped, deviation:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = info(v).appendMapping(b, s[start:i])\n\t\tcase ignored:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\t// drop the rune\n\t\tcase unknown:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t}\n\t\tk = i\n\t}\n\tif k == 0 {\n\t\t// No changes so far.\n\t\ts = norm.NFC.String(s)\n\t} else {\n\t\tb = append(b, s[k:]...)\n\t\tif norm.NFC.QuickSpan(b) != len(b) {\n\t\t\tb = norm.NFC.Bytes(b)\n\t\t}\n\t\t// TODO: the punycode converters require strings as input.\n\t\ts = string(b)\n\t}\n\treturn s, err\n}\n\n// A labelIter allows iterating over domain name labels.\ntype labelIter struct {\n\torig     string\n\tslice    []string\n\tcurStart int\n\tcurEnd   int\n\ti        int\n}\n\nfunc (l *labelIter) reset() {\n\tl.curStart = 0\n\tl.curEnd = 0\n\tl.i = 0\n}\n\nfunc (l *labelIter) done() bool {\n\treturn l.curStart >= len(l.orig)\n}\n\nfunc (l *labelIter) result() string {\n\tif l.slice != nil {\n\t\treturn strings.Join(l.slice, \".\")\n\t}\n\treturn l.orig\n}\n\nfunc (l *labelIter) label() string {\n\tif l.slice != nil {\n\t\treturn l.slice[l.i]\n\t}\n\tp := strings.IndexByte(l.orig[l.curStart:], '.')\n\tl.curEnd = l.curStart + p\n\tif p == -1 {\n\t\tl.curEnd = len(l.orig)\n\t}\n\treturn l.orig[l.curStart:l.curEnd]\n}\n\n// next sets the value to the next label. It skips the last label if it is empty.\nfunc (l *labelIter) next() {\n\tl.i++\n\tif l.slice != nil {\n\t\tif l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == \"\" {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t} else {\n\t\tl.curStart = l.curEnd + 1\n\t\tif l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t}\n}\n\nfunc (l *labelIter) set(s string) {\n\tif l.slice == nil {\n\t\tl.slice = strings.Split(l.orig, \".\")\n\t}\n\tl.slice[l.i] = s\n}\n\n// acePrefix is the ASCII Compatible Encoding prefix.\nconst acePrefix = \"xn--\"\n\nfunc (p *Profile) simplify(cat category) category {\n\tswitch cat {\n\tcase disallowedSTD3Mapped:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = mapped\n\t\t}\n\tcase disallowedSTD3Valid:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = valid\n\t\t}\n\tcase deviation:\n\t\tif !p.transitional {\n\t\t\tcat = valid\n\t\t}\n\tcase validNV8, validXV8:\n\t\t// TODO: handle V2008\n\t\tcat = valid\n\t}\n\treturn cat\n}\n\nfunc validateFromPunycode(p *Profile, s string) error {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif c := p.simplify(info(v).category()); c != valid && c != deviation {\n\t\t\treturn &labelError{s, \"V6\"}\n\t\t}\n\t\ti += sz\n\t}\n\treturn nil\n}\n\nconst (\n\tzwnj = \"\\u200c\"\n\tzwj  = \"\\u200d\"\n)\n\ntype joinState int8\n\nconst (\n\tstateStart joinState = iota\n\tstateVirama\n\tstateBefore\n\tstateBeforeVirama\n\tstateAfter\n\tstateFAIL\n)\n\nvar joinStates = [][numJoinTypes]joinState{\n\tstateStart: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateVirama,\n\t},\n\tstateVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t},\n\tstateBefore: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateBefore,\n\t\tjoinZWNJ:   stateAfter,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateBeforeVirama,\n\t},\n\tstateBeforeVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t\tjoiningT: stateBefore,\n\t},\n\tstateAfter: {\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateAfter,\n\t\tjoiningR:   stateStart,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateAfter, // no-op as we can't accept joiners here\n\t},\n\tstateFAIL: {\n\t\t0:          stateFAIL,\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateFAIL,\n\t\tjoiningT:   stateFAIL,\n\t\tjoiningR:   stateFAIL,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateFAIL,\n\t},\n}\n\n// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are\n// already implicitly satisfied by the overall implementation.\nfunc (p *Profile) validateLabel(s string) error {\n\tif s == \"\" {\n\t\tif p.verifyDNSLength {\n\t\t\treturn &labelError{s, \"A4\"}\n\t\t}\n\t\treturn nil\n\t}\n\tif p.bidirule != nil && !p.bidirule(s) {\n\t\treturn &labelError{s, \"B\"}\n\t}\n\tif !p.validateLabels {\n\t\treturn nil\n\t}\n\ttrie := p.trie // p.validateLabels is only set if trie is set.\n\tif len(s) > 4 && s[2] == '-' && s[3] == '-' {\n\t\treturn &labelError{s, \"V2\"}\n\t}\n\tif s[0] == '-' || s[len(s)-1] == '-' {\n\t\treturn &labelError{s, \"V3\"}\n\t}\n\t// TODO: merge the use of this in the trie.\n\tv, sz := trie.lookupString(s)\n\tx := info(v)\n\tif x.isModifier() {\n\t\treturn &labelError{s, \"V5\"}\n\t}\n\t// Quickly return in the absence of zero-width (non) joiners.\n\tif strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {\n\t\treturn nil\n\t}\n\tst := stateStart\n\tfor i := 0; ; {\n\t\tjt := x.joinType()\n\t\tif s[i:i+sz] == zwj {\n\t\t\tjt = joinZWJ\n\t\t} else if s[i:i+sz] == zwnj {\n\t\t\tjt = joinZWNJ\n\t\t}\n\t\tst = joinStates[st][jt]\n\t\tif x.isViramaModifier() {\n\t\t\tst = joinStates[st][joinVirama]\n\t\t}\n\t\tif i += sz; i == len(s) {\n\t\t\tbreak\n\t\t}\n\t\tv, sz = trie.lookupString(s[i:])\n\t\tx = info(v)\n\t}\n\tif st == stateFAIL || st == stateAfter {\n\t\treturn &labelError{s, \"C\"}\n\t}\n\treturn nil\n}\n\nfunc ascii(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/punycode.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage idna\n\n// This file implements the Punycode algorithm from RFC 3492.\n\nimport (\n\t\"math\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// These parameter values are specified in section 5.\n//\n// All computation is done with int32s, so that overflow behavior is identical\n// regardless of whether int is 32-bit or 64-bit.\nconst (\n\tbase        int32 = 36\n\tdamp        int32 = 700\n\tinitialBias int32 = 72\n\tinitialN    int32 = 128\n\tskew        int32 = 38\n\ttmax        int32 = 26\n\ttmin        int32 = 1\n)\n\nfunc punyError(s string) error { return &labelError{s, \"A3\"} }\n\n// decode decodes a string as specified in section 6.2.\nfunc decode(encoded string) (string, error) {\n\tif encoded == \"\" {\n\t\treturn \"\", nil\n\t}\n\tpos := 1 + strings.LastIndex(encoded, \"-\")\n\tif pos == 1 {\n\t\treturn \"\", punyError(encoded)\n\t}\n\tif pos == len(encoded) {\n\t\treturn encoded[:len(encoded)-1], nil\n\t}\n\toutput := make([]rune, 0, len(encoded))\n\tif pos != 0 {\n\t\tfor _, r := range encoded[:pos-1] {\n\t\t\toutput = append(output, r)\n\t\t}\n\t}\n\ti, n, bias := int32(0), initialN, initialBias\n\tfor pos < len(encoded) {\n\t\toldI, w := i, int32(1)\n\t\tfor k := base; ; k += base {\n\t\t\tif pos == len(encoded) {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tdigit, ok := decodeDigit(encoded[pos])\n\t\t\tif !ok {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tpos++\n\t\t\ti += digit * w\n\t\t\tif i < 0 {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tt := k - bias\n\t\t\tif t < tmin {\n\t\t\t\tt = tmin\n\t\t\t} else if t > tmax {\n\t\t\t\tt = tmax\n\t\t\t}\n\t\t\tif digit < t {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tw *= base - t\n\t\t\tif w >= math.MaxInt32/base {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t}\n\t\tx := int32(len(output) + 1)\n\t\tbias = adapt(i-oldI, x, oldI == 0)\n\t\tn += i / x\n\t\ti %= x\n\t\tif n > utf8.MaxRune || len(output) >= 1024 {\n\t\t\treturn \"\", punyError(encoded)\n\t\t}\n\t\toutput = append(output, 0)\n\t\tcopy(output[i+1:], output[i:])\n\t\toutput[i] = n\n\t\ti++\n\t}\n\treturn string(output), nil\n}\n\n// encode encodes a string as specified in section 6.3 and prepends prefix to\n// the result.\n//\n// The \"while h < length(input)\" line in the specification becomes \"for\n// remaining != 0\" in the Go code, because len(s) in Go is in bytes, not runes.\nfunc encode(prefix, s string) (string, error) {\n\toutput := make([]byte, len(prefix), len(prefix)+1+2*len(s))\n\tcopy(output, prefix)\n\tdelta, n, bias := int32(0), initialN, initialBias\n\tb, remaining := int32(0), int32(0)\n\tfor _, r := range s {\n\t\tif r < 0x80 {\n\t\t\tb++\n\t\t\toutput = append(output, byte(r))\n\t\t} else {\n\t\t\tremaining++\n\t\t}\n\t}\n\th := b\n\tif b > 0 {\n\t\toutput = append(output, '-')\n\t}\n\tfor remaining != 0 {\n\t\tm := int32(0x7fffffff)\n\t\tfor _, r := range s {\n\t\t\tif m > r && r >= n {\n\t\t\t\tm = r\n\t\t\t}\n\t\t}\n\t\tdelta += (m - n) * (h + 1)\n\t\tif delta < 0 {\n\t\t\treturn \"\", punyError(s)\n\t\t}\n\t\tn = m\n\t\tfor _, r := range s {\n\t\t\tif r < n {\n\t\t\t\tdelta++\n\t\t\t\tif delta < 0 {\n\t\t\t\t\treturn \"\", punyError(s)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif r > n {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tq := delta\n\t\t\tfor k := base; ; k += base {\n\t\t\t\tt := k - bias\n\t\t\t\tif t < tmin {\n\t\t\t\t\tt = tmin\n\t\t\t\t} else if t > tmax {\n\t\t\t\t\tt = tmax\n\t\t\t\t}\n\t\t\t\tif q < t {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\toutput = append(output, encodeDigit(t+(q-t)%(base-t)))\n\t\t\t\tq = (q - t) / (base - t)\n\t\t\t}\n\t\t\toutput = append(output, encodeDigit(q))\n\t\t\tbias = adapt(delta, h+1, h == b)\n\t\t\tdelta = 0\n\t\t\th++\n\t\t\tremaining--\n\t\t}\n\t\tdelta++\n\t\tn++\n\t}\n\treturn string(output), nil\n}\n\nfunc decodeDigit(x byte) (digit int32, ok bool) {\n\tswitch {\n\tcase '0' <= x && x <= '9':\n\t\treturn int32(x - ('0' - 26)), true\n\tcase 'A' <= x && x <= 'Z':\n\t\treturn int32(x - 'A'), true\n\tcase 'a' <= x && x <= 'z':\n\t\treturn int32(x - 'a'), true\n\t}\n\treturn 0, false\n}\n\nfunc encodeDigit(digit int32) byte {\n\tswitch {\n\tcase 0 <= digit && digit < 26:\n\t\treturn byte(digit + 'a')\n\tcase 26 <= digit && digit < 36:\n\t\treturn byte(digit + ('0' - 26))\n\t}\n\tpanic(\"idna: internal error in punycode encoding\")\n}\n\n// adapt is the bias adaptation function specified in section 6.1.\nfunc adapt(delta, numPoints int32, firstTime bool) int32 {\n\tif firstTime {\n\t\tdelta /= damp\n\t} else {\n\t\tdelta /= 2\n\t}\n\tdelta += delta / numPoints\n\tk := int32(0)\n\tfor delta > ((base-tmin)*tmax)/2 {\n\t\tdelta /= base - tmin\n\t\tk += base\n\t}\n\treturn k + (base-tmin+1)*delta/(delta+skew)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.10,!go1.13\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29052 bytes (28.37 KiB). Checksum: ef06e7ecc26f36dd.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x0040, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0040, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0040, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,\n\t0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,\n\t0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,\n\t0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,\n\t0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,\n\t0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,\n\t0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,\n\t0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,\n\t0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,\n\t0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,\n\t0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,\n\t0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,\n\t0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,\n\t0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,\n\t0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,\n\t0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,\n\t0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,\n\t0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,\n\t0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,\n\t0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,\n\t0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,\n\t0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,\n\t0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,\n\t0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,\n\t0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,\n\t0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,\n\t0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,\n\t0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,\n\t0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,\n\t0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,\n\t0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,\n\t0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,\n\t0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,\n\t0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,\n\t0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,\n\t0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,\n\t0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,\n\t0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,\n\t0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,\n\t0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,\n\t0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,\n\t0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,\n\t0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,\n\t0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,\n\t0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,\n\t0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,\n\t0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,\n\t0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0040,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,\n\t0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,\n\t0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,\n\t0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,\n\t0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,\n\t0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,\n\t0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,\n\t0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,\n\t0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,\n\t0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,\n\t0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,\n\t0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,\n\t0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,\n\t0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,\n\t0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,\n\t0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,\n\t0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,\n\t0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,\n\t0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,\n\t0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,\n\t0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,\n\t0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,\n\t0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,\n\t0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,\n\t0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,\n\t0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,\n\t0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,\n\t0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,\n\t0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,\n\t0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,\n\t0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,\n\t0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,\n\t0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,\n\t0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,\n\t0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x0040,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0040,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,\n\t0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,\n\t0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,\n\t0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,\n\t0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,\n\t0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,\n\t0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,\n\t0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,\n\t0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,\n\t0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,\n\t0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,\n\t0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,\n\t0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,\n\t0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,\n\t0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,\n\t0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,\n\t0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,\n\t0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,\n\t0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,\n\t0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,\n\t0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,\n\t0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,\n\t0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,\n\t0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,\n\t0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,\n\t0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,\n\t0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,\n\t0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,\n\t0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,\n\t0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,\n\t0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,\n\t0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,\n\t0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,\n\t0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,\n\t0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,\n\t0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,\n\t0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,\n\t0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,\n\t0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,\n\t0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,\n\t0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,\n\t0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,\n\t0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,\n\t0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,\n\t0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,\n\t0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,\n\t0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,\n\t0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,\n\t0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,\n\t0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,\n\t0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,\n\t0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,\n\t0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,\n\t0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,\n\t0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,\n\t0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,\n\t0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,\n\t0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,\n\t0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,\n\t0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,\n\t0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,\n\t0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,\n\t0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,\n\t0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,\n\t0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,\n\t0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,\n\t0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,\n\t0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,\n\t0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,\n\t0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,\n\t0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,\n\t0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,\n\t0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,\n\t0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,\n\t0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,\n\t0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,\n\t0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x127, 0x401: 0x128, 0x402: 0x129, 0x403: 0x12a, 0x404: 0x12b, 0x405: 0x12c, 0x406: 0x12d, 0x407: 0x12e,\n\t0x408: 0x12f, 0x409: 0xba, 0x40a: 0x130, 0x40b: 0x131, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x132, 0x411: 0x133, 0x412: 0x134, 0x413: 0x135, 0x414: 0xba, 0x415: 0xba, 0x416: 0x136, 0x417: 0x137,\n\t0x418: 0x138, 0x419: 0x139, 0x41a: 0x13a, 0x41b: 0x13b, 0x41c: 0x13c, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0xba, 0x421: 0xba, 0x422: 0x13d, 0x423: 0x13e, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0x13f, 0x429: 0x140, 0x42a: 0x141, 0x42b: 0x142, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x143, 0x431: 0x144, 0x432: 0x145, 0x433: 0xba, 0x434: 0x146, 0x435: 0x147, 0x436: 0xba, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x148, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x149, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x14a, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x14b, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x14c, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x142, 0x529: 0x14d, 0x52a: 0xba, 0x52b: 0x14e, 0x52c: 0x14f, 0x52d: 0x150, 0x52e: 0x151, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x152, 0x53e: 0x153, 0x53f: 0x154,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x155,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x156, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x157, 0x585: 0x158, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x159, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x15a, 0x5b2: 0x15b, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x15c, 0x5c4: 0x15d, 0x5c5: 0x15e, 0x5c6: 0x15f, 0x5c7: 0x160,\n\t0x5c8: 0x9b, 0x5c9: 0x161, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x162, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x163, 0x5e9: 0x164, 0x5ea: 0x165, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x166, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x167, 0x624: 0x6f, 0x625: 0x168, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x169, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x16a, 0x641: 0x9b, 0x642: 0x16b, 0x643: 0x16c, 0x644: 0x73, 0x645: 0x74, 0x646: 0x16d, 0x647: 0x16e,\n\t0x648: 0x75, 0x649: 0x16f, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x170, 0x65c: 0x9b, 0x65d: 0x171, 0x65e: 0x9b, 0x65f: 0x172,\n\t0x660: 0x173, 0x661: 0x174, 0x662: 0x175, 0x663: 0xba, 0x664: 0x176, 0x665: 0x177, 0x666: 0x178, 0x667: 0x179,\n\t0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x17a, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x17b, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x17c, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x17d, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x17e,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x17f, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x180, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x181, 0x841: 0x182, 0x842: 0xba, 0x843: 0xba, 0x844: 0x183, 0x845: 0x183, 0x846: 0x183, 0x847: 0x184,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 264 entries, 528 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x8a, 0x93, 0xa3, 0xb1, 0xbd, 0xc9, 0xda, 0xe4, 0xeb, 0xf8, 0x109, 0x110, 0x11b, 0x12a, 0x138, 0x142, 0x144, 0x149, 0x14c, 0x14f, 0x151, 0x15d, 0x168, 0x170, 0x176, 0x17c, 0x181, 0x186, 0x189, 0x18d, 0x193, 0x198, 0x1a4, 0x1ae, 0x1b4, 0x1c5, 0x1cf, 0x1d2, 0x1da, 0x1dd, 0x1ea, 0x1f2, 0x1f6, 0x1fd, 0x205, 0x215, 0x221, 0x223, 0x22d, 0x239, 0x245, 0x251, 0x259, 0x25e, 0x268, 0x279, 0x27d, 0x288, 0x28c, 0x295, 0x29d, 0x2a3, 0x2a8, 0x2ab, 0x2af, 0x2b5, 0x2b9, 0x2bd, 0x2c3, 0x2ca, 0x2d0, 0x2d8, 0x2df, 0x2ea, 0x2f4, 0x2f8, 0x2fb, 0x301, 0x305, 0x307, 0x30a, 0x30c, 0x30f, 0x319, 0x31c, 0x32b, 0x32f, 0x334, 0x337, 0x33b, 0x340, 0x345, 0x34b, 0x351, 0x360, 0x366, 0x36a, 0x379, 0x37e, 0x386, 0x390, 0x39b, 0x3a3, 0x3b4, 0x3bd, 0x3cd, 0x3da, 0x3e4, 0x3e9, 0x3f6, 0x3fa, 0x3ff, 0x401, 0x405, 0x407, 0x40b, 0x414, 0x41a, 0x41e, 0x42e, 0x438, 0x43d, 0x440, 0x446, 0x44d, 0x452, 0x456, 0x45c, 0x461, 0x46a, 0x46f, 0x475, 0x47c, 0x483, 0x48a, 0x48e, 0x493, 0x496, 0x49b, 0x4a7, 0x4ad, 0x4b2, 0x4b9, 0x4c1, 0x4c6, 0x4ca, 0x4da, 0x4e1, 0x4e5, 0x4e9, 0x4f0, 0x4f2, 0x4f5, 0x4f8, 0x4fc, 0x500, 0x506, 0x50f, 0x51b, 0x522, 0x52b, 0x533, 0x53a, 0x548, 0x555, 0x562, 0x56b, 0x56f, 0x57d, 0x585, 0x590, 0x599, 0x59f, 0x5a7, 0x5b0, 0x5ba, 0x5bd, 0x5c9, 0x5cc, 0x5d1, 0x5de, 0x5e7, 0x5f3, 0x5f6, 0x600, 0x609, 0x615, 0x622, 0x62a, 0x62d, 0x632, 0x635, 0x638, 0x63b, 0x642, 0x649, 0x64d, 0x658, 0x65b, 0x661, 0x666, 0x66a, 0x66d, 0x670, 0x673, 0x676, 0x679, 0x67e, 0x688, 0x68b, 0x68f, 0x69e, 0x6aa, 0x6ae, 0x6b3, 0x6b8, 0x6bc, 0x6c1, 0x6ca, 0x6d5, 0x6db, 0x6e3, 0x6e7, 0x6eb, 0x6f1, 0x6f7, 0x6fc, 0x6ff, 0x70f, 0x716, 0x719, 0x71c, 0x720, 0x726, 0x72b, 0x730, 0x735, 0x738, 0x73d, 0x740, 0x743, 0x747, 0x74b, 0x74e, 0x75e, 0x76f, 0x774, 0x776, 0x778}\n\n// idnaSparseValues: 1915 entries, 7660 bytes\nvar idnaSparseValues = [1915]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x6, offset 0x34\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x63\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0xc, offset 0x6b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x77\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x93\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa3\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbd\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xc9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xda\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xeb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x109\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x110\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x138\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x142\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x144\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x149\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x14f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x151\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x168\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x170\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x176\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x181\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x186\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x189\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x193\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x198\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a4\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1ae\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x34, offset 0x1d2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1da\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1dd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1ea\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x205\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x215\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x221\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x223\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22d\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x239\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x245\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x251\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x259\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x45, offset 0x268\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x46, offset 0x279\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x27d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x288\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x28c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x295\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x29d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0018, lo: 0xbd, hi: 0xbf},\n\t// Block 0x53, offset 0x2c3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xab},\n\t{value: 0x0018, lo: 0xac, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2ca\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2d8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2df\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x58, offset 0x2ea\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5c, offset 0x301\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5d, offset 0x305\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x5e, offset 0x307\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x5f, offset 0x30a\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x30c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x61, offset 0x30f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x62, offset 0x319\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x63, offset 0x31c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x66, offset 0x334\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0x67, offset 0x337\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x68, offset 0x33b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x69, offset 0x340\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6a, offset 0x345\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x34b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x351\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x360\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6e, offset 0x366\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6f, offset 0x36a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x70, offset 0x379\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x71, offset 0x37e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x72, offset 0x386\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x390\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x39b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3a3\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3b4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3bd\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x78, offset 0x3cd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3da\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3e4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3e9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3fa\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7e, offset 0x3ff\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x401\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x80, offset 0x405\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x407\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x82, offset 0x40b\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x83, offset 0x414\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x84, offset 0x41a\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x85, offset 0x41e\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x86, offset 0x42e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x87, offset 0x438\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x88, offset 0x43d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x89, offset 0x440\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8a, offset 0x446\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8b, offset 0x44d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8c, offset 0x452\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8d, offset 0x456\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8e, offset 0x45c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8f, offset 0x461\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x90, offset 0x46a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x91, offset 0x46f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x92, offset 0x475\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x93, offset 0x47c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x94, offset 0x483\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x48a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x48e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x493\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x496\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x99, offset 0x49b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ad\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b9\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9f, offset 0x4c6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa0, offset 0x4ca\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa1, offset 0x4da\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa3, offset 0x4e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa6, offset 0x4f2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x4fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaa, offset 0x500\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xab, offset 0x506\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xac, offset 0x50f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xad, offset 0x51b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xae, offset 0x522\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xaf, offset 0x52b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb0, offset 0x533\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb1, offset 0x53a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb2, offset 0x548\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb3, offset 0x555\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb4, offset 0x562\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb5, offset 0x56b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb6, offset 0x56f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xb7, offset 0x57d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb8, offset 0x585\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xb9, offset 0x590\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xba, offset 0x599\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbb, offset 0x59f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbc, offset 0x5a7\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b0\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbe, offset 0x5ba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xbf, offset 0x5bd\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc0, offset 0x5c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc1, offset 0x5cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc2, offset 0x5d1\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc3, offset 0x5de\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xc4, offset 0x5e7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xc5, offset 0x5f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc7, offset 0x600\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xc8, offset 0x609\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xc9, offset 0x615\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xca, offset 0x622\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcb, offset 0x62a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcc, offset 0x62d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xcd, offset 0x632\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xce, offset 0x635\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xcf, offset 0x638\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd0, offset 0x63b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xd1, offset 0x642\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xd2, offset 0x649\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd3, offset 0x64d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd4, offset 0x658\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xd5, offset 0x65b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd6, offset 0x661\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xd7, offset 0x666\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xd8, offset 0x66a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xd9, offset 0x66d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xda, offset 0x670\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xdb, offset 0x673\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xdc, offset 0x676\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xdd, offset 0x679\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xde, offset 0x67e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xdf, offset 0x688\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe0, offset 0x68b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe1, offset 0x68f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe2, offset 0x69e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xe3, offset 0x6aa\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe4, offset 0x6ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xe5, offset 0x6b3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe6, offset 0x6b8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe7, offset 0x6bc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe8, offset 0x6c1\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe9, offset 0x6ca\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xea, offset 0x6d5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xeb, offset 0x6db\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xec, offset 0x6e3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xed, offset 0x6e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xee, offset 0x6eb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xef, offset 0x6f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf0, offset 0x6f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xf1, offset 0x6fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xf2, offset 0x6ff\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0xf3, offset 0x70f\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xf4, offset 0x716\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf5, offset 0x719\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0xbf},\n\t// Block 0xf6, offset 0x71c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf7, offset 0x720\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf8, offset 0x726\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0xf9, offset 0x72b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfa, offset 0x730\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0xfb, offset 0x735\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xbf},\n\t// Block 0xfc, offset 0x738\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0xfd, offset 0x73d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xfe, offset 0x740\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xff, offset 0x743\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x100, offset 0x747\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x101, offset 0x74b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x102, offset 0x74e\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0x103, offset 0x75e\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x104, offset 0x76f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x105, offset 0x774\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x106, offset 0x776\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x107, offset 0x778\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42114 bytes (41KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.13\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29404 bytes (28.71 KiB). Checksum: 848c45acb5f7991c.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,\n\t0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,\n\t0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,\n\t0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,\n\t0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,\n\t0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,\n\t0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,\n\t0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,\n\t0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,\n\t0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,\n\t0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,\n\t0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,\n\t0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,\n\t0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,\n\t0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,\n\t0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,\n\t0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,\n\t0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,\n\t0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,\n\t0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,\n\t0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,\n\t0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,\n\t0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,\n\t0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,\n\t0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,\n\t0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,\n\t0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,\n\t0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,\n\t0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,\n\t0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,\n\t0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,\n\t0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,\n\t0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,\n\t0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,\n\t0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,\n\t0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,\n\t0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,\n\t0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,\n\t0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,\n\t0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,\n\t0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,\n\t0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,\n\t0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,\n\t0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,\n\t0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,\n\t0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,\n\t0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,\n\t0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0008, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,\n\t0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,\n\t0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,\n\t0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,\n\t0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,\n\t0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,\n\t0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,\n\t0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,\n\t0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,\n\t0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,\n\t0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,\n\t0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,\n\t0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,\n\t0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,\n\t0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,\n\t0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,\n\t0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,\n\t0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,\n\t0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,\n\t0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,\n\t0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,\n\t0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,\n\t0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,\n\t0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,\n\t0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,\n\t0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,\n\t0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,\n\t0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,\n\t0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,\n\t0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,\n\t0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,\n\t0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,\n\t0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,\n\t0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,\n\t0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,\n\t0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,\n\t0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,\n\t0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,\n\t0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,\n\t0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,\n\t0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,\n\t0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,\n\t0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,\n\t0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,\n\t0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,\n\t0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,\n\t0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,\n\t0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,\n\t0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,\n\t0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,\n\t0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,\n\t0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,\n\t0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,\n\t0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,\n\t0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,\n\t0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,\n\t0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,\n\t0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,\n\t0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,\n\t0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,\n\t0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,\n\t0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,\n\t0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,\n\t0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,\n\t0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,\n\t0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,\n\t0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,\n\t0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,\n\t0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,\n\t0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,\n\t0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,\n\t0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,\n\t0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,\n\t0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,\n\t0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,\n\t0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,\n\t0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,\n\t0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,\n\t0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,\n\t0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,\n\t0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,\n\t0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,\n\t0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,\n\t0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,\n\t0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,\n\t0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,\n\t0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,\n\t0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,\n\t0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,\n\t0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,\n\t0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,\n\t0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,\n\t0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,\n\t0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,\n\t0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,\n\t0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,\n\t0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,\n\t0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,\n\t0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,\n\t0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,\n\t0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,\n\t0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,\n\t0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,\n\t0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,\n\t0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,\n\t0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,\n\t0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,\n\t0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,\n\t0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,\n\t0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,\n\t0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0x126, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x128, 0x3fd: 0x129, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131,\n\t0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a,\n\t0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0x143, 0x429: 0x144, 0x42a: 0x145, 0x42b: 0x146, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x147, 0x431: 0x148, 0x432: 0x149, 0x433: 0xba, 0x434: 0x14a, 0x435: 0x14b, 0x436: 0x14c, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14d, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x14e, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x14f, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x150, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x151, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x152, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x146, 0x529: 0x153, 0x52a: 0xba, 0x52b: 0x154, 0x52c: 0x155, 0x52d: 0x156, 0x52e: 0x157, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0x158, 0x53a: 0x159, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15a, 0x53e: 0x15b, 0x53f: 0x15c,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x15d,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x15e, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x15f, 0x585: 0x160, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x161, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x162, 0x5b2: 0x163, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x164, 0x5c4: 0x165, 0x5c5: 0x166, 0x5c6: 0x167, 0x5c7: 0x168,\n\t0x5c8: 0x9b, 0x5c9: 0x169, 0x5ca: 0xba, 0x5cb: 0x16a, 0x5cc: 0x9b, 0x5cd: 0x16b, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x16c, 0x5e9: 0x16d, 0x5ea: 0x16e, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x16f, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x170, 0x624: 0x6f, 0x625: 0x171, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0x172, 0x632: 0x173, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x174, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x175, 0x641: 0x9b, 0x642: 0x176, 0x643: 0x177, 0x644: 0x73, 0x645: 0x74, 0x646: 0x178, 0x647: 0x179,\n\t0x648: 0x75, 0x649: 0x17a, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x17b, 0x65c: 0x9b, 0x65d: 0x17c, 0x65e: 0x9b, 0x65f: 0x17d,\n\t0x660: 0x17e, 0x661: 0x17f, 0x662: 0x180, 0x663: 0xba, 0x664: 0x181, 0x665: 0x182, 0x666: 0x183, 0x667: 0x184,\n\t0x668: 0xba, 0x669: 0x185, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x186, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x187, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x188, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x189, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x18a,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x18b, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x18c, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x18d, 0x841: 0x18e, 0x842: 0xba, 0x843: 0xba, 0x844: 0x18f, 0x845: 0x18f, 0x846: 0x18f, 0x847: 0x190,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 276 entries, 552 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x269, 0x27a, 0x27e, 0x289, 0x28d, 0x296, 0x29e, 0x2a4, 0x2a9, 0x2ac, 0x2b0, 0x2b6, 0x2ba, 0x2be, 0x2c2, 0x2c7, 0x2cd, 0x2d5, 0x2dc, 0x2e7, 0x2f1, 0x2f5, 0x2f8, 0x2fe, 0x302, 0x304, 0x307, 0x309, 0x30c, 0x316, 0x319, 0x328, 0x32c, 0x331, 0x334, 0x338, 0x33d, 0x342, 0x348, 0x34e, 0x35d, 0x363, 0x367, 0x376, 0x37b, 0x383, 0x38d, 0x398, 0x3a0, 0x3b1, 0x3ba, 0x3ca, 0x3d7, 0x3e1, 0x3e6, 0x3f3, 0x3f7, 0x3fc, 0x3fe, 0x402, 0x404, 0x408, 0x411, 0x417, 0x41b, 0x42b, 0x435, 0x43a, 0x43d, 0x443, 0x44a, 0x44f, 0x453, 0x459, 0x45e, 0x467, 0x46c, 0x472, 0x479, 0x480, 0x487, 0x48b, 0x490, 0x493, 0x498, 0x4a4, 0x4aa, 0x4af, 0x4b6, 0x4be, 0x4c3, 0x4c7, 0x4d7, 0x4de, 0x4e2, 0x4e6, 0x4ed, 0x4ef, 0x4f2, 0x4f5, 0x4f9, 0x502, 0x506, 0x50e, 0x516, 0x51c, 0x525, 0x531, 0x538, 0x541, 0x54b, 0x552, 0x560, 0x56d, 0x57a, 0x583, 0x587, 0x596, 0x59e, 0x5a9, 0x5b2, 0x5b8, 0x5c0, 0x5c9, 0x5d3, 0x5d6, 0x5e2, 0x5eb, 0x5ee, 0x5f3, 0x5fe, 0x607, 0x613, 0x616, 0x620, 0x629, 0x635, 0x642, 0x64f, 0x65d, 0x664, 0x667, 0x66c, 0x66f, 0x672, 0x675, 0x67c, 0x683, 0x687, 0x692, 0x695, 0x698, 0x69b, 0x6a1, 0x6a6, 0x6aa, 0x6ad, 0x6b0, 0x6b3, 0x6b6, 0x6b9, 0x6be, 0x6c8, 0x6cb, 0x6cf, 0x6de, 0x6ea, 0x6ee, 0x6f3, 0x6f7, 0x6fc, 0x700, 0x705, 0x70e, 0x719, 0x71f, 0x727, 0x72a, 0x72d, 0x731, 0x735, 0x73b, 0x741, 0x746, 0x749, 0x759, 0x760, 0x763, 0x766, 0x76a, 0x770, 0x775, 0x77a, 0x782, 0x787, 0x78b, 0x78f, 0x792, 0x795, 0x799, 0x79d, 0x7a0, 0x7b0, 0x7c1, 0x7c6, 0x7c8, 0x7ca}\n\n// idnaSparseValues: 1997 entries, 7988 bytes\nvar idnaSparseValues = [1997]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x86\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x224\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x246\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x252\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x45, offset 0x269\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x46, offset 0x27a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x27e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x289\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x28d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x296\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x29e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ac\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2ba\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xbf},\n\t// Block 0x53, offset 0x2c2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x54, offset 0x2c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2cd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2d5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2dc\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x58, offset 0x2e7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0xbf},\n\t// Block 0x5b, offset 0x2f8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5c, offset 0x2fe\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5d, offset 0x302\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x5e, offset 0x304\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x5f, offset 0x307\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x309\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x61, offset 0x30c\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x62, offset 0x316\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x63, offset 0x319\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x64, offset 0x328\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x65, offset 0x32c\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x66, offset 0x331\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x67, offset 0x334\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x68, offset 0x338\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x69, offset 0x33d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6a, offset 0x342\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x348\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x34e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x35d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6e, offset 0x363\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6f, offset 0x367\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x376\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x71, offset 0x37b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x72, offset 0x383\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x38d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x398\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3a0\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3b1\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3ba\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x78, offset 0x3ca\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3d7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3e1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3e6\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7e, offset 0x3fc\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x3fe\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x80, offset 0x402\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x404\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x82, offset 0x408\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x83, offset 0x411\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x84, offset 0x417\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x85, offset 0x41b\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x86, offset 0x42b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x87, offset 0x435\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x88, offset 0x43a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x89, offset 0x43d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8a, offset 0x443\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8b, offset 0x44a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8c, offset 0x44f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8d, offset 0x453\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8e, offset 0x459\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8f, offset 0x45e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x90, offset 0x467\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x91, offset 0x46c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x92, offset 0x472\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x93, offset 0x479\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x94, offset 0x480\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x487\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x48b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x490\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x493\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x99, offset 0x498\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9b, offset 0x4aa\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x4af\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4be\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9f, offset 0x4c3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa0, offset 0x4c7\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa2, offset 0x4de\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa3, offset 0x4e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa5, offset 0x4ed\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa6, offset 0x4ef\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x4f9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xaa, offset 0x502\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xab, offset 0x506\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xac, offset 0x50e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xad, offset 0x516\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xae, offset 0x51c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaf, offset 0x525\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb0, offset 0x531\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb1, offset 0x538\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb2, offset 0x541\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb3, offset 0x54b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x552\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb5, offset 0x560\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb6, offset 0x56d\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb7, offset 0x57a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb8, offset 0x583\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb9, offset 0x587\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xba, offset 0x596\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x59e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbc, offset 0x5a9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbe, offset 0x5b8\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c0\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc0, offset 0x5c9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xc1, offset 0x5d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc2, offset 0x5d6\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5e2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc4, offset 0x5eb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc5, offset 0x5ee\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f3\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc7, offset 0x5fe\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xc8, offset 0x607\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xc9, offset 0x613\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xca, offset 0x616\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcb, offset 0x620\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xcc, offset 0x629\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xcd, offset 0x635\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xce, offset 0x642\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcf, offset 0x64f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd0, offset 0x65d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd1, offset 0x664\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xd2, offset 0x667\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xd3, offset 0x66c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xd4, offset 0x66f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xd5, offset 0x672\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd6, offset 0x675\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xd7, offset 0x67c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xd8, offset 0x683\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd9, offset 0x687\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xda, offset 0x692\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xdb, offset 0x695\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdc, offset 0x698\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xdd, offset 0x69b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xde, offset 0x6a1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdf, offset 0x6a6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xe0, offset 0x6aa\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe1, offset 0x6ad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe2, offset 0x6b0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe3, offset 0x6b3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x6b6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xe5, offset 0x6b9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe6, offset 0x6be\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xe7, offset 0x6c8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe8, offset 0x6cb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe9, offset 0x6cf\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xea, offset 0x6de\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xeb, offset 0x6ea\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xec, offset 0x6ee\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xed, offset 0x6f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xee, offset 0x6f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xef, offset 0x6fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf0, offset 0x700\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf1, offset 0x705\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf2, offset 0x70e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xf3, offset 0x719\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xf4, offset 0x71f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf5, offset 0x727\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0xf6, offset 0x72a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xf7, offset 0x72d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xf8, offset 0x731\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf9, offset 0x735\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xfa, offset 0x73b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfb, offset 0x741\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xfc, offset 0x746\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xfd, offset 0x749\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0xfe, offset 0x759\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xff, offset 0x760\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x100, offset 0x763\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0xbf},\n\t// Block 0x101, offset 0x766\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x102, offset 0x76a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x103, offset 0x770\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x104, offset 0x775\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x105, offset 0x77a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x106, offset 0x782\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x107, offset 0x787\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x108, offset 0x78b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x109, offset 0x78f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x10a, offset 0x792\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x10b, offset 0x795\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10c, offset 0x799\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x10d, offset 0x79d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x10e, offset 0x7a0\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0x10f, offset 0x7b0\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x110, offset 0x7c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x111, offset 0x7c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x112, offset 0x7c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x113, offset 0x7ca\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42466 bytes (41KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build !go1.10\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 28600 bytes (27.93 KiB). Checksum: 95575047b5d8fff.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 124:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 124\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 126 blocks, 8064 entries, 16128 bytes\n// The third block is the zero block.\nvar idnaValues = [8064]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3008, 0x541: 0x3308, 0x542: 0x3308, 0x543: 0x3308, 0x544: 0x3308, 0x545: 0x3308,\n\t0x546: 0x3308, 0x547: 0x3308, 0x548: 0x3308, 0x549: 0x3008, 0x54a: 0x3008, 0x54b: 0x3008,\n\t0x54c: 0x3008, 0x54d: 0x3b08, 0x54e: 0x3008, 0x54f: 0x3008, 0x550: 0x0008, 0x551: 0x3308,\n\t0x552: 0x3308, 0x553: 0x3308, 0x554: 0x3308, 0x555: 0x3308, 0x556: 0x3308, 0x557: 0x3308,\n\t0x558: 0x04c9, 0x559: 0x0501, 0x55a: 0x0539, 0x55b: 0x0571, 0x55c: 0x05a9, 0x55d: 0x05e1,\n\t0x55e: 0x0619, 0x55f: 0x0651, 0x560: 0x0008, 0x561: 0x0008, 0x562: 0x3308, 0x563: 0x3308,\n\t0x564: 0x0018, 0x565: 0x0018, 0x566: 0x0008, 0x567: 0x0008, 0x568: 0x0008, 0x569: 0x0008,\n\t0x56a: 0x0008, 0x56b: 0x0008, 0x56c: 0x0008, 0x56d: 0x0008, 0x56e: 0x0008, 0x56f: 0x0008,\n\t0x570: 0x0018, 0x571: 0x0008, 0x572: 0x0008, 0x573: 0x0008, 0x574: 0x0008, 0x575: 0x0008,\n\t0x576: 0x0008, 0x577: 0x0008, 0x578: 0x0008, 0x579: 0x0008, 0x57a: 0x0008, 0x57b: 0x0008,\n\t0x57c: 0x0008, 0x57d: 0x0008, 0x57e: 0x0008, 0x57f: 0x0008,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0008, 0x581: 0x3308, 0x582: 0x3008, 0x583: 0x3008, 0x584: 0x0040, 0x585: 0x0008,\n\t0x586: 0x0008, 0x587: 0x0008, 0x588: 0x0008, 0x589: 0x0008, 0x58a: 0x0008, 0x58b: 0x0008,\n\t0x58c: 0x0008, 0x58d: 0x0040, 0x58e: 0x0040, 0x58f: 0x0008, 0x590: 0x0008, 0x591: 0x0040,\n\t0x592: 0x0040, 0x593: 0x0008, 0x594: 0x0008, 0x595: 0x0008, 0x596: 0x0008, 0x597: 0x0008,\n\t0x598: 0x0008, 0x599: 0x0008, 0x59a: 0x0008, 0x59b: 0x0008, 0x59c: 0x0008, 0x59d: 0x0008,\n\t0x59e: 0x0008, 0x59f: 0x0008, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x0008, 0x5a3: 0x0008,\n\t0x5a4: 0x0008, 0x5a5: 0x0008, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0040,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0008, 0x5b1: 0x0040, 0x5b2: 0x0008, 0x5b3: 0x0040, 0x5b4: 0x0040, 0x5b5: 0x0040,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0040, 0x5bb: 0x0040,\n\t0x5bc: 0x3308, 0x5bd: 0x0008, 0x5be: 0x3008, 0x5bf: 0x3008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x0040,\n\t0x5c6: 0x0040, 0x5c7: 0x3008, 0x5c8: 0x3008, 0x5c9: 0x0040, 0x5ca: 0x0040, 0x5cb: 0x3008,\n\t0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x0008, 0x5cf: 0x0040, 0x5d0: 0x0040, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0040, 0x5d4: 0x0040, 0x5d5: 0x0040, 0x5d6: 0x0040, 0x5d7: 0x3008,\n\t0x5d8: 0x0040, 0x5d9: 0x0040, 0x5da: 0x0040, 0x5db: 0x0040, 0x5dc: 0x0689, 0x5dd: 0x06c1,\n\t0x5de: 0x0040, 0x5df: 0x06f9, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308,\n\t0x5e4: 0x0040, 0x5e5: 0x0040, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0008, 0x5f2: 0x0018, 0x5f3: 0x0018, 0x5f4: 0x0018, 0x5f5: 0x0018,\n\t0x5f6: 0x0018, 0x5f7: 0x0018, 0x5f8: 0x0018, 0x5f9: 0x0018, 0x5fa: 0x0018, 0x5fb: 0x0018,\n\t0x5fc: 0x0040, 0x5fd: 0x0040, 0x5fe: 0x0040, 0x5ff: 0x0040,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0040, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008,\n\t0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0040,\n\t0x60c: 0x0040, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008,\n\t0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008,\n\t0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008,\n\t0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0731, 0x634: 0x0040, 0x635: 0x0008,\n\t0x636: 0x0769, 0x637: 0x0040, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040,\n\t0x63c: 0x3308, 0x63d: 0x0040, 0x63e: 0x3008, 0x63f: 0x3008,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x0040, 0x644: 0x0040, 0x645: 0x0040,\n\t0x646: 0x0040, 0x647: 0x3308, 0x648: 0x3308, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3308,\n\t0x64c: 0x3308, 0x64d: 0x3b08, 0x64e: 0x0040, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x3308,\n\t0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x0040,\n\t0x658: 0x0040, 0x659: 0x07a1, 0x65a: 0x07d9, 0x65b: 0x0811, 0x65c: 0x0008, 0x65d: 0x0040,\n\t0x65e: 0x0849, 0x65f: 0x0040, 0x660: 0x0040, 0x661: 0x0040, 0x662: 0x0040, 0x663: 0x0040,\n\t0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x3308, 0x671: 0x3308, 0x672: 0x0008, 0x673: 0x0008, 0x674: 0x0008, 0x675: 0x3308,\n\t0x676: 0x0040, 0x677: 0x0040, 0x678: 0x0040, 0x679: 0x0040, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x0040, 0x67d: 0x0040, 0x67e: 0x0040, 0x67f: 0x0040,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008,\n\t0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0008,\n\t0x68c: 0x0008, 0x68d: 0x0008, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0008,\n\t0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008,\n\t0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008,\n\t0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008,\n\t0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0040, 0x6b5: 0x0008,\n\t0x6b6: 0x0008, 0x6b7: 0x0008, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x3308, 0x6bd: 0x0008, 0x6be: 0x3008, 0x6bf: 0x3008,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3308, 0x6c4: 0x3308, 0x6c5: 0x3308,\n\t0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x3008, 0x6ca: 0x0040, 0x6cb: 0x3008,\n\t0x6cc: 0x3008, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0008, 0x6d1: 0x0040,\n\t0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040,\n\t0x6d8: 0x0040, 0x6d9: 0x0040, 0x6da: 0x0040, 0x6db: 0x0040, 0x6dc: 0x0040, 0x6dd: 0x0040,\n\t0x6de: 0x0040, 0x6df: 0x0040, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x3308, 0x6e3: 0x3308,\n\t0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0018, 0x6f1: 0x0018, 0x6f2: 0x0040, 0x6f3: 0x0040, 0x6f4: 0x0040, 0x6f5: 0x0040,\n\t0x6f6: 0x0040, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3008, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008,\n\t0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008,\n\t0x70c: 0x0008, 0x70d: 0x0040, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008,\n\t0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008,\n\t0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008,\n\t0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008,\n\t0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040,\n\t0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x0040,\n\t0x746: 0x0040, 0x747: 0x3008, 0x748: 0x3008, 0x749: 0x0040, 0x74a: 0x0040, 0x74b: 0x3008,\n\t0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0040, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x3308, 0x757: 0x3008,\n\t0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0881, 0x75d: 0x08b9,\n\t0x75e: 0x0040, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308,\n\t0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0018, 0x771: 0x0008, 0x772: 0x0018, 0x773: 0x0018, 0x774: 0x0018, 0x775: 0x0018,\n\t0x776: 0x0018, 0x777: 0x0018, 0x778: 0x0040, 0x779: 0x0040, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x0040, 0x77d: 0x0040, 0x77e: 0x0040, 0x77f: 0x0040,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0040, 0x781: 0x0040, 0x782: 0x3308, 0x783: 0x0008, 0x784: 0x0040, 0x785: 0x0008,\n\t0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0040,\n\t0x78c: 0x0040, 0x78d: 0x0040, 0x78e: 0x0008, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040,\n\t0x792: 0x0008, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0040, 0x797: 0x0040,\n\t0x798: 0x0040, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0040, 0x79c: 0x0008, 0x79d: 0x0040,\n\t0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0040, 0x7a1: 0x0040, 0x7a2: 0x0040, 0x7a3: 0x0008,\n\t0x7a4: 0x0008, 0x7a5: 0x0040, 0x7a6: 0x0040, 0x7a7: 0x0040, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0040, 0x7ac: 0x0040, 0x7ad: 0x0040, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0008, 0x7b1: 0x0008, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0008, 0x7b5: 0x0008,\n\t0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x3008, 0x7bf: 0x3008,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3308, 0x7c1: 0x3008, 0x7c2: 0x3008, 0x7c3: 0x3008, 0x7c4: 0x3008, 0x7c5: 0x0040,\n\t0x7c6: 0x3308, 0x7c7: 0x3308, 0x7c8: 0x3308, 0x7c9: 0x0040, 0x7ca: 0x3308, 0x7cb: 0x3308,\n\t0x7cc: 0x3308, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040,\n\t0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x0040,\n\t0x7d8: 0x0008, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0040, 0x7dd: 0x0040,\n\t0x7de: 0x0040, 0x7df: 0x0040, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308,\n\t0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0040, 0x7f1: 0x0040, 0x7f2: 0x0040, 0x7f3: 0x0040, 0x7f4: 0x0040, 0x7f5: 0x0040,\n\t0x7f6: 0x0040, 0x7f7: 0x0040, 0x7f8: 0x0018, 0x7f9: 0x0018, 0x7fa: 0x0018, 0x7fb: 0x0018,\n\t0x7fc: 0x0018, 0x7fd: 0x0018, 0x7fe: 0x0018, 0x7ff: 0x0018,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0008, 0x801: 0x3308, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x0040, 0x805: 0x0008,\n\t0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0008,\n\t0x80c: 0x0008, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040,\n\t0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0008, 0x817: 0x0008,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0008, 0x81c: 0x0008, 0x81d: 0x0008,\n\t0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x0008, 0x823: 0x0008,\n\t0x824: 0x0008, 0x825: 0x0008, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0040,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0040, 0x835: 0x0008,\n\t0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040,\n\t0x83c: 0x3308, 0x83d: 0x0008, 0x83e: 0x3008, 0x83f: 0x3308,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x3008, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040,\n\t0x846: 0x3308, 0x847: 0x3008, 0x848: 0x3008, 0x849: 0x0040, 0x84a: 0x3008, 0x84b: 0x3008,\n\t0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040,\n\t0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3008, 0x856: 0x3008, 0x857: 0x0040,\n\t0x858: 0x0040, 0x859: 0x0040, 0x85a: 0x0040, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0040,\n\t0x85e: 0x0008, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308,\n\t0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0040, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040,\n\t0x876: 0x0040, 0x877: 0x0040, 0x878: 0x0040, 0x879: 0x0040, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x0040, 0x87d: 0x0040, 0x87e: 0x0040, 0x87f: 0x0040,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3308, 0x882: 0x3308, 0x883: 0x3308, 0x884: 0x3308, 0x885: 0x0040,\n\t0x886: 0x3008, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3008, 0x88d: 0x3b08, 0x88e: 0x0008, 0x88f: 0x0018, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x3008,\n\t0x898: 0x0018, 0x899: 0x0018, 0x89a: 0x0018, 0x89b: 0x0018, 0x89c: 0x0018, 0x89d: 0x0018,\n\t0x89e: 0x0018, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0018, 0x8b1: 0x0018, 0x8b2: 0x0018, 0x8b3: 0x0018, 0x8b4: 0x0018, 0x8b5: 0x0018,\n\t0x8b6: 0x0018, 0x8b7: 0x0018, 0x8b8: 0x0018, 0x8b9: 0x0018, 0x8ba: 0x0008, 0x8bb: 0x0008,\n\t0x8bc: 0x0008, 0x8bd: 0x0008, 0x8be: 0x0008, 0x8bf: 0x0008,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0040, 0x8c1: 0x0008, 0x8c2: 0x0008, 0x8c3: 0x0040, 0x8c4: 0x0008, 0x8c5: 0x0040,\n\t0x8c6: 0x0040, 0x8c7: 0x0008, 0x8c8: 0x0008, 0x8c9: 0x0040, 0x8ca: 0x0008, 0x8cb: 0x0040,\n\t0x8cc: 0x0040, 0x8cd: 0x0008, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x0008,\n\t0x8d8: 0x0040, 0x8d9: 0x0008, 0x8da: 0x0008, 0x8db: 0x0008, 0x8dc: 0x0008, 0x8dd: 0x0008,\n\t0x8de: 0x0008, 0x8df: 0x0008, 0x8e0: 0x0040, 0x8e1: 0x0008, 0x8e2: 0x0008, 0x8e3: 0x0008,\n\t0x8e4: 0x0040, 0x8e5: 0x0008, 0x8e6: 0x0040, 0x8e7: 0x0008, 0x8e8: 0x0040, 0x8e9: 0x0040,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0040, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0008, 0x8f1: 0x3308, 0x8f2: 0x0008, 0x8f3: 0x0929, 0x8f4: 0x3308, 0x8f5: 0x3308,\n\t0x8f6: 0x3308, 0x8f7: 0x3308, 0x8f8: 0x3308, 0x8f9: 0x3308, 0x8fa: 0x0040, 0x8fb: 0x3308,\n\t0x8fc: 0x3308, 0x8fd: 0x0008, 0x8fe: 0x0040, 0x8ff: 0x0040,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0008, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x09d1, 0x904: 0x0008, 0x905: 0x0008,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0040, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0008,\n\t0x90c: 0x0008, 0x90d: 0x0a09, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0a41, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0a79,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0ab1, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0008, 0x925: 0x0008, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0ae9,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0040, 0x92e: 0x0040, 0x92f: 0x0040,\n\t0x930: 0x0040, 0x931: 0x3308, 0x932: 0x3308, 0x933: 0x0b21, 0x934: 0x3308, 0x935: 0x0b59,\n\t0x936: 0x0b91, 0x937: 0x0bc9, 0x938: 0x0c19, 0x939: 0x0c51, 0x93a: 0x3308, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x3308, 0x93e: 0x3308, 0x93f: 0x3008,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x3308, 0x941: 0x0ca1, 0x942: 0x3308, 0x943: 0x3308, 0x944: 0x3b08, 0x945: 0x0018,\n\t0x946: 0x3308, 0x947: 0x3308, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x3308, 0x94e: 0x3308, 0x94f: 0x3308, 0x950: 0x3308, 0x951: 0x3308,\n\t0x952: 0x3308, 0x953: 0x0cd9, 0x954: 0x3308, 0x955: 0x3308, 0x956: 0x3308, 0x957: 0x3308,\n\t0x958: 0x0040, 0x959: 0x3308, 0x95a: 0x3308, 0x95b: 0x3308, 0x95c: 0x3308, 0x95d: 0x0d11,\n\t0x95e: 0x3308, 0x95f: 0x3308, 0x960: 0x3308, 0x961: 0x3308, 0x962: 0x0d49, 0x963: 0x3308,\n\t0x964: 0x3308, 0x965: 0x3308, 0x966: 0x3308, 0x967: 0x0d81, 0x968: 0x3308, 0x969: 0x3308,\n\t0x96a: 0x3308, 0x96b: 0x3308, 0x96c: 0x0db9, 0x96d: 0x3308, 0x96e: 0x3308, 0x96f: 0x3308,\n\t0x970: 0x3308, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x3308, 0x974: 0x3308, 0x975: 0x3308,\n\t0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x0df1, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x0040, 0x97e: 0x0018, 0x97f: 0x0018,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0008, 0x984: 0x0008, 0x985: 0x0008,\n\t0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x0008, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008,\n\t0x992: 0x0008, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0008,\n\t0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0008, 0x99d: 0x0008,\n\t0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008,\n\t0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0008,\n\t0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0039, 0x9ad: 0x0ed1, 0x9ae: 0x0ee9, 0x9af: 0x0008,\n\t0x9b0: 0x0ef9, 0x9b1: 0x0f09, 0x9b2: 0x0f19, 0x9b3: 0x0f31, 0x9b4: 0x0249, 0x9b5: 0x0f41,\n\t0x9b6: 0x0259, 0x9b7: 0x0f51, 0x9b8: 0x0359, 0x9b9: 0x0f61, 0x9ba: 0x0f71, 0x9bb: 0x0008,\n\t0x9bc: 0x00d9, 0x9bd: 0x0f81, 0x9be: 0x0f99, 0x9bf: 0x0269,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0fa9, 0x9c1: 0x0fb9, 0x9c2: 0x0279, 0x9c3: 0x0039, 0x9c4: 0x0fc9, 0x9c5: 0x0fe1,\n\t0x9c6: 0x059d, 0x9c7: 0x0ee9, 0x9c8: 0x0ef9, 0x9c9: 0x0f09, 0x9ca: 0x0ff9, 0x9cb: 0x1011,\n\t0x9cc: 0x1029, 0x9cd: 0x0f31, 0x9ce: 0x0008, 0x9cf: 0x0f51, 0x9d0: 0x0f61, 0x9d1: 0x1041,\n\t0x9d2: 0x00d9, 0x9d3: 0x1059, 0x9d4: 0x05b5, 0x9d5: 0x05b5, 0x9d6: 0x0f99, 0x9d7: 0x0fa9,\n\t0x9d8: 0x0fb9, 0x9d9: 0x059d, 0x9da: 0x1071, 0x9db: 0x1089, 0x9dc: 0x05cd, 0x9dd: 0x1099,\n\t0x9de: 0x10b1, 0x9df: 0x10c9, 0x9e0: 0x10e1, 0x9e1: 0x10f9, 0x9e2: 0x0f41, 0x9e3: 0x0269,\n\t0x9e4: 0x0fb9, 0x9e5: 0x1089, 0x9e6: 0x1099, 0x9e7: 0x10b1, 0x9e8: 0x1111, 0x9e9: 0x10e1,\n\t0x9ea: 0x10f9, 0x9eb: 0x0008, 0x9ec: 0x0008, 0x9ed: 0x0008, 0x9ee: 0x0008, 0x9ef: 0x0008,\n\t0x9f0: 0x0008, 0x9f1: 0x0008, 0x9f2: 0x0008, 0x9f3: 0x0008, 0x9f4: 0x0008, 0x9f5: 0x0008,\n\t0x9f6: 0x0008, 0x9f7: 0x0008, 0x9f8: 0x1129, 0x9f9: 0x0008, 0x9fa: 0x0008, 0x9fb: 0x0008,\n\t0x9fc: 0x0008, 0x9fd: 0x0008, 0x9fe: 0x0008, 0x9ff: 0x0008,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008,\n\t0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008,\n\t0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008,\n\t0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008,\n\t0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x1141, 0xa1c: 0x1159, 0xa1d: 0x1169,\n\t0xa1e: 0x1181, 0xa1f: 0x1029, 0xa20: 0x1199, 0xa21: 0x11a9, 0xa22: 0x11c1, 0xa23: 0x11d9,\n\t0xa24: 0x11f1, 0xa25: 0x1209, 0xa26: 0x1221, 0xa27: 0x05e5, 0xa28: 0x1239, 0xa29: 0x1251,\n\t0xa2a: 0xe17d, 0xa2b: 0x1269, 0xa2c: 0x1281, 0xa2d: 0x1299, 0xa2e: 0x12b1, 0xa2f: 0x12c9,\n\t0xa30: 0x12e1, 0xa31: 0x12f9, 0xa32: 0x1311, 0xa33: 0x1329, 0xa34: 0x1341, 0xa35: 0x1359,\n\t0xa36: 0x1371, 0xa37: 0x1389, 0xa38: 0x05fd, 0xa39: 0x13a1, 0xa3a: 0x13b9, 0xa3b: 0x13d1,\n\t0xa3c: 0x13e1, 0xa3d: 0x13f9, 0xa3e: 0x1411, 0xa3f: 0x1429,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0xe00d, 0xa41: 0x0008, 0xa42: 0xe00d, 0xa43: 0x0008, 0xa44: 0xe00d, 0xa45: 0x0008,\n\t0xa46: 0xe00d, 0xa47: 0x0008, 0xa48: 0xe00d, 0xa49: 0x0008, 0xa4a: 0xe00d, 0xa4b: 0x0008,\n\t0xa4c: 0xe00d, 0xa4d: 0x0008, 0xa4e: 0xe00d, 0xa4f: 0x0008, 0xa50: 0xe00d, 0xa51: 0x0008,\n\t0xa52: 0xe00d, 0xa53: 0x0008, 0xa54: 0xe00d, 0xa55: 0x0008, 0xa56: 0xe00d, 0xa57: 0x0008,\n\t0xa58: 0xe00d, 0xa59: 0x0008, 0xa5a: 0xe00d, 0xa5b: 0x0008, 0xa5c: 0xe00d, 0xa5d: 0x0008,\n\t0xa5e: 0xe00d, 0xa5f: 0x0008, 0xa60: 0xe00d, 0xa61: 0x0008, 0xa62: 0xe00d, 0xa63: 0x0008,\n\t0xa64: 0xe00d, 0xa65: 0x0008, 0xa66: 0xe00d, 0xa67: 0x0008, 0xa68: 0xe00d, 0xa69: 0x0008,\n\t0xa6a: 0xe00d, 0xa6b: 0x0008, 0xa6c: 0xe00d, 0xa6d: 0x0008, 0xa6e: 0xe00d, 0xa6f: 0x0008,\n\t0xa70: 0xe00d, 0xa71: 0x0008, 0xa72: 0xe00d, 0xa73: 0x0008, 0xa74: 0xe00d, 0xa75: 0x0008,\n\t0xa76: 0xe00d, 0xa77: 0x0008, 0xa78: 0xe00d, 0xa79: 0x0008, 0xa7a: 0xe00d, 0xa7b: 0x0008,\n\t0xa7c: 0xe00d, 0xa7d: 0x0008, 0xa7e: 0xe00d, 0xa7f: 0x0008,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008,\n\t0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0615, 0xa9b: 0x0635, 0xa9c: 0x0008, 0xa9d: 0x0008,\n\t0xa9e: 0x1441, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0008, 0xac1: 0x0008, 0xac2: 0x0008, 0xac3: 0x0008, 0xac4: 0x0008, 0xac5: 0x0008,\n\t0xac6: 0x0040, 0xac7: 0x0040, 0xac8: 0xe045, 0xac9: 0xe045, 0xaca: 0xe045, 0xacb: 0xe045,\n\t0xacc: 0xe045, 0xacd: 0xe045, 0xace: 0x0040, 0xacf: 0x0040, 0xad0: 0x0008, 0xad1: 0x0008,\n\t0xad2: 0x0008, 0xad3: 0x0008, 0xad4: 0x0008, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0040, 0xad9: 0xe045, 0xada: 0x0040, 0xadb: 0xe045, 0xadc: 0x0040, 0xadd: 0xe045,\n\t0xade: 0x0040, 0xadf: 0xe045, 0xae0: 0x0008, 0xae1: 0x0008, 0xae2: 0x0008, 0xae3: 0x0008,\n\t0xae4: 0x0008, 0xae5: 0x0008, 0xae6: 0x0008, 0xae7: 0x0008, 0xae8: 0xe045, 0xae9: 0xe045,\n\t0xaea: 0xe045, 0xaeb: 0xe045, 0xaec: 0xe045, 0xaed: 0xe045, 0xaee: 0xe045, 0xaef: 0xe045,\n\t0xaf0: 0x0008, 0xaf1: 0x1459, 0xaf2: 0x0008, 0xaf3: 0x1471, 0xaf4: 0x0008, 0xaf5: 0x1489,\n\t0xaf6: 0x0008, 0xaf7: 0x14a1, 0xaf8: 0x0008, 0xaf9: 0x14b9, 0xafa: 0x0008, 0xafb: 0x14d1,\n\t0xafc: 0x0008, 0xafd: 0x14e9, 0xafe: 0x0040, 0xaff: 0x0040,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x1501, 0xb01: 0x1531, 0xb02: 0x1561, 0xb03: 0x1591, 0xb04: 0x15c1, 0xb05: 0x15f1,\n\t0xb06: 0x1621, 0xb07: 0x1651, 0xb08: 0x1501, 0xb09: 0x1531, 0xb0a: 0x1561, 0xb0b: 0x1591,\n\t0xb0c: 0x15c1, 0xb0d: 0x15f1, 0xb0e: 0x1621, 0xb0f: 0x1651, 0xb10: 0x1681, 0xb11: 0x16b1,\n\t0xb12: 0x16e1, 0xb13: 0x1711, 0xb14: 0x1741, 0xb15: 0x1771, 0xb16: 0x17a1, 0xb17: 0x17d1,\n\t0xb18: 0x1681, 0xb19: 0x16b1, 0xb1a: 0x16e1, 0xb1b: 0x1711, 0xb1c: 0x1741, 0xb1d: 0x1771,\n\t0xb1e: 0x17a1, 0xb1f: 0x17d1, 0xb20: 0x1801, 0xb21: 0x1831, 0xb22: 0x1861, 0xb23: 0x1891,\n\t0xb24: 0x18c1, 0xb25: 0x18f1, 0xb26: 0x1921, 0xb27: 0x1951, 0xb28: 0x1801, 0xb29: 0x1831,\n\t0xb2a: 0x1861, 0xb2b: 0x1891, 0xb2c: 0x18c1, 0xb2d: 0x18f1, 0xb2e: 0x1921, 0xb2f: 0x1951,\n\t0xb30: 0x0008, 0xb31: 0x0008, 0xb32: 0x1981, 0xb33: 0x19b1, 0xb34: 0x19d9, 0xb35: 0x0040,\n\t0xb36: 0x0008, 0xb37: 0x1a01, 0xb38: 0xe045, 0xb39: 0xe045, 0xb3a: 0x064d, 0xb3b: 0x1459,\n\t0xb3c: 0x19b1, 0xb3d: 0x0666, 0xb3e: 0x1a31, 0xb3f: 0x0686,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06a6, 0xb41: 0x1a4a, 0xb42: 0x1a79, 0xb43: 0x1aa9, 0xb44: 0x1ad1, 0xb45: 0x0040,\n\t0xb46: 0x0008, 0xb47: 0x1af9, 0xb48: 0x06c5, 0xb49: 0x1471, 0xb4a: 0x06dd, 0xb4b: 0x1489,\n\t0xb4c: 0x1aa9, 0xb4d: 0x1b2a, 0xb4e: 0x1b5a, 0xb4f: 0x1b8a, 0xb50: 0x0008, 0xb51: 0x0008,\n\t0xb52: 0x0008, 0xb53: 0x1bb9, 0xb54: 0x0040, 0xb55: 0x0040, 0xb56: 0x0008, 0xb57: 0x0008,\n\t0xb58: 0xe045, 0xb59: 0xe045, 0xb5a: 0x06f5, 0xb5b: 0x14a1, 0xb5c: 0x0040, 0xb5d: 0x1bd2,\n\t0xb5e: 0x1c02, 0xb5f: 0x1c32, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x1c61,\n\t0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045,\n\t0xb6a: 0x070d, 0xb6b: 0x14d1, 0xb6c: 0xe04d, 0xb6d: 0x1c7a, 0xb6e: 0x03d2, 0xb6f: 0x1caa,\n\t0xb70: 0x0040, 0xb71: 0x0040, 0xb72: 0x1cb9, 0xb73: 0x1ce9, 0xb74: 0x1d11, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1d39, 0xb78: 0x0725, 0xb79: 0x14b9, 0xb7a: 0x0515, 0xb7b: 0x14e9,\n\t0xb7c: 0x1ce9, 0xb7d: 0x073e, 0xb7e: 0x075e, 0xb7f: 0x0040,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x000a, 0xb81: 0x000a, 0xb82: 0x000a, 0xb83: 0x000a, 0xb84: 0x000a, 0xb85: 0x000a,\n\t0xb86: 0x000a, 0xb87: 0x000a, 0xb88: 0x000a, 0xb89: 0x000a, 0xb8a: 0x000a, 0xb8b: 0x03c0,\n\t0xb8c: 0x0003, 0xb8d: 0x0003, 0xb8e: 0x0340, 0xb8f: 0x0b40, 0xb90: 0x0018, 0xb91: 0xe00d,\n\t0xb92: 0x0018, 0xb93: 0x0018, 0xb94: 0x0018, 0xb95: 0x0018, 0xb96: 0x0018, 0xb97: 0x077e,\n\t0xb98: 0x0018, 0xb99: 0x0018, 0xb9a: 0x0018, 0xb9b: 0x0018, 0xb9c: 0x0018, 0xb9d: 0x0018,\n\t0xb9e: 0x0018, 0xb9f: 0x0018, 0xba0: 0x0018, 0xba1: 0x0018, 0xba2: 0x0018, 0xba3: 0x0018,\n\t0xba4: 0x0040, 0xba5: 0x0040, 0xba6: 0x0040, 0xba7: 0x0018, 0xba8: 0x0040, 0xba9: 0x0040,\n\t0xbaa: 0x0340, 0xbab: 0x0340, 0xbac: 0x0340, 0xbad: 0x0340, 0xbae: 0x0340, 0xbaf: 0x000a,\n\t0xbb0: 0x0018, 0xbb1: 0x0018, 0xbb2: 0x0018, 0xbb3: 0x1d69, 0xbb4: 0x1da1, 0xbb5: 0x0018,\n\t0xbb6: 0x1df1, 0xbb7: 0x1e29, 0xbb8: 0x0018, 0xbb9: 0x0018, 0xbba: 0x0018, 0xbbb: 0x0018,\n\t0xbbc: 0x1e7a, 0xbbd: 0x0018, 0xbbe: 0x079e, 0xbbf: 0x0018,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x0018, 0xbc1: 0x0018, 0xbc2: 0x0018, 0xbc3: 0x0018, 0xbc4: 0x0018, 0xbc5: 0x0018,\n\t0xbc6: 0x0018, 0xbc7: 0x1e92, 0xbc8: 0x1eaa, 0xbc9: 0x1ec2, 0xbca: 0x0018, 0xbcb: 0x0018,\n\t0xbcc: 0x0018, 0xbcd: 0x0018, 0xbce: 0x0018, 0xbcf: 0x0018, 0xbd0: 0x0018, 0xbd1: 0x0018,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x1ed9,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x000a, 0xbe0: 0x03c0, 0xbe1: 0x0340, 0xbe2: 0x0340, 0xbe3: 0x0340,\n\t0xbe4: 0x03c0, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0040, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x0340,\n\t0xbf0: 0x1f41, 0xbf1: 0x0f41, 0xbf2: 0x0040, 0xbf3: 0x0040, 0xbf4: 0x1f51, 0xbf5: 0x1f61,\n\t0xbf6: 0x1f71, 0xbf7: 0x1f81, 0xbf8: 0x1f91, 0xbf9: 0x1fa1, 0xbfa: 0x1fb2, 0xbfb: 0x07bd,\n\t0xbfc: 0x1fc2, 0xbfd: 0x1fd2, 0xbfe: 0x1fe2, 0xbff: 0x0f71,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1f41, 0xc01: 0x00c9, 0xc02: 0x0069, 0xc03: 0x0079, 0xc04: 0x1f51, 0xc05: 0x1f61,\n\t0xc06: 0x1f71, 0xc07: 0x1f81, 0xc08: 0x1f91, 0xc09: 0x1fa1, 0xc0a: 0x1fb2, 0xc0b: 0x07d5,\n\t0xc0c: 0x1fc2, 0xc0d: 0x1fd2, 0xc0e: 0x1fe2, 0xc0f: 0x0040, 0xc10: 0x0039, 0xc11: 0x0f09,\n\t0xc12: 0x00d9, 0xc13: 0x0369, 0xc14: 0x0ff9, 0xc15: 0x0249, 0xc16: 0x0f51, 0xc17: 0x0359,\n\t0xc18: 0x0f61, 0xc19: 0x0f71, 0xc1a: 0x0f99, 0xc1b: 0x01d9, 0xc1c: 0x0fa9, 0xc1d: 0x0040,\n\t0xc1e: 0x0040, 0xc1f: 0x0040, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018,\n\t0xc24: 0x0018, 0xc25: 0x0018, 0xc26: 0x0018, 0xc27: 0x0018, 0xc28: 0x1ff1, 0xc29: 0x0018,\n\t0xc2a: 0x0018, 0xc2b: 0x0018, 0xc2c: 0x0018, 0xc2d: 0x0018, 0xc2e: 0x0018, 0xc2f: 0x0018,\n\t0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0018, 0xc34: 0x0018, 0xc35: 0x0018,\n\t0xc36: 0x0018, 0xc37: 0x0018, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018,\n\t0xc3c: 0x0018, 0xc3d: 0x0018, 0xc3e: 0x0018, 0xc3f: 0x0040,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x07ee, 0xc41: 0x080e, 0xc42: 0x1159, 0xc43: 0x082d, 0xc44: 0x0018, 0xc45: 0x084e,\n\t0xc46: 0x086e, 0xc47: 0x1011, 0xc48: 0x0018, 0xc49: 0x088d, 0xc4a: 0x0f31, 0xc4b: 0x0249,\n\t0xc4c: 0x0249, 0xc4d: 0x0249, 0xc4e: 0x0249, 0xc4f: 0x2009, 0xc50: 0x0f41, 0xc51: 0x0f41,\n\t0xc52: 0x0359, 0xc53: 0x0359, 0xc54: 0x0018, 0xc55: 0x0f71, 0xc56: 0x2021, 0xc57: 0x0018,\n\t0xc58: 0x0018, 0xc59: 0x0f99, 0xc5a: 0x2039, 0xc5b: 0x0269, 0xc5c: 0x0269, 0xc5d: 0x0269,\n\t0xc5e: 0x0018, 0xc5f: 0x0018, 0xc60: 0x2049, 0xc61: 0x08ad, 0xc62: 0x2061, 0xc63: 0x0018,\n\t0xc64: 0x13d1, 0xc65: 0x0018, 0xc66: 0x2079, 0xc67: 0x0018, 0xc68: 0x13d1, 0xc69: 0x0018,\n\t0xc6a: 0x0f51, 0xc6b: 0x2091, 0xc6c: 0x0ee9, 0xc6d: 0x1159, 0xc6e: 0x0018, 0xc6f: 0x0f09,\n\t0xc70: 0x0f09, 0xc71: 0x1199, 0xc72: 0x0040, 0xc73: 0x0f61, 0xc74: 0x00d9, 0xc75: 0x20a9,\n\t0xc76: 0x20c1, 0xc77: 0x20d9, 0xc78: 0x20f1, 0xc79: 0x0f41, 0xc7a: 0x0018, 0xc7b: 0x08cd,\n\t0xc7c: 0x2109, 0xc7d: 0x10b1, 0xc7e: 0x10b1, 0xc7f: 0x2109,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x08ed, 0xc81: 0x0018, 0xc82: 0x0018, 0xc83: 0x0018, 0xc84: 0x0018, 0xc85: 0x0ef9,\n\t0xc86: 0x0ef9, 0xc87: 0x0f09, 0xc88: 0x0f41, 0xc89: 0x0259, 0xc8a: 0x0018, 0xc8b: 0x0018,\n\t0xc8c: 0x0018, 0xc8d: 0x0018, 0xc8e: 0x0008, 0xc8f: 0x0018, 0xc90: 0x2121, 0xc91: 0x2151,\n\t0xc92: 0x2181, 0xc93: 0x21b9, 0xc94: 0x21e9, 0xc95: 0x2219, 0xc96: 0x2249, 0xc97: 0x2279,\n\t0xc98: 0x22a9, 0xc99: 0x22d9, 0xc9a: 0x2309, 0xc9b: 0x2339, 0xc9c: 0x2369, 0xc9d: 0x2399,\n\t0xc9e: 0x23c9, 0xc9f: 0x23f9, 0xca0: 0x0f41, 0xca1: 0x2421, 0xca2: 0x0905, 0xca3: 0x2439,\n\t0xca4: 0x1089, 0xca5: 0x2451, 0xca6: 0x0925, 0xca7: 0x2469, 0xca8: 0x2491, 0xca9: 0x0369,\n\t0xcaa: 0x24a9, 0xcab: 0x0945, 0xcac: 0x0359, 0xcad: 0x1159, 0xcae: 0x0ef9, 0xcaf: 0x0f61,\n\t0xcb0: 0x0f41, 0xcb1: 0x2421, 0xcb2: 0x0965, 0xcb3: 0x2439, 0xcb4: 0x1089, 0xcb5: 0x2451,\n\t0xcb6: 0x0985, 0xcb7: 0x2469, 0xcb8: 0x2491, 0xcb9: 0x0369, 0xcba: 0x24a9, 0xcbb: 0x09a5,\n\t0xcbc: 0x0359, 0xcbd: 0x1159, 0xcbe: 0x0ef9, 0xcbf: 0x0f61,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0018, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0018,\n\t0xcc6: 0x0018, 0xcc7: 0x0018, 0xcc8: 0x0018, 0xcc9: 0x0018, 0xcca: 0x0018, 0xccb: 0x0040,\n\t0xccc: 0x0040, 0xccd: 0x0040, 0xcce: 0x0040, 0xccf: 0x0040, 0xcd0: 0x0040, 0xcd1: 0x0040,\n\t0xcd2: 0x0040, 0xcd3: 0x0040, 0xcd4: 0x0040, 0xcd5: 0x0040, 0xcd6: 0x0040, 0xcd7: 0x0040,\n\t0xcd8: 0x0040, 0xcd9: 0x0040, 0xcda: 0x0040, 0xcdb: 0x0040, 0xcdc: 0x0040, 0xcdd: 0x0040,\n\t0xcde: 0x0040, 0xcdf: 0x0040, 0xce0: 0x00c9, 0xce1: 0x0069, 0xce2: 0x0079, 0xce3: 0x1f51,\n\t0xce4: 0x1f61, 0xce5: 0x1f71, 0xce6: 0x1f81, 0xce7: 0x1f91, 0xce8: 0x1fa1, 0xce9: 0x2601,\n\t0xcea: 0x2619, 0xceb: 0x2631, 0xcec: 0x2649, 0xced: 0x2661, 0xcee: 0x2679, 0xcef: 0x2691,\n\t0xcf0: 0x26a9, 0xcf1: 0x26c1, 0xcf2: 0x26d9, 0xcf3: 0x26f1, 0xcf4: 0x0a06, 0xcf5: 0x0a26,\n\t0xcf6: 0x0a46, 0xcf7: 0x0a66, 0xcf8: 0x0a86, 0xcf9: 0x0aa6, 0xcfa: 0x0ac6, 0xcfb: 0x0ae6,\n\t0xcfc: 0x0b06, 0xcfd: 0x270a, 0xcfe: 0x2732, 0xcff: 0x275a,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x2782, 0xd01: 0x27aa, 0xd02: 0x27d2, 0xd03: 0x27fa, 0xd04: 0x2822, 0xd05: 0x284a,\n\t0xd06: 0x2872, 0xd07: 0x289a, 0xd08: 0x0040, 0xd09: 0x0040, 0xd0a: 0x0040, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0b26, 0xd1d: 0x0b46,\n\t0xd1e: 0x0b66, 0xd1f: 0x0b86, 0xd20: 0x0ba6, 0xd21: 0x0bc6, 0xd22: 0x0be6, 0xd23: 0x0c06,\n\t0xd24: 0x0c26, 0xd25: 0x0c46, 0xd26: 0x0c66, 0xd27: 0x0c86, 0xd28: 0x0ca6, 0xd29: 0x0cc6,\n\t0xd2a: 0x0ce6, 0xd2b: 0x0d06, 0xd2c: 0x0d26, 0xd2d: 0x0d46, 0xd2e: 0x0d66, 0xd2f: 0x0d86,\n\t0xd30: 0x0da6, 0xd31: 0x0dc6, 0xd32: 0x0de6, 0xd33: 0x0e06, 0xd34: 0x0e26, 0xd35: 0x0e46,\n\t0xd36: 0x0039, 0xd37: 0x0ee9, 0xd38: 0x1159, 0xd39: 0x0ef9, 0xd3a: 0x0f09, 0xd3b: 0x1199,\n\t0xd3c: 0x0f31, 0xd3d: 0x0249, 0xd3e: 0x0f41, 0xd3f: 0x0259,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0f51, 0xd41: 0x0359, 0xd42: 0x0f61, 0xd43: 0x0f71, 0xd44: 0x00d9, 0xd45: 0x0f99,\n\t0xd46: 0x2039, 0xd47: 0x0269, 0xd48: 0x01d9, 0xd49: 0x0fa9, 0xd4a: 0x0fb9, 0xd4b: 0x1089,\n\t0xd4c: 0x0279, 0xd4d: 0x0369, 0xd4e: 0x0289, 0xd4f: 0x13d1, 0xd50: 0x0039, 0xd51: 0x0ee9,\n\t0xd52: 0x1159, 0xd53: 0x0ef9, 0xd54: 0x0f09, 0xd55: 0x1199, 0xd56: 0x0f31, 0xd57: 0x0249,\n\t0xd58: 0x0f41, 0xd59: 0x0259, 0xd5a: 0x0f51, 0xd5b: 0x0359, 0xd5c: 0x0f61, 0xd5d: 0x0f71,\n\t0xd5e: 0x00d9, 0xd5f: 0x0f99, 0xd60: 0x2039, 0xd61: 0x0269, 0xd62: 0x01d9, 0xd63: 0x0fa9,\n\t0xd64: 0x0fb9, 0xd65: 0x1089, 0xd66: 0x0279, 0xd67: 0x0369, 0xd68: 0x0289, 0xd69: 0x13d1,\n\t0xd6a: 0x1f41, 0xd6b: 0x0018, 0xd6c: 0x0018, 0xd6d: 0x0018, 0xd6e: 0x0018, 0xd6f: 0x0018,\n\t0xd70: 0x0018, 0xd71: 0x0018, 0xd72: 0x0018, 0xd73: 0x0018, 0xd74: 0x0018, 0xd75: 0x0018,\n\t0xd76: 0x0018, 0xd77: 0x0018, 0xd78: 0x0018, 0xd79: 0x0018, 0xd7a: 0x0018, 0xd7b: 0x0018,\n\t0xd7c: 0x0018, 0xd7d: 0x0018, 0xd7e: 0x0018, 0xd7f: 0x0018,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0008, 0xd81: 0x0008, 0xd82: 0x0008, 0xd83: 0x0008, 0xd84: 0x0008, 0xd85: 0x0008,\n\t0xd86: 0x0008, 0xd87: 0x0008, 0xd88: 0x0008, 0xd89: 0x0008, 0xd8a: 0x0008, 0xd8b: 0x0008,\n\t0xd8c: 0x0008, 0xd8d: 0x0008, 0xd8e: 0x0008, 0xd8f: 0x0008, 0xd90: 0x0008, 0xd91: 0x0008,\n\t0xd92: 0x0008, 0xd93: 0x0008, 0xd94: 0x0008, 0xd95: 0x0008, 0xd96: 0x0008, 0xd97: 0x0008,\n\t0xd98: 0x0008, 0xd99: 0x0008, 0xd9a: 0x0008, 0xd9b: 0x0008, 0xd9c: 0x0008, 0xd9d: 0x0008,\n\t0xd9e: 0x0008, 0xd9f: 0x0040, 0xda0: 0xe00d, 0xda1: 0x0008, 0xda2: 0x2971, 0xda3: 0x0ebd,\n\t0xda4: 0x2989, 0xda5: 0x0008, 0xda6: 0x0008, 0xda7: 0xe07d, 0xda8: 0x0008, 0xda9: 0xe01d,\n\t0xdaa: 0x0008, 0xdab: 0xe03d, 0xdac: 0x0008, 0xdad: 0x0fe1, 0xdae: 0x1281, 0xdaf: 0x0fc9,\n\t0xdb0: 0x1141, 0xdb1: 0x0008, 0xdb2: 0xe00d, 0xdb3: 0x0008, 0xdb4: 0x0008, 0xdb5: 0xe01d,\n\t0xdb6: 0x0008, 0xdb7: 0x0008, 0xdb8: 0x0008, 0xdb9: 0x0008, 0xdba: 0x0008, 0xdbb: 0x0008,\n\t0xdbc: 0x0259, 0xdbd: 0x1089, 0xdbe: 0x29a1, 0xdbf: 0x29b9,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0xe00d, 0xdc1: 0x0008, 0xdc2: 0xe00d, 0xdc3: 0x0008, 0xdc4: 0xe00d, 0xdc5: 0x0008,\n\t0xdc6: 0xe00d, 0xdc7: 0x0008, 0xdc8: 0xe00d, 0xdc9: 0x0008, 0xdca: 0xe00d, 0xdcb: 0x0008,\n\t0xdcc: 0xe00d, 0xdcd: 0x0008, 0xdce: 0xe00d, 0xdcf: 0x0008, 0xdd0: 0xe00d, 0xdd1: 0x0008,\n\t0xdd2: 0xe00d, 0xdd3: 0x0008, 0xdd4: 0xe00d, 0xdd5: 0x0008, 0xdd6: 0xe00d, 0xdd7: 0x0008,\n\t0xdd8: 0xe00d, 0xdd9: 0x0008, 0xdda: 0xe00d, 0xddb: 0x0008, 0xddc: 0xe00d, 0xddd: 0x0008,\n\t0xdde: 0xe00d, 0xddf: 0x0008, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0xe00d, 0xde3: 0x0008,\n\t0xde4: 0x0008, 0xde5: 0x0018, 0xde6: 0x0018, 0xde7: 0x0018, 0xde8: 0x0018, 0xde9: 0x0018,\n\t0xdea: 0x0018, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0xe01d, 0xdee: 0x0008, 0xdef: 0x3308,\n\t0xdf0: 0x3308, 0xdf1: 0x3308, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0040, 0xdf5: 0x0040,\n\t0xdf6: 0x0040, 0xdf7: 0x0040, 0xdf8: 0x0040, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018,\n\t0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x26fd, 0xe01: 0x271d, 0xe02: 0x273d, 0xe03: 0x275d, 0xe04: 0x277d, 0xe05: 0x279d,\n\t0xe06: 0x27bd, 0xe07: 0x27dd, 0xe08: 0x27fd, 0xe09: 0x281d, 0xe0a: 0x283d, 0xe0b: 0x285d,\n\t0xe0c: 0x287d, 0xe0d: 0x289d, 0xe0e: 0x28bd, 0xe0f: 0x28dd, 0xe10: 0x28fd, 0xe11: 0x291d,\n\t0xe12: 0x293d, 0xe13: 0x295d, 0xe14: 0x297d, 0xe15: 0x299d, 0xe16: 0x0040, 0xe17: 0x0040,\n\t0xe18: 0x0040, 0xe19: 0x0040, 0xe1a: 0x0040, 0xe1b: 0x0040, 0xe1c: 0x0040, 0xe1d: 0x0040,\n\t0xe1e: 0x0040, 0xe1f: 0x0040, 0xe20: 0x0040, 0xe21: 0x0040, 0xe22: 0x0040, 0xe23: 0x0040,\n\t0xe24: 0x0040, 0xe25: 0x0040, 0xe26: 0x0040, 0xe27: 0x0040, 0xe28: 0x0040, 0xe29: 0x0040,\n\t0xe2a: 0x0040, 0xe2b: 0x0040, 0xe2c: 0x0040, 0xe2d: 0x0040, 0xe2e: 0x0040, 0xe2f: 0x0040,\n\t0xe30: 0x0040, 0xe31: 0x0040, 0xe32: 0x0040, 0xe33: 0x0040, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0040, 0xe3a: 0x0040, 0xe3b: 0x0040,\n\t0xe3c: 0x0040, 0xe3d: 0x0040, 0xe3e: 0x0040, 0xe3f: 0x0040,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a, 0xe41: 0x0018, 0xe42: 0x29d1, 0xe43: 0x0018, 0xe44: 0x0018, 0xe45: 0x0008,\n\t0xe46: 0x0008, 0xe47: 0x0008, 0xe48: 0x0018, 0xe49: 0x0018, 0xe4a: 0x0018, 0xe4b: 0x0018,\n\t0xe4c: 0x0018, 0xe4d: 0x0018, 0xe4e: 0x0018, 0xe4f: 0x0018, 0xe50: 0x0018, 0xe51: 0x0018,\n\t0xe52: 0x0018, 0xe53: 0x0018, 0xe54: 0x0018, 0xe55: 0x0018, 0xe56: 0x0018, 0xe57: 0x0018,\n\t0xe58: 0x0018, 0xe59: 0x0018, 0xe5a: 0x0018, 0xe5b: 0x0018, 0xe5c: 0x0018, 0xe5d: 0x0018,\n\t0xe5e: 0x0018, 0xe5f: 0x0018, 0xe60: 0x0018, 0xe61: 0x0018, 0xe62: 0x0018, 0xe63: 0x0018,\n\t0xe64: 0x0018, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018,\n\t0xe6a: 0x3308, 0xe6b: 0x3308, 0xe6c: 0x3308, 0xe6d: 0x3308, 0xe6e: 0x3018, 0xe6f: 0x3018,\n\t0xe70: 0x0018, 0xe71: 0x0018, 0xe72: 0x0018, 0xe73: 0x0018, 0xe74: 0x0018, 0xe75: 0x0018,\n\t0xe76: 0xe125, 0xe77: 0x0018, 0xe78: 0x29bd, 0xe79: 0x29dd, 0xe7a: 0x29fd, 0xe7b: 0x0018,\n\t0xe7c: 0x0008, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x2b3d, 0xe81: 0x2b5d, 0xe82: 0x2b7d, 0xe83: 0x2b9d, 0xe84: 0x2bbd, 0xe85: 0x2bdd,\n\t0xe86: 0x2bdd, 0xe87: 0x2bdd, 0xe88: 0x2bfd, 0xe89: 0x2bfd, 0xe8a: 0x2bfd, 0xe8b: 0x2bfd,\n\t0xe8c: 0x2c1d, 0xe8d: 0x2c1d, 0xe8e: 0x2c1d, 0xe8f: 0x2c3d, 0xe90: 0x2c5d, 0xe91: 0x2c5d,\n\t0xe92: 0x2a7d, 0xe93: 0x2a7d, 0xe94: 0x2c5d, 0xe95: 0x2c5d, 0xe96: 0x2c7d, 0xe97: 0x2c7d,\n\t0xe98: 0x2c5d, 0xe99: 0x2c5d, 0xe9a: 0x2a7d, 0xe9b: 0x2a7d, 0xe9c: 0x2c5d, 0xe9d: 0x2c5d,\n\t0xe9e: 0x2c3d, 0xe9f: 0x2c3d, 0xea0: 0x2c9d, 0xea1: 0x2c9d, 0xea2: 0x2cbd, 0xea3: 0x2cbd,\n\t0xea4: 0x0040, 0xea5: 0x2cdd, 0xea6: 0x2cfd, 0xea7: 0x2d1d, 0xea8: 0x2d1d, 0xea9: 0x2d3d,\n\t0xeaa: 0x2d5d, 0xeab: 0x2d7d, 0xeac: 0x2d9d, 0xead: 0x2dbd, 0xeae: 0x2ddd, 0xeaf: 0x2dfd,\n\t0xeb0: 0x2e1d, 0xeb1: 0x2e3d, 0xeb2: 0x2e3d, 0xeb3: 0x2e5d, 0xeb4: 0x2e7d, 0xeb5: 0x2e7d,\n\t0xeb6: 0x2e9d, 0xeb7: 0x2ebd, 0xeb8: 0x2e5d, 0xeb9: 0x2edd, 0xeba: 0x2efd, 0xebb: 0x2edd,\n\t0xebc: 0x2e5d, 0xebd: 0x2f1d, 0xebe: 0x2f3d, 0xebf: 0x2f5d,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2f7d, 0xec1: 0x2f9d, 0xec2: 0x2cfd, 0xec3: 0x2cdd, 0xec4: 0x2fbd, 0xec5: 0x2fdd,\n\t0xec6: 0x2ffd, 0xec7: 0x301d, 0xec8: 0x303d, 0xec9: 0x305d, 0xeca: 0x307d, 0xecb: 0x309d,\n\t0xecc: 0x30bd, 0xecd: 0x30dd, 0xece: 0x30fd, 0xecf: 0x0040, 0xed0: 0x0018, 0xed1: 0x0018,\n\t0xed2: 0x311d, 0xed3: 0x313d, 0xed4: 0x315d, 0xed5: 0x317d, 0xed6: 0x319d, 0xed7: 0x31bd,\n\t0xed8: 0x31dd, 0xed9: 0x31fd, 0xeda: 0x321d, 0xedb: 0x323d, 0xedc: 0x315d, 0xedd: 0x325d,\n\t0xede: 0x327d, 0xedf: 0x329d, 0xee0: 0x0008, 0xee1: 0x0008, 0xee2: 0x0008, 0xee3: 0x0008,\n\t0xee4: 0x0008, 0xee5: 0x0008, 0xee6: 0x0008, 0xee7: 0x0008, 0xee8: 0x0008, 0xee9: 0x0008,\n\t0xeea: 0x0008, 0xeeb: 0x0008, 0xeec: 0x0008, 0xeed: 0x0008, 0xeee: 0x0008, 0xeef: 0x0008,\n\t0xef0: 0x0008, 0xef1: 0x0008, 0xef2: 0x0008, 0xef3: 0x0008, 0xef4: 0x0008, 0xef5: 0x0008,\n\t0xef6: 0x0008, 0xef7: 0x0008, 0xef8: 0x0008, 0xef9: 0x0008, 0xefa: 0x0008, 0xefb: 0x0040,\n\t0xefc: 0x0040, 0xefd: 0x0040, 0xefe: 0x0040, 0xeff: 0x0040,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x36a2, 0xf01: 0x36d2, 0xf02: 0x3702, 0xf03: 0x3732, 0xf04: 0x32bd, 0xf05: 0x32dd,\n\t0xf06: 0x32fd, 0xf07: 0x331d, 0xf08: 0x0018, 0xf09: 0x0018, 0xf0a: 0x0018, 0xf0b: 0x0018,\n\t0xf0c: 0x0018, 0xf0d: 0x0018, 0xf0e: 0x0018, 0xf0f: 0x0018, 0xf10: 0x333d, 0xf11: 0x3761,\n\t0xf12: 0x3779, 0xf13: 0x3791, 0xf14: 0x37a9, 0xf15: 0x37c1, 0xf16: 0x37d9, 0xf17: 0x37f1,\n\t0xf18: 0x3809, 0xf19: 0x3821, 0xf1a: 0x3839, 0xf1b: 0x3851, 0xf1c: 0x3869, 0xf1d: 0x3881,\n\t0xf1e: 0x3899, 0xf1f: 0x38b1, 0xf20: 0x335d, 0xf21: 0x337d, 0xf22: 0x339d, 0xf23: 0x33bd,\n\t0xf24: 0x33dd, 0xf25: 0x33dd, 0xf26: 0x33fd, 0xf27: 0x341d, 0xf28: 0x343d, 0xf29: 0x345d,\n\t0xf2a: 0x347d, 0xf2b: 0x349d, 0xf2c: 0x34bd, 0xf2d: 0x34dd, 0xf2e: 0x34fd, 0xf2f: 0x351d,\n\t0xf30: 0x353d, 0xf31: 0x355d, 0xf32: 0x357d, 0xf33: 0x359d, 0xf34: 0x35bd, 0xf35: 0x35dd,\n\t0xf36: 0x35fd, 0xf37: 0x361d, 0xf38: 0x363d, 0xf39: 0x365d, 0xf3a: 0x367d, 0xf3b: 0x369d,\n\t0xf3c: 0x38c9, 0xf3d: 0x3901, 0xf3e: 0x36bd, 0xf3f: 0x0018,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36dd, 0xf41: 0x36fd, 0xf42: 0x371d, 0xf43: 0x373d, 0xf44: 0x375d, 0xf45: 0x377d,\n\t0xf46: 0x379d, 0xf47: 0x37bd, 0xf48: 0x37dd, 0xf49: 0x37fd, 0xf4a: 0x381d, 0xf4b: 0x383d,\n\t0xf4c: 0x385d, 0xf4d: 0x387d, 0xf4e: 0x389d, 0xf4f: 0x38bd, 0xf50: 0x38dd, 0xf51: 0x38fd,\n\t0xf52: 0x391d, 0xf53: 0x393d, 0xf54: 0x395d, 0xf55: 0x397d, 0xf56: 0x399d, 0xf57: 0x39bd,\n\t0xf58: 0x39dd, 0xf59: 0x39fd, 0xf5a: 0x3a1d, 0xf5b: 0x3a3d, 0xf5c: 0x3a5d, 0xf5d: 0x3a7d,\n\t0xf5e: 0x3a9d, 0xf5f: 0x3abd, 0xf60: 0x3add, 0xf61: 0x3afd, 0xf62: 0x3b1d, 0xf63: 0x3b3d,\n\t0xf64: 0x3b5d, 0xf65: 0x3b7d, 0xf66: 0x127d, 0xf67: 0x3b9d, 0xf68: 0x3bbd, 0xf69: 0x3bdd,\n\t0xf6a: 0x3bfd, 0xf6b: 0x3c1d, 0xf6c: 0x3c3d, 0xf6d: 0x3c5d, 0xf6e: 0x239d, 0xf6f: 0x3c7d,\n\t0xf70: 0x3c9d, 0xf71: 0x3939, 0xf72: 0x3951, 0xf73: 0x3969, 0xf74: 0x3981, 0xf75: 0x3999,\n\t0xf76: 0x39b1, 0xf77: 0x39c9, 0xf78: 0x39e1, 0xf79: 0x39f9, 0xf7a: 0x3a11, 0xf7b: 0x3a29,\n\t0xf7c: 0x3a41, 0xf7d: 0x3a59, 0xf7e: 0x3a71, 0xf7f: 0x3a89,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x3aa1, 0xf81: 0x3ac9, 0xf82: 0x3af1, 0xf83: 0x3b19, 0xf84: 0x3b41, 0xf85: 0x3b69,\n\t0xf86: 0x3b91, 0xf87: 0x3bb9, 0xf88: 0x3be1, 0xf89: 0x3c09, 0xf8a: 0x3c39, 0xf8b: 0x3c69,\n\t0xf8c: 0x3c99, 0xf8d: 0x3cbd, 0xf8e: 0x3cb1, 0xf8f: 0x3cdd, 0xf90: 0x3cfd, 0xf91: 0x3d15,\n\t0xf92: 0x3d2d, 0xf93: 0x3d45, 0xf94: 0x3d5d, 0xf95: 0x3d5d, 0xf96: 0x3d45, 0xf97: 0x3d75,\n\t0xf98: 0x07bd, 0xf99: 0x3d8d, 0xf9a: 0x3da5, 0xf9b: 0x3dbd, 0xf9c: 0x3dd5, 0xf9d: 0x3ded,\n\t0xf9e: 0x3e05, 0xf9f: 0x3e1d, 0xfa0: 0x3e35, 0xfa1: 0x3e4d, 0xfa2: 0x3e65, 0xfa3: 0x3e7d,\n\t0xfa4: 0x3e95, 0xfa5: 0x3e95, 0xfa6: 0x3ead, 0xfa7: 0x3ead, 0xfa8: 0x3ec5, 0xfa9: 0x3ec5,\n\t0xfaa: 0x3edd, 0xfab: 0x3ef5, 0xfac: 0x3f0d, 0xfad: 0x3f25, 0xfae: 0x3f3d, 0xfaf: 0x3f3d,\n\t0xfb0: 0x3f55, 0xfb1: 0x3f55, 0xfb2: 0x3f55, 0xfb3: 0x3f6d, 0xfb4: 0x3f85, 0xfb5: 0x3f9d,\n\t0xfb6: 0x3fb5, 0xfb7: 0x3f9d, 0xfb8: 0x3fcd, 0xfb9: 0x3fe5, 0xfba: 0x3f6d, 0xfbb: 0x3ffd,\n\t0xfbc: 0x4015, 0xfbd: 0x4015, 0xfbe: 0x4015, 0xfbf: 0x0040,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3cc9, 0xfc1: 0x3d31, 0xfc2: 0x3d99, 0xfc3: 0x3e01, 0xfc4: 0x3e51, 0xfc5: 0x3eb9,\n\t0xfc6: 0x3f09, 0xfc7: 0x3f59, 0xfc8: 0x3fd9, 0xfc9: 0x4041, 0xfca: 0x4091, 0xfcb: 0x40e1,\n\t0xfcc: 0x4131, 0xfcd: 0x4199, 0xfce: 0x4201, 0xfcf: 0x4251, 0xfd0: 0x42a1, 0xfd1: 0x42d9,\n\t0xfd2: 0x4329, 0xfd3: 0x4391, 0xfd4: 0x43f9, 0xfd5: 0x4431, 0xfd6: 0x44b1, 0xfd7: 0x4549,\n\t0xfd8: 0x45c9, 0xfd9: 0x4619, 0xfda: 0x4699, 0xfdb: 0x4719, 0xfdc: 0x4781, 0xfdd: 0x47d1,\n\t0xfde: 0x4821, 0xfdf: 0x4871, 0xfe0: 0x48d9, 0xfe1: 0x4959, 0xfe2: 0x49c1, 0xfe3: 0x4a11,\n\t0xfe4: 0x4a61, 0xfe5: 0x4ab1, 0xfe6: 0x4ae9, 0xfe7: 0x4b21, 0xfe8: 0x4b59, 0xfe9: 0x4b91,\n\t0xfea: 0x4be1, 0xfeb: 0x4c31, 0xfec: 0x4cb1, 0xfed: 0x4d01, 0xfee: 0x4d69, 0xfef: 0x4de9,\n\t0xff0: 0x4e39, 0xff1: 0x4e71, 0xff2: 0x4ea9, 0xff3: 0x4f29, 0xff4: 0x4f91, 0xff5: 0x5011,\n\t0xff6: 0x5061, 0xff7: 0x50e1, 0xff8: 0x5119, 0xff9: 0x5169, 0xffa: 0x51b9, 0xffb: 0x5209,\n\t0xffc: 0x5259, 0xffd: 0x52a9, 0xffe: 0x5311, 0xfff: 0x5361,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x5399, 0x1001: 0x53e9, 0x1002: 0x5439, 0x1003: 0x5489, 0x1004: 0x54f1, 0x1005: 0x5541,\n\t0x1006: 0x5591, 0x1007: 0x55e1, 0x1008: 0x5661, 0x1009: 0x56c9, 0x100a: 0x5701, 0x100b: 0x5781,\n\t0x100c: 0x57b9, 0x100d: 0x5821, 0x100e: 0x5889, 0x100f: 0x58d9, 0x1010: 0x5929, 0x1011: 0x5979,\n\t0x1012: 0x59e1, 0x1013: 0x5a19, 0x1014: 0x5a69, 0x1015: 0x5ad1, 0x1016: 0x5b09, 0x1017: 0x5b89,\n\t0x1018: 0x5bd9, 0x1019: 0x5c01, 0x101a: 0x5c29, 0x101b: 0x5c51, 0x101c: 0x5c79, 0x101d: 0x5ca1,\n\t0x101e: 0x5cc9, 0x101f: 0x5cf1, 0x1020: 0x5d19, 0x1021: 0x5d41, 0x1022: 0x5d69, 0x1023: 0x5d99,\n\t0x1024: 0x5dc9, 0x1025: 0x5df9, 0x1026: 0x5e29, 0x1027: 0x5e59, 0x1028: 0x5e89, 0x1029: 0x5eb9,\n\t0x102a: 0x5ee9, 0x102b: 0x5f19, 0x102c: 0x5f49, 0x102d: 0x5f79, 0x102e: 0x5fa9, 0x102f: 0x5fd9,\n\t0x1030: 0x6009, 0x1031: 0x402d, 0x1032: 0x6039, 0x1033: 0x6051, 0x1034: 0x404d, 0x1035: 0x6069,\n\t0x1036: 0x6081, 0x1037: 0x6099, 0x1038: 0x406d, 0x1039: 0x406d, 0x103a: 0x60b1, 0x103b: 0x60c9,\n\t0x103c: 0x6101, 0x103d: 0x6139, 0x103e: 0x6171, 0x103f: 0x61a9,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x6211, 0x1041: 0x6229, 0x1042: 0x408d, 0x1043: 0x6241, 0x1044: 0x6259, 0x1045: 0x6271,\n\t0x1046: 0x6289, 0x1047: 0x62a1, 0x1048: 0x40ad, 0x1049: 0x62b9, 0x104a: 0x62e1, 0x104b: 0x62f9,\n\t0x104c: 0x40cd, 0x104d: 0x40cd, 0x104e: 0x6311, 0x104f: 0x6329, 0x1050: 0x6341, 0x1051: 0x40ed,\n\t0x1052: 0x410d, 0x1053: 0x412d, 0x1054: 0x414d, 0x1055: 0x416d, 0x1056: 0x6359, 0x1057: 0x6371,\n\t0x1058: 0x6389, 0x1059: 0x63a1, 0x105a: 0x63b9, 0x105b: 0x418d, 0x105c: 0x63d1, 0x105d: 0x63e9,\n\t0x105e: 0x6401, 0x105f: 0x41ad, 0x1060: 0x41cd, 0x1061: 0x6419, 0x1062: 0x41ed, 0x1063: 0x420d,\n\t0x1064: 0x422d, 0x1065: 0x6431, 0x1066: 0x424d, 0x1067: 0x6449, 0x1068: 0x6479, 0x1069: 0x6211,\n\t0x106a: 0x426d, 0x106b: 0x428d, 0x106c: 0x42ad, 0x106d: 0x42cd, 0x106e: 0x64b1, 0x106f: 0x64f1,\n\t0x1070: 0x6539, 0x1071: 0x6551, 0x1072: 0x42ed, 0x1073: 0x6569, 0x1074: 0x6581, 0x1075: 0x6599,\n\t0x1076: 0x430d, 0x1077: 0x65b1, 0x1078: 0x65c9, 0x1079: 0x65b1, 0x107a: 0x65e1, 0x107b: 0x65f9,\n\t0x107c: 0x432d, 0x107d: 0x6611, 0x107e: 0x6629, 0x107f: 0x6611,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x434d, 0x1081: 0x436d, 0x1082: 0x0040, 0x1083: 0x6641, 0x1084: 0x6659, 0x1085: 0x6671,\n\t0x1086: 0x6689, 0x1087: 0x0040, 0x1088: 0x66c1, 0x1089: 0x66d9, 0x108a: 0x66f1, 0x108b: 0x6709,\n\t0x108c: 0x6721, 0x108d: 0x6739, 0x108e: 0x6401, 0x108f: 0x6751, 0x1090: 0x6769, 0x1091: 0x6781,\n\t0x1092: 0x438d, 0x1093: 0x6799, 0x1094: 0x6289, 0x1095: 0x43ad, 0x1096: 0x43cd, 0x1097: 0x67b1,\n\t0x1098: 0x0040, 0x1099: 0x43ed, 0x109a: 0x67c9, 0x109b: 0x67e1, 0x109c: 0x67f9, 0x109d: 0x6811,\n\t0x109e: 0x6829, 0x109f: 0x6859, 0x10a0: 0x6889, 0x10a1: 0x68b1, 0x10a2: 0x68d9, 0x10a3: 0x6901,\n\t0x10a4: 0x6929, 0x10a5: 0x6951, 0x10a6: 0x6979, 0x10a7: 0x69a1, 0x10a8: 0x69c9, 0x10a9: 0x69f1,\n\t0x10aa: 0x6a21, 0x10ab: 0x6a51, 0x10ac: 0x6a81, 0x10ad: 0x6ab1, 0x10ae: 0x6ae1, 0x10af: 0x6b11,\n\t0x10b0: 0x6b41, 0x10b1: 0x6b71, 0x10b2: 0x6ba1, 0x10b3: 0x6bd1, 0x10b4: 0x6c01, 0x10b5: 0x6c31,\n\t0x10b6: 0x6c61, 0x10b7: 0x6c91, 0x10b8: 0x6cc1, 0x10b9: 0x6cf1, 0x10ba: 0x6d21, 0x10bb: 0x6d51,\n\t0x10bc: 0x6d81, 0x10bd: 0x6db1, 0x10be: 0x6de1, 0x10bf: 0x440d,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008,\n\t0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008,\n\t0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008,\n\t0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308,\n\t0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308,\n\t0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308,\n\t0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x0ea1, 0x111d: 0x6e11,\n\t0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008,\n\t0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008,\n\t0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008,\n\t0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008,\n\t0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018,\n\t0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018,\n\t0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018,\n\t0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008,\n\t0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008,\n\t0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008,\n\t0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008,\n\t0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008,\n\t0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008,\n\t0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d,\n\t0x11bc: 0x0008, 0x11bd: 0x442d, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d,\n\t0x11cc: 0x0008, 0x11cd: 0x11d9, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0x6e29, 0x11eb: 0x1029, 0x11ec: 0x11c1, 0x11ed: 0x6e41, 0x11ee: 0x1221, 0x11ef: 0x0040,\n\t0x11f0: 0x6e59, 0x11f1: 0x6e71, 0x11f2: 0x1239, 0x11f3: 0x444d, 0x11f4: 0xe00d, 0x11f5: 0x0008,\n\t0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0x0040, 0x11f9: 0x0040, 0x11fa: 0x0040, 0x11fb: 0x0040,\n\t0x11fc: 0x0040, 0x11fd: 0x0040, 0x11fe: 0x0040, 0x11ff: 0x0040,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x64d5, 0x1201: 0x64f5, 0x1202: 0x6515, 0x1203: 0x6535, 0x1204: 0x6555, 0x1205: 0x6575,\n\t0x1206: 0x6595, 0x1207: 0x65b5, 0x1208: 0x65d5, 0x1209: 0x65f5, 0x120a: 0x6615, 0x120b: 0x6635,\n\t0x120c: 0x6655, 0x120d: 0x6675, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0x6695, 0x1211: 0x0008,\n\t0x1212: 0x66b5, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x66d5, 0x1216: 0x66f5, 0x1217: 0x6715,\n\t0x1218: 0x6735, 0x1219: 0x6755, 0x121a: 0x6775, 0x121b: 0x6795, 0x121c: 0x67b5, 0x121d: 0x67d5,\n\t0x121e: 0x67f5, 0x121f: 0x0008, 0x1220: 0x6815, 0x1221: 0x0008, 0x1222: 0x6835, 0x1223: 0x0008,\n\t0x1224: 0x0008, 0x1225: 0x6855, 0x1226: 0x6875, 0x1227: 0x0008, 0x1228: 0x0008, 0x1229: 0x0008,\n\t0x122a: 0x6895, 0x122b: 0x68b5, 0x122c: 0x68d5, 0x122d: 0x68f5, 0x122e: 0x6915, 0x122f: 0x6935,\n\t0x1230: 0x6955, 0x1231: 0x6975, 0x1232: 0x6995, 0x1233: 0x69b5, 0x1234: 0x69d5, 0x1235: 0x69f5,\n\t0x1236: 0x6a15, 0x1237: 0x6a35, 0x1238: 0x6a55, 0x1239: 0x6a75, 0x123a: 0x6a95, 0x123b: 0x6ab5,\n\t0x123c: 0x6ad5, 0x123d: 0x6af5, 0x123e: 0x6b15, 0x123f: 0x6b35,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x7a95, 0x1241: 0x7ab5, 0x1242: 0x7ad5, 0x1243: 0x7af5, 0x1244: 0x7b15, 0x1245: 0x7b35,\n\t0x1246: 0x7b55, 0x1247: 0x7b75, 0x1248: 0x7b95, 0x1249: 0x7bb5, 0x124a: 0x7bd5, 0x124b: 0x7bf5,\n\t0x124c: 0x7c15, 0x124d: 0x7c35, 0x124e: 0x7c55, 0x124f: 0x6ec9, 0x1250: 0x6ef1, 0x1251: 0x6f19,\n\t0x1252: 0x7c75, 0x1253: 0x7c95, 0x1254: 0x7cb5, 0x1255: 0x6f41, 0x1256: 0x6f69, 0x1257: 0x6f91,\n\t0x1258: 0x7cd5, 0x1259: 0x7cf5, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x0040,\n\t0x125e: 0x0040, 0x125f: 0x0040, 0x1260: 0x0040, 0x1261: 0x0040, 0x1262: 0x0040, 0x1263: 0x0040,\n\t0x1264: 0x0040, 0x1265: 0x0040, 0x1266: 0x0040, 0x1267: 0x0040, 0x1268: 0x0040, 0x1269: 0x0040,\n\t0x126a: 0x0040, 0x126b: 0x0040, 0x126c: 0x0040, 0x126d: 0x0040, 0x126e: 0x0040, 0x126f: 0x0040,\n\t0x1270: 0x0040, 0x1271: 0x0040, 0x1272: 0x0040, 0x1273: 0x0040, 0x1274: 0x0040, 0x1275: 0x0040,\n\t0x1276: 0x0040, 0x1277: 0x0040, 0x1278: 0x0040, 0x1279: 0x0040, 0x127a: 0x0040, 0x127b: 0x0040,\n\t0x127c: 0x0040, 0x127d: 0x0040, 0x127e: 0x0040, 0x127f: 0x0040,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x6fb9, 0x1281: 0x6fd1, 0x1282: 0x6fe9, 0x1283: 0x7d15, 0x1284: 0x7d35, 0x1285: 0x7001,\n\t0x1286: 0x7001, 0x1287: 0x0040, 0x1288: 0x0040, 0x1289: 0x0040, 0x128a: 0x0040, 0x128b: 0x0040,\n\t0x128c: 0x0040, 0x128d: 0x0040, 0x128e: 0x0040, 0x128f: 0x0040, 0x1290: 0x0040, 0x1291: 0x0040,\n\t0x1292: 0x0040, 0x1293: 0x7019, 0x1294: 0x7041, 0x1295: 0x7069, 0x1296: 0x7091, 0x1297: 0x70b9,\n\t0x1298: 0x0040, 0x1299: 0x0040, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x70e1,\n\t0x129e: 0x3308, 0x129f: 0x7109, 0x12a0: 0x7131, 0x12a1: 0x20a9, 0x12a2: 0x20f1, 0x12a3: 0x7149,\n\t0x12a4: 0x7161, 0x12a5: 0x7179, 0x12a6: 0x7191, 0x12a7: 0x71a9, 0x12a8: 0x71c1, 0x12a9: 0x1fb2,\n\t0x12aa: 0x71d9, 0x12ab: 0x7201, 0x12ac: 0x7229, 0x12ad: 0x7261, 0x12ae: 0x7299, 0x12af: 0x72c1,\n\t0x12b0: 0x72e9, 0x12b1: 0x7311, 0x12b2: 0x7339, 0x12b3: 0x7361, 0x12b4: 0x7389, 0x12b5: 0x73b1,\n\t0x12b6: 0x73d9, 0x12b7: 0x0040, 0x12b8: 0x7401, 0x12b9: 0x7429, 0x12ba: 0x7451, 0x12bb: 0x7479,\n\t0x12bc: 0x74a1, 0x12bd: 0x0040, 0x12be: 0x74c9, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x74f1, 0x12c1: 0x7519, 0x12c2: 0x0040, 0x12c3: 0x7541, 0x12c4: 0x7569, 0x12c5: 0x0040,\n\t0x12c6: 0x7591, 0x12c7: 0x75b9, 0x12c8: 0x75e1, 0x12c9: 0x7609, 0x12ca: 0x7631, 0x12cb: 0x7659,\n\t0x12cc: 0x7681, 0x12cd: 0x76a9, 0x12ce: 0x76d1, 0x12cf: 0x76f9, 0x12d0: 0x7721, 0x12d1: 0x7721,\n\t0x12d2: 0x7739, 0x12d3: 0x7739, 0x12d4: 0x7739, 0x12d5: 0x7739, 0x12d6: 0x7751, 0x12d7: 0x7751,\n\t0x12d8: 0x7751, 0x12d9: 0x7751, 0x12da: 0x7769, 0x12db: 0x7769, 0x12dc: 0x7769, 0x12dd: 0x7769,\n\t0x12de: 0x7781, 0x12df: 0x7781, 0x12e0: 0x7781, 0x12e1: 0x7781, 0x12e2: 0x7799, 0x12e3: 0x7799,\n\t0x12e4: 0x7799, 0x12e5: 0x7799, 0x12e6: 0x77b1, 0x12e7: 0x77b1, 0x12e8: 0x77b1, 0x12e9: 0x77b1,\n\t0x12ea: 0x77c9, 0x12eb: 0x77c9, 0x12ec: 0x77c9, 0x12ed: 0x77c9, 0x12ee: 0x77e1, 0x12ef: 0x77e1,\n\t0x12f0: 0x77e1, 0x12f1: 0x77e1, 0x12f2: 0x77f9, 0x12f3: 0x77f9, 0x12f4: 0x77f9, 0x12f5: 0x77f9,\n\t0x12f6: 0x7811, 0x12f7: 0x7811, 0x12f8: 0x7811, 0x12f9: 0x7811, 0x12fa: 0x7829, 0x12fb: 0x7829,\n\t0x12fc: 0x7829, 0x12fd: 0x7829, 0x12fe: 0x7841, 0x12ff: 0x7841,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x7841, 0x1301: 0x7841, 0x1302: 0x7859, 0x1303: 0x7859, 0x1304: 0x7871, 0x1305: 0x7871,\n\t0x1306: 0x7889, 0x1307: 0x7889, 0x1308: 0x78a1, 0x1309: 0x78a1, 0x130a: 0x78b9, 0x130b: 0x78b9,\n\t0x130c: 0x78d1, 0x130d: 0x78d1, 0x130e: 0x78e9, 0x130f: 0x78e9, 0x1310: 0x78e9, 0x1311: 0x78e9,\n\t0x1312: 0x7901, 0x1313: 0x7901, 0x1314: 0x7901, 0x1315: 0x7901, 0x1316: 0x7919, 0x1317: 0x7919,\n\t0x1318: 0x7919, 0x1319: 0x7919, 0x131a: 0x7931, 0x131b: 0x7931, 0x131c: 0x7931, 0x131d: 0x7931,\n\t0x131e: 0x7949, 0x131f: 0x7949, 0x1320: 0x7961, 0x1321: 0x7961, 0x1322: 0x7961, 0x1323: 0x7961,\n\t0x1324: 0x7979, 0x1325: 0x7979, 0x1326: 0x7991, 0x1327: 0x7991, 0x1328: 0x7991, 0x1329: 0x7991,\n\t0x132a: 0x79a9, 0x132b: 0x79a9, 0x132c: 0x79a9, 0x132d: 0x79a9, 0x132e: 0x79c1, 0x132f: 0x79c1,\n\t0x1330: 0x79d9, 0x1331: 0x79d9, 0x1332: 0x0818, 0x1333: 0x0818, 0x1334: 0x0818, 0x1335: 0x0818,\n\t0x1336: 0x0818, 0x1337: 0x0818, 0x1338: 0x0818, 0x1339: 0x0818, 0x133a: 0x0818, 0x133b: 0x0818,\n\t0x133c: 0x0818, 0x133d: 0x0818, 0x133e: 0x0818, 0x133f: 0x0818,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x0818, 0x1341: 0x0818, 0x1342: 0x0040, 0x1343: 0x0040, 0x1344: 0x0040, 0x1345: 0x0040,\n\t0x1346: 0x0040, 0x1347: 0x0040, 0x1348: 0x0040, 0x1349: 0x0040, 0x134a: 0x0040, 0x134b: 0x0040,\n\t0x134c: 0x0040, 0x134d: 0x0040, 0x134e: 0x0040, 0x134f: 0x0040, 0x1350: 0x0040, 0x1351: 0x0040,\n\t0x1352: 0x0040, 0x1353: 0x79f1, 0x1354: 0x79f1, 0x1355: 0x79f1, 0x1356: 0x79f1, 0x1357: 0x7a09,\n\t0x1358: 0x7a09, 0x1359: 0x7a21, 0x135a: 0x7a21, 0x135b: 0x7a39, 0x135c: 0x7a39, 0x135d: 0x0479,\n\t0x135e: 0x7a51, 0x135f: 0x7a51, 0x1360: 0x7a69, 0x1361: 0x7a69, 0x1362: 0x7a81, 0x1363: 0x7a81,\n\t0x1364: 0x7a99, 0x1365: 0x7a99, 0x1366: 0x7a99, 0x1367: 0x7a99, 0x1368: 0x7ab1, 0x1369: 0x7ab1,\n\t0x136a: 0x7ac9, 0x136b: 0x7ac9, 0x136c: 0x7af1, 0x136d: 0x7af1, 0x136e: 0x7b19, 0x136f: 0x7b19,\n\t0x1370: 0x7b41, 0x1371: 0x7b41, 0x1372: 0x7b69, 0x1373: 0x7b69, 0x1374: 0x7b91, 0x1375: 0x7b91,\n\t0x1376: 0x7bb9, 0x1377: 0x7bb9, 0x1378: 0x7bb9, 0x1379: 0x7be1, 0x137a: 0x7be1, 0x137b: 0x7be1,\n\t0x137c: 0x7c09, 0x137d: 0x7c09, 0x137e: 0x7c09, 0x137f: 0x7c09,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x85f9, 0x1381: 0x8621, 0x1382: 0x8649, 0x1383: 0x8671, 0x1384: 0x8699, 0x1385: 0x86c1,\n\t0x1386: 0x86e9, 0x1387: 0x8711, 0x1388: 0x8739, 0x1389: 0x8761, 0x138a: 0x8789, 0x138b: 0x87b1,\n\t0x138c: 0x87d9, 0x138d: 0x8801, 0x138e: 0x8829, 0x138f: 0x8851, 0x1390: 0x8879, 0x1391: 0x88a1,\n\t0x1392: 0x88c9, 0x1393: 0x88f1, 0x1394: 0x8919, 0x1395: 0x8941, 0x1396: 0x8969, 0x1397: 0x8991,\n\t0x1398: 0x89b9, 0x1399: 0x89e1, 0x139a: 0x8a09, 0x139b: 0x8a31, 0x139c: 0x8a59, 0x139d: 0x8a81,\n\t0x139e: 0x8aaa, 0x139f: 0x8ada, 0x13a0: 0x8b0a, 0x13a1: 0x8b3a, 0x13a2: 0x8b6a, 0x13a3: 0x8b9a,\n\t0x13a4: 0x8bc9, 0x13a5: 0x8bf1, 0x13a6: 0x7c71, 0x13a7: 0x8c19, 0x13a8: 0x7be1, 0x13a9: 0x7c99,\n\t0x13aa: 0x8c41, 0x13ab: 0x8c69, 0x13ac: 0x7d39, 0x13ad: 0x8c91, 0x13ae: 0x7d61, 0x13af: 0x7d89,\n\t0x13b0: 0x8cb9, 0x13b1: 0x8ce1, 0x13b2: 0x7e29, 0x13b3: 0x8d09, 0x13b4: 0x7e51, 0x13b5: 0x7e79,\n\t0x13b6: 0x8d31, 0x13b7: 0x8d59, 0x13b8: 0x7ec9, 0x13b9: 0x8d81, 0x13ba: 0x7ef1, 0x13bb: 0x7f19,\n\t0x13bc: 0x83a1, 0x13bd: 0x83c9, 0x13be: 0x8441, 0x13bf: 0x8469,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x8491, 0x13c1: 0x8531, 0x13c2: 0x8559, 0x13c3: 0x8581, 0x13c4: 0x85a9, 0x13c5: 0x8649,\n\t0x13c6: 0x8671, 0x13c7: 0x8699, 0x13c8: 0x8da9, 0x13c9: 0x8739, 0x13ca: 0x8dd1, 0x13cb: 0x8df9,\n\t0x13cc: 0x8829, 0x13cd: 0x8e21, 0x13ce: 0x8851, 0x13cf: 0x8879, 0x13d0: 0x8a81, 0x13d1: 0x8e49,\n\t0x13d2: 0x8e71, 0x13d3: 0x89b9, 0x13d4: 0x8e99, 0x13d5: 0x89e1, 0x13d6: 0x8a09, 0x13d7: 0x7c21,\n\t0x13d8: 0x7c49, 0x13d9: 0x8ec1, 0x13da: 0x7c71, 0x13db: 0x8ee9, 0x13dc: 0x7cc1, 0x13dd: 0x7ce9,\n\t0x13de: 0x7d11, 0x13df: 0x7d39, 0x13e0: 0x8f11, 0x13e1: 0x7db1, 0x13e2: 0x7dd9, 0x13e3: 0x7e01,\n\t0x13e4: 0x7e29, 0x13e5: 0x8f39, 0x13e6: 0x7ec9, 0x13e7: 0x7f41, 0x13e8: 0x7f69, 0x13e9: 0x7f91,\n\t0x13ea: 0x7fb9, 0x13eb: 0x7fe1, 0x13ec: 0x8031, 0x13ed: 0x8059, 0x13ee: 0x8081, 0x13ef: 0x80a9,\n\t0x13f0: 0x80d1, 0x13f1: 0x80f9, 0x13f2: 0x8f61, 0x13f3: 0x8121, 0x13f4: 0x8149, 0x13f5: 0x8171,\n\t0x13f6: 0x8199, 0x13f7: 0x81c1, 0x13f8: 0x81e9, 0x13f9: 0x8239, 0x13fa: 0x8261, 0x13fb: 0x8289,\n\t0x13fc: 0x82b1, 0x13fd: 0x82d9, 0x13fe: 0x8301, 0x13ff: 0x8329,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8351, 0x1401: 0x8379, 0x1402: 0x83f1, 0x1403: 0x8419, 0x1404: 0x84b9, 0x1405: 0x84e1,\n\t0x1406: 0x8509, 0x1407: 0x8531, 0x1408: 0x8559, 0x1409: 0x85d1, 0x140a: 0x85f9, 0x140b: 0x8621,\n\t0x140c: 0x8649, 0x140d: 0x8f89, 0x140e: 0x86c1, 0x140f: 0x86e9, 0x1410: 0x8711, 0x1411: 0x8739,\n\t0x1412: 0x87b1, 0x1413: 0x87d9, 0x1414: 0x8801, 0x1415: 0x8829, 0x1416: 0x8fb1, 0x1417: 0x88a1,\n\t0x1418: 0x88c9, 0x1419: 0x8fd9, 0x141a: 0x8941, 0x141b: 0x8969, 0x141c: 0x8991, 0x141d: 0x89b9,\n\t0x141e: 0x9001, 0x141f: 0x7c71, 0x1420: 0x8ee9, 0x1421: 0x7d39, 0x1422: 0x8f11, 0x1423: 0x7e29,\n\t0x1424: 0x8f39, 0x1425: 0x7ec9, 0x1426: 0x9029, 0x1427: 0x80d1, 0x1428: 0x9051, 0x1429: 0x9079,\n\t0x142a: 0x90a1, 0x142b: 0x8531, 0x142c: 0x8559, 0x142d: 0x8649, 0x142e: 0x8829, 0x142f: 0x8fb1,\n\t0x1430: 0x89b9, 0x1431: 0x9001, 0x1432: 0x90c9, 0x1433: 0x9101, 0x1434: 0x9139, 0x1435: 0x9171,\n\t0x1436: 0x9199, 0x1437: 0x91c1, 0x1438: 0x91e9, 0x1439: 0x9211, 0x143a: 0x9239, 0x143b: 0x9261,\n\t0x143c: 0x9289, 0x143d: 0x92b1, 0x143e: 0x92d9, 0x143f: 0x9301,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x9329, 0x1441: 0x9351, 0x1442: 0x9379, 0x1443: 0x93a1, 0x1444: 0x93c9, 0x1445: 0x93f1,\n\t0x1446: 0x9419, 0x1447: 0x9441, 0x1448: 0x9469, 0x1449: 0x9491, 0x144a: 0x94b9, 0x144b: 0x94e1,\n\t0x144c: 0x9079, 0x144d: 0x9509, 0x144e: 0x9531, 0x144f: 0x9559, 0x1450: 0x9581, 0x1451: 0x9171,\n\t0x1452: 0x9199, 0x1453: 0x91c1, 0x1454: 0x91e9, 0x1455: 0x9211, 0x1456: 0x9239, 0x1457: 0x9261,\n\t0x1458: 0x9289, 0x1459: 0x92b1, 0x145a: 0x92d9, 0x145b: 0x9301, 0x145c: 0x9329, 0x145d: 0x9351,\n\t0x145e: 0x9379, 0x145f: 0x93a1, 0x1460: 0x93c9, 0x1461: 0x93f1, 0x1462: 0x9419, 0x1463: 0x9441,\n\t0x1464: 0x9469, 0x1465: 0x9491, 0x1466: 0x94b9, 0x1467: 0x94e1, 0x1468: 0x9079, 0x1469: 0x9509,\n\t0x146a: 0x9531, 0x146b: 0x9559, 0x146c: 0x9581, 0x146d: 0x9491, 0x146e: 0x94b9, 0x146f: 0x94e1,\n\t0x1470: 0x9079, 0x1471: 0x9051, 0x1472: 0x90a1, 0x1473: 0x8211, 0x1474: 0x8059, 0x1475: 0x8081,\n\t0x1476: 0x80a9, 0x1477: 0x9491, 0x1478: 0x94b9, 0x1479: 0x94e1, 0x147a: 0x8211, 0x147b: 0x8239,\n\t0x147c: 0x95a9, 0x147d: 0x95a9, 0x147e: 0x0018, 0x147f: 0x0018,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0040, 0x1481: 0x0040, 0x1482: 0x0040, 0x1483: 0x0040, 0x1484: 0x0040, 0x1485: 0x0040,\n\t0x1486: 0x0040, 0x1487: 0x0040, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040,\n\t0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x95d1, 0x1491: 0x9609,\n\t0x1492: 0x9609, 0x1493: 0x9641, 0x1494: 0x9679, 0x1495: 0x96b1, 0x1496: 0x96e9, 0x1497: 0x9721,\n\t0x1498: 0x9759, 0x1499: 0x9759, 0x149a: 0x9791, 0x149b: 0x97c9, 0x149c: 0x9801, 0x149d: 0x9839,\n\t0x149e: 0x9871, 0x149f: 0x98a9, 0x14a0: 0x98a9, 0x14a1: 0x98e1, 0x14a2: 0x9919, 0x14a3: 0x9919,\n\t0x14a4: 0x9951, 0x14a5: 0x9951, 0x14a6: 0x9989, 0x14a7: 0x99c1, 0x14a8: 0x99c1, 0x14a9: 0x99f9,\n\t0x14aa: 0x9a31, 0x14ab: 0x9a31, 0x14ac: 0x9a69, 0x14ad: 0x9a69, 0x14ae: 0x9aa1, 0x14af: 0x9ad9,\n\t0x14b0: 0x9ad9, 0x14b1: 0x9b11, 0x14b2: 0x9b11, 0x14b3: 0x9b49, 0x14b4: 0x9b81, 0x14b5: 0x9bb9,\n\t0x14b6: 0x9bf1, 0x14b7: 0x9bf1, 0x14b8: 0x9c29, 0x14b9: 0x9c61, 0x14ba: 0x9c99, 0x14bb: 0x9cd1,\n\t0x14bc: 0x9d09, 0x14bd: 0x9d09, 0x14be: 0x9d41, 0x14bf: 0x9d79,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0xa949, 0x14c1: 0xa981, 0x14c2: 0xa9b9, 0x14c3: 0xa8a1, 0x14c4: 0x9bb9, 0x14c5: 0x9989,\n\t0x14c6: 0xa9f1, 0x14c7: 0xaa29, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x0040, 0x14d1: 0x0040,\n\t0x14d2: 0x0040, 0x14d3: 0x0040, 0x14d4: 0x0040, 0x14d5: 0x0040, 0x14d6: 0x0040, 0x14d7: 0x0040,\n\t0x14d8: 0x0040, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040,\n\t0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x0040, 0x14e1: 0x0040, 0x14e2: 0x0040, 0x14e3: 0x0040,\n\t0x14e4: 0x0040, 0x14e5: 0x0040, 0x14e6: 0x0040, 0x14e7: 0x0040, 0x14e8: 0x0040, 0x14e9: 0x0040,\n\t0x14ea: 0x0040, 0x14eb: 0x0040, 0x14ec: 0x0040, 0x14ed: 0x0040, 0x14ee: 0x0040, 0x14ef: 0x0040,\n\t0x14f0: 0xaa61, 0x14f1: 0xaa99, 0x14f2: 0xaad1, 0x14f3: 0xab19, 0x14f4: 0xab61, 0x14f5: 0xaba9,\n\t0x14f6: 0xabf1, 0x14f7: 0xac39, 0x14f8: 0xac81, 0x14f9: 0xacc9, 0x14fa: 0xad02, 0x14fb: 0xae12,\n\t0x14fc: 0xae91, 0x14fd: 0x0018, 0x14fe: 0x0040, 0x14ff: 0x0040,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x33c0, 0x1501: 0x33c0, 0x1502: 0x33c0, 0x1503: 0x33c0, 0x1504: 0x33c0, 0x1505: 0x33c0,\n\t0x1506: 0x33c0, 0x1507: 0x33c0, 0x1508: 0x33c0, 0x1509: 0x33c0, 0x150a: 0x33c0, 0x150b: 0x33c0,\n\t0x150c: 0x33c0, 0x150d: 0x33c0, 0x150e: 0x33c0, 0x150f: 0x33c0, 0x1510: 0xaeda, 0x1511: 0x7d55,\n\t0x1512: 0x0040, 0x1513: 0xaeea, 0x1514: 0x03c2, 0x1515: 0xaefa, 0x1516: 0xaf0a, 0x1517: 0x7d75,\n\t0x1518: 0x7d95, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x3308, 0x1521: 0x3308, 0x1522: 0x3308, 0x1523: 0x3308,\n\t0x1524: 0x3308, 0x1525: 0x3308, 0x1526: 0x3308, 0x1527: 0x3308, 0x1528: 0x3308, 0x1529: 0x3308,\n\t0x152a: 0x3308, 0x152b: 0x3308, 0x152c: 0x3308, 0x152d: 0x3308, 0x152e: 0x3308, 0x152f: 0x3308,\n\t0x1530: 0x0040, 0x1531: 0x7db5, 0x1532: 0x7dd5, 0x1533: 0xaf1a, 0x1534: 0xaf1a, 0x1535: 0x1fd2,\n\t0x1536: 0x1fe2, 0x1537: 0xaf2a, 0x1538: 0xaf3a, 0x1539: 0x7df5, 0x153a: 0x7e15, 0x153b: 0x7e35,\n\t0x153c: 0x7df5, 0x153d: 0x7e55, 0x153e: 0x7e75, 0x153f: 0x7e55,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x7e95, 0x1541: 0x7eb5, 0x1542: 0x7ed5, 0x1543: 0x7eb5, 0x1544: 0x7ef5, 0x1545: 0x0018,\n\t0x1546: 0x0018, 0x1547: 0xaf4a, 0x1548: 0xaf5a, 0x1549: 0x7f16, 0x154a: 0x7f36, 0x154b: 0x7f56,\n\t0x154c: 0x7f76, 0x154d: 0xaf1a, 0x154e: 0xaf1a, 0x154f: 0xaf1a, 0x1550: 0xaeda, 0x1551: 0x7f95,\n\t0x1552: 0x0040, 0x1553: 0x0040, 0x1554: 0x03c2, 0x1555: 0xaeea, 0x1556: 0xaf0a, 0x1557: 0xaefa,\n\t0x1558: 0x7fb5, 0x1559: 0x1fd2, 0x155a: 0x1fe2, 0x155b: 0xaf2a, 0x155c: 0xaf3a, 0x155d: 0x7e95,\n\t0x155e: 0x7ef5, 0x155f: 0xaf6a, 0x1560: 0xaf7a, 0x1561: 0xaf8a, 0x1562: 0x1fb2, 0x1563: 0xaf99,\n\t0x1564: 0xafaa, 0x1565: 0xafba, 0x1566: 0x1fc2, 0x1567: 0x0040, 0x1568: 0xafca, 0x1569: 0xafda,\n\t0x156a: 0xafea, 0x156b: 0xaffa, 0x156c: 0x0040, 0x156d: 0x0040, 0x156e: 0x0040, 0x156f: 0x0040,\n\t0x1570: 0x7fd6, 0x1571: 0xb009, 0x1572: 0x7ff6, 0x1573: 0x0808, 0x1574: 0x8016, 0x1575: 0x0040,\n\t0x1576: 0x8036, 0x1577: 0xb031, 0x1578: 0x8056, 0x1579: 0xb059, 0x157a: 0x8076, 0x157b: 0xb081,\n\t0x157c: 0x8096, 0x157d: 0xb0a9, 0x157e: 0x80b6, 0x157f: 0xb0d1,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0xb0f9, 0x1581: 0xb111, 0x1582: 0xb111, 0x1583: 0xb129, 0x1584: 0xb129, 0x1585: 0xb141,\n\t0x1586: 0xb141, 0x1587: 0xb159, 0x1588: 0xb159, 0x1589: 0xb171, 0x158a: 0xb171, 0x158b: 0xb171,\n\t0x158c: 0xb171, 0x158d: 0xb189, 0x158e: 0xb189, 0x158f: 0xb1a1, 0x1590: 0xb1a1, 0x1591: 0xb1a1,\n\t0x1592: 0xb1a1, 0x1593: 0xb1b9, 0x1594: 0xb1b9, 0x1595: 0xb1d1, 0x1596: 0xb1d1, 0x1597: 0xb1d1,\n\t0x1598: 0xb1d1, 0x1599: 0xb1e9, 0x159a: 0xb1e9, 0x159b: 0xb1e9, 0x159c: 0xb1e9, 0x159d: 0xb201,\n\t0x159e: 0xb201, 0x159f: 0xb201, 0x15a0: 0xb201, 0x15a1: 0xb219, 0x15a2: 0xb219, 0x15a3: 0xb219,\n\t0x15a4: 0xb219, 0x15a5: 0xb231, 0x15a6: 0xb231, 0x15a7: 0xb231, 0x15a8: 0xb231, 0x15a9: 0xb249,\n\t0x15aa: 0xb249, 0x15ab: 0xb261, 0x15ac: 0xb261, 0x15ad: 0xb279, 0x15ae: 0xb279, 0x15af: 0xb291,\n\t0x15b0: 0xb291, 0x15b1: 0xb2a9, 0x15b2: 0xb2a9, 0x15b3: 0xb2a9, 0x15b4: 0xb2a9, 0x15b5: 0xb2c1,\n\t0x15b6: 0xb2c1, 0x15b7: 0xb2c1, 0x15b8: 0xb2c1, 0x15b9: 0xb2d9, 0x15ba: 0xb2d9, 0x15bb: 0xb2d9,\n\t0x15bc: 0xb2d9, 0x15bd: 0xb2f1, 0x15be: 0xb2f1, 0x15bf: 0xb2f1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb2f1, 0x15c1: 0xb309, 0x15c2: 0xb309, 0x15c3: 0xb309, 0x15c4: 0xb309, 0x15c5: 0xb321,\n\t0x15c6: 0xb321, 0x15c7: 0xb321, 0x15c8: 0xb321, 0x15c9: 0xb339, 0x15ca: 0xb339, 0x15cb: 0xb339,\n\t0x15cc: 0xb339, 0x15cd: 0xb351, 0x15ce: 0xb351, 0x15cf: 0xb351, 0x15d0: 0xb351, 0x15d1: 0xb369,\n\t0x15d2: 0xb369, 0x15d3: 0xb369, 0x15d4: 0xb369, 0x15d5: 0xb381, 0x15d6: 0xb381, 0x15d7: 0xb381,\n\t0x15d8: 0xb381, 0x15d9: 0xb399, 0x15da: 0xb399, 0x15db: 0xb399, 0x15dc: 0xb399, 0x15dd: 0xb3b1,\n\t0x15de: 0xb3b1, 0x15df: 0xb3b1, 0x15e0: 0xb3b1, 0x15e1: 0xb3c9, 0x15e2: 0xb3c9, 0x15e3: 0xb3c9,\n\t0x15e4: 0xb3c9, 0x15e5: 0xb3e1, 0x15e6: 0xb3e1, 0x15e7: 0xb3e1, 0x15e8: 0xb3e1, 0x15e9: 0xb3f9,\n\t0x15ea: 0xb3f9, 0x15eb: 0xb3f9, 0x15ec: 0xb3f9, 0x15ed: 0xb411, 0x15ee: 0xb411, 0x15ef: 0x7ab1,\n\t0x15f0: 0x7ab1, 0x15f1: 0xb429, 0x15f2: 0xb429, 0x15f3: 0xb429, 0x15f4: 0xb429, 0x15f5: 0xb441,\n\t0x15f6: 0xb441, 0x15f7: 0xb469, 0x15f8: 0xb469, 0x15f9: 0xb491, 0x15fa: 0xb491, 0x15fb: 0xb4b9,\n\t0x15fc: 0xb4b9, 0x15fd: 0x0040, 0x15fe: 0x0040, 0x15ff: 0x03c0,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0040, 0x1601: 0xaefa, 0x1602: 0xb4e2, 0x1603: 0xaf6a, 0x1604: 0xafda, 0x1605: 0xafea,\n\t0x1606: 0xaf7a, 0x1607: 0xb4f2, 0x1608: 0x1fd2, 0x1609: 0x1fe2, 0x160a: 0xaf8a, 0x160b: 0x1fb2,\n\t0x160c: 0xaeda, 0x160d: 0xaf99, 0x160e: 0x29d1, 0x160f: 0xb502, 0x1610: 0x1f41, 0x1611: 0x00c9,\n\t0x1612: 0x0069, 0x1613: 0x0079, 0x1614: 0x1f51, 0x1615: 0x1f61, 0x1616: 0x1f71, 0x1617: 0x1f81,\n\t0x1618: 0x1f91, 0x1619: 0x1fa1, 0x161a: 0xaeea, 0x161b: 0x03c2, 0x161c: 0xafaa, 0x161d: 0x1fc2,\n\t0x161e: 0xafba, 0x161f: 0xaf0a, 0x1620: 0xaffa, 0x1621: 0x0039, 0x1622: 0x0ee9, 0x1623: 0x1159,\n\t0x1624: 0x0ef9, 0x1625: 0x0f09, 0x1626: 0x1199, 0x1627: 0x0f31, 0x1628: 0x0249, 0x1629: 0x0f41,\n\t0x162a: 0x0259, 0x162b: 0x0f51, 0x162c: 0x0359, 0x162d: 0x0f61, 0x162e: 0x0f71, 0x162f: 0x00d9,\n\t0x1630: 0x0f99, 0x1631: 0x2039, 0x1632: 0x0269, 0x1633: 0x01d9, 0x1634: 0x0fa9, 0x1635: 0x0fb9,\n\t0x1636: 0x1089, 0x1637: 0x0279, 0x1638: 0x0369, 0x1639: 0x0289, 0x163a: 0x13d1, 0x163b: 0xaf4a,\n\t0x163c: 0xafca, 0x163d: 0xaf5a, 0x163e: 0xb512, 0x163f: 0xaf1a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x1caa, 0x1641: 0x0039, 0x1642: 0x0ee9, 0x1643: 0x1159, 0x1644: 0x0ef9, 0x1645: 0x0f09,\n\t0x1646: 0x1199, 0x1647: 0x0f31, 0x1648: 0x0249, 0x1649: 0x0f41, 0x164a: 0x0259, 0x164b: 0x0f51,\n\t0x164c: 0x0359, 0x164d: 0x0f61, 0x164e: 0x0f71, 0x164f: 0x00d9, 0x1650: 0x0f99, 0x1651: 0x2039,\n\t0x1652: 0x0269, 0x1653: 0x01d9, 0x1654: 0x0fa9, 0x1655: 0x0fb9, 0x1656: 0x1089, 0x1657: 0x0279,\n\t0x1658: 0x0369, 0x1659: 0x0289, 0x165a: 0x13d1, 0x165b: 0xaf2a, 0x165c: 0xb522, 0x165d: 0xaf3a,\n\t0x165e: 0xb532, 0x165f: 0x80d5, 0x1660: 0x80f5, 0x1661: 0x29d1, 0x1662: 0x8115, 0x1663: 0x8115,\n\t0x1664: 0x8135, 0x1665: 0x8155, 0x1666: 0x8175, 0x1667: 0x8195, 0x1668: 0x81b5, 0x1669: 0x81d5,\n\t0x166a: 0x81f5, 0x166b: 0x8215, 0x166c: 0x8235, 0x166d: 0x8255, 0x166e: 0x8275, 0x166f: 0x8295,\n\t0x1670: 0x82b5, 0x1671: 0x82d5, 0x1672: 0x82f5, 0x1673: 0x8315, 0x1674: 0x8335, 0x1675: 0x8355,\n\t0x1676: 0x8375, 0x1677: 0x8395, 0x1678: 0x83b5, 0x1679: 0x83d5, 0x167a: 0x83f5, 0x167b: 0x8415,\n\t0x167c: 0x81b5, 0x167d: 0x8435, 0x167e: 0x8455, 0x167f: 0x8215,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x8475, 0x1681: 0x8495, 0x1682: 0x84b5, 0x1683: 0x84d5, 0x1684: 0x84f5, 0x1685: 0x8515,\n\t0x1686: 0x8535, 0x1687: 0x8555, 0x1688: 0x84d5, 0x1689: 0x8575, 0x168a: 0x84d5, 0x168b: 0x8595,\n\t0x168c: 0x8595, 0x168d: 0x85b5, 0x168e: 0x85b5, 0x168f: 0x85d5, 0x1690: 0x8515, 0x1691: 0x85f5,\n\t0x1692: 0x8615, 0x1693: 0x85f5, 0x1694: 0x8635, 0x1695: 0x8615, 0x1696: 0x8655, 0x1697: 0x8655,\n\t0x1698: 0x8675, 0x1699: 0x8675, 0x169a: 0x8695, 0x169b: 0x8695, 0x169c: 0x8615, 0x169d: 0x8115,\n\t0x169e: 0x86b5, 0x169f: 0x86d5, 0x16a0: 0x0040, 0x16a1: 0x86f5, 0x16a2: 0x8715, 0x16a3: 0x8735,\n\t0x16a4: 0x8755, 0x16a5: 0x8735, 0x16a6: 0x8775, 0x16a7: 0x8795, 0x16a8: 0x87b5, 0x16a9: 0x87b5,\n\t0x16aa: 0x87d5, 0x16ab: 0x87d5, 0x16ac: 0x87f5, 0x16ad: 0x87f5, 0x16ae: 0x87d5, 0x16af: 0x87d5,\n\t0x16b0: 0x8815, 0x16b1: 0x8835, 0x16b2: 0x8855, 0x16b3: 0x8875, 0x16b4: 0x8895, 0x16b5: 0x88b5,\n\t0x16b6: 0x88b5, 0x16b7: 0x88b5, 0x16b8: 0x88d5, 0x16b9: 0x88d5, 0x16ba: 0x88d5, 0x16bb: 0x88d5,\n\t0x16bc: 0x87b5, 0x16bd: 0x87b5, 0x16be: 0x87b5, 0x16bf: 0x0040,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0040, 0x16c1: 0x0040, 0x16c2: 0x8715, 0x16c3: 0x86f5, 0x16c4: 0x88f5, 0x16c5: 0x86f5,\n\t0x16c6: 0x8715, 0x16c7: 0x86f5, 0x16c8: 0x0040, 0x16c9: 0x0040, 0x16ca: 0x8915, 0x16cb: 0x8715,\n\t0x16cc: 0x8935, 0x16cd: 0x88f5, 0x16ce: 0x8935, 0x16cf: 0x8715, 0x16d0: 0x0040, 0x16d1: 0x0040,\n\t0x16d2: 0x8955, 0x16d3: 0x8975, 0x16d4: 0x8875, 0x16d5: 0x8935, 0x16d6: 0x88f5, 0x16d7: 0x8935,\n\t0x16d8: 0x0040, 0x16d9: 0x0040, 0x16da: 0x8995, 0x16db: 0x89b5, 0x16dc: 0x8995, 0x16dd: 0x0040,\n\t0x16de: 0x0040, 0x16df: 0x0040, 0x16e0: 0xb541, 0x16e1: 0xb559, 0x16e2: 0xb571, 0x16e3: 0x89d6,\n\t0x16e4: 0xb589, 0x16e5: 0xb5a1, 0x16e6: 0x89f5, 0x16e7: 0x0040, 0x16e8: 0x8a15, 0x16e9: 0x8a35,\n\t0x16ea: 0x8a55, 0x16eb: 0x8a35, 0x16ec: 0x8a75, 0x16ed: 0x8a95, 0x16ee: 0x8ab5, 0x16ef: 0x0040,\n\t0x16f0: 0x0040, 0x16f1: 0x0040, 0x16f2: 0x0040, 0x16f3: 0x0040, 0x16f4: 0x0040, 0x16f5: 0x0040,\n\t0x16f6: 0x0040, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0340, 0x16fa: 0x0340, 0x16fb: 0x0340,\n\t0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0a08, 0x1701: 0x0a08, 0x1702: 0x0a08, 0x1703: 0x0a08, 0x1704: 0x0a08, 0x1705: 0x0c08,\n\t0x1706: 0x0808, 0x1707: 0x0c08, 0x1708: 0x0818, 0x1709: 0x0c08, 0x170a: 0x0c08, 0x170b: 0x0808,\n\t0x170c: 0x0808, 0x170d: 0x0908, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0c08, 0x1711: 0x0c08,\n\t0x1712: 0x0c08, 0x1713: 0x0a08, 0x1714: 0x0a08, 0x1715: 0x0a08, 0x1716: 0x0a08, 0x1717: 0x0908,\n\t0x1718: 0x0a08, 0x1719: 0x0a08, 0x171a: 0x0a08, 0x171b: 0x0a08, 0x171c: 0x0a08, 0x171d: 0x0c08,\n\t0x171e: 0x0a08, 0x171f: 0x0a08, 0x1720: 0x0a08, 0x1721: 0x0c08, 0x1722: 0x0808, 0x1723: 0x0808,\n\t0x1724: 0x0c08, 0x1725: 0x3308, 0x1726: 0x3308, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0040,\n\t0x172a: 0x0040, 0x172b: 0x0a18, 0x172c: 0x0a18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0c18,\n\t0x1730: 0x0818, 0x1731: 0x0818, 0x1732: 0x0818, 0x1733: 0x0818, 0x1734: 0x0818, 0x1735: 0x0818,\n\t0x1736: 0x0818, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0c08, 0x1742: 0x0a08, 0x1743: 0x0c08, 0x1744: 0x0c08, 0x1745: 0x0c08,\n\t0x1746: 0x0a08, 0x1747: 0x0a08, 0x1748: 0x0a08, 0x1749: 0x0c08, 0x174a: 0x0a08, 0x174b: 0x0a08,\n\t0x174c: 0x0c08, 0x174d: 0x0a08, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0a08, 0x1751: 0x0c08,\n\t0x1752: 0x0040, 0x1753: 0x0040, 0x1754: 0x0040, 0x1755: 0x0040, 0x1756: 0x0040, 0x1757: 0x0040,\n\t0x1758: 0x0040, 0x1759: 0x0818, 0x175a: 0x0818, 0x175b: 0x0818, 0x175c: 0x0818, 0x175d: 0x0040,\n\t0x175e: 0x0040, 0x175f: 0x0040, 0x1760: 0x0040, 0x1761: 0x0040, 0x1762: 0x0040, 0x1763: 0x0040,\n\t0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0c18,\n\t0x176a: 0x0c18, 0x176b: 0x0c18, 0x176c: 0x0c18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0818,\n\t0x1770: 0x0040, 0x1771: 0x0040, 0x1772: 0x0040, 0x1773: 0x0040, 0x1774: 0x0040, 0x1775: 0x0040,\n\t0x1776: 0x0040, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x3308, 0x1781: 0x3308, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x0040, 0x1785: 0x0008,\n\t0x1786: 0x0008, 0x1787: 0x0008, 0x1788: 0x0008, 0x1789: 0x0008, 0x178a: 0x0008, 0x178b: 0x0008,\n\t0x178c: 0x0008, 0x178d: 0x0040, 0x178e: 0x0040, 0x178f: 0x0008, 0x1790: 0x0008, 0x1791: 0x0040,\n\t0x1792: 0x0040, 0x1793: 0x0008, 0x1794: 0x0008, 0x1795: 0x0008, 0x1796: 0x0008, 0x1797: 0x0008,\n\t0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0008, 0x17a3: 0x0008,\n\t0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0040,\n\t0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008,\n\t0x17b0: 0x0008, 0x17b1: 0x0040, 0x17b2: 0x0008, 0x17b3: 0x0008, 0x17b4: 0x0040, 0x17b5: 0x0008,\n\t0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x3308, 0x17bd: 0x0008, 0x17be: 0x3008, 0x17bf: 0x3008,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3008, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x3008, 0x17c5: 0x0040,\n\t0x17c6: 0x0040, 0x17c7: 0x3008, 0x17c8: 0x3008, 0x17c9: 0x0040, 0x17ca: 0x0040, 0x17cb: 0x3008,\n\t0x17cc: 0x3008, 0x17cd: 0x3808, 0x17ce: 0x0040, 0x17cf: 0x0040, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0040, 0x17d4: 0x0040, 0x17d5: 0x0040, 0x17d6: 0x0040, 0x17d7: 0x3008,\n\t0x17d8: 0x0040, 0x17d9: 0x0040, 0x17da: 0x0040, 0x17db: 0x0040, 0x17dc: 0x0040, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x3008, 0x17e3: 0x3008,\n\t0x17e4: 0x0040, 0x17e5: 0x0040, 0x17e6: 0x3308, 0x17e7: 0x3308, 0x17e8: 0x3308, 0x17e9: 0x3308,\n\t0x17ea: 0x3308, 0x17eb: 0x3308, 0x17ec: 0x3308, 0x17ed: 0x0040, 0x17ee: 0x0040, 0x17ef: 0x0040,\n\t0x17f0: 0x3308, 0x17f1: 0x3308, 0x17f2: 0x3308, 0x17f3: 0x3308, 0x17f4: 0x3308, 0x17f5: 0x0040,\n\t0x17f6: 0x0040, 0x17f7: 0x0040, 0x17f8: 0x0040, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x0040,\n\t0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0039, 0x1801: 0x0ee9, 0x1802: 0x1159, 0x1803: 0x0ef9, 0x1804: 0x0f09, 0x1805: 0x1199,\n\t0x1806: 0x0f31, 0x1807: 0x0249, 0x1808: 0x0f41, 0x1809: 0x0259, 0x180a: 0x0f51, 0x180b: 0x0359,\n\t0x180c: 0x0f61, 0x180d: 0x0f71, 0x180e: 0x00d9, 0x180f: 0x0f99, 0x1810: 0x2039, 0x1811: 0x0269,\n\t0x1812: 0x01d9, 0x1813: 0x0fa9, 0x1814: 0x0fb9, 0x1815: 0x1089, 0x1816: 0x0279, 0x1817: 0x0369,\n\t0x1818: 0x0289, 0x1819: 0x13d1, 0x181a: 0x0039, 0x181b: 0x0ee9, 0x181c: 0x1159, 0x181d: 0x0ef9,\n\t0x181e: 0x0f09, 0x181f: 0x1199, 0x1820: 0x0f31, 0x1821: 0x0249, 0x1822: 0x0f41, 0x1823: 0x0259,\n\t0x1824: 0x0f51, 0x1825: 0x0359, 0x1826: 0x0f61, 0x1827: 0x0f71, 0x1828: 0x00d9, 0x1829: 0x0f99,\n\t0x182a: 0x2039, 0x182b: 0x0269, 0x182c: 0x01d9, 0x182d: 0x0fa9, 0x182e: 0x0fb9, 0x182f: 0x1089,\n\t0x1830: 0x0279, 0x1831: 0x0369, 0x1832: 0x0289, 0x1833: 0x13d1, 0x1834: 0x0039, 0x1835: 0x0ee9,\n\t0x1836: 0x1159, 0x1837: 0x0ef9, 0x1838: 0x0f09, 0x1839: 0x1199, 0x183a: 0x0f31, 0x183b: 0x0249,\n\t0x183c: 0x0f41, 0x183d: 0x0259, 0x183e: 0x0f51, 0x183f: 0x0359,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0f61, 0x1841: 0x0f71, 0x1842: 0x00d9, 0x1843: 0x0f99, 0x1844: 0x2039, 0x1845: 0x0269,\n\t0x1846: 0x01d9, 0x1847: 0x0fa9, 0x1848: 0x0fb9, 0x1849: 0x1089, 0x184a: 0x0279, 0x184b: 0x0369,\n\t0x184c: 0x0289, 0x184d: 0x13d1, 0x184e: 0x0039, 0x184f: 0x0ee9, 0x1850: 0x1159, 0x1851: 0x0ef9,\n\t0x1852: 0x0f09, 0x1853: 0x1199, 0x1854: 0x0f31, 0x1855: 0x0040, 0x1856: 0x0f41, 0x1857: 0x0259,\n\t0x1858: 0x0f51, 0x1859: 0x0359, 0x185a: 0x0f61, 0x185b: 0x0f71, 0x185c: 0x00d9, 0x185d: 0x0f99,\n\t0x185e: 0x2039, 0x185f: 0x0269, 0x1860: 0x01d9, 0x1861: 0x0fa9, 0x1862: 0x0fb9, 0x1863: 0x1089,\n\t0x1864: 0x0279, 0x1865: 0x0369, 0x1866: 0x0289, 0x1867: 0x13d1, 0x1868: 0x0039, 0x1869: 0x0ee9,\n\t0x186a: 0x1159, 0x186b: 0x0ef9, 0x186c: 0x0f09, 0x186d: 0x1199, 0x186e: 0x0f31, 0x186f: 0x0249,\n\t0x1870: 0x0f41, 0x1871: 0x0259, 0x1872: 0x0f51, 0x1873: 0x0359, 0x1874: 0x0f61, 0x1875: 0x0f71,\n\t0x1876: 0x00d9, 0x1877: 0x0f99, 0x1878: 0x2039, 0x1879: 0x0269, 0x187a: 0x01d9, 0x187b: 0x0fa9,\n\t0x187c: 0x0fb9, 0x187d: 0x1089, 0x187e: 0x0279, 0x187f: 0x0369,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0289, 0x1881: 0x13d1, 0x1882: 0x0039, 0x1883: 0x0ee9, 0x1884: 0x1159, 0x1885: 0x0ef9,\n\t0x1886: 0x0f09, 0x1887: 0x1199, 0x1888: 0x0f31, 0x1889: 0x0249, 0x188a: 0x0f41, 0x188b: 0x0259,\n\t0x188c: 0x0f51, 0x188d: 0x0359, 0x188e: 0x0f61, 0x188f: 0x0f71, 0x1890: 0x00d9, 0x1891: 0x0f99,\n\t0x1892: 0x2039, 0x1893: 0x0269, 0x1894: 0x01d9, 0x1895: 0x0fa9, 0x1896: 0x0fb9, 0x1897: 0x1089,\n\t0x1898: 0x0279, 0x1899: 0x0369, 0x189a: 0x0289, 0x189b: 0x13d1, 0x189c: 0x0039, 0x189d: 0x0040,\n\t0x189e: 0x1159, 0x189f: 0x0ef9, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0f31, 0x18a3: 0x0040,\n\t0x18a4: 0x0040, 0x18a5: 0x0259, 0x18a6: 0x0f51, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0f71,\n\t0x18aa: 0x00d9, 0x18ab: 0x0f99, 0x18ac: 0x2039, 0x18ad: 0x0040, 0x18ae: 0x01d9, 0x18af: 0x0fa9,\n\t0x18b0: 0x0fb9, 0x18b1: 0x1089, 0x18b2: 0x0279, 0x18b3: 0x0369, 0x18b4: 0x0289, 0x18b5: 0x13d1,\n\t0x18b6: 0x0039, 0x18b7: 0x0ee9, 0x18b8: 0x1159, 0x18b9: 0x0ef9, 0x18ba: 0x0040, 0x18bb: 0x1199,\n\t0x18bc: 0x0040, 0x18bd: 0x0249, 0x18be: 0x0f41, 0x18bf: 0x0259,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0f51, 0x18c1: 0x0359, 0x18c2: 0x0f61, 0x18c3: 0x0f71, 0x18c4: 0x0040, 0x18c5: 0x0f99,\n\t0x18c6: 0x2039, 0x18c7: 0x0269, 0x18c8: 0x01d9, 0x18c9: 0x0fa9, 0x18ca: 0x0fb9, 0x18cb: 0x1089,\n\t0x18cc: 0x0279, 0x18cd: 0x0369, 0x18ce: 0x0289, 0x18cf: 0x13d1, 0x18d0: 0x0039, 0x18d1: 0x0ee9,\n\t0x18d2: 0x1159, 0x18d3: 0x0ef9, 0x18d4: 0x0f09, 0x18d5: 0x1199, 0x18d6: 0x0f31, 0x18d7: 0x0249,\n\t0x18d8: 0x0f41, 0x18d9: 0x0259, 0x18da: 0x0f51, 0x18db: 0x0359, 0x18dc: 0x0f61, 0x18dd: 0x0f71,\n\t0x18de: 0x00d9, 0x18df: 0x0f99, 0x18e0: 0x2039, 0x18e1: 0x0269, 0x18e2: 0x01d9, 0x18e3: 0x0fa9,\n\t0x18e4: 0x0fb9, 0x18e5: 0x1089, 0x18e6: 0x0279, 0x18e7: 0x0369, 0x18e8: 0x0289, 0x18e9: 0x13d1,\n\t0x18ea: 0x0039, 0x18eb: 0x0ee9, 0x18ec: 0x1159, 0x18ed: 0x0ef9, 0x18ee: 0x0f09, 0x18ef: 0x1199,\n\t0x18f0: 0x0f31, 0x18f1: 0x0249, 0x18f2: 0x0f41, 0x18f3: 0x0259, 0x18f4: 0x0f51, 0x18f5: 0x0359,\n\t0x18f6: 0x0f61, 0x18f7: 0x0f71, 0x18f8: 0x00d9, 0x18f9: 0x0f99, 0x18fa: 0x2039, 0x18fb: 0x0269,\n\t0x18fc: 0x01d9, 0x18fd: 0x0fa9, 0x18fe: 0x0fb9, 0x18ff: 0x1089,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0279, 0x1901: 0x0369, 0x1902: 0x0289, 0x1903: 0x13d1, 0x1904: 0x0039, 0x1905: 0x0ee9,\n\t0x1906: 0x0040, 0x1907: 0x0ef9, 0x1908: 0x0f09, 0x1909: 0x1199, 0x190a: 0x0f31, 0x190b: 0x0040,\n\t0x190c: 0x0040, 0x190d: 0x0259, 0x190e: 0x0f51, 0x190f: 0x0359, 0x1910: 0x0f61, 0x1911: 0x0f71,\n\t0x1912: 0x00d9, 0x1913: 0x0f99, 0x1914: 0x2039, 0x1915: 0x0040, 0x1916: 0x01d9, 0x1917: 0x0fa9,\n\t0x1918: 0x0fb9, 0x1919: 0x1089, 0x191a: 0x0279, 0x191b: 0x0369, 0x191c: 0x0289, 0x191d: 0x0040,\n\t0x191e: 0x0039, 0x191f: 0x0ee9, 0x1920: 0x1159, 0x1921: 0x0ef9, 0x1922: 0x0f09, 0x1923: 0x1199,\n\t0x1924: 0x0f31, 0x1925: 0x0249, 0x1926: 0x0f41, 0x1927: 0x0259, 0x1928: 0x0f51, 0x1929: 0x0359,\n\t0x192a: 0x0f61, 0x192b: 0x0f71, 0x192c: 0x00d9, 0x192d: 0x0f99, 0x192e: 0x2039, 0x192f: 0x0269,\n\t0x1930: 0x01d9, 0x1931: 0x0fa9, 0x1932: 0x0fb9, 0x1933: 0x1089, 0x1934: 0x0279, 0x1935: 0x0369,\n\t0x1936: 0x0289, 0x1937: 0x13d1, 0x1938: 0x0039, 0x1939: 0x0ee9, 0x193a: 0x0040, 0x193b: 0x0ef9,\n\t0x193c: 0x0f09, 0x193d: 0x1199, 0x193e: 0x0f31, 0x193f: 0x0040,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0f41, 0x1941: 0x0259, 0x1942: 0x0f51, 0x1943: 0x0359, 0x1944: 0x0f61, 0x1945: 0x0040,\n\t0x1946: 0x00d9, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x01d9, 0x194b: 0x0fa9,\n\t0x194c: 0x0fb9, 0x194d: 0x1089, 0x194e: 0x0279, 0x194f: 0x0369, 0x1950: 0x0289, 0x1951: 0x0040,\n\t0x1952: 0x0039, 0x1953: 0x0ee9, 0x1954: 0x1159, 0x1955: 0x0ef9, 0x1956: 0x0f09, 0x1957: 0x1199,\n\t0x1958: 0x0f31, 0x1959: 0x0249, 0x195a: 0x0f41, 0x195b: 0x0259, 0x195c: 0x0f51, 0x195d: 0x0359,\n\t0x195e: 0x0f61, 0x195f: 0x0f71, 0x1960: 0x00d9, 0x1961: 0x0f99, 0x1962: 0x2039, 0x1963: 0x0269,\n\t0x1964: 0x01d9, 0x1965: 0x0fa9, 0x1966: 0x0fb9, 0x1967: 0x1089, 0x1968: 0x0279, 0x1969: 0x0369,\n\t0x196a: 0x0289, 0x196b: 0x13d1, 0x196c: 0x0039, 0x196d: 0x0ee9, 0x196e: 0x1159, 0x196f: 0x0ef9,\n\t0x1970: 0x0f09, 0x1971: 0x1199, 0x1972: 0x0f31, 0x1973: 0x0249, 0x1974: 0x0f41, 0x1975: 0x0259,\n\t0x1976: 0x0f51, 0x1977: 0x0359, 0x1978: 0x0f61, 0x1979: 0x0f71, 0x197a: 0x00d9, 0x197b: 0x0f99,\n\t0x197c: 0x2039, 0x197d: 0x0269, 0x197e: 0x01d9, 0x197f: 0x0fa9,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0fb9, 0x1981: 0x1089, 0x1982: 0x0279, 0x1983: 0x0369, 0x1984: 0x0289, 0x1985: 0x13d1,\n\t0x1986: 0x0039, 0x1987: 0x0ee9, 0x1988: 0x1159, 0x1989: 0x0ef9, 0x198a: 0x0f09, 0x198b: 0x1199,\n\t0x198c: 0x0f31, 0x198d: 0x0249, 0x198e: 0x0f41, 0x198f: 0x0259, 0x1990: 0x0f51, 0x1991: 0x0359,\n\t0x1992: 0x0f61, 0x1993: 0x0f71, 0x1994: 0x00d9, 0x1995: 0x0f99, 0x1996: 0x2039, 0x1997: 0x0269,\n\t0x1998: 0x01d9, 0x1999: 0x0fa9, 0x199a: 0x0fb9, 0x199b: 0x1089, 0x199c: 0x0279, 0x199d: 0x0369,\n\t0x199e: 0x0289, 0x199f: 0x13d1, 0x19a0: 0x0039, 0x19a1: 0x0ee9, 0x19a2: 0x1159, 0x19a3: 0x0ef9,\n\t0x19a4: 0x0f09, 0x19a5: 0x1199, 0x19a6: 0x0f31, 0x19a7: 0x0249, 0x19a8: 0x0f41, 0x19a9: 0x0259,\n\t0x19aa: 0x0f51, 0x19ab: 0x0359, 0x19ac: 0x0f61, 0x19ad: 0x0f71, 0x19ae: 0x00d9, 0x19af: 0x0f99,\n\t0x19b0: 0x2039, 0x19b1: 0x0269, 0x19b2: 0x01d9, 0x19b3: 0x0fa9, 0x19b4: 0x0fb9, 0x19b5: 0x1089,\n\t0x19b6: 0x0279, 0x19b7: 0x0369, 0x19b8: 0x0289, 0x19b9: 0x13d1, 0x19ba: 0x0039, 0x19bb: 0x0ee9,\n\t0x19bc: 0x1159, 0x19bd: 0x0ef9, 0x19be: 0x0f09, 0x19bf: 0x1199,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0f31, 0x19c1: 0x0249, 0x19c2: 0x0f41, 0x19c3: 0x0259, 0x19c4: 0x0f51, 0x19c5: 0x0359,\n\t0x19c6: 0x0f61, 0x19c7: 0x0f71, 0x19c8: 0x00d9, 0x19c9: 0x0f99, 0x19ca: 0x2039, 0x19cb: 0x0269,\n\t0x19cc: 0x01d9, 0x19cd: 0x0fa9, 0x19ce: 0x0fb9, 0x19cf: 0x1089, 0x19d0: 0x0279, 0x19d1: 0x0369,\n\t0x19d2: 0x0289, 0x19d3: 0x13d1, 0x19d4: 0x0039, 0x19d5: 0x0ee9, 0x19d6: 0x1159, 0x19d7: 0x0ef9,\n\t0x19d8: 0x0f09, 0x19d9: 0x1199, 0x19da: 0x0f31, 0x19db: 0x0249, 0x19dc: 0x0f41, 0x19dd: 0x0259,\n\t0x19de: 0x0f51, 0x19df: 0x0359, 0x19e0: 0x0f61, 0x19e1: 0x0f71, 0x19e2: 0x00d9, 0x19e3: 0x0f99,\n\t0x19e4: 0x2039, 0x19e5: 0x0269, 0x19e6: 0x01d9, 0x19e7: 0x0fa9, 0x19e8: 0x0fb9, 0x19e9: 0x1089,\n\t0x19ea: 0x0279, 0x19eb: 0x0369, 0x19ec: 0x0289, 0x19ed: 0x13d1, 0x19ee: 0x0039, 0x19ef: 0x0ee9,\n\t0x19f0: 0x1159, 0x19f1: 0x0ef9, 0x19f2: 0x0f09, 0x19f3: 0x1199, 0x19f4: 0x0f31, 0x19f5: 0x0249,\n\t0x19f6: 0x0f41, 0x19f7: 0x0259, 0x19f8: 0x0f51, 0x19f9: 0x0359, 0x19fa: 0x0f61, 0x19fb: 0x0f71,\n\t0x19fc: 0x00d9, 0x19fd: 0x0f99, 0x19fe: 0x2039, 0x19ff: 0x0269,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x01d9, 0x1a01: 0x0fa9, 0x1a02: 0x0fb9, 0x1a03: 0x1089, 0x1a04: 0x0279, 0x1a05: 0x0369,\n\t0x1a06: 0x0289, 0x1a07: 0x13d1, 0x1a08: 0x0039, 0x1a09: 0x0ee9, 0x1a0a: 0x1159, 0x1a0b: 0x0ef9,\n\t0x1a0c: 0x0f09, 0x1a0d: 0x1199, 0x1a0e: 0x0f31, 0x1a0f: 0x0249, 0x1a10: 0x0f41, 0x1a11: 0x0259,\n\t0x1a12: 0x0f51, 0x1a13: 0x0359, 0x1a14: 0x0f61, 0x1a15: 0x0f71, 0x1a16: 0x00d9, 0x1a17: 0x0f99,\n\t0x1a18: 0x2039, 0x1a19: 0x0269, 0x1a1a: 0x01d9, 0x1a1b: 0x0fa9, 0x1a1c: 0x0fb9, 0x1a1d: 0x1089,\n\t0x1a1e: 0x0279, 0x1a1f: 0x0369, 0x1a20: 0x0289, 0x1a21: 0x13d1, 0x1a22: 0x0039, 0x1a23: 0x0ee9,\n\t0x1a24: 0x1159, 0x1a25: 0x0ef9, 0x1a26: 0x0f09, 0x1a27: 0x1199, 0x1a28: 0x0f31, 0x1a29: 0x0249,\n\t0x1a2a: 0x0f41, 0x1a2b: 0x0259, 0x1a2c: 0x0f51, 0x1a2d: 0x0359, 0x1a2e: 0x0f61, 0x1a2f: 0x0f71,\n\t0x1a30: 0x00d9, 0x1a31: 0x0f99, 0x1a32: 0x2039, 0x1a33: 0x0269, 0x1a34: 0x01d9, 0x1a35: 0x0fa9,\n\t0x1a36: 0x0fb9, 0x1a37: 0x1089, 0x1a38: 0x0279, 0x1a39: 0x0369, 0x1a3a: 0x0289, 0x1a3b: 0x13d1,\n\t0x1a3c: 0x0039, 0x1a3d: 0x0ee9, 0x1a3e: 0x1159, 0x1a3f: 0x0ef9,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x0f09, 0x1a41: 0x1199, 0x1a42: 0x0f31, 0x1a43: 0x0249, 0x1a44: 0x0f41, 0x1a45: 0x0259,\n\t0x1a46: 0x0f51, 0x1a47: 0x0359, 0x1a48: 0x0f61, 0x1a49: 0x0f71, 0x1a4a: 0x00d9, 0x1a4b: 0x0f99,\n\t0x1a4c: 0x2039, 0x1a4d: 0x0269, 0x1a4e: 0x01d9, 0x1a4f: 0x0fa9, 0x1a50: 0x0fb9, 0x1a51: 0x1089,\n\t0x1a52: 0x0279, 0x1a53: 0x0369, 0x1a54: 0x0289, 0x1a55: 0x13d1, 0x1a56: 0x0039, 0x1a57: 0x0ee9,\n\t0x1a58: 0x1159, 0x1a59: 0x0ef9, 0x1a5a: 0x0f09, 0x1a5b: 0x1199, 0x1a5c: 0x0f31, 0x1a5d: 0x0249,\n\t0x1a5e: 0x0f41, 0x1a5f: 0x0259, 0x1a60: 0x0f51, 0x1a61: 0x0359, 0x1a62: 0x0f61, 0x1a63: 0x0f71,\n\t0x1a64: 0x00d9, 0x1a65: 0x0f99, 0x1a66: 0x2039, 0x1a67: 0x0269, 0x1a68: 0x01d9, 0x1a69: 0x0fa9,\n\t0x1a6a: 0x0fb9, 0x1a6b: 0x1089, 0x1a6c: 0x0279, 0x1a6d: 0x0369, 0x1a6e: 0x0289, 0x1a6f: 0x13d1,\n\t0x1a70: 0x0039, 0x1a71: 0x0ee9, 0x1a72: 0x1159, 0x1a73: 0x0ef9, 0x1a74: 0x0f09, 0x1a75: 0x1199,\n\t0x1a76: 0x0f31, 0x1a77: 0x0249, 0x1a78: 0x0f41, 0x1a79: 0x0259, 0x1a7a: 0x0f51, 0x1a7b: 0x0359,\n\t0x1a7c: 0x0f61, 0x1a7d: 0x0f71, 0x1a7e: 0x00d9, 0x1a7f: 0x0f99,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x2039, 0x1a81: 0x0269, 0x1a82: 0x01d9, 0x1a83: 0x0fa9, 0x1a84: 0x0fb9, 0x1a85: 0x1089,\n\t0x1a86: 0x0279, 0x1a87: 0x0369, 0x1a88: 0x0289, 0x1a89: 0x13d1, 0x1a8a: 0x0039, 0x1a8b: 0x0ee9,\n\t0x1a8c: 0x1159, 0x1a8d: 0x0ef9, 0x1a8e: 0x0f09, 0x1a8f: 0x1199, 0x1a90: 0x0f31, 0x1a91: 0x0249,\n\t0x1a92: 0x0f41, 0x1a93: 0x0259, 0x1a94: 0x0f51, 0x1a95: 0x0359, 0x1a96: 0x0f61, 0x1a97: 0x0f71,\n\t0x1a98: 0x00d9, 0x1a99: 0x0f99, 0x1a9a: 0x2039, 0x1a9b: 0x0269, 0x1a9c: 0x01d9, 0x1a9d: 0x0fa9,\n\t0x1a9e: 0x0fb9, 0x1a9f: 0x1089, 0x1aa0: 0x0279, 0x1aa1: 0x0369, 0x1aa2: 0x0289, 0x1aa3: 0x13d1,\n\t0x1aa4: 0xba81, 0x1aa5: 0xba99, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0xbab1, 0x1aa9: 0x1099,\n\t0x1aaa: 0x10b1, 0x1aab: 0x10c9, 0x1aac: 0xbac9, 0x1aad: 0xbae1, 0x1aae: 0xbaf9, 0x1aaf: 0x1429,\n\t0x1ab0: 0x1a31, 0x1ab1: 0xbb11, 0x1ab2: 0xbb29, 0x1ab3: 0xbb41, 0x1ab4: 0xbb59, 0x1ab5: 0xbb71,\n\t0x1ab6: 0xbb89, 0x1ab7: 0x2109, 0x1ab8: 0x1111, 0x1ab9: 0x1429, 0x1aba: 0xbba1, 0x1abb: 0xbbb9,\n\t0x1abc: 0xbbd1, 0x1abd: 0x10e1, 0x1abe: 0x10f9, 0x1abf: 0xbbe9,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2079, 0x1ac1: 0xbc01, 0x1ac2: 0xbab1, 0x1ac3: 0x1099, 0x1ac4: 0x10b1, 0x1ac5: 0x10c9,\n\t0x1ac6: 0xbac9, 0x1ac7: 0xbae1, 0x1ac8: 0xbaf9, 0x1ac9: 0x1429, 0x1aca: 0x1a31, 0x1acb: 0xbb11,\n\t0x1acc: 0xbb29, 0x1acd: 0xbb41, 0x1ace: 0xbb59, 0x1acf: 0xbb71, 0x1ad0: 0xbb89, 0x1ad1: 0x2109,\n\t0x1ad2: 0x1111, 0x1ad3: 0xbba1, 0x1ad4: 0xbba1, 0x1ad5: 0xbbb9, 0x1ad6: 0xbbd1, 0x1ad7: 0x10e1,\n\t0x1ad8: 0x10f9, 0x1ad9: 0xbbe9, 0x1ada: 0x2079, 0x1adb: 0xbc21, 0x1adc: 0xbac9, 0x1add: 0x1429,\n\t0x1ade: 0xbb11, 0x1adf: 0x10e1, 0x1ae0: 0x1111, 0x1ae1: 0x2109, 0x1ae2: 0xbab1, 0x1ae3: 0x1099,\n\t0x1ae4: 0x10b1, 0x1ae5: 0x10c9, 0x1ae6: 0xbac9, 0x1ae7: 0xbae1, 0x1ae8: 0xbaf9, 0x1ae9: 0x1429,\n\t0x1aea: 0x1a31, 0x1aeb: 0xbb11, 0x1aec: 0xbb29, 0x1aed: 0xbb41, 0x1aee: 0xbb59, 0x1aef: 0xbb71,\n\t0x1af0: 0xbb89, 0x1af1: 0x2109, 0x1af2: 0x1111, 0x1af3: 0x1429, 0x1af4: 0xbba1, 0x1af5: 0xbbb9,\n\t0x1af6: 0xbbd1, 0x1af7: 0x10e1, 0x1af8: 0x10f9, 0x1af9: 0xbbe9, 0x1afa: 0x2079, 0x1afb: 0xbc01,\n\t0x1afc: 0xbab1, 0x1afd: 0x1099, 0x1afe: 0x10b1, 0x1aff: 0x10c9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0xbac9, 0x1b01: 0xbae1, 0x1b02: 0xbaf9, 0x1b03: 0x1429, 0x1b04: 0x1a31, 0x1b05: 0xbb11,\n\t0x1b06: 0xbb29, 0x1b07: 0xbb41, 0x1b08: 0xbb59, 0x1b09: 0xbb71, 0x1b0a: 0xbb89, 0x1b0b: 0x2109,\n\t0x1b0c: 0x1111, 0x1b0d: 0xbba1, 0x1b0e: 0xbba1, 0x1b0f: 0xbbb9, 0x1b10: 0xbbd1, 0x1b11: 0x10e1,\n\t0x1b12: 0x10f9, 0x1b13: 0xbbe9, 0x1b14: 0x2079, 0x1b15: 0xbc21, 0x1b16: 0xbac9, 0x1b17: 0x1429,\n\t0x1b18: 0xbb11, 0x1b19: 0x10e1, 0x1b1a: 0x1111, 0x1b1b: 0x2109, 0x1b1c: 0xbab1, 0x1b1d: 0x1099,\n\t0x1b1e: 0x10b1, 0x1b1f: 0x10c9, 0x1b20: 0xbac9, 0x1b21: 0xbae1, 0x1b22: 0xbaf9, 0x1b23: 0x1429,\n\t0x1b24: 0x1a31, 0x1b25: 0xbb11, 0x1b26: 0xbb29, 0x1b27: 0xbb41, 0x1b28: 0xbb59, 0x1b29: 0xbb71,\n\t0x1b2a: 0xbb89, 0x1b2b: 0x2109, 0x1b2c: 0x1111, 0x1b2d: 0x1429, 0x1b2e: 0xbba1, 0x1b2f: 0xbbb9,\n\t0x1b30: 0xbbd1, 0x1b31: 0x10e1, 0x1b32: 0x10f9, 0x1b33: 0xbbe9, 0x1b34: 0x2079, 0x1b35: 0xbc01,\n\t0x1b36: 0xbab1, 0x1b37: 0x1099, 0x1b38: 0x10b1, 0x1b39: 0x10c9, 0x1b3a: 0xbac9, 0x1b3b: 0xbae1,\n\t0x1b3c: 0xbaf9, 0x1b3d: 0x1429, 0x1b3e: 0x1a31, 0x1b3f: 0xbb11,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbb29, 0x1b41: 0xbb41, 0x1b42: 0xbb59, 0x1b43: 0xbb71, 0x1b44: 0xbb89, 0x1b45: 0x2109,\n\t0x1b46: 0x1111, 0x1b47: 0xbba1, 0x1b48: 0xbba1, 0x1b49: 0xbbb9, 0x1b4a: 0xbbd1, 0x1b4b: 0x10e1,\n\t0x1b4c: 0x10f9, 0x1b4d: 0xbbe9, 0x1b4e: 0x2079, 0x1b4f: 0xbc21, 0x1b50: 0xbac9, 0x1b51: 0x1429,\n\t0x1b52: 0xbb11, 0x1b53: 0x10e1, 0x1b54: 0x1111, 0x1b55: 0x2109, 0x1b56: 0xbab1, 0x1b57: 0x1099,\n\t0x1b58: 0x10b1, 0x1b59: 0x10c9, 0x1b5a: 0xbac9, 0x1b5b: 0xbae1, 0x1b5c: 0xbaf9, 0x1b5d: 0x1429,\n\t0x1b5e: 0x1a31, 0x1b5f: 0xbb11, 0x1b60: 0xbb29, 0x1b61: 0xbb41, 0x1b62: 0xbb59, 0x1b63: 0xbb71,\n\t0x1b64: 0xbb89, 0x1b65: 0x2109, 0x1b66: 0x1111, 0x1b67: 0x1429, 0x1b68: 0xbba1, 0x1b69: 0xbbb9,\n\t0x1b6a: 0xbbd1, 0x1b6b: 0x10e1, 0x1b6c: 0x10f9, 0x1b6d: 0xbbe9, 0x1b6e: 0x2079, 0x1b6f: 0xbc01,\n\t0x1b70: 0xbab1, 0x1b71: 0x1099, 0x1b72: 0x10b1, 0x1b73: 0x10c9, 0x1b74: 0xbac9, 0x1b75: 0xbae1,\n\t0x1b76: 0xbaf9, 0x1b77: 0x1429, 0x1b78: 0x1a31, 0x1b79: 0xbb11, 0x1b7a: 0xbb29, 0x1b7b: 0xbb41,\n\t0x1b7c: 0xbb59, 0x1b7d: 0xbb71, 0x1b7e: 0xbb89, 0x1b7f: 0x2109,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x1111, 0x1b81: 0xbba1, 0x1b82: 0xbba1, 0x1b83: 0xbbb9, 0x1b84: 0xbbd1, 0x1b85: 0x10e1,\n\t0x1b86: 0x10f9, 0x1b87: 0xbbe9, 0x1b88: 0x2079, 0x1b89: 0xbc21, 0x1b8a: 0xbac9, 0x1b8b: 0x1429,\n\t0x1b8c: 0xbb11, 0x1b8d: 0x10e1, 0x1b8e: 0x1111, 0x1b8f: 0x2109, 0x1b90: 0xbab1, 0x1b91: 0x1099,\n\t0x1b92: 0x10b1, 0x1b93: 0x10c9, 0x1b94: 0xbac9, 0x1b95: 0xbae1, 0x1b96: 0xbaf9, 0x1b97: 0x1429,\n\t0x1b98: 0x1a31, 0x1b99: 0xbb11, 0x1b9a: 0xbb29, 0x1b9b: 0xbb41, 0x1b9c: 0xbb59, 0x1b9d: 0xbb71,\n\t0x1b9e: 0xbb89, 0x1b9f: 0x2109, 0x1ba0: 0x1111, 0x1ba1: 0x1429, 0x1ba2: 0xbba1, 0x1ba3: 0xbbb9,\n\t0x1ba4: 0xbbd1, 0x1ba5: 0x10e1, 0x1ba6: 0x10f9, 0x1ba7: 0xbbe9, 0x1ba8: 0x2079, 0x1ba9: 0xbc01,\n\t0x1baa: 0xbab1, 0x1bab: 0x1099, 0x1bac: 0x10b1, 0x1bad: 0x10c9, 0x1bae: 0xbac9, 0x1baf: 0xbae1,\n\t0x1bb0: 0xbaf9, 0x1bb1: 0x1429, 0x1bb2: 0x1a31, 0x1bb3: 0xbb11, 0x1bb4: 0xbb29, 0x1bb5: 0xbb41,\n\t0x1bb6: 0xbb59, 0x1bb7: 0xbb71, 0x1bb8: 0xbb89, 0x1bb9: 0x2109, 0x1bba: 0x1111, 0x1bbb: 0xbba1,\n\t0x1bbc: 0xbba1, 0x1bbd: 0xbbb9, 0x1bbe: 0xbbd1, 0x1bbf: 0x10e1,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x10f9, 0x1bc1: 0xbbe9, 0x1bc2: 0x2079, 0x1bc3: 0xbc21, 0x1bc4: 0xbac9, 0x1bc5: 0x1429,\n\t0x1bc6: 0xbb11, 0x1bc7: 0x10e1, 0x1bc8: 0x1111, 0x1bc9: 0x2109, 0x1bca: 0xbc41, 0x1bcb: 0xbc41,\n\t0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x1f41, 0x1bcf: 0x00c9, 0x1bd0: 0x0069, 0x1bd1: 0x0079,\n\t0x1bd2: 0x1f51, 0x1bd3: 0x1f61, 0x1bd4: 0x1f71, 0x1bd5: 0x1f81, 0x1bd6: 0x1f91, 0x1bd7: 0x1fa1,\n\t0x1bd8: 0x1f41, 0x1bd9: 0x00c9, 0x1bda: 0x0069, 0x1bdb: 0x0079, 0x1bdc: 0x1f51, 0x1bdd: 0x1f61,\n\t0x1bde: 0x1f71, 0x1bdf: 0x1f81, 0x1be0: 0x1f91, 0x1be1: 0x1fa1, 0x1be2: 0x1f41, 0x1be3: 0x00c9,\n\t0x1be4: 0x0069, 0x1be5: 0x0079, 0x1be6: 0x1f51, 0x1be7: 0x1f61, 0x1be8: 0x1f71, 0x1be9: 0x1f81,\n\t0x1bea: 0x1f91, 0x1beb: 0x1fa1, 0x1bec: 0x1f41, 0x1bed: 0x00c9, 0x1bee: 0x0069, 0x1bef: 0x0079,\n\t0x1bf0: 0x1f51, 0x1bf1: 0x1f61, 0x1bf2: 0x1f71, 0x1bf3: 0x1f81, 0x1bf4: 0x1f91, 0x1bf5: 0x1fa1,\n\t0x1bf6: 0x1f41, 0x1bf7: 0x00c9, 0x1bf8: 0x0069, 0x1bf9: 0x0079, 0x1bfa: 0x1f51, 0x1bfb: 0x1f61,\n\t0x1bfc: 0x1f71, 0x1bfd: 0x1f81, 0x1bfe: 0x1f91, 0x1bff: 0x1fa1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115,\n\t0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135,\n\t0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115,\n\t0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175,\n\t0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115,\n\t0x1c1e: 0x8b05, 0x1c1f: 0x8b05, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08,\n\t0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08,\n\t0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08,\n\t0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08,\n\t0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08,\n\t0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xb189, 0x1c41: 0xb1a1, 0x1c42: 0xb201, 0x1c43: 0xb249, 0x1c44: 0x0040, 0x1c45: 0xb411,\n\t0x1c46: 0xb291, 0x1c47: 0xb219, 0x1c48: 0xb309, 0x1c49: 0xb429, 0x1c4a: 0xb399, 0x1c4b: 0xb3b1,\n\t0x1c4c: 0xb3c9, 0x1c4d: 0xb3e1, 0x1c4e: 0xb2a9, 0x1c4f: 0xb339, 0x1c50: 0xb369, 0x1c51: 0xb2d9,\n\t0x1c52: 0xb381, 0x1c53: 0xb279, 0x1c54: 0xb2c1, 0x1c55: 0xb1d1, 0x1c56: 0xb1e9, 0x1c57: 0xb231,\n\t0x1c58: 0xb261, 0x1c59: 0xb2f1, 0x1c5a: 0xb321, 0x1c5b: 0xb351, 0x1c5c: 0xbc59, 0x1c5d: 0x7949,\n\t0x1c5e: 0xbc71, 0x1c5f: 0xbc89, 0x1c60: 0x0040, 0x1c61: 0xb1a1, 0x1c62: 0xb201, 0x1c63: 0x0040,\n\t0x1c64: 0xb3f9, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0xb219, 0x1c68: 0x0040, 0x1c69: 0xb429,\n\t0x1c6a: 0xb399, 0x1c6b: 0xb3b1, 0x1c6c: 0xb3c9, 0x1c6d: 0xb3e1, 0x1c6e: 0xb2a9, 0x1c6f: 0xb339,\n\t0x1c70: 0xb369, 0x1c71: 0xb2d9, 0x1c72: 0xb381, 0x1c73: 0x0040, 0x1c74: 0xb2c1, 0x1c75: 0xb1d1,\n\t0x1c76: 0xb1e9, 0x1c77: 0xb231, 0x1c78: 0x0040, 0x1c79: 0xb2f1, 0x1c7a: 0x0040, 0x1c7b: 0xb351,\n\t0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0xb201, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040,\n\t0x1c86: 0x0040, 0x1c87: 0xb219, 0x1c88: 0x0040, 0x1c89: 0xb429, 0x1c8a: 0x0040, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0x0040, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0x0040, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0x0040, 0x1c94: 0xb2c1, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0xb231,\n\t0x1c98: 0x0040, 0x1c99: 0xb2f1, 0x1c9a: 0x0040, 0x1c9b: 0xb351, 0x1c9c: 0x0040, 0x1c9d: 0x7949,\n\t0x1c9e: 0x0040, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0xb309, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0x0040, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0xb321, 0x1cbb: 0xb351,\n\t0x1cbc: 0xbc59, 0x1cbd: 0x0040, 0x1cbe: 0xbc71, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0xb189, 0x1cc1: 0xb1a1, 0x1cc2: 0xb201, 0x1cc3: 0xb249, 0x1cc4: 0xb3f9, 0x1cc5: 0xb411,\n\t0x1cc6: 0xb291, 0x1cc7: 0xb219, 0x1cc8: 0xb309, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0xb3c9, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0xb369, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0xb279, 0x1cd4: 0xb2c1, 0x1cd5: 0xb1d1, 0x1cd6: 0xb1e9, 0x1cd7: 0xb231,\n\t0x1cd8: 0xb261, 0x1cd9: 0xb2f1, 0x1cda: 0xb321, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x0040,\n\t0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0xb249,\n\t0x1ce4: 0x0040, 0x1ce5: 0xb411, 0x1ce6: 0xb291, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0x0040, 0x1ceb: 0xb3b1, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0xb279, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0xb261, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x0040, 0x1d01: 0xbca2, 0x1d02: 0xbcba, 0x1d03: 0xbcd2, 0x1d04: 0xbcea, 0x1d05: 0xbd02,\n\t0x1d06: 0xbd1a, 0x1d07: 0xbd32, 0x1d08: 0xbd4a, 0x1d09: 0xbd62, 0x1d0a: 0xbd7a, 0x1d0b: 0x0018,\n\t0x1d0c: 0x0018, 0x1d0d: 0x0040, 0x1d0e: 0x0040, 0x1d0f: 0x0040, 0x1d10: 0xbd92, 0x1d11: 0xbdb2,\n\t0x1d12: 0xbdd2, 0x1d13: 0xbdf2, 0x1d14: 0xbe12, 0x1d15: 0xbe32, 0x1d16: 0xbe52, 0x1d17: 0xbe72,\n\t0x1d18: 0xbe92, 0x1d19: 0xbeb2, 0x1d1a: 0xbed2, 0x1d1b: 0xbef2, 0x1d1c: 0xbf12, 0x1d1d: 0xbf32,\n\t0x1d1e: 0xbf52, 0x1d1f: 0xbf72, 0x1d20: 0xbf92, 0x1d21: 0xbfb2, 0x1d22: 0xbfd2, 0x1d23: 0xbff2,\n\t0x1d24: 0xc012, 0x1d25: 0xc032, 0x1d26: 0xc052, 0x1d27: 0xc072, 0x1d28: 0xc092, 0x1d29: 0xc0b2,\n\t0x1d2a: 0xc0d1, 0x1d2b: 0x1159, 0x1d2c: 0x0269, 0x1d2d: 0x6671, 0x1d2e: 0xc111, 0x1d2f: 0x0040,\n\t0x1d30: 0x0039, 0x1d31: 0x0ee9, 0x1d32: 0x1159, 0x1d33: 0x0ef9, 0x1d34: 0x0f09, 0x1d35: 0x1199,\n\t0x1d36: 0x0f31, 0x1d37: 0x0249, 0x1d38: 0x0f41, 0x1d39: 0x0259, 0x1d3a: 0x0f51, 0x1d3b: 0x0359,\n\t0x1d3c: 0x0f61, 0x1d3d: 0x0f71, 0x1d3e: 0x00d9, 0x1d3f: 0x0f99,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x2039, 0x1d41: 0x0269, 0x1d42: 0x01d9, 0x1d43: 0x0fa9, 0x1d44: 0x0fb9, 0x1d45: 0x1089,\n\t0x1d46: 0x0279, 0x1d47: 0x0369, 0x1d48: 0x0289, 0x1d49: 0x13d1, 0x1d4a: 0xc129, 0x1d4b: 0x65b1,\n\t0x1d4c: 0xc141, 0x1d4d: 0x1441, 0x1d4e: 0xc159, 0x1d4f: 0xc179, 0x1d50: 0x0018, 0x1d51: 0x0018,\n\t0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018,\n\t0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018,\n\t0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018,\n\t0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018,\n\t0x1d6a: 0xc191, 0x1d6b: 0xc1a9, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040,\n\t0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018,\n\t0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018,\n\t0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0xc1d9, 0x1d81: 0xc211, 0x1d82: 0xc249, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040,\n\t0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040,\n\t0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0xc269, 0x1d91: 0xc289,\n\t0x1d92: 0xc2a9, 0x1d93: 0xc2c9, 0x1d94: 0xc2e9, 0x1d95: 0xc309, 0x1d96: 0xc329, 0x1d97: 0xc349,\n\t0x1d98: 0xc369, 0x1d99: 0xc389, 0x1d9a: 0xc3a9, 0x1d9b: 0xc3c9, 0x1d9c: 0xc3e9, 0x1d9d: 0xc409,\n\t0x1d9e: 0xc429, 0x1d9f: 0xc449, 0x1da0: 0xc469, 0x1da1: 0xc489, 0x1da2: 0xc4a9, 0x1da3: 0xc4c9,\n\t0x1da4: 0xc4e9, 0x1da5: 0xc509, 0x1da6: 0xc529, 0x1da7: 0xc549, 0x1da8: 0xc569, 0x1da9: 0xc589,\n\t0x1daa: 0xc5a9, 0x1dab: 0xc5c9, 0x1dac: 0xc5e9, 0x1dad: 0xc609, 0x1dae: 0xc629, 0x1daf: 0xc649,\n\t0x1db0: 0xc669, 0x1db1: 0xc689, 0x1db2: 0xc6a9, 0x1db3: 0xc6c9, 0x1db4: 0xc6e9, 0x1db5: 0xc709,\n\t0x1db6: 0xc729, 0x1db7: 0xc749, 0x1db8: 0xc769, 0x1db9: 0xc789, 0x1dba: 0xc7a9, 0x1dbb: 0xc7c9,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xcaf9, 0x1dc1: 0xcb19, 0x1dc2: 0xcb39, 0x1dc3: 0x8b1d, 0x1dc4: 0xcb59, 0x1dc5: 0xcb79,\n\t0x1dc6: 0xcb99, 0x1dc7: 0xcbb9, 0x1dc8: 0xcbd9, 0x1dc9: 0xcbf9, 0x1dca: 0xcc19, 0x1dcb: 0xcc39,\n\t0x1dcc: 0xcc59, 0x1dcd: 0x8b3d, 0x1dce: 0xcc79, 0x1dcf: 0xcc99, 0x1dd0: 0xccb9, 0x1dd1: 0xccd9,\n\t0x1dd2: 0x8b5d, 0x1dd3: 0xccf9, 0x1dd4: 0xcd19, 0x1dd5: 0xc429, 0x1dd6: 0x8b7d, 0x1dd7: 0xcd39,\n\t0x1dd8: 0xcd59, 0x1dd9: 0xcd79, 0x1dda: 0xcd99, 0x1ddb: 0xcdb9, 0x1ddc: 0x8b9d, 0x1ddd: 0xcdd9,\n\t0x1dde: 0xcdf9, 0x1ddf: 0xce19, 0x1de0: 0xce39, 0x1de1: 0xce59, 0x1de2: 0xc789, 0x1de3: 0xce79,\n\t0x1de4: 0xce99, 0x1de5: 0xceb9, 0x1de6: 0xced9, 0x1de7: 0xcef9, 0x1de8: 0xcf19, 0x1de9: 0xcf39,\n\t0x1dea: 0xcf59, 0x1deb: 0xcf79, 0x1dec: 0xcf99, 0x1ded: 0xcfb9, 0x1dee: 0xcfd9, 0x1def: 0xcff9,\n\t0x1df0: 0xd019, 0x1df1: 0xd039, 0x1df2: 0xd039, 0x1df3: 0xd039, 0x1df4: 0x8bbd, 0x1df5: 0xd059,\n\t0x1df6: 0xd079, 0x1df7: 0xd099, 0x1df8: 0x8bdd, 0x1df9: 0xd0b9, 0x1dfa: 0xd0d9, 0x1dfb: 0xd0f9,\n\t0x1dfc: 0xd119, 0x1dfd: 0xd139, 0x1dfe: 0xd159, 0x1dff: 0xd179,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xd199, 0x1e01: 0xd1b9, 0x1e02: 0xd1d9, 0x1e03: 0xd1f9, 0x1e04: 0xd219, 0x1e05: 0xd239,\n\t0x1e06: 0xd239, 0x1e07: 0xd259, 0x1e08: 0xd279, 0x1e09: 0xd299, 0x1e0a: 0xd2b9, 0x1e0b: 0xd2d9,\n\t0x1e0c: 0xd2f9, 0x1e0d: 0xd319, 0x1e0e: 0xd339, 0x1e0f: 0xd359, 0x1e10: 0xd379, 0x1e11: 0xd399,\n\t0x1e12: 0xd3b9, 0x1e13: 0xd3d9, 0x1e14: 0xd3f9, 0x1e15: 0xd419, 0x1e16: 0xd439, 0x1e17: 0xd459,\n\t0x1e18: 0xd479, 0x1e19: 0x8bfd, 0x1e1a: 0xd499, 0x1e1b: 0xd4b9, 0x1e1c: 0xd4d9, 0x1e1d: 0xc309,\n\t0x1e1e: 0xd4f9, 0x1e1f: 0xd519, 0x1e20: 0x8c1d, 0x1e21: 0x8c3d, 0x1e22: 0xd539, 0x1e23: 0xd559,\n\t0x1e24: 0xd579, 0x1e25: 0xd599, 0x1e26: 0xd5b9, 0x1e27: 0xd5d9, 0x1e28: 0x2040, 0x1e29: 0xd5f9,\n\t0x1e2a: 0xd619, 0x1e2b: 0xd619, 0x1e2c: 0x8c5d, 0x1e2d: 0xd639, 0x1e2e: 0xd659, 0x1e2f: 0xd679,\n\t0x1e30: 0xd699, 0x1e31: 0x8c7d, 0x1e32: 0xd6b9, 0x1e33: 0xd6d9, 0x1e34: 0x2040, 0x1e35: 0xd6f9,\n\t0x1e36: 0xd719, 0x1e37: 0xd739, 0x1e38: 0xd759, 0x1e39: 0xd779, 0x1e3a: 0xd799, 0x1e3b: 0x8c9d,\n\t0x1e3c: 0xd7b9, 0x1e3d: 0x8cbd, 0x1e3e: 0xd7d9, 0x1e3f: 0xd7f9,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd819, 0x1e41: 0xd839, 0x1e42: 0xd859, 0x1e43: 0xd879, 0x1e44: 0xd899, 0x1e45: 0xd8b9,\n\t0x1e46: 0xd8d9, 0x1e47: 0xd8f9, 0x1e48: 0xd919, 0x1e49: 0x8cdd, 0x1e4a: 0xd939, 0x1e4b: 0xd959,\n\t0x1e4c: 0xd979, 0x1e4d: 0xd999, 0x1e4e: 0xd9b9, 0x1e4f: 0x8cfd, 0x1e50: 0xd9d9, 0x1e51: 0x8d1d,\n\t0x1e52: 0x8d3d, 0x1e53: 0xd9f9, 0x1e54: 0xda19, 0x1e55: 0xda19, 0x1e56: 0xda39, 0x1e57: 0x8d5d,\n\t0x1e58: 0x8d7d, 0x1e59: 0xda59, 0x1e5a: 0xda79, 0x1e5b: 0xda99, 0x1e5c: 0xdab9, 0x1e5d: 0xdad9,\n\t0x1e5e: 0xdaf9, 0x1e5f: 0xdb19, 0x1e60: 0xdb39, 0x1e61: 0xdb59, 0x1e62: 0xdb79, 0x1e63: 0xdb99,\n\t0x1e64: 0x8d9d, 0x1e65: 0xdbb9, 0x1e66: 0xdbd9, 0x1e67: 0xdbf9, 0x1e68: 0xdc19, 0x1e69: 0xdbf9,\n\t0x1e6a: 0xdc39, 0x1e6b: 0xdc59, 0x1e6c: 0xdc79, 0x1e6d: 0xdc99, 0x1e6e: 0xdcb9, 0x1e6f: 0xdcd9,\n\t0x1e70: 0xdcf9, 0x1e71: 0xdd19, 0x1e72: 0xdd39, 0x1e73: 0xdd59, 0x1e74: 0xdd79, 0x1e75: 0xdd99,\n\t0x1e76: 0xddb9, 0x1e77: 0xddd9, 0x1e78: 0x8dbd, 0x1e79: 0xddf9, 0x1e7a: 0xde19, 0x1e7b: 0xde39,\n\t0x1e7c: 0xde59, 0x1e7d: 0xde79, 0x1e7e: 0x8ddd, 0x1e7f: 0xde99,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xe599, 0x1e81: 0xe5b9, 0x1e82: 0xe5d9, 0x1e83: 0xe5f9, 0x1e84: 0xe619, 0x1e85: 0xe639,\n\t0x1e86: 0x8efd, 0x1e87: 0xe659, 0x1e88: 0xe679, 0x1e89: 0xe699, 0x1e8a: 0xe6b9, 0x1e8b: 0xe6d9,\n\t0x1e8c: 0xe6f9, 0x1e8d: 0x8f1d, 0x1e8e: 0xe719, 0x1e8f: 0xe739, 0x1e90: 0x8f3d, 0x1e91: 0x8f5d,\n\t0x1e92: 0xe759, 0x1e93: 0xe779, 0x1e94: 0xe799, 0x1e95: 0xe7b9, 0x1e96: 0xe7d9, 0x1e97: 0xe7f9,\n\t0x1e98: 0xe819, 0x1e99: 0xe839, 0x1e9a: 0xe859, 0x1e9b: 0x8f7d, 0x1e9c: 0xe879, 0x1e9d: 0x8f9d,\n\t0x1e9e: 0xe899, 0x1e9f: 0x2040, 0x1ea0: 0xe8b9, 0x1ea1: 0xe8d9, 0x1ea2: 0xe8f9, 0x1ea3: 0x8fbd,\n\t0x1ea4: 0xe919, 0x1ea5: 0xe939, 0x1ea6: 0x8fdd, 0x1ea7: 0x8ffd, 0x1ea8: 0xe959, 0x1ea9: 0xe979,\n\t0x1eaa: 0xe999, 0x1eab: 0xe9b9, 0x1eac: 0xe9d9, 0x1ead: 0xe9d9, 0x1eae: 0xe9f9, 0x1eaf: 0xea19,\n\t0x1eb0: 0xea39, 0x1eb1: 0xea59, 0x1eb2: 0xea79, 0x1eb3: 0xea99, 0x1eb4: 0xeab9, 0x1eb5: 0x901d,\n\t0x1eb6: 0xead9, 0x1eb7: 0x903d, 0x1eb8: 0xeaf9, 0x1eb9: 0x905d, 0x1eba: 0xeb19, 0x1ebb: 0x907d,\n\t0x1ebc: 0x909d, 0x1ebd: 0x90bd, 0x1ebe: 0xeb39, 0x1ebf: 0xeb59,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xeb79, 0x1ec1: 0x90dd, 0x1ec2: 0x90fd, 0x1ec3: 0x911d, 0x1ec4: 0x913d, 0x1ec5: 0xeb99,\n\t0x1ec6: 0xebb9, 0x1ec7: 0xebb9, 0x1ec8: 0xebd9, 0x1ec9: 0xebf9, 0x1eca: 0xec19, 0x1ecb: 0xec39,\n\t0x1ecc: 0xec59, 0x1ecd: 0x915d, 0x1ece: 0xec79, 0x1ecf: 0xec99, 0x1ed0: 0xecb9, 0x1ed1: 0xecd9,\n\t0x1ed2: 0x917d, 0x1ed3: 0xecf9, 0x1ed4: 0x919d, 0x1ed5: 0x91bd, 0x1ed6: 0xed19, 0x1ed7: 0xed39,\n\t0x1ed8: 0xed59, 0x1ed9: 0xed79, 0x1eda: 0xed99, 0x1edb: 0xedb9, 0x1edc: 0x91dd, 0x1edd: 0x91fd,\n\t0x1ede: 0x921d, 0x1edf: 0x2040, 0x1ee0: 0xedd9, 0x1ee1: 0x923d, 0x1ee2: 0xedf9, 0x1ee3: 0xee19,\n\t0x1ee4: 0xee39, 0x1ee5: 0x925d, 0x1ee6: 0xee59, 0x1ee7: 0xee79, 0x1ee8: 0xee99, 0x1ee9: 0xeeb9,\n\t0x1eea: 0xeed9, 0x1eeb: 0x927d, 0x1eec: 0xeef9, 0x1eed: 0xef19, 0x1eee: 0xef39, 0x1eef: 0xef59,\n\t0x1ef0: 0xef79, 0x1ef1: 0xef99, 0x1ef2: 0x929d, 0x1ef3: 0x92bd, 0x1ef4: 0xefb9, 0x1ef5: 0x92dd,\n\t0x1ef6: 0xefd9, 0x1ef7: 0x92fd, 0x1ef8: 0xeff9, 0x1ef9: 0xf019, 0x1efa: 0xf039, 0x1efb: 0x931d,\n\t0x1efc: 0x933d, 0x1efd: 0xf059, 0x1efe: 0x935d, 0x1eff: 0xf079,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xf6b9, 0x1f01: 0xf6d9, 0x1f02: 0xf6f9, 0x1f03: 0xf719, 0x1f04: 0xf739, 0x1f05: 0x951d,\n\t0x1f06: 0xf759, 0x1f07: 0xf779, 0x1f08: 0xf799, 0x1f09: 0xf7b9, 0x1f0a: 0xf7d9, 0x1f0b: 0x953d,\n\t0x1f0c: 0x955d, 0x1f0d: 0xf7f9, 0x1f0e: 0xf819, 0x1f0f: 0xf839, 0x1f10: 0xf859, 0x1f11: 0xf879,\n\t0x1f12: 0xf899, 0x1f13: 0x957d, 0x1f14: 0xf8b9, 0x1f15: 0xf8d9, 0x1f16: 0xf8f9, 0x1f17: 0xf919,\n\t0x1f18: 0x959d, 0x1f19: 0x95bd, 0x1f1a: 0xf939, 0x1f1b: 0xf959, 0x1f1c: 0xf979, 0x1f1d: 0x95dd,\n\t0x1f1e: 0xf999, 0x1f1f: 0xf9b9, 0x1f20: 0x6815, 0x1f21: 0x95fd, 0x1f22: 0xf9d9, 0x1f23: 0xf9f9,\n\t0x1f24: 0xfa19, 0x1f25: 0x961d, 0x1f26: 0xfa39, 0x1f27: 0xfa59, 0x1f28: 0xfa79, 0x1f29: 0xfa99,\n\t0x1f2a: 0xfab9, 0x1f2b: 0xfad9, 0x1f2c: 0xfaf9, 0x1f2d: 0x963d, 0x1f2e: 0xfb19, 0x1f2f: 0xfb39,\n\t0x1f30: 0xfb59, 0x1f31: 0x965d, 0x1f32: 0xfb79, 0x1f33: 0xfb99, 0x1f34: 0xfbb9, 0x1f35: 0xfbd9,\n\t0x1f36: 0x7b35, 0x1f37: 0x967d, 0x1f38: 0xfbf9, 0x1f39: 0xfc19, 0x1f3a: 0xfc39, 0x1f3b: 0x969d,\n\t0x1f3c: 0xfc59, 0x1f3d: 0x96bd, 0x1f3e: 0xfc79, 0x1f3f: 0xfc79,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xfc99, 0x1f41: 0x96dd, 0x1f42: 0xfcb9, 0x1f43: 0xfcd9, 0x1f44: 0xfcf9, 0x1f45: 0xfd19,\n\t0x1f46: 0xfd39, 0x1f47: 0xfd59, 0x1f48: 0xfd79, 0x1f49: 0x96fd, 0x1f4a: 0xfd99, 0x1f4b: 0xfdb9,\n\t0x1f4c: 0xfdd9, 0x1f4d: 0xfdf9, 0x1f4e: 0xfe19, 0x1f4f: 0xfe39, 0x1f50: 0x971d, 0x1f51: 0xfe59,\n\t0x1f52: 0x973d, 0x1f53: 0x975d, 0x1f54: 0x977d, 0x1f55: 0xfe79, 0x1f56: 0xfe99, 0x1f57: 0xfeb9,\n\t0x1f58: 0xfed9, 0x1f59: 0xfef9, 0x1f5a: 0xff19, 0x1f5b: 0xff39, 0x1f5c: 0xff59, 0x1f5d: 0x979d,\n\t0x1f5e: 0x0040, 0x1f5f: 0x0040, 0x1f60: 0x0040, 0x1f61: 0x0040, 0x1f62: 0x0040, 0x1f63: 0x0040,\n\t0x1f64: 0x0040, 0x1f65: 0x0040, 0x1f66: 0x0040, 0x1f67: 0x0040, 0x1f68: 0x0040, 0x1f69: 0x0040,\n\t0x1f6a: 0x0040, 0x1f6b: 0x0040, 0x1f6c: 0x0040, 0x1f6d: 0x0040, 0x1f6e: 0x0040, 0x1f6f: 0x0040,\n\t0x1f70: 0x0040, 0x1f71: 0x0040, 0x1f72: 0x0040, 0x1f73: 0x0040, 0x1f74: 0x0040, 0x1f75: 0x0040,\n\t0x1f76: 0x0040, 0x1f77: 0x0040, 0x1f78: 0x0040, 0x1f79: 0x0040, 0x1f7a: 0x0040, 0x1f7b: 0x0040,\n\t0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040,\n}\n\n// idnaIndex: 35 blocks, 2240 entries, 4480 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2240]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7c, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7d, 0xca: 0x7e, 0xcb: 0x07, 0xcc: 0x7f, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x80, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x81, 0xd6: 0x82, 0xd7: 0x83,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x84, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x85, 0xde: 0x86, 0xdf: 0x87,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1c, 0xf1: 0x1d, 0xf2: 0x1d, 0xf3: 0x1f, 0xf4: 0x20,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x88, 0x121: 0x89, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x13, 0x126: 0x14, 0x127: 0x15,\n\t0x128: 0x16, 0x129: 0x17, 0x12a: 0x18, 0x12b: 0x19, 0x12c: 0x1a, 0x12d: 0x1b, 0x12e: 0x1c, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1d, 0x132: 0x1e, 0x133: 0x1f, 0x134: 0x8f, 0x135: 0x20, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x21, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x22, 0x13e: 0x23, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x24, 0x175: 0x25, 0x176: 0x26, 0x177: 0xc3,\n\t0x178: 0x27, 0x179: 0x27, 0x17a: 0x28, 0x17b: 0x27, 0x17c: 0xc4, 0x17d: 0x29, 0x17e: 0x2a, 0x17f: 0x2b,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2c, 0x181: 0x2d, 0x182: 0x2e, 0x183: 0xc5, 0x184: 0x2f, 0x185: 0x30, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0xca,\n\t0x190: 0xcb, 0x191: 0x31, 0x192: 0x32, 0x193: 0x33, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9b, 0x1ab: 0xce, 0x1ac: 0x9b, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0xd1,\n\t0x1b0: 0xd2, 0x1b1: 0x34, 0x1b2: 0x27, 0x1b3: 0x35, 0x1b4: 0xd3, 0x1b5: 0xd4, 0x1b6: 0xd5, 0x1b7: 0xd6,\n\t0x1b8: 0xd7, 0x1b9: 0xd8, 0x1ba: 0xd9, 0x1bb: 0xda, 0x1bc: 0xdb, 0x1bd: 0xdc, 0x1be: 0xdd, 0x1bf: 0x36,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x37, 0x1c1: 0xde, 0x1c2: 0xdf, 0x1c3: 0xe0, 0x1c4: 0xe1, 0x1c5: 0x38, 0x1c6: 0x39, 0x1c7: 0xe2,\n\t0x1c8: 0xe3, 0x1c9: 0x3a, 0x1ca: 0x3b, 0x1cb: 0x3c, 0x1cc: 0x3d, 0x1cd: 0x3e, 0x1ce: 0x3f, 0x1cf: 0x40,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe4,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe5, 0x2d3: 0xe6, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe7, 0x2d9: 0x41, 0x2da: 0x42, 0x2db: 0xe8, 0x2dc: 0x43, 0x2dd: 0x44, 0x2de: 0x45, 0x2df: 0xe9,\n\t0x2e0: 0xea, 0x2e1: 0xeb, 0x2e2: 0xec, 0x2e3: 0xed, 0x2e4: 0xee, 0x2e5: 0xef, 0x2e6: 0xf0, 0x2e7: 0xf1,\n\t0x2e8: 0xf2, 0x2e9: 0xf3, 0x2ea: 0xf4, 0x2eb: 0xf5, 0x2ec: 0xf6, 0x2ed: 0xf7, 0x2ee: 0xf8, 0x2ef: 0xf9,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xfa, 0x31f: 0xfb,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff,\n\t0x3a8: 0x46, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x47, 0x3ac: 0x48, 0x3ad: 0x49, 0x3ae: 0x4a, 0x3af: 0x4b,\n\t0x3b0: 0x102, 0x3b1: 0x4c, 0x3b2: 0x4d, 0x3b3: 0x4e, 0x3b4: 0x4f, 0x3b5: 0x50, 0x3b6: 0x103, 0x3b7: 0x51,\n\t0x3b8: 0x52, 0x3b9: 0x53, 0x3ba: 0x54, 0x3bb: 0x55, 0x3bc: 0x56, 0x3bd: 0x57, 0x3be: 0x58, 0x3bf: 0x59,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0x9f, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9b, 0x3c6: 0x108, 0x3c7: 0x109,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f,\n\t0x3d0: 0x110, 0x3d1: 0x9f, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xba, 0x3e6: 0x11c, 0x3e7: 0x11d,\n\t0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5a, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5b, 0x3ef: 0xba,\n\t0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x128, 0x401: 0x129, 0x402: 0x12a, 0x403: 0x12b, 0x404: 0x12c, 0x405: 0x12d, 0x406: 0x12e, 0x407: 0x12f,\n\t0x408: 0x130, 0x409: 0xba, 0x40a: 0x131, 0x40b: 0x132, 0x40c: 0x5c, 0x40d: 0x5d, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x133, 0x411: 0x134, 0x412: 0x135, 0x413: 0x136, 0x414: 0xba, 0x415: 0xba, 0x416: 0x137, 0x417: 0x138,\n\t0x418: 0x139, 0x419: 0x13a, 0x41a: 0x13b, 0x41b: 0x13c, 0x41c: 0x13d, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0xba, 0x421: 0xba, 0x422: 0x13e, 0x423: 0x13f, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0xba, 0x429: 0xba, 0x42a: 0xba, 0x42b: 0x140, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x141, 0x431: 0x142, 0x432: 0x143, 0x433: 0xba, 0x434: 0xba, 0x435: 0xba, 0x436: 0xba, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x144, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x145, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x146, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x147, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x148, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x140, 0x529: 0x149, 0x52a: 0xba, 0x52b: 0x14a, 0x52c: 0x14b, 0x52d: 0x14c, 0x52e: 0x14d, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x14e, 0x53e: 0x14f, 0x53f: 0x150,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x151,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x152, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x153, 0x581: 0xba, 0x582: 0xba, 0x583: 0xba, 0x584: 0xba, 0x585: 0xba, 0x586: 0xba, 0x587: 0xba,\n\t0x588: 0xba, 0x589: 0xba, 0x58a: 0xba, 0x58b: 0xba, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x154, 0x5b2: 0x155, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x156, 0x5c4: 0x157, 0x5c5: 0x158, 0x5c6: 0x159, 0x5c7: 0x15a,\n\t0x5c8: 0x9b, 0x5c9: 0x15b, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x15c, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65,\n\t0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x15d, 0x5e9: 0x15e, 0x5ea: 0x15f, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x160, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x161, 0x624: 0x6e, 0x625: 0x162, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x163, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x164, 0x641: 0x9b, 0x642: 0x165, 0x643: 0x166, 0x644: 0x72, 0x645: 0x73, 0x646: 0x167, 0x647: 0x168,\n\t0x648: 0x74, 0x649: 0x169, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x16a, 0x65c: 0x9b, 0x65d: 0x16b, 0x65e: 0x9b, 0x65f: 0x16c,\n\t0x660: 0x16d, 0x661: 0x16e, 0x662: 0x16f, 0x663: 0xba, 0x664: 0x170, 0x665: 0x171, 0x666: 0x172, 0x667: 0x173,\n\t0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x174, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x175, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x176, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x177, 0x73b: 0xba, 0x73c: 0xba, 0x73d: 0xba, 0x73e: 0xba, 0x73f: 0xba,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xba, 0x741: 0xba, 0x742: 0xba, 0x743: 0xba, 0x744: 0xba, 0x745: 0xba, 0x746: 0xba, 0x747: 0xba,\n\t0x748: 0xba, 0x749: 0xba, 0x74a: 0xba, 0x74b: 0xba, 0x74c: 0xba, 0x74d: 0xba, 0x74e: 0xba, 0x74f: 0xba,\n\t0x750: 0xba, 0x751: 0xba, 0x752: 0xba, 0x753: 0xba, 0x754: 0xba, 0x755: 0xba, 0x756: 0xba, 0x757: 0xba,\n\t0x758: 0xba, 0x759: 0xba, 0x75a: 0xba, 0x75b: 0xba, 0x75c: 0xba, 0x75d: 0xba, 0x75e: 0xba, 0x75f: 0xba,\n\t0x760: 0x75, 0x761: 0x76, 0x762: 0x77, 0x763: 0x178, 0x764: 0x78, 0x765: 0x79, 0x766: 0x179, 0x767: 0x7a,\n\t0x768: 0x7b, 0x769: 0xba, 0x76a: 0xba, 0x76b: 0xba, 0x76c: 0xba, 0x76d: 0xba, 0x76e: 0xba, 0x76f: 0xba,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x790: 0x0d, 0x791: 0x0e, 0x792: 0x0f, 0x793: 0x10, 0x794: 0x11, 0x795: 0x0b, 0x796: 0x12, 0x797: 0x07,\n\t0x798: 0x13, 0x799: 0x0b, 0x79a: 0x0b, 0x79b: 0x14, 0x79c: 0x0b, 0x79d: 0x15, 0x79e: 0x16, 0x79f: 0x17,\n\t0x7a0: 0x07, 0x7a1: 0x07, 0x7a2: 0x07, 0x7a3: 0x07, 0x7a4: 0x07, 0x7a5: 0x07, 0x7a6: 0x07, 0x7a7: 0x07,\n\t0x7a8: 0x07, 0x7a9: 0x07, 0x7aa: 0x18, 0x7ab: 0x19, 0x7ac: 0x1a, 0x7ad: 0x0b, 0x7ae: 0x0b, 0x7af: 0x1b,\n\t0x7b0: 0x0b, 0x7b1: 0x0b, 0x7b2: 0x0b, 0x7b3: 0x0b, 0x7b4: 0x0b, 0x7b5: 0x0b, 0x7b6: 0x0b, 0x7b7: 0x0b,\n\t0x7b8: 0x0b, 0x7b9: 0x0b, 0x7ba: 0x0b, 0x7bb: 0x0b, 0x7bc: 0x0b, 0x7bd: 0x0b, 0x7be: 0x0b, 0x7bf: 0x0b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0b, 0x7c1: 0x0b, 0x7c2: 0x0b, 0x7c3: 0x0b, 0x7c4: 0x0b, 0x7c5: 0x0b, 0x7c6: 0x0b, 0x7c7: 0x0b,\n\t0x7c8: 0x0b, 0x7c9: 0x0b, 0x7ca: 0x0b, 0x7cb: 0x0b, 0x7cc: 0x0b, 0x7cd: 0x0b, 0x7ce: 0x0b, 0x7cf: 0x0b,\n\t0x7d0: 0x0b, 0x7d1: 0x0b, 0x7d2: 0x0b, 0x7d3: 0x0b, 0x7d4: 0x0b, 0x7d5: 0x0b, 0x7d6: 0x0b, 0x7d7: 0x0b,\n\t0x7d8: 0x0b, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x0b, 0x7dc: 0x0b, 0x7dd: 0x0b, 0x7de: 0x0b, 0x7df: 0x0b,\n\t0x7e0: 0x0b, 0x7e1: 0x0b, 0x7e2: 0x0b, 0x7e3: 0x0b, 0x7e4: 0x0b, 0x7e5: 0x0b, 0x7e6: 0x0b, 0x7e7: 0x0b,\n\t0x7e8: 0x0b, 0x7e9: 0x0b, 0x7ea: 0x0b, 0x7eb: 0x0b, 0x7ec: 0x0b, 0x7ed: 0x0b, 0x7ee: 0x0b, 0x7ef: 0x0b,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x17a, 0x801: 0x17b, 0x802: 0xba, 0x803: 0xba, 0x804: 0x17c, 0x805: 0x17c, 0x806: 0x17c, 0x807: 0x17d,\n\t0x808: 0xba, 0x809: 0xba, 0x80a: 0xba, 0x80b: 0xba, 0x80c: 0xba, 0x80d: 0xba, 0x80e: 0xba, 0x80f: 0xba,\n\t0x810: 0xba, 0x811: 0xba, 0x812: 0xba, 0x813: 0xba, 0x814: 0xba, 0x815: 0xba, 0x816: 0xba, 0x817: 0xba,\n\t0x818: 0xba, 0x819: 0xba, 0x81a: 0xba, 0x81b: 0xba, 0x81c: 0xba, 0x81d: 0xba, 0x81e: 0xba, 0x81f: 0xba,\n\t0x820: 0xba, 0x821: 0xba, 0x822: 0xba, 0x823: 0xba, 0x824: 0xba, 0x825: 0xba, 0x826: 0xba, 0x827: 0xba,\n\t0x828: 0xba, 0x829: 0xba, 0x82a: 0xba, 0x82b: 0xba, 0x82c: 0xba, 0x82d: 0xba, 0x82e: 0xba, 0x82f: 0xba,\n\t0x830: 0xba, 0x831: 0xba, 0x832: 0xba, 0x833: 0xba, 0x834: 0xba, 0x835: 0xba, 0x836: 0xba, 0x837: 0xba,\n\t0x838: 0xba, 0x839: 0xba, 0x83a: 0xba, 0x83b: 0xba, 0x83c: 0xba, 0x83d: 0xba, 0x83e: 0xba, 0x83f: 0xba,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b,\n\t0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b,\n\t0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b,\n\t0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b,\n\t0x860: 0x1e, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b,\n\t0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b,\n\t0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b,\n\t0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n}\n\n// idnaSparseOffset: 258 entries, 516 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x93, 0x98, 0xa1, 0xb1, 0xbf, 0xcc, 0xd8, 0xe9, 0xf3, 0xfa, 0x107, 0x118, 0x11f, 0x12a, 0x139, 0x147, 0x151, 0x153, 0x158, 0x15b, 0x15e, 0x160, 0x16c, 0x177, 0x17f, 0x185, 0x18b, 0x190, 0x195, 0x198, 0x19c, 0x1a2, 0x1a7, 0x1b3, 0x1bd, 0x1c3, 0x1d4, 0x1de, 0x1e1, 0x1e9, 0x1ec, 0x1f9, 0x201, 0x205, 0x20c, 0x214, 0x224, 0x230, 0x232, 0x23c, 0x248, 0x254, 0x260, 0x268, 0x26d, 0x277, 0x288, 0x28c, 0x297, 0x29b, 0x2a4, 0x2ac, 0x2b2, 0x2b7, 0x2ba, 0x2bd, 0x2c1, 0x2c7, 0x2cb, 0x2cf, 0x2d5, 0x2dc, 0x2e2, 0x2ea, 0x2f1, 0x2fc, 0x306, 0x30a, 0x30d, 0x313, 0x317, 0x319, 0x31c, 0x31e, 0x321, 0x32b, 0x32e, 0x33d, 0x341, 0x346, 0x349, 0x34d, 0x352, 0x357, 0x35d, 0x363, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f6, 0x3fb, 0x408, 0x40c, 0x411, 0x413, 0x417, 0x419, 0x41d, 0x426, 0x42c, 0x430, 0x440, 0x44a, 0x44f, 0x452, 0x458, 0x45f, 0x464, 0x468, 0x46e, 0x473, 0x47c, 0x481, 0x487, 0x48e, 0x495, 0x49c, 0x4a0, 0x4a5, 0x4a8, 0x4ad, 0x4b9, 0x4bf, 0x4c4, 0x4cb, 0x4d3, 0x4d8, 0x4dc, 0x4ec, 0x4f3, 0x4f7, 0x4fb, 0x502, 0x504, 0x507, 0x50a, 0x50e, 0x512, 0x518, 0x521, 0x52d, 0x534, 0x53d, 0x545, 0x54c, 0x55a, 0x567, 0x574, 0x57d, 0x581, 0x58f, 0x597, 0x5a2, 0x5ab, 0x5b1, 0x5b9, 0x5c2, 0x5cc, 0x5cf, 0x5db, 0x5de, 0x5e3, 0x5e6, 0x5f0, 0x5f9, 0x605, 0x608, 0x60d, 0x610, 0x613, 0x616, 0x61d, 0x624, 0x628, 0x633, 0x636, 0x63c, 0x641, 0x645, 0x648, 0x64b, 0x64e, 0x653, 0x65d, 0x660, 0x664, 0x673, 0x67f, 0x683, 0x688, 0x68d, 0x691, 0x696, 0x69f, 0x6aa, 0x6b0, 0x6b8, 0x6bc, 0x6c0, 0x6c6, 0x6cc, 0x6d1, 0x6d4, 0x6e2, 0x6e9, 0x6ec, 0x6ef, 0x6f3, 0x6f9, 0x6fe, 0x708, 0x70d, 0x710, 0x713, 0x716, 0x719, 0x71d, 0x720, 0x730, 0x741, 0x746, 0x748, 0x74a}\n\n// idnaSparseValues: 1869 entries, 7476 bytes\nvar idnaSparseValues = [1869]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x6, offset 0x34\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x63\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0xc, offset 0x6b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x77\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0c08, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x85},\n\t{value: 0x0c08, lo: 0x86, hi: 0x87},\n\t{value: 0x0a08, lo: 0x88, hi: 0x88},\n\t{value: 0x0c08, lo: 0x89, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0x93},\n\t{value: 0x0c08, lo: 0x94, hi: 0x94},\n\t{value: 0x0a08, lo: 0x95, hi: 0x95},\n\t{value: 0x0808, lo: 0x96, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf, offset 0x93\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0x10, offset 0x98\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x11, offset 0xa1\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbf\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xcc\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x15, offset 0xd8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x16, offset 0xe9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x17, offset 0xf3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x18, offset 0xfa\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x19, offset 0x107\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x1a, offset 0x118\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1b, offset 0x11f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0x12a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1e, offset 0x147\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1f, offset 0x151\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x20, offset 0x153\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x21, offset 0x158\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x22, offset 0x15b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x23, offset 0x15e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x24, offset 0x160\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x25, offset 0x16c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x26, offset 0x177\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x17f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x28, offset 0x185\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x29, offset 0x18b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2a, offset 0x190\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2b, offset 0x195\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2c, offset 0x198\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2d, offset 0x19c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2e, offset 0x1a2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x30, offset 0x1b3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x31, offset 0x1bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x32, offset 0x1c3\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x33, offset 0x1d4\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x34, offset 0x1de\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x35, offset 0x1e1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x36, offset 0x1e9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x37, offset 0x1ec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x38, offset 0x1f9\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x39, offset 0x201\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x3a, offset 0x205\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3b, offset 0x20c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3c, offset 0x214\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x224\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x230\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3f, offset 0x232\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x41, offset 0x248\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x42, offset 0x254\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x43, offset 0x260\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x44, offset 0x268\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x45, offset 0x26d\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x46, offset 0x277\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x47, offset 0x288\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x48, offset 0x28c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x49, offset 0x297\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4a, offset 0x29b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a4\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4c, offset 0x2ac\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4d, offset 0x2b2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4e, offset 0x2b7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4f, offset 0x2ba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x50, offset 0x2bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x51, offset 0x2c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x52, offset 0x2c7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x53, offset 0x2cb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x54, offset 0x2cf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0018, lo: 0xbd, hi: 0xbf},\n\t// Block 0x55, offset 0x2d5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xab},\n\t{value: 0x0018, lo: 0xac, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2dc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x57, offset 0x2e2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x58, offset 0x2ea\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x59, offset 0x2f1\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x5a, offset 0x2fc\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x306\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5c, offset 0x30a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0xbf},\n\t// Block 0x5d, offset 0x30d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5e, offset 0x313\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5f, offset 0x317\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x319\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x61, offset 0x31c\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x62, offset 0x31e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x63, offset 0x321\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x65, offset 0x32e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x66, offset 0x33d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x67, offset 0x341\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x68, offset 0x346\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x69, offset 0x349\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x6a, offset 0x34d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x6b, offset 0x352\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6c, offset 0x357\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6d, offset 0x35d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6e, offset 0x363\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6f, offset 0x372\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x70, offset 0x378\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x71, offset 0x37c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x72, offset 0x38b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x73, offset 0x390\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x74, offset 0x398\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x75, offset 0x3a2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x3ad\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x77, offset 0x3b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x78, offset 0x3c6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x79, offset 0x3cf\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x7a, offset 0x3df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3ec\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3fb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7e, offset 0x408\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7f, offset 0x40c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x80, offset 0x411\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x413\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x82, offset 0x417\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x83, offset 0x419\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x84, offset 0x41d\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x85, offset 0x426\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x86, offset 0x42c\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x87, offset 0x430\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x88, offset 0x440\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x89, offset 0x44a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x8a, offset 0x44f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x452\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8c, offset 0x458\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8d, offset 0x45f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8e, offset 0x464\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x468\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x46e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x91, offset 0x473\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x92, offset 0x47c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x93, offset 0x481\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x94, offset 0x487\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x95, offset 0x48e\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x96, offset 0x495\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x49c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x4a0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x4a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ad\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9d, offset 0x4bf\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa2, offset 0x4dc\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa3, offset 0x4ec\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa6, offset 0x4fb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa7, offset 0x502\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa8, offset 0x504\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa9, offset 0x507\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xaa, offset 0x50a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xab, offset 0x50e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xac, offset 0x512\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xad, offset 0x518\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xae, offset 0x521\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xaf, offset 0x52d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb0, offset 0x534\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb1, offset 0x53d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb2, offset 0x545\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb3, offset 0x54c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb4, offset 0x55a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb5, offset 0x567\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb6, offset 0x574\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb7, offset 0x57d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb8, offset 0x581\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xb9, offset 0x58f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xba, offset 0x597\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbc, offset 0x5ab\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbe, offset 0x5b9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c2\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xc0, offset 0x5cc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc1, offset 0x5cf\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc2, offset 0x5db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc3, offset 0x5de\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc4, offset 0x5e3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc5, offset 0x5e6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f0\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xc7, offset 0x5f9\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xc8, offset 0x605\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xc9, offset 0x608\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xca, offset 0x60d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xcb, offset 0x610\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xcc, offset 0x613\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xcd, offset 0x616\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xce, offset 0x61d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xcf, offset 0x624\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd0, offset 0x628\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd1, offset 0x633\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xd2, offset 0x636\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd3, offset 0x63c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xd4, offset 0x641\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0xd5, offset 0x645\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xd6, offset 0x648\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xd7, offset 0x64b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0xbf},\n\t// Block 0xd8, offset 0x64e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd9, offset 0x653\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xda, offset 0x65d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xdb, offset 0x660\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xdc, offset 0x664\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xdd, offset 0x673\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xde, offset 0x67f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xdf, offset 0x683\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xe0, offset 0x688\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe1, offset 0x68d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe2, offset 0x691\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe3, offset 0x696\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x69f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xe5, offset 0x6aa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xe6, offset 0x6b0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe7, offset 0x6b8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe8, offset 0x6bc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe9, offset 0x6c0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xea, offset 0x6c6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xeb, offset 0x6cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xec, offset 0x6d1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xed, offset 0x6d4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xbf},\n\t// Block 0xee, offset 0x6e2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xef, offset 0x6e9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf0, offset 0x6ec\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0xbf},\n\t// Block 0xf1, offset 0x6ef\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf2, offset 0x6f3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf3, offset 0x6f9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0xf4, offset 0x6fe\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf5, offset 0x708\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xf6, offset 0x70d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xbf},\n\t// Block 0xf7, offset 0x710\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0xbf},\n\t// Block 0xf8, offset 0x713\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xf9, offset 0x716\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xfa, offset 0x719\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xfb, offset 0x71d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xfc, offset 0x720\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0xfd, offset 0x730\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfe, offset 0x741\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0xff, offset 0x746\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x100, offset 0x748\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x101, offset 0x74a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 41662 bytes (40KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage idna\n\n// appendMapping appends the mapping for the respective rune. isMapped must be\n// true. A mapping is a categorization of a rune as defined in UTS #46.\nfunc (c info) appendMapping(b []byte, s string) []byte {\n\tindex := int(c >> indexShift)\n\tif c&xorBit == 0 {\n\t\ts := mappings[index:]\n\t\treturn append(b, s[1:s[0]+1]...)\n\t}\n\tb = append(b, s...)\n\tif c&inlineXOR == inlineXOR {\n\t\t// TODO: support and handle two-byte inline masks\n\t\tb[len(b)-1] ^= byte(index)\n\t} else {\n\t\tfor p := len(b) - int(xorData[index]); p < len(b); p++ {\n\t\t\tindex++\n\t\t\tb[p] ^= xorData[index]\n\t\t}\n\t}\n\treturn b\n}\n\n// Sparse block handling code.\n\ntype valueRange struct {\n\tvalue  uint16 // header: value:stride\n\tlo, hi byte   // header: lo:n\n}\n\ntype sparseBlocks struct {\n\tvalues []valueRange\n\toffset []uint16\n}\n\nvar idnaSparse = sparseBlocks{\n\tvalues: idnaSparseValues[:],\n\toffset: idnaSparseOffset[:],\n}\n\n// Don't use newIdnaTrie to avoid unconditional linking in of the table.\nvar trie = &idnaTrie{}\n\n// lookup determines the type of block n and looks up the value for b.\n// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block\n// is a list of ranges with an accompanying value. Given a matching range r,\n// the value for b is by r.value + (b - r.lo) * stride.\nfunc (t *sparseBlocks) lookup(n uint32, b byte) uint16 {\n\toffset := t.offset[n]\n\theader := t.values[offset]\n\tlo := offset + 1\n\thi := lo + uint16(header.lo)\n\tfor lo < hi {\n\t\tm := lo + (hi-lo)/2\n\t\tr := t.values[m]\n\t\tif r.lo <= b && b <= r.hi {\n\t\t\treturn r.value + uint16(b-r.lo)*header.value\n\t\t}\n\t\tif b < r.lo {\n\t\t\thi = m\n\t\t} else {\n\t\t\tlo = m + 1\n\t\t}\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage idna\n\n// This file contains definitions for interpreting the trie value of the idna\n// trie generated by \"go run gen*.go\". It is shared by both the generator\n// program and the resultant package. Sharing is achieved by the generator\n// copying gen_trieval.go to trieval.go and changing what's above this comment.\n\n// info holds information from the IDNA mapping table for a single rune. It is\n// the value returned by a trie lookup. In most cases, all information fits in\n// a 16-bit value. For mappings, this value may contain an index into a slice\n// with the mapped string. Such mappings can consist of the actual mapped value\n// or an XOR pattern to be applied to the bytes of the UTF8 encoding of the\n// input rune. This technique is used by the cases packages and reduces the\n// table size significantly.\n//\n// The per-rune values have the following format:\n//\n//   if mapped {\n//     if inlinedXOR {\n//       15..13 inline XOR marker\n//       12..11 unused\n//       10..3  inline XOR mask\n//     } else {\n//       15..3  index into xor or mapping table\n//     }\n//   } else {\n//       15..14 unused\n//       13     mayNeedNorm\n//       12..11 attributes\n//       10..8  joining type\n//        7..3  category type\n//   }\n//      2  use xor pattern\n//   1..0  mapped category\n//\n// See the definitions below for a more detailed description of the various\n// bits.\ntype info uint16\n\nconst (\n\tcatSmallMask = 0x3\n\tcatBigMask   = 0xF8\n\tindexShift   = 3\n\txorBit       = 0x4    // interpret the index as an xor pattern\n\tinlineXOR    = 0xE000 // These bits are set if the XOR pattern is inlined.\n\n\tjoinShift = 8\n\tjoinMask  = 0x07\n\n\t// Attributes\n\tattributesMask = 0x1800\n\tviramaModifier = 0x1800\n\tmodifier       = 0x1000\n\trtl            = 0x0800\n\n\tmayNeedNorm = 0x2000\n)\n\n// A category corresponds to a category defined in the IDNA mapping table.\ntype category uint16\n\nconst (\n\tunknown              category = 0 // not currently defined in unicode.\n\tmapped               category = 1\n\tdisallowedSTD3Mapped category = 2\n\tdeviation            category = 3\n)\n\nconst (\n\tvalid               category = 0x08\n\tvalidNV8            category = 0x18\n\tvalidXV8            category = 0x28\n\tdisallowed          category = 0x40\n\tdisallowedSTD3Valid category = 0x80\n\tignored             category = 0xC0\n)\n\n// join types and additional rune information\nconst (\n\tjoiningL = (iota + 1)\n\tjoiningD\n\tjoiningT\n\tjoiningR\n\n\t//the following types are derived during processing\n\tjoinZWJ\n\tjoinZWNJ\n\tjoinVirama\n\tnumJoinTypes\n)\n\nfunc (c info) isMapped() bool {\n\treturn c&0x3 != 0\n}\n\nfunc (c info) category() category {\n\tsmall := c & catSmallMask\n\tif small != 0 {\n\t\treturn category(small)\n\t}\n\treturn category(c & catBigMask)\n}\n\nfunc (c info) joinType() info {\n\tif c.isMapped() {\n\t\treturn 0\n\t}\n\treturn (c >> joinShift) & joinMask\n}\n\nfunc (c info) isModifier() bool {\n\treturn c&(modifier|catSmallMask) == modifier\n}\n\nfunc (c info) isViramaModifier() bool {\n\treturn c&(attributesMask|catSmallMask) == viramaModifier\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/file.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage webdav\n\nimport (\n\t\"context\"\n\t\"encoding/xml\"\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// slashClean is equivalent to but slightly more efficient than\n// path.Clean(\"/\" + name).\nfunc slashClean(name string) string {\n\tif name == \"\" || name[0] != '/' {\n\t\tname = \"/\" + name\n\t}\n\treturn path.Clean(name)\n}\n\n// A FileSystem implements access to a collection of named files. The elements\n// in a file path are separated by slash ('/', U+002F) characters, regardless\n// of host operating system convention.\n//\n// Each method has the same semantics as the os package's function of the same\n// name.\n//\n// Note that the os.Rename documentation says that \"OS-specific restrictions\n// might apply\". In particular, whether or not renaming a file or directory\n// overwriting another existing file or directory is an error is OS-dependent.\ntype FileSystem interface {\n\tMkdir(ctx context.Context, name string, perm os.FileMode) error\n\tOpenFile(ctx context.Context, name string, flag int, perm os.FileMode) (File, error)\n\tRemoveAll(ctx context.Context, name string) error\n\tRename(ctx context.Context, oldName, newName string) error\n\tStat(ctx context.Context, name string) (os.FileInfo, error)\n}\n\n// A File is returned by a FileSystem's OpenFile method and can be served by a\n// Handler.\n//\n// A File may optionally implement the DeadPropsHolder interface, if it can\n// load and save dead properties.\ntype File interface {\n\thttp.File\n\tio.Writer\n}\n\n// A Dir implements FileSystem using the native file system restricted to a\n// specific directory tree.\n//\n// While the FileSystem.OpenFile method takes '/'-separated paths, a Dir's\n// string value is a filename on the native file system, not a URL, so it is\n// separated by filepath.Separator, which isn't necessarily '/'.\n//\n// An empty Dir is treated as \".\".\ntype Dir string\n\nfunc (d Dir) resolve(name string) string {\n\t// This implementation is based on Dir.Open's code in the standard net/http package.\n\tif filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 ||\n\t\tstrings.Contains(name, \"\\x00\") {\n\t\treturn \"\"\n\t}\n\tdir := string(d)\n\tif dir == \"\" {\n\t\tdir = \".\"\n\t}\n\treturn filepath.Join(dir, filepath.FromSlash(slashClean(name)))\n}\n\nfunc (d Dir) Mkdir(ctx context.Context, name string, perm os.FileMode) error {\n\tif name = d.resolve(name); name == \"\" {\n\t\treturn os.ErrNotExist\n\t}\n\treturn os.Mkdir(name, perm)\n}\n\nfunc (d Dir) OpenFile(ctx context.Context, name string, flag int, perm os.FileMode) (File, error) {\n\tif name = d.resolve(name); name == \"\" {\n\t\treturn nil, os.ErrNotExist\n\t}\n\tf, err := os.OpenFile(name, flag, perm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn f, nil\n}\n\nfunc (d Dir) RemoveAll(ctx context.Context, name string) error {\n\tif name = d.resolve(name); name == \"\" {\n\t\treturn os.ErrNotExist\n\t}\n\tif name == filepath.Clean(string(d)) {\n\t\t// Prohibit removing the virtual root directory.\n\t\treturn os.ErrInvalid\n\t}\n\treturn os.RemoveAll(name)\n}\n\nfunc (d Dir) Rename(ctx context.Context, oldName, newName string) error {\n\tif oldName = d.resolve(oldName); oldName == \"\" {\n\t\treturn os.ErrNotExist\n\t}\n\tif newName = d.resolve(newName); newName == \"\" {\n\t\treturn os.ErrNotExist\n\t}\n\tif root := filepath.Clean(string(d)); root == oldName || root == newName {\n\t\t// Prohibit renaming from or to the virtual root directory.\n\t\treturn os.ErrInvalid\n\t}\n\treturn os.Rename(oldName, newName)\n}\n\nfunc (d Dir) Stat(ctx context.Context, name string) (os.FileInfo, error) {\n\tif name = d.resolve(name); name == \"\" {\n\t\treturn nil, os.ErrNotExist\n\t}\n\treturn os.Stat(name)\n}\n\n// NewMemFS returns a new in-memory FileSystem implementation.\nfunc NewMemFS() FileSystem {\n\treturn &memFS{\n\t\troot: memFSNode{\n\t\t\tchildren: make(map[string]*memFSNode),\n\t\t\tmode:     0660 | os.ModeDir,\n\t\t\tmodTime:  time.Now(),\n\t\t},\n\t}\n}\n\n// A memFS implements FileSystem, storing all metadata and actual file data\n// in-memory. No limits on filesystem size are used, so it is not recommended\n// this be used where the clients are untrusted.\n//\n// Concurrent access is permitted. The tree structure is protected by a mutex,\n// and each node's contents and metadata are protected by a per-node mutex.\n//\n// TODO: Enforce file permissions.\ntype memFS struct {\n\tmu   sync.Mutex\n\troot memFSNode\n}\n\n// TODO: clean up and rationalize the walk/find code.\n\n// walk walks the directory tree for the fullname, calling f at each step. If f\n// returns an error, the walk will be aborted and return that same error.\n//\n// dir is the directory at that step, frag is the name fragment, and final is\n// whether it is the final step. For example, walking \"/foo/bar/x\" will result\n// in 3 calls to f:\n//   - \"/\", \"foo\", false\n//   - \"/foo/\", \"bar\", false\n//   - \"/foo/bar/\", \"x\", true\n// The frag argument will be empty only if dir is the root node and the walk\n// ends at that root node.\nfunc (fs *memFS) walk(op, fullname string, f func(dir *memFSNode, frag string, final bool) error) error {\n\toriginal := fullname\n\tfullname = slashClean(fullname)\n\n\t// Strip any leading \"/\"s to make fullname a relative path, as the walk\n\t// starts at fs.root.\n\tif fullname[0] == '/' {\n\t\tfullname = fullname[1:]\n\t}\n\tdir := &fs.root\n\n\tfor {\n\t\tfrag, remaining := fullname, \"\"\n\t\ti := strings.IndexRune(fullname, '/')\n\t\tfinal := i < 0\n\t\tif !final {\n\t\t\tfrag, remaining = fullname[:i], fullname[i+1:]\n\t\t}\n\t\tif frag == \"\" && dir != &fs.root {\n\t\t\tpanic(\"webdav: empty path fragment for a clean path\")\n\t\t}\n\t\tif err := f(dir, frag, final); err != nil {\n\t\t\treturn &os.PathError{\n\t\t\t\tOp:   op,\n\t\t\t\tPath: original,\n\t\t\t\tErr:  err,\n\t\t\t}\n\t\t}\n\t\tif final {\n\t\t\tbreak\n\t\t}\n\t\tchild := dir.children[frag]\n\t\tif child == nil {\n\t\t\treturn &os.PathError{\n\t\t\t\tOp:   op,\n\t\t\t\tPath: original,\n\t\t\t\tErr:  os.ErrNotExist,\n\t\t\t}\n\t\t}\n\t\tif !child.mode.IsDir() {\n\t\t\treturn &os.PathError{\n\t\t\t\tOp:   op,\n\t\t\t\tPath: original,\n\t\t\t\tErr:  os.ErrInvalid,\n\t\t\t}\n\t\t}\n\t\tdir, fullname = child, remaining\n\t}\n\treturn nil\n}\n\n// find returns the parent of the named node and the relative name fragment\n// from the parent to the child. For example, if finding \"/foo/bar/baz\" then\n// parent will be the node for \"/foo/bar\" and frag will be \"baz\".\n//\n// If the fullname names the root node, then parent, frag and err will be zero.\n//\n// find returns an error if the parent does not already exist or the parent\n// isn't a directory, but it will not return an error per se if the child does\n// not already exist. The error returned is either nil or an *os.PathError\n// whose Op is op.\nfunc (fs *memFS) find(op, fullname string) (parent *memFSNode, frag string, err error) {\n\terr = fs.walk(op, fullname, func(parent0 *memFSNode, frag0 string, final bool) error {\n\t\tif !final {\n\t\t\treturn nil\n\t\t}\n\t\tif frag0 != \"\" {\n\t\t\tparent, frag = parent0, frag0\n\t\t}\n\t\treturn nil\n\t})\n\treturn parent, frag, err\n}\n\nfunc (fs *memFS) Mkdir(ctx context.Context, name string, perm os.FileMode) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tdir, frag, err := fs.find(\"mkdir\", name)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif dir == nil {\n\t\t// We can't create the root.\n\t\treturn os.ErrInvalid\n\t}\n\tif _, ok := dir.children[frag]; ok {\n\t\treturn os.ErrExist\n\t}\n\tdir.children[frag] = &memFSNode{\n\t\tchildren: make(map[string]*memFSNode),\n\t\tmode:     perm.Perm() | os.ModeDir,\n\t\tmodTime:  time.Now(),\n\t}\n\treturn nil\n}\n\nfunc (fs *memFS) OpenFile(ctx context.Context, name string, flag int, perm os.FileMode) (File, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tdir, frag, err := fs.find(\"open\", name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar n *memFSNode\n\tif dir == nil {\n\t\t// We're opening the root.\n\t\tif flag&(os.O_WRONLY|os.O_RDWR) != 0 {\n\t\t\treturn nil, os.ErrPermission\n\t\t}\n\t\tn, frag = &fs.root, \"/\"\n\n\t} else {\n\t\tn = dir.children[frag]\n\t\tif flag&(os.O_SYNC|os.O_APPEND) != 0 {\n\t\t\t// memFile doesn't support these flags yet.\n\t\t\treturn nil, os.ErrInvalid\n\t\t}\n\t\tif flag&os.O_CREATE != 0 {\n\t\t\tif flag&os.O_EXCL != 0 && n != nil {\n\t\t\t\treturn nil, os.ErrExist\n\t\t\t}\n\t\t\tif n == nil {\n\t\t\t\tn = &memFSNode{\n\t\t\t\t\tmode: perm.Perm(),\n\t\t\t\t}\n\t\t\t\tdir.children[frag] = n\n\t\t\t}\n\t\t}\n\t\tif n == nil {\n\t\t\treturn nil, os.ErrNotExist\n\t\t}\n\t\tif flag&(os.O_WRONLY|os.O_RDWR) != 0 && flag&os.O_TRUNC != 0 {\n\t\t\tn.mu.Lock()\n\t\t\tn.data = nil\n\t\t\tn.mu.Unlock()\n\t\t}\n\t}\n\n\tchildren := make([]os.FileInfo, 0, len(n.children))\n\tfor cName, c := range n.children {\n\t\tchildren = append(children, c.stat(cName))\n\t}\n\treturn &memFile{\n\t\tn:                n,\n\t\tnameSnapshot:     frag,\n\t\tchildrenSnapshot: children,\n\t}, nil\n}\n\nfunc (fs *memFS) RemoveAll(ctx context.Context, name string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tdir, frag, err := fs.find(\"remove\", name)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif dir == nil {\n\t\t// We can't remove the root.\n\t\treturn os.ErrInvalid\n\t}\n\tdelete(dir.children, frag)\n\treturn nil\n}\n\nfunc (fs *memFS) Rename(ctx context.Context, oldName, newName string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\toldName = slashClean(oldName)\n\tnewName = slashClean(newName)\n\tif oldName == newName {\n\t\treturn nil\n\t}\n\tif strings.HasPrefix(newName, oldName+\"/\") {\n\t\t// We can't rename oldName to be a sub-directory of itself.\n\t\treturn os.ErrInvalid\n\t}\n\n\toDir, oFrag, err := fs.find(\"rename\", oldName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif oDir == nil {\n\t\t// We can't rename from the root.\n\t\treturn os.ErrInvalid\n\t}\n\n\tnDir, nFrag, err := fs.find(\"rename\", newName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif nDir == nil {\n\t\t// We can't rename to the root.\n\t\treturn os.ErrInvalid\n\t}\n\n\toNode, ok := oDir.children[oFrag]\n\tif !ok {\n\t\treturn os.ErrNotExist\n\t}\n\tif oNode.children != nil {\n\t\tif nNode, ok := nDir.children[nFrag]; ok {\n\t\t\tif nNode.children == nil {\n\t\t\t\treturn errNotADirectory\n\t\t\t}\n\t\t\tif len(nNode.children) != 0 {\n\t\t\t\treturn errDirectoryNotEmpty\n\t\t\t}\n\t\t}\n\t}\n\tdelete(oDir.children, oFrag)\n\tnDir.children[nFrag] = oNode\n\treturn nil\n}\n\nfunc (fs *memFS) Stat(ctx context.Context, name string) (os.FileInfo, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tdir, frag, err := fs.find(\"stat\", name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif dir == nil {\n\t\t// We're stat'ting the root.\n\t\treturn fs.root.stat(\"/\"), nil\n\t}\n\tif n, ok := dir.children[frag]; ok {\n\t\treturn n.stat(path.Base(name)), nil\n\t}\n\treturn nil, os.ErrNotExist\n}\n\n// A memFSNode represents a single entry in the in-memory filesystem and also\n// implements os.FileInfo.\ntype memFSNode struct {\n\t// children is protected by memFS.mu.\n\tchildren map[string]*memFSNode\n\n\tmu        sync.Mutex\n\tdata      []byte\n\tmode      os.FileMode\n\tmodTime   time.Time\n\tdeadProps map[xml.Name]Property\n}\n\nfunc (n *memFSNode) stat(name string) *memFileInfo {\n\tn.mu.Lock()\n\tdefer n.mu.Unlock()\n\treturn &memFileInfo{\n\t\tname:    name,\n\t\tsize:    int64(len(n.data)),\n\t\tmode:    n.mode,\n\t\tmodTime: n.modTime,\n\t}\n}\n\nfunc (n *memFSNode) DeadProps() (map[xml.Name]Property, error) {\n\tn.mu.Lock()\n\tdefer n.mu.Unlock()\n\tif len(n.deadProps) == 0 {\n\t\treturn nil, nil\n\t}\n\tret := make(map[xml.Name]Property, len(n.deadProps))\n\tfor k, v := range n.deadProps {\n\t\tret[k] = v\n\t}\n\treturn ret, nil\n}\n\nfunc (n *memFSNode) Patch(patches []Proppatch) ([]Propstat, error) {\n\tn.mu.Lock()\n\tdefer n.mu.Unlock()\n\tpstat := Propstat{Status: http.StatusOK}\n\tfor _, patch := range patches {\n\t\tfor _, p := range patch.Props {\n\t\t\tpstat.Props = append(pstat.Props, Property{XMLName: p.XMLName})\n\t\t\tif patch.Remove {\n\t\t\t\tdelete(n.deadProps, p.XMLName)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif n.deadProps == nil {\n\t\t\t\tn.deadProps = map[xml.Name]Property{}\n\t\t\t}\n\t\t\tn.deadProps[p.XMLName] = p\n\t\t}\n\t}\n\treturn []Propstat{pstat}, nil\n}\n\ntype memFileInfo struct {\n\tname    string\n\tsize    int64\n\tmode    os.FileMode\n\tmodTime time.Time\n}\n\nfunc (f *memFileInfo) Name() string       { return f.name }\nfunc (f *memFileInfo) Size() int64        { return f.size }\nfunc (f *memFileInfo) Mode() os.FileMode  { return f.mode }\nfunc (f *memFileInfo) ModTime() time.Time { return f.modTime }\nfunc (f *memFileInfo) IsDir() bool        { return f.mode.IsDir() }\nfunc (f *memFileInfo) Sys() interface{}   { return nil }\n\n// A memFile is a File implementation for a memFSNode. It is a per-file (not\n// per-node) read/write position, and a snapshot of the memFS' tree structure\n// (a node's name and children) for that node.\ntype memFile struct {\n\tn                *memFSNode\n\tnameSnapshot     string\n\tchildrenSnapshot []os.FileInfo\n\t// pos is protected by n.mu.\n\tpos int\n}\n\n// A *memFile implements the optional DeadPropsHolder interface.\nvar _ DeadPropsHolder = (*memFile)(nil)\n\nfunc (f *memFile) DeadProps() (map[xml.Name]Property, error)     { return f.n.DeadProps() }\nfunc (f *memFile) Patch(patches []Proppatch) ([]Propstat, error) { return f.n.Patch(patches) }\n\nfunc (f *memFile) Close() error {\n\treturn nil\n}\n\nfunc (f *memFile) Read(p []byte) (int, error) {\n\tf.n.mu.Lock()\n\tdefer f.n.mu.Unlock()\n\tif f.n.mode.IsDir() {\n\t\treturn 0, os.ErrInvalid\n\t}\n\tif f.pos >= len(f.n.data) {\n\t\treturn 0, io.EOF\n\t}\n\tn := copy(p, f.n.data[f.pos:])\n\tf.pos += n\n\treturn n, nil\n}\n\nfunc (f *memFile) Readdir(count int) ([]os.FileInfo, error) {\n\tf.n.mu.Lock()\n\tdefer f.n.mu.Unlock()\n\tif !f.n.mode.IsDir() {\n\t\treturn nil, os.ErrInvalid\n\t}\n\told := f.pos\n\tif old >= len(f.childrenSnapshot) {\n\t\t// The os.File Readdir docs say that at the end of a directory,\n\t\t// the error is io.EOF if count > 0 and nil if count <= 0.\n\t\tif count > 0 {\n\t\t\treturn nil, io.EOF\n\t\t}\n\t\treturn nil, nil\n\t}\n\tif count > 0 {\n\t\tf.pos += count\n\t\tif f.pos > len(f.childrenSnapshot) {\n\t\t\tf.pos = len(f.childrenSnapshot)\n\t\t}\n\t} else {\n\t\tf.pos = len(f.childrenSnapshot)\n\t\told = 0\n\t}\n\treturn f.childrenSnapshot[old:f.pos], nil\n}\n\nfunc (f *memFile) Seek(offset int64, whence int) (int64, error) {\n\tf.n.mu.Lock()\n\tdefer f.n.mu.Unlock()\n\tnpos := f.pos\n\t// TODO: How to handle offsets greater than the size of system int?\n\tswitch whence {\n\tcase os.SEEK_SET:\n\t\tnpos = int(offset)\n\tcase os.SEEK_CUR:\n\t\tnpos += int(offset)\n\tcase os.SEEK_END:\n\t\tnpos = len(f.n.data) + int(offset)\n\tdefault:\n\t\tnpos = -1\n\t}\n\tif npos < 0 {\n\t\treturn 0, os.ErrInvalid\n\t}\n\tf.pos = npos\n\treturn int64(f.pos), nil\n}\n\nfunc (f *memFile) Stat() (os.FileInfo, error) {\n\treturn f.n.stat(f.nameSnapshot), nil\n}\n\nfunc (f *memFile) Write(p []byte) (int, error) {\n\tlenp := len(p)\n\tf.n.mu.Lock()\n\tdefer f.n.mu.Unlock()\n\n\tif f.n.mode.IsDir() {\n\t\treturn 0, os.ErrInvalid\n\t}\n\tif f.pos < len(f.n.data) {\n\t\tn := copy(f.n.data[f.pos:], p)\n\t\tf.pos += n\n\t\tp = p[n:]\n\t} else if f.pos > len(f.n.data) {\n\t\t// Write permits the creation of holes, if we've seek'ed past the\n\t\t// existing end of file.\n\t\tif f.pos <= cap(f.n.data) {\n\t\t\toldLen := len(f.n.data)\n\t\t\tf.n.data = f.n.data[:f.pos]\n\t\t\thole := f.n.data[oldLen:]\n\t\t\tfor i := range hole {\n\t\t\t\thole[i] = 0\n\t\t\t}\n\t\t} else {\n\t\t\td := make([]byte, f.pos, f.pos+len(p))\n\t\t\tcopy(d, f.n.data)\n\t\t\tf.n.data = d\n\t\t}\n\t}\n\n\tif len(p) > 0 {\n\t\t// We should only get here if f.pos == len(f.n.data).\n\t\tf.n.data = append(f.n.data, p...)\n\t\tf.pos = len(f.n.data)\n\t}\n\tf.n.modTime = time.Now()\n\treturn lenp, nil\n}\n\n// moveFiles moves files and/or directories from src to dst.\n//\n// See section 9.9.4 for when various HTTP status codes apply.\nfunc moveFiles(ctx context.Context, fs FileSystem, src, dst string, overwrite bool) (status int, err error) {\n\tcreated := false\n\tif _, err := fs.Stat(ctx, dst); err != nil {\n\t\tif !os.IsNotExist(err) {\n\t\t\treturn http.StatusForbidden, err\n\t\t}\n\t\tcreated = true\n\t} else if overwrite {\n\t\t// Section 9.9.3 says that \"If a resource exists at the destination\n\t\t// and the Overwrite header is \"T\", then prior to performing the move,\n\t\t// the server must perform a DELETE with \"Depth: infinity\" on the\n\t\t// destination resource.\n\t\tif err := fs.RemoveAll(ctx, dst); err != nil {\n\t\t\treturn http.StatusForbidden, err\n\t\t}\n\t} else {\n\t\treturn http.StatusPreconditionFailed, os.ErrExist\n\t}\n\tif err := fs.Rename(ctx, src, dst); err != nil {\n\t\treturn http.StatusForbidden, err\n\t}\n\tif created {\n\t\treturn http.StatusCreated, nil\n\t}\n\treturn http.StatusNoContent, nil\n}\n\nfunc copyProps(dst, src File) error {\n\td, ok := dst.(DeadPropsHolder)\n\tif !ok {\n\t\treturn nil\n\t}\n\ts, ok := src.(DeadPropsHolder)\n\tif !ok {\n\t\treturn nil\n\t}\n\tm, err := s.DeadProps()\n\tif err != nil {\n\t\treturn err\n\t}\n\tprops := make([]Property, 0, len(m))\n\tfor _, prop := range m {\n\t\tprops = append(props, prop)\n\t}\n\t_, err = d.Patch([]Proppatch{{Props: props}})\n\treturn err\n}\n\n// copyFiles copies files and/or directories from src to dst.\n//\n// See section 9.8.5 for when various HTTP status codes apply.\nfunc copyFiles(ctx context.Context, fs FileSystem, src, dst string, overwrite bool, depth int, recursion int) (status int, err error) {\n\tif recursion == 1000 {\n\t\treturn http.StatusInternalServerError, errRecursionTooDeep\n\t}\n\trecursion++\n\n\t// TODO: section 9.8.3 says that \"Note that an infinite-depth COPY of /A/\n\t// into /A/B/ could lead to infinite recursion if not handled correctly.\"\n\n\tsrcFile, err := fs.OpenFile(ctx, src, os.O_RDONLY, 0)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn http.StatusNotFound, err\n\t\t}\n\t\treturn http.StatusInternalServerError, err\n\t}\n\tdefer srcFile.Close()\n\tsrcStat, err := srcFile.Stat()\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn http.StatusNotFound, err\n\t\t}\n\t\treturn http.StatusInternalServerError, err\n\t}\n\tsrcPerm := srcStat.Mode() & os.ModePerm\n\n\tcreated := false\n\tif _, err := fs.Stat(ctx, dst); err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\tcreated = true\n\t\t} else {\n\t\t\treturn http.StatusForbidden, err\n\t\t}\n\t} else {\n\t\tif !overwrite {\n\t\t\treturn http.StatusPreconditionFailed, os.ErrExist\n\t\t}\n\t\tif err := fs.RemoveAll(ctx, dst); err != nil && !os.IsNotExist(err) {\n\t\t\treturn http.StatusForbidden, err\n\t\t}\n\t}\n\n\tif srcStat.IsDir() {\n\t\tif err := fs.Mkdir(ctx, dst, srcPerm); err != nil {\n\t\t\treturn http.StatusForbidden, err\n\t\t}\n\t\tif depth == infiniteDepth {\n\t\t\tchildren, err := srcFile.Readdir(-1)\n\t\t\tif err != nil {\n\t\t\t\treturn http.StatusForbidden, err\n\t\t\t}\n\t\t\tfor _, c := range children {\n\t\t\t\tname := c.Name()\n\t\t\t\ts := path.Join(src, name)\n\t\t\t\td := path.Join(dst, name)\n\t\t\t\tcStatus, cErr := copyFiles(ctx, fs, s, d, overwrite, depth, recursion)\n\t\t\t\tif cErr != nil {\n\t\t\t\t\t// TODO: MultiStatus.\n\t\t\t\t\treturn cStatus, cErr\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t} else {\n\t\tdstFile, err := fs.OpenFile(ctx, dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, srcPerm)\n\t\tif err != nil {\n\t\t\tif os.IsNotExist(err) {\n\t\t\t\treturn http.StatusConflict, err\n\t\t\t}\n\t\t\treturn http.StatusForbidden, err\n\n\t\t}\n\t\t_, copyErr := io.Copy(dstFile, srcFile)\n\t\tpropsErr := copyProps(dstFile, srcFile)\n\t\tcloseErr := dstFile.Close()\n\t\tif copyErr != nil {\n\t\t\treturn http.StatusInternalServerError, copyErr\n\t\t}\n\t\tif propsErr != nil {\n\t\t\treturn http.StatusInternalServerError, propsErr\n\t\t}\n\t\tif closeErr != nil {\n\t\t\treturn http.StatusInternalServerError, closeErr\n\t\t}\n\t}\n\n\tif created {\n\t\treturn http.StatusCreated, nil\n\t}\n\treturn http.StatusNoContent, nil\n}\n\n// walkFS traverses filesystem fs starting at name up to depth levels.\n//\n// Allowed values for depth are 0, 1 or infiniteDepth. For each visited node,\n// walkFS calls walkFn. If a visited file system node is a directory and\n// walkFn returns filepath.SkipDir, walkFS will skip traversal of this node.\nfunc walkFS(ctx context.Context, fs FileSystem, depth int, name string, info os.FileInfo, walkFn filepath.WalkFunc) error {\n\t// This implementation is based on Walk's code in the standard path/filepath package.\n\terr := walkFn(name, info, nil)\n\tif err != nil {\n\t\tif info.IsDir() && err == filepath.SkipDir {\n\t\t\treturn nil\n\t\t}\n\t\treturn err\n\t}\n\tif !info.IsDir() || depth == 0 {\n\t\treturn nil\n\t}\n\tif depth == 1 {\n\t\tdepth = 0\n\t}\n\n\t// Read directory names.\n\tf, err := fs.OpenFile(ctx, name, os.O_RDONLY, 0)\n\tif err != nil {\n\t\treturn walkFn(name, info, err)\n\t}\n\tfileInfos, err := f.Readdir(0)\n\tf.Close()\n\tif err != nil {\n\t\treturn walkFn(name, info, err)\n\t}\n\n\tfor _, fileInfo := range fileInfos {\n\t\tfilename := path.Join(name, fileInfo.Name())\n\t\tfileInfo, err := fs.Stat(ctx, filename)\n\t\tif err != nil {\n\t\t\tif err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\terr = walkFS(ctx, fs, depth, filename, fileInfo, walkFn)\n\t\t\tif err != nil {\n\t\t\t\tif !fileInfo.IsDir() || err != filepath.SkipDir {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/if.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage webdav\n\n// The If header is covered by Section 10.4.\n// http://www.webdav.org/specs/rfc4918.html#HEADER_If\n\nimport (\n\t\"strings\"\n)\n\n// ifHeader is a disjunction (OR) of ifLists.\ntype ifHeader struct {\n\tlists []ifList\n}\n\n// ifList is a conjunction (AND) of Conditions, and an optional resource tag.\ntype ifList struct {\n\tresourceTag string\n\tconditions  []Condition\n}\n\n// parseIfHeader parses the \"If: foo bar\" HTTP header. The httpHeader string\n// should omit the \"If:\" prefix and have any \"\\r\\n\"s collapsed to a \" \", as is\n// returned by req.Header.Get(\"If\") for a http.Request req.\nfunc parseIfHeader(httpHeader string) (h ifHeader, ok bool) {\n\ts := strings.TrimSpace(httpHeader)\n\tswitch tokenType, _, _ := lex(s); tokenType {\n\tcase '(':\n\t\treturn parseNoTagLists(s)\n\tcase angleTokenType:\n\t\treturn parseTaggedLists(s)\n\tdefault:\n\t\treturn ifHeader{}, false\n\t}\n}\n\nfunc parseNoTagLists(s string) (h ifHeader, ok bool) {\n\tfor {\n\t\tl, remaining, ok := parseList(s)\n\t\tif !ok {\n\t\t\treturn ifHeader{}, false\n\t\t}\n\t\th.lists = append(h.lists, l)\n\t\tif remaining == \"\" {\n\t\t\treturn h, true\n\t\t}\n\t\ts = remaining\n\t}\n}\n\nfunc parseTaggedLists(s string) (h ifHeader, ok bool) {\n\tresourceTag, n := \"\", 0\n\tfor first := true; ; first = false {\n\t\ttokenType, tokenStr, remaining := lex(s)\n\t\tswitch tokenType {\n\t\tcase angleTokenType:\n\t\t\tif !first && n == 0 {\n\t\t\t\treturn ifHeader{}, false\n\t\t\t}\n\t\t\tresourceTag, n = tokenStr, 0\n\t\t\ts = remaining\n\t\tcase '(':\n\t\t\tn++\n\t\t\tl, remaining, ok := parseList(s)\n\t\t\tif !ok {\n\t\t\t\treturn ifHeader{}, false\n\t\t\t}\n\t\t\tl.resourceTag = resourceTag\n\t\t\th.lists = append(h.lists, l)\n\t\t\tif remaining == \"\" {\n\t\t\t\treturn h, true\n\t\t\t}\n\t\t\ts = remaining\n\t\tdefault:\n\t\t\treturn ifHeader{}, false\n\t\t}\n\t}\n}\n\nfunc parseList(s string) (l ifList, remaining string, ok bool) {\n\ttokenType, _, s := lex(s)\n\tif tokenType != '(' {\n\t\treturn ifList{}, \"\", false\n\t}\n\tfor {\n\t\ttokenType, _, remaining = lex(s)\n\t\tif tokenType == ')' {\n\t\t\tif len(l.conditions) == 0 {\n\t\t\t\treturn ifList{}, \"\", false\n\t\t\t}\n\t\t\treturn l, remaining, true\n\t\t}\n\t\tc, remaining, ok := parseCondition(s)\n\t\tif !ok {\n\t\t\treturn ifList{}, \"\", false\n\t\t}\n\t\tl.conditions = append(l.conditions, c)\n\t\ts = remaining\n\t}\n}\n\nfunc parseCondition(s string) (c Condition, remaining string, ok bool) {\n\ttokenType, tokenStr, s := lex(s)\n\tif tokenType == notTokenType {\n\t\tc.Not = true\n\t\ttokenType, tokenStr, s = lex(s)\n\t}\n\tswitch tokenType {\n\tcase strTokenType, angleTokenType:\n\t\tc.Token = tokenStr\n\tcase squareTokenType:\n\t\tc.ETag = tokenStr\n\tdefault:\n\t\treturn Condition{}, \"\", false\n\t}\n\treturn c, s, true\n}\n\n// Single-rune tokens like '(' or ')' have a token type equal to their rune.\n// All other tokens have a negative token type.\nconst (\n\terrTokenType    = rune(-1)\n\teofTokenType    = rune(-2)\n\tstrTokenType    = rune(-3)\n\tnotTokenType    = rune(-4)\n\tangleTokenType  = rune(-5)\n\tsquareTokenType = rune(-6)\n)\n\nfunc lex(s string) (tokenType rune, tokenStr string, remaining string) {\n\t// The net/textproto Reader that parses the HTTP header will collapse\n\t// Linear White Space that spans multiple \"\\r\\n\" lines to a single \" \",\n\t// so we don't need to look for '\\r' or '\\n'.\n\tfor len(s) > 0 && (s[0] == '\\t' || s[0] == ' ') {\n\t\ts = s[1:]\n\t}\n\tif len(s) == 0 {\n\t\treturn eofTokenType, \"\", \"\"\n\t}\n\ti := 0\nloop:\n\tfor ; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '\\t', ' ', '(', ')', '<', '>', '[', ']':\n\t\t\tbreak loop\n\t\t}\n\t}\n\n\tif i != 0 {\n\t\ttokenStr, remaining = s[:i], s[i:]\n\t\tif tokenStr == \"Not\" {\n\t\t\treturn notTokenType, \"\", remaining\n\t\t}\n\t\treturn strTokenType, tokenStr, remaining\n\t}\n\n\tj := 0\n\tswitch s[0] {\n\tcase '<':\n\t\tj, tokenType = strings.IndexByte(s, '>'), angleTokenType\n\tcase '[':\n\t\tj, tokenType = strings.IndexByte(s, ']'), squareTokenType\n\tdefault:\n\t\treturn rune(s[0]), \"\", s[1:]\n\t}\n\tif j < 0 {\n\t\treturn errTokenType, \"\", \"\"\n\t}\n\treturn tokenType, s[1:j], s[j+1:]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/internal/xml/README",
    "content": "This is a fork of the encoding/xml package at ca1d6c4, the last commit before\nhttps://go.googlesource.com/go/+/c0d6d33 \"encoding/xml: restore Go 1.4 name\nspace behavior\" made late in the lead-up to the Go 1.5 release.\n\nThe list of encoding/xml changes is at\nhttps://go.googlesource.com/go/+log/master/src/encoding/xml\n\nThis fork is temporary, and I (nigeltao) expect to revert it after Go 1.6 is\nreleased.\n\nSee http://golang.org/issue/11841\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/internal/xml/marshal.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xml\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\t// A generic XML header suitable for use with the output of Marshal.\n\t// This is not automatically added to any output of this package,\n\t// it is provided as a convenience.\n\tHeader = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>` + \"\\n\"\n)\n\n// Marshal returns the XML encoding of v.\n//\n// Marshal handles an array or slice by marshalling each of the elements.\n// Marshal handles a pointer by marshalling the value it points at or, if the\n// pointer is nil, by writing nothing. Marshal handles an interface value by\n// marshalling the value it contains or, if the interface value is nil, by\n// writing nothing. Marshal handles all other data by writing one or more XML\n// elements containing the data.\n//\n// The name for the XML elements is taken from, in order of preference:\n//     - the tag on the XMLName field, if the data is a struct\n//     - the value of the XMLName field of type xml.Name\n//     - the tag of the struct field used to obtain the data\n//     - the name of the struct field used to obtain the data\n//     - the name of the marshalled type\n//\n// The XML element for a struct contains marshalled elements for each of the\n// exported fields of the struct, with these exceptions:\n//     - the XMLName field, described above, is omitted.\n//     - a field with tag \"-\" is omitted.\n//     - a field with tag \"name,attr\" becomes an attribute with\n//       the given name in the XML element.\n//     - a field with tag \",attr\" becomes an attribute with the\n//       field name in the XML element.\n//     - a field with tag \",chardata\" is written as character data,\n//       not as an XML element.\n//     - a field with tag \",innerxml\" is written verbatim, not subject\n//       to the usual marshalling procedure.\n//     - a field with tag \",comment\" is written as an XML comment, not\n//       subject to the usual marshalling procedure. It must not contain\n//       the \"--\" string within it.\n//     - a field with a tag including the \"omitempty\" option is omitted\n//       if the field value is empty. The empty values are false, 0, any\n//       nil pointer or interface value, and any array, slice, map, or\n//       string of length zero.\n//     - an anonymous struct field is handled as if the fields of its\n//       value were part of the outer struct.\n//\n// If a field uses a tag \"a>b>c\", then the element c will be nested inside\n// parent elements a and b. Fields that appear next to each other that name\n// the same parent will be enclosed in one XML element.\n//\n// See MarshalIndent for an example.\n//\n// Marshal will return an error if asked to marshal a channel, function, or map.\nfunc Marshal(v interface{}) ([]byte, error) {\n\tvar b bytes.Buffer\n\tif err := NewEncoder(&b).Encode(v); err != nil {\n\t\treturn nil, err\n\t}\n\treturn b.Bytes(), nil\n}\n\n// Marshaler is the interface implemented by objects that can marshal\n// themselves into valid XML elements.\n//\n// MarshalXML encodes the receiver as zero or more XML elements.\n// By convention, arrays or slices are typically encoded as a sequence\n// of elements, one per entry.\n// Using start as the element tag is not required, but doing so\n// will enable Unmarshal to match the XML elements to the correct\n// struct field.\n// One common implementation strategy is to construct a separate\n// value with a layout corresponding to the desired XML and then\n// to encode it using e.EncodeElement.\n// Another common strategy is to use repeated calls to e.EncodeToken\n// to generate the XML output one token at a time.\n// The sequence of encoded tokens must make up zero or more valid\n// XML elements.\ntype Marshaler interface {\n\tMarshalXML(e *Encoder, start StartElement) error\n}\n\n// MarshalerAttr is the interface implemented by objects that can marshal\n// themselves into valid XML attributes.\n//\n// MarshalXMLAttr returns an XML attribute with the encoded value of the receiver.\n// Using name as the attribute name is not required, but doing so\n// will enable Unmarshal to match the attribute to the correct\n// struct field.\n// If MarshalXMLAttr returns the zero attribute Attr{}, no attribute\n// will be generated in the output.\n// MarshalXMLAttr is used only for struct fields with the\n// \"attr\" option in the field tag.\ntype MarshalerAttr interface {\n\tMarshalXMLAttr(name Name) (Attr, error)\n}\n\n// MarshalIndent works like Marshal, but each XML element begins on a new\n// indented line that starts with prefix and is followed by one or more\n// copies of indent according to the nesting depth.\nfunc MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {\n\tvar b bytes.Buffer\n\tenc := NewEncoder(&b)\n\tenc.Indent(prefix, indent)\n\tif err := enc.Encode(v); err != nil {\n\t\treturn nil, err\n\t}\n\treturn b.Bytes(), nil\n}\n\n// An Encoder writes XML data to an output stream.\ntype Encoder struct {\n\tp printer\n}\n\n// NewEncoder returns a new encoder that writes to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\te := &Encoder{printer{Writer: bufio.NewWriter(w)}}\n\te.p.encoder = e\n\treturn e\n}\n\n// Indent sets the encoder to generate XML in which each element\n// begins on a new indented line that starts with prefix and is followed by\n// one or more copies of indent according to the nesting depth.\nfunc (enc *Encoder) Indent(prefix, indent string) {\n\tenc.p.prefix = prefix\n\tenc.p.indent = indent\n}\n\n// Encode writes the XML encoding of v to the stream.\n//\n// See the documentation for Marshal for details about the conversion\n// of Go values to XML.\n//\n// Encode calls Flush before returning.\nfunc (enc *Encoder) Encode(v interface{}) error {\n\terr := enc.p.marshalValue(reflect.ValueOf(v), nil, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn enc.p.Flush()\n}\n\n// EncodeElement writes the XML encoding of v to the stream,\n// using start as the outermost tag in the encoding.\n//\n// See the documentation for Marshal for details about the conversion\n// of Go values to XML.\n//\n// EncodeElement calls Flush before returning.\nfunc (enc *Encoder) EncodeElement(v interface{}, start StartElement) error {\n\terr := enc.p.marshalValue(reflect.ValueOf(v), nil, &start)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn enc.p.Flush()\n}\n\nvar (\n\tbegComment   = []byte(\"<!--\")\n\tendComment   = []byte(\"-->\")\n\tendProcInst  = []byte(\"?>\")\n\tendDirective = []byte(\">\")\n)\n\n// EncodeToken writes the given XML token to the stream.\n// It returns an error if StartElement and EndElement tokens are not\n// properly matched.\n//\n// EncodeToken does not call Flush, because usually it is part of a\n// larger operation such as Encode or EncodeElement (or a custom\n// Marshaler's MarshalXML invoked during those), and those will call\n// Flush when finished. Callers that create an Encoder and then invoke\n// EncodeToken directly, without using Encode or EncodeElement, need to\n// call Flush when finished to ensure that the XML is written to the\n// underlying writer.\n//\n// EncodeToken allows writing a ProcInst with Target set to \"xml\" only\n// as the first token in the stream.\n//\n// When encoding a StartElement holding an XML namespace prefix\n// declaration for a prefix that is not already declared, contained\n// elements (including the StartElement itself) will use the declared\n// prefix when encoding names with matching namespace URIs.\nfunc (enc *Encoder) EncodeToken(t Token) error {\n\n\tp := &enc.p\n\tswitch t := t.(type) {\n\tcase StartElement:\n\t\tif err := p.writeStart(&t); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase EndElement:\n\t\tif err := p.writeEnd(t.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase CharData:\n\t\tescapeText(p, t, false)\n\tcase Comment:\n\t\tif bytes.Contains(t, endComment) {\n\t\t\treturn fmt.Errorf(\"xml: EncodeToken of Comment containing --> marker\")\n\t\t}\n\t\tp.WriteString(\"<!--\")\n\t\tp.Write(t)\n\t\tp.WriteString(\"-->\")\n\t\treturn p.cachedWriteError()\n\tcase ProcInst:\n\t\t// First token to be encoded which is also a ProcInst with target of xml\n\t\t// is the xml declaration. The only ProcInst where target of xml is allowed.\n\t\tif t.Target == \"xml\" && p.Buffered() != 0 {\n\t\t\treturn fmt.Errorf(\"xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded\")\n\t\t}\n\t\tif !isNameString(t.Target) {\n\t\t\treturn fmt.Errorf(\"xml: EncodeToken of ProcInst with invalid Target\")\n\t\t}\n\t\tif bytes.Contains(t.Inst, endProcInst) {\n\t\t\treturn fmt.Errorf(\"xml: EncodeToken of ProcInst containing ?> marker\")\n\t\t}\n\t\tp.WriteString(\"<?\")\n\t\tp.WriteString(t.Target)\n\t\tif len(t.Inst) > 0 {\n\t\t\tp.WriteByte(' ')\n\t\t\tp.Write(t.Inst)\n\t\t}\n\t\tp.WriteString(\"?>\")\n\tcase Directive:\n\t\tif !isValidDirective(t) {\n\t\t\treturn fmt.Errorf(\"xml: EncodeToken of Directive containing wrong < or > markers\")\n\t\t}\n\t\tp.WriteString(\"<!\")\n\t\tp.Write(t)\n\t\tp.WriteString(\">\")\n\tdefault:\n\t\treturn fmt.Errorf(\"xml: EncodeToken of invalid token type\")\n\n\t}\n\treturn p.cachedWriteError()\n}\n\n// isValidDirective reports whether dir is a valid directive text,\n// meaning angle brackets are matched, ignoring comments and strings.\nfunc isValidDirective(dir Directive) bool {\n\tvar (\n\t\tdepth     int\n\t\tinquote   uint8\n\t\tincomment bool\n\t)\n\tfor i, c := range dir {\n\t\tswitch {\n\t\tcase incomment:\n\t\t\tif c == '>' {\n\t\t\t\tif n := 1 + i - len(endComment); n >= 0 && bytes.Equal(dir[n:i+1], endComment) {\n\t\t\t\t\tincomment = false\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Just ignore anything in comment\n\t\tcase inquote != 0:\n\t\t\tif c == inquote {\n\t\t\t\tinquote = 0\n\t\t\t}\n\t\t\t// Just ignore anything within quotes\n\t\tcase c == '\\'' || c == '\"':\n\t\t\tinquote = c\n\t\tcase c == '<':\n\t\t\tif i+len(begComment) < len(dir) && bytes.Equal(dir[i:i+len(begComment)], begComment) {\n\t\t\t\tincomment = true\n\t\t\t} else {\n\t\t\t\tdepth++\n\t\t\t}\n\t\tcase c == '>':\n\t\t\tif depth == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tdepth--\n\t\t}\n\t}\n\treturn depth == 0 && inquote == 0 && !incomment\n}\n\n// Flush flushes any buffered XML to the underlying writer.\n// See the EncodeToken documentation for details about when it is necessary.\nfunc (enc *Encoder) Flush() error {\n\treturn enc.p.Flush()\n}\n\ntype printer struct {\n\t*bufio.Writer\n\tencoder    *Encoder\n\tseq        int\n\tindent     string\n\tprefix     string\n\tdepth      int\n\tindentedIn bool\n\tputNewline bool\n\tdefaultNS  string\n\tattrNS     map[string]string // map prefix -> name space\n\tattrPrefix map[string]string // map name space -> prefix\n\tprefixes   []printerPrefix\n\ttags       []Name\n}\n\n// printerPrefix holds a namespace undo record.\n// When an element is popped, the prefix record\n// is set back to the recorded URL. The empty\n// prefix records the URL for the default name space.\n//\n// The start of an element is recorded with an element\n// that has mark=true.\ntype printerPrefix struct {\n\tprefix string\n\turl    string\n\tmark   bool\n}\n\nfunc (p *printer) prefixForNS(url string, isAttr bool) string {\n\t// The \"http://www.w3.org/XML/1998/namespace\" name space is predefined as \"xml\"\n\t// and must be referred to that way.\n\t// (The \"http://www.w3.org/2000/xmlns/\" name space is also predefined as \"xmlns\",\n\t// but users should not be trying to use that one directly - that's our job.)\n\tif url == xmlURL {\n\t\treturn \"xml\"\n\t}\n\tif !isAttr && url == p.defaultNS {\n\t\t// We can use the default name space.\n\t\treturn \"\"\n\t}\n\treturn p.attrPrefix[url]\n}\n\n// defineNS pushes any namespace definition found in the given attribute.\n// If ignoreNonEmptyDefault is true, an xmlns=\"nonempty\"\n// attribute will be ignored.\nfunc (p *printer) defineNS(attr Attr, ignoreNonEmptyDefault bool) error {\n\tvar prefix string\n\tif attr.Name.Local == \"xmlns\" {\n\t\tif attr.Name.Space != \"\" && attr.Name.Space != \"xml\" && attr.Name.Space != xmlURL {\n\t\t\treturn fmt.Errorf(\"xml: cannot redefine xmlns attribute prefix\")\n\t\t}\n\t} else if attr.Name.Space == \"xmlns\" && attr.Name.Local != \"\" {\n\t\tprefix = attr.Name.Local\n\t\tif attr.Value == \"\" {\n\t\t\t// Technically, an empty XML namespace is allowed for an attribute.\n\t\t\t// From http://www.w3.org/TR/xml-names11/#scoping-defaulting:\n\t\t\t//\n\t\t\t// \tThe attribute value in a namespace declaration for a prefix may be\n\t\t\t//\tempty. This has the effect, within the scope of the declaration, of removing\n\t\t\t//\tany association of the prefix with a namespace name.\n\t\t\t//\n\t\t\t// However our namespace prefixes here are used only as hints. There's\n\t\t\t// no need to respect the removal of a namespace prefix, so we ignore it.\n\t\t\treturn nil\n\t\t}\n\t} else {\n\t\t// Ignore: it's not a namespace definition\n\t\treturn nil\n\t}\n\tif prefix == \"\" {\n\t\tif attr.Value == p.defaultNS {\n\t\t\t// No need for redefinition.\n\t\t\treturn nil\n\t\t}\n\t\tif attr.Value != \"\" && ignoreNonEmptyDefault {\n\t\t\t// We have an xmlns=\"...\" value but\n\t\t\t// it can't define a name space in this context,\n\t\t\t// probably because the element has an empty\n\t\t\t// name space. In this case, we just ignore\n\t\t\t// the name space declaration.\n\t\t\treturn nil\n\t\t}\n\t} else if _, ok := p.attrPrefix[attr.Value]; ok {\n\t\t// There's already a prefix for the given name space,\n\t\t// so use that. This prevents us from\n\t\t// having two prefixes for the same name space\n\t\t// so attrNS and attrPrefix can remain bijective.\n\t\treturn nil\n\t}\n\tp.pushPrefix(prefix, attr.Value)\n\treturn nil\n}\n\n// createNSPrefix creates a name space prefix attribute\n// to use for the given name space, defining a new prefix\n// if necessary.\n// If isAttr is true, the prefix is to be created for an attribute\n// prefix, which means that the default name space cannot\n// be used.\nfunc (p *printer) createNSPrefix(url string, isAttr bool) {\n\tif _, ok := p.attrPrefix[url]; ok {\n\t\t// We already have a prefix for the given URL.\n\t\treturn\n\t}\n\tswitch {\n\tcase !isAttr && url == p.defaultNS:\n\t\t// We can use the default name space.\n\t\treturn\n\tcase url == \"\":\n\t\t// The only way we can encode names in the empty\n\t\t// name space is by using the default name space,\n\t\t// so we must use that.\n\t\tif p.defaultNS != \"\" {\n\t\t\t// The default namespace is non-empty, so we\n\t\t\t// need to set it to empty.\n\t\t\tp.pushPrefix(\"\", \"\")\n\t\t}\n\t\treturn\n\tcase url == xmlURL:\n\t\treturn\n\t}\n\t// TODO If the URL is an existing prefix, we could\n\t// use it as is. That would enable the\n\t// marshaling of elements that had been unmarshaled\n\t// and with a name space prefix that was not found.\n\t// although technically it would be incorrect.\n\n\t// Pick a name. We try to use the final element of the path\n\t// but fall back to _.\n\tprefix := strings.TrimRight(url, \"/\")\n\tif i := strings.LastIndex(prefix, \"/\"); i >= 0 {\n\t\tprefix = prefix[i+1:]\n\t}\n\tif prefix == \"\" || !isName([]byte(prefix)) || strings.Contains(prefix, \":\") {\n\t\tprefix = \"_\"\n\t}\n\tif strings.HasPrefix(prefix, \"xml\") {\n\t\t// xmlanything is reserved.\n\t\tprefix = \"_\" + prefix\n\t}\n\tif p.attrNS[prefix] != \"\" {\n\t\t// Name is taken. Find a better one.\n\t\tfor p.seq++; ; p.seq++ {\n\t\t\tif id := prefix + \"_\" + strconv.Itoa(p.seq); p.attrNS[id] == \"\" {\n\t\t\t\tprefix = id\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tp.pushPrefix(prefix, url)\n}\n\n// writeNamespaces writes xmlns attributes for all the\n// namespace prefixes that have been defined in\n// the current element.\nfunc (p *printer) writeNamespaces() {\n\tfor i := len(p.prefixes) - 1; i >= 0; i-- {\n\t\tprefix := p.prefixes[i]\n\t\tif prefix.mark {\n\t\t\treturn\n\t\t}\n\t\tp.WriteString(\" \")\n\t\tif prefix.prefix == \"\" {\n\t\t\t// Default name space.\n\t\t\tp.WriteString(`xmlns=\"`)\n\t\t} else {\n\t\t\tp.WriteString(\"xmlns:\")\n\t\t\tp.WriteString(prefix.prefix)\n\t\t\tp.WriteString(`=\"`)\n\t\t}\n\t\tEscapeText(p, []byte(p.nsForPrefix(prefix.prefix)))\n\t\tp.WriteString(`\"`)\n\t}\n}\n\n// pushPrefix pushes a new prefix on the prefix stack\n// without checking to see if it is already defined.\nfunc (p *printer) pushPrefix(prefix, url string) {\n\tp.prefixes = append(p.prefixes, printerPrefix{\n\t\tprefix: prefix,\n\t\turl:    p.nsForPrefix(prefix),\n\t})\n\tp.setAttrPrefix(prefix, url)\n}\n\n// nsForPrefix returns the name space for the given\n// prefix. Note that this is not valid for the\n// empty attribute prefix, which always has an empty\n// name space.\nfunc (p *printer) nsForPrefix(prefix string) string {\n\tif prefix == \"\" {\n\t\treturn p.defaultNS\n\t}\n\treturn p.attrNS[prefix]\n}\n\n// markPrefix marks the start of an element on the prefix\n// stack.\nfunc (p *printer) markPrefix() {\n\tp.prefixes = append(p.prefixes, printerPrefix{\n\t\tmark: true,\n\t})\n}\n\n// popPrefix pops all defined prefixes for the current\n// element.\nfunc (p *printer) popPrefix() {\n\tfor len(p.prefixes) > 0 {\n\t\tprefix := p.prefixes[len(p.prefixes)-1]\n\t\tp.prefixes = p.prefixes[:len(p.prefixes)-1]\n\t\tif prefix.mark {\n\t\t\tbreak\n\t\t}\n\t\tp.setAttrPrefix(prefix.prefix, prefix.url)\n\t}\n}\n\n// setAttrPrefix sets an attribute name space prefix.\n// If url is empty, the attribute is removed.\n// If prefix is empty, the default name space is set.\nfunc (p *printer) setAttrPrefix(prefix, url string) {\n\tif prefix == \"\" {\n\t\tp.defaultNS = url\n\t\treturn\n\t}\n\tif url == \"\" {\n\t\tdelete(p.attrPrefix, p.attrNS[prefix])\n\t\tdelete(p.attrNS, prefix)\n\t\treturn\n\t}\n\tif p.attrPrefix == nil {\n\t\t// Need to define a new name space.\n\t\tp.attrPrefix = make(map[string]string)\n\t\tp.attrNS = make(map[string]string)\n\t}\n\t// Remove any old prefix value. This is OK because we maintain a\n\t// strict one-to-one mapping between prefix and URL (see\n\t// defineNS)\n\tdelete(p.attrPrefix, p.attrNS[prefix])\n\tp.attrPrefix[url] = prefix\n\tp.attrNS[prefix] = url\n}\n\nvar (\n\tmarshalerType     = reflect.TypeOf((*Marshaler)(nil)).Elem()\n\tmarshalerAttrType = reflect.TypeOf((*MarshalerAttr)(nil)).Elem()\n\ttextMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n)\n\n// marshalValue writes one or more XML elements representing val.\n// If val was obtained from a struct field, finfo must have its details.\nfunc (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplate *StartElement) error {\n\tif startTemplate != nil && startTemplate.Name.Local == \"\" {\n\t\treturn fmt.Errorf(\"xml: EncodeElement of StartElement with missing name\")\n\t}\n\n\tif !val.IsValid() {\n\t\treturn nil\n\t}\n\tif finfo != nil && finfo.flags&fOmitEmpty != 0 && isEmptyValue(val) {\n\t\treturn nil\n\t}\n\n\t// Drill into interfaces and pointers.\n\t// This can turn into an infinite loop given a cyclic chain,\n\t// but it matches the Go 1 behavior.\n\tfor val.Kind() == reflect.Interface || val.Kind() == reflect.Ptr {\n\t\tif val.IsNil() {\n\t\t\treturn nil\n\t\t}\n\t\tval = val.Elem()\n\t}\n\n\tkind := val.Kind()\n\ttyp := val.Type()\n\n\t// Check for marshaler.\n\tif val.CanInterface() && typ.Implements(marshalerType) {\n\t\treturn p.marshalInterface(val.Interface().(Marshaler), p.defaultStart(typ, finfo, startTemplate))\n\t}\n\tif val.CanAddr() {\n\t\tpv := val.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(marshalerType) {\n\t\t\treturn p.marshalInterface(pv.Interface().(Marshaler), p.defaultStart(pv.Type(), finfo, startTemplate))\n\t\t}\n\t}\n\n\t// Check for text marshaler.\n\tif val.CanInterface() && typ.Implements(textMarshalerType) {\n\t\treturn p.marshalTextInterface(val.Interface().(encoding.TextMarshaler), p.defaultStart(typ, finfo, startTemplate))\n\t}\n\tif val.CanAddr() {\n\t\tpv := val.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(textMarshalerType) {\n\t\t\treturn p.marshalTextInterface(pv.Interface().(encoding.TextMarshaler), p.defaultStart(pv.Type(), finfo, startTemplate))\n\t\t}\n\t}\n\n\t// Slices and arrays iterate over the elements. They do not have an enclosing tag.\n\tif (kind == reflect.Slice || kind == reflect.Array) && typ.Elem().Kind() != reflect.Uint8 {\n\t\tfor i, n := 0, val.Len(); i < n; i++ {\n\t\t\tif err := p.marshalValue(val.Index(i), finfo, startTemplate); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\ttinfo, err := getTypeInfo(typ)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Create start element.\n\t// Precedence for the XML element name is:\n\t// 0. startTemplate\n\t// 1. XMLName field in underlying struct;\n\t// 2. field name/tag in the struct field; and\n\t// 3. type name\n\tvar start StartElement\n\n\t// explicitNS records whether the element's name space has been\n\t// explicitly set (for example an XMLName field).\n\texplicitNS := false\n\n\tif startTemplate != nil {\n\t\tstart.Name = startTemplate.Name\n\t\texplicitNS = true\n\t\tstart.Attr = append(start.Attr, startTemplate.Attr...)\n\t} else if tinfo.xmlname != nil {\n\t\txmlname := tinfo.xmlname\n\t\tif xmlname.name != \"\" {\n\t\t\tstart.Name.Space, start.Name.Local = xmlname.xmlns, xmlname.name\n\t\t} else if v, ok := xmlname.value(val).Interface().(Name); ok && v.Local != \"\" {\n\t\t\tstart.Name = v\n\t\t}\n\t\texplicitNS = true\n\t}\n\tif start.Name.Local == \"\" && finfo != nil {\n\t\tstart.Name.Local = finfo.name\n\t\tif finfo.xmlns != \"\" {\n\t\t\tstart.Name.Space = finfo.xmlns\n\t\t\texplicitNS = true\n\t\t}\n\t}\n\tif start.Name.Local == \"\" {\n\t\tname := typ.Name()\n\t\tif name == \"\" {\n\t\t\treturn &UnsupportedTypeError{typ}\n\t\t}\n\t\tstart.Name.Local = name\n\t}\n\n\t// defaultNS records the default name space as set by a xmlns=\"...\"\n\t// attribute. We don't set p.defaultNS because we want to let\n\t// the attribute writing code (in p.defineNS) be solely responsible\n\t// for maintaining that.\n\tdefaultNS := p.defaultNS\n\n\t// Attributes\n\tfor i := range tinfo.fields {\n\t\tfinfo := &tinfo.fields[i]\n\t\tif finfo.flags&fAttr == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tattr, err := p.fieldAttr(finfo, val)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif attr.Name.Local == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tstart.Attr = append(start.Attr, attr)\n\t\tif attr.Name.Space == \"\" && attr.Name.Local == \"xmlns\" {\n\t\t\tdefaultNS = attr.Value\n\t\t}\n\t}\n\tif !explicitNS {\n\t\t// Historic behavior: elements use the default name space\n\t\t// they are contained in by default.\n\t\tstart.Name.Space = defaultNS\n\t}\n\t// Historic behaviour: an element that's in a namespace sets\n\t// the default namespace for all elements contained within it.\n\tstart.setDefaultNamespace()\n\n\tif err := p.writeStart(&start); err != nil {\n\t\treturn err\n\t}\n\n\tif val.Kind() == reflect.Struct {\n\t\terr = p.marshalStruct(tinfo, val)\n\t} else {\n\t\ts, b, err1 := p.marshalSimple(typ, val)\n\t\tif err1 != nil {\n\t\t\terr = err1\n\t\t} else if b != nil {\n\t\t\tEscapeText(p, b)\n\t\t} else {\n\t\t\tp.EscapeString(s)\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := p.writeEnd(start.Name); err != nil {\n\t\treturn err\n\t}\n\n\treturn p.cachedWriteError()\n}\n\n// fieldAttr returns the attribute of the given field.\n// If the returned attribute has an empty Name.Local,\n// it should not be used.\n// The given value holds the value containing the field.\nfunc (p *printer) fieldAttr(finfo *fieldInfo, val reflect.Value) (Attr, error) {\n\tfv := finfo.value(val)\n\tname := Name{Space: finfo.xmlns, Local: finfo.name}\n\tif finfo.flags&fOmitEmpty != 0 && isEmptyValue(fv) {\n\t\treturn Attr{}, nil\n\t}\n\tif fv.Kind() == reflect.Interface && fv.IsNil() {\n\t\treturn Attr{}, nil\n\t}\n\tif fv.CanInterface() && fv.Type().Implements(marshalerAttrType) {\n\t\tattr, err := fv.Interface().(MarshalerAttr).MarshalXMLAttr(name)\n\t\treturn attr, err\n\t}\n\tif fv.CanAddr() {\n\t\tpv := fv.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(marshalerAttrType) {\n\t\t\tattr, err := pv.Interface().(MarshalerAttr).MarshalXMLAttr(name)\n\t\t\treturn attr, err\n\t\t}\n\t}\n\tif fv.CanInterface() && fv.Type().Implements(textMarshalerType) {\n\t\ttext, err := fv.Interface().(encoding.TextMarshaler).MarshalText()\n\t\tif err != nil {\n\t\t\treturn Attr{}, err\n\t\t}\n\t\treturn Attr{name, string(text)}, nil\n\t}\n\tif fv.CanAddr() {\n\t\tpv := fv.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(textMarshalerType) {\n\t\t\ttext, err := pv.Interface().(encoding.TextMarshaler).MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn Attr{}, err\n\t\t\t}\n\t\t\treturn Attr{name, string(text)}, nil\n\t\t}\n\t}\n\t// Dereference or skip nil pointer, interface values.\n\tswitch fv.Kind() {\n\tcase reflect.Ptr, reflect.Interface:\n\t\tif fv.IsNil() {\n\t\t\treturn Attr{}, nil\n\t\t}\n\t\tfv = fv.Elem()\n\t}\n\ts, b, err := p.marshalSimple(fv.Type(), fv)\n\tif err != nil {\n\t\treturn Attr{}, err\n\t}\n\tif b != nil {\n\t\ts = string(b)\n\t}\n\treturn Attr{name, s}, nil\n}\n\n// defaultStart returns the default start element to use,\n// given the reflect type, field info, and start template.\nfunc (p *printer) defaultStart(typ reflect.Type, finfo *fieldInfo, startTemplate *StartElement) StartElement {\n\tvar start StartElement\n\t// Precedence for the XML element name is as above,\n\t// except that we do not look inside structs for the first field.\n\tif startTemplate != nil {\n\t\tstart.Name = startTemplate.Name\n\t\tstart.Attr = append(start.Attr, startTemplate.Attr...)\n\t} else if finfo != nil && finfo.name != \"\" {\n\t\tstart.Name.Local = finfo.name\n\t\tstart.Name.Space = finfo.xmlns\n\t} else if typ.Name() != \"\" {\n\t\tstart.Name.Local = typ.Name()\n\t} else {\n\t\t// Must be a pointer to a named type,\n\t\t// since it has the Marshaler methods.\n\t\tstart.Name.Local = typ.Elem().Name()\n\t}\n\t// Historic behaviour: elements use the name space of\n\t// the element they are contained in by default.\n\tif start.Name.Space == \"\" {\n\t\tstart.Name.Space = p.defaultNS\n\t}\n\tstart.setDefaultNamespace()\n\treturn start\n}\n\n// marshalInterface marshals a Marshaler interface value.\nfunc (p *printer) marshalInterface(val Marshaler, start StartElement) error {\n\t// Push a marker onto the tag stack so that MarshalXML\n\t// cannot close the XML tags that it did not open.\n\tp.tags = append(p.tags, Name{})\n\tn := len(p.tags)\n\n\terr := val.MarshalXML(p.encoder, start)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Make sure MarshalXML closed all its tags. p.tags[n-1] is the mark.\n\tif len(p.tags) > n {\n\t\treturn fmt.Errorf(\"xml: %s.MarshalXML wrote invalid XML: <%s> not closed\", receiverType(val), p.tags[len(p.tags)-1].Local)\n\t}\n\tp.tags = p.tags[:n-1]\n\treturn nil\n}\n\n// marshalTextInterface marshals a TextMarshaler interface value.\nfunc (p *printer) marshalTextInterface(val encoding.TextMarshaler, start StartElement) error {\n\tif err := p.writeStart(&start); err != nil {\n\t\treturn err\n\t}\n\ttext, err := val.MarshalText()\n\tif err != nil {\n\t\treturn err\n\t}\n\tEscapeText(p, text)\n\treturn p.writeEnd(start.Name)\n}\n\n// writeStart writes the given start element.\nfunc (p *printer) writeStart(start *StartElement) error {\n\tif start.Name.Local == \"\" {\n\t\treturn fmt.Errorf(\"xml: start tag with no name\")\n\t}\n\n\tp.tags = append(p.tags, start.Name)\n\tp.markPrefix()\n\t// Define any name spaces explicitly declared in the attributes.\n\t// We do this as a separate pass so that explicitly declared prefixes\n\t// will take precedence over implicitly declared prefixes\n\t// regardless of the order of the attributes.\n\tignoreNonEmptyDefault := start.Name.Space == \"\"\n\tfor _, attr := range start.Attr {\n\t\tif err := p.defineNS(attr, ignoreNonEmptyDefault); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t// Define any new name spaces implied by the attributes.\n\tfor _, attr := range start.Attr {\n\t\tname := attr.Name\n\t\t// From http://www.w3.org/TR/xml-names11/#defaulting\n\t\t// \"Default namespace declarations do not apply directly\n\t\t// to attribute names; the interpretation of unprefixed\n\t\t// attributes is determined by the element on which they\n\t\t// appear.\"\n\t\t// This means we don't need to create a new namespace\n\t\t// when an attribute name space is empty.\n\t\tif name.Space != \"\" && !name.isNamespace() {\n\t\t\tp.createNSPrefix(name.Space, true)\n\t\t}\n\t}\n\tp.createNSPrefix(start.Name.Space, false)\n\n\tp.writeIndent(1)\n\tp.WriteByte('<')\n\tp.writeName(start.Name, false)\n\tp.writeNamespaces()\n\tfor _, attr := range start.Attr {\n\t\tname := attr.Name\n\t\tif name.Local == \"\" || name.isNamespace() {\n\t\t\t// Namespaces have already been written by writeNamespaces above.\n\t\t\tcontinue\n\t\t}\n\t\tp.WriteByte(' ')\n\t\tp.writeName(name, true)\n\t\tp.WriteString(`=\"`)\n\t\tp.EscapeString(attr.Value)\n\t\tp.WriteByte('\"')\n\t}\n\tp.WriteByte('>')\n\treturn nil\n}\n\n// writeName writes the given name. It assumes\n// that p.createNSPrefix(name) has already been called.\nfunc (p *printer) writeName(name Name, isAttr bool) {\n\tif prefix := p.prefixForNS(name.Space, isAttr); prefix != \"\" {\n\t\tp.WriteString(prefix)\n\t\tp.WriteByte(':')\n\t}\n\tp.WriteString(name.Local)\n}\n\nfunc (p *printer) writeEnd(name Name) error {\n\tif name.Local == \"\" {\n\t\treturn fmt.Errorf(\"xml: end tag with no name\")\n\t}\n\tif len(p.tags) == 0 || p.tags[len(p.tags)-1].Local == \"\" {\n\t\treturn fmt.Errorf(\"xml: end tag </%s> without start tag\", name.Local)\n\t}\n\tif top := p.tags[len(p.tags)-1]; top != name {\n\t\tif top.Local != name.Local {\n\t\t\treturn fmt.Errorf(\"xml: end tag </%s> does not match start tag <%s>\", name.Local, top.Local)\n\t\t}\n\t\treturn fmt.Errorf(\"xml: end tag </%s> in namespace %s does not match start tag <%s> in namespace %s\", name.Local, name.Space, top.Local, top.Space)\n\t}\n\tp.tags = p.tags[:len(p.tags)-1]\n\n\tp.writeIndent(-1)\n\tp.WriteByte('<')\n\tp.WriteByte('/')\n\tp.writeName(name, false)\n\tp.WriteByte('>')\n\tp.popPrefix()\n\treturn nil\n}\n\nfunc (p *printer) marshalSimple(typ reflect.Type, val reflect.Value) (string, []byte, error) {\n\tswitch val.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn strconv.FormatInt(val.Int(), 10), nil, nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn strconv.FormatUint(val.Uint(), 10), nil, nil\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()), nil, nil\n\tcase reflect.String:\n\t\treturn val.String(), nil, nil\n\tcase reflect.Bool:\n\t\treturn strconv.FormatBool(val.Bool()), nil, nil\n\tcase reflect.Array:\n\t\tif typ.Elem().Kind() != reflect.Uint8 {\n\t\t\tbreak\n\t\t}\n\t\t// [...]byte\n\t\tvar bytes []byte\n\t\tif val.CanAddr() {\n\t\t\tbytes = val.Slice(0, val.Len()).Bytes()\n\t\t} else {\n\t\t\tbytes = make([]byte, val.Len())\n\t\t\treflect.Copy(reflect.ValueOf(bytes), val)\n\t\t}\n\t\treturn \"\", bytes, nil\n\tcase reflect.Slice:\n\t\tif typ.Elem().Kind() != reflect.Uint8 {\n\t\t\tbreak\n\t\t}\n\t\t// []byte\n\t\treturn \"\", val.Bytes(), nil\n\t}\n\treturn \"\", nil, &UnsupportedTypeError{typ}\n}\n\nvar ddBytes = []byte(\"--\")\n\nfunc (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error {\n\ts := parentStack{p: p}\n\tfor i := range tinfo.fields {\n\t\tfinfo := &tinfo.fields[i]\n\t\tif finfo.flags&fAttr != 0 {\n\t\t\tcontinue\n\t\t}\n\t\tvf := finfo.value(val)\n\n\t\t// Dereference or skip nil pointer, interface values.\n\t\tswitch vf.Kind() {\n\t\tcase reflect.Ptr, reflect.Interface:\n\t\t\tif !vf.IsNil() {\n\t\t\t\tvf = vf.Elem()\n\t\t\t}\n\t\t}\n\n\t\tswitch finfo.flags & fMode {\n\t\tcase fCharData:\n\t\t\tif err := s.setParents(&noField, reflect.Value{}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif vf.CanInterface() && vf.Type().Implements(textMarshalerType) {\n\t\t\t\tdata, err := vf.Interface().(encoding.TextMarshaler).MarshalText()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tEscape(p, data)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif vf.CanAddr() {\n\t\t\t\tpv := vf.Addr()\n\t\t\t\tif pv.CanInterface() && pv.Type().Implements(textMarshalerType) {\n\t\t\t\t\tdata, err := pv.Interface().(encoding.TextMarshaler).MarshalText()\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tEscape(p, data)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar scratch [64]byte\n\t\t\tswitch vf.Kind() {\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\tEscape(p, strconv.AppendInt(scratch[:0], vf.Int(), 10))\n\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\tEscape(p, strconv.AppendUint(scratch[:0], vf.Uint(), 10))\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\tEscape(p, strconv.AppendFloat(scratch[:0], vf.Float(), 'g', -1, vf.Type().Bits()))\n\t\t\tcase reflect.Bool:\n\t\t\t\tEscape(p, strconv.AppendBool(scratch[:0], vf.Bool()))\n\t\t\tcase reflect.String:\n\t\t\t\tif err := EscapeText(p, []byte(vf.String())); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tcase reflect.Slice:\n\t\t\t\tif elem, ok := vf.Interface().([]byte); ok {\n\t\t\t\t\tif err := EscapeText(p, elem); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\n\t\tcase fComment:\n\t\t\tif err := s.setParents(&noField, reflect.Value{}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tk := vf.Kind()\n\t\t\tif !(k == reflect.String || k == reflect.Slice && vf.Type().Elem().Kind() == reflect.Uint8) {\n\t\t\t\treturn fmt.Errorf(\"xml: bad type for comment field of %s\", val.Type())\n\t\t\t}\n\t\t\tif vf.Len() == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp.writeIndent(0)\n\t\t\tp.WriteString(\"<!--\")\n\t\t\tdashDash := false\n\t\t\tdashLast := false\n\t\t\tswitch k {\n\t\t\tcase reflect.String:\n\t\t\t\ts := vf.String()\n\t\t\t\tdashDash = strings.Index(s, \"--\") >= 0\n\t\t\t\tdashLast = s[len(s)-1] == '-'\n\t\t\t\tif !dashDash {\n\t\t\t\t\tp.WriteString(s)\n\t\t\t\t}\n\t\t\tcase reflect.Slice:\n\t\t\t\tb := vf.Bytes()\n\t\t\t\tdashDash = bytes.Index(b, ddBytes) >= 0\n\t\t\t\tdashLast = b[len(b)-1] == '-'\n\t\t\t\tif !dashDash {\n\t\t\t\t\tp.Write(b)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tpanic(\"can't happen\")\n\t\t\t}\n\t\t\tif dashDash {\n\t\t\t\treturn fmt.Errorf(`xml: comments must not contain \"--\"`)\n\t\t\t}\n\t\t\tif dashLast {\n\t\t\t\t// \"--->\" is invalid grammar. Make it \"- -->\"\n\t\t\t\tp.WriteByte(' ')\n\t\t\t}\n\t\t\tp.WriteString(\"-->\")\n\t\t\tcontinue\n\n\t\tcase fInnerXml:\n\t\t\tiface := vf.Interface()\n\t\t\tswitch raw := iface.(type) {\n\t\t\tcase []byte:\n\t\t\t\tp.Write(raw)\n\t\t\t\tcontinue\n\t\t\tcase string:\n\t\t\t\tp.WriteString(raw)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\tcase fElement, fElement | fAny:\n\t\t\tif err := s.setParents(finfo, vf); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := p.marshalValue(vf, finfo, nil); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := s.setParents(&noField, reflect.Value{}); err != nil {\n\t\treturn err\n\t}\n\treturn p.cachedWriteError()\n}\n\nvar noField fieldInfo\n\n// return the bufio Writer's cached write error\nfunc (p *printer) cachedWriteError() error {\n\t_, err := p.Write(nil)\n\treturn err\n}\n\nfunc (p *printer) writeIndent(depthDelta int) {\n\tif len(p.prefix) == 0 && len(p.indent) == 0 {\n\t\treturn\n\t}\n\tif depthDelta < 0 {\n\t\tp.depth--\n\t\tif p.indentedIn {\n\t\t\tp.indentedIn = false\n\t\t\treturn\n\t\t}\n\t\tp.indentedIn = false\n\t}\n\tif p.putNewline {\n\t\tp.WriteByte('\\n')\n\t} else {\n\t\tp.putNewline = true\n\t}\n\tif len(p.prefix) > 0 {\n\t\tp.WriteString(p.prefix)\n\t}\n\tif len(p.indent) > 0 {\n\t\tfor i := 0; i < p.depth; i++ {\n\t\t\tp.WriteString(p.indent)\n\t\t}\n\t}\n\tif depthDelta > 0 {\n\t\tp.depth++\n\t\tp.indentedIn = true\n\t}\n}\n\ntype parentStack struct {\n\tp       *printer\n\txmlns   string\n\tparents []string\n}\n\n// setParents sets the stack of current parents to those found in finfo.\n// It only writes the start elements if vf holds a non-nil value.\n// If finfo is &noField, it pops all elements.\nfunc (s *parentStack) setParents(finfo *fieldInfo, vf reflect.Value) error {\n\txmlns := s.p.defaultNS\n\tif finfo.xmlns != \"\" {\n\t\txmlns = finfo.xmlns\n\t}\n\tcommonParents := 0\n\tif xmlns == s.xmlns {\n\t\tfor ; commonParents < len(finfo.parents) && commonParents < len(s.parents); commonParents++ {\n\t\t\tif finfo.parents[commonParents] != s.parents[commonParents] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\t// Pop off any parents that aren't in common with the previous field.\n\tfor i := len(s.parents) - 1; i >= commonParents; i-- {\n\t\tif err := s.p.writeEnd(Name{\n\t\t\tSpace: s.xmlns,\n\t\t\tLocal: s.parents[i],\n\t\t}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\ts.parents = finfo.parents\n\ts.xmlns = xmlns\n\tif commonParents >= len(s.parents) {\n\t\t// No new elements to push.\n\t\treturn nil\n\t}\n\tif (vf.Kind() == reflect.Ptr || vf.Kind() == reflect.Interface) && vf.IsNil() {\n\t\t// The element is nil, so no need for the start elements.\n\t\ts.parents = s.parents[:commonParents]\n\t\treturn nil\n\t}\n\t// Push any new parents required.\n\tfor _, name := range s.parents[commonParents:] {\n\t\tstart := &StartElement{\n\t\t\tName: Name{\n\t\t\t\tSpace: s.xmlns,\n\t\t\t\tLocal: name,\n\t\t\t},\n\t\t}\n\t\t// Set the default name space for parent elements\n\t\t// to match what we do with other elements.\n\t\tif s.xmlns != s.p.defaultNS {\n\t\t\tstart.setDefaultNamespace()\n\t\t}\n\t\tif err := s.p.writeStart(start); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// A MarshalXMLError is returned when Marshal encounters a type\n// that cannot be converted into XML.\ntype UnsupportedTypeError struct {\n\tType reflect.Type\n}\n\nfunc (e *UnsupportedTypeError) Error() string {\n\treturn \"xml: unsupported type: \" + e.Type.String()\n}\n\nfunc isEmptyValue(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/internal/xml/read.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xml\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// BUG(rsc): Mapping between XML elements and data structures is inherently flawed:\n// an XML element is an order-dependent collection of anonymous\n// values, while a data structure is an order-independent collection\n// of named values.\n// See package json for a textual representation more suitable\n// to data structures.\n\n// Unmarshal parses the XML-encoded data and stores the result in\n// the value pointed to by v, which must be an arbitrary struct,\n// slice, or string. Well-formed data that does not fit into v is\n// discarded.\n//\n// Because Unmarshal uses the reflect package, it can only assign\n// to exported (upper case) fields. Unmarshal uses a case-sensitive\n// comparison to match XML element names to tag values and struct\n// field names.\n//\n// Unmarshal maps an XML element to a struct using the following rules.\n// In the rules, the tag of a field refers to the value associated with the\n// key 'xml' in the struct field's tag (see the example above).\n//\n//   * If the struct has a field of type []byte or string with tag\n//      \",innerxml\", Unmarshal accumulates the raw XML nested inside the\n//      element in that field. The rest of the rules still apply.\n//\n//   * If the struct has a field named XMLName of type xml.Name,\n//      Unmarshal records the element name in that field.\n//\n//   * If the XMLName field has an associated tag of the form\n//      \"name\" or \"namespace-URL name\", the XML element must have\n//      the given name (and, optionally, name space) or else Unmarshal\n//      returns an error.\n//\n//   * If the XML element has an attribute whose name matches a\n//      struct field name with an associated tag containing \",attr\" or\n//      the explicit name in a struct field tag of the form \"name,attr\",\n//      Unmarshal records the attribute value in that field.\n//\n//   * If the XML element contains character data, that data is\n//      accumulated in the first struct field that has tag \",chardata\".\n//      The struct field may have type []byte or string.\n//      If there is no such field, the character data is discarded.\n//\n//   * If the XML element contains comments, they are accumulated in\n//      the first struct field that has tag \",comment\".  The struct\n//      field may have type []byte or string. If there is no such\n//      field, the comments are discarded.\n//\n//   * If the XML element contains a sub-element whose name matches\n//      the prefix of a tag formatted as \"a\" or \"a>b>c\", unmarshal\n//      will descend into the XML structure looking for elements with the\n//      given names, and will map the innermost elements to that struct\n//      field. A tag starting with \">\" is equivalent to one starting\n//      with the field name followed by \">\".\n//\n//   * If the XML element contains a sub-element whose name matches\n//      a struct field's XMLName tag and the struct field has no\n//      explicit name tag as per the previous rule, unmarshal maps\n//      the sub-element to that struct field.\n//\n//   * If the XML element contains a sub-element whose name matches a\n//      field without any mode flags (\",attr\", \",chardata\", etc), Unmarshal\n//      maps the sub-element to that struct field.\n//\n//   * If the XML element contains a sub-element that hasn't matched any\n//      of the above rules and the struct has a field with tag \",any\",\n//      unmarshal maps the sub-element to that struct field.\n//\n//   * An anonymous struct field is handled as if the fields of its\n//      value were part of the outer struct.\n//\n//   * A struct field with tag \"-\" is never unmarshalled into.\n//\n// Unmarshal maps an XML element to a string or []byte by saving the\n// concatenation of that element's character data in the string or\n// []byte. The saved []byte is never nil.\n//\n// Unmarshal maps an attribute value to a string or []byte by saving\n// the value in the string or slice.\n//\n// Unmarshal maps an XML element to a slice by extending the length of\n// the slice and mapping the element to the newly created value.\n//\n// Unmarshal maps an XML element or attribute value to a bool by\n// setting it to the boolean value represented by the string.\n//\n// Unmarshal maps an XML element or attribute value to an integer or\n// floating-point field by setting the field to the result of\n// interpreting the string value in decimal. There is no check for\n// overflow.\n//\n// Unmarshal maps an XML element to an xml.Name by recording the\n// element name.\n//\n// Unmarshal maps an XML element to a pointer by setting the pointer\n// to a freshly allocated value and then mapping the element to that value.\n//\nfunc Unmarshal(data []byte, v interface{}) error {\n\treturn NewDecoder(bytes.NewReader(data)).Decode(v)\n}\n\n// Decode works like xml.Unmarshal, except it reads the decoder\n// stream to find the start element.\nfunc (d *Decoder) Decode(v interface{}) error {\n\treturn d.DecodeElement(v, nil)\n}\n\n// DecodeElement works like xml.Unmarshal except that it takes\n// a pointer to the start XML element to decode into v.\n// It is useful when a client reads some raw XML tokens itself\n// but also wants to defer to Unmarshal for some elements.\nfunc (d *Decoder) DecodeElement(v interface{}, start *StartElement) error {\n\tval := reflect.ValueOf(v)\n\tif val.Kind() != reflect.Ptr {\n\t\treturn errors.New(\"non-pointer passed to Unmarshal\")\n\t}\n\treturn d.unmarshal(val.Elem(), start)\n}\n\n// An UnmarshalError represents an error in the unmarshalling process.\ntype UnmarshalError string\n\nfunc (e UnmarshalError) Error() string { return string(e) }\n\n// Unmarshaler is the interface implemented by objects that can unmarshal\n// an XML element description of themselves.\n//\n// UnmarshalXML decodes a single XML element\n// beginning with the given start element.\n// If it returns an error, the outer call to Unmarshal stops and\n// returns that error.\n// UnmarshalXML must consume exactly one XML element.\n// One common implementation strategy is to unmarshal into\n// a separate value with a layout matching the expected XML\n// using d.DecodeElement,  and then to copy the data from\n// that value into the receiver.\n// Another common strategy is to use d.Token to process the\n// XML object one token at a time.\n// UnmarshalXML may not use d.RawToken.\ntype Unmarshaler interface {\n\tUnmarshalXML(d *Decoder, start StartElement) error\n}\n\n// UnmarshalerAttr is the interface implemented by objects that can unmarshal\n// an XML attribute description of themselves.\n//\n// UnmarshalXMLAttr decodes a single XML attribute.\n// If it returns an error, the outer call to Unmarshal stops and\n// returns that error.\n// UnmarshalXMLAttr is used only for struct fields with the\n// \"attr\" option in the field tag.\ntype UnmarshalerAttr interface {\n\tUnmarshalXMLAttr(attr Attr) error\n}\n\n// receiverType returns the receiver type to use in an expression like \"%s.MethodName\".\nfunc receiverType(val interface{}) string {\n\tt := reflect.TypeOf(val)\n\tif t.Name() != \"\" {\n\t\treturn t.String()\n\t}\n\treturn \"(\" + t.String() + \")\"\n}\n\n// unmarshalInterface unmarshals a single XML element into val.\n// start is the opening tag of the element.\nfunc (p *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error {\n\t// Record that decoder must stop at end tag corresponding to start.\n\tp.pushEOF()\n\n\tp.unmarshalDepth++\n\terr := val.UnmarshalXML(p, *start)\n\tp.unmarshalDepth--\n\tif err != nil {\n\t\tp.popEOF()\n\t\treturn err\n\t}\n\n\tif !p.popEOF() {\n\t\treturn fmt.Errorf(\"xml: %s.UnmarshalXML did not consume entire <%s> element\", receiverType(val), start.Name.Local)\n\t}\n\n\treturn nil\n}\n\n// unmarshalTextInterface unmarshals a single XML element into val.\n// The chardata contained in the element (but not its children)\n// is passed to the text unmarshaler.\nfunc (p *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler, start *StartElement) error {\n\tvar buf []byte\n\tdepth := 1\n\tfor depth > 0 {\n\t\tt, err := p.Token()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch t := t.(type) {\n\t\tcase CharData:\n\t\t\tif depth == 1 {\n\t\t\t\tbuf = append(buf, t...)\n\t\t\t}\n\t\tcase StartElement:\n\t\t\tdepth++\n\t\tcase EndElement:\n\t\t\tdepth--\n\t\t}\n\t}\n\treturn val.UnmarshalText(buf)\n}\n\n// unmarshalAttr unmarshals a single XML attribute into val.\nfunc (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error {\n\tif val.Kind() == reflect.Ptr {\n\t\tif val.IsNil() {\n\t\t\tval.Set(reflect.New(val.Type().Elem()))\n\t\t}\n\t\tval = val.Elem()\n\t}\n\n\tif val.CanInterface() && val.Type().Implements(unmarshalerAttrType) {\n\t\t// This is an unmarshaler with a non-pointer receiver,\n\t\t// so it's likely to be incorrect, but we do what we're told.\n\t\treturn val.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr)\n\t}\n\tif val.CanAddr() {\n\t\tpv := val.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(unmarshalerAttrType) {\n\t\t\treturn pv.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr)\n\t\t}\n\t}\n\n\t// Not an UnmarshalerAttr; try encoding.TextUnmarshaler.\n\tif val.CanInterface() && val.Type().Implements(textUnmarshalerType) {\n\t\t// This is an unmarshaler with a non-pointer receiver,\n\t\t// so it's likely to be incorrect, but we do what we're told.\n\t\treturn val.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value))\n\t}\n\tif val.CanAddr() {\n\t\tpv := val.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {\n\t\t\treturn pv.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value))\n\t\t}\n\t}\n\n\tcopyValue(val, []byte(attr.Value))\n\treturn nil\n}\n\nvar (\n\tunmarshalerType     = reflect.TypeOf((*Unmarshaler)(nil)).Elem()\n\tunmarshalerAttrType = reflect.TypeOf((*UnmarshalerAttr)(nil)).Elem()\n\ttextUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()\n)\n\n// Unmarshal a single XML element into val.\nfunc (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error {\n\t// Find start element if we need it.\n\tif start == nil {\n\t\tfor {\n\t\t\ttok, err := p.Token()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif t, ok := tok.(StartElement); ok {\n\t\t\t\tstart = &t\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// Load value from interface, but only if the result will be\n\t// usefully addressable.\n\tif val.Kind() == reflect.Interface && !val.IsNil() {\n\t\te := val.Elem()\n\t\tif e.Kind() == reflect.Ptr && !e.IsNil() {\n\t\t\tval = e\n\t\t}\n\t}\n\n\tif val.Kind() == reflect.Ptr {\n\t\tif val.IsNil() {\n\t\t\tval.Set(reflect.New(val.Type().Elem()))\n\t\t}\n\t\tval = val.Elem()\n\t}\n\n\tif val.CanInterface() && val.Type().Implements(unmarshalerType) {\n\t\t// This is an unmarshaler with a non-pointer receiver,\n\t\t// so it's likely to be incorrect, but we do what we're told.\n\t\treturn p.unmarshalInterface(val.Interface().(Unmarshaler), start)\n\t}\n\n\tif val.CanAddr() {\n\t\tpv := val.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(unmarshalerType) {\n\t\t\treturn p.unmarshalInterface(pv.Interface().(Unmarshaler), start)\n\t\t}\n\t}\n\n\tif val.CanInterface() && val.Type().Implements(textUnmarshalerType) {\n\t\treturn p.unmarshalTextInterface(val.Interface().(encoding.TextUnmarshaler), start)\n\t}\n\n\tif val.CanAddr() {\n\t\tpv := val.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {\n\t\t\treturn p.unmarshalTextInterface(pv.Interface().(encoding.TextUnmarshaler), start)\n\t\t}\n\t}\n\n\tvar (\n\t\tdata         []byte\n\t\tsaveData     reflect.Value\n\t\tcomment      []byte\n\t\tsaveComment  reflect.Value\n\t\tsaveXML      reflect.Value\n\t\tsaveXMLIndex int\n\t\tsaveXMLData  []byte\n\t\tsaveAny      reflect.Value\n\t\tsv           reflect.Value\n\t\ttinfo        *typeInfo\n\t\terr          error\n\t)\n\n\tswitch v := val; v.Kind() {\n\tdefault:\n\t\treturn errors.New(\"unknown type \" + v.Type().String())\n\n\tcase reflect.Interface:\n\t\t// TODO: For now, simply ignore the field. In the near\n\t\t//       future we may choose to unmarshal the start\n\t\t//       element on it, if not nil.\n\t\treturn p.Skip()\n\n\tcase reflect.Slice:\n\t\ttyp := v.Type()\n\t\tif typ.Elem().Kind() == reflect.Uint8 {\n\t\t\t// []byte\n\t\t\tsaveData = v\n\t\t\tbreak\n\t\t}\n\n\t\t// Slice of element values.\n\t\t// Grow slice.\n\t\tn := v.Len()\n\t\tif n >= v.Cap() {\n\t\t\tncap := 2 * n\n\t\t\tif ncap < 4 {\n\t\t\t\tncap = 4\n\t\t\t}\n\t\t\tnew := reflect.MakeSlice(typ, n, ncap)\n\t\t\treflect.Copy(new, v)\n\t\t\tv.Set(new)\n\t\t}\n\t\tv.SetLen(n + 1)\n\n\t\t// Recur to read element into slice.\n\t\tif err := p.unmarshal(v.Index(n), start); err != nil {\n\t\t\tv.SetLen(n)\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.String:\n\t\tsaveData = v\n\n\tcase reflect.Struct:\n\t\ttyp := v.Type()\n\t\tif typ == nameType {\n\t\t\tv.Set(reflect.ValueOf(start.Name))\n\t\t\tbreak\n\t\t}\n\n\t\tsv = v\n\t\ttinfo, err = getTypeInfo(typ)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Validate and assign element name.\n\t\tif tinfo.xmlname != nil {\n\t\t\tfinfo := tinfo.xmlname\n\t\t\tif finfo.name != \"\" && finfo.name != start.Name.Local {\n\t\t\t\treturn UnmarshalError(\"expected element type <\" + finfo.name + \"> but have <\" + start.Name.Local + \">\")\n\t\t\t}\n\t\t\tif finfo.xmlns != \"\" && finfo.xmlns != start.Name.Space {\n\t\t\t\te := \"expected element <\" + finfo.name + \"> in name space \" + finfo.xmlns + \" but have \"\n\t\t\t\tif start.Name.Space == \"\" {\n\t\t\t\t\te += \"no name space\"\n\t\t\t\t} else {\n\t\t\t\t\te += start.Name.Space\n\t\t\t\t}\n\t\t\t\treturn UnmarshalError(e)\n\t\t\t}\n\t\t\tfv := finfo.value(sv)\n\t\t\tif _, ok := fv.Interface().(Name); ok {\n\t\t\t\tfv.Set(reflect.ValueOf(start.Name))\n\t\t\t}\n\t\t}\n\n\t\t// Assign attributes.\n\t\t// Also, determine whether we need to save character data or comments.\n\t\tfor i := range tinfo.fields {\n\t\t\tfinfo := &tinfo.fields[i]\n\t\t\tswitch finfo.flags & fMode {\n\t\t\tcase fAttr:\n\t\t\t\tstrv := finfo.value(sv)\n\t\t\t\t// Look for attribute.\n\t\t\t\tfor _, a := range start.Attr {\n\t\t\t\t\tif a.Name.Local == finfo.name && (finfo.xmlns == \"\" || finfo.xmlns == a.Name.Space) {\n\t\t\t\t\t\tif err := p.unmarshalAttr(strv, a); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tcase fCharData:\n\t\t\t\tif !saveData.IsValid() {\n\t\t\t\t\tsaveData = finfo.value(sv)\n\t\t\t\t}\n\n\t\t\tcase fComment:\n\t\t\t\tif !saveComment.IsValid() {\n\t\t\t\t\tsaveComment = finfo.value(sv)\n\t\t\t\t}\n\n\t\t\tcase fAny, fAny | fElement:\n\t\t\t\tif !saveAny.IsValid() {\n\t\t\t\t\tsaveAny = finfo.value(sv)\n\t\t\t\t}\n\n\t\t\tcase fInnerXml:\n\t\t\t\tif !saveXML.IsValid() {\n\t\t\t\t\tsaveXML = finfo.value(sv)\n\t\t\t\t\tif p.saved == nil {\n\t\t\t\t\t\tsaveXMLIndex = 0\n\t\t\t\t\t\tp.saved = new(bytes.Buffer)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsaveXMLIndex = p.savedOffset()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Find end element.\n\t// Process sub-elements along the way.\nLoop:\n\tfor {\n\t\tvar savedOffset int\n\t\tif saveXML.IsValid() {\n\t\t\tsavedOffset = p.savedOffset()\n\t\t}\n\t\ttok, err := p.Token()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch t := tok.(type) {\n\t\tcase StartElement:\n\t\t\tconsumed := false\n\t\t\tif sv.IsValid() {\n\t\t\t\tconsumed, err = p.unmarshalPath(tinfo, sv, nil, &t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !consumed && saveAny.IsValid() {\n\t\t\t\t\tconsumed = true\n\t\t\t\t\tif err := p.unmarshal(saveAny, &t); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !consumed {\n\t\t\t\tif err := p.Skip(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase EndElement:\n\t\t\tif saveXML.IsValid() {\n\t\t\t\tsaveXMLData = p.saved.Bytes()[saveXMLIndex:savedOffset]\n\t\t\t\tif saveXMLIndex == 0 {\n\t\t\t\t\tp.saved = nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak Loop\n\n\t\tcase CharData:\n\t\t\tif saveData.IsValid() {\n\t\t\t\tdata = append(data, t...)\n\t\t\t}\n\n\t\tcase Comment:\n\t\t\tif saveComment.IsValid() {\n\t\t\t\tcomment = append(comment, t...)\n\t\t\t}\n\t\t}\n\t}\n\n\tif saveData.IsValid() && saveData.CanInterface() && saveData.Type().Implements(textUnmarshalerType) {\n\t\tif err := saveData.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsaveData = reflect.Value{}\n\t}\n\n\tif saveData.IsValid() && saveData.CanAddr() {\n\t\tpv := saveData.Addr()\n\t\tif pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {\n\t\t\tif err := pv.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tsaveData = reflect.Value{}\n\t\t}\n\t}\n\n\tif err := copyValue(saveData, data); err != nil {\n\t\treturn err\n\t}\n\n\tswitch t := saveComment; t.Kind() {\n\tcase reflect.String:\n\t\tt.SetString(string(comment))\n\tcase reflect.Slice:\n\t\tt.Set(reflect.ValueOf(comment))\n\t}\n\n\tswitch t := saveXML; t.Kind() {\n\tcase reflect.String:\n\t\tt.SetString(string(saveXMLData))\n\tcase reflect.Slice:\n\t\tt.Set(reflect.ValueOf(saveXMLData))\n\t}\n\n\treturn nil\n}\n\nfunc copyValue(dst reflect.Value, src []byte) (err error) {\n\tdst0 := dst\n\n\tif dst.Kind() == reflect.Ptr {\n\t\tif dst.IsNil() {\n\t\t\tdst.Set(reflect.New(dst.Type().Elem()))\n\t\t}\n\t\tdst = dst.Elem()\n\t}\n\n\t// Save accumulated data.\n\tswitch dst.Kind() {\n\tcase reflect.Invalid:\n\t\t// Probably a comment.\n\tdefault:\n\t\treturn errors.New(\"cannot unmarshal into \" + dst0.Type().String())\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\titmp, err := strconv.ParseInt(string(src), 10, dst.Type().Bits())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdst.SetInt(itmp)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tutmp, err := strconv.ParseUint(string(src), 10, dst.Type().Bits())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdst.SetUint(utmp)\n\tcase reflect.Float32, reflect.Float64:\n\t\tftmp, err := strconv.ParseFloat(string(src), dst.Type().Bits())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdst.SetFloat(ftmp)\n\tcase reflect.Bool:\n\t\tvalue, err := strconv.ParseBool(strings.TrimSpace(string(src)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdst.SetBool(value)\n\tcase reflect.String:\n\t\tdst.SetString(string(src))\n\tcase reflect.Slice:\n\t\tif len(src) == 0 {\n\t\t\t// non-nil to flag presence\n\t\t\tsrc = []byte{}\n\t\t}\n\t\tdst.SetBytes(src)\n\t}\n\treturn nil\n}\n\n// unmarshalPath walks down an XML structure looking for wanted\n// paths, and calls unmarshal on them.\n// The consumed result tells whether XML elements have been consumed\n// from the Decoder until start's matching end element, or if it's\n// still untouched because start is uninteresting for sv's fields.\nfunc (p *Decoder) unmarshalPath(tinfo *typeInfo, sv reflect.Value, parents []string, start *StartElement) (consumed bool, err error) {\n\trecurse := false\nLoop:\n\tfor i := range tinfo.fields {\n\t\tfinfo := &tinfo.fields[i]\n\t\tif finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) || finfo.xmlns != \"\" && finfo.xmlns != start.Name.Space {\n\t\t\tcontinue\n\t\t}\n\t\tfor j := range parents {\n\t\t\tif parents[j] != finfo.parents[j] {\n\t\t\t\tcontinue Loop\n\t\t\t}\n\t\t}\n\t\tif len(finfo.parents) == len(parents) && finfo.name == start.Name.Local {\n\t\t\t// It's a perfect match, unmarshal the field.\n\t\t\treturn true, p.unmarshal(finfo.value(sv), start)\n\t\t}\n\t\tif len(finfo.parents) > len(parents) && finfo.parents[len(parents)] == start.Name.Local {\n\t\t\t// It's a prefix for the field. Break and recurse\n\t\t\t// since it's not ok for one field path to be itself\n\t\t\t// the prefix for another field path.\n\t\t\trecurse = true\n\n\t\t\t// We can reuse the same slice as long as we\n\t\t\t// don't try to append to it.\n\t\t\tparents = finfo.parents[:len(parents)+1]\n\t\t\tbreak\n\t\t}\n\t}\n\tif !recurse {\n\t\t// We have no business with this element.\n\t\treturn false, nil\n\t}\n\t// The element is not a perfect match for any field, but one\n\t// or more fields have the path to this element as a parent\n\t// prefix. Recurse and attempt to match these.\n\tfor {\n\t\tvar tok Token\n\t\ttok, err = p.Token()\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\t\tswitch t := tok.(type) {\n\t\tcase StartElement:\n\t\t\tconsumed2, err := p.unmarshalPath(tinfo, sv, parents, &t)\n\t\t\tif err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t\tif !consumed2 {\n\t\t\t\tif err := p.Skip(); err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase EndElement:\n\t\t\treturn true, nil\n\t\t}\n\t}\n}\n\n// Skip reads tokens until it has consumed the end element\n// matching the most recent start element already consumed.\n// It recurs if it encounters a start element, so it can be used to\n// skip nested structures.\n// It returns nil if it finds an end element matching the start\n// element; otherwise it returns an error describing the problem.\nfunc (d *Decoder) Skip() error {\n\tfor {\n\t\ttok, err := d.Token()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.(type) {\n\t\tcase StartElement:\n\t\t\tif err := d.Skip(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase EndElement:\n\t\t\treturn nil\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/internal/xml/typeinfo.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xml\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// typeInfo holds details for the xml representation of a type.\ntype typeInfo struct {\n\txmlname *fieldInfo\n\tfields  []fieldInfo\n}\n\n// fieldInfo holds details for the xml representation of a single field.\ntype fieldInfo struct {\n\tidx     []int\n\tname    string\n\txmlns   string\n\tflags   fieldFlags\n\tparents []string\n}\n\ntype fieldFlags int\n\nconst (\n\tfElement fieldFlags = 1 << iota\n\tfAttr\n\tfCharData\n\tfInnerXml\n\tfComment\n\tfAny\n\n\tfOmitEmpty\n\n\tfMode = fElement | fAttr | fCharData | fInnerXml | fComment | fAny\n)\n\nvar tinfoMap = make(map[reflect.Type]*typeInfo)\nvar tinfoLock sync.RWMutex\n\nvar nameType = reflect.TypeOf(Name{})\n\n// getTypeInfo returns the typeInfo structure with details necessary\n// for marshalling and unmarshalling typ.\nfunc getTypeInfo(typ reflect.Type) (*typeInfo, error) {\n\ttinfoLock.RLock()\n\ttinfo, ok := tinfoMap[typ]\n\ttinfoLock.RUnlock()\n\tif ok {\n\t\treturn tinfo, nil\n\t}\n\ttinfo = &typeInfo{}\n\tif typ.Kind() == reflect.Struct && typ != nameType {\n\t\tn := typ.NumField()\n\t\tfor i := 0; i < n; i++ {\n\t\t\tf := typ.Field(i)\n\t\t\tif f.PkgPath != \"\" || f.Tag.Get(\"xml\") == \"-\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\n\t\t\t// For embedded structs, embed its fields.\n\t\t\tif f.Anonymous {\n\t\t\t\tt := f.Type\n\t\t\t\tif t.Kind() == reflect.Ptr {\n\t\t\t\t\tt = t.Elem()\n\t\t\t\t}\n\t\t\t\tif t.Kind() == reflect.Struct {\n\t\t\t\t\tinner, err := getTypeInfo(t)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tif tinfo.xmlname == nil {\n\t\t\t\t\t\ttinfo.xmlname = inner.xmlname\n\t\t\t\t\t}\n\t\t\t\t\tfor _, finfo := range inner.fields {\n\t\t\t\t\t\tfinfo.idx = append([]int{i}, finfo.idx...)\n\t\t\t\t\t\tif err := addFieldInfo(typ, tinfo, &finfo); err != nil {\n\t\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfinfo, err := structFieldInfo(typ, &f)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif f.Name == \"XMLName\" {\n\t\t\t\ttinfo.xmlname = finfo\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Add the field if it doesn't conflict with other fields.\n\t\t\tif err := addFieldInfo(typ, tinfo, finfo); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\ttinfoLock.Lock()\n\ttinfoMap[typ] = tinfo\n\ttinfoLock.Unlock()\n\treturn tinfo, nil\n}\n\n// structFieldInfo builds and returns a fieldInfo for f.\nfunc structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, error) {\n\tfinfo := &fieldInfo{idx: f.Index}\n\n\t// Split the tag from the xml namespace if necessary.\n\ttag := f.Tag.Get(\"xml\")\n\tif i := strings.Index(tag, \" \"); i >= 0 {\n\t\tfinfo.xmlns, tag = tag[:i], tag[i+1:]\n\t}\n\n\t// Parse flags.\n\ttokens := strings.Split(tag, \",\")\n\tif len(tokens) == 1 {\n\t\tfinfo.flags = fElement\n\t} else {\n\t\ttag = tokens[0]\n\t\tfor _, flag := range tokens[1:] {\n\t\t\tswitch flag {\n\t\t\tcase \"attr\":\n\t\t\t\tfinfo.flags |= fAttr\n\t\t\tcase \"chardata\":\n\t\t\t\tfinfo.flags |= fCharData\n\t\t\tcase \"innerxml\":\n\t\t\t\tfinfo.flags |= fInnerXml\n\t\t\tcase \"comment\":\n\t\t\t\tfinfo.flags |= fComment\n\t\t\tcase \"any\":\n\t\t\t\tfinfo.flags |= fAny\n\t\t\tcase \"omitempty\":\n\t\t\t\tfinfo.flags |= fOmitEmpty\n\t\t\t}\n\t\t}\n\n\t\t// Validate the flags used.\n\t\tvalid := true\n\t\tswitch mode := finfo.flags & fMode; mode {\n\t\tcase 0:\n\t\t\tfinfo.flags |= fElement\n\t\tcase fAttr, fCharData, fInnerXml, fComment, fAny:\n\t\t\tif f.Name == \"XMLName\" || tag != \"\" && mode != fAttr {\n\t\t\t\tvalid = false\n\t\t\t}\n\t\tdefault:\n\t\t\t// This will also catch multiple modes in a single field.\n\t\t\tvalid = false\n\t\t}\n\t\tif finfo.flags&fMode == fAny {\n\t\t\tfinfo.flags |= fElement\n\t\t}\n\t\tif finfo.flags&fOmitEmpty != 0 && finfo.flags&(fElement|fAttr) == 0 {\n\t\t\tvalid = false\n\t\t}\n\t\tif !valid {\n\t\t\treturn nil, fmt.Errorf(\"xml: invalid tag in field %s of type %s: %q\",\n\t\t\t\tf.Name, typ, f.Tag.Get(\"xml\"))\n\t\t}\n\t}\n\n\t// Use of xmlns without a name is not allowed.\n\tif finfo.xmlns != \"\" && tag == \"\" {\n\t\treturn nil, fmt.Errorf(\"xml: namespace without name in field %s of type %s: %q\",\n\t\t\tf.Name, typ, f.Tag.Get(\"xml\"))\n\t}\n\n\tif f.Name == \"XMLName\" {\n\t\t// The XMLName field records the XML element name. Don't\n\t\t// process it as usual because its name should default to\n\t\t// empty rather than to the field name.\n\t\tfinfo.name = tag\n\t\treturn finfo, nil\n\t}\n\n\tif tag == \"\" {\n\t\t// If the name part of the tag is completely empty, get\n\t\t// default from XMLName of underlying struct if feasible,\n\t\t// or field name otherwise.\n\t\tif xmlname := lookupXMLName(f.Type); xmlname != nil {\n\t\t\tfinfo.xmlns, finfo.name = xmlname.xmlns, xmlname.name\n\t\t} else {\n\t\t\tfinfo.name = f.Name\n\t\t}\n\t\treturn finfo, nil\n\t}\n\n\tif finfo.xmlns == \"\" && finfo.flags&fAttr == 0 {\n\t\t// If it's an element no namespace specified, get the default\n\t\t// from the XMLName of enclosing struct if possible.\n\t\tif xmlname := lookupXMLName(typ); xmlname != nil {\n\t\t\tfinfo.xmlns = xmlname.xmlns\n\t\t}\n\t}\n\n\t// Prepare field name and parents.\n\tparents := strings.Split(tag, \">\")\n\tif parents[0] == \"\" {\n\t\tparents[0] = f.Name\n\t}\n\tif parents[len(parents)-1] == \"\" {\n\t\treturn nil, fmt.Errorf(\"xml: trailing '>' in field %s of type %s\", f.Name, typ)\n\t}\n\tfinfo.name = parents[len(parents)-1]\n\tif len(parents) > 1 {\n\t\tif (finfo.flags & fElement) == 0 {\n\t\t\treturn nil, fmt.Errorf(\"xml: %s chain not valid with %s flag\", tag, strings.Join(tokens[1:], \",\"))\n\t\t}\n\t\tfinfo.parents = parents[:len(parents)-1]\n\t}\n\n\t// If the field type has an XMLName field, the names must match\n\t// so that the behavior of both marshalling and unmarshalling\n\t// is straightforward and unambiguous.\n\tif finfo.flags&fElement != 0 {\n\t\tftyp := f.Type\n\t\txmlname := lookupXMLName(ftyp)\n\t\tif xmlname != nil && xmlname.name != finfo.name {\n\t\t\treturn nil, fmt.Errorf(\"xml: name %q in tag of %s.%s conflicts with name %q in %s.XMLName\",\n\t\t\t\tfinfo.name, typ, f.Name, xmlname.name, ftyp)\n\t\t}\n\t}\n\treturn finfo, nil\n}\n\n// lookupXMLName returns the fieldInfo for typ's XMLName field\n// in case it exists and has a valid xml field tag, otherwise\n// it returns nil.\nfunc lookupXMLName(typ reflect.Type) (xmlname *fieldInfo) {\n\tfor typ.Kind() == reflect.Ptr {\n\t\ttyp = typ.Elem()\n\t}\n\tif typ.Kind() != reflect.Struct {\n\t\treturn nil\n\t}\n\tfor i, n := 0, typ.NumField(); i < n; i++ {\n\t\tf := typ.Field(i)\n\t\tif f.Name != \"XMLName\" {\n\t\t\tcontinue\n\t\t}\n\t\tfinfo, err := structFieldInfo(typ, &f)\n\t\tif finfo.name != \"\" && err == nil {\n\t\t\treturn finfo\n\t\t}\n\t\t// Also consider errors as a non-existent field tag\n\t\t// and let getTypeInfo itself report the error.\n\t\tbreak\n\t}\n\treturn nil\n}\n\nfunc min(a, b int) int {\n\tif a <= b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// addFieldInfo adds finfo to tinfo.fields if there are no\n// conflicts, or if conflicts arise from previous fields that were\n// obtained from deeper embedded structures than finfo. In the latter\n// case, the conflicting entries are dropped.\n// A conflict occurs when the path (parent + name) to a field is\n// itself a prefix of another path, or when two paths match exactly.\n// It is okay for field paths to share a common, shorter prefix.\nfunc addFieldInfo(typ reflect.Type, tinfo *typeInfo, newf *fieldInfo) error {\n\tvar conflicts []int\nLoop:\n\t// First, figure all conflicts. Most working code will have none.\n\tfor i := range tinfo.fields {\n\t\toldf := &tinfo.fields[i]\n\t\tif oldf.flags&fMode != newf.flags&fMode {\n\t\t\tcontinue\n\t\t}\n\t\tif oldf.xmlns != \"\" && newf.xmlns != \"\" && oldf.xmlns != newf.xmlns {\n\t\t\tcontinue\n\t\t}\n\t\tminl := min(len(newf.parents), len(oldf.parents))\n\t\tfor p := 0; p < minl; p++ {\n\t\t\tif oldf.parents[p] != newf.parents[p] {\n\t\t\t\tcontinue Loop\n\t\t\t}\n\t\t}\n\t\tif len(oldf.parents) > len(newf.parents) {\n\t\t\tif oldf.parents[len(newf.parents)] == newf.name {\n\t\t\t\tconflicts = append(conflicts, i)\n\t\t\t}\n\t\t} else if len(oldf.parents) < len(newf.parents) {\n\t\t\tif newf.parents[len(oldf.parents)] == oldf.name {\n\t\t\t\tconflicts = append(conflicts, i)\n\t\t\t}\n\t\t} else {\n\t\t\tif newf.name == oldf.name {\n\t\t\t\tconflicts = append(conflicts, i)\n\t\t\t}\n\t\t}\n\t}\n\t// Without conflicts, add the new field and return.\n\tif conflicts == nil {\n\t\ttinfo.fields = append(tinfo.fields, *newf)\n\t\treturn nil\n\t}\n\n\t// If any conflict is shallower, ignore the new field.\n\t// This matches the Go field resolution on embedding.\n\tfor _, i := range conflicts {\n\t\tif len(tinfo.fields[i].idx) < len(newf.idx) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Otherwise, if any of them is at the same depth level, it's an error.\n\tfor _, i := range conflicts {\n\t\toldf := &tinfo.fields[i]\n\t\tif len(oldf.idx) == len(newf.idx) {\n\t\t\tf1 := typ.FieldByIndex(oldf.idx)\n\t\t\tf2 := typ.FieldByIndex(newf.idx)\n\t\t\treturn &TagPathError{typ, f1.Name, f1.Tag.Get(\"xml\"), f2.Name, f2.Tag.Get(\"xml\")}\n\t\t}\n\t}\n\n\t// Otherwise, the new field is shallower, and thus takes precedence,\n\t// so drop the conflicting fields from tinfo and append the new one.\n\tfor c := len(conflicts) - 1; c >= 0; c-- {\n\t\ti := conflicts[c]\n\t\tcopy(tinfo.fields[i:], tinfo.fields[i+1:])\n\t\ttinfo.fields = tinfo.fields[:len(tinfo.fields)-1]\n\t}\n\ttinfo.fields = append(tinfo.fields, *newf)\n\treturn nil\n}\n\n// A TagPathError represents an error in the unmarshalling process\n// caused by the use of field tags with conflicting paths.\ntype TagPathError struct {\n\tStruct       reflect.Type\n\tField1, Tag1 string\n\tField2, Tag2 string\n}\n\nfunc (e *TagPathError) Error() string {\n\treturn fmt.Sprintf(\"%s field %q with tag %q conflicts with field %q with tag %q\", e.Struct, e.Field1, e.Tag1, e.Field2, e.Tag2)\n}\n\n// value returns v's field value corresponding to finfo.\n// It's equivalent to v.FieldByIndex(finfo.idx), but initializes\n// and dereferences pointers as necessary.\nfunc (finfo *fieldInfo) value(v reflect.Value) reflect.Value {\n\tfor i, x := range finfo.idx {\n\t\tif i > 0 {\n\t\t\tt := v.Type()\n\t\t\tif t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t}\n\t\t}\n\t\tv = v.Field(x)\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/internal/xml/xml.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package xml implements a simple XML 1.0 parser that\n// understands XML name spaces.\npackage xml\n\n// References:\n//    Annotated XML spec: http://www.xml.com/axml/testaxml.htm\n//    XML name spaces: http://www.w3.org/TR/REC-xml-names/\n\n// TODO(rsc):\n//\tTest error handling.\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// A SyntaxError represents a syntax error in the XML input stream.\ntype SyntaxError struct {\n\tMsg  string\n\tLine int\n}\n\nfunc (e *SyntaxError) Error() string {\n\treturn \"XML syntax error on line \" + strconv.Itoa(e.Line) + \": \" + e.Msg\n}\n\n// A Name represents an XML name (Local) annotated with a name space\n// identifier (Space). In tokens returned by Decoder.Token, the Space\n// identifier is given as a canonical URL, not the short prefix used in\n// the document being parsed.\n//\n// As a special case, XML namespace declarations will use the literal\n// string \"xmlns\" for the Space field instead of the fully resolved URL.\n// See Encoder.EncodeToken for more information on namespace encoding\n// behaviour.\ntype Name struct {\n\tSpace, Local string\n}\n\n// isNamespace reports whether the name is a namespace-defining name.\nfunc (name Name) isNamespace() bool {\n\treturn name.Local == \"xmlns\" || name.Space == \"xmlns\"\n}\n\n// An Attr represents an attribute in an XML element (Name=Value).\ntype Attr struct {\n\tName  Name\n\tValue string\n}\n\n// A Token is an interface holding one of the token types:\n// StartElement, EndElement, CharData, Comment, ProcInst, or Directive.\ntype Token interface{}\n\n// A StartElement represents an XML start element.\ntype StartElement struct {\n\tName Name\n\tAttr []Attr\n}\n\nfunc (e StartElement) Copy() StartElement {\n\tattrs := make([]Attr, len(e.Attr))\n\tcopy(attrs, e.Attr)\n\te.Attr = attrs\n\treturn e\n}\n\n// End returns the corresponding XML end element.\nfunc (e StartElement) End() EndElement {\n\treturn EndElement{e.Name}\n}\n\n// setDefaultNamespace sets the namespace of the element\n// as the default for all elements contained within it.\nfunc (e *StartElement) setDefaultNamespace() {\n\tif e.Name.Space == \"\" {\n\t\t// If there's no namespace on the element, don't\n\t\t// set the default. Strictly speaking this might be wrong, as\n\t\t// we can't tell if the element had no namespace set\n\t\t// or was just using the default namespace.\n\t\treturn\n\t}\n\t// Don't add a default name space if there's already one set.\n\tfor _, attr := range e.Attr {\n\t\tif attr.Name.Space == \"\" && attr.Name.Local == \"xmlns\" {\n\t\t\treturn\n\t\t}\n\t}\n\te.Attr = append(e.Attr, Attr{\n\t\tName: Name{\n\t\t\tLocal: \"xmlns\",\n\t\t},\n\t\tValue: e.Name.Space,\n\t})\n}\n\n// An EndElement represents an XML end element.\ntype EndElement struct {\n\tName Name\n}\n\n// A CharData represents XML character data (raw text),\n// in which XML escape sequences have been replaced by\n// the characters they represent.\ntype CharData []byte\n\nfunc makeCopy(b []byte) []byte {\n\tb1 := make([]byte, len(b))\n\tcopy(b1, b)\n\treturn b1\n}\n\nfunc (c CharData) Copy() CharData { return CharData(makeCopy(c)) }\n\n// A Comment represents an XML comment of the form <!--comment-->.\n// The bytes do not include the <!-- and --> comment markers.\ntype Comment []byte\n\nfunc (c Comment) Copy() Comment { return Comment(makeCopy(c)) }\n\n// A ProcInst represents an XML processing instruction of the form <?target inst?>\ntype ProcInst struct {\n\tTarget string\n\tInst   []byte\n}\n\nfunc (p ProcInst) Copy() ProcInst {\n\tp.Inst = makeCopy(p.Inst)\n\treturn p\n}\n\n// A Directive represents an XML directive of the form <!text>.\n// The bytes do not include the <! and > markers.\ntype Directive []byte\n\nfunc (d Directive) Copy() Directive { return Directive(makeCopy(d)) }\n\n// CopyToken returns a copy of a Token.\nfunc CopyToken(t Token) Token {\n\tswitch v := t.(type) {\n\tcase CharData:\n\t\treturn v.Copy()\n\tcase Comment:\n\t\treturn v.Copy()\n\tcase Directive:\n\t\treturn v.Copy()\n\tcase ProcInst:\n\t\treturn v.Copy()\n\tcase StartElement:\n\t\treturn v.Copy()\n\t}\n\treturn t\n}\n\n// A Decoder represents an XML parser reading a particular input stream.\n// The parser assumes that its input is encoded in UTF-8.\ntype Decoder struct {\n\t// Strict defaults to true, enforcing the requirements\n\t// of the XML specification.\n\t// If set to false, the parser allows input containing common\n\t// mistakes:\n\t//\t* If an element is missing an end tag, the parser invents\n\t//\t  end tags as necessary to keep the return values from Token\n\t//\t  properly balanced.\n\t//\t* In attribute values and character data, unknown or malformed\n\t//\t  character entities (sequences beginning with &) are left alone.\n\t//\n\t// Setting:\n\t//\n\t//\td.Strict = false;\n\t//\td.AutoClose = HTMLAutoClose;\n\t//\td.Entity = HTMLEntity\n\t//\n\t// creates a parser that can handle typical HTML.\n\t//\n\t// Strict mode does not enforce the requirements of the XML name spaces TR.\n\t// In particular it does not reject name space tags using undefined prefixes.\n\t// Such tags are recorded with the unknown prefix as the name space URL.\n\tStrict bool\n\n\t// When Strict == false, AutoClose indicates a set of elements to\n\t// consider closed immediately after they are opened, regardless\n\t// of whether an end element is present.\n\tAutoClose []string\n\n\t// Entity can be used to map non-standard entity names to string replacements.\n\t// The parser behaves as if these standard mappings are present in the map,\n\t// regardless of the actual map content:\n\t//\n\t//\t\"lt\": \"<\",\n\t//\t\"gt\": \">\",\n\t//\t\"amp\": \"&\",\n\t//\t\"apos\": \"'\",\n\t//\t\"quot\": `\"`,\n\tEntity map[string]string\n\n\t// CharsetReader, if non-nil, defines a function to generate\n\t// charset-conversion readers, converting from the provided\n\t// non-UTF-8 charset into UTF-8. If CharsetReader is nil or\n\t// returns an error, parsing stops with an error. One of the\n\t// the CharsetReader's result values must be non-nil.\n\tCharsetReader func(charset string, input io.Reader) (io.Reader, error)\n\n\t// DefaultSpace sets the default name space used for unadorned tags,\n\t// as if the entire XML stream were wrapped in an element containing\n\t// the attribute xmlns=\"DefaultSpace\".\n\tDefaultSpace string\n\n\tr              io.ByteReader\n\tbuf            bytes.Buffer\n\tsaved          *bytes.Buffer\n\tstk            *stack\n\tfree           *stack\n\tneedClose      bool\n\ttoClose        Name\n\tnextToken      Token\n\tnextByte       int\n\tns             map[string]string\n\terr            error\n\tline           int\n\toffset         int64\n\tunmarshalDepth int\n}\n\n// NewDecoder creates a new XML parser reading from r.\n// If r does not implement io.ByteReader, NewDecoder will\n// do its own buffering.\nfunc NewDecoder(r io.Reader) *Decoder {\n\td := &Decoder{\n\t\tns:       make(map[string]string),\n\t\tnextByte: -1,\n\t\tline:     1,\n\t\tStrict:   true,\n\t}\n\td.switchToReader(r)\n\treturn d\n}\n\n// Token returns the next XML token in the input stream.\n// At the end of the input stream, Token returns nil, io.EOF.\n//\n// Slices of bytes in the returned token data refer to the\n// parser's internal buffer and remain valid only until the next\n// call to Token. To acquire a copy of the bytes, call CopyToken\n// or the token's Copy method.\n//\n// Token expands self-closing elements such as <br/>\n// into separate start and end elements returned by successive calls.\n//\n// Token guarantees that the StartElement and EndElement\n// tokens it returns are properly nested and matched:\n// if Token encounters an unexpected end element,\n// it will return an error.\n//\n// Token implements XML name spaces as described by\n// http://www.w3.org/TR/REC-xml-names/.  Each of the\n// Name structures contained in the Token has the Space\n// set to the URL identifying its name space when known.\n// If Token encounters an unrecognized name space prefix,\n// it uses the prefix as the Space rather than report an error.\nfunc (d *Decoder) Token() (t Token, err error) {\n\tif d.stk != nil && d.stk.kind == stkEOF {\n\t\terr = io.EOF\n\t\treturn\n\t}\n\tif d.nextToken != nil {\n\t\tt = d.nextToken\n\t\td.nextToken = nil\n\t} else if t, err = d.rawToken(); err != nil {\n\t\treturn\n\t}\n\n\tif !d.Strict {\n\t\tif t1, ok := d.autoClose(t); ok {\n\t\t\td.nextToken = t\n\t\t\tt = t1\n\t\t}\n\t}\n\tswitch t1 := t.(type) {\n\tcase StartElement:\n\t\t// In XML name spaces, the translations listed in the\n\t\t// attributes apply to the element name and\n\t\t// to the other attribute names, so process\n\t\t// the translations first.\n\t\tfor _, a := range t1.Attr {\n\t\t\tif a.Name.Space == \"xmlns\" {\n\t\t\t\tv, ok := d.ns[a.Name.Local]\n\t\t\t\td.pushNs(a.Name.Local, v, ok)\n\t\t\t\td.ns[a.Name.Local] = a.Value\n\t\t\t}\n\t\t\tif a.Name.Space == \"\" && a.Name.Local == \"xmlns\" {\n\t\t\t\t// Default space for untagged names\n\t\t\t\tv, ok := d.ns[\"\"]\n\t\t\t\td.pushNs(\"\", v, ok)\n\t\t\t\td.ns[\"\"] = a.Value\n\t\t\t}\n\t\t}\n\n\t\td.translate(&t1.Name, true)\n\t\tfor i := range t1.Attr {\n\t\t\td.translate(&t1.Attr[i].Name, false)\n\t\t}\n\t\td.pushElement(t1.Name)\n\t\tt = t1\n\n\tcase EndElement:\n\t\td.translate(&t1.Name, true)\n\t\tif !d.popElement(&t1) {\n\t\t\treturn nil, d.err\n\t\t}\n\t\tt = t1\n\t}\n\treturn\n}\n\nconst xmlURL = \"http://www.w3.org/XML/1998/namespace\"\n\n// Apply name space translation to name n.\n// The default name space (for Space==\"\")\n// applies only to element names, not to attribute names.\nfunc (d *Decoder) translate(n *Name, isElementName bool) {\n\tswitch {\n\tcase n.Space == \"xmlns\":\n\t\treturn\n\tcase n.Space == \"\" && !isElementName:\n\t\treturn\n\tcase n.Space == \"xml\":\n\t\tn.Space = xmlURL\n\tcase n.Space == \"\" && n.Local == \"xmlns\":\n\t\treturn\n\t}\n\tif v, ok := d.ns[n.Space]; ok {\n\t\tn.Space = v\n\t} else if n.Space == \"\" {\n\t\tn.Space = d.DefaultSpace\n\t}\n}\n\nfunc (d *Decoder) switchToReader(r io.Reader) {\n\t// Get efficient byte at a time reader.\n\t// Assume that if reader has its own\n\t// ReadByte, it's efficient enough.\n\t// Otherwise, use bufio.\n\tif rb, ok := r.(io.ByteReader); ok {\n\t\td.r = rb\n\t} else {\n\t\td.r = bufio.NewReader(r)\n\t}\n}\n\n// Parsing state - stack holds old name space translations\n// and the current set of open elements. The translations to pop when\n// ending a given tag are *below* it on the stack, which is\n// more work but forced on us by XML.\ntype stack struct {\n\tnext *stack\n\tkind int\n\tname Name\n\tok   bool\n}\n\nconst (\n\tstkStart = iota\n\tstkNs\n\tstkEOF\n)\n\nfunc (d *Decoder) push(kind int) *stack {\n\ts := d.free\n\tif s != nil {\n\t\td.free = s.next\n\t} else {\n\t\ts = new(stack)\n\t}\n\ts.next = d.stk\n\ts.kind = kind\n\td.stk = s\n\treturn s\n}\n\nfunc (d *Decoder) pop() *stack {\n\ts := d.stk\n\tif s != nil {\n\t\td.stk = s.next\n\t\ts.next = d.free\n\t\td.free = s\n\t}\n\treturn s\n}\n\n// Record that after the current element is finished\n// (that element is already pushed on the stack)\n// Token should return EOF until popEOF is called.\nfunc (d *Decoder) pushEOF() {\n\t// Walk down stack to find Start.\n\t// It might not be the top, because there might be stkNs\n\t// entries above it.\n\tstart := d.stk\n\tfor start.kind != stkStart {\n\t\tstart = start.next\n\t}\n\t// The stkNs entries below a start are associated with that\n\t// element too; skip over them.\n\tfor start.next != nil && start.next.kind == stkNs {\n\t\tstart = start.next\n\t}\n\ts := d.free\n\tif s != nil {\n\t\td.free = s.next\n\t} else {\n\t\ts = new(stack)\n\t}\n\ts.kind = stkEOF\n\ts.next = start.next\n\tstart.next = s\n}\n\n// Undo a pushEOF.\n// The element must have been finished, so the EOF should be at the top of the stack.\nfunc (d *Decoder) popEOF() bool {\n\tif d.stk == nil || d.stk.kind != stkEOF {\n\t\treturn false\n\t}\n\td.pop()\n\treturn true\n}\n\n// Record that we are starting an element with the given name.\nfunc (d *Decoder) pushElement(name Name) {\n\ts := d.push(stkStart)\n\ts.name = name\n}\n\n// Record that we are changing the value of ns[local].\n// The old value is url, ok.\nfunc (d *Decoder) pushNs(local string, url string, ok bool) {\n\ts := d.push(stkNs)\n\ts.name.Local = local\n\ts.name.Space = url\n\ts.ok = ok\n}\n\n// Creates a SyntaxError with the current line number.\nfunc (d *Decoder) syntaxError(msg string) error {\n\treturn &SyntaxError{Msg: msg, Line: d.line}\n}\n\n// Record that we are ending an element with the given name.\n// The name must match the record at the top of the stack,\n// which must be a pushElement record.\n// After popping the element, apply any undo records from\n// the stack to restore the name translations that existed\n// before we saw this element.\nfunc (d *Decoder) popElement(t *EndElement) bool {\n\ts := d.pop()\n\tname := t.Name\n\tswitch {\n\tcase s == nil || s.kind != stkStart:\n\t\td.err = d.syntaxError(\"unexpected end element </\" + name.Local + \">\")\n\t\treturn false\n\tcase s.name.Local != name.Local:\n\t\tif !d.Strict {\n\t\t\td.needClose = true\n\t\t\td.toClose = t.Name\n\t\t\tt.Name = s.name\n\t\t\treturn true\n\t\t}\n\t\td.err = d.syntaxError(\"element <\" + s.name.Local + \"> closed by </\" + name.Local + \">\")\n\t\treturn false\n\tcase s.name.Space != name.Space:\n\t\td.err = d.syntaxError(\"element <\" + s.name.Local + \"> in space \" + s.name.Space +\n\t\t\t\"closed by </\" + name.Local + \"> in space \" + name.Space)\n\t\treturn false\n\t}\n\n\t// Pop stack until a Start or EOF is on the top, undoing the\n\t// translations that were associated with the element we just closed.\n\tfor d.stk != nil && d.stk.kind != stkStart && d.stk.kind != stkEOF {\n\t\ts := d.pop()\n\t\tif s.ok {\n\t\t\td.ns[s.name.Local] = s.name.Space\n\t\t} else {\n\t\t\tdelete(d.ns, s.name.Local)\n\t\t}\n\t}\n\n\treturn true\n}\n\n// If the top element on the stack is autoclosing and\n// t is not the end tag, invent the end tag.\nfunc (d *Decoder) autoClose(t Token) (Token, bool) {\n\tif d.stk == nil || d.stk.kind != stkStart {\n\t\treturn nil, false\n\t}\n\tname := strings.ToLower(d.stk.name.Local)\n\tfor _, s := range d.AutoClose {\n\t\tif strings.ToLower(s) == name {\n\t\t\t// This one should be auto closed if t doesn't close it.\n\t\t\tet, ok := t.(EndElement)\n\t\t\tif !ok || et.Name.Local != name {\n\t\t\t\treturn EndElement{d.stk.name}, true\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\treturn nil, false\n}\n\nvar errRawToken = errors.New(\"xml: cannot use RawToken from UnmarshalXML method\")\n\n// RawToken is like Token but does not verify that\n// start and end elements match and does not translate\n// name space prefixes to their corresponding URLs.\nfunc (d *Decoder) RawToken() (Token, error) {\n\tif d.unmarshalDepth > 0 {\n\t\treturn nil, errRawToken\n\t}\n\treturn d.rawToken()\n}\n\nfunc (d *Decoder) rawToken() (Token, error) {\n\tif d.err != nil {\n\t\treturn nil, d.err\n\t}\n\tif d.needClose {\n\t\t// The last element we read was self-closing and\n\t\t// we returned just the StartElement half.\n\t\t// Return the EndElement half now.\n\t\td.needClose = false\n\t\treturn EndElement{d.toClose}, nil\n\t}\n\n\tb, ok := d.getc()\n\tif !ok {\n\t\treturn nil, d.err\n\t}\n\n\tif b != '<' {\n\t\t// Text section.\n\t\td.ungetc(b)\n\t\tdata := d.text(-1, false)\n\t\tif data == nil {\n\t\t\treturn nil, d.err\n\t\t}\n\t\treturn CharData(data), nil\n\t}\n\n\tif b, ok = d.mustgetc(); !ok {\n\t\treturn nil, d.err\n\t}\n\tswitch b {\n\tcase '/':\n\t\t// </: End element\n\t\tvar name Name\n\t\tif name, ok = d.nsname(); !ok {\n\t\t\tif d.err == nil {\n\t\t\t\td.err = d.syntaxError(\"expected element name after </\")\n\t\t\t}\n\t\t\treturn nil, d.err\n\t\t}\n\t\td.space()\n\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\treturn nil, d.err\n\t\t}\n\t\tif b != '>' {\n\t\t\td.err = d.syntaxError(\"invalid characters between </\" + name.Local + \" and >\")\n\t\t\treturn nil, d.err\n\t\t}\n\t\treturn EndElement{name}, nil\n\n\tcase '?':\n\t\t// <?: Processing instruction.\n\t\tvar target string\n\t\tif target, ok = d.name(); !ok {\n\t\t\tif d.err == nil {\n\t\t\t\td.err = d.syntaxError(\"expected target name after <?\")\n\t\t\t}\n\t\t\treturn nil, d.err\n\t\t}\n\t\td.space()\n\t\td.buf.Reset()\n\t\tvar b0 byte\n\t\tfor {\n\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\td.buf.WriteByte(b)\n\t\t\tif b0 == '?' && b == '>' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb0 = b\n\t\t}\n\t\tdata := d.buf.Bytes()\n\t\tdata = data[0 : len(data)-2] // chop ?>\n\n\t\tif target == \"xml\" {\n\t\t\tcontent := string(data)\n\t\t\tver := procInst(\"version\", content)\n\t\t\tif ver != \"\" && ver != \"1.0\" {\n\t\t\t\td.err = fmt.Errorf(\"xml: unsupported version %q; only version 1.0 is supported\", ver)\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\tenc := procInst(\"encoding\", content)\n\t\t\tif enc != \"\" && enc != \"utf-8\" && enc != \"UTF-8\" {\n\t\t\t\tif d.CharsetReader == nil {\n\t\t\t\t\td.err = fmt.Errorf(\"xml: encoding %q declared but Decoder.CharsetReader is nil\", enc)\n\t\t\t\t\treturn nil, d.err\n\t\t\t\t}\n\t\t\t\tnewr, err := d.CharsetReader(enc, d.r.(io.Reader))\n\t\t\t\tif err != nil {\n\t\t\t\t\td.err = fmt.Errorf(\"xml: opening charset %q: %v\", enc, err)\n\t\t\t\t\treturn nil, d.err\n\t\t\t\t}\n\t\t\t\tif newr == nil {\n\t\t\t\t\tpanic(\"CharsetReader returned a nil Reader for charset \" + enc)\n\t\t\t\t}\n\t\t\t\td.switchToReader(newr)\n\t\t\t}\n\t\t}\n\t\treturn ProcInst{target, data}, nil\n\n\tcase '!':\n\t\t// <!: Maybe comment, maybe CDATA.\n\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\treturn nil, d.err\n\t\t}\n\t\tswitch b {\n\t\tcase '-': // <!-\n\t\t\t// Probably <!-- for a comment.\n\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\tif b != '-' {\n\t\t\t\td.err = d.syntaxError(\"invalid sequence <!- not part of <!--\")\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\t// Look for terminator.\n\t\t\td.buf.Reset()\n\t\t\tvar b0, b1 byte\n\t\t\tfor {\n\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\treturn nil, d.err\n\t\t\t\t}\n\t\t\t\td.buf.WriteByte(b)\n\t\t\t\tif b0 == '-' && b1 == '-' && b == '>' {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tb0, b1 = b1, b\n\t\t\t}\n\t\t\tdata := d.buf.Bytes()\n\t\t\tdata = data[0 : len(data)-3] // chop -->\n\t\t\treturn Comment(data), nil\n\n\t\tcase '[': // <![\n\t\t\t// Probably <![CDATA[.\n\t\t\tfor i := 0; i < 6; i++ {\n\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\treturn nil, d.err\n\t\t\t\t}\n\t\t\t\tif b != \"CDATA[\"[i] {\n\t\t\t\t\td.err = d.syntaxError(\"invalid <![ sequence\")\n\t\t\t\t\treturn nil, d.err\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Have <![CDATA[.  Read text until ]]>.\n\t\t\tdata := d.text(-1, true)\n\t\t\tif data == nil {\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\treturn CharData(data), nil\n\t\t}\n\n\t\t// Probably a directive: <!DOCTYPE ...>, <!ENTITY ...>, etc.\n\t\t// We don't care, but accumulate for caller. Quoted angle\n\t\t// brackets do not count for nesting.\n\t\td.buf.Reset()\n\t\td.buf.WriteByte(b)\n\t\tinquote := uint8(0)\n\t\tdepth := 0\n\t\tfor {\n\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\tif inquote == 0 && b == '>' && depth == 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\tHandleB:\n\t\t\td.buf.WriteByte(b)\n\t\t\tswitch {\n\t\t\tcase b == inquote:\n\t\t\t\tinquote = 0\n\n\t\t\tcase inquote != 0:\n\t\t\t\t// in quotes, no special action\n\n\t\t\tcase b == '\\'' || b == '\"':\n\t\t\t\tinquote = b\n\n\t\t\tcase b == '>' && inquote == 0:\n\t\t\t\tdepth--\n\n\t\t\tcase b == '<' && inquote == 0:\n\t\t\t\t// Look for <!-- to begin comment.\n\t\t\t\ts := \"!--\"\n\t\t\t\tfor i := 0; i < len(s); i++ {\n\t\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\t\treturn nil, d.err\n\t\t\t\t\t}\n\t\t\t\t\tif b != s[i] {\n\t\t\t\t\t\tfor j := 0; j < i; j++ {\n\t\t\t\t\t\t\td.buf.WriteByte(s[j])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdepth++\n\t\t\t\t\t\tgoto HandleB\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Remove < that was written above.\n\t\t\t\td.buf.Truncate(d.buf.Len() - 1)\n\n\t\t\t\t// Look for terminator.\n\t\t\t\tvar b0, b1 byte\n\t\t\t\tfor {\n\t\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\t\treturn nil, d.err\n\t\t\t\t\t}\n\t\t\t\t\tif b0 == '-' && b1 == '-' && b == '>' {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tb0, b1 = b1, b\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Directive(d.buf.Bytes()), nil\n\t}\n\n\t// Must be an open element like <a href=\"foo\">\n\td.ungetc(b)\n\n\tvar (\n\t\tname  Name\n\t\tempty bool\n\t\tattr  []Attr\n\t)\n\tif name, ok = d.nsname(); !ok {\n\t\tif d.err == nil {\n\t\t\td.err = d.syntaxError(\"expected element name after <\")\n\t\t}\n\t\treturn nil, d.err\n\t}\n\n\tattr = []Attr{}\n\tfor {\n\t\td.space()\n\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\treturn nil, d.err\n\t\t}\n\t\tif b == '/' {\n\t\t\tempty = true\n\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\tif b != '>' {\n\t\t\t\td.err = d.syntaxError(\"expected /> in element\")\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif b == '>' {\n\t\t\tbreak\n\t\t}\n\t\td.ungetc(b)\n\n\t\tn := len(attr)\n\t\tif n >= cap(attr) {\n\t\t\tnCap := 2 * cap(attr)\n\t\t\tif nCap == 0 {\n\t\t\t\tnCap = 4\n\t\t\t}\n\t\t\tnattr := make([]Attr, n, nCap)\n\t\t\tcopy(nattr, attr)\n\t\t\tattr = nattr\n\t\t}\n\t\tattr = attr[0 : n+1]\n\t\ta := &attr[n]\n\t\tif a.Name, ok = d.nsname(); !ok {\n\t\t\tif d.err == nil {\n\t\t\t\td.err = d.syntaxError(\"expected attribute name in element\")\n\t\t\t}\n\t\t\treturn nil, d.err\n\t\t}\n\t\td.space()\n\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\treturn nil, d.err\n\t\t}\n\t\tif b != '=' {\n\t\t\tif d.Strict {\n\t\t\t\td.err = d.syntaxError(\"attribute name without = in element\")\n\t\t\t\treturn nil, d.err\n\t\t\t} else {\n\t\t\t\td.ungetc(b)\n\t\t\t\ta.Value = a.Name.Local\n\t\t\t}\n\t\t} else {\n\t\t\td.space()\n\t\t\tdata := d.attrval()\n\t\t\tif data == nil {\n\t\t\t\treturn nil, d.err\n\t\t\t}\n\t\t\ta.Value = string(data)\n\t\t}\n\t}\n\tif empty {\n\t\td.needClose = true\n\t\td.toClose = name\n\t}\n\treturn StartElement{name, attr}, nil\n}\n\nfunc (d *Decoder) attrval() []byte {\n\tb, ok := d.mustgetc()\n\tif !ok {\n\t\treturn nil\n\t}\n\t// Handle quoted attribute values\n\tif b == '\"' || b == '\\'' {\n\t\treturn d.text(int(b), false)\n\t}\n\t// Handle unquoted attribute values for strict parsers\n\tif d.Strict {\n\t\td.err = d.syntaxError(\"unquoted or missing attribute value in element\")\n\t\treturn nil\n\t}\n\t// Handle unquoted attribute values for unstrict parsers\n\td.ungetc(b)\n\td.buf.Reset()\n\tfor {\n\t\tb, ok = d.mustgetc()\n\t\tif !ok {\n\t\t\treturn nil\n\t\t}\n\t\t// http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.2\n\t\tif 'a' <= b && b <= 'z' || 'A' <= b && b <= 'Z' ||\n\t\t\t'0' <= b && b <= '9' || b == '_' || b == ':' || b == '-' {\n\t\t\td.buf.WriteByte(b)\n\t\t} else {\n\t\t\td.ungetc(b)\n\t\t\tbreak\n\t\t}\n\t}\n\treturn d.buf.Bytes()\n}\n\n// Skip spaces if any\nfunc (d *Decoder) space() {\n\tfor {\n\t\tb, ok := d.getc()\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t\tswitch b {\n\t\tcase ' ', '\\r', '\\n', '\\t':\n\t\tdefault:\n\t\t\td.ungetc(b)\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// Read a single byte.\n// If there is no byte to read, return ok==false\n// and leave the error in d.err.\n// Maintain line number.\nfunc (d *Decoder) getc() (b byte, ok bool) {\n\tif d.err != nil {\n\t\treturn 0, false\n\t}\n\tif d.nextByte >= 0 {\n\t\tb = byte(d.nextByte)\n\t\td.nextByte = -1\n\t} else {\n\t\tb, d.err = d.r.ReadByte()\n\t\tif d.err != nil {\n\t\t\treturn 0, false\n\t\t}\n\t\tif d.saved != nil {\n\t\t\td.saved.WriteByte(b)\n\t\t}\n\t}\n\tif b == '\\n' {\n\t\td.line++\n\t}\n\td.offset++\n\treturn b, true\n}\n\n// InputOffset returns the input stream byte offset of the current decoder position.\n// The offset gives the location of the end of the most recently returned token\n// and the beginning of the next token.\nfunc (d *Decoder) InputOffset() int64 {\n\treturn d.offset\n}\n\n// Return saved offset.\n// If we did ungetc (nextByte >= 0), have to back up one.\nfunc (d *Decoder) savedOffset() int {\n\tn := d.saved.Len()\n\tif d.nextByte >= 0 {\n\t\tn--\n\t}\n\treturn n\n}\n\n// Must read a single byte.\n// If there is no byte to read,\n// set d.err to SyntaxError(\"unexpected EOF\")\n// and return ok==false\nfunc (d *Decoder) mustgetc() (b byte, ok bool) {\n\tif b, ok = d.getc(); !ok {\n\t\tif d.err == io.EOF {\n\t\t\td.err = d.syntaxError(\"unexpected EOF\")\n\t\t}\n\t}\n\treturn\n}\n\n// Unread a single byte.\nfunc (d *Decoder) ungetc(b byte) {\n\tif b == '\\n' {\n\t\td.line--\n\t}\n\td.nextByte = int(b)\n\td.offset--\n}\n\nvar entity = map[string]int{\n\t\"lt\":   '<',\n\t\"gt\":   '>',\n\t\"amp\":  '&',\n\t\"apos\": '\\'',\n\t\"quot\": '\"',\n}\n\n// Read plain text section (XML calls it character data).\n// If quote >= 0, we are in a quoted string and need to find the matching quote.\n// If cdata == true, we are in a <![CDATA[ section and need to find ]]>.\n// On failure return nil and leave the error in d.err.\nfunc (d *Decoder) text(quote int, cdata bool) []byte {\n\tvar b0, b1 byte\n\tvar trunc int\n\td.buf.Reset()\nInput:\n\tfor {\n\t\tb, ok := d.getc()\n\t\tif !ok {\n\t\t\tif cdata {\n\t\t\t\tif d.err == io.EOF {\n\t\t\t\t\td.err = d.syntaxError(\"unexpected EOF in CDATA section\")\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbreak Input\n\t\t}\n\n\t\t// <![CDATA[ section ends with ]]>.\n\t\t// It is an error for ]]> to appear in ordinary text.\n\t\tif b0 == ']' && b1 == ']' && b == '>' {\n\t\t\tif cdata {\n\t\t\t\ttrunc = 2\n\t\t\t\tbreak Input\n\t\t\t}\n\t\t\td.err = d.syntaxError(\"unescaped ]]> not in CDATA section\")\n\t\t\treturn nil\n\t\t}\n\n\t\t// Stop reading text if we see a <.\n\t\tif b == '<' && !cdata {\n\t\t\tif quote >= 0 {\n\t\t\t\td.err = d.syntaxError(\"unescaped < inside quoted string\")\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\td.ungetc('<')\n\t\t\tbreak Input\n\t\t}\n\t\tif quote >= 0 && b == byte(quote) {\n\t\t\tbreak Input\n\t\t}\n\t\tif b == '&' && !cdata {\n\t\t\t// Read escaped character expression up to semicolon.\n\t\t\t// XML in all its glory allows a document to define and use\n\t\t\t// its own character names with <!ENTITY ...> directives.\n\t\t\t// Parsers are required to recognize lt, gt, amp, apos, and quot\n\t\t\t// even if they have not been declared.\n\t\t\tbefore := d.buf.Len()\n\t\t\td.buf.WriteByte('&')\n\t\t\tvar ok bool\n\t\t\tvar text string\n\t\t\tvar haveText bool\n\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif b == '#' {\n\t\t\t\td.buf.WriteByte(b)\n\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tbase := 10\n\t\t\t\tif b == 'x' {\n\t\t\t\t\tbase = 16\n\t\t\t\t\td.buf.WriteByte(b)\n\t\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstart := d.buf.Len()\n\t\t\t\tfor '0' <= b && b <= '9' ||\n\t\t\t\t\tbase == 16 && 'a' <= b && b <= 'f' ||\n\t\t\t\t\tbase == 16 && 'A' <= b && b <= 'F' {\n\t\t\t\t\td.buf.WriteByte(b)\n\t\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif b != ';' {\n\t\t\t\t\td.ungetc(b)\n\t\t\t\t} else {\n\t\t\t\t\ts := string(d.buf.Bytes()[start:])\n\t\t\t\t\td.buf.WriteByte(';')\n\t\t\t\t\tn, err := strconv.ParseUint(s, base, 64)\n\t\t\t\t\tif err == nil && n <= unicode.MaxRune {\n\t\t\t\t\t\ttext = string(n)\n\t\t\t\t\t\thaveText = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\td.ungetc(b)\n\t\t\t\tif !d.readName() {\n\t\t\t\t\tif d.err != nil {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\tok = false\n\t\t\t\t}\n\t\t\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tif b != ';' {\n\t\t\t\t\td.ungetc(b)\n\t\t\t\t} else {\n\t\t\t\t\tname := d.buf.Bytes()[before+1:]\n\t\t\t\t\td.buf.WriteByte(';')\n\t\t\t\t\tif isName(name) {\n\t\t\t\t\t\ts := string(name)\n\t\t\t\t\t\tif r, ok := entity[s]; ok {\n\t\t\t\t\t\t\ttext = string(r)\n\t\t\t\t\t\t\thaveText = true\n\t\t\t\t\t\t} else if d.Entity != nil {\n\t\t\t\t\t\t\ttext, haveText = d.Entity[s]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif haveText {\n\t\t\t\td.buf.Truncate(before)\n\t\t\t\td.buf.Write([]byte(text))\n\t\t\t\tb0, b1 = 0, 0\n\t\t\t\tcontinue Input\n\t\t\t}\n\t\t\tif !d.Strict {\n\t\t\t\tb0, b1 = 0, 0\n\t\t\t\tcontinue Input\n\t\t\t}\n\t\t\tent := string(d.buf.Bytes()[before:])\n\t\t\tif ent[len(ent)-1] != ';' {\n\t\t\t\tent += \" (no semicolon)\"\n\t\t\t}\n\t\t\td.err = d.syntaxError(\"invalid character entity \" + ent)\n\t\t\treturn nil\n\t\t}\n\n\t\t// We must rewrite unescaped \\r and \\r\\n into \\n.\n\t\tif b == '\\r' {\n\t\t\td.buf.WriteByte('\\n')\n\t\t} else if b1 == '\\r' && b == '\\n' {\n\t\t\t// Skip \\r\\n--we already wrote \\n.\n\t\t} else {\n\t\t\td.buf.WriteByte(b)\n\t\t}\n\n\t\tb0, b1 = b1, b\n\t}\n\tdata := d.buf.Bytes()\n\tdata = data[0 : len(data)-trunc]\n\n\t// Inspect each rune for being a disallowed character.\n\tbuf := data\n\tfor len(buf) > 0 {\n\t\tr, size := utf8.DecodeRune(buf)\n\t\tif r == utf8.RuneError && size == 1 {\n\t\t\td.err = d.syntaxError(\"invalid UTF-8\")\n\t\t\treturn nil\n\t\t}\n\t\tbuf = buf[size:]\n\t\tif !isInCharacterRange(r) {\n\t\t\td.err = d.syntaxError(fmt.Sprintf(\"illegal character code %U\", r))\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn data\n}\n\n// Decide whether the given rune is in the XML Character Range, per\n// the Char production of http://www.xml.com/axml/testaxml.htm,\n// Section 2.2 Characters.\nfunc isInCharacterRange(r rune) (inrange bool) {\n\treturn r == 0x09 ||\n\t\tr == 0x0A ||\n\t\tr == 0x0D ||\n\t\tr >= 0x20 && r <= 0xDF77 ||\n\t\tr >= 0xE000 && r <= 0xFFFD ||\n\t\tr >= 0x10000 && r <= 0x10FFFF\n}\n\n// Get name space name: name with a : stuck in the middle.\n// The part before the : is the name space identifier.\nfunc (d *Decoder) nsname() (name Name, ok bool) {\n\ts, ok := d.name()\n\tif !ok {\n\t\treturn\n\t}\n\ti := strings.Index(s, \":\")\n\tif i < 0 {\n\t\tname.Local = s\n\t} else {\n\t\tname.Space = s[0:i]\n\t\tname.Local = s[i+1:]\n\t}\n\treturn name, true\n}\n\n// Get name: /first(first|second)*/\n// Do not set d.err if the name is missing (unless unexpected EOF is received):\n// let the caller provide better context.\nfunc (d *Decoder) name() (s string, ok bool) {\n\td.buf.Reset()\n\tif !d.readName() {\n\t\treturn \"\", false\n\t}\n\n\t// Now we check the characters.\n\tb := d.buf.Bytes()\n\tif !isName(b) {\n\t\td.err = d.syntaxError(\"invalid XML name: \" + string(b))\n\t\treturn \"\", false\n\t}\n\treturn string(b), true\n}\n\n// Read a name and append its bytes to d.buf.\n// The name is delimited by any single-byte character not valid in names.\n// All multi-byte characters are accepted; the caller must check their validity.\nfunc (d *Decoder) readName() (ok bool) {\n\tvar b byte\n\tif b, ok = d.mustgetc(); !ok {\n\t\treturn\n\t}\n\tif b < utf8.RuneSelf && !isNameByte(b) {\n\t\td.ungetc(b)\n\t\treturn false\n\t}\n\td.buf.WriteByte(b)\n\n\tfor {\n\t\tif b, ok = d.mustgetc(); !ok {\n\t\t\treturn\n\t\t}\n\t\tif b < utf8.RuneSelf && !isNameByte(b) {\n\t\t\td.ungetc(b)\n\t\t\tbreak\n\t\t}\n\t\td.buf.WriteByte(b)\n\t}\n\treturn true\n}\n\nfunc isNameByte(c byte) bool {\n\treturn 'A' <= c && c <= 'Z' ||\n\t\t'a' <= c && c <= 'z' ||\n\t\t'0' <= c && c <= '9' ||\n\t\tc == '_' || c == ':' || c == '.' || c == '-'\n}\n\nfunc isName(s []byte) bool {\n\tif len(s) == 0 {\n\t\treturn false\n\t}\n\tc, n := utf8.DecodeRune(s)\n\tif c == utf8.RuneError && n == 1 {\n\t\treturn false\n\t}\n\tif !unicode.Is(first, c) {\n\t\treturn false\n\t}\n\tfor n < len(s) {\n\t\ts = s[n:]\n\t\tc, n = utf8.DecodeRune(s)\n\t\tif c == utf8.RuneError && n == 1 {\n\t\t\treturn false\n\t\t}\n\t\tif !unicode.Is(first, c) && !unicode.Is(second, c) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc isNameString(s string) bool {\n\tif len(s) == 0 {\n\t\treturn false\n\t}\n\tc, n := utf8.DecodeRuneInString(s)\n\tif c == utf8.RuneError && n == 1 {\n\t\treturn false\n\t}\n\tif !unicode.Is(first, c) {\n\t\treturn false\n\t}\n\tfor n < len(s) {\n\t\ts = s[n:]\n\t\tc, n = utf8.DecodeRuneInString(s)\n\t\tif c == utf8.RuneError && n == 1 {\n\t\t\treturn false\n\t\t}\n\t\tif !unicode.Is(first, c) && !unicode.Is(second, c) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// These tables were generated by cut and paste from Appendix B of\n// the XML spec at http://www.xml.com/axml/testaxml.htm\n// and then reformatting. First corresponds to (Letter | '_' | ':')\n// and second corresponds to NameChar.\n\nvar first = &unicode.RangeTable{\n\tR16: []unicode.Range16{\n\t\t{0x003A, 0x003A, 1},\n\t\t{0x0041, 0x005A, 1},\n\t\t{0x005F, 0x005F, 1},\n\t\t{0x0061, 0x007A, 1},\n\t\t{0x00C0, 0x00D6, 1},\n\t\t{0x00D8, 0x00F6, 1},\n\t\t{0x00F8, 0x00FF, 1},\n\t\t{0x0100, 0x0131, 1},\n\t\t{0x0134, 0x013E, 1},\n\t\t{0x0141, 0x0148, 1},\n\t\t{0x014A, 0x017E, 1},\n\t\t{0x0180, 0x01C3, 1},\n\t\t{0x01CD, 0x01F0, 1},\n\t\t{0x01F4, 0x01F5, 1},\n\t\t{0x01FA, 0x0217, 1},\n\t\t{0x0250, 0x02A8, 1},\n\t\t{0x02BB, 0x02C1, 1},\n\t\t{0x0386, 0x0386, 1},\n\t\t{0x0388, 0x038A, 1},\n\t\t{0x038C, 0x038C, 1},\n\t\t{0x038E, 0x03A1, 1},\n\t\t{0x03A3, 0x03CE, 1},\n\t\t{0x03D0, 0x03D6, 1},\n\t\t{0x03DA, 0x03E0, 2},\n\t\t{0x03E2, 0x03F3, 1},\n\t\t{0x0401, 0x040C, 1},\n\t\t{0x040E, 0x044F, 1},\n\t\t{0x0451, 0x045C, 1},\n\t\t{0x045E, 0x0481, 1},\n\t\t{0x0490, 0x04C4, 1},\n\t\t{0x04C7, 0x04C8, 1},\n\t\t{0x04CB, 0x04CC, 1},\n\t\t{0x04D0, 0x04EB, 1},\n\t\t{0x04EE, 0x04F5, 1},\n\t\t{0x04F8, 0x04F9, 1},\n\t\t{0x0531, 0x0556, 1},\n\t\t{0x0559, 0x0559, 1},\n\t\t{0x0561, 0x0586, 1},\n\t\t{0x05D0, 0x05EA, 1},\n\t\t{0x05F0, 0x05F2, 1},\n\t\t{0x0621, 0x063A, 1},\n\t\t{0x0641, 0x064A, 1},\n\t\t{0x0671, 0x06B7, 1},\n\t\t{0x06BA, 0x06BE, 1},\n\t\t{0x06C0, 0x06CE, 1},\n\t\t{0x06D0, 0x06D3, 1},\n\t\t{0x06D5, 0x06D5, 1},\n\t\t{0x06E5, 0x06E6, 1},\n\t\t{0x0905, 0x0939, 1},\n\t\t{0x093D, 0x093D, 1},\n\t\t{0x0958, 0x0961, 1},\n\t\t{0x0985, 0x098C, 1},\n\t\t{0x098F, 0x0990, 1},\n\t\t{0x0993, 0x09A8, 1},\n\t\t{0x09AA, 0x09B0, 1},\n\t\t{0x09B2, 0x09B2, 1},\n\t\t{0x09B6, 0x09B9, 1},\n\t\t{0x09DC, 0x09DD, 1},\n\t\t{0x09DF, 0x09E1, 1},\n\t\t{0x09F0, 0x09F1, 1},\n\t\t{0x0A05, 0x0A0A, 1},\n\t\t{0x0A0F, 0x0A10, 1},\n\t\t{0x0A13, 0x0A28, 1},\n\t\t{0x0A2A, 0x0A30, 1},\n\t\t{0x0A32, 0x0A33, 1},\n\t\t{0x0A35, 0x0A36, 1},\n\t\t{0x0A38, 0x0A39, 1},\n\t\t{0x0A59, 0x0A5C, 1},\n\t\t{0x0A5E, 0x0A5E, 1},\n\t\t{0x0A72, 0x0A74, 1},\n\t\t{0x0A85, 0x0A8B, 1},\n\t\t{0x0A8D, 0x0A8D, 1},\n\t\t{0x0A8F, 0x0A91, 1},\n\t\t{0x0A93, 0x0AA8, 1},\n\t\t{0x0AAA, 0x0AB0, 1},\n\t\t{0x0AB2, 0x0AB3, 1},\n\t\t{0x0AB5, 0x0AB9, 1},\n\t\t{0x0ABD, 0x0AE0, 0x23},\n\t\t{0x0B05, 0x0B0C, 1},\n\t\t{0x0B0F, 0x0B10, 1},\n\t\t{0x0B13, 0x0B28, 1},\n\t\t{0x0B2A, 0x0B30, 1},\n\t\t{0x0B32, 0x0B33, 1},\n\t\t{0x0B36, 0x0B39, 1},\n\t\t{0x0B3D, 0x0B3D, 1},\n\t\t{0x0B5C, 0x0B5D, 1},\n\t\t{0x0B5F, 0x0B61, 1},\n\t\t{0x0B85, 0x0B8A, 1},\n\t\t{0x0B8E, 0x0B90, 1},\n\t\t{0x0B92, 0x0B95, 1},\n\t\t{0x0B99, 0x0B9A, 1},\n\t\t{0x0B9C, 0x0B9C, 1},\n\t\t{0x0B9E, 0x0B9F, 1},\n\t\t{0x0BA3, 0x0BA4, 1},\n\t\t{0x0BA8, 0x0BAA, 1},\n\t\t{0x0BAE, 0x0BB5, 1},\n\t\t{0x0BB7, 0x0BB9, 1},\n\t\t{0x0C05, 0x0C0C, 1},\n\t\t{0x0C0E, 0x0C10, 1},\n\t\t{0x0C12, 0x0C28, 1},\n\t\t{0x0C2A, 0x0C33, 1},\n\t\t{0x0C35, 0x0C39, 1},\n\t\t{0x0C60, 0x0C61, 1},\n\t\t{0x0C85, 0x0C8C, 1},\n\t\t{0x0C8E, 0x0C90, 1},\n\t\t{0x0C92, 0x0CA8, 1},\n\t\t{0x0CAA, 0x0CB3, 1},\n\t\t{0x0CB5, 0x0CB9, 1},\n\t\t{0x0CDE, 0x0CDE, 1},\n\t\t{0x0CE0, 0x0CE1, 1},\n\t\t{0x0D05, 0x0D0C, 1},\n\t\t{0x0D0E, 0x0D10, 1},\n\t\t{0x0D12, 0x0D28, 1},\n\t\t{0x0D2A, 0x0D39, 1},\n\t\t{0x0D60, 0x0D61, 1},\n\t\t{0x0E01, 0x0E2E, 1},\n\t\t{0x0E30, 0x0E30, 1},\n\t\t{0x0E32, 0x0E33, 1},\n\t\t{0x0E40, 0x0E45, 1},\n\t\t{0x0E81, 0x0E82, 1},\n\t\t{0x0E84, 0x0E84, 1},\n\t\t{0x0E87, 0x0E88, 1},\n\t\t{0x0E8A, 0x0E8D, 3},\n\t\t{0x0E94, 0x0E97, 1},\n\t\t{0x0E99, 0x0E9F, 1},\n\t\t{0x0EA1, 0x0EA3, 1},\n\t\t{0x0EA5, 0x0EA7, 2},\n\t\t{0x0EAA, 0x0EAB, 1},\n\t\t{0x0EAD, 0x0EAE, 1},\n\t\t{0x0EB0, 0x0EB0, 1},\n\t\t{0x0EB2, 0x0EB3, 1},\n\t\t{0x0EBD, 0x0EBD, 1},\n\t\t{0x0EC0, 0x0EC4, 1},\n\t\t{0x0F40, 0x0F47, 1},\n\t\t{0x0F49, 0x0F69, 1},\n\t\t{0x10A0, 0x10C5, 1},\n\t\t{0x10D0, 0x10F6, 1},\n\t\t{0x1100, 0x1100, 1},\n\t\t{0x1102, 0x1103, 1},\n\t\t{0x1105, 0x1107, 1},\n\t\t{0x1109, 0x1109, 1},\n\t\t{0x110B, 0x110C, 1},\n\t\t{0x110E, 0x1112, 1},\n\t\t{0x113C, 0x1140, 2},\n\t\t{0x114C, 0x1150, 2},\n\t\t{0x1154, 0x1155, 1},\n\t\t{0x1159, 0x1159, 1},\n\t\t{0x115F, 0x1161, 1},\n\t\t{0x1163, 0x1169, 2},\n\t\t{0x116D, 0x116E, 1},\n\t\t{0x1172, 0x1173, 1},\n\t\t{0x1175, 0x119E, 0x119E - 0x1175},\n\t\t{0x11A8, 0x11AB, 0x11AB - 0x11A8},\n\t\t{0x11AE, 0x11AF, 1},\n\t\t{0x11B7, 0x11B8, 1},\n\t\t{0x11BA, 0x11BA, 1},\n\t\t{0x11BC, 0x11C2, 1},\n\t\t{0x11EB, 0x11F0, 0x11F0 - 0x11EB},\n\t\t{0x11F9, 0x11F9, 1},\n\t\t{0x1E00, 0x1E9B, 1},\n\t\t{0x1EA0, 0x1EF9, 1},\n\t\t{0x1F00, 0x1F15, 1},\n\t\t{0x1F18, 0x1F1D, 1},\n\t\t{0x1F20, 0x1F45, 1},\n\t\t{0x1F48, 0x1F4D, 1},\n\t\t{0x1F50, 0x1F57, 1},\n\t\t{0x1F59, 0x1F5B, 0x1F5B - 0x1F59},\n\t\t{0x1F5D, 0x1F5D, 1},\n\t\t{0x1F5F, 0x1F7D, 1},\n\t\t{0x1F80, 0x1FB4, 1},\n\t\t{0x1FB6, 0x1FBC, 1},\n\t\t{0x1FBE, 0x1FBE, 1},\n\t\t{0x1FC2, 0x1FC4, 1},\n\t\t{0x1FC6, 0x1FCC, 1},\n\t\t{0x1FD0, 0x1FD3, 1},\n\t\t{0x1FD6, 0x1FDB, 1},\n\t\t{0x1FE0, 0x1FEC, 1},\n\t\t{0x1FF2, 0x1FF4, 1},\n\t\t{0x1FF6, 0x1FFC, 1},\n\t\t{0x2126, 0x2126, 1},\n\t\t{0x212A, 0x212B, 1},\n\t\t{0x212E, 0x212E, 1},\n\t\t{0x2180, 0x2182, 1},\n\t\t{0x3007, 0x3007, 1},\n\t\t{0x3021, 0x3029, 1},\n\t\t{0x3041, 0x3094, 1},\n\t\t{0x30A1, 0x30FA, 1},\n\t\t{0x3105, 0x312C, 1},\n\t\t{0x4E00, 0x9FA5, 1},\n\t\t{0xAC00, 0xD7A3, 1},\n\t},\n}\n\nvar second = &unicode.RangeTable{\n\tR16: []unicode.Range16{\n\t\t{0x002D, 0x002E, 1},\n\t\t{0x0030, 0x0039, 1},\n\t\t{0x00B7, 0x00B7, 1},\n\t\t{0x02D0, 0x02D1, 1},\n\t\t{0x0300, 0x0345, 1},\n\t\t{0x0360, 0x0361, 1},\n\t\t{0x0387, 0x0387, 1},\n\t\t{0x0483, 0x0486, 1},\n\t\t{0x0591, 0x05A1, 1},\n\t\t{0x05A3, 0x05B9, 1},\n\t\t{0x05BB, 0x05BD, 1},\n\t\t{0x05BF, 0x05BF, 1},\n\t\t{0x05C1, 0x05C2, 1},\n\t\t{0x05C4, 0x0640, 0x0640 - 0x05C4},\n\t\t{0x064B, 0x0652, 1},\n\t\t{0x0660, 0x0669, 1},\n\t\t{0x0670, 0x0670, 1},\n\t\t{0x06D6, 0x06DC, 1},\n\t\t{0x06DD, 0x06DF, 1},\n\t\t{0x06E0, 0x06E4, 1},\n\t\t{0x06E7, 0x06E8, 1},\n\t\t{0x06EA, 0x06ED, 1},\n\t\t{0x06F0, 0x06F9, 1},\n\t\t{0x0901, 0x0903, 1},\n\t\t{0x093C, 0x093C, 1},\n\t\t{0x093E, 0x094C, 1},\n\t\t{0x094D, 0x094D, 1},\n\t\t{0x0951, 0x0954, 1},\n\t\t{0x0962, 0x0963, 1},\n\t\t{0x0966, 0x096F, 1},\n\t\t{0x0981, 0x0983, 1},\n\t\t{0x09BC, 0x09BC, 1},\n\t\t{0x09BE, 0x09BF, 1},\n\t\t{0x09C0, 0x09C4, 1},\n\t\t{0x09C7, 0x09C8, 1},\n\t\t{0x09CB, 0x09CD, 1},\n\t\t{0x09D7, 0x09D7, 1},\n\t\t{0x09E2, 0x09E3, 1},\n\t\t{0x09E6, 0x09EF, 1},\n\t\t{0x0A02, 0x0A3C, 0x3A},\n\t\t{0x0A3E, 0x0A3F, 1},\n\t\t{0x0A40, 0x0A42, 1},\n\t\t{0x0A47, 0x0A48, 1},\n\t\t{0x0A4B, 0x0A4D, 1},\n\t\t{0x0A66, 0x0A6F, 1},\n\t\t{0x0A70, 0x0A71, 1},\n\t\t{0x0A81, 0x0A83, 1},\n\t\t{0x0ABC, 0x0ABC, 1},\n\t\t{0x0ABE, 0x0AC5, 1},\n\t\t{0x0AC7, 0x0AC9, 1},\n\t\t{0x0ACB, 0x0ACD, 1},\n\t\t{0x0AE6, 0x0AEF, 1},\n\t\t{0x0B01, 0x0B03, 1},\n\t\t{0x0B3C, 0x0B3C, 1},\n\t\t{0x0B3E, 0x0B43, 1},\n\t\t{0x0B47, 0x0B48, 1},\n\t\t{0x0B4B, 0x0B4D, 1},\n\t\t{0x0B56, 0x0B57, 1},\n\t\t{0x0B66, 0x0B6F, 1},\n\t\t{0x0B82, 0x0B83, 1},\n\t\t{0x0BBE, 0x0BC2, 1},\n\t\t{0x0BC6, 0x0BC8, 1},\n\t\t{0x0BCA, 0x0BCD, 1},\n\t\t{0x0BD7, 0x0BD7, 1},\n\t\t{0x0BE7, 0x0BEF, 1},\n\t\t{0x0C01, 0x0C03, 1},\n\t\t{0x0C3E, 0x0C44, 1},\n\t\t{0x0C46, 0x0C48, 1},\n\t\t{0x0C4A, 0x0C4D, 1},\n\t\t{0x0C55, 0x0C56, 1},\n\t\t{0x0C66, 0x0C6F, 1},\n\t\t{0x0C82, 0x0C83, 1},\n\t\t{0x0CBE, 0x0CC4, 1},\n\t\t{0x0CC6, 0x0CC8, 1},\n\t\t{0x0CCA, 0x0CCD, 1},\n\t\t{0x0CD5, 0x0CD6, 1},\n\t\t{0x0CE6, 0x0CEF, 1},\n\t\t{0x0D02, 0x0D03, 1},\n\t\t{0x0D3E, 0x0D43, 1},\n\t\t{0x0D46, 0x0D48, 1},\n\t\t{0x0D4A, 0x0D4D, 1},\n\t\t{0x0D57, 0x0D57, 1},\n\t\t{0x0D66, 0x0D6F, 1},\n\t\t{0x0E31, 0x0E31, 1},\n\t\t{0x0E34, 0x0E3A, 1},\n\t\t{0x0E46, 0x0E46, 1},\n\t\t{0x0E47, 0x0E4E, 1},\n\t\t{0x0E50, 0x0E59, 1},\n\t\t{0x0EB1, 0x0EB1, 1},\n\t\t{0x0EB4, 0x0EB9, 1},\n\t\t{0x0EBB, 0x0EBC, 1},\n\t\t{0x0EC6, 0x0EC6, 1},\n\t\t{0x0EC8, 0x0ECD, 1},\n\t\t{0x0ED0, 0x0ED9, 1},\n\t\t{0x0F18, 0x0F19, 1},\n\t\t{0x0F20, 0x0F29, 1},\n\t\t{0x0F35, 0x0F39, 2},\n\t\t{0x0F3E, 0x0F3F, 1},\n\t\t{0x0F71, 0x0F84, 1},\n\t\t{0x0F86, 0x0F8B, 1},\n\t\t{0x0F90, 0x0F95, 1},\n\t\t{0x0F97, 0x0F97, 1},\n\t\t{0x0F99, 0x0FAD, 1},\n\t\t{0x0FB1, 0x0FB7, 1},\n\t\t{0x0FB9, 0x0FB9, 1},\n\t\t{0x20D0, 0x20DC, 1},\n\t\t{0x20E1, 0x3005, 0x3005 - 0x20E1},\n\t\t{0x302A, 0x302F, 1},\n\t\t{0x3031, 0x3035, 1},\n\t\t{0x3099, 0x309A, 1},\n\t\t{0x309D, 0x309E, 1},\n\t\t{0x30FC, 0x30FE, 1},\n\t},\n}\n\n// HTMLEntity is an entity map containing translations for the\n// standard HTML entity characters.\nvar HTMLEntity = htmlEntity\n\nvar htmlEntity = map[string]string{\n\t/*\n\t\thget http://www.w3.org/TR/html4/sgml/entities.html |\n\t\tssam '\n\t\t\t,y /\\&gt;/ x/\\&lt;(.|\\n)+/ s/\\n/ /g\n\t\t\t,x v/^\\&lt;!ENTITY/d\n\t\t\t,s/\\&lt;!ENTITY ([^ ]+) .*U\\+([0-9A-F][0-9A-F][0-9A-F][0-9A-F]) .+/\t\"\\1\": \"\\\\u\\2\",/g\n\t\t'\n\t*/\n\t\"nbsp\":     \"\\u00A0\",\n\t\"iexcl\":    \"\\u00A1\",\n\t\"cent\":     \"\\u00A2\",\n\t\"pound\":    \"\\u00A3\",\n\t\"curren\":   \"\\u00A4\",\n\t\"yen\":      \"\\u00A5\",\n\t\"brvbar\":   \"\\u00A6\",\n\t\"sect\":     \"\\u00A7\",\n\t\"uml\":      \"\\u00A8\",\n\t\"copy\":     \"\\u00A9\",\n\t\"ordf\":     \"\\u00AA\",\n\t\"laquo\":    \"\\u00AB\",\n\t\"not\":      \"\\u00AC\",\n\t\"shy\":      \"\\u00AD\",\n\t\"reg\":      \"\\u00AE\",\n\t\"macr\":     \"\\u00AF\",\n\t\"deg\":      \"\\u00B0\",\n\t\"plusmn\":   \"\\u00B1\",\n\t\"sup2\":     \"\\u00B2\",\n\t\"sup3\":     \"\\u00B3\",\n\t\"acute\":    \"\\u00B4\",\n\t\"micro\":    \"\\u00B5\",\n\t\"para\":     \"\\u00B6\",\n\t\"middot\":   \"\\u00B7\",\n\t\"cedil\":    \"\\u00B8\",\n\t\"sup1\":     \"\\u00B9\",\n\t\"ordm\":     \"\\u00BA\",\n\t\"raquo\":    \"\\u00BB\",\n\t\"frac14\":   \"\\u00BC\",\n\t\"frac12\":   \"\\u00BD\",\n\t\"frac34\":   \"\\u00BE\",\n\t\"iquest\":   \"\\u00BF\",\n\t\"Agrave\":   \"\\u00C0\",\n\t\"Aacute\":   \"\\u00C1\",\n\t\"Acirc\":    \"\\u00C2\",\n\t\"Atilde\":   \"\\u00C3\",\n\t\"Auml\":     \"\\u00C4\",\n\t\"Aring\":    \"\\u00C5\",\n\t\"AElig\":    \"\\u00C6\",\n\t\"Ccedil\":   \"\\u00C7\",\n\t\"Egrave\":   \"\\u00C8\",\n\t\"Eacute\":   \"\\u00C9\",\n\t\"Ecirc\":    \"\\u00CA\",\n\t\"Euml\":     \"\\u00CB\",\n\t\"Igrave\":   \"\\u00CC\",\n\t\"Iacute\":   \"\\u00CD\",\n\t\"Icirc\":    \"\\u00CE\",\n\t\"Iuml\":     \"\\u00CF\",\n\t\"ETH\":      \"\\u00D0\",\n\t\"Ntilde\":   \"\\u00D1\",\n\t\"Ograve\":   \"\\u00D2\",\n\t\"Oacute\":   \"\\u00D3\",\n\t\"Ocirc\":    \"\\u00D4\",\n\t\"Otilde\":   \"\\u00D5\",\n\t\"Ouml\":     \"\\u00D6\",\n\t\"times\":    \"\\u00D7\",\n\t\"Oslash\":   \"\\u00D8\",\n\t\"Ugrave\":   \"\\u00D9\",\n\t\"Uacute\":   \"\\u00DA\",\n\t\"Ucirc\":    \"\\u00DB\",\n\t\"Uuml\":     \"\\u00DC\",\n\t\"Yacute\":   \"\\u00DD\",\n\t\"THORN\":    \"\\u00DE\",\n\t\"szlig\":    \"\\u00DF\",\n\t\"agrave\":   \"\\u00E0\",\n\t\"aacute\":   \"\\u00E1\",\n\t\"acirc\":    \"\\u00E2\",\n\t\"atilde\":   \"\\u00E3\",\n\t\"auml\":     \"\\u00E4\",\n\t\"aring\":    \"\\u00E5\",\n\t\"aelig\":    \"\\u00E6\",\n\t\"ccedil\":   \"\\u00E7\",\n\t\"egrave\":   \"\\u00E8\",\n\t\"eacute\":   \"\\u00E9\",\n\t\"ecirc\":    \"\\u00EA\",\n\t\"euml\":     \"\\u00EB\",\n\t\"igrave\":   \"\\u00EC\",\n\t\"iacute\":   \"\\u00ED\",\n\t\"icirc\":    \"\\u00EE\",\n\t\"iuml\":     \"\\u00EF\",\n\t\"eth\":      \"\\u00F0\",\n\t\"ntilde\":   \"\\u00F1\",\n\t\"ograve\":   \"\\u00F2\",\n\t\"oacute\":   \"\\u00F3\",\n\t\"ocirc\":    \"\\u00F4\",\n\t\"otilde\":   \"\\u00F5\",\n\t\"ouml\":     \"\\u00F6\",\n\t\"divide\":   \"\\u00F7\",\n\t\"oslash\":   \"\\u00F8\",\n\t\"ugrave\":   \"\\u00F9\",\n\t\"uacute\":   \"\\u00FA\",\n\t\"ucirc\":    \"\\u00FB\",\n\t\"uuml\":     \"\\u00FC\",\n\t\"yacute\":   \"\\u00FD\",\n\t\"thorn\":    \"\\u00FE\",\n\t\"yuml\":     \"\\u00FF\",\n\t\"fnof\":     \"\\u0192\",\n\t\"Alpha\":    \"\\u0391\",\n\t\"Beta\":     \"\\u0392\",\n\t\"Gamma\":    \"\\u0393\",\n\t\"Delta\":    \"\\u0394\",\n\t\"Epsilon\":  \"\\u0395\",\n\t\"Zeta\":     \"\\u0396\",\n\t\"Eta\":      \"\\u0397\",\n\t\"Theta\":    \"\\u0398\",\n\t\"Iota\":     \"\\u0399\",\n\t\"Kappa\":    \"\\u039A\",\n\t\"Lambda\":   \"\\u039B\",\n\t\"Mu\":       \"\\u039C\",\n\t\"Nu\":       \"\\u039D\",\n\t\"Xi\":       \"\\u039E\",\n\t\"Omicron\":  \"\\u039F\",\n\t\"Pi\":       \"\\u03A0\",\n\t\"Rho\":      \"\\u03A1\",\n\t\"Sigma\":    \"\\u03A3\",\n\t\"Tau\":      \"\\u03A4\",\n\t\"Upsilon\":  \"\\u03A5\",\n\t\"Phi\":      \"\\u03A6\",\n\t\"Chi\":      \"\\u03A7\",\n\t\"Psi\":      \"\\u03A8\",\n\t\"Omega\":    \"\\u03A9\",\n\t\"alpha\":    \"\\u03B1\",\n\t\"beta\":     \"\\u03B2\",\n\t\"gamma\":    \"\\u03B3\",\n\t\"delta\":    \"\\u03B4\",\n\t\"epsilon\":  \"\\u03B5\",\n\t\"zeta\":     \"\\u03B6\",\n\t\"eta\":      \"\\u03B7\",\n\t\"theta\":    \"\\u03B8\",\n\t\"iota\":     \"\\u03B9\",\n\t\"kappa\":    \"\\u03BA\",\n\t\"lambda\":   \"\\u03BB\",\n\t\"mu\":       \"\\u03BC\",\n\t\"nu\":       \"\\u03BD\",\n\t\"xi\":       \"\\u03BE\",\n\t\"omicron\":  \"\\u03BF\",\n\t\"pi\":       \"\\u03C0\",\n\t\"rho\":      \"\\u03C1\",\n\t\"sigmaf\":   \"\\u03C2\",\n\t\"sigma\":    \"\\u03C3\",\n\t\"tau\":      \"\\u03C4\",\n\t\"upsilon\":  \"\\u03C5\",\n\t\"phi\":      \"\\u03C6\",\n\t\"chi\":      \"\\u03C7\",\n\t\"psi\":      \"\\u03C8\",\n\t\"omega\":    \"\\u03C9\",\n\t\"thetasym\": \"\\u03D1\",\n\t\"upsih\":    \"\\u03D2\",\n\t\"piv\":      \"\\u03D6\",\n\t\"bull\":     \"\\u2022\",\n\t\"hellip\":   \"\\u2026\",\n\t\"prime\":    \"\\u2032\",\n\t\"Prime\":    \"\\u2033\",\n\t\"oline\":    \"\\u203E\",\n\t\"frasl\":    \"\\u2044\",\n\t\"weierp\":   \"\\u2118\",\n\t\"image\":    \"\\u2111\",\n\t\"real\":     \"\\u211C\",\n\t\"trade\":    \"\\u2122\",\n\t\"alefsym\":  \"\\u2135\",\n\t\"larr\":     \"\\u2190\",\n\t\"uarr\":     \"\\u2191\",\n\t\"rarr\":     \"\\u2192\",\n\t\"darr\":     \"\\u2193\",\n\t\"harr\":     \"\\u2194\",\n\t\"crarr\":    \"\\u21B5\",\n\t\"lArr\":     \"\\u21D0\",\n\t\"uArr\":     \"\\u21D1\",\n\t\"rArr\":     \"\\u21D2\",\n\t\"dArr\":     \"\\u21D3\",\n\t\"hArr\":     \"\\u21D4\",\n\t\"forall\":   \"\\u2200\",\n\t\"part\":     \"\\u2202\",\n\t\"exist\":    \"\\u2203\",\n\t\"empty\":    \"\\u2205\",\n\t\"nabla\":    \"\\u2207\",\n\t\"isin\":     \"\\u2208\",\n\t\"notin\":    \"\\u2209\",\n\t\"ni\":       \"\\u220B\",\n\t\"prod\":     \"\\u220F\",\n\t\"sum\":      \"\\u2211\",\n\t\"minus\":    \"\\u2212\",\n\t\"lowast\":   \"\\u2217\",\n\t\"radic\":    \"\\u221A\",\n\t\"prop\":     \"\\u221D\",\n\t\"infin\":    \"\\u221E\",\n\t\"ang\":      \"\\u2220\",\n\t\"and\":      \"\\u2227\",\n\t\"or\":       \"\\u2228\",\n\t\"cap\":      \"\\u2229\",\n\t\"cup\":      \"\\u222A\",\n\t\"int\":      \"\\u222B\",\n\t\"there4\":   \"\\u2234\",\n\t\"sim\":      \"\\u223C\",\n\t\"cong\":     \"\\u2245\",\n\t\"asymp\":    \"\\u2248\",\n\t\"ne\":       \"\\u2260\",\n\t\"equiv\":    \"\\u2261\",\n\t\"le\":       \"\\u2264\",\n\t\"ge\":       \"\\u2265\",\n\t\"sub\":      \"\\u2282\",\n\t\"sup\":      \"\\u2283\",\n\t\"nsub\":     \"\\u2284\",\n\t\"sube\":     \"\\u2286\",\n\t\"supe\":     \"\\u2287\",\n\t\"oplus\":    \"\\u2295\",\n\t\"otimes\":   \"\\u2297\",\n\t\"perp\":     \"\\u22A5\",\n\t\"sdot\":     \"\\u22C5\",\n\t\"lceil\":    \"\\u2308\",\n\t\"rceil\":    \"\\u2309\",\n\t\"lfloor\":   \"\\u230A\",\n\t\"rfloor\":   \"\\u230B\",\n\t\"lang\":     \"\\u2329\",\n\t\"rang\":     \"\\u232A\",\n\t\"loz\":      \"\\u25CA\",\n\t\"spades\":   \"\\u2660\",\n\t\"clubs\":    \"\\u2663\",\n\t\"hearts\":   \"\\u2665\",\n\t\"diams\":    \"\\u2666\",\n\t\"quot\":     \"\\u0022\",\n\t\"amp\":      \"\\u0026\",\n\t\"lt\":       \"\\u003C\",\n\t\"gt\":       \"\\u003E\",\n\t\"OElig\":    \"\\u0152\",\n\t\"oelig\":    \"\\u0153\",\n\t\"Scaron\":   \"\\u0160\",\n\t\"scaron\":   \"\\u0161\",\n\t\"Yuml\":     \"\\u0178\",\n\t\"circ\":     \"\\u02C6\",\n\t\"tilde\":    \"\\u02DC\",\n\t\"ensp\":     \"\\u2002\",\n\t\"emsp\":     \"\\u2003\",\n\t\"thinsp\":   \"\\u2009\",\n\t\"zwnj\":     \"\\u200C\",\n\t\"zwj\":      \"\\u200D\",\n\t\"lrm\":      \"\\u200E\",\n\t\"rlm\":      \"\\u200F\",\n\t\"ndash\":    \"\\u2013\",\n\t\"mdash\":    \"\\u2014\",\n\t\"lsquo\":    \"\\u2018\",\n\t\"rsquo\":    \"\\u2019\",\n\t\"sbquo\":    \"\\u201A\",\n\t\"ldquo\":    \"\\u201C\",\n\t\"rdquo\":    \"\\u201D\",\n\t\"bdquo\":    \"\\u201E\",\n\t\"dagger\":   \"\\u2020\",\n\t\"Dagger\":   \"\\u2021\",\n\t\"permil\":   \"\\u2030\",\n\t\"lsaquo\":   \"\\u2039\",\n\t\"rsaquo\":   \"\\u203A\",\n\t\"euro\":     \"\\u20AC\",\n}\n\n// HTMLAutoClose is the set of HTML elements that\n// should be considered to close automatically.\nvar HTMLAutoClose = htmlAutoClose\n\nvar htmlAutoClose = []string{\n\t/*\n\t\thget http://www.w3.org/TR/html4/loose.dtd |\n\t\t9 sed -n 's/<!ELEMENT ([^ ]*) +- O EMPTY.+/\t\"\\1\",/p' | tr A-Z a-z\n\t*/\n\t\"basefont\",\n\t\"br\",\n\t\"area\",\n\t\"link\",\n\t\"img\",\n\t\"param\",\n\t\"hr\",\n\t\"input\",\n\t\"col\",\n\t\"frame\",\n\t\"isindex\",\n\t\"base\",\n\t\"meta\",\n}\n\nvar (\n\tesc_quot = []byte(\"&#34;\") // shorter than \"&quot;\"\n\tesc_apos = []byte(\"&#39;\") // shorter than \"&apos;\"\n\tesc_amp  = []byte(\"&amp;\")\n\tesc_lt   = []byte(\"&lt;\")\n\tesc_gt   = []byte(\"&gt;\")\n\tesc_tab  = []byte(\"&#x9;\")\n\tesc_nl   = []byte(\"&#xA;\")\n\tesc_cr   = []byte(\"&#xD;\")\n\tesc_fffd = []byte(\"\\uFFFD\") // Unicode replacement character\n)\n\n// EscapeText writes to w the properly escaped XML equivalent\n// of the plain text data s.\nfunc EscapeText(w io.Writer, s []byte) error {\n\treturn escapeText(w, s, true)\n}\n\n// escapeText writes to w the properly escaped XML equivalent\n// of the plain text data s. If escapeNewline is true, newline\n// characters will be escaped.\nfunc escapeText(w io.Writer, s []byte, escapeNewline bool) error {\n\tvar esc []byte\n\tlast := 0\n\tfor i := 0; i < len(s); {\n\t\tr, width := utf8.DecodeRune(s[i:])\n\t\ti += width\n\t\tswitch r {\n\t\tcase '\"':\n\t\t\tesc = esc_quot\n\t\tcase '\\'':\n\t\t\tesc = esc_apos\n\t\tcase '&':\n\t\t\tesc = esc_amp\n\t\tcase '<':\n\t\t\tesc = esc_lt\n\t\tcase '>':\n\t\t\tesc = esc_gt\n\t\tcase '\\t':\n\t\t\tesc = esc_tab\n\t\tcase '\\n':\n\t\t\tif !escapeNewline {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tesc = esc_nl\n\t\tcase '\\r':\n\t\t\tesc = esc_cr\n\t\tdefault:\n\t\t\tif !isInCharacterRange(r) || (r == 0xFFFD && width == 1) {\n\t\t\t\tesc = esc_fffd\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif _, err := w.Write(s[last : i-width]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err := w.Write(esc); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlast = i\n\t}\n\tif _, err := w.Write(s[last:]); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// EscapeString writes to p the properly escaped XML equivalent\n// of the plain text data s.\nfunc (p *printer) EscapeString(s string) {\n\tvar esc []byte\n\tlast := 0\n\tfor i := 0; i < len(s); {\n\t\tr, width := utf8.DecodeRuneInString(s[i:])\n\t\ti += width\n\t\tswitch r {\n\t\tcase '\"':\n\t\t\tesc = esc_quot\n\t\tcase '\\'':\n\t\t\tesc = esc_apos\n\t\tcase '&':\n\t\t\tesc = esc_amp\n\t\tcase '<':\n\t\t\tesc = esc_lt\n\t\tcase '>':\n\t\t\tesc = esc_gt\n\t\tcase '\\t':\n\t\t\tesc = esc_tab\n\t\tcase '\\n':\n\t\t\tesc = esc_nl\n\t\tcase '\\r':\n\t\t\tesc = esc_cr\n\t\tdefault:\n\t\t\tif !isInCharacterRange(r) || (r == 0xFFFD && width == 1) {\n\t\t\t\tesc = esc_fffd\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tp.WriteString(s[last : i-width])\n\t\tp.Write(esc)\n\t\tlast = i\n\t}\n\tp.WriteString(s[last:])\n}\n\n// Escape is like EscapeText but omits the error return value.\n// It is provided for backwards compatibility with Go 1.0.\n// Code targeting Go 1.1 or later should use EscapeText.\nfunc Escape(w io.Writer, s []byte) {\n\tEscapeText(w, s)\n}\n\n// procInst parses the `param=\"...\"` or `param='...'`\n// value out of the provided string, returning \"\" if not found.\nfunc procInst(param, s string) string {\n\t// TODO: this parsing is somewhat lame and not exact.\n\t// It works for all actual cases, though.\n\tparam = param + \"=\"\n\tidx := strings.Index(s, param)\n\tif idx == -1 {\n\t\treturn \"\"\n\t}\n\tv := s[idx+len(param):]\n\tif v == \"\" {\n\t\treturn \"\"\n\t}\n\tif v[0] != '\\'' && v[0] != '\"' {\n\t\treturn \"\"\n\t}\n\tidx = strings.IndexRune(v[1:], rune(v[0]))\n\tif idx == -1 {\n\t\treturn \"\"\n\t}\n\treturn v[1 : idx+1]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/lock.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage webdav\n\nimport (\n\t\"container/heap\"\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar (\n\t// ErrConfirmationFailed is returned by a LockSystem's Confirm method.\n\tErrConfirmationFailed = errors.New(\"webdav: confirmation failed\")\n\t// ErrForbidden is returned by a LockSystem's Unlock method.\n\tErrForbidden = errors.New(\"webdav: forbidden\")\n\t// ErrLocked is returned by a LockSystem's Create, Refresh and Unlock methods.\n\tErrLocked = errors.New(\"webdav: locked\")\n\t// ErrNoSuchLock is returned by a LockSystem's Refresh and Unlock methods.\n\tErrNoSuchLock = errors.New(\"webdav: no such lock\")\n)\n\n// Condition can match a WebDAV resource, based on a token or ETag.\n// Exactly one of Token and ETag should be non-empty.\ntype Condition struct {\n\tNot   bool\n\tToken string\n\tETag  string\n}\n\n// LockSystem manages access to a collection of named resources. The elements\n// in a lock name are separated by slash ('/', U+002F) characters, regardless\n// of host operating system convention.\ntype LockSystem interface {\n\t// Confirm confirms that the caller can claim all of the locks specified by\n\t// the given conditions, and that holding the union of all of those locks\n\t// gives exclusive access to all of the named resources. Up to two resources\n\t// can be named. Empty names are ignored.\n\t//\n\t// Exactly one of release and err will be non-nil. If release is non-nil,\n\t// all of the requested locks are held until release is called. Calling\n\t// release does not unlock the lock, in the WebDAV UNLOCK sense, but once\n\t// Confirm has confirmed that a lock claim is valid, that lock cannot be\n\t// Confirmed again until it has been released.\n\t//\n\t// If Confirm returns ErrConfirmationFailed then the Handler will continue\n\t// to try any other set of locks presented (a WebDAV HTTP request can\n\t// present more than one set of locks). If it returns any other non-nil\n\t// error, the Handler will write a \"500 Internal Server Error\" HTTP status.\n\tConfirm(now time.Time, name0, name1 string, conditions ...Condition) (release func(), err error)\n\n\t// Create creates a lock with the given depth, duration, owner and root\n\t// (name). The depth will either be negative (meaning infinite) or zero.\n\t//\n\t// If Create returns ErrLocked then the Handler will write a \"423 Locked\"\n\t// HTTP status. If it returns any other non-nil error, the Handler will\n\t// write a \"500 Internal Server Error\" HTTP status.\n\t//\n\t// See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.10.6 for\n\t// when to use each error.\n\t//\n\t// The token returned identifies the created lock. It should be an absolute\n\t// URI as defined by RFC 3986, Section 4.3. In particular, it should not\n\t// contain whitespace.\n\tCreate(now time.Time, details LockDetails) (token string, err error)\n\n\t// Refresh refreshes the lock with the given token.\n\t//\n\t// If Refresh returns ErrLocked then the Handler will write a \"423 Locked\"\n\t// HTTP Status. If Refresh returns ErrNoSuchLock then the Handler will write\n\t// a \"412 Precondition Failed\" HTTP Status. If it returns any other non-nil\n\t// error, the Handler will write a \"500 Internal Server Error\" HTTP status.\n\t//\n\t// See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.10.6 for\n\t// when to use each error.\n\tRefresh(now time.Time, token string, duration time.Duration) (LockDetails, error)\n\n\t// Unlock unlocks the lock with the given token.\n\t//\n\t// If Unlock returns ErrForbidden then the Handler will write a \"403\n\t// Forbidden\" HTTP Status. If Unlock returns ErrLocked then the Handler\n\t// will write a \"423 Locked\" HTTP status. If Unlock returns ErrNoSuchLock\n\t// then the Handler will write a \"409 Conflict\" HTTP Status. If it returns\n\t// any other non-nil error, the Handler will write a \"500 Internal Server\n\t// Error\" HTTP status.\n\t//\n\t// See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.11.1 for\n\t// when to use each error.\n\tUnlock(now time.Time, token string) error\n}\n\n// LockDetails are a lock's metadata.\ntype LockDetails struct {\n\t// Root is the root resource name being locked. For a zero-depth lock, the\n\t// root is the only resource being locked.\n\tRoot string\n\t// Duration is the lock timeout. A negative duration means infinite.\n\tDuration time.Duration\n\t// OwnerXML is the verbatim <owner> XML given in a LOCK HTTP request.\n\t//\n\t// TODO: does the \"verbatim\" nature play well with XML namespaces?\n\t// Does the OwnerXML field need to have more structure? See\n\t// https://codereview.appspot.com/175140043/#msg2\n\tOwnerXML string\n\t// ZeroDepth is whether the lock has zero depth. If it does not have zero\n\t// depth, it has infinite depth.\n\tZeroDepth bool\n}\n\n// NewMemLS returns a new in-memory LockSystem.\nfunc NewMemLS() LockSystem {\n\treturn &memLS{\n\t\tbyName:  make(map[string]*memLSNode),\n\t\tbyToken: make(map[string]*memLSNode),\n\t\tgen:     uint64(time.Now().Unix()),\n\t}\n}\n\ntype memLS struct {\n\tmu      sync.Mutex\n\tbyName  map[string]*memLSNode\n\tbyToken map[string]*memLSNode\n\tgen     uint64\n\t// byExpiry only contains those nodes whose LockDetails have a finite\n\t// Duration and are yet to expire.\n\tbyExpiry byExpiry\n}\n\nfunc (m *memLS) nextToken() string {\n\tm.gen++\n\treturn strconv.FormatUint(m.gen, 10)\n}\n\nfunc (m *memLS) collectExpiredNodes(now time.Time) {\n\tfor len(m.byExpiry) > 0 {\n\t\tif now.Before(m.byExpiry[0].expiry) {\n\t\t\tbreak\n\t\t}\n\t\tm.remove(m.byExpiry[0])\n\t}\n}\n\nfunc (m *memLS) Confirm(now time.Time, name0, name1 string, conditions ...Condition) (func(), error) {\n\tm.mu.Lock()\n\tdefer m.mu.Unlock()\n\tm.collectExpiredNodes(now)\n\n\tvar n0, n1 *memLSNode\n\tif name0 != \"\" {\n\t\tif n0 = m.lookup(slashClean(name0), conditions...); n0 == nil {\n\t\t\treturn nil, ErrConfirmationFailed\n\t\t}\n\t}\n\tif name1 != \"\" {\n\t\tif n1 = m.lookup(slashClean(name1), conditions...); n1 == nil {\n\t\t\treturn nil, ErrConfirmationFailed\n\t\t}\n\t}\n\n\t// Don't hold the same node twice.\n\tif n1 == n0 {\n\t\tn1 = nil\n\t}\n\n\tif n0 != nil {\n\t\tm.hold(n0)\n\t}\n\tif n1 != nil {\n\t\tm.hold(n1)\n\t}\n\treturn func() {\n\t\tm.mu.Lock()\n\t\tdefer m.mu.Unlock()\n\t\tif n1 != nil {\n\t\t\tm.unhold(n1)\n\t\t}\n\t\tif n0 != nil {\n\t\t\tm.unhold(n0)\n\t\t}\n\t}, nil\n}\n\n// lookup returns the node n that locks the named resource, provided that n\n// matches at least one of the given conditions and that lock isn't held by\n// another party. Otherwise, it returns nil.\n//\n// n may be a parent of the named resource, if n is an infinite depth lock.\nfunc (m *memLS) lookup(name string, conditions ...Condition) (n *memLSNode) {\n\t// TODO: support Condition.Not and Condition.ETag.\n\tfor _, c := range conditions {\n\t\tn = m.byToken[c.Token]\n\t\tif n == nil || n.held {\n\t\t\tcontinue\n\t\t}\n\t\tif name == n.details.Root {\n\t\t\treturn n\n\t\t}\n\t\tif n.details.ZeroDepth {\n\t\t\tcontinue\n\t\t}\n\t\tif n.details.Root == \"/\" || strings.HasPrefix(name, n.details.Root+\"/\") {\n\t\t\treturn n\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (m *memLS) hold(n *memLSNode) {\n\tif n.held {\n\t\tpanic(\"webdav: memLS inconsistent held state\")\n\t}\n\tn.held = true\n\tif n.details.Duration >= 0 && n.byExpiryIndex >= 0 {\n\t\theap.Remove(&m.byExpiry, n.byExpiryIndex)\n\t}\n}\n\nfunc (m *memLS) unhold(n *memLSNode) {\n\tif !n.held {\n\t\tpanic(\"webdav: memLS inconsistent held state\")\n\t}\n\tn.held = false\n\tif n.details.Duration >= 0 {\n\t\theap.Push(&m.byExpiry, n)\n\t}\n}\n\nfunc (m *memLS) Create(now time.Time, details LockDetails) (string, error) {\n\tm.mu.Lock()\n\tdefer m.mu.Unlock()\n\tm.collectExpiredNodes(now)\n\tdetails.Root = slashClean(details.Root)\n\n\tif !m.canCreate(details.Root, details.ZeroDepth) {\n\t\treturn \"\", ErrLocked\n\t}\n\tn := m.create(details.Root)\n\tn.token = m.nextToken()\n\tm.byToken[n.token] = n\n\tn.details = details\n\tif n.details.Duration >= 0 {\n\t\tn.expiry = now.Add(n.details.Duration)\n\t\theap.Push(&m.byExpiry, n)\n\t}\n\treturn n.token, nil\n}\n\nfunc (m *memLS) Refresh(now time.Time, token string, duration time.Duration) (LockDetails, error) {\n\tm.mu.Lock()\n\tdefer m.mu.Unlock()\n\tm.collectExpiredNodes(now)\n\n\tn := m.byToken[token]\n\tif n == nil {\n\t\treturn LockDetails{}, ErrNoSuchLock\n\t}\n\tif n.held {\n\t\treturn LockDetails{}, ErrLocked\n\t}\n\tif n.byExpiryIndex >= 0 {\n\t\theap.Remove(&m.byExpiry, n.byExpiryIndex)\n\t}\n\tn.details.Duration = duration\n\tif n.details.Duration >= 0 {\n\t\tn.expiry = now.Add(n.details.Duration)\n\t\theap.Push(&m.byExpiry, n)\n\t}\n\treturn n.details, nil\n}\n\nfunc (m *memLS) Unlock(now time.Time, token string) error {\n\tm.mu.Lock()\n\tdefer m.mu.Unlock()\n\tm.collectExpiredNodes(now)\n\n\tn := m.byToken[token]\n\tif n == nil {\n\t\treturn ErrNoSuchLock\n\t}\n\tif n.held {\n\t\treturn ErrLocked\n\t}\n\tm.remove(n)\n\treturn nil\n}\n\nfunc (m *memLS) canCreate(name string, zeroDepth bool) bool {\n\treturn walkToRoot(name, func(name0 string, first bool) bool {\n\t\tn := m.byName[name0]\n\t\tif n == nil {\n\t\t\treturn true\n\t\t}\n\t\tif first {\n\t\t\tif n.token != \"\" {\n\t\t\t\t// The target node is already locked.\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !zeroDepth {\n\t\t\t\t// The requested lock depth is infinite, and the fact that n exists\n\t\t\t\t// (n != nil) means that a descendent of the target node is locked.\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else if n.token != \"\" && !n.details.ZeroDepth {\n\t\t\t// An ancestor of the target node is locked with infinite depth.\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n}\n\nfunc (m *memLS) create(name string) (ret *memLSNode) {\n\twalkToRoot(name, func(name0 string, first bool) bool {\n\t\tn := m.byName[name0]\n\t\tif n == nil {\n\t\t\tn = &memLSNode{\n\t\t\t\tdetails: LockDetails{\n\t\t\t\t\tRoot: name0,\n\t\t\t\t},\n\t\t\t\tbyExpiryIndex: -1,\n\t\t\t}\n\t\t\tm.byName[name0] = n\n\t\t}\n\t\tn.refCount++\n\t\tif first {\n\t\t\tret = n\n\t\t}\n\t\treturn true\n\t})\n\treturn ret\n}\n\nfunc (m *memLS) remove(n *memLSNode) {\n\tdelete(m.byToken, n.token)\n\tn.token = \"\"\n\twalkToRoot(n.details.Root, func(name0 string, first bool) bool {\n\t\tx := m.byName[name0]\n\t\tx.refCount--\n\t\tif x.refCount == 0 {\n\t\t\tdelete(m.byName, name0)\n\t\t}\n\t\treturn true\n\t})\n\tif n.byExpiryIndex >= 0 {\n\t\theap.Remove(&m.byExpiry, n.byExpiryIndex)\n\t}\n}\n\nfunc walkToRoot(name string, f func(name0 string, first bool) bool) bool {\n\tfor first := true; ; first = false {\n\t\tif !f(name, first) {\n\t\t\treturn false\n\t\t}\n\t\tif name == \"/\" {\n\t\t\tbreak\n\t\t}\n\t\tname = name[:strings.LastIndex(name, \"/\")]\n\t\tif name == \"\" {\n\t\t\tname = \"/\"\n\t\t}\n\t}\n\treturn true\n}\n\ntype memLSNode struct {\n\t// details are the lock metadata. Even if this node's name is not explicitly locked,\n\t// details.Root will still equal the node's name.\n\tdetails LockDetails\n\t// token is the unique identifier for this node's lock. An empty token means that\n\t// this node is not explicitly locked.\n\ttoken string\n\t// refCount is the number of self-or-descendent nodes that are explicitly locked.\n\trefCount int\n\t// expiry is when this node's lock expires.\n\texpiry time.Time\n\t// byExpiryIndex is the index of this node in memLS.byExpiry. It is -1\n\t// if this node does not expire, or has expired.\n\tbyExpiryIndex int\n\t// held is whether this node's lock is actively held by a Confirm call.\n\theld bool\n}\n\ntype byExpiry []*memLSNode\n\nfunc (b *byExpiry) Len() int {\n\treturn len(*b)\n}\n\nfunc (b *byExpiry) Less(i, j int) bool {\n\treturn (*b)[i].expiry.Before((*b)[j].expiry)\n}\n\nfunc (b *byExpiry) Swap(i, j int) {\n\t(*b)[i], (*b)[j] = (*b)[j], (*b)[i]\n\t(*b)[i].byExpiryIndex = i\n\t(*b)[j].byExpiryIndex = j\n}\n\nfunc (b *byExpiry) Push(x interface{}) {\n\tn := x.(*memLSNode)\n\tn.byExpiryIndex = len(*b)\n\t*b = append(*b, n)\n}\n\nfunc (b *byExpiry) Pop() interface{} {\n\ti := len(*b) - 1\n\tn := (*b)[i]\n\t(*b)[i] = nil\n\tn.byExpiryIndex = -1\n\t*b = (*b)[:i]\n\treturn n\n}\n\nconst infiniteTimeout = -1\n\n// parseTimeout parses the Timeout HTTP header, as per section 10.7. If s is\n// empty, an infiniteTimeout is returned.\nfunc parseTimeout(s string) (time.Duration, error) {\n\tif s == \"\" {\n\t\treturn infiniteTimeout, nil\n\t}\n\tif i := strings.IndexByte(s, ','); i >= 0 {\n\t\ts = s[:i]\n\t}\n\ts = strings.TrimSpace(s)\n\tif s == \"Infinite\" {\n\t\treturn infiniteTimeout, nil\n\t}\n\tconst pre = \"Second-\"\n\tif !strings.HasPrefix(s, pre) {\n\t\treturn 0, errInvalidTimeout\n\t}\n\ts = s[len(pre):]\n\tif s == \"\" || s[0] < '0' || '9' < s[0] {\n\t\treturn 0, errInvalidTimeout\n\t}\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil || 1<<32-1 < n {\n\t\treturn 0, errInvalidTimeout\n\t}\n\treturn time.Duration(n) * time.Second, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/prop.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage webdav\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n)\n\n// Proppatch describes a property update instruction as defined in RFC 4918.\n// See http://www.webdav.org/specs/rfc4918.html#METHOD_PROPPATCH\ntype Proppatch struct {\n\t// Remove specifies whether this patch removes properties. If it does not\n\t// remove them, it sets them.\n\tRemove bool\n\t// Props contains the properties to be set or removed.\n\tProps []Property\n}\n\n// Propstat describes a XML propstat element as defined in RFC 4918.\n// See http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat\ntype Propstat struct {\n\t// Props contains the properties for which Status applies.\n\tProps []Property\n\n\t// Status defines the HTTP status code of the properties in Prop.\n\t// Allowed values include, but are not limited to the WebDAV status\n\t// code extensions for HTTP/1.1.\n\t// http://www.webdav.org/specs/rfc4918.html#status.code.extensions.to.http11\n\tStatus int\n\n\t// XMLError contains the XML representation of the optional error element.\n\t// XML content within this field must not rely on any predefined\n\t// namespace declarations or prefixes. If empty, the XML error element\n\t// is omitted.\n\tXMLError string\n\n\t// ResponseDescription contains the contents of the optional\n\t// responsedescription field. If empty, the XML element is omitted.\n\tResponseDescription string\n}\n\n// makePropstats returns a slice containing those of x and y whose Props slice\n// is non-empty. If both are empty, it returns a slice containing an otherwise\n// zero Propstat whose HTTP status code is 200 OK.\nfunc makePropstats(x, y Propstat) []Propstat {\n\tpstats := make([]Propstat, 0, 2)\n\tif len(x.Props) != 0 {\n\t\tpstats = append(pstats, x)\n\t}\n\tif len(y.Props) != 0 {\n\t\tpstats = append(pstats, y)\n\t}\n\tif len(pstats) == 0 {\n\t\tpstats = append(pstats, Propstat{\n\t\t\tStatus: http.StatusOK,\n\t\t})\n\t}\n\treturn pstats\n}\n\n// DeadPropsHolder holds the dead properties of a resource.\n//\n// Dead properties are those properties that are explicitly defined. In\n// comparison, live properties, such as DAV:getcontentlength, are implicitly\n// defined by the underlying resource, and cannot be explicitly overridden or\n// removed. See the Terminology section of\n// http://www.webdav.org/specs/rfc4918.html#rfc.section.3\n//\n// There is a whitelist of the names of live properties. This package handles\n// all live properties, and will only pass non-whitelisted names to the Patch\n// method of DeadPropsHolder implementations.\ntype DeadPropsHolder interface {\n\t// DeadProps returns a copy of the dead properties held.\n\tDeadProps() (map[xml.Name]Property, error)\n\n\t// Patch patches the dead properties held.\n\t//\n\t// Patching is atomic; either all or no patches succeed. It returns (nil,\n\t// non-nil) if an internal server error occurred, otherwise the Propstats\n\t// collectively contain one Property for each proposed patch Property. If\n\t// all patches succeed, Patch returns a slice of length one and a Propstat\n\t// element with a 200 OK HTTP status code. If none succeed, for reasons\n\t// other than an internal server error, no Propstat has status 200 OK.\n\t//\n\t// For more details on when various HTTP status codes apply, see\n\t// http://www.webdav.org/specs/rfc4918.html#PROPPATCH-status\n\tPatch([]Proppatch) ([]Propstat, error)\n}\n\n// liveProps contains all supported, protected DAV: properties.\nvar liveProps = map[xml.Name]struct {\n\t// findFn implements the propfind function of this property. If nil,\n\t// it indicates a hidden property.\n\tfindFn func(context.Context, FileSystem, LockSystem, string, os.FileInfo) (string, error)\n\t// dir is true if the property applies to directories.\n\tdir bool\n}{\n\t{Space: \"DAV:\", Local: \"resourcetype\"}: {\n\t\tfindFn: findResourceType,\n\t\tdir:    true,\n\t},\n\t{Space: \"DAV:\", Local: \"displayname\"}: {\n\t\tfindFn: findDisplayName,\n\t\tdir:    true,\n\t},\n\t{Space: \"DAV:\", Local: \"getcontentlength\"}: {\n\t\tfindFn: findContentLength,\n\t\tdir:    false,\n\t},\n\t{Space: \"DAV:\", Local: \"getlastmodified\"}: {\n\t\tfindFn: findLastModified,\n\t\t// http://webdav.org/specs/rfc4918.html#PROPERTY_getlastmodified\n\t\t// suggests that getlastmodified should only apply to GETable\n\t\t// resources, and this package does not support GET on directories.\n\t\t//\n\t\t// Nonetheless, some WebDAV clients expect child directories to be\n\t\t// sortable by getlastmodified date, so this value is true, not false.\n\t\t// See golang.org/issue/15334.\n\t\tdir: true,\n\t},\n\t{Space: \"DAV:\", Local: \"creationdate\"}: {\n\t\tfindFn: nil,\n\t\tdir:    false,\n\t},\n\t{Space: \"DAV:\", Local: \"getcontentlanguage\"}: {\n\t\tfindFn: nil,\n\t\tdir:    false,\n\t},\n\t{Space: \"DAV:\", Local: \"getcontenttype\"}: {\n\t\tfindFn: findContentType,\n\t\tdir:    false,\n\t},\n\t{Space: \"DAV:\", Local: \"getetag\"}: {\n\t\tfindFn: findETag,\n\t\t// findETag implements ETag as the concatenated hex values of a file's\n\t\t// modification time and size. This is not a reliable synchronization\n\t\t// mechanism for directories, so we do not advertise getetag for DAV\n\t\t// collections.\n\t\tdir: false,\n\t},\n\n\t// TODO: The lockdiscovery property requires LockSystem to list the\n\t// active locks on a resource.\n\t{Space: \"DAV:\", Local: \"lockdiscovery\"}: {},\n\t{Space: \"DAV:\", Local: \"supportedlock\"}: {\n\t\tfindFn: findSupportedLock,\n\t\tdir:    true,\n\t},\n}\n\n// TODO(nigeltao) merge props and allprop?\n\n// Props returns the status of the properties named pnames for resource name.\n//\n// Each Propstat has a unique status and each property name will only be part\n// of one Propstat element.\nfunc props(ctx context.Context, fs FileSystem, ls LockSystem, name string, pnames []xml.Name) ([]Propstat, error) {\n\tf, err := fs.OpenFile(ctx, name, os.O_RDONLY, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\tfi, err := f.Stat()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tisDir := fi.IsDir()\n\n\tvar deadProps map[xml.Name]Property\n\tif dph, ok := f.(DeadPropsHolder); ok {\n\t\tdeadProps, err = dph.DeadProps()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tpstatOK := Propstat{Status: http.StatusOK}\n\tpstatNotFound := Propstat{Status: http.StatusNotFound}\n\tfor _, pn := range pnames {\n\t\t// If this file has dead properties, check if they contain pn.\n\t\tif dp, ok := deadProps[pn]; ok {\n\t\t\tpstatOK.Props = append(pstatOK.Props, dp)\n\t\t\tcontinue\n\t\t}\n\t\t// Otherwise, it must either be a live property or we don't know it.\n\t\tif prop := liveProps[pn]; prop.findFn != nil && (prop.dir || !isDir) {\n\t\t\tinnerXML, err := prop.findFn(ctx, fs, ls, name, fi)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tpstatOK.Props = append(pstatOK.Props, Property{\n\t\t\t\tXMLName:  pn,\n\t\t\t\tInnerXML: []byte(innerXML),\n\t\t\t})\n\t\t} else {\n\t\t\tpstatNotFound.Props = append(pstatNotFound.Props, Property{\n\t\t\t\tXMLName: pn,\n\t\t\t})\n\t\t}\n\t}\n\treturn makePropstats(pstatOK, pstatNotFound), nil\n}\n\n// Propnames returns the property names defined for resource name.\nfunc propnames(ctx context.Context, fs FileSystem, ls LockSystem, name string) ([]xml.Name, error) {\n\tf, err := fs.OpenFile(ctx, name, os.O_RDONLY, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\tfi, err := f.Stat()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tisDir := fi.IsDir()\n\n\tvar deadProps map[xml.Name]Property\n\tif dph, ok := f.(DeadPropsHolder); ok {\n\t\tdeadProps, err = dph.DeadProps()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tpnames := make([]xml.Name, 0, len(liveProps)+len(deadProps))\n\tfor pn, prop := range liveProps {\n\t\tif prop.findFn != nil && (prop.dir || !isDir) {\n\t\t\tpnames = append(pnames, pn)\n\t\t}\n\t}\n\tfor pn := range deadProps {\n\t\tpnames = append(pnames, pn)\n\t}\n\treturn pnames, nil\n}\n\n// Allprop returns the properties defined for resource name and the properties\n// named in include.\n//\n// Note that RFC 4918 defines 'allprop' to return the DAV: properties defined\n// within the RFC plus dead properties. Other live properties should only be\n// returned if they are named in 'include'.\n//\n// See http://www.webdav.org/specs/rfc4918.html#METHOD_PROPFIND\nfunc allprop(ctx context.Context, fs FileSystem, ls LockSystem, name string, include []xml.Name) ([]Propstat, error) {\n\tpnames, err := propnames(ctx, fs, ls, name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Add names from include if they are not already covered in pnames.\n\tnameset := make(map[xml.Name]bool)\n\tfor _, pn := range pnames {\n\t\tnameset[pn] = true\n\t}\n\tfor _, pn := range include {\n\t\tif !nameset[pn] {\n\t\t\tpnames = append(pnames, pn)\n\t\t}\n\t}\n\treturn props(ctx, fs, ls, name, pnames)\n}\n\n// Patch patches the properties of resource name. The return values are\n// constrained in the same manner as DeadPropsHolder.Patch.\nfunc patch(ctx context.Context, fs FileSystem, ls LockSystem, name string, patches []Proppatch) ([]Propstat, error) {\n\tconflict := false\nloop:\n\tfor _, patch := range patches {\n\t\tfor _, p := range patch.Props {\n\t\t\tif _, ok := liveProps[p.XMLName]; ok {\n\t\t\t\tconflict = true\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t}\n\t}\n\tif conflict {\n\t\tpstatForbidden := Propstat{\n\t\t\tStatus:   http.StatusForbidden,\n\t\t\tXMLError: `<D:cannot-modify-protected-property xmlns:D=\"DAV:\"/>`,\n\t\t}\n\t\tpstatFailedDep := Propstat{\n\t\t\tStatus: StatusFailedDependency,\n\t\t}\n\t\tfor _, patch := range patches {\n\t\t\tfor _, p := range patch.Props {\n\t\t\t\tif _, ok := liveProps[p.XMLName]; ok {\n\t\t\t\t\tpstatForbidden.Props = append(pstatForbidden.Props, Property{XMLName: p.XMLName})\n\t\t\t\t} else {\n\t\t\t\t\tpstatFailedDep.Props = append(pstatFailedDep.Props, Property{XMLName: p.XMLName})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn makePropstats(pstatForbidden, pstatFailedDep), nil\n\t}\n\n\tf, err := fs.OpenFile(ctx, name, os.O_RDWR, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\tif dph, ok := f.(DeadPropsHolder); ok {\n\t\tret, err := dph.Patch(patches)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat says that\n\t\t// \"The contents of the prop XML element must only list the names of\n\t\t// properties to which the result in the status element applies.\"\n\t\tfor _, pstat := range ret {\n\t\t\tfor i, p := range pstat.Props {\n\t\t\t\tpstat.Props[i] = Property{XMLName: p.XMLName}\n\t\t\t}\n\t\t}\n\t\treturn ret, nil\n\t}\n\t// The file doesn't implement the optional DeadPropsHolder interface, so\n\t// all patches are forbidden.\n\tpstat := Propstat{Status: http.StatusForbidden}\n\tfor _, patch := range patches {\n\t\tfor _, p := range patch.Props {\n\t\t\tpstat.Props = append(pstat.Props, Property{XMLName: p.XMLName})\n\t\t}\n\t}\n\treturn []Propstat{pstat}, nil\n}\n\nfunc escapeXML(s string) string {\n\tfor i := 0; i < len(s); i++ {\n\t\t// As an optimization, if s contains only ASCII letters, digits or a\n\t\t// few special characters, the escaped value is s itself and we don't\n\t\t// need to allocate a buffer and convert between string and []byte.\n\t\tswitch c := s[i]; {\n\t\tcase c == ' ' || c == '_' ||\n\t\t\t('+' <= c && c <= '9') || // Digits as well as + , - . and /\n\t\t\t('A' <= c && c <= 'Z') ||\n\t\t\t('a' <= c && c <= 'z'):\n\t\t\tcontinue\n\t\t}\n\t\t// Otherwise, go through the full escaping process.\n\t\tvar buf bytes.Buffer\n\t\txml.EscapeText(&buf, []byte(s))\n\t\treturn buf.String()\n\t}\n\treturn s\n}\n\nfunc findResourceType(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\tif fi.IsDir() {\n\t\treturn `<D:collection xmlns:D=\"DAV:\"/>`, nil\n\t}\n\treturn \"\", nil\n}\n\nfunc findDisplayName(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\tif slashClean(name) == \"/\" {\n\t\t// Hide the real name of a possibly prefixed root directory.\n\t\treturn \"\", nil\n\t}\n\treturn escapeXML(fi.Name()), nil\n}\n\nfunc findContentLength(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\treturn strconv.FormatInt(fi.Size(), 10), nil\n}\n\nfunc findLastModified(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\treturn fi.ModTime().UTC().Format(http.TimeFormat), nil\n}\n\n// ErrNotImplemented should be returned by optional interfaces if they\n// want the original implementation to be used.\nvar ErrNotImplemented = errors.New(\"not implemented\")\n\n// ContentTyper is an optional interface for the os.FileInfo\n// objects returned by the FileSystem.\n//\n// If this interface is defined then it will be used to read the\n// content type from the object.\n//\n// If this interface is not defined the file will be opened and the\n// content type will be guessed from the initial contents of the file.\ntype ContentTyper interface {\n\t// ContentType returns the content type for the file.\n\t//\n\t// If this returns error ErrNotImplemented then the error will\n\t// be ignored and the base implementation will be used\n\t// instead.\n\tContentType(ctx context.Context) (string, error)\n}\n\nfunc findContentType(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\tif do, ok := fi.(ContentTyper); ok {\n\t\tctype, err := do.ContentType(ctx)\n\t\tif err != ErrNotImplemented {\n\t\t\treturn ctype, err\n\t\t}\n\t}\n\tf, err := fs.OpenFile(ctx, name, os.O_RDONLY, 0)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer f.Close()\n\t// This implementation is based on serveContent's code in the standard net/http package.\n\tctype := mime.TypeByExtension(filepath.Ext(name))\n\tif ctype != \"\" {\n\t\treturn ctype, nil\n\t}\n\t// Read a chunk to decide between utf-8 text and binary.\n\tvar buf [512]byte\n\tn, err := io.ReadFull(f, buf[:])\n\tif err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {\n\t\treturn \"\", err\n\t}\n\tctype = http.DetectContentType(buf[:n])\n\t// Rewind file.\n\t_, err = f.Seek(0, os.SEEK_SET)\n\treturn ctype, err\n}\n\n// ETager is an optional interface for the os.FileInfo objects\n// returned by the FileSystem.\n//\n// If this interface is defined then it will be used to read the ETag\n// for the object.\n//\n// If this interface is not defined an ETag will be computed using the\n// ModTime() and the Size() methods of the os.FileInfo object.\ntype ETager interface {\n\t// ETag returns an ETag for the file.  This should be of the\n\t// form \"value\" or W/\"value\"\n\t//\n\t// If this returns error ErrNotImplemented then the error will\n\t// be ignored and the base implementation will be used\n\t// instead.\n\tETag(ctx context.Context) (string, error)\n}\n\nfunc findETag(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\tif do, ok := fi.(ETager); ok {\n\t\tetag, err := do.ETag(ctx)\n\t\tif err != ErrNotImplemented {\n\t\t\treturn etag, err\n\t\t}\n\t}\n\t// The Apache http 2.4 web server by default concatenates the\n\t// modification time and size of a file. We replicate the heuristic\n\t// with nanosecond granularity.\n\treturn fmt.Sprintf(`\"%x%x\"`, fi.ModTime().UnixNano(), fi.Size()), nil\n}\n\nfunc findSupportedLock(ctx context.Context, fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {\n\treturn `` +\n\t\t`<D:lockentry xmlns:D=\"DAV:\">` +\n\t\t`<D:lockscope><D:exclusive/></D:lockscope>` +\n\t\t`<D:locktype><D:write/></D:locktype>` +\n\t\t`</D:lockentry>`, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/webdav.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package webdav provides a WebDAV server implementation.\npackage webdav // import \"golang.org/x/net/webdav\"\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype Handler struct {\n\t// Prefix is the URL path prefix to strip from WebDAV resource paths.\n\tPrefix string\n\t// FileSystem is the virtual file system.\n\tFileSystem FileSystem\n\t// LockSystem is the lock management system.\n\tLockSystem LockSystem\n\t// Logger is an optional error logger. If non-nil, it will be called\n\t// for all HTTP requests.\n\tLogger func(*http.Request, error)\n}\n\nfunc (h *Handler) stripPrefix(p string) (string, int, error) {\n\tif h.Prefix == \"\" {\n\t\treturn p, http.StatusOK, nil\n\t}\n\tif r := strings.TrimPrefix(p, h.Prefix); len(r) < len(p) {\n\t\treturn r, http.StatusOK, nil\n\t}\n\treturn p, http.StatusNotFound, errPrefixMismatch\n}\n\nfunc (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tstatus, err := http.StatusBadRequest, errUnsupportedMethod\n\tif h.FileSystem == nil {\n\t\tstatus, err = http.StatusInternalServerError, errNoFileSystem\n\t} else if h.LockSystem == nil {\n\t\tstatus, err = http.StatusInternalServerError, errNoLockSystem\n\t} else {\n\t\tswitch r.Method {\n\t\tcase \"OPTIONS\":\n\t\t\tstatus, err = h.handleOptions(w, r)\n\t\tcase \"GET\", \"HEAD\", \"POST\":\n\t\t\tstatus, err = h.handleGetHeadPost(w, r)\n\t\tcase \"DELETE\":\n\t\t\tstatus, err = h.handleDelete(w, r)\n\t\tcase \"PUT\":\n\t\t\tstatus, err = h.handlePut(w, r)\n\t\tcase \"MKCOL\":\n\t\t\tstatus, err = h.handleMkcol(w, r)\n\t\tcase \"COPY\", \"MOVE\":\n\t\t\tstatus, err = h.handleCopyMove(w, r)\n\t\tcase \"LOCK\":\n\t\t\tstatus, err = h.handleLock(w, r)\n\t\tcase \"UNLOCK\":\n\t\t\tstatus, err = h.handleUnlock(w, r)\n\t\tcase \"PROPFIND\":\n\t\t\tstatus, err = h.handlePropfind(w, r)\n\t\tcase \"PROPPATCH\":\n\t\t\tstatus, err = h.handleProppatch(w, r)\n\t\t}\n\t}\n\n\tif status != 0 {\n\t\tw.WriteHeader(status)\n\t\tif status != http.StatusNoContent {\n\t\t\tw.Write([]byte(StatusText(status)))\n\t\t}\n\t}\n\tif h.Logger != nil {\n\t\th.Logger(r, err)\n\t}\n}\n\nfunc (h *Handler) lock(now time.Time, root string) (token string, status int, err error) {\n\ttoken, err = h.LockSystem.Create(now, LockDetails{\n\t\tRoot:      root,\n\t\tDuration:  infiniteTimeout,\n\t\tZeroDepth: true,\n\t})\n\tif err != nil {\n\t\tif err == ErrLocked {\n\t\t\treturn \"\", StatusLocked, err\n\t\t}\n\t\treturn \"\", http.StatusInternalServerError, err\n\t}\n\treturn token, 0, nil\n}\n\nfunc (h *Handler) confirmLocks(r *http.Request, src, dst string) (release func(), status int, err error) {\n\thdr := r.Header.Get(\"If\")\n\tif hdr == \"\" {\n\t\t// An empty If header means that the client hasn't previously created locks.\n\t\t// Even if this client doesn't care about locks, we still need to check that\n\t\t// the resources aren't locked by another client, so we create temporary\n\t\t// locks that would conflict with another client's locks. These temporary\n\t\t// locks are unlocked at the end of the HTTP request.\n\t\tnow, srcToken, dstToken := time.Now(), \"\", \"\"\n\t\tif src != \"\" {\n\t\t\tsrcToken, status, err = h.lock(now, src)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, status, err\n\t\t\t}\n\t\t}\n\t\tif dst != \"\" {\n\t\t\tdstToken, status, err = h.lock(now, dst)\n\t\t\tif err != nil {\n\t\t\t\tif srcToken != \"\" {\n\t\t\t\t\th.LockSystem.Unlock(now, srcToken)\n\t\t\t\t}\n\t\t\t\treturn nil, status, err\n\t\t\t}\n\t\t}\n\n\t\treturn func() {\n\t\t\tif dstToken != \"\" {\n\t\t\t\th.LockSystem.Unlock(now, dstToken)\n\t\t\t}\n\t\t\tif srcToken != \"\" {\n\t\t\t\th.LockSystem.Unlock(now, srcToken)\n\t\t\t}\n\t\t}, 0, nil\n\t}\n\n\tih, ok := parseIfHeader(hdr)\n\tif !ok {\n\t\treturn nil, http.StatusBadRequest, errInvalidIfHeader\n\t}\n\t// ih is a disjunction (OR) of ifLists, so any ifList will do.\n\tfor _, l := range ih.lists {\n\t\tlsrc := l.resourceTag\n\t\tif lsrc == \"\" {\n\t\t\tlsrc = src\n\t\t} else {\n\t\t\tu, err := url.Parse(lsrc)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif u.Host != r.Host {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlsrc, status, err = h.stripPrefix(u.Path)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, status, err\n\t\t\t}\n\t\t}\n\t\trelease, err = h.LockSystem.Confirm(time.Now(), lsrc, dst, l.conditions...)\n\t\tif err == ErrConfirmationFailed {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, http.StatusInternalServerError, err\n\t\t}\n\t\treturn release, 0, nil\n\t}\n\t// Section 10.4.1 says that \"If this header is evaluated and all state lists\n\t// fail, then the request must fail with a 412 (Precondition Failed) status.\"\n\t// We follow the spec even though the cond_put_corrupt_token test case from\n\t// the litmus test warns on seeing a 412 instead of a 423 (Locked).\n\treturn nil, http.StatusPreconditionFailed, ErrLocked\n}\n\nfunc (h *Handler) handleOptions(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tctx := r.Context()\n\tallow := \"OPTIONS, LOCK, PUT, MKCOL\"\n\tif fi, err := h.FileSystem.Stat(ctx, reqPath); err == nil {\n\t\tif fi.IsDir() {\n\t\t\tallow = \"OPTIONS, LOCK, DELETE, PROPPATCH, COPY, MOVE, UNLOCK, PROPFIND\"\n\t\t} else {\n\t\t\tallow = \"OPTIONS, LOCK, GET, HEAD, POST, DELETE, PROPPATCH, COPY, MOVE, UNLOCK, PROPFIND, PUT\"\n\t\t}\n\t}\n\tw.Header().Set(\"Allow\", allow)\n\t// http://www.webdav.org/specs/rfc4918.html#dav.compliance.classes\n\tw.Header().Set(\"DAV\", \"1, 2\")\n\t// http://msdn.microsoft.com/en-au/library/cc250217.aspx\n\tw.Header().Set(\"MS-Author-Via\", \"DAV\")\n\treturn 0, nil\n}\n\nfunc (h *Handler) handleGetHeadPost(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\t// TODO: check locks for read-only access??\n\tctx := r.Context()\n\tf, err := h.FileSystem.OpenFile(ctx, reqPath, os.O_RDONLY, 0)\n\tif err != nil {\n\t\treturn http.StatusNotFound, err\n\t}\n\tdefer f.Close()\n\tfi, err := f.Stat()\n\tif err != nil {\n\t\treturn http.StatusNotFound, err\n\t}\n\tif fi.IsDir() {\n\t\treturn http.StatusMethodNotAllowed, nil\n\t}\n\tetag, err := findETag(ctx, h.FileSystem, h.LockSystem, reqPath, fi)\n\tif err != nil {\n\t\treturn http.StatusInternalServerError, err\n\t}\n\tw.Header().Set(\"ETag\", etag)\n\t// Let ServeContent determine the Content-Type header.\n\thttp.ServeContent(w, r, reqPath, fi.ModTime(), f)\n\treturn 0, nil\n}\n\nfunc (h *Handler) handleDelete(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\trelease, status, err := h.confirmLocks(r, reqPath, \"\")\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tdefer release()\n\n\tctx := r.Context()\n\n\t// TODO: return MultiStatus where appropriate.\n\n\t// \"godoc os RemoveAll\" says that \"If the path does not exist, RemoveAll\n\t// returns nil (no error).\" WebDAV semantics are that it should return a\n\t// \"404 Not Found\". We therefore have to Stat before we RemoveAll.\n\tif _, err := h.FileSystem.Stat(ctx, reqPath); err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn http.StatusNotFound, err\n\t\t}\n\t\treturn http.StatusMethodNotAllowed, err\n\t}\n\tif err := h.FileSystem.RemoveAll(ctx, reqPath); err != nil {\n\t\treturn http.StatusMethodNotAllowed, err\n\t}\n\treturn http.StatusNoContent, nil\n}\n\nfunc (h *Handler) handlePut(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\trelease, status, err := h.confirmLocks(r, reqPath, \"\")\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tdefer release()\n\t// TODO(rost): Support the If-Match, If-None-Match headers? See bradfitz'\n\t// comments in http.checkEtag.\n\tctx := r.Context()\n\n\tf, err := h.FileSystem.OpenFile(ctx, reqPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)\n\tif err != nil {\n\t\treturn http.StatusNotFound, err\n\t}\n\t_, copyErr := io.Copy(f, r.Body)\n\tfi, statErr := f.Stat()\n\tcloseErr := f.Close()\n\t// TODO(rost): Returning 405 Method Not Allowed might not be appropriate.\n\tif copyErr != nil {\n\t\treturn http.StatusMethodNotAllowed, copyErr\n\t}\n\tif statErr != nil {\n\t\treturn http.StatusMethodNotAllowed, statErr\n\t}\n\tif closeErr != nil {\n\t\treturn http.StatusMethodNotAllowed, closeErr\n\t}\n\tetag, err := findETag(ctx, h.FileSystem, h.LockSystem, reqPath, fi)\n\tif err != nil {\n\t\treturn http.StatusInternalServerError, err\n\t}\n\tw.Header().Set(\"ETag\", etag)\n\treturn http.StatusCreated, nil\n}\n\nfunc (h *Handler) handleMkcol(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\trelease, status, err := h.confirmLocks(r, reqPath, \"\")\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tdefer release()\n\n\tctx := r.Context()\n\n\tif r.ContentLength > 0 {\n\t\treturn http.StatusUnsupportedMediaType, nil\n\t}\n\tif err := h.FileSystem.Mkdir(ctx, reqPath, 0777); err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn http.StatusConflict, err\n\t\t}\n\t\treturn http.StatusMethodNotAllowed, err\n\t}\n\treturn http.StatusCreated, nil\n}\n\nfunc (h *Handler) handleCopyMove(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\thdr := r.Header.Get(\"Destination\")\n\tif hdr == \"\" {\n\t\treturn http.StatusBadRequest, errInvalidDestination\n\t}\n\tu, err := url.Parse(hdr)\n\tif err != nil {\n\t\treturn http.StatusBadRequest, errInvalidDestination\n\t}\n\tif u.Host != r.Host {\n\t\treturn http.StatusBadGateway, errInvalidDestination\n\t}\n\n\tsrc, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\n\tdst, status, err := h.stripPrefix(u.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\n\tif dst == \"\" {\n\t\treturn http.StatusBadGateway, errInvalidDestination\n\t}\n\tif dst == src {\n\t\treturn http.StatusForbidden, errDestinationEqualsSource\n\t}\n\n\tctx := r.Context()\n\n\tif r.Method == \"COPY\" {\n\t\t// Section 7.5.1 says that a COPY only needs to lock the destination,\n\t\t// not both destination and source. Strictly speaking, this is racy,\n\t\t// even though a COPY doesn't modify the source, if a concurrent\n\t\t// operation modifies the source. However, the litmus test explicitly\n\t\t// checks that COPYing a locked-by-another source is OK.\n\t\trelease, status, err := h.confirmLocks(r, \"\", dst)\n\t\tif err != nil {\n\t\t\treturn status, err\n\t\t}\n\t\tdefer release()\n\n\t\t// Section 9.8.3 says that \"The COPY method on a collection without a Depth\n\t\t// header must act as if a Depth header with value \"infinity\" was included\".\n\t\tdepth := infiniteDepth\n\t\tif hdr := r.Header.Get(\"Depth\"); hdr != \"\" {\n\t\t\tdepth = parseDepth(hdr)\n\t\t\tif depth != 0 && depth != infiniteDepth {\n\t\t\t\t// Section 9.8.3 says that \"A client may submit a Depth header on a\n\t\t\t\t// COPY on a collection with a value of \"0\" or \"infinity\".\"\n\t\t\t\treturn http.StatusBadRequest, errInvalidDepth\n\t\t\t}\n\t\t}\n\t\treturn copyFiles(ctx, h.FileSystem, src, dst, r.Header.Get(\"Overwrite\") != \"F\", depth, 0)\n\t}\n\n\trelease, status, err := h.confirmLocks(r, src, dst)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tdefer release()\n\n\t// Section 9.9.2 says that \"The MOVE method on a collection must act as if\n\t// a \"Depth: infinity\" header was used on it. A client must not submit a\n\t// Depth header on a MOVE on a collection with any value but \"infinity\".\"\n\tif hdr := r.Header.Get(\"Depth\"); hdr != \"\" {\n\t\tif parseDepth(hdr) != infiniteDepth {\n\t\t\treturn http.StatusBadRequest, errInvalidDepth\n\t\t}\n\t}\n\treturn moveFiles(ctx, h.FileSystem, src, dst, r.Header.Get(\"Overwrite\") == \"T\")\n}\n\nfunc (h *Handler) handleLock(w http.ResponseWriter, r *http.Request) (retStatus int, retErr error) {\n\tduration, err := parseTimeout(r.Header.Get(\"Timeout\"))\n\tif err != nil {\n\t\treturn http.StatusBadRequest, err\n\t}\n\tli, status, err := readLockInfo(r.Body)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\n\tctx := r.Context()\n\ttoken, ld, now, created := \"\", LockDetails{}, time.Now(), false\n\tif li == (lockInfo{}) {\n\t\t// An empty lockInfo means to refresh the lock.\n\t\tih, ok := parseIfHeader(r.Header.Get(\"If\"))\n\t\tif !ok {\n\t\t\treturn http.StatusBadRequest, errInvalidIfHeader\n\t\t}\n\t\tif len(ih.lists) == 1 && len(ih.lists[0].conditions) == 1 {\n\t\t\ttoken = ih.lists[0].conditions[0].Token\n\t\t}\n\t\tif token == \"\" {\n\t\t\treturn http.StatusBadRequest, errInvalidLockToken\n\t\t}\n\t\tld, err = h.LockSystem.Refresh(now, token, duration)\n\t\tif err != nil {\n\t\t\tif err == ErrNoSuchLock {\n\t\t\t\treturn http.StatusPreconditionFailed, err\n\t\t\t}\n\t\t\treturn http.StatusInternalServerError, err\n\t\t}\n\n\t} else {\n\t\t// Section 9.10.3 says that \"If no Depth header is submitted on a LOCK request,\n\t\t// then the request MUST act as if a \"Depth:infinity\" had been submitted.\"\n\t\tdepth := infiniteDepth\n\t\tif hdr := r.Header.Get(\"Depth\"); hdr != \"\" {\n\t\t\tdepth = parseDepth(hdr)\n\t\t\tif depth != 0 && depth != infiniteDepth {\n\t\t\t\t// Section 9.10.3 says that \"Values other than 0 or infinity must not be\n\t\t\t\t// used with the Depth header on a LOCK method\".\n\t\t\t\treturn http.StatusBadRequest, errInvalidDepth\n\t\t\t}\n\t\t}\n\t\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\t\tif err != nil {\n\t\t\treturn status, err\n\t\t}\n\t\tld = LockDetails{\n\t\t\tRoot:      reqPath,\n\t\t\tDuration:  duration,\n\t\t\tOwnerXML:  li.Owner.InnerXML,\n\t\t\tZeroDepth: depth == 0,\n\t\t}\n\t\ttoken, err = h.LockSystem.Create(now, ld)\n\t\tif err != nil {\n\t\t\tif err == ErrLocked {\n\t\t\t\treturn StatusLocked, err\n\t\t\t}\n\t\t\treturn http.StatusInternalServerError, err\n\t\t}\n\t\tdefer func() {\n\t\t\tif retErr != nil {\n\t\t\t\th.LockSystem.Unlock(now, token)\n\t\t\t}\n\t\t}()\n\n\t\t// Create the resource if it didn't previously exist.\n\t\tif _, err := h.FileSystem.Stat(ctx, reqPath); err != nil {\n\t\t\tf, err := h.FileSystem.OpenFile(ctx, reqPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)\n\t\t\tif err != nil {\n\t\t\t\t// TODO: detect missing intermediate dirs and return http.StatusConflict?\n\t\t\t\treturn http.StatusInternalServerError, err\n\t\t\t}\n\t\t\tf.Close()\n\t\t\tcreated = true\n\t\t}\n\n\t\t// http://www.webdav.org/specs/rfc4918.html#HEADER_Lock-Token says that the\n\t\t// Lock-Token value is a Coded-URL. We add angle brackets.\n\t\tw.Header().Set(\"Lock-Token\", \"<\"+token+\">\")\n\t}\n\n\tw.Header().Set(\"Content-Type\", \"application/xml; charset=utf-8\")\n\tif created {\n\t\t// This is \"w.WriteHeader(http.StatusCreated)\" and not \"return\n\t\t// http.StatusCreated, nil\" because we write our own (XML) response to w\n\t\t// and Handler.ServeHTTP would otherwise write \"Created\".\n\t\tw.WriteHeader(http.StatusCreated)\n\t}\n\twriteLockInfo(w, token, ld)\n\treturn 0, nil\n}\n\nfunc (h *Handler) handleUnlock(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\t// http://www.webdav.org/specs/rfc4918.html#HEADER_Lock-Token says that the\n\t// Lock-Token value is a Coded-URL. We strip its angle brackets.\n\tt := r.Header.Get(\"Lock-Token\")\n\tif len(t) < 2 || t[0] != '<' || t[len(t)-1] != '>' {\n\t\treturn http.StatusBadRequest, errInvalidLockToken\n\t}\n\tt = t[1 : len(t)-1]\n\n\tswitch err = h.LockSystem.Unlock(time.Now(), t); err {\n\tcase nil:\n\t\treturn http.StatusNoContent, err\n\tcase ErrForbidden:\n\t\treturn http.StatusForbidden, err\n\tcase ErrLocked:\n\t\treturn StatusLocked, err\n\tcase ErrNoSuchLock:\n\t\treturn http.StatusConflict, err\n\tdefault:\n\t\treturn http.StatusInternalServerError, err\n\t}\n}\n\nfunc (h *Handler) handlePropfind(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tctx := r.Context()\n\tfi, err := h.FileSystem.Stat(ctx, reqPath)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn http.StatusNotFound, err\n\t\t}\n\t\treturn http.StatusMethodNotAllowed, err\n\t}\n\tdepth := infiniteDepth\n\tif hdr := r.Header.Get(\"Depth\"); hdr != \"\" {\n\t\tdepth = parseDepth(hdr)\n\t\tif depth == invalidDepth {\n\t\t\treturn http.StatusBadRequest, errInvalidDepth\n\t\t}\n\t}\n\tpf, status, err := readPropfind(r.Body)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\n\tmw := multistatusWriter{w: w}\n\n\twalkFn := func(reqPath string, info os.FileInfo, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar pstats []Propstat\n\t\tif pf.Propname != nil {\n\t\t\tpnames, err := propnames(ctx, h.FileSystem, h.LockSystem, reqPath)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tpstat := Propstat{Status: http.StatusOK}\n\t\t\tfor _, xmlname := range pnames {\n\t\t\t\tpstat.Props = append(pstat.Props, Property{XMLName: xmlname})\n\t\t\t}\n\t\t\tpstats = append(pstats, pstat)\n\t\t} else if pf.Allprop != nil {\n\t\t\tpstats, err = allprop(ctx, h.FileSystem, h.LockSystem, reqPath, pf.Prop)\n\t\t} else {\n\t\t\tpstats, err = props(ctx, h.FileSystem, h.LockSystem, reqPath, pf.Prop)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thref := path.Join(h.Prefix, reqPath)\n\t\tif href != \"/\" && info.IsDir() {\n\t\t\thref += \"/\"\n\t\t}\n\t\treturn mw.write(makePropstatResponse(href, pstats))\n\t}\n\n\twalkErr := walkFS(ctx, h.FileSystem, depth, reqPath, fi, walkFn)\n\tcloseErr := mw.close()\n\tif walkErr != nil {\n\t\treturn http.StatusInternalServerError, walkErr\n\t}\n\tif closeErr != nil {\n\t\treturn http.StatusInternalServerError, closeErr\n\t}\n\treturn 0, nil\n}\n\nfunc (h *Handler) handleProppatch(w http.ResponseWriter, r *http.Request) (status int, err error) {\n\treqPath, status, err := h.stripPrefix(r.URL.Path)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\trelease, status, err := h.confirmLocks(r, reqPath, \"\")\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tdefer release()\n\n\tctx := r.Context()\n\n\tif _, err := h.FileSystem.Stat(ctx, reqPath); err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn http.StatusNotFound, err\n\t\t}\n\t\treturn http.StatusMethodNotAllowed, err\n\t}\n\tpatches, status, err := readProppatch(r.Body)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\tpstats, err := patch(ctx, h.FileSystem, h.LockSystem, reqPath, patches)\n\tif err != nil {\n\t\treturn http.StatusInternalServerError, err\n\t}\n\tmw := multistatusWriter{w: w}\n\twriteErr := mw.write(makePropstatResponse(r.URL.Path, pstats))\n\tcloseErr := mw.close()\n\tif writeErr != nil {\n\t\treturn http.StatusInternalServerError, writeErr\n\t}\n\tif closeErr != nil {\n\t\treturn http.StatusInternalServerError, closeErr\n\t}\n\treturn 0, nil\n}\n\nfunc makePropstatResponse(href string, pstats []Propstat) *response {\n\tresp := response{\n\t\tHref:     []string{(&url.URL{Path: href}).EscapedPath()},\n\t\tPropstat: make([]propstat, 0, len(pstats)),\n\t}\n\tfor _, p := range pstats {\n\t\tvar xmlErr *xmlError\n\t\tif p.XMLError != \"\" {\n\t\t\txmlErr = &xmlError{InnerXML: []byte(p.XMLError)}\n\t\t}\n\t\tresp.Propstat = append(resp.Propstat, propstat{\n\t\t\tStatus:              fmt.Sprintf(\"HTTP/1.1 %d %s\", p.Status, StatusText(p.Status)),\n\t\t\tProp:                p.Props,\n\t\t\tResponseDescription: p.ResponseDescription,\n\t\t\tError:               xmlErr,\n\t\t})\n\t}\n\treturn &resp\n}\n\nconst (\n\tinfiniteDepth = -1\n\tinvalidDepth  = -2\n)\n\n// parseDepth maps the strings \"0\", \"1\" and \"infinity\" to 0, 1 and\n// infiniteDepth. Parsing any other string returns invalidDepth.\n//\n// Different WebDAV methods have further constraints on valid depths:\n//\t- PROPFIND has no further restrictions, as per section 9.1.\n//\t- COPY accepts only \"0\" or \"infinity\", as per section 9.8.3.\n//\t- MOVE accepts only \"infinity\", as per section 9.9.2.\n//\t- LOCK accepts only \"0\" or \"infinity\", as per section 9.10.3.\n// These constraints are enforced by the handleXxx methods.\nfunc parseDepth(s string) int {\n\tswitch s {\n\tcase \"0\":\n\t\treturn 0\n\tcase \"1\":\n\t\treturn 1\n\tcase \"infinity\":\n\t\treturn infiniteDepth\n\t}\n\treturn invalidDepth\n}\n\n// http://www.webdav.org/specs/rfc4918.html#status.code.extensions.to.http11\nconst (\n\tStatusMulti               = 207\n\tStatusUnprocessableEntity = 422\n\tStatusLocked              = 423\n\tStatusFailedDependency    = 424\n\tStatusInsufficientStorage = 507\n)\n\nfunc StatusText(code int) string {\n\tswitch code {\n\tcase StatusMulti:\n\t\treturn \"Multi-Status\"\n\tcase StatusUnprocessableEntity:\n\t\treturn \"Unprocessable Entity\"\n\tcase StatusLocked:\n\t\treturn \"Locked\"\n\tcase StatusFailedDependency:\n\t\treturn \"Failed Dependency\"\n\tcase StatusInsufficientStorage:\n\t\treturn \"Insufficient Storage\"\n\t}\n\treturn http.StatusText(code)\n}\n\nvar (\n\terrDestinationEqualsSource = errors.New(\"webdav: destination equals source\")\n\terrDirectoryNotEmpty       = errors.New(\"webdav: directory not empty\")\n\terrInvalidDepth            = errors.New(\"webdav: invalid depth\")\n\terrInvalidDestination      = errors.New(\"webdav: invalid destination\")\n\terrInvalidIfHeader         = errors.New(\"webdav: invalid If header\")\n\terrInvalidLockInfo         = errors.New(\"webdav: invalid lock info\")\n\terrInvalidLockToken        = errors.New(\"webdav: invalid lock token\")\n\terrInvalidPropfind         = errors.New(\"webdav: invalid propfind\")\n\terrInvalidProppatch        = errors.New(\"webdav: invalid proppatch\")\n\terrInvalidResponse         = errors.New(\"webdav: invalid response\")\n\terrInvalidTimeout          = errors.New(\"webdav: invalid timeout\")\n\terrNoFileSystem            = errors.New(\"webdav: no file system\")\n\terrNoLockSystem            = errors.New(\"webdav: no lock system\")\n\terrNotADirectory           = errors.New(\"webdav: not a directory\")\n\terrPrefixMismatch          = errors.New(\"webdav: prefix mismatch\")\n\terrRecursionTooDeep        = errors.New(\"webdav: recursion too deep\")\n\terrUnsupportedLockInfo     = errors.New(\"webdav: unsupported lock info\")\n\terrUnsupportedMethod       = errors.New(\"webdav: unsupported method\")\n)\n"
  },
  {
    "path": "vendor/golang.org/x/net/webdav/xml.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage webdav\n\n// The XML encoding is covered by Section 14.\n// http://www.webdav.org/specs/rfc4918.html#xml.element.definitions\n\nimport (\n\t\"bytes\"\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"time\"\n\n\t// As of https://go-review.googlesource.com/#/c/12772/ which was submitted\n\t// in July 2015, this package uses an internal fork of the standard\n\t// library's encoding/xml package, due to changes in the way namespaces\n\t// were encoded. Such changes were introduced in the Go 1.5 cycle, but were\n\t// rolled back in response to https://github.com/golang/go/issues/11841\n\t//\n\t// However, this package's exported API, specifically the Property and\n\t// DeadPropsHolder types, need to refer to the standard library's version\n\t// of the xml.Name type, as code that imports this package cannot refer to\n\t// the internal version.\n\t//\n\t// This file therefore imports both the internal and external versions, as\n\t// ixml and xml, and converts between them.\n\t//\n\t// In the long term, this package should use the standard library's version\n\t// only, and the internal fork deleted, once\n\t// https://github.com/golang/go/issues/13400 is resolved.\n\tixml \"golang.org/x/net/webdav/internal/xml\"\n)\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_lockinfo\ntype lockInfo struct {\n\tXMLName   ixml.Name `xml:\"lockinfo\"`\n\tExclusive *struct{} `xml:\"lockscope>exclusive\"`\n\tShared    *struct{} `xml:\"lockscope>shared\"`\n\tWrite     *struct{} `xml:\"locktype>write\"`\n\tOwner     owner     `xml:\"owner\"`\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_owner\ntype owner struct {\n\tInnerXML string `xml:\",innerxml\"`\n}\n\nfunc readLockInfo(r io.Reader) (li lockInfo, status int, err error) {\n\tc := &countingReader{r: r}\n\tif err = ixml.NewDecoder(c).Decode(&li); err != nil {\n\t\tif err == io.EOF {\n\t\t\tif c.n == 0 {\n\t\t\t\t// An empty body means to refresh the lock.\n\t\t\t\t// http://www.webdav.org/specs/rfc4918.html#refreshing-locks\n\t\t\t\treturn lockInfo{}, 0, nil\n\t\t\t}\n\t\t\terr = errInvalidLockInfo\n\t\t}\n\t\treturn lockInfo{}, http.StatusBadRequest, err\n\t}\n\t// We only support exclusive (non-shared) write locks. In practice, these are\n\t// the only types of locks that seem to matter.\n\tif li.Exclusive == nil || li.Shared != nil || li.Write == nil {\n\t\treturn lockInfo{}, http.StatusNotImplemented, errUnsupportedLockInfo\n\t}\n\treturn li, 0, nil\n}\n\ntype countingReader struct {\n\tn int\n\tr io.Reader\n}\n\nfunc (c *countingReader) Read(p []byte) (int, error) {\n\tn, err := c.r.Read(p)\n\tc.n += n\n\treturn n, err\n}\n\nfunc writeLockInfo(w io.Writer, token string, ld LockDetails) (int, error) {\n\tdepth := \"infinity\"\n\tif ld.ZeroDepth {\n\t\tdepth = \"0\"\n\t}\n\ttimeout := ld.Duration / time.Second\n\treturn fmt.Fprintf(w, \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\\n\"+\n\t\t\"<D:prop xmlns:D=\\\"DAV:\\\"><D:lockdiscovery><D:activelock>\\n\"+\n\t\t\"\t<D:locktype><D:write/></D:locktype>\\n\"+\n\t\t\"\t<D:lockscope><D:exclusive/></D:lockscope>\\n\"+\n\t\t\"\t<D:depth>%s</D:depth>\\n\"+\n\t\t\"\t<D:owner>%s</D:owner>\\n\"+\n\t\t\"\t<D:timeout>Second-%d</D:timeout>\\n\"+\n\t\t\"\t<D:locktoken><D:href>%s</D:href></D:locktoken>\\n\"+\n\t\t\"\t<D:lockroot><D:href>%s</D:href></D:lockroot>\\n\"+\n\t\t\"</D:activelock></D:lockdiscovery></D:prop>\",\n\t\tdepth, ld.OwnerXML, timeout, escape(token), escape(ld.Root),\n\t)\n}\n\nfunc escape(s string) string {\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '\"', '&', '\\'', '<', '>':\n\t\t\tb := bytes.NewBuffer(nil)\n\t\t\tixml.EscapeText(b, []byte(s))\n\t\t\treturn b.String()\n\t\t}\n\t}\n\treturn s\n}\n\n// Next returns the next token, if any, in the XML stream of d.\n// RFC 4918 requires to ignore comments, processing instructions\n// and directives.\n// http://www.webdav.org/specs/rfc4918.html#property_values\n// http://www.webdav.org/specs/rfc4918.html#xml-extensibility\nfunc next(d *ixml.Decoder) (ixml.Token, error) {\n\tfor {\n\t\tt, err := d.Token()\n\t\tif err != nil {\n\t\t\treturn t, err\n\t\t}\n\t\tswitch t.(type) {\n\t\tcase ixml.Comment, ixml.Directive, ixml.ProcInst:\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn t, nil\n\t\t}\n\t}\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_prop (for propfind)\ntype propfindProps []xml.Name\n\n// UnmarshalXML appends the property names enclosed within start to pn.\n//\n// It returns an error if start does not contain any properties or if\n// properties contain values. Character data between properties is ignored.\nfunc (pn *propfindProps) UnmarshalXML(d *ixml.Decoder, start ixml.StartElement) error {\n\tfor {\n\t\tt, err := next(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch t.(type) {\n\t\tcase ixml.EndElement:\n\t\t\tif len(*pn) == 0 {\n\t\t\t\treturn fmt.Errorf(\"%s must not be empty\", start.Name.Local)\n\t\t\t}\n\t\t\treturn nil\n\t\tcase ixml.StartElement:\n\t\t\tname := t.(ixml.StartElement).Name\n\t\t\tt, err = next(d)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif _, ok := t.(ixml.EndElement); !ok {\n\t\t\t\treturn fmt.Errorf(\"unexpected token %T\", t)\n\t\t\t}\n\t\t\t*pn = append(*pn, xml.Name(name))\n\t\t}\n\t}\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propfind\ntype propfind struct {\n\tXMLName  ixml.Name     `xml:\"DAV: propfind\"`\n\tAllprop  *struct{}     `xml:\"DAV: allprop\"`\n\tPropname *struct{}     `xml:\"DAV: propname\"`\n\tProp     propfindProps `xml:\"DAV: prop\"`\n\tInclude  propfindProps `xml:\"DAV: include\"`\n}\n\nfunc readPropfind(r io.Reader) (pf propfind, status int, err error) {\n\tc := countingReader{r: r}\n\tif err = ixml.NewDecoder(&c).Decode(&pf); err != nil {\n\t\tif err == io.EOF {\n\t\t\tif c.n == 0 {\n\t\t\t\t// An empty body means to propfind allprop.\n\t\t\t\t// http://www.webdav.org/specs/rfc4918.html#METHOD_PROPFIND\n\t\t\t\treturn propfind{Allprop: new(struct{})}, 0, nil\n\t\t\t}\n\t\t\terr = errInvalidPropfind\n\t\t}\n\t\treturn propfind{}, http.StatusBadRequest, err\n\t}\n\n\tif pf.Allprop == nil && pf.Include != nil {\n\t\treturn propfind{}, http.StatusBadRequest, errInvalidPropfind\n\t}\n\tif pf.Allprop != nil && (pf.Prop != nil || pf.Propname != nil) {\n\t\treturn propfind{}, http.StatusBadRequest, errInvalidPropfind\n\t}\n\tif pf.Prop != nil && pf.Propname != nil {\n\t\treturn propfind{}, http.StatusBadRequest, errInvalidPropfind\n\t}\n\tif pf.Propname == nil && pf.Allprop == nil && pf.Prop == nil {\n\t\treturn propfind{}, http.StatusBadRequest, errInvalidPropfind\n\t}\n\treturn pf, 0, nil\n}\n\n// Property represents a single DAV resource property as defined in RFC 4918.\n// See http://www.webdav.org/specs/rfc4918.html#data.model.for.resource.properties\ntype Property struct {\n\t// XMLName is the fully qualified name that identifies this property.\n\tXMLName xml.Name\n\n\t// Lang is an optional xml:lang attribute.\n\tLang string `xml:\"xml:lang,attr,omitempty\"`\n\n\t// InnerXML contains the XML representation of the property value.\n\t// See http://www.webdav.org/specs/rfc4918.html#property_values\n\t//\n\t// Property values of complex type or mixed-content must have fully\n\t// expanded XML namespaces or be self-contained with according\n\t// XML namespace declarations. They must not rely on any XML\n\t// namespace declarations within the scope of the XML document,\n\t// even including the DAV: namespace.\n\tInnerXML []byte `xml:\",innerxml\"`\n}\n\n// ixmlProperty is the same as the Property type except it holds an ixml.Name\n// instead of an xml.Name.\ntype ixmlProperty struct {\n\tXMLName  ixml.Name\n\tLang     string `xml:\"xml:lang,attr,omitempty\"`\n\tInnerXML []byte `xml:\",innerxml\"`\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_error\n// See multistatusWriter for the \"D:\" namespace prefix.\ntype xmlError struct {\n\tXMLName  ixml.Name `xml:\"D:error\"`\n\tInnerXML []byte    `xml:\",innerxml\"`\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat\n// See multistatusWriter for the \"D:\" namespace prefix.\ntype propstat struct {\n\tProp                []Property `xml:\"D:prop>_ignored_\"`\n\tStatus              string     `xml:\"D:status\"`\n\tError               *xmlError  `xml:\"D:error\"`\n\tResponseDescription string     `xml:\"D:responsedescription,omitempty\"`\n}\n\n// ixmlPropstat is the same as the propstat type except it holds an ixml.Name\n// instead of an xml.Name.\ntype ixmlPropstat struct {\n\tProp                []ixmlProperty `xml:\"D:prop>_ignored_\"`\n\tStatus              string         `xml:\"D:status\"`\n\tError               *xmlError      `xml:\"D:error\"`\n\tResponseDescription string         `xml:\"D:responsedescription,omitempty\"`\n}\n\n// MarshalXML prepends the \"D:\" namespace prefix on properties in the DAV: namespace\n// before encoding. See multistatusWriter.\nfunc (ps propstat) MarshalXML(e *ixml.Encoder, start ixml.StartElement) error {\n\t// Convert from a propstat to an ixmlPropstat.\n\tixmlPs := ixmlPropstat{\n\t\tProp:                make([]ixmlProperty, len(ps.Prop)),\n\t\tStatus:              ps.Status,\n\t\tError:               ps.Error,\n\t\tResponseDescription: ps.ResponseDescription,\n\t}\n\tfor k, prop := range ps.Prop {\n\t\tixmlPs.Prop[k] = ixmlProperty{\n\t\t\tXMLName:  ixml.Name(prop.XMLName),\n\t\t\tLang:     prop.Lang,\n\t\t\tInnerXML: prop.InnerXML,\n\t\t}\n\t}\n\n\tfor k, prop := range ixmlPs.Prop {\n\t\tif prop.XMLName.Space == \"DAV:\" {\n\t\t\tprop.XMLName = ixml.Name{Space: \"\", Local: \"D:\" + prop.XMLName.Local}\n\t\t\tixmlPs.Prop[k] = prop\n\t\t}\n\t}\n\t// Distinct type to avoid infinite recursion of MarshalXML.\n\ttype newpropstat ixmlPropstat\n\treturn e.EncodeElement(newpropstat(ixmlPs), start)\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_response\n// See multistatusWriter for the \"D:\" namespace prefix.\ntype response struct {\n\tXMLName             ixml.Name  `xml:\"D:response\"`\n\tHref                []string   `xml:\"D:href\"`\n\tPropstat            []propstat `xml:\"D:propstat\"`\n\tStatus              string     `xml:\"D:status,omitempty\"`\n\tError               *xmlError  `xml:\"D:error\"`\n\tResponseDescription string     `xml:\"D:responsedescription,omitempty\"`\n}\n\n// MultistatusWriter marshals one or more Responses into a XML\n// multistatus response.\n// See http://www.webdav.org/specs/rfc4918.html#ELEMENT_multistatus\n// TODO(rsto, mpl): As a workaround, the \"D:\" namespace prefix, defined as\n// \"DAV:\" on this element, is prepended on the nested response, as well as on all\n// its nested elements. All property names in the DAV: namespace are prefixed as\n// well. This is because some versions of Mini-Redirector (on windows 7) ignore\n// elements with a default namespace (no prefixed namespace). A less intrusive fix\n// should be possible after golang.org/cl/11074. See https://golang.org/issue/11177\ntype multistatusWriter struct {\n\t// ResponseDescription contains the optional responsedescription\n\t// of the multistatus XML element. Only the latest content before\n\t// close will be emitted. Empty response descriptions are not\n\t// written.\n\tresponseDescription string\n\n\tw   http.ResponseWriter\n\tenc *ixml.Encoder\n}\n\n// Write validates and emits a DAV response as part of a multistatus response\n// element.\n//\n// It sets the HTTP status code of its underlying http.ResponseWriter to 207\n// (Multi-Status) and populates the Content-Type header. If r is the\n// first, valid response to be written, Write prepends the XML representation\n// of r with a multistatus tag. Callers must call close after the last response\n// has been written.\nfunc (w *multistatusWriter) write(r *response) error {\n\tswitch len(r.Href) {\n\tcase 0:\n\t\treturn errInvalidResponse\n\tcase 1:\n\t\tif len(r.Propstat) > 0 != (r.Status == \"\") {\n\t\t\treturn errInvalidResponse\n\t\t}\n\tdefault:\n\t\tif len(r.Propstat) > 0 || r.Status == \"\" {\n\t\t\treturn errInvalidResponse\n\t\t}\n\t}\n\terr := w.writeHeader()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn w.enc.Encode(r)\n}\n\n// writeHeader writes a XML multistatus start element on w's underlying\n// http.ResponseWriter and returns the result of the write operation.\n// After the first write attempt, writeHeader becomes a no-op.\nfunc (w *multistatusWriter) writeHeader() error {\n\tif w.enc != nil {\n\t\treturn nil\n\t}\n\tw.w.Header().Add(\"Content-Type\", \"text/xml; charset=utf-8\")\n\tw.w.WriteHeader(StatusMulti)\n\t_, err := fmt.Fprintf(w.w, `<?xml version=\"1.0\" encoding=\"UTF-8\"?>`)\n\tif err != nil {\n\t\treturn err\n\t}\n\tw.enc = ixml.NewEncoder(w.w)\n\treturn w.enc.EncodeToken(ixml.StartElement{\n\t\tName: ixml.Name{\n\t\t\tSpace: \"DAV:\",\n\t\t\tLocal: \"multistatus\",\n\t\t},\n\t\tAttr: []ixml.Attr{{\n\t\t\tName:  ixml.Name{Space: \"xmlns\", Local: \"D\"},\n\t\t\tValue: \"DAV:\",\n\t\t}},\n\t})\n}\n\n// Close completes the marshalling of the multistatus response. It returns\n// an error if the multistatus response could not be completed. If both the\n// return value and field enc of w are nil, then no multistatus response has\n// been written.\nfunc (w *multistatusWriter) close() error {\n\tif w.enc == nil {\n\t\treturn nil\n\t}\n\tvar end []ixml.Token\n\tif w.responseDescription != \"\" {\n\t\tname := ixml.Name{Space: \"DAV:\", Local: \"responsedescription\"}\n\t\tend = append(end,\n\t\t\tixml.StartElement{Name: name},\n\t\t\tixml.CharData(w.responseDescription),\n\t\t\tixml.EndElement{Name: name},\n\t\t)\n\t}\n\tend = append(end, ixml.EndElement{\n\t\tName: ixml.Name{Space: \"DAV:\", Local: \"multistatus\"},\n\t})\n\tfor _, t := range end {\n\t\terr := w.enc.EncodeToken(t)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn w.enc.Flush()\n}\n\nvar xmlLangName = ixml.Name{Space: \"http://www.w3.org/XML/1998/namespace\", Local: \"lang\"}\n\nfunc xmlLang(s ixml.StartElement, d string) string {\n\tfor _, attr := range s.Attr {\n\t\tif attr.Name == xmlLangName {\n\t\t\treturn attr.Value\n\t\t}\n\t}\n\treturn d\n}\n\ntype xmlValue []byte\n\nfunc (v *xmlValue) UnmarshalXML(d *ixml.Decoder, start ixml.StartElement) error {\n\t// The XML value of a property can be arbitrary, mixed-content XML.\n\t// To make sure that the unmarshalled value contains all required\n\t// namespaces, we encode all the property value XML tokens into a\n\t// buffer. This forces the encoder to redeclare any used namespaces.\n\tvar b bytes.Buffer\n\te := ixml.NewEncoder(&b)\n\tfor {\n\t\tt, err := next(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif e, ok := t.(ixml.EndElement); ok && e.Name == start.Name {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.EncodeToken(t); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\terr := e.Flush()\n\tif err != nil {\n\t\treturn err\n\t}\n\t*v = b.Bytes()\n\treturn nil\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_prop (for proppatch)\ntype proppatchProps []Property\n\n// UnmarshalXML appends the property names and values enclosed within start\n// to ps.\n//\n// An xml:lang attribute that is defined either on the DAV:prop or property\n// name XML element is propagated to the property's Lang field.\n//\n// UnmarshalXML returns an error if start does not contain any properties or if\n// property values contain syntactically incorrect XML.\nfunc (ps *proppatchProps) UnmarshalXML(d *ixml.Decoder, start ixml.StartElement) error {\n\tlang := xmlLang(start, \"\")\n\tfor {\n\t\tt, err := next(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch elem := t.(type) {\n\t\tcase ixml.EndElement:\n\t\t\tif len(*ps) == 0 {\n\t\t\t\treturn fmt.Errorf(\"%s must not be empty\", start.Name.Local)\n\t\t\t}\n\t\t\treturn nil\n\t\tcase ixml.StartElement:\n\t\t\tp := Property{\n\t\t\t\tXMLName: xml.Name(t.(ixml.StartElement).Name),\n\t\t\t\tLang:    xmlLang(t.(ixml.StartElement), lang),\n\t\t\t}\n\t\t\terr = d.DecodeElement(((*xmlValue)(&p.InnerXML)), &elem)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*ps = append(*ps, p)\n\t\t}\n\t}\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_set\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_remove\ntype setRemove struct {\n\tXMLName ixml.Name\n\tLang    string         `xml:\"xml:lang,attr,omitempty\"`\n\tProp    proppatchProps `xml:\"DAV: prop\"`\n}\n\n// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propertyupdate\ntype propertyupdate struct {\n\tXMLName   ixml.Name   `xml:\"DAV: propertyupdate\"`\n\tLang      string      `xml:\"xml:lang,attr,omitempty\"`\n\tSetRemove []setRemove `xml:\",any\"`\n}\n\nfunc readProppatch(r io.Reader) (patches []Proppatch, status int, err error) {\n\tvar pu propertyupdate\n\tif err = ixml.NewDecoder(r).Decode(&pu); err != nil {\n\t\treturn nil, http.StatusBadRequest, err\n\t}\n\tfor _, op := range pu.SetRemove {\n\t\tremove := false\n\t\tswitch op.XMLName {\n\t\tcase ixml.Name{Space: \"DAV:\", Local: \"set\"}:\n\t\t\t// No-op.\n\t\tcase ixml.Name{Space: \"DAV:\", Local: \"remove\"}:\n\t\t\tfor _, p := range op.Prop {\n\t\t\t\tif len(p.InnerXML) > 0 {\n\t\t\t\t\treturn nil, http.StatusBadRequest, errInvalidProppatch\n\t\t\t\t}\n\t\t\t}\n\t\t\tremove = true\n\t\tdefault:\n\t\t\treturn nil, http.StatusBadRequest, errInvalidProppatch\n\t\t}\n\t\tpatches = append(patches, Proppatch{Remove: remove, Props: op.Prop})\n\t}\n\treturn patches, 0, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/.gitignore",
    "content": "_obj/\nunix.test\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/README.md",
    "content": "# Building `sys/unix`\n\nThe sys/unix package provides access to the raw system call interface of the\nunderlying operating system. See: https://godoc.org/golang.org/x/sys/unix\n\nPorting Go to a new architecture/OS combination or adding syscalls, types, or\nconstants to an existing architecture/OS pair requires some manual effort;\nhowever, there are tools that automate much of the process.\n\n## Build Systems\n\nThere are currently two ways we generate the necessary files. We are currently\nmigrating the build system to use containers so the builds are reproducible.\nThis is being done on an OS-by-OS basis. Please update this documentation as\ncomponents of the build system change.\n\n### Old Build System (currently for `GOOS != \"linux\"`)\n\nThe old build system generates the Go files based on the C header files\npresent on your system. This means that files\nfor a given GOOS/GOARCH pair must be generated on a system with that OS and\narchitecture. This also means that the generated code can differ from system\nto system, based on differences in the header files.\n\nTo avoid this, if you are using the old build system, only generate the Go\nfiles on an installation with unmodified header files. It is also important to\nkeep track of which version of the OS the files were generated from (ex.\nDarwin 14 vs Darwin 15). This makes it easier to track the progress of changes\nand have each OS upgrade correspond to a single change.\n\nTo build the files for your current OS and architecture, make sure GOOS and\nGOARCH are set correctly and run `mkall.sh`. This will generate the files for\nyour specific system. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go\n\n### New Build System (currently for `GOOS == \"linux\"`)\n\nThe new build system uses a Docker container to generate the go files directly\nfrom source checkouts of the kernel and various system libraries. This means\nthat on any platform that supports Docker, all the files using the new build\nsystem can be generated at once, and generated files will not change based on\nwhat the person running the scripts has installed on their computer.\n\nThe OS specific files for the new build system are located in the `${GOOS}`\ndirectory, and the build is coordinated by the `${GOOS}/mkall.go` program. When\nthe kernel or system library updates, modify the Dockerfile at\n`${GOOS}/Dockerfile` to checkout the new release of the source.\n\nTo build all the files under the new build system, you must be on an amd64/Linux\nsystem and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will\nthen generate all of the files for all of the GOOS/GOARCH pairs in the new build\nsystem. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go, docker\n\n## Component files\n\nThis section describes the various files used in the code generation process.\nIt also contains instructions on how to modify these files to add a new\narchitecture/OS or to add additional syscalls, types, or constants. Note that\nif you are using the new build system, the scripts/programs cannot be called normally.\nThey must be called from within the docker container.\n\n### asm files\n\nThe hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system\ncall dispatch. There are three entry points:\n```\n  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n  func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n  func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n```\nThe first and second are the standard ones; they differ only in how many\narguments can be passed to the kernel. The third is for low-level use by the\nForkExec wrapper. Unlike the first two, it does not call into the scheduler to\nlet it know that a system call is running.\n\nWhen porting Go to an new architecture/OS, this file must be implemented for\neach GOOS/GOARCH pair.\n\n### mksysnum\n\nMksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go`\nfor the old system). This program takes in a list of header files containing the\nsyscall number declarations and parses them to produce the corresponding list of\nGo numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated\nconstants.\n\nAdding new syscall numbers is mostly done by running the build on a sufficiently\nnew installation of the target OS (or updating the source checkouts for the\nnew build system). However, depending on the OS, you make need to update the\nparsing in mksysnum.\n\n### mksyscall.go\n\nThe `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are\nhand-written Go files which implement system calls (for unix, the specific OS,\nor the specific OS/Architecture pair respectively) that need special handling\nand list `//sys` comments giving prototypes for ones that can be generated.\n\nThe mksyscall.go program takes the `//sys` and `//sysnb` comments and converts\nthem into syscalls. This requires the name of the prototype in the comment to\nmatch a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function\nprototype can be exported (capitalized) or not.\n\nAdding a new syscall often just requires adding a new `//sys` function prototype\nwith the desired arguments and a capitalized name so it is exported. However, if\nyou want the interface to the syscall to be different, often one will make an\nunexported `//sys` prototype, an then write a custom wrapper in\n`syscall_${GOOS}.go`.\n\n### types files\n\nFor each OS, there is a hand-written Go file at `${GOOS}/types.go` (or\n`types_${GOOS}.go` on the old system). This file includes standard C headers and\ncreates Go type aliases to the corresponding C types. The file is then fed\nthrough godef to get the Go compatible definitions. Finally, the generated code\nis fed though mkpost.go to format the code correctly and remove any hidden or\nprivate identifiers. This cleaned-up code is written to\n`ztypes_${GOOS}_${GOARCH}.go`.\n\nThe hardest part about preparing this file is figuring out which headers to\ninclude and which symbols need to be `#define`d to get the actual data\nstructures that pass through to the kernel system calls. Some C libraries\npreset alternate versions for binary compatibility and translate them on the\nway in and out of system calls, but there is almost always a `#define` that can\nget the real ones.\nSee `types_darwin.go` and `linux/types.go` for examples.\n\nTo add a new type, add in the necessary include statement at the top of the\nfile (if it is not already there) and add in a type alias line. Note that if\nyour type is significantly different on different architectures, you may need\nsome `#if/#elif` macros in your include statements.\n\n### mkerrors.sh\n\nThis script is used to generate the system's various constants. This doesn't\njust include the error numbers and error strings, but also the signal numbers\nan a wide variety of miscellaneous constants. The constants come from the list\nof include files in the `includes_${uname}` variable. A regex then picks out\nthe desired `#define` statements, and generates the corresponding Go constants.\nThe error numbers and strings are generated from `#include <errno.h>`, and the\nsignal numbers and strings are generated from `#include <signal.h>`. All of\nthese constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,\n`_errors.c`, which prints out all the constants.\n\nTo add a constant, add the header that includes it to the appropriate variable.\nThen, edit the regex (if necessary) to match the desired constant. Avoid making\nthe regex too broad to avoid matching unintended constants.\n\n\n## Generated files\n\n### `zerror_${GOOS}_${GOARCH}.go`\n\nA file containing all of the system's generated error numbers, error strings,\nsignal numbers, and constants. Generated by `mkerrors.sh` (see above).\n\n### `zsyscall_${GOOS}_${GOARCH}.go`\n\nA file containing all the generated syscalls for a specific GOOS and GOARCH.\nGenerated by `mksyscall.go` (see above).\n\n### `zsysnum_${GOOS}_${GOARCH}.go`\n\nA list of numeric constants for all the syscall number of the specific GOOS\nand GOARCH. Generated by mksysnum (see above).\n\n### `ztypes_${GOOS}_${GOARCH}.go`\n\nA file containing Go types for passing into (or returning from) syscalls.\nGenerated by godefs and the types file (see above).\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/affinity_linux.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// CPU affinity functions\n\npackage unix\n\nimport (\n\t\"math/bits\"\n\t\"unsafe\"\n)\n\nconst cpuSetSize = _CPU_SETSIZE / _NCPUBITS\n\n// CPUSet represents a CPU affinity mask.\ntype CPUSet [cpuSetSize]cpuMask\n\nfunc schedAffinity(trap uintptr, pid int, set *CPUSet) error {\n\t_, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))\n\tif e != 0 {\n\t\treturn errnoErr(e)\n\t}\n\treturn nil\n}\n\n// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedGetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)\n}\n\n// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedSetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)\n}\n\n// Zero clears the set s, so that it contains no CPUs.\nfunc (s *CPUSet) Zero() {\n\tfor i := range s {\n\t\ts[i] = 0\n\t}\n}\n\nfunc cpuBitsIndex(cpu int) int {\n\treturn cpu / _NCPUBITS\n}\n\nfunc cpuBitsMask(cpu int) cpuMask {\n\treturn cpuMask(1 << (uint(cpu) % _NCPUBITS))\n}\n\n// Set adds cpu to the set s.\nfunc (s *CPUSet) Set(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] |= cpuBitsMask(cpu)\n\t}\n}\n\n// Clear removes cpu from the set s.\nfunc (s *CPUSet) Clear(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] &^= cpuBitsMask(cpu)\n\t}\n}\n\n// IsSet reports whether cpu is in the set s.\nfunc (s *CPUSet) IsSet(cpu int) bool {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\treturn s[i]&cpuBitsMask(cpu) != 0\n\t}\n\treturn false\n}\n\n// Count returns the number of CPUs in the set s.\nfunc (s *CPUSet) Count() int {\n\tc := 0\n\tfor _, b := range s {\n\t\tc += bits.OnesCount64(uint64(b))\n\t}\n\treturn c\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n// +build go1.9\n\npackage unix\n\nimport \"syscall\"\n\ntype Signal = syscall.Signal\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_aix_ppc64.s",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go\n//\n\nTEXT ·syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·syscall6(SB)\n\nTEXT ·rawSyscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_darwin_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, Darwin\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_darwin_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for AMD64, Darwin\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_darwin_arm.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n// +build arm,darwin\n\n#include \"textflag.h\"\n\n//\n// System call support for ARM, Darwin\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_darwin_arm64.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n// +build arm64,darwin\n\n#include \"textflag.h\"\n\n//\n// System call support for AMD64, Darwin\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for AMD64, DragonFly\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_freebsd_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, FreeBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for AMD64, FreeBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_freebsd_arm.s",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for ARM, FreeBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for ARM64, FreeBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for 386, Linux\n//\n\n// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80\n// instead of the glibc-specific \"CALL 0x10(GS)\".\n#define INVOKE_SYSCALL\tINT\t$0x80\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tCALL\truntime·entersyscall(SB)\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tRET\n\nTEXT ·socketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·socketcall(SB)\n\nTEXT ·rawsocketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·rawsocketcall(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for AMD64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tRET\n\nTEXT ·gettimeofday(SB),NOSPLIT,$0-16\n\tJMP\tsyscall·gettimeofday(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for arm, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tBL\truntime·entersyscall(SB)\n\tMOVW\ttrap+0(FP), R7\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tMOVW\t$0, R3\n\tMOVW\t$0, R4\n\tMOVW\t$0, R5\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ttrap+0(FP), R7\t// syscall entry\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tRET\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tB\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm64.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build arm64\n// +build !gccgo\n\n#include \"textflag.h\"\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\t// r1\n\tMOVD\tR1, r2+40(FP)\t// r2\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\n\tMOVD\tR1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mips64x.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build mips64 mips64le\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for mips64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mipsx.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build mips mipsle\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for mips, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP syscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·Syscall6(SB)\n\nTEXT ·Syscall9(SB),NOSPLIT,$0-52\n\tJMP syscall·Syscall9(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tJAL\truntime·entersyscall(SB)\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\tR0, R7\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\t// r1\n\tMOVW\tR3, r2+20(FP)\t// r2\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP syscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\n\tMOVW\tR3, r2+20(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build ppc64 ppc64le\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_riscv64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build riscv64,!gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for linux/riscv64.\n//\n// Where available, just jump to package syscall's implementation of\n// these functions.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\t$0, A3\n\tMOV\t$0, A4\n\tMOV\t$0, A5\n\tMOV\t$0, A6\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\t// r1\n\tMOV\tA1, r2+40(FP)\t// r2\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\tZERO, A3\n\tMOV\tZERO, A4\n\tMOV\tZERO, A5\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\n\tMOV\tA1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_s390x.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build s390x\n// +build linux\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for s390x, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_netbsd_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, NetBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for AMD64, NetBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_netbsd_arm.s",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for ARM, NetBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for ARM64, NetBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for AMD64, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_arm.s",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for ARM, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System call support for arm64, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_solaris_amd64.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !gccgo\n\n#include \"textflag.h\"\n\n//\n// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go\n//\n\nTEXT ·sysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·sysvicall6(SB)\n\nTEXT ·rawSysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSysvicall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bluetooth_linux.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Bluetooth sockets and messages\n\npackage unix\n\n// Bluetooth Protocols\nconst (\n\tBTPROTO_L2CAP  = 0\n\tBTPROTO_HCI    = 1\n\tBTPROTO_SCO    = 2\n\tBTPROTO_RFCOMM = 3\n\tBTPROTO_BNEP   = 4\n\tBTPROTO_CMTP   = 5\n\tBTPROTO_HIDP   = 6\n\tBTPROTO_AVDTP  = 7\n)\n\nconst (\n\tHCI_CHANNEL_RAW     = 0\n\tHCI_CHANNEL_USER    = 1\n\tHCI_CHANNEL_MONITOR = 2\n\tHCI_CHANNEL_CONTROL = 3\n)\n\n// Socketoption Level\nconst (\n\tSOL_BLUETOOTH = 0x112\n\tSOL_HCI       = 0x0\n\tSOL_L2CAP     = 0x6\n\tSOL_RFCOMM    = 0x12\n\tSOL_SCO       = 0x11\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/cap_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build freebsd\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c\n\nconst (\n\t// This is the version of CapRights this package understands. See C implementation for parallels.\n\tcapRightsGoVersion = CAP_RIGHTS_VERSION_00\n\tcapArSizeMin       = CAP_RIGHTS_VERSION_00 + 2\n\tcapArSizeMax       = capRightsGoVersion + 2\n)\n\nvar (\n\tbit2idx = []int{\n\t\t-1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,\n\t\t4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n\t}\n)\n\nfunc capidxbit(right uint64) int {\n\treturn int((right >> 57) & 0x1f)\n}\n\nfunc rightToIndex(right uint64) (int, error) {\n\tidx := capidxbit(right)\n\tif idx < 0 || idx >= len(bit2idx) {\n\t\treturn -2, fmt.Errorf(\"index for right 0x%x out of range\", right)\n\t}\n\treturn bit2idx[idx], nil\n}\n\nfunc caprver(right uint64) int {\n\treturn int(right >> 62)\n}\n\nfunc capver(rights *CapRights) int {\n\treturn caprver(rights.Rights[0])\n}\n\nfunc caparsize(rights *CapRights) int {\n\treturn capver(rights) + 2\n}\n\n// CapRightsSet sets the permissions in setrights in rights.\nfunc CapRightsSet(rights *CapRights, setrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] |= right\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsClear clears the permissions in clearrights from rights.\nfunc CapRightsClear(rights *CapRights, clearrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vclear()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range clearrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsIsSet checks whether all the permissions in setrights are present in rights.\nfunc CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {\n\t// This is essentially a copy of cap_rights_is_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn false, fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn false, errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn false, errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn false, errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn false, errors.New(\"index mismatch\")\n\t\t}\n\t\tif (rights.Rights[i] & right) != right {\n\t\t\treturn false, nil\n\t\t}\n\t}\n\n\treturn true, nil\n}\n\nfunc capright(idx uint64, bit uint64) uint64 {\n\treturn ((1 << (57 + idx)) | bit)\n}\n\n// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights.\n// See man cap_rights_init(3) and rights(4).\nfunc CapRightsInit(rights []uint64) (*CapRights, error) {\n\tvar r CapRights\n\tr.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0)\n\tr.Rights[1] = capright(1, 0)\n\n\terr := CapRightsSet(&r, rights)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &r, nil\n}\n\n// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights.\n// The capability rights on fd can never be increased by CapRightsLimit.\n// See man cap_rights_limit(2) and rights(4).\nfunc CapRightsLimit(fd uintptr, rights *CapRights) error {\n\treturn capRightsLimit(int(fd), rights)\n}\n\n// CapRightsGet returns a CapRights structure containing the operations permitted on fd.\n// See man cap_rights_get(3) and rights(4).\nfunc CapRightsGet(fd uintptr) (*CapRights, error) {\n\tr, err := CapRightsInit(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = capRightsGet(capRightsGoVersion, int(fd), r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn r, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/constants.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\npackage unix\n\nconst (\n\tR_OK = 0x4\n\tW_OK = 0x2\n\tX_OK = 0x1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix\n// +build ppc\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0xffff)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn uint64(((major) << 16) | (minor))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix\n// +build ppc64\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x3fffffff00000000) >> 32)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32((dev & 0x00000000ffffffff) >> 0)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tvar DEVNO64 uint64\n\tDEVNO64 = 0x8000000000000000\n\treturn ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_darwin.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Darwin's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a Darwin device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 24) & 0xff)\n}\n\n// Minor returns the minor component of a Darwin device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffffff)\n}\n\n// Mkdev returns a Darwin device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 24) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_dragonfly.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Dragonfly's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a DragonFlyBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a DragonFlyBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a DragonFlyBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in FreeBSD's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a FreeBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a FreeBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a FreeBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_linux.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by the Linux kernel and glibc.\n//\n// The information below is extracted and adapted from bits/sysmacros.h in the\n// glibc sources:\n//\n// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's\n// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major\n// number and m is a hex digit of the minor number. This is backward compatible\n// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also\n// backward compatible with the Linux kernel, which for some architectures uses\n// 32-bit dev_t, encoded as mmmM MMmm.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\tmajor := uint32((dev & 0x00000000000fff00) >> 8)\n\tmajor |= uint32((dev & 0xfffff00000000000) >> 32)\n\treturn major\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x00000000000000ff) >> 0)\n\tminor |= uint32((dev & 0x00000ffffff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) & 0x00000fff) << 8\n\tdev |= (uint64(major) & 0xfffff000) << 32\n\tdev |= (uint64(minor) & 0x000000ff) << 0\n\tdev |= (uint64(minor) & 0xffffff00) << 12\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_netbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in NetBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a NetBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x000fff00) >> 8)\n}\n\n// Minor returns the minor component of a NetBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xfff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a NetBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x000fff00\n\tdev |= (uint64(minor) << 12) & 0xfff00000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_openbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in OpenBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of an OpenBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x0000ff00) >> 8)\n}\n\n// Minor returns the minor component of an OpenBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xffff0000) >> 8)\n\treturn minor\n}\n\n// Mkdev returns an OpenBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x0000ff00\n\tdev |= (uint64(minor) << 8) & 0xffff0000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dirent.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\npackage unix\n\nimport \"unsafe\"\n\n// readInt returns the size-bytes unsigned integer in native byte order at offset off.\nfunc readInt(b []byte, off, size uintptr) (u uint64, ok bool) {\n\tif len(b) < int(off+size) {\n\t\treturn 0, false\n\t}\n\tif isBigEndian {\n\t\treturn readIntBE(b[off:], size), true\n\t}\n\treturn readIntLE(b[off:], size), true\n}\n\nfunc readIntBE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[1]) | uint64(b[0])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |\n\t\t\tuint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\nfunc readIntLE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |\n\t\t\tuint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\n// ParseDirent parses up to max directory entries in buf,\n// appending the names to names. It returns the number of\n// bytes consumed from buf, the number of entries added\n// to names, and the new names slice.\nfunc ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) {\n\toriglen := len(buf)\n\tcount = 0\n\tfor max != 0 && len(buf) > 0 {\n\t\treclen, ok := direntReclen(buf)\n\t\tif !ok || reclen > uint64(len(buf)) {\n\t\t\treturn origlen, count, names\n\t\t}\n\t\trec := buf[:reclen]\n\t\tbuf = buf[reclen:]\n\t\tino, ok := direntIno(rec)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tif ino == 0 { // File absent in directory.\n\t\t\tcontinue\n\t\t}\n\t\tconst namoff = uint64(unsafe.Offsetof(Dirent{}.Name))\n\t\tnamlen, ok := direntNamlen(rec)\n\t\tif !ok || namoff+namlen > uint64(len(rec)) {\n\t\t\tbreak\n\t\t}\n\t\tname := rec[namoff : namoff+namlen]\n\t\tfor i, c := range name {\n\t\t\tif c == 0 {\n\t\t\t\tname = name[:i]\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Check for useless names before allocating a string.\n\t\tif string(name) == \".\" || string(name) == \"..\" {\n\t\t\tcontinue\n\t\t}\n\t\tmax--\n\t\tcount++\n\t\tnames = append(names, string(name))\n\t}\n\treturn origlen - len(buf), count, names\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_big.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n// +build ppc64 s390x mips mips64\n\npackage unix\n\nconst isBigEndian = true\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_little.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le riscv64\n\npackage unix\n\nconst isBigEndian = false\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/env_unix.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\n// Unix environment variables.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/errors_freebsd_386.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep\n// them here for backwards compatibility.\n\npackage unix\n\nconst (\n\tIFF_SMART                         = 0x20\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BSC                           = 0x53\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_IPXIP                         = 0xf9\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf6\n\tIFT_PFSYNC                        = 0xf7\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIPPROTO_MAXID                     = 0x34\n\tIPV6_FAITH                        = 0x1d\n\tIP_FAITH                          = 0x16\n\tMAP_NORESERVE                     = 0x40\n\tMAP_RENAME                        = 0x20\n\tNET_RT_MAXID                      = 0x6\n\tRTF_PRCLONING                     = 0x10000\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCALIFADDR                      = 0x8118691b\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDLIFADDR                      = 0x8118691d\n\tSIOCGLIFADDR                      = 0xc118691c\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep\n// them here for backwards compatibility.\n\npackage unix\n\nconst (\n\tIFF_SMART                         = 0x20\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BSC                           = 0x53\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_IPXIP                         = 0xf9\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf6\n\tIFT_PFSYNC                        = 0xf7\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIPPROTO_MAXID                     = 0x34\n\tIPV6_FAITH                        = 0x1d\n\tIP_FAITH                          = 0x16\n\tMAP_NORESERVE                     = 0x40\n\tMAP_RENAME                        = 0x20\n\tNET_RT_MAXID                      = 0x6\n\tRTF_PRCLONING                     = 0x10000\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tSIOCADDRT                         = 0x8040720a\n\tSIOCALIFADDR                      = 0x8118691b\n\tSIOCDELRT                         = 0x8040720b\n\tSIOCDLIFADDR                      = 0x8118691d\n\tSIOCGLIFADDR                      = 0xc118691c\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/errors_freebsd_arm.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nconst (\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BSC                           = 0x53\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf6\n\tIFT_PFSYNC                        = 0xf7\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\n\t// missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go\n\tIFF_SMART       = 0x20\n\tIFT_FAITH       = 0xf2\n\tIFT_IPXIP       = 0xf9\n\tIPPROTO_MAXID   = 0x34\n\tIPV6_FAITH      = 0x1d\n\tIP_FAITH        = 0x16\n\tMAP_NORESERVE   = 0x40\n\tMAP_RENAME      = 0x20\n\tNET_RT_MAXID    = 0x6\n\tRTF_PRCLONING   = 0x10000\n\tRTM_OLDADD      = 0x9\n\tRTM_OLDDEL      = 0xa\n\tSIOCADDRT       = 0x8030720a\n\tSIOCALIFADDR    = 0x8118691b\n\tSIOCDELRT       = 0x8030720b\n\tSIOCDLIFADDR    = 0x8118691d\n\tSIOCGLIFADDR    = 0xc118691c\n\tSIOCGLIFPHYADDR = 0xc118694b\n\tSIOCSLIFPHYADDR = 0x8118694a\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build dragonfly freebsd linux netbsd openbsd\n\npackage unix\n\nimport \"unsafe\"\n\n// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux\n// systems by flock_linux_32bit.go to be SYS_FCNTL64.\nvar fcntl64Syscall uintptr = SYS_FCNTL\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\tvalptr, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(arg))\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))\n\tif errno == 0 {\n\t\treturn nil\n\t}\n\treturn errno\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_darwin.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go",
    "content": "// +build linux,386 linux,arm linux,mips linux,mipsle\n\n// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nfunc init() {\n\t// On 32-bit Linux systems, the fcntl syscall that matches Go's\n\t// Flock_t type is SYS_FCNTL64, not SYS_FCNTL.\n\tfcntl64Syscall = SYS_FCNTL64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build gccgo\n// +build !aix\n\npackage unix\n\nimport \"syscall\"\n\n// We can't use the gc-syntax .s files for gccgo. On the plus side\n// much of the functionality can be written directly in Go.\n\n//extern gccgoRealSyscallNoError\nfunc realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)\n\n//extern gccgoRealSyscall\nfunc realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)\n\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tsyscall.Entersyscall()\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0\n}\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0\n}\n\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_c.c",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build gccgo\n// +build !aix\n\n#include <errno.h>\n#include <stdint.h>\n#include <unistd.h>\n\n#define _STRINGIFY2_(x) #x\n#define _STRINGIFY_(x) _STRINGIFY2_(x)\n#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)\n\n// Call syscall from C code because the gccgo support for calling from\n// Go to C does not support varargs functions.\n\nstruct ret {\n\tuintptr_t r;\n\tuintptr_t err;\n};\n\nstruct ret\ngccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\tstruct ret r;\n\n\terrno = 0;\n\tr.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n\tr.err = errno;\n\treturn r;\n}\n\nuintptr_t\ngccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\treturn syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build gccgo,linux,amd64\n\npackage unix\n\nimport \"syscall\"\n\n//extern gettimeofday\nfunc realGettimeofday(*Timeval, *byte) int32\n\nfunc gettimeofday(tv *Timeval) (err syscall.Errno) {\n\tr := realGettimeofday(tv, nil)\n\tif r < 0 {\n\t\treturn syscall.GetErrno()\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req uint, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req uint, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(value)))\n\truntime.KeepAlive(value)\n\treturn err\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req uint, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(value)))\n\truntime.KeepAlive(value)\n\treturn err\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req uint) (int, error) {\n\tvar value int\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req uint) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req uint) (*Termios, error) {\n\tvar value Termios\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# This script runs or (given -n) prints suggested commands to generate files for\n# the Architecture/OS specified by the GOARCH and GOOS environment variables.\n# See README.md for more information about how the build system works.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nmkasm=\nrun=\"sh\"\ncmd=\"\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\t# Run the command line that appears in the first line\n\t\t# of the generated file to regenerate it.\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tcmd=\"echo\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\nif [[ \"$GOOS\" = \"linux\" ]]; then\n\t# Use the Docker-based build system\n\t# Files generated through docker (use $cmd so you can Ctl-C the build or run)\n\t$cmd docker build --tag generate:$GOOS $GOOS\n\t$cmd docker run --interactive --tty --volume $(dirname \"$(readlink -f \"$0\")\"):/build generate:$GOOS\n\texit\nfi\n\nGOOSARCH_in=syscall_$GOOSARCH.go\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\naix_ppc)\n\tmkerrors=\"$mkerrors -maix32\"\n\tmksyscall=\"go run mksyscall_aix_ppc.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\naix_ppc64)\n\tmkerrors=\"$mkerrors -maix64\"\n\tmksyscall=\"go run mksyscall_aix_ppc64.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\ndarwin_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32\"\n\tmksysnum=\"go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm_darwin.go\"\n\t;;\ndarwin_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm_darwin.go\"\n\t;;\ndarwin_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32\"\n\tmksysnum=\"go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm_darwin.go\"\n\t;;\ndarwin_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm_darwin.go\"\n\t;;\ndragonfly_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -dragonfly\"\n\tmksysnum=\"go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32\"\n\tmksysnum=\"go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -arm\"\n\tmksysnum=\"go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd -arm\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmksysnum=\"go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmksysnum=\"go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -arm\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmksysnum=\"go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmksysnum=\"go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nsolaris_amd64)\n\tmksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\t*)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tcase \"$GOOS\" in\n\t\tdarwin | dragonfly | freebsd | netbsd | openbsd)\n\t\t\tsyscall_goos=\"syscall_bsd.go $syscall_goos\"\n\t\t\t;;\n\t\tesac\n\t\tif [ -n \"$mksyscall\" ]; then\n\t\t\tif [ \"$GOOSARCH\" == \"aix_ppc64\" ]; then\n\t\t\t\t# aix/ppc64 script generates files instead of writing to stdin.\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_\"$GOOSARCH\"_gccgo.go && gofmt -w zsyscall_\"$GOOSARCH\"_gc.go \" ;\n\t\t\telif [ \"$GOOS\" == \"darwin\" ]; then\n\t\t\t        # pre-1.12, direct syscalls\n\t\t\t        echo \"$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go\";\n\t\t\t        # 1.12 and later, syscalls via libSystem\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go\";\n\t\t\telse\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go\";\n\t\t\tfi\n\t\tfi\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go\"; fi\n\tif [ -n \"$mkasm\" ]; then echo \"$mkasm $GOARCH\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nif test -z \"$GOARCH\" -o -z \"$GOOS\"; then\n\techo 1>&2 \"GOARCH or GOOS not defined in environment\"\n\texit 1\nfi\n\n# Check that we are using the new build system if we should\nif [[ \"$GOOS\" = \"linux\" ]] && [[ \"$GOLANG_SYS_BUILD\" != \"docker\" ]]; then\n\techo 1>&2 \"In the Docker based build system, mkerrors should not be called directly.\"\n\techo 1>&2 \"See README.md\"\n\texit 1\nfi\n\nif [[ \"$GOOS\" = \"aix\" ]]; then\n\tCC=${CC:-gcc}\nelse\n\tCC=${CC:-cc}\nfi\n\nif [[ \"$GOOS\" = \"solaris\" ]]; then\n\t# Assumes GNU versions of utilities in PATH.\n\texport PATH=/usr/gnu/bin:$PATH\nfi\n\nuname=$(uname)\n\nincludes_AIX='\n#include <net/if.h>\n#include <net/netopt.h>\n#include <netinet/ip_mroute.h>\n#include <sys/protosw.h>\n#include <sys/stropts.h>\n#include <sys/mman.h>\n#include <sys/poll.h>\n#include <sys/termio.h>\n#include <termios.h>\n#include <fcntl.h>\n\n#define AF_LOCAL AF_UNIX\n'\n\nincludes_Darwin='\n#define _DARWIN_C_SOURCE\n#define KERNEL\n#define _DARWIN_USE_64_BIT_INODE\n#include <stdint.h>\n#include <sys/attr.h>\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/ptrace.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/utsname.h>\n#include <sys/wait.h>\n#include <sys/xattr.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <termios.h>\n'\n\nincludes_DragonFly='\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <net/ip_mroute/ip_mroute.h>\n'\n\nincludes_FreeBSD='\n#include <sys/capsicum.h>\n#include <sys/param.h>\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <sys/extattr.h>\n\n#if __FreeBSD__ >= 10\n#define IFT_CARP\t0xf8\t// IFT_CARP is deprecated in FreeBSD 10\n#undef SIOCAIFADDR\n#define SIOCAIFADDR\t_IOW(105, 26, struct oifaliasreq)\t// ifaliasreq contains if_data\n#undef SIOCSIFPHYADDR\n#define SIOCSIFPHYADDR\t_IOW(105, 70, struct oifaliasreq)\t// ifaliasreq contains if_data\n#endif\n'\n\nincludes_Linux='\n#define _LARGEFILE_SOURCE\n#define _LARGEFILE64_SOURCE\n#ifndef __LP64__\n#define _FILE_OFFSET_BITS 64\n#endif\n#define _GNU_SOURCE\n\n// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of\n// these structures. We just include them copied from <bits/termios.h>.\n#if defined(__powerpc__)\nstruct sgttyb {\n        char    sg_ispeed;\n        char    sg_ospeed;\n        char    sg_erase;\n        char    sg_kill;\n        short   sg_flags;\n};\n\nstruct tchars {\n        char    t_intrc;\n        char    t_quitc;\n        char    t_startc;\n        char    t_stopc;\n        char    t_eofc;\n        char    t_brkc;\n};\n\nstruct ltchars {\n        char    t_suspc;\n        char    t_dsuspc;\n        char    t_rprntc;\n        char    t_flushc;\n        char    t_werasc;\n        char    t_lnextc;\n};\n#endif\n\n#include <bits/sockaddr.h>\n#include <sys/epoll.h>\n#include <sys/eventfd.h>\n#include <sys/inotify.h>\n#include <sys/ioctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/prctl.h>\n#include <sys/stat.h>\n#include <sys/types.h>\n#include <sys/time.h>\n#include <sys/signalfd.h>\n#include <sys/socket.h>\n#include <sys/xattr.h>\n#include <linux/bpf.h>\n#include <linux/can.h>\n#include <linux/capability.h>\n#include <linux/cryptouser.h>\n#include <linux/errqueue.h>\n#include <linux/falloc.h>\n#include <linux/fanotify.h>\n#include <linux/filter.h>\n#include <linux/fs.h>\n#include <linux/genetlink.h>\n#include <linux/hdreg.h>\n#include <linux/icmpv6.h>\n#include <linux/if.h>\n#include <linux/if_addr.h>\n#include <linux/if_alg.h>\n#include <linux/if_arp.h>\n#include <linux/if_ether.h>\n#include <linux/if_ppp.h>\n#include <linux/if_tun.h>\n#include <linux/if_packet.h>\n#include <linux/if_xdp.h>\n#include <linux/kexec.h>\n#include <linux/keyctl.h>\n#include <linux/loop.h>\n#include <linux/magic.h>\n#include <linux/memfd.h>\n#include <linux/module.h>\n#include <linux/netfilter/nfnetlink.h>\n#include <linux/netlink.h>\n#include <linux/net_namespace.h>\n#include <linux/nsfs.h>\n#include <linux/perf_event.h>\n#include <linux/ptrace.h>\n#include <linux/random.h>\n#include <linux/reboot.h>\n#include <linux/rtc.h>\n#include <linux/rtnetlink.h>\n#include <linux/sched.h>\n#include <linux/seccomp.h>\n#include <linux/serial.h>\n#include <linux/sockios.h>\n#include <linux/taskstats.h>\n#include <linux/tipc.h>\n#include <linux/vm_sockets.h>\n#include <linux/wait.h>\n#include <linux/watchdog.h>\n\n#include <mtd/ubi-user.h>\n#include <net/route.h>\n\n#if defined(__sparc__)\n// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the\n// definition in glibc. As only the error constants are needed here, include the\n// generic termibits.h (which is included by termbits.h on sparc).\n#include <asm-generic/termbits.h>\n#else\n#include <asm/termbits.h>\n#endif\n\n#ifndef MSG_FASTOPEN\n#define MSG_FASTOPEN    0x20000000\n#endif\n\n#ifndef PTRACE_GETREGS\n#define PTRACE_GETREGS\t0xc\n#endif\n\n#ifndef PTRACE_SETREGS\n#define PTRACE_SETREGS\t0xd\n#endif\n\n#ifndef SOL_NETLINK\n#define SOL_NETLINK\t270\n#endif\n\n#ifdef SOL_BLUETOOTH\n// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h\n// but it is already in bluetooth_linux.go\n#undef SOL_BLUETOOTH\n#endif\n\n// Certain constants are missing from the fs/crypto UAPI\n#define FS_KEY_DESC_PREFIX              \"fscrypt:\"\n#define FS_KEY_DESC_PREFIX_SIZE         8\n#define FS_MAX_KEY_SIZE                 64\n\n// The code generator produces -0x1 for (~0), but an unsigned value is necessary\n// for the tipc_subscr timeout __u32 field.\n#undef TIPC_WAIT_FOREVER\n#define TIPC_WAIT_FOREVER 0xffffffff\n'\n\nincludes_NetBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/extattr.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n\n// Needed since <sys/param.h> refers to it...\n#define schedppq 1\n'\n\nincludes_OpenBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/unistd.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/if_var.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n#include <net/if_bridge.h>\n\n// We keep some constants not supported in OpenBSD 5.5 and beyond for\n// the promise of compatibility.\n#define EMUL_ENABLED\t\t0x1\n#define EMUL_NATIVE\t\t0x2\n#define IPV6_FAITH\t\t0x1d\n#define IPV6_OPTIONS\t\t0x1\n#define IPV6_RTHDR_STRICT\t0x1\n#define IPV6_SOCKOPT_RESERVED1\t0x3\n#define SIOCGIFGENERIC\t\t0xc020693a\n#define SIOCSIFGENERIC\t\t0x80206939\n#define WALTSIG\t\t\t0x4\n'\n\nincludes_SunOS='\n#include <limits.h>\n#include <sys/types.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/mman.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/mkdev.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_arp.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n'\n\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n#include <time.h>\n'\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package unix\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo 'import \"syscall\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\t\t$2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc.\n\n\t\t$2 ~ /^EXTATTR_NAMESPACE_NAMES/ ||\n\t\t$2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next}\n\n\t\t$2 !~ /^ECCAPBITS/ &&\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^(OLD|NEW)DEV$/ ||\n\t\t$2 == \"BOTHER\" ||\n\t\t$2 ~ /^CI?BAUD(EX)?$/ ||\n\t\t$2 == \"IBSHIFT\" ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 !~ \"X86_CR3_PCID_NOFLUSH\" &&\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 == \"XCASE\" ||\n\t\t$2 == \"ALTWERASE\" ||\n\t\t$2 == \"NOKERNINFO\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||\n\t\t$2 ~ /^O?XTABS$/ ||\n\t\t$2 ~ /^TC[IO](ON|OFF)$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^LO_(KEY|NAME)_SIZE$/ ||\n\t\t$2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|MCAST|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||\n\t\t$2 ~ /^TP_STATUS_/ ||\n\t\t$2 ~ /^FALLOC_/ ||\n\t\t$2 == \"ICMPV6_FILTER\" ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ ||\n\t\t$2 ~ /^HW_MACHINE$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 !~ \"MNT_BITS\" &&\n\t\t$2 ~ /^(MS|MNT|UMOUNT)_/ ||\n\t\t$2 ~ /^NS_GET_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT)_/ ||\n\t\t$2 ~ /^KEXEC_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 ~ /^MODULE_INIT_/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 ~ /^TCGET/ ||\n\t\t$2 ~ /^TCSET/ ||\n\t\t$2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 ~ /^(CLOCK|TIMER)_/ ||\n\t\t$2 ~ /^CAN_/ ||\n\t\t$2 ~ /^CAP_/ ||\n\t\t$2 ~ /^ALG_/ ||\n\t\t$2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE|IOC_(GET|SET)_ENCRYPTION)/ ||\n\t\t$2 ~ /^GRND_/ ||\n\t\t$2 ~ /^RND/ ||\n\t\t$2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||\n\t\t$2 ~ /^KEYCTL_/ ||\n\t\t$2 ~ /^PERF_EVENT_IOC_/ ||\n\t\t$2 ~ /^SECCOMP_MODE_/ ||\n\t\t$2 ~ /^SPLICE_/ ||\n\t\t$2 ~ /^SYNC_FILE_RANGE_/ ||\n\t\t$2 !~ /^AUDIT_RECORD_MAGIC/ &&\n\t\t$2 !~ /IOC_MAGIC/ &&\n\t\t$2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ ||\n\t\t$2 ~ /^(VM|VMADDR)_/ ||\n\t\t$2 ~ /^IOCTL_VM_SOCKETS_/ ||\n\t\t$2 ~ /^(TASKSTATS|TS)_/ ||\n\t\t$2 ~ /^CGROUPSTATS_/ ||\n\t\t$2 ~ /^GENL_/ ||\n\t\t$2 ~ /^STATX_/ ||\n\t\t$2 ~ /^RENAME/ ||\n\t\t$2 ~ /^UBI_IOC[A-Z]/ ||\n\t\t$2 ~ /^UTIME_/ ||\n\t\t$2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ ||\n\t\t$2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ ||\n\t\t$2 ~ /^FSOPT_/ ||\n\t\t$2 ~ /^WDIOC_/ ||\n\t\t$2 ~ /^NFN/ ||\n\t\t$2 ~ /^XDP_/ ||\n\t\t$2 ~ /^(HDIO|WIN|SMART)_/ ||\n\t\t$2 ~ /^CRYPTO_/ ||\n\t\t$2 ~ /^TIPC_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ ||\n\t\t$2 ~/^PPPIOC/ ||\n\t\t$2 ~ /^FAN_|FANOTIFY_/ ||\n\t\t$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tegrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tegrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; see README.md. DO NOT EDIT.'\necho\necho \"// +build ${GOARCH},${GOOS}\"\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= syscall.Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= syscall.Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nstruct tuple {\n\tint num;\n\tconst char *name;\n};\n\nstruct tuple errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\techo -E \"\n};\n\nstruct tuple signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\ntuplecmp(const void *a, const void *b)\n{\n\treturn ((struct tuple *)a)->num - ((struct tuple *)b)->num;\n}\n\nint\nmain(void)\n{\n\tint i, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errorList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Errno\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], tuplecmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i].num;\n\t\tif(i > 0 && errors[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strerror(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, errors[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signalList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Signal\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], tuplecmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i].num;\n\t\tif(i > 0 && signals[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strsignal(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, signals[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pagesize_unix.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\n// For Unix, get the pagesize from the runtime.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getpagesize() int {\n\treturn syscall.Getpagesize()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pledge_openbsd.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Pledge implements the pledge syscall.\n//\n// The pledge syscall does not accept execpromises on OpenBSD releases\n// before 6.3.\n//\n// execpromises must be empty when Pledge is called on OpenBSD\n// releases predating 6.3, otherwise an error will be returned.\n//\n// For more information see pledge(2).\nfunc Pledge(promises, execpromises string) error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = pledgeAvailable(maj, min, execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := syscall.BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// This variable will hold either a nil unsafe.Pointer or\n\t// an unsafe.Pointer to a string (execpromises).\n\tvar expr unsafe.Pointer\n\n\t// If we're running on OpenBSD > 6.2, pass execpromises to the syscall.\n\tif maj > 6 || (maj == 6 && min > 2) {\n\t\texptr, err := syscall.BytePtrFromString(execpromises)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texpr = unsafe.Pointer(exptr)\n\t}\n\n\t_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)\n\tif e != 0 {\n\t\treturn e\n\t}\n\n\treturn nil\n}\n\n// PledgePromises implements the pledge syscall.\n//\n// This changes the promises and leaves the execpromises untouched.\n//\n// For more information see pledge(2).\nfunc PledgePromises(promises string) error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = pledgeAvailable(maj, min, \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// This variable holds the execpromises and is always nil.\n\tvar expr unsafe.Pointer\n\n\tpptr, err := syscall.BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)\n\tif e != 0 {\n\t\treturn e\n\t}\n\n\treturn nil\n}\n\n// PledgeExecpromises implements the pledge syscall.\n//\n// This changes the execpromises and leaves the promises untouched.\n//\n// For more information see pledge(2).\nfunc PledgeExecpromises(execpromises string) error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = pledgeAvailable(maj, min, execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// This variable holds the promises and is always nil.\n\tvar pptr unsafe.Pointer\n\n\texptr, err := syscall.BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0)\n\tif e != 0 {\n\t\treturn e\n\t}\n\n\treturn nil\n}\n\n// majmin returns major and minor version number for an OpenBSD system.\nfunc majmin() (major int, minor int, err error) {\n\tvar v Utsname\n\terr = Uname(&v)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tmajor, err = strconv.Atoi(string(v.Release[0]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse major version number returned by uname\")\n\t\treturn\n\t}\n\n\tminor, err = strconv.Atoi(string(v.Release[2]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse minor version number returned by uname\")\n\t\treturn\n\t}\n\n\treturn\n}\n\n// pledgeAvailable checks for availability of the pledge(2) syscall\n// based on the running OpenBSD version.\nfunc pledgeAvailable(maj, min int, execpromises string) error {\n\t// If OpenBSD <= 5.9, pledge is not available.\n\tif (maj == 5 && min != 9) || maj < 5 {\n\t\treturn fmt.Errorf(\"pledge syscall is not available on OpenBSD %d.%d\", maj, min)\n\t}\n\n\t// If OpenBSD <= 6.2 and execpromises is not empty,\n\t// return an error - execpromises is not available before 6.3\n\tif (maj < 6 || (maj == 6 && min <= 2)) && execpromises != \"\" {\n\t\treturn fmt.Errorf(\"cannot use execpromises on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build darwin,race linux,race freebsd,race\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdents.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix dragonfly freebsd linux netbsd openbsd\n\npackage unix\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\treturn Getdents(fd, buf)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdirentries.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build darwin\n\npackage unix\n\nimport \"unsafe\"\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// 64 bits should be enough. (32 bits isn't even on 386). Since the\n\t// actual system call is getdirentries64, 64 is a good guess.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\tvar base = (*uintptr)(unsafe.Pointer(new(uint64)))\n\treturn Getdirentries(fd, buf, base)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_linux.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*((*Ucred)(cmsgData(h))) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\n// Socket control messages\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\n\tswitch runtime.GOOS {\n\tcase \"aix\":\n\t\t// There is no alignment on AIX.\n\t\tsalign = 1\n\tcase \"darwin\", \"dragonfly\", \"solaris\", \"illumos\":\n\t\t// NOTE: It seems like 64-bit Darwin, DragonFly BSD,\n\t\t// illumos, and Solaris kernels still require 32-bit\n\t\t// aligned access to network subsystem.\n\t\tif SizeofPtr == 8 {\n\t\t\tsalign = 4\n\t\t}\n\tcase \"netbsd\", \"openbsd\":\n\t\t// NetBSD and OpenBSD armv7 require 64-bit alignment.\n\t\tif runtime.GOARCH == \"arm\" {\n\t\t\tsalign = 8\n\t\t}\n\t}\n\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n\n// CmsgLen returns the value to store in the Len field of the Cmsghdr\n// structure, taking into account any necessary alignment.\nfunc CmsgLen(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + datalen\n}\n\n// CmsgSpace returns the number of bytes an ancillary element with\n// payload of the passed data length occupies.\nfunc CmsgSpace(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)\n}\n\nfunc cmsgData(h *Cmsghdr) unsafe.Pointer {\n\treturn unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)))\n}\n\n// SocketControlMessage represents a socket control message.\ntype SocketControlMessage struct {\n\tHeader Cmsghdr\n\tData   []byte\n}\n\n// ParseSocketControlMessage parses b as an array of socket control\n// messages.\nfunc ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {\n\tvar msgs []SocketControlMessage\n\ti := 0\n\tfor i+CmsgLen(0) <= len(b) {\n\t\th, dbuf, err := socketControlMessageHeaderAndData(b[i:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm := SocketControlMessage{Header: *h, Data: dbuf}\n\t\tmsgs = append(msgs, m)\n\t\ti += cmsgAlignOf(int(h.Len))\n\t}\n\treturn msgs, nil\n}\n\nfunc socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) {\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\tif h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) {\n\t\treturn nil, nil, EINVAL\n\t}\n\treturn h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil\n}\n\n// UnixRights encodes a set of open file descriptors into a socket\n// control message for sending to another process.\nfunc UnixRights(fds ...int) []byte {\n\tdatalen := len(fds) * 4\n\tb := make([]byte, CmsgSpace(datalen))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_RIGHTS\n\th.SetLen(CmsgLen(datalen))\n\tdata := cmsgData(h)\n\tfor _, fd := range fds {\n\t\t*(*int32)(data) = int32(fd)\n\t\tdata = unsafe.Pointer(uintptr(data) + 4)\n\t}\n\treturn b\n}\n\n// ParseUnixRights decodes a socket control message that contains an\n// integer array of open file descriptors from another process.\nfunc ParseUnixRights(m *SocketControlMessage) ([]int, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_RIGHTS {\n\t\treturn nil, EINVAL\n\t}\n\tfds := make([]int, len(m.Data)>>2)\n\tfor i, j := 0, 0; i < len(m.Data); i += 4 {\n\t\tfds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i])))\n\t\tj++\n\t}\n\treturn fds, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\npackage unix\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + uitoa(uint(-val))\n\t}\n\treturn uitoa(uint(val))\n}\n\nfunc uitoa(val uint) string {\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\n// Package unix contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display OS-specific documentation for the current\n// system. If you want godoc to display OS documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage unix // import \"golang.org/x/sys/unix\"\n\nimport \"strings\"\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\nvar _zero uintptr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix\n\n// Aix system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport \"unsafe\"\n\n/*\n * Wrapped\n */\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\nfunc Utimes(path string, tv []Timeval) error {\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = uint8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' {\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sys\tgetcwd(buf []byte) (err error)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (ret string, err error) {\n\tfor len := uint64(4096); ; len *= 2 {\n\t\tb := make([]byte, len)\n\t\terr := getcwd(b)\n\t\tif err == nil {\n\t\t\ti := 0\n\t\t\tfor b[i] != 0 {\n\t\t\t\ti++\n\t\t\t}\n\t\t\treturn string(b[0:i]), nil\n\t\t}\n\t\tif err != ERANGE {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n}\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\terr = getcwd(buf)\n\tif err == nil {\n\t\ti := 0\n\t\tfor buf[i] != 0 {\n\t\t\ti++\n\t\t}\n\t\tn = i + 1\n\t}\n\treturn\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n/*\n * Socket\n */\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\t// Recvmsg not implemented on AIX\n\tsa := new(SockaddrUnix)\n\treturn -1, -1, -1, sa, ENOSYS\n}\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\t// SendmsgN not implemented on AIX\n\treturn -1, ENOSYS\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some versions of AIX have a bug in getsockname (see IV78655).\n\t\t// We can't rely on sa.Len being set correctly.\n\t\tn := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tbytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]\n\t\tsa.Name = string(bytes)\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terr = gettimeofday(tv, nil)\n\treturn\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tgetdirent(fd int, buf []byte) (n int, err error)\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn getdirent(fd, buf)\n}\n\n//sys\twait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\tvar r Pid_t\n\terr = ERESTART\n\t// AIX wait4 may return with ERESTART errno, while the processus is still\n\t// active.\n\tfor err == ERESTART {\n\t\tr, err = wait4(Pid_t(pid), &status, options, rusage)\n\t}\n\twpid = int(r)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n/*\n * Wait\n */\n\ntype WaitStatus uint32\n\nfunc (w WaitStatus) Stopped() bool { return w&0x40 != 0 }\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>8) & 0xFF\n}\n\nfunc (w WaitStatus) Exited() bool { return w&0xFF == 0 }\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int((w >> 8) & 0xFF)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 }\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>16) & 0xFF\n}\n\nfunc (w WaitStatus) Continued() bool { return w&0x01000000 != 0 }\n\nfunc (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\n// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX\n// There is no way to create a custom fcntl and to keep //sys fcntl easily,\n// Therefore, the programmer must call dup2 instead of fcntl in this case.\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\n//sys\tFcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n/*\n * Direct access\n */\n\n//sys\tAcct(path string) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFsync(fd int) (err error)\n// readdir_r\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\n//sys\tGetpgrp() (pid int)\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = syslog\n//sys\tMkdir(dirfd int, path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys   Open(path string, mode int, perm uint32) (fd int, err error) = open64\n//sys   Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n\n//sys\tSetuid(uid int) (err error)\n//sys\tSetgid(uid int) (err error)\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys   Unlink(path string) (err error)\n//sys   Unlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\treadlen(fd int, p *byte, np int) (n int, err error) = read\n//sys\twritelen(fd int, p *byte, np int) (n int, err error) = write\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tfstat(fd int, stat *Stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = pread64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tPselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tstat(path string, statptr *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n\n// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg\n\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\n//sysnb pipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tgettimeofday(tv *Timeval, tzp *Timezone) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n\n//sys\tGetsystemcfg(label int) (n uint64)\n\n//sys\tumount(target string) (err error)\nfunc Unmount(target string, flags int) (err error) {\n\tif flags != 0 {\n\t\t// AIX doesn't have any flags for umount.\n\t\treturn ENOSYS\n\t}\n\treturn umount(target)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix\n// +build ppc\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error) = setrlimit64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek64\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\treturn fstat(fd, stat)\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\treturn fstatat(dirfd, path, stat, flags)\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\treturn lstat(path, stat)\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\treturn stat(path, statptr)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix\n// +build ppc64\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int64(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// In order to only have Timespec structure, type of Stat_t's fields\n// Atim, Mtim and Ctim is changed from StTimespec to Timespec during\n// ztypes generation.\n// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an\n// int32, so the fields' value must be modified.\nfunc fixStatTimFields(stat *Stat_t) {\n\tstat.Atim.Nsec >>= 32\n\tstat.Mtim.Nsec >>= 32\n\tstat.Ctim.Nsec >>= 32\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\terr := fstat(fd, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\terr := fstatat(dirfd, path, stat, flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\terr := lstat(path, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\terr := stat(path, statptr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(statptr)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_bsd.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build darwin dragonfly freebsd netbsd openbsd\n\n// BSD system call wrappers shared by *BSD based systems\n// including OS X (Darwin) and FreeBSD.  Like the other\n// syscall_*.go files it is compiled as Go code but also\n// used as input to mksyscall which parses the //sys\n// lines and generates system call stubs.\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tkilled  = 9\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\tShutdown(s int, how int) (err error)\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Index == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = sa.Len\n\tsa.raw.Family = AF_LINK\n\tsa.raw.Index = sa.Index\n\tsa.raw.Type = sa.Type\n\tsa.raw.Nlen = sa.Nlen\n\tsa.raw.Alen = sa.Alen\n\tsa.raw.Slen = sa.Slen\n\tfor i := 0; i < len(sa.raw.Data); i++ {\n\t\tsa.raw.Data[i] = sa.Data[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_LINK:\n\t\tpp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrDatalink)\n\t\tsa.Len = pp.Len\n\t\tsa.Family = pp.Family\n\t\tsa.Index = pp.Index\n\t\tsa.Type = pp.Type\n\t\tsa.Nlen = pp.Nlen\n\t\tsa.Alen = pp.Alen\n\t\tsa.Slen = pp.Slen\n\t\tfor i := 0; i < len(sa.Data); i++ {\n\t\t\tsa.Data[i] = pp.Data[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tif pp.Len < 2 || pp.Len > SizeofSockaddrUnix {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some BSDs include the trailing NUL in the length, whereas\n\t\t// others do not. Work around this by subtracting the leading\n\t\t// family and len. The path is then scanned to see if a NUL\n\t\t// terminator still exists within the length.\n\t\tn := int(pp.Len) - 2 // subtract leading Family, Len\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\t// found early NUL; assume Len included the NUL\n\t\t\t\t// or was overestimating.\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tbytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]\n\t\tsa.Name = string(bytes)\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\tif runtime.GOOS == \"darwin\" && len == 0 {\n\t\t// Accepted socket has no address.\n\t\t// This is likely due to a bug in xnu kernels,\n\t\t// where instead of ECONNABORTED error socket\n\t\t// is accepted, but has no address.\n\t\tClose(nfd)\n\t\treturn 0, nil, ECONNABORTED\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(jsing): DragonFly has a \"bug\" (see issue 3349), which should be\n\t// reported upstream.\n\tif runtime.GOOS == \"dragonfly\" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {\n\t\trsa.Addr.Family = AF_UNIX\n\t\trsa.Addr.Len = SizeofSockaddrUnix\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn string(buf[:vallen-1]), nil\n}\n\n//sys   recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys   sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar msg Msghdr\n\tvar rsa RawSockaddrAny\n\tmsg.Name = (*byte)(unsafe.Pointer(&rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && len(p) == 0 {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tkevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)\n\nfunc Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {\n\tvar change, event unsafe.Pointer\n\tif len(changes) > 0 {\n\t\tchange = unsafe.Pointer(&changes[0])\n\t}\n\tif len(events) > 0 {\n\t\tevent = unsafe.Pointer(&events[0])\n\t}\n\treturn kevent(kq, change, len(changes), event, len(events), timeout)\n}\n\n// sysctlmib translates name to mib number and appends any additional args.\nfunc sysctlmib(name string, args ...int) ([]_C_int, error) {\n\t// Translate name to mib number.\n\tmib, err := nametomib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, a := range args {\n\t\tmib = append(mib, _C_int(a))\n\t}\n\n\treturn mib, nil\n}\n\nfunc Sysctl(name string) (string, error) {\n\treturn SysctlArgs(name)\n}\n\nfunc SysctlArgs(name string, args ...int) (string, error) {\n\tbuf, err := SysctlRaw(name, args...)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := len(buf)\n\n\t// Throw away terminating NUL.\n\tif n > 0 && buf[n-1] == '\\x00' {\n\t\tn--\n\t}\n\treturn string(buf[0:n]), nil\n}\n\nfunc SysctlUint32(name string) (uint32, error) {\n\treturn SysctlUint32Args(name)\n}\n\nfunc SysctlUint32Args(name string, args ...int) (uint32, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(4)\n\tbuf := make([]byte, 4)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 4 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint32)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlUint64(name string, args ...int) (uint64, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(8)\n\tbuf := make([]byte, 8)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 8 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint64)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlRaw(name string, args ...int) ([]byte, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Find size.\n\tn := uintptr(0)\n\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Read into buffer of that size.\n\tbuf := make([]byte, n)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// The actual call may return less than the original reported required\n\t// size so ensure we deal with that.\n\treturn buf[:n], nil\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\t// Darwin setattrlist can set nanosecond timestamps\n\terr := setattrlistTimes(path, ts, 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\terr = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\terr := setattrlistTimes(path, ts, flags)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfutimes(fd int, timeval *[2]Timeval) (err error)\n\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimes(fd, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys   poll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n// TODO: wrap\n//\tAcct(name nil-string) (err error)\n//\tGethostuuid(uuid *byte, timeout *Timespec) (err error)\n//\tPtrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error)\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\n//sys\tMadvise(b []byte, behav int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Darwin system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (string, error) {\n\tbuf := make([]byte, 2048)\n\tattrs, err := getAttrList(\".\", attrList{CommonAttr: attrCmnFullpath}, buf, 0)\n\tif err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 {\n\t\twd := string(attrs[0])\n\t\t// Sanity check that it's an absolute path and ends\n\t\t// in a null byte, which we then strip.\n\t\tif wd[0] == '/' && wd[len(wd)-1] == 0 {\n\t\t\treturn wd[:len(wd)-1], nil\n\t\t}\n\t}\n\t// If pkg/os/getwd.go gets ENOTSUP, it will fall back to the\n\t// slow algorithm.\n\treturn \"\", ENOTSUP\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }\nfunc PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }\n\nconst (\n\tattrBitMapCount = 5\n\tattrCmnFullpath = 0x08000000\n)\n\ntype attrList struct {\n\tbitmapCount uint16\n\t_           uint16\n\tCommonAttr  uint32\n\tVolAttr     uint32\n\tDirAttr     uint32\n\tFileAttr    uint32\n\tForkattr    uint32\n}\n\nfunc getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) {\n\tif len(attrBuf) < 4 {\n\t\treturn nil, errors.New(\"attrBuf too small\")\n\t}\n\tattrList.bitmapCount = attrBitMapCount\n\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := getattrlist(_p0, unsafe.Pointer(&attrList), unsafe.Pointer(&attrBuf[0]), uintptr(len(attrBuf)), int(options)); err != nil {\n\t\treturn nil, err\n\t}\n\tsize := *(*uint32)(unsafe.Pointer(&attrBuf[0]))\n\n\t// dat is the section of attrBuf that contains valid data,\n\t// without the 4 byte length header. All attribute offsets\n\t// are relative to dat.\n\tdat := attrBuf\n\tif int(size) < len(attrBuf) {\n\t\tdat = dat[:size]\n\t}\n\tdat = dat[4:] // remove length prefix\n\n\tfor i := uint32(0); int(i) < len(dat); {\n\t\theader := dat[i:]\n\t\tif len(header) < 8 {\n\t\t\treturn attrs, errors.New(\"truncated attribute header\")\n\t\t}\n\t\tdatOff := *(*int32)(unsafe.Pointer(&header[0]))\n\t\tattrLen := *(*uint32)(unsafe.Pointer(&header[4]))\n\t\tif datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) {\n\t\t\treturn attrs, errors.New(\"truncated results; attrBuf too small\")\n\t\t}\n\t\tend := uint32(datOff) + attrLen\n\t\tattrs = append(attrs, dat[datOff:end])\n\t\ti = end\n\t\tif r := i % 4; r != 0 {\n\t\t\ti += (4 - r)\n\t\t}\n\t}\n\treturn\n}\n\n//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)\n\nfunc SysctlClockinfo(name string) (*Clockinfo, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofClockinfo)\n\tvar ci Clockinfo\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofClockinfo {\n\t\treturn nil, EIO\n\t}\n\treturn &ci, nil\n}\n\n//sysnb pipe() (r int, w int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tp[0], p[1], err = pipe()\n\treturn\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(_p0, bufsize, flags)\n}\n\nfunc xattrPointer(dest []byte) *byte {\n\t// It's only when dest is set to NULL that the OS X implementations of\n\t// getxattr() and listxattr() return the current sizes of the named attributes.\n\t// An empty byte array is not sufficient. To maintain the same behaviour as the\n\t// linux implementation, we wrap around the system calls and pass in NULL when\n\t// dest is empty.\n\tvar destp *byte\n\tif len(dest) > 0 {\n\t\tdestp = &dest[0]\n\t}\n\treturn destp\n}\n\n//sys\tgetxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW)\n}\n\n//sys\tfgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\treturn fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\n//sys\tsetxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\t// The parameters for the OS X implementation vary slightly compared to the\n\t// linux system call, specifically the position parameter:\n\t//\n\t//  linux:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          const void *value,\n\t//          size_t size,\n\t//          int flags\n\t//      );\n\t//\n\t//  darwin:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          void *value,\n\t//          size_t size,\n\t//          u_int32_t position,\n\t//          int options\n\t//      );\n\t//\n\t// position specifies the offset within the extended attribute. In the\n\t// current implementation, only the resource fork extended attribute makes\n\t// use of this argument. For all others, position is reserved. We simply\n\t// default to setting it to zero.\n\treturn setxattr(path, attr, xattrPointer(data), len(data), 0, flags)\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\treturn setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW)\n}\n\n//sys\tfsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\treturn fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0)\n}\n\n//sys\tremovexattr(path string, attr string, options int) (err error)\n\nfunc Removexattr(path string, attr string) (err error) {\n\t// We wrap around and explicitly zero out the options provided to the OS X\n\t// implementation of removexattr, we do so for interoperability with the\n\t// linux variant.\n\treturn removexattr(path, attr, 0)\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\treturn removexattr(link, attr, XATTR_NOFOLLOW)\n}\n\n//sys\tfremovexattr(fd int, attr string, options int) (err error)\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\treturn fremovexattr(fd, attr, 0)\n}\n\n//sys\tlistxattr(path string, dest *byte, size int, options int) (sz int, err error)\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\treturn listxattr(path, xattrPointer(dest), len(dest), 0)\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\treturn listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW)\n}\n\n//sys\tflistxattr(fd int, dest *byte, size int, options int) (sz int, err error)\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\treturn flistxattr(fd, xattrPointer(dest), len(dest), 0)\n}\n\nfunc setattrlistTimes(path string, times []Timespec, flags int) error {\n\t_p0, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar attrList attrList\n\tattrList.bitmapCount = ATTR_BIT_MAP_COUNT\n\tattrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME\n\n\t// order is mtime, atime: the opposite of Chtimes\n\tattributes := [2]Timespec{times[1], times[0]}\n\toptions := 0\n\tif flags&AT_SYMLINK_NOFOLLOW != 0 {\n\t\toptions |= FSOPT_NOFOLLOW\n\t}\n\treturn setattrlist(\n\t\t_p0,\n\t\tunsafe.Pointer(&attrList),\n\t\tunsafe.Pointer(&attributes),\n\t\tunsafe.Sizeof(attributes),\n\t\toptions)\n}\n\n//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {\n\t// Darwin doesn't support SYS_UTIMENSAT\n\treturn ENOSYS\n}\n\n/*\n * Wrapped\n */\n\n//sys\tkill(pid int, signum int, posix int) (err error)\n\nfunc Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar length = int64(count)\n\terr = sendfile(infd, outfd, *offset, &length, nil, 0)\n\twritten = int(length)\n\treturn\n}\n\n//sys\tsendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExchangedata(path1 string, path2 string, options int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tIssetugid() (tainted bool)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)\n//sys\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetprivexec(flag int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys   munmap(addr uintptr, length uintptr) (err error)\n//sys\treadlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ\n//sys\twritelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE\n\n/*\n * Unimplemented\n */\n// Profil\n// Sigaction\n// Sigprocmask\n// Getlogin\n// Sigpending\n// Sigaltstack\n// Ioctl\n// Reboot\n// Execve\n// Vfork\n// Sbrk\n// Sstk\n// Ovadvise\n// Mincore\n// Setitimer\n// Swapon\n// Select\n// Sigsuspend\n// Readv\n// Writev\n// Nfssvc\n// Getfh\n// Quotactl\n// Mount\n// Csops\n// Waitid\n// Add_profil\n// Kdebug_trace\n// Sigreturn\n// Atsocket\n// Kqueue_from_portset_np\n// Kqueue_portset\n// Getattrlist\n// Setattrlist\n// Getdirentriesattr\n// Searchfs\n// Delete\n// Copyfile\n// Watchevent\n// Waitevent\n// Modwatch\n// Fsctl\n// Initgroups\n// Posix_spawn\n// Nfsclnt\n// Fhopen\n// Minherit\n// Semsys\n// Msgsys\n// Shmsys\n// Semctl\n// Semget\n// Semop\n// Msgctl\n// Msgget\n// Msgsnd\n// Msgrcv\n// Shmat\n// Shmctl\n// Shmdt\n// Shmget\n// Shm_open\n// Shm_unlink\n// Sem_open\n// Sem_close\n// Sem_unlink\n// Sem_wait\n// Sem_trywait\n// Sem_post\n// Sem_getvalue\n// Sem_init\n// Sem_destroy\n// Open_extended\n// Umask_extended\n// Stat_extended\n// Lstat_extended\n// Fstat_extended\n// Chmod_extended\n// Fchmod_extended\n// Access_extended\n// Settid\n// Gettid\n// Setsgroups\n// Getsgroups\n// Setwgroups\n// Getwgroups\n// Mkfifo_extended\n// Mkdir_extended\n// Identitysvc\n// Shared_region_check_np\n// Shared_region_map_np\n// __pthread_mutex_destroy\n// __pthread_mutex_init\n// __pthread_mutex_lock\n// __pthread_mutex_trylock\n// __pthread_mutex_unlock\n// __pthread_cond_init\n// __pthread_cond_destroy\n// __pthread_cond_broadcast\n// __pthread_cond_signal\n// Setsid_with_pid\n// __pthread_cond_timedwait\n// Aio_fsync\n// Aio_return\n// Aio_suspend\n// Aio_cancel\n// Aio_error\n// Aio_read\n// Aio_write\n// Lio_listio\n// __pthread_cond_wait\n// Iopolicysys\n// __pthread_kill\n// __pthread_sigmask\n// __sigwait\n// __disable_threadsignal\n// __pthread_markcancel\n// __pthread_canceled\n// __semwait_signal\n// Proc_info\n// sendfile\n// Stat64_extended\n// Lstat64_extended\n// Fstat64_extended\n// __pthread_chdir\n// __pthread_fchdir\n// Audit\n// Auditon\n// Getauid\n// Setauid\n// Getaudit\n// Setaudit\n// Getaudit_addr\n// Setaudit_addr\n// Auditctl\n// Bsdthread_create\n// Bsdthread_terminate\n// Stack_snapshot\n// Bsdthread_register\n// Workq_open\n// Workq_ops\n// __mac_execve\n// __mac_syscall\n// __mac_get_file\n// __mac_set_file\n// __mac_get_link\n// __mac_set_link\n// __mac_get_proc\n// __mac_set_proc\n// __mac_get_fd\n// __mac_set_fd\n// __mac_get_pid\n// __mac_get_lcid\n// __mac_get_lctx\n// __mac_set_lctx\n// Setlcid\n// Read_nocancel\n// Write_nocancel\n// Open_nocancel\n// Close_nocancel\n// Wait4_nocancel\n// Recvmsg_nocancel\n// Sendmsg_nocancel\n// Recvfrom_nocancel\n// Accept_nocancel\n// Fcntl_nocancel\n// Select_nocancel\n// Fsync_nocancel\n// Connect_nocancel\n// Sigsuspend_nocancel\n// Readv_nocancel\n// Writev_nocancel\n// Sendto_nocancel\n// Pread_nocancel\n// Pwrite_nocancel\n// Waitid_nocancel\n// Poll_nocancel\n// Msgsnd_nocancel\n// Msgrcv_nocancel\n// Sem_wait_nocancel\n// Aio_suspend_nocancel\n// __sigwait_nocancel\n// __semwait_signal_nocancel\n// __mac_mount\n// __mac_get_mount\n// __mac_getfsstat\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build 386,darwin\n\npackage unix\n\nimport (\n\t\"syscall\"\n)\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n//sys   ptrace(request int, pid int, addr uintptr, data uintptr) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sysnb\tgettimeofday(tp *Timeval) (sec int32, usec int32, err error)\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t// The tv passed to gettimeofday must be non-nil\n\t// but is otherwise unused. The answers come back\n\t// in the two registers.\n\tsec, usec, err := gettimeofday(tv)\n\ttv.Sec = int32(sec)\n\ttv.Usec = int32(usec)\n\treturn err\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of darwin/386 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64\n//sys\tGetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tStatfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,darwin\n\npackage unix\n\nimport (\n\t\"syscall\"\n)\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n//sys   ptrace(request int, pid int, addr uintptr, data uintptr) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\n//sysnb\tgettimeofday(tp *Timeval) (sec int64, usec int32, err error)\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t// The tv passed to gettimeofday must be non-nil\n\t// but is otherwise unused. The answers come back\n\t// in the two registers.\n\tsec, usec, err := gettimeofday(tv)\n\ttv.Sec = sec\n\ttv.Usec = usec\n\treturn err\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of darwin/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64\n//sys\tGetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tStatfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_arm.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport (\n\t\"syscall\"\n)\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) error {\n\treturn ENOTSUP\n}\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error {\n\treturn ENOTSUP\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sysnb\tgettimeofday(tp *Timeval) (sec int32, usec int32, err error)\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t// The tv passed to gettimeofday must be non-nil\n\t// but is otherwise unused. The answers come back\n\t// in the two registers.\n\tsec, usec, err := gettimeofday(tv)\n\ttv.Sec = int32(sec)\n\ttv.Usec = int32(usec)\n\treturn err\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of darwin/arm the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\treturn 0, ENOSYS\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm64,darwin\n\npackage unix\n\nimport (\n\t\"syscall\"\n)\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) error {\n\treturn ENOTSUP\n}\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error {\n\treturn ENOTSUP\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\n//sysnb\tgettimeofday(tp *Timeval) (sec int64, usec int32, err error)\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t// The tv passed to gettimeofday must be non-nil\n\t// but is otherwise unused. The answers come back\n\t// in the two registers.\n\tsec, usec, err := gettimeofday(tv)\n\ttv.Sec = sec\n\ttv.Usec = usec\n\treturn err\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of darwin/arm64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\treturn 0, ENOSYS\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build darwin,go1.12\n\npackage unix\n\nimport \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_darwin.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall6X syscall.syscall6X\n//go:linkname syscall_syscall9 syscall.syscall9\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n\n// Find the entry point for f. See comments in runtime/proc.go for the\n// function of the same name.\n//go:nosplit\nfunc funcPC(f func()) uintptr {\n\treturn **(**uintptr)(unsafe.Pointer(&f))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// DragonFly BSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n\traw    RawSockaddrDatalink\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\tnamlen, ok := direntNamlen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn (16 + namlen + 1 + 7) &^ 7, true\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\n//sysnb pipe() (r int, w int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tp[0], p[1], err = pipe()\n\treturn\n}\n\n//sys\textpread(fd int, p []byte, flags int, offset int64) (n int, err error)\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpread(fd, p, 0, offset)\n}\n\n//sys\textpwrite(fd int, p []byte, flags int, offset int64) (n int, err error)\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpwrite(fd, p, 0, offset)\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc setattrlistTimes(path string, times []Timespec, flags int) error {\n\t// used on Darwin for UtimesNano\n\treturn ENOSYS\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\nfunc sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {\n\terr := sysctl(mib, old, oldlen, nil, 0)\n\tif err != nil {\n\t\t// Utsname members on Dragonfly are only 32 bytes and\n\t\t// the syscall returns ENOMEM in case the actual value\n\t\t// is longer.\n\t\tif err == ENOMEM {\n\t\t\terr = nil\n\t\t}\n\t}\n\treturn err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctlUname(mib, &uname.Release[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Release[unsafe.Sizeof(uname.Release)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctlUname(mib, &uname.Version[0], &n); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctlUname(mib, &uname.Machine[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n//sys\tGetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys   munmap(addr uintptr, length uintptr) (err error)\n//sys\treadlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ\n//sys\twritelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Unimplemented\n * TODO(jsing): Update this list for DragonFly.\n */\n// Profil\n// Sigaction\n// Sigprocmask\n// Getlogin\n// Sigpending\n// Sigaltstack\n// Reboot\n// Execve\n// Vfork\n// Sbrk\n// Sstk\n// Ovadvise\n// Mincore\n// Setitimer\n// Swapon\n// Select\n// Sigsuspend\n// Readv\n// Writev\n// Nfssvc\n// Getfh\n// Quotactl\n// Mount\n// Csops\n// Waitid\n// Add_profil\n// Kdebug_trace\n// Sigreturn\n// Atsocket\n// Kqueue_from_portset_np\n// Kqueue_portset\n// Getattrlist\n// Setattrlist\n// Getdirentriesattr\n// Searchfs\n// Delete\n// Copyfile\n// Watchevent\n// Waitevent\n// Modwatch\n// Getxattr\n// Fgetxattr\n// Setxattr\n// Fsetxattr\n// Removexattr\n// Fremovexattr\n// Listxattr\n// Flistxattr\n// Fsctl\n// Initgroups\n// Posix_spawn\n// Nfsclnt\n// Fhopen\n// Minherit\n// Semsys\n// Msgsys\n// Shmsys\n// Semctl\n// Semget\n// Semop\n// Msgctl\n// Msgget\n// Msgsnd\n// Msgrcv\n// Shmat\n// Shmctl\n// Shmdt\n// Shmget\n// Shm_open\n// Shm_unlink\n// Sem_open\n// Sem_close\n// Sem_unlink\n// Sem_wait\n// Sem_trywait\n// Sem_post\n// Sem_getvalue\n// Sem_init\n// Sem_destroy\n// Open_extended\n// Umask_extended\n// Stat_extended\n// Lstat_extended\n// Fstat_extended\n// Chmod_extended\n// Fchmod_extended\n// Access_extended\n// Settid\n// Gettid\n// Setsgroups\n// Getsgroups\n// Setwgroups\n// Getwgroups\n// Mkfifo_extended\n// Mkdir_extended\n// Identitysvc\n// Shared_region_check_np\n// Shared_region_map_np\n// __pthread_mutex_destroy\n// __pthread_mutex_init\n// __pthread_mutex_lock\n// __pthread_mutex_trylock\n// __pthread_mutex_unlock\n// __pthread_cond_init\n// __pthread_cond_destroy\n// __pthread_cond_broadcast\n// __pthread_cond_signal\n// Setsid_with_pid\n// __pthread_cond_timedwait\n// Aio_fsync\n// Aio_return\n// Aio_suspend\n// Aio_cancel\n// Aio_error\n// Aio_read\n// Aio_write\n// Lio_listio\n// __pthread_cond_wait\n// Iopolicysys\n// __pthread_kill\n// __pthread_sigmask\n// __sigwait\n// __disable_threadsignal\n// __pthread_markcancel\n// __pthread_canceled\n// __semwait_signal\n// Proc_info\n// Stat64_extended\n// Lstat64_extended\n// Fstat64_extended\n// __pthread_chdir\n// __pthread_fchdir\n// Audit\n// Auditon\n// Getauid\n// Setauid\n// Getaudit\n// Setaudit\n// Getaudit_addr\n// Setaudit_addr\n// Auditctl\n// Bsdthread_create\n// Bsdthread_terminate\n// Stack_snapshot\n// Bsdthread_register\n// Workq_open\n// Workq_ops\n// __mac_execve\n// __mac_syscall\n// __mac_get_file\n// __mac_set_file\n// __mac_get_link\n// __mac_set_link\n// __mac_get_proc\n// __mac_set_proc\n// __mac_get_fd\n// __mac_set_fd\n// __mac_get_pid\n// __mac_get_lcid\n// __mac_get_lctx\n// __mac_set_lctx\n// Setlcid\n// Read_nocancel\n// Write_nocancel\n// Open_nocancel\n// Close_nocancel\n// Wait4_nocancel\n// Recvmsg_nocancel\n// Sendmsg_nocancel\n// Recvfrom_nocancel\n// Accept_nocancel\n// Fcntl_nocancel\n// Select_nocancel\n// Fsync_nocancel\n// Connect_nocancel\n// Sigsuspend_nocancel\n// Readv_nocancel\n// Writev_nocancel\n// Sendto_nocancel\n// Pread_nocancel\n// Pwrite_nocancel\n// Waitid_nocancel\n// Msgsnd_nocancel\n// Msgrcv_nocancel\n// Sem_wait_nocancel\n// Aio_suspend_nocancel\n// __sigwait_nocancel\n// __semwait_signal_nocancel\n// __mac_mount\n// __mac_get_mount\n// __mac_getfsstat\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,dragonfly\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// FreeBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sync\"\n\t\"unsafe\"\n)\n\nconst (\n\tSYS_FSTAT_FREEBSD12         = 551 // { int fstat(int fd, _Out_ struct stat *sb); }\n\tSYS_FSTATAT_FREEBSD12       = 552 // { int fstatat(int fd, _In_z_ char *path, \\\n\tSYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \\\n\tSYS_STATFS_FREEBSD12        = 555 // { int statfs(_In_z_ char *path, \\\n\tSYS_FSTATFS_FREEBSD12       = 556 // { int fstatfs(int fd, \\\n\tSYS_GETFSSTAT_FREEBSD12     = 557 // { int getfsstat( \\\n\tSYS_MKNODAT_FREEBSD12       = 559 // { int mknodat(int fd, _In_z_ char *path, \\\n)\n\n// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\n// INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h\nconst _ino64First = 1200031\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n\traw    RawSockaddrDatalink\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn err\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar (\n\t\t_p0          unsafe.Pointer\n\t\tbufsize      uintptr\n\t\toldBuf       []statfs_freebsd11_t\n\t\tneedsConvert bool\n\t)\n\n\tif len(buf) > 0 {\n\t\tif supportsABI(_ino64First) {\n\t\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t\t} else {\n\t\t\tn := len(buf)\n\t\t\toldBuf = make([]statfs_freebsd11_t, n)\n\t\t\t_p0 = unsafe.Pointer(&oldBuf[0])\n\t\t\tbufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n)\n\t\t\tneedsConvert = true\n\t\t}\n\t}\n\tvar sysno uintptr = SYS_GETFSSTAT\n\tif supportsABI(_ino64First) {\n\t\tsysno = SYS_GETFSSTAT_FREEBSD12\n\t}\n\tr0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\tif e1 == 0 && needsConvert {\n\t\tfor i := range oldBuf {\n\t\t\tbuf[i].convertFrom(&oldBuf[i])\n\t\t}\n\t}\n\treturn\n}\n\nfunc setattrlistTimes(path string, times []Timespec, flags int) error {\n\t// used on Darwin for UtimesNano\n\treturn ENOSYS\n}\n\n//sys   ioctl(fd int, req uint, arg uintptr) (err error)\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Stat(path string, st *Stat_t) (err error) {\n\tvar oldStat stat_freebsd11_t\n\tif supportsABI(_ino64First) {\n\t\treturn fstatat_freebsd12(AT_FDCWD, path, st, 0)\n\t}\n\terr = stat(path, &oldStat)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tst.convertFrom(&oldStat)\n\treturn nil\n}\n\nfunc Lstat(path string, st *Stat_t) (err error) {\n\tvar oldStat stat_freebsd11_t\n\tif supportsABI(_ino64First) {\n\t\treturn fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)\n\t}\n\terr = lstat(path, &oldStat)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tst.convertFrom(&oldStat)\n\treturn nil\n}\n\nfunc Fstat(fd int, st *Stat_t) (err error) {\n\tvar oldStat stat_freebsd11_t\n\tif supportsABI(_ino64First) {\n\t\treturn fstat_freebsd12(fd, st)\n\t}\n\terr = fstat(fd, &oldStat)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tst.convertFrom(&oldStat)\n\treturn nil\n}\n\nfunc Fstatat(fd int, path string, st *Stat_t, flags int) (err error) {\n\tvar oldStat stat_freebsd11_t\n\tif supportsABI(_ino64First) {\n\t\treturn fstatat_freebsd12(fd, path, st, flags)\n\t}\n\terr = fstatat(fd, path, &oldStat, flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tst.convertFrom(&oldStat)\n\treturn nil\n}\n\nfunc Statfs(path string, st *Statfs_t) (err error) {\n\tvar oldStatfs statfs_freebsd11_t\n\tif supportsABI(_ino64First) {\n\t\treturn statfs_freebsd12(path, st)\n\t}\n\terr = statfs(path, &oldStatfs)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tst.convertFrom(&oldStatfs)\n\treturn nil\n}\n\nfunc Fstatfs(fd int, st *Statfs_t) (err error) {\n\tvar oldStatfs statfs_freebsd11_t\n\tif supportsABI(_ino64First) {\n\t\treturn fstatfs_freebsd12(fd, st)\n\t}\n\terr = fstatfs(fd, &oldStatfs)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tst.convertFrom(&oldStatfs)\n\treturn nil\n}\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn Getdirentries(fd, buf, nil)\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tif supportsABI(_ino64First) {\n\t\tif basep == nil || unsafe.Sizeof(*basep) == 8 {\n\t\t\treturn getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep)))\n\t\t}\n\t\t// The freebsd12 syscall needs a 64-bit base. On 32-bit machines\n\t\t// we can't just use the basep passed in. See #32498.\n\t\tvar base uint64 = uint64(*basep)\n\t\tn, err = getdirentries_freebsd12(fd, buf, &base)\n\t\t*basep = uintptr(base)\n\t\tif base>>32 != 0 {\n\t\t\t// We can't stuff the base back into a uintptr, so any\n\t\t\t// future calls would be suspect. Generate an error.\n\t\t\t// EIO is allowed by getdirentries.\n\t\t\terr = EIO\n\t\t}\n\t\treturn\n\t}\n\n\t// The old syscall entries are smaller than the new. Use 1/4 of the original\n\t// buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c).\n\toldBufLen := roundup(len(buf)/4, _dirblksiz)\n\toldBuf := make([]byte, oldBufLen)\n\tn, err = getdirentries(fd, oldBuf, basep)\n\tif err == nil && n > 0 {\n\t\tn = convertFromDirents11(buf, oldBuf[:n])\n\t}\n\treturn\n}\n\nfunc Mknod(path string, mode uint32, dev uint64) (err error) {\n\tvar oldDev int\n\tif supportsABI(_ino64First) {\n\t\treturn mknodat_freebsd12(AT_FDCWD, path, mode, dev)\n\t}\n\toldDev = int(dev)\n\treturn mknod(path, mode, oldDev)\n}\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar oldDev int\n\tif supportsABI(_ino64First) {\n\t\treturn mknodat_freebsd12(fd, path, mode, dev)\n\t}\n\toldDev = int(dev)\n\treturn mknodat(fd, path, mode, oldDev)\n}\n\n// round x to the nearest multiple of y, larger or equal to x.\n//\n// from /usr/include/sys/param.h Macros for counting and rounding.\n// #define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))\nfunc roundup(x, y int) int {\n\treturn ((x + y - 1) / y) * y\n}\n\nfunc (s *Stat_t) convertFrom(old *stat_freebsd11_t) {\n\t*s = Stat_t{\n\t\tDev:     uint64(old.Dev),\n\t\tIno:     uint64(old.Ino),\n\t\tNlink:   uint64(old.Nlink),\n\t\tMode:    old.Mode,\n\t\tUid:     old.Uid,\n\t\tGid:     old.Gid,\n\t\tRdev:    uint64(old.Rdev),\n\t\tAtim:    old.Atim,\n\t\tMtim:    old.Mtim,\n\t\tCtim:    old.Ctim,\n\t\tBtim:    old.Btim,\n\t\tSize:    old.Size,\n\t\tBlocks:  old.Blocks,\n\t\tBlksize: old.Blksize,\n\t\tFlags:   old.Flags,\n\t\tGen:     uint64(old.Gen),\n\t}\n}\n\nfunc (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) {\n\t*s = Statfs_t{\n\t\tVersion:     _statfsVersion,\n\t\tType:        old.Type,\n\t\tFlags:       old.Flags,\n\t\tBsize:       old.Bsize,\n\t\tIosize:      old.Iosize,\n\t\tBlocks:      old.Blocks,\n\t\tBfree:       old.Bfree,\n\t\tBavail:      old.Bavail,\n\t\tFiles:       old.Files,\n\t\tFfree:       old.Ffree,\n\t\tSyncwrites:  old.Syncwrites,\n\t\tAsyncwrites: old.Asyncwrites,\n\t\tSyncreads:   old.Syncreads,\n\t\tAsyncreads:  old.Asyncreads,\n\t\t// Spare\n\t\tNamemax: old.Namemax,\n\t\tOwner:   old.Owner,\n\t\tFsid:    old.Fsid,\n\t\t// Charspare\n\t\t// Fstypename\n\t\t// Mntfromname\n\t\t// Mntonname\n\t}\n\n\tsl := old.Fstypename[:]\n\tn := clen(*(*[]byte)(unsafe.Pointer(&sl)))\n\tcopy(s.Fstypename[:], old.Fstypename[:n])\n\n\tsl = old.Mntfromname[:]\n\tn = clen(*(*[]byte)(unsafe.Pointer(&sl)))\n\tcopy(s.Mntfromname[:], old.Mntfromname[:n])\n\n\tsl = old.Mntonname[:]\n\tn = clen(*(*[]byte)(unsafe.Pointer(&sl)))\n\tcopy(s.Mntonname[:], old.Mntonname[:n])\n}\n\nfunc convertFromDirents11(buf []byte, old []byte) int {\n\tconst (\n\t\tfixedSize    = int(unsafe.Offsetof(Dirent{}.Name))\n\t\toldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name))\n\t)\n\n\tdstPos := 0\n\tsrcPos := 0\n\tfor dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) {\n\t\tdstDirent := (*Dirent)(unsafe.Pointer(&buf[dstPos]))\n\t\tsrcDirent := (*dirent_freebsd11)(unsafe.Pointer(&old[srcPos]))\n\n\t\treclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8)\n\t\tif dstPos+reclen > len(buf) {\n\t\t\tbreak\n\t\t}\n\n\t\tdstDirent.Fileno = uint64(srcDirent.Fileno)\n\t\tdstDirent.Off = 0\n\t\tdstDirent.Reclen = uint16(reclen)\n\t\tdstDirent.Type = srcDirent.Type\n\t\tdstDirent.Pad0 = 0\n\t\tdstDirent.Namlen = uint16(srcDirent.Namlen)\n\t\tdstDirent.Pad1 = 0\n\n\t\tcopy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen])\n\t\tpadding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen]\n\t\tfor i := range padding {\n\t\t\tpadding[i] = 0\n\t\t}\n\n\t\tdstPos += int(dstDirent.Reclen)\n\t\tsrcPos += int(srcDirent.Reclen)\n\t}\n\n\treturn dstPos\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data int) (err error)\n\nfunc PtraceAttach(pid int) (err error) {\n\treturn ptrace(PTRACE_ATTACH, pid, 0, 0)\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_CONT, pid, 1, signal)\n}\n\nfunc PtraceDetach(pid int) (err error) {\n\treturn ptrace(PTRACE_DETACH, pid, 1, 0)\n}\n\nfunc PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {\n\treturn ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)\n}\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)\n}\n\nfunc PtraceGetRegs(pid int, regsout *Reg) (err error) {\n\treturn ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)\n}\n\nfunc PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {\n\tioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint(countin)}\n\terr = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)\n\treturn int(ioDesc.Len), err\n}\n\nfunc PtraceLwpEvents(pid int, enable int) (err error) {\n\treturn ptrace(PTRACE_LWPEVENTS, pid, 0, enable)\n}\n\nfunc PtraceLwpInfo(pid int, info uintptr) (err error) {\n\treturn ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{})))\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong)\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong)\n}\n\nfunc PtraceSetRegs(pid int, regs *Reg) (err error) {\n\treturn ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0)\n}\n\nfunc PtraceSingleStep(pid int) (err error) {\n\treturn ptrace(PTRACE_SINGLESTEP, pid, 1, 0)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tCapEnter() (err error)\n//sys\tcapRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET\n//sys\tcapRightsLimit(fd int, rightsp *CapRights) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tfstat(fd int, stat *stat_freebsd11_t) (err error)\n//sys\tfstat_freebsd12(fd int, stat *Stat_t) (err error)\n//sys\tfstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error)\n//sys\tfstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tfstatfs(fd int, stat *statfs_freebsd11_t) (err error)\n//sys\tfstatfs_freebsd12(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tgetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sys\tgetdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tlstat(path string, stat *stat_freebsd11_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tmknod(path string, mode uint32, dev int) (err error)\n//sys\tmknodat(fd int, path string, mode uint32, dev int) (err error)\n//sys\tmknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(fdat int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tstat(path string, stat *stat_freebsd11_t) (err error)\n//sys\tstatfs(path string, stat *statfs_freebsd11_t) (err error)\n//sys\tstatfs_freebsd12(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys   munmap(addr uintptr, length uintptr) (err error)\n//sys\treadlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ\n//sys\twritelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Unimplemented\n */\n// Profil\n// Sigaction\n// Sigprocmask\n// Getlogin\n// Sigpending\n// Sigaltstack\n// Ioctl\n// Reboot\n// Execve\n// Vfork\n// Sbrk\n// Sstk\n// Ovadvise\n// Mincore\n// Setitimer\n// Swapon\n// Select\n// Sigsuspend\n// Readv\n// Writev\n// Nfssvc\n// Getfh\n// Quotactl\n// Mount\n// Csops\n// Waitid\n// Add_profil\n// Kdebug_trace\n// Sigreturn\n// Atsocket\n// Kqueue_from_portset_np\n// Kqueue_portset\n// Getattrlist\n// Setattrlist\n// Getdents\n// Getdirentriesattr\n// Searchfs\n// Delete\n// Copyfile\n// Watchevent\n// Waitevent\n// Modwatch\n// Fsctl\n// Initgroups\n// Posix_spawn\n// Nfsclnt\n// Fhopen\n// Minherit\n// Semsys\n// Msgsys\n// Shmsys\n// Semctl\n// Semget\n// Semop\n// Msgctl\n// Msgget\n// Msgsnd\n// Msgrcv\n// Shmat\n// Shmctl\n// Shmdt\n// Shmget\n// Shm_open\n// Shm_unlink\n// Sem_open\n// Sem_close\n// Sem_unlink\n// Sem_wait\n// Sem_trywait\n// Sem_post\n// Sem_getvalue\n// Sem_init\n// Sem_destroy\n// Open_extended\n// Umask_extended\n// Stat_extended\n// Lstat_extended\n// Fstat_extended\n// Chmod_extended\n// Fchmod_extended\n// Access_extended\n// Settid\n// Gettid\n// Setsgroups\n// Getsgroups\n// Setwgroups\n// Getwgroups\n// Mkfifo_extended\n// Mkdir_extended\n// Identitysvc\n// Shared_region_check_np\n// Shared_region_map_np\n// __pthread_mutex_destroy\n// __pthread_mutex_init\n// __pthread_mutex_lock\n// __pthread_mutex_trylock\n// __pthread_mutex_unlock\n// __pthread_cond_init\n// __pthread_cond_destroy\n// __pthread_cond_broadcast\n// __pthread_cond_signal\n// Setsid_with_pid\n// __pthread_cond_timedwait\n// Aio_fsync\n// Aio_return\n// Aio_suspend\n// Aio_cancel\n// Aio_error\n// Aio_read\n// Aio_write\n// Lio_listio\n// __pthread_cond_wait\n// Iopolicysys\n// __pthread_kill\n// __pthread_sigmask\n// __sigwait\n// __disable_threadsignal\n// __pthread_markcancel\n// __pthread_canceled\n// __semwait_signal\n// Proc_info\n// Stat64_extended\n// Lstat64_extended\n// Fstat64_extended\n// __pthread_chdir\n// __pthread_fchdir\n// Audit\n// Auditon\n// Getauid\n// Setauid\n// Getaudit\n// Setaudit\n// Getaudit_addr\n// Setaudit_addr\n// Auditctl\n// Bsdthread_create\n// Bsdthread_terminate\n// Stack_snapshot\n// Bsdthread_register\n// Workq_open\n// Workq_ops\n// __mac_execve\n// __mac_syscall\n// __mac_get_file\n// __mac_set_file\n// __mac_get_link\n// __mac_set_link\n// __mac_get_proc\n// __mac_set_proc\n// __mac_get_fd\n// __mac_set_fd\n// __mac_get_pid\n// __mac_get_lcid\n// __mac_get_lctx\n// __mac_set_lctx\n// Setlcid\n// Read_nocancel\n// Write_nocancel\n// Open_nocancel\n// Close_nocancel\n// Wait4_nocancel\n// Recvmsg_nocancel\n// Sendmsg_nocancel\n// Recvfrom_nocancel\n// Accept_nocancel\n// Fcntl_nocancel\n// Select_nocancel\n// Fsync_nocancel\n// Connect_nocancel\n// Sigsuspend_nocancel\n// Readv_nocancel\n// Writev_nocancel\n// Sendto_nocancel\n// Pread_nocancel\n// Pwrite_nocancel\n// Waitid_nocancel\n// Poll_nocancel\n// Msgsnd_nocancel\n// Msgrcv_nocancel\n// Sem_wait_nocancel\n// Aio_suspend_nocancel\n// __sigwait_nocancel\n// __semwait_signal_nocancel\n// __mac_mount\n// __mac_get_mount\n// __mac_getfsstat\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build 386,freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm,freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm64,freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Linux system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport (\n\t\"encoding/binary\"\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\n//sys\tFanotifyInit(flags uint, event_f_flags uint) (fd int, err error)\n//sys\tfanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)\n\nfunc FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {\n\tif pathname == \"\" {\n\t\treturn fanotifyMark(fd, flags, mask, dirFd, nil)\n\t}\n\tp, err := BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fanotifyMark(fd, flags, mask, dirFd, p)\n}\n\n//sys\tfchmodat(dirfd int, path string, mode uint32) (err error)\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t// Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior\n\t// and check the flags. Otherwise the mode would be applied to the symlink\n\t// destination which is not what the user expects.\n\tif flags&^AT_SYMLINK_NOFOLLOW != 0 {\n\t\treturn EINVAL\n\t} else if flags&AT_SYMLINK_NOFOLLOW != 0 {\n\t\treturn EOPNOTSUPP\n\t}\n\treturn fchmodat(dirfd, path, mode)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlRetInt performs an ioctl operation specified by req on a device\n// associated with opened file descriptor fd, and returns a non-negative\n// integer that is returned by the ioctl syscall.\nfunc IoctlRetInt(fd int, req uint) (int, error) {\n\tret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req uint, value int) error {\n\tv := int32(value)\n\treturn ioctl(fd, req, uintptr(unsafe.Pointer(&v)))\n}\n\nfunc IoctlSetRTCTime(fd int, value *RTCTime) error {\n\terr := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value)))\n\truntime.KeepAlive(value)\n\treturn err\n}\n\nfunc IoctlGetUint32(fd int, req uint) (uint32, error) {\n\tvar value uint32\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))\n\treturn value, err\n}\n\nfunc IoctlGetRTCTime(fd int) (*RTCTime, error) {\n\tvar value RTCTime\n\terr := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value)))\n\treturn &value, err\n}\n\n//sys\tLinkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)\n\nfunc Link(oldpath string, newpath string) (err error) {\n\treturn Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\treturn Mkdirat(AT_FDCWD, path, mode)\n}\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\treturn openat(AT_FDCWD, path, mode|O_LARGEFILE, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\treturn openat(dirfd, path, flags|O_LARGEFILE, mode)\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\treturn Readlinkat(AT_FDCWD, path, buf)\n}\n\nfunc Rename(oldpath string, newpath string) (err error) {\n\treturn Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)\n}\n\nfunc Rmdir(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, AT_REMOVEDIR)\n}\n\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n\nfunc Symlink(oldpath string, newpath string) (err error) {\n\treturn Symlinkat(oldpath, AT_FDCWD, newpath)\n}\n\nfunc Unlink(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, 0)\n}\n\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar ts [2]Timespec\n\tts[0] = NsecToTimespec(TimevalToNsec(tv[0]))\n\tts[1] = NsecToTimespec(TimevalToNsec(tv[1]))\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\t// If the utimensat syscall isn't available (utimensat was added to Linux\n\t// in 2.6.22, Released, 8 July 2007) then fall back to utimes\n\tvar tv [2]Timeval\n\tfor i := 0; i < 2; i++ {\n\t\ttv[i] = NsecToTimeval(TimespecToNsec(ts[i]))\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(dirfd, path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc Futimes(fd int, tv []Timeval) (err error) {\n\t// Believe it or not, this is the best we can do on Linux\n\t// (and is what glibc does).\n\treturn Utimes(\"/proc/self/fd/\"+itoa(fd), tv)\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits. At least that's the idea.\n// There are various irregularities. For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int {\n\tif w.StopSignal() != SIGTRAP {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) >> 8\n}\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\nfunc Mkfifo(path string, mode uint32) error {\n\treturn Mknod(path, mode|S_IFIFO, 0)\n}\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) error {\n\treturn Mknodat(dirfd, path, mode|S_IFIFO, 0)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' {\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets.\ntype SockaddrLinklayer struct {\n\tProtocol uint16\n\tIfindex  int\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]byte\n\traw      RawSockaddrLinklayer\n}\n\nfunc (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_PACKET\n\tsa.raw.Protocol = sa.Protocol\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tsa.raw.Hatype = sa.Hatype\n\tsa.raw.Pkttype = sa.Pkttype\n\tsa.raw.Halen = sa.Halen\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil\n}\n\n// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets.\ntype SockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n\traw    RawSockaddrNetlink\n}\n\nfunc (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_NETLINK\n\tsa.raw.Pad = sa.Pad\n\tsa.raw.Pid = sa.Pid\n\tsa.raw.Groups = sa.Groups\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil\n}\n\n// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the HCI protocol.\ntype SockaddrHCI struct {\n\tDev     uint16\n\tChannel uint16\n\traw     RawSockaddrHCI\n}\n\nfunc (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Dev = sa.Dev\n\tsa.raw.Channel = sa.Channel\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil\n}\n\n// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the L2CAP protocol.\ntype SockaddrL2 struct {\n\tPSM      uint16\n\tCID      uint16\n\tAddr     [6]uint8\n\tAddrType uint8\n\traw      RawSockaddrL2\n}\n\nfunc (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tpsm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))\n\tpsm[0] = byte(sa.PSM)\n\tpsm[1] = byte(sa.PSM >> 8)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]\n\t}\n\tcid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))\n\tcid[0] = byte(sa.CID)\n\tcid[1] = byte(sa.CID >> 8)\n\tsa.raw.Bdaddr_type = sa.AddrType\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil\n}\n\n// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the RFCOMM protocol.\n//\n// Server example:\n//\n//      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//      _ = unix.Bind(fd, &unix.SockaddrRFCOMM{\n//      \tChannel: 1,\n//      \tAddr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00\n//      })\n//      _ = Listen(fd, 1)\n//      nfd, sa, _ := Accept(fd)\n//      fmt.Printf(\"conn addr=%v fd=%d\", sa.(*unix.SockaddrRFCOMM).Addr, nfd)\n//      Read(nfd, buf)\n//\n// Client example:\n//\n//      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//      _ = Connect(fd, &SockaddrRFCOMM{\n//      \tChannel: 1,\n//      \tAddr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11\n//      })\n//      Write(fd, []byte(`hello`))\ntype SockaddrRFCOMM struct {\n\t// Addr represents a bluetooth address, byte ordering is little-endian.\n\tAddr [6]uint8\n\n\t// Channel is a designated bluetooth channel, only 1-30 are available for use.\n\t// Since Linux 2.6.7 and further zero value is the first available channel.\n\tChannel uint8\n\n\traw RawSockaddrRFCOMM\n}\n\nfunc (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Channel = sa.Channel\n\tsa.raw.Bdaddr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil\n}\n\n// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.\n// The RxID and TxID fields are used for transport protocol addressing in\n// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with\n// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning.\n//\n// The SockaddrCAN struct must be bound to the socket file descriptor\n// using Bind before the CAN socket can be used.\n//\n//      // Read one raw CAN frame\n//      fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)\n//      addr := &SockaddrCAN{Ifindex: index}\n//      Bind(fd, addr)\n//      frame := make([]byte, 16)\n//      Read(fd, frame)\n//\n// The full SocketCAN documentation can be found in the linux kernel\n// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt\ntype SockaddrCAN struct {\n\tIfindex int\n\tRxID    uint32\n\tTxID    uint32\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i] = rx[i]\n\t}\n\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i+4] = tx[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets.\n// SockaddrALG enables userspace access to the Linux kernel's cryptography\n// subsystem. The Type and Name fields specify which type of hash or cipher\n// should be used with a given socket.\n//\n// To create a file descriptor that provides access to a hash or cipher, both\n// Bind and Accept must be used. Once the setup process is complete, input\n// data can be written to the socket, processed by the kernel, and then read\n// back as hash output or ciphertext.\n//\n// Here is an example of using an AF_ALG socket with SHA1 hashing.\n// The initial socket setup process is as follows:\n//\n//      // Open a socket to perform SHA1 hashing.\n//      fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)\n//      addr := &unix.SockaddrALG{Type: \"hash\", Name: \"sha1\"}\n//      unix.Bind(fd, addr)\n//      // Note: unix.Accept does not work at this time; must invoke accept()\n//      // manually using unix.Syscall.\n//      hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)\n//\n// Once a file descriptor has been returned from Accept, it may be used to\n// perform SHA1 hashing. The descriptor is not safe for concurrent use, but\n// may be re-used repeatedly with subsequent Write and Read operations.\n//\n// When hashing a small byte slice or string, a single Write and Read may\n// be used:\n//\n//      // Assume hashfd is already configured using the setup process.\n//      hash := os.NewFile(hashfd, \"sha1\")\n//      // Hash an input string and read the results. Each Write discards\n//      // previous hash state. Read always reads the current state.\n//      b := make([]byte, 20)\n//      for i := 0; i < 2; i++ {\n//          io.WriteString(hash, \"Hello, world.\")\n//          hash.Read(b)\n//          fmt.Println(hex.EncodeToString(b))\n//      }\n//      // Output:\n//      // 2ae01472317d1935a84797ec1983ae243fc6aa28\n//      // 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\n// For hashing larger byte slices, or byte streams such as those read from\n// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update\n// the hash digest instead of creating a new one for a given chunk and finalizing it.\n//\n//      // Assume hashfd and addr are already configured using the setup process.\n//      hash := os.NewFile(hashfd, \"sha1\")\n//      // Hash the contents of a file.\n//      f, _ := os.Open(\"/tmp/linux-4.10-rc7.tar.xz\")\n//      b := make([]byte, 4096)\n//      for {\n//          n, err := f.Read(b)\n//          if err == io.EOF {\n//              break\n//          }\n//          unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)\n//      }\n//      hash.Read(b)\n//      fmt.Println(hex.EncodeToString(b))\n//      // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5\n//\n// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.\ntype SockaddrALG struct {\n\tType    string\n\tName    string\n\tFeature uint32\n\tMask    uint32\n\traw     RawSockaddrALG\n}\n\nfunc (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\t// Leave room for NUL byte terminator.\n\tif len(sa.Type) > 13 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Name) > 63 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\tsa.raw.Family = AF_ALG\n\tsa.raw.Feat = sa.Feature\n\tsa.raw.Mask = sa.Mask\n\n\ttyp, err := ByteSliceFromString(sa.Type)\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}\n\tname, err := ByteSliceFromString(sa.Name)\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tcopy(sa.raw.Type[:], typ)\n\tcopy(sa.raw.Name[:], name)\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Linux VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID  uint32\n\tPort uint32\n\traw  RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\ntype SockaddrXDP struct {\n\tFlags        uint16\n\tIfindex      uint32\n\tQueueID      uint32\n\tSharedUmemFD uint32\n\traw          RawSockaddrXDP\n}\n\nfunc (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_XDP\n\tsa.raw.Flags = sa.Flags\n\tsa.raw.Ifindex = sa.Ifindex\n\tsa.raw.Queue_id = sa.QueueID\n\tsa.raw.Shared_umem_fd = sa.SharedUmemFD\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil\n}\n\n// This constant mirrors the #define of PX_PROTO_OE in\n// linux/if_pppox.h. We're defining this by hand here instead of\n// autogenerating through mkerrors.sh because including\n// linux/if_pppox.h causes some declaration conflicts with other\n// includes (linux/if_pppox.h includes linux/in.h, which conflicts\n// with netinet/in.h). Given that we only need a single zero constant\n// out of that file, it's cleaner to just define it by hand here.\nconst px_proto_oe = 0\n\ntype SockaddrPPPoE struct {\n\tSID    uint16\n\tRemote []byte\n\tDev    string\n\traw    RawSockaddrPPPoX\n}\n\nfunc (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif len(sa.Remote) != 6 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Dev) > IFNAMSIZ-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\t*(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX\n\t// This next field is in host-endian byte order. We can't use the\n\t// same unsafe pointer cast as above, because this value is not\n\t// 32-bit aligned and some architectures don't allow unaligned\n\t// access.\n\t//\n\t// However, the value of px_proto_oe is 0, so we can use\n\t// encoding/binary helpers to write the bytes without worrying\n\t// about the ordering.\n\tbinary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe)\n\t// This field is deliberately big-endian, unlike the previous\n\t// one. The kernel expects SID to be in network byte order.\n\tbinary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)\n\tcopy(sa.raw[8:14], sa.Remote)\n\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\tsa.raw[i] = 0\n\t}\n\tcopy(sa.raw[14:], sa.Dev)\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil\n}\n\n// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.\n// For more information on TIPC, see: http://tipc.sourceforge.net/.\ntype SockaddrTIPC struct {\n\t// Scope is the publication scopes when binding service/service range.\n\t// Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.\n\tScope int\n\n\t// Addr is the type of address used to manipulate a socket. Addr must be\n\t// one of:\n\t//  - *TIPCSocketAddr: \"id\" variant in the C addr union\n\t//  - *TIPCServiceRange: \"nameseq\" variant in the C addr union\n\t//  - *TIPCServiceName: \"name\" variant in the C addr union\n\t//\n\t// If nil, EINVAL will be returned when the structure is used.\n\tAddr TIPCAddr\n\n\traw RawSockaddrTIPC\n}\n\n// TIPCAddr is implemented by types that can be used as an address for\n// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,\n// and *TIPCServiceName.\ntype TIPCAddr interface {\n\ttipcAddrtype() uint8\n\ttipcAddr() [12]byte\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }\n\nfunc (sa *TIPCServiceRange) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }\n\nfunc (sa *TIPCServiceName) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }\n\nfunc (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Addr == nil {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\tsa.raw.Family = AF_TIPC\n\tsa.raw.Scope = int8(sa.Scope)\n\tsa.raw.Addrtype = sa.Addr.tipcAddrtype()\n\tsa.raw.Addr = sa.Addr.tipcAddr()\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_NETLINK:\n\t\tpp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrNetlink)\n\t\tsa.Family = pp.Family\n\t\tsa.Pad = pp.Pad\n\t\tsa.Pid = pp.Pid\n\t\tsa.Groups = pp.Groups\n\t\treturn sa, nil\n\n\tcase AF_PACKET:\n\t\tpp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrLinklayer)\n\t\tsa.Protocol = pp.Protocol\n\t\tsa.Ifindex = int(pp.Ifindex)\n\t\tsa.Hatype = pp.Hatype\n\t\tsa.Pkttype = pp.Pkttype\n\t\tsa.Halen = pp.Halen\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tbytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]\n\t\tsa.Name = string(bytes)\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:  pp.Cid,\n\t\t\tPort: pp.Port,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_BLUETOOTH:\n\t\tproto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections\n\t\tswitch proto {\n\t\tcase BTPROTO_L2CAP:\n\t\t\tpp := (*RawSockaddrL2)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrL2{\n\t\t\t\tPSM:      pp.Psm,\n\t\t\t\tCID:      pp.Cid,\n\t\t\t\tAddr:     pp.Bdaddr,\n\t\t\t\tAddrType: pp.Bdaddr_type,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase BTPROTO_RFCOMM:\n\t\t\tpp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrRFCOMM{\n\t\t\t\tChannel: pp.Channel,\n\t\t\t\tAddr:    pp.Bdaddr,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_XDP:\n\t\tpp := (*RawSockaddrXDP)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrXDP{\n\t\t\tFlags:        pp.Flags,\n\t\t\tIfindex:      pp.Ifindex,\n\t\t\tQueueID:      pp.Queue_id,\n\t\t\tSharedUmemFD: pp.Shared_umem_fd,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_PPPOX:\n\t\tpp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa))\n\t\tif binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := &SockaddrPPPoE{\n\t\t\tSID:    binary.BigEndian.Uint16(pp[6:8]),\n\t\t\tRemote: pp[8:14],\n\t\t}\n\t\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\t\tif pp[i] == 0 {\n\t\t\t\tsa.Dev = string(pp[14:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn sa, nil\n\tcase AF_TIPC:\n\t\tpp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))\n\n\t\tsa := &SockaddrTIPC{\n\t\t\tScope: int(pp.Scope),\n\t\t}\n\n\t\t// Determine which union variant is present in pp.Addr by checking\n\t\t// pp.Addrtype.\n\t\tswitch pp.Addrtype {\n\t\tcase TIPC_SERVICE_RANGE:\n\t\t\tsa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SERVICE_ADDR:\n\t\t\tsa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SOCKET_ADDR:\n\t\t\tsa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptUcred(fd, level, opt int) (*Ucred, error) {\n\tvar value Ucred\n\tvallen := _Socklen(SizeofUcred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tvar value TCPInfo\n\tvallen := _Socklen(SizeofTCPInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\tif err == ERANGE {\n\t\t\tbuf = make([]byte, vallen)\n\t\t\terr = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\treturn string(buf[:vallen-1]), nil\n}\n\nfunc GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {\n\tvar value TpacketStats\n\tvallen := _Socklen(SizeofTpacketStats)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {\n\tvar value TpacketStatsV3\n\tvallen := _Socklen(SizeofTpacketStatsV3)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\nfunc SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a\n// socket to filter incoming packets.  See 'man 7 socket' for usage information.\nfunc SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))\n}\n\nfunc SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {\n\tvar p unsafe.Pointer\n\tif len(filter) > 0 {\n\t\tp = unsafe.Pointer(&filter[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))\n}\n\nfunc SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\n// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)\n\n// KeyctlInt calls keyctl commands in which each argument is an int.\n// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK,\n// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT,\n// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT,\n// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT.\n//sys\tKeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlBuffer calls keyctl commands in which the third and fourth\n// arguments are a buffer and its length, respectively.\n// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE.\n//sys\tKeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlString calls keyctl commands which return a string.\n// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY.\nfunc KeyctlString(cmd int, id int) (string, error) {\n\t// We must loop as the string data may change in between the syscalls.\n\t// We could allocate a large buffer here to reduce the chance that the\n\t// syscall needs to be called twice; however, this is unnecessary as\n\t// the performance loss is negligible.\n\tvar buffer []byte\n\tfor {\n\t\t// Try to fill the buffer with data\n\t\tlength, err := KeyctlBuffer(cmd, id, buffer, 0)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\t// Check if the data was written\n\t\tif length <= len(buffer) {\n\t\t\t// Exclude the null terminator\n\t\t\treturn string(buffer[:length-1]), nil\n\t\t}\n\n\t\t// Make a bigger buffer if needed\n\t\tbuffer = make([]byte, length)\n\t}\n}\n\n// Keyctl commands with special signatures.\n\n// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html\nfunc KeyctlGetKeyringID(id int, create bool) (ringid int, err error) {\n\tcreateInt := 0\n\tif create {\n\t\tcreateInt = 1\n\t}\n\treturn KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0)\n}\n\n// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the\n// key handle permission mask as described in the \"keyctl setperm\" section of\n// http://man7.org/linux/man-pages/man1/keyctl.1.html.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html\nfunc KeyctlSetperm(id int, perm uint32) error {\n\t_, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0)\n\treturn err\n}\n\n//sys\tkeyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html\nfunc KeyctlJoinSessionKeyring(name string) (ringid int, err error) {\n\treturn keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name)\n}\n\n//sys\tkeyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlSearch implements the KEYCTL_SEARCH command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_search.3.html\nfunc KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) {\n\treturn keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)\n}\n\n//sys\tkeyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL\n\n// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This\n// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice\n// of Iovec (each of which represents a buffer) instead of a single buffer.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html\nfunc KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error {\n\treturn keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)\n}\n\n//sys\tkeyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command\n// computes a Diffie-Hellman shared secret based on the provide params. The\n// secret is written to the provided buffer and the returned size is the number\n// of bytes written (returning an error if there is insufficient space in the\n// buffer). If a nil buffer is passed in, this function returns the minimum\n// buffer length needed to store the appropriate data. Note that this differs\n// from KEYCTL_READ's behavior which always returns the requested payload size.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html\nfunc KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) {\n\treturn keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)\n}\n\n// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This\n// command limits the set of keys that can be linked to the keyring, regardless\n// of keyring permissions. The command requires the \"setattr\" permission.\n//\n// When called with an empty keyType the command locks the keyring, preventing\n// any further keys from being linked to the keyring.\n//\n// The \"asymmetric\" keyType defines restrictions requiring key payloads to be\n// DER encoded X.509 certificates signed by keys in another keyring. Restrictions\n// for \"asymmetric\" include \"builtin_trusted\", \"builtin_and_secondary_trusted\",\n// \"key_or_keyring:<key>\", and \"key_or_keyring:<key>:chain\".\n//\n// As of Linux 4.12, only the \"asymmetric\" keyType defines type-specific\n// restrictions.\n//\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html\n// http://man7.org/linux/man-pages/man2/keyctl.2.html\nfunc KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {\n\tif keyType == \"\" {\n\t\treturn keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)\n\t}\n\treturn keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)\n}\n\n//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL\n//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar msg Msghdr\n\tvar rsa RawSockaddrAny\n\tmsg.Name = (*byte)(unsafe.Pointer(&rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = &p[0]\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\tif len(p) == 0 {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// receive at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tiov.Base = &dummy\n\t\t\t\tiov.SetLen(1)\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tvar err error\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(ptr)\n\tmsg.Namelen = uint32(salen)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = &p[0]\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\tif len(p) == 0 {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\t// send at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tiov.Base = &dummy\n\t\t\t\tiov.SetLen(1)\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && len(p) == 0 {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n// BindToDevice binds the socket associated with fd to device.\nfunc BindToDevice(fd int, device string) (err error) {\n\treturn SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data uintptr) (err error)\n\nfunc ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) {\n\t// The peek requests are machine-size oriented, so we wrap it\n\t// to retrieve arbitrary-length data.\n\n\t// The ptrace syscall differs from glibc's ptrace.\n\t// Peeks returns the word in *data, not as the return value.\n\n\tvar buf [SizeofPtr]byte\n\n\t// Leading edge. PEEKTEXT/PEEKDATA don't require aligned\n\t// access (PEEKUSER warns that it might), but if we don't\n\t// align our reads, we might straddle an unmapped page\n\t// boundary and not get the bytes leading up to the page\n\t// boundary.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\terr = ptrace(req, pid, addr-addr%SizeofPtr, uintptr(unsafe.Pointer(&buf[0])))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(out, buf[addr%SizeofPtr:])\n\t\tout = out[n:]\n\t}\n\n\t// Remainder.\n\tfor len(out) > 0 {\n\t\t// We use an internal buffer to guarantee alignment.\n\t\t// It's not documented if this is necessary, but we're paranoid.\n\t\terr = ptrace(req, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopied := copy(out, buf[0:])\n\t\tn += copied\n\t\tout = out[copied:]\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKTEXT, pid, addr, out)\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKDATA, pid, addr, out)\n}\n\nfunc PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKUSR, pid, addr, out)\n}\n\nfunc ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) {\n\t// As for ptracePeek, we need to align our accesses to deal\n\t// with the possibility of straddling an invalid page.\n\n\t// Leading edge.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptrace(peekReq, pid, addr-addr%SizeofPtr, uintptr(unsafe.Pointer(&buf[0])))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(buf[addr%SizeofPtr:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tdata = data[n:]\n\t}\n\n\t// Interior.\n\tfor len(data) > SizeofPtr {\n\t\tword := *((*uintptr)(unsafe.Pointer(&data[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += SizeofPtr\n\t\tdata = data[SizeofPtr:]\n\t}\n\n\t// Trailing edge.\n\tif len(data) > 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopy(buf[0:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += len(data)\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)\n}\n\nfunc PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data)\n}\n\nfunc PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\nfunc PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n\nfunc PtraceSetOptions(pid int, options int) (err error) {\n\treturn ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))\n}\n\nfunc PtraceGetEventMsg(pid int) (msg uint, err error) {\n\tvar data _C_long\n\terr = ptrace(PTRACE_GETEVENTMSG, pid, 0, uintptr(unsafe.Pointer(&data)))\n\tmsg = uint(data)\n\treturn\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_CONT, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSyscall(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }\n\nfunc PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }\n\n//sys\treboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)\n\nfunc Reboot(cmd int) (err error) {\n\treturn reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, \"\")\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tmount(source string, target string, fstype string, flags uintptr, data *byte) (err error)\n\nfunc Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\t// Certain file systems get rather angry and EINVAL if you give\n\t// them an empty string of data, rather than NULL.\n\tif data == \"\" {\n\t\treturn mount(source, target, fstype, flags, nil)\n\t}\n\tdatap, err := BytePtrFromString(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn mount(source, target, fstype, flags, datap)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// Sendto\n// Recvfrom\n// Socketpair\n\n/*\n * Direct access\n */\n//sys\tAcct(path string) (err error)\n//sys\tAddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)\n//sys\tAdjtimex(buf *Timex) (state int, err error)\n//sys\tCapget(hdr *CapUserHeader, data *CapUserData) (err error)\n//sys\tCapset(hdr *CapUserHeader, data *CapUserData) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGetres(clockid int32, res *Timespec) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tDeleteModule(name string, flags int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tDup3(oldfd int, newfd int, flags int) (err error)\n//sysnb\tEpollCreate1(flag int) (fd int, err error)\n//sysnb\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error)\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2\n//sys\tExit(code int) = SYS_EXIT_GROUP\n//sys\tFallocate(fd int, mode uint32, off int64, len int64) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFgetxattr(fd int, attr string, dest []byte) (sz int, err error)\n//sys\tFinitModule(fd int, params string, flags int) (err error)\n//sys\tFlistxattr(fd int, dest []byte) (sz int, err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFremovexattr(fd int, attr string) (err error)\n//sys\tFsetxattr(fd int, attr string, dest []byte, flags int) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tGetdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sys\tGetrandom(buf []byte, flags int) (n int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettid() (tid int)\n//sys\tGetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tInitModule(moduleImage []byte, params string) (err error)\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)\n//sysnb\tInotifyInit1(flags int) (fd int, err error)\n//sysnb\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error)\n//sysnb\tKill(pid int, sig syscall.Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG\n//sys\tLgetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tListxattr(path string, dest []byte) (sz int, err error)\n//sys\tLlistxattr(path string, dest []byte) (sz int, err error)\n//sys\tLremovexattr(path string, attr string) (err error)\n//sys\tLsetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tMemfdCreate(name string, flags int) (fd int, err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tPerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)\n//sys\tPivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT\n//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64\n//sys   Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)\n//sys\tPselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tRemovexattr(path string, attr string) (err error)\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)\n//sys\tRequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n//sys\tSetns(fd int, nstype int) (err error)\n\n// issue 1435.\n// On linux Setuid and Setgid only affects the current thread, not the process.\n// This does not match what most callers expect so we must return an error\n// here rather than letting the caller think that the call succeeded.\n\nfunc Setuid(uid int) (err error) {\n\treturn EOPNOTSUPP\n}\n\nfunc Setgid(uid int) (err error) {\n\treturn EOPNOTSUPP\n}\n\nfunc Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {\n\treturn signalfd(fd, sigmask, _C__NSIG/8, flags)\n}\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tsignalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sys\tSyncfs(fd int) (err error)\n//sysnb\tSysinfo(info *Sysinfo_t) (err error)\n//sys\tTee(rfd int, wfd int, len int, flags int) (n int64, err error)\n//sysnb\tTgkill(tgid int, tid int, sig syscall.Signal) (err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = SYS_UMOUNT2\n//sys\tUnshare(flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\texitThread(code int) (err error) = SYS_EXIT\n//sys\treadlen(fd int, p *byte, np int) (n int, err error) = SYS_READ\n//sys\twritelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE\n\n// mmap varies by architecture; see syscall_linux_*.go.\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\n// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,\n// using the specified flags.\nfunc Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {\n\tvar p unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\tp = unsafe.Pointer(&iovs[0])\n\t}\n\n\tn, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0)\n\tif errno != 0 {\n\t\treturn 0, syscall.Errno(errno)\n\t}\n\n\treturn int(n), nil\n}\n\n//sys\tfaccessat(dirfd int, path string, mode uint32) (err error)\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tif flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {\n\t\treturn EINVAL\n\t}\n\n\t// The Linux kernel faccessat system call does not take any flags.\n\t// The glibc faccessat implements the flags itself; see\n\t// https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD\n\t// Because people naturally expect syscall.Faccessat to act\n\t// like C faccessat, we do the same.\n\n\tif flags == 0 {\n\t\treturn faccessat(dirfd, path, mode)\n\t}\n\n\tvar st Stat_t\n\tif err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil {\n\t\treturn err\n\t}\n\n\tmode &= 7\n\tif mode == 0 {\n\t\treturn nil\n\t}\n\n\tvar uid int\n\tif flags&AT_EACCESS != 0 {\n\t\tuid = Geteuid()\n\t} else {\n\t\tuid = Getuid()\n\t}\n\n\tif uid == 0 {\n\t\tif mode&1 == 0 {\n\t\t\t// Root can read and write any file.\n\t\t\treturn nil\n\t\t}\n\t\tif st.Mode&0111 != 0 {\n\t\t\t// Root can execute any file that anybody can execute.\n\t\t\treturn nil\n\t\t}\n\t\treturn EACCES\n\t}\n\n\tvar fmode uint32\n\tif uint32(uid) == st.Uid {\n\t\tfmode = (st.Mode >> 6) & 7\n\t} else {\n\t\tvar gid int\n\t\tif flags&AT_EACCESS != 0 {\n\t\t\tgid = Getegid()\n\t\t} else {\n\t\t\tgid = Getgid()\n\t\t}\n\n\t\tif uint32(gid) == st.Gid {\n\t\t\tfmode = (st.Mode >> 3) & 7\n\t\t} else {\n\t\t\tfmode = st.Mode & 7\n\t\t}\n\t}\n\n\tif fmode&mode == mode {\n\t\treturn nil\n\t}\n\n\treturn EACCES\n}\n\n//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT\n//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT\n\n// fileHandle is the argument to nameToHandleAt and openByHandleAt. We\n// originally tried to generate it via unix/linux/types.go with \"type\n// fileHandle C.struct_file_handle\" but that generated empty structs\n// for mips64 and mips64le. Instead, hard code it for now (it's the\n// same everywhere else) until the mips64 generator issue is fixed.\ntype fileHandle struct {\n\tBytes uint32\n\tType  int32\n}\n\n// FileHandle represents the C struct file_handle used by\n// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see\n// OpenByHandleAt).\ntype FileHandle struct {\n\t*fileHandle\n}\n\n// NewFileHandle constructs a FileHandle.\nfunc NewFileHandle(handleType int32, handle []byte) FileHandle {\n\tconst hdrSize = unsafe.Sizeof(fileHandle{})\n\tbuf := make([]byte, hdrSize+uintptr(len(handle)))\n\tcopy(buf[hdrSize:], handle)\n\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\tfh.Type = handleType\n\tfh.Bytes = uint32(len(handle))\n\treturn FileHandle{fh}\n}\n\nfunc (fh *FileHandle) Size() int   { return int(fh.fileHandle.Bytes) }\nfunc (fh *FileHandle) Type() int32 { return fh.fileHandle.Type }\nfunc (fh *FileHandle) Bytes() []byte {\n\tn := fh.Size()\n\tif n == 0 {\n\t\treturn nil\n\t}\n\treturn (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n]\n}\n\n// NameToHandleAt wraps the name_to_handle_at system call; it obtains\n// a handle for a path name.\nfunc NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) {\n\tvar mid _C_int\n\t// Try first with a small buffer, assuming the handle will\n\t// only be 32 bytes.\n\tsize := uint32(32 + unsafe.Sizeof(fileHandle{}))\n\tdidResize := false\n\tfor {\n\t\tbuf := make([]byte, size)\n\t\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\t\tfh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{}))\n\t\terr = nameToHandleAt(dirfd, path, fh, &mid, flags)\n\t\tif err == EOVERFLOW {\n\t\t\tif didResize {\n\t\t\t\t// We shouldn't need to resize more than once\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdidResize = true\n\t\t\tsize = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{}))\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn FileHandle{fh}, int(mid), nil\n\t}\n}\n\n// OpenByHandleAt wraps the open_by_handle_at system call; it opens a\n// file via a handle as previously returned by NameToHandleAt.\nfunc OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) {\n\treturn openByHandleAt(mountFD, handle.fileHandle, flags)\n}\n\n/*\n * Unimplemented\n */\n// AfsSyscall\n// Alarm\n// ArchPrctl\n// Brk\n// ClockNanosleep\n// ClockSettime\n// Clone\n// EpollCtlOld\n// EpollPwait\n// EpollWaitOld\n// Execve\n// Fork\n// Futex\n// GetKernelSyms\n// GetMempolicy\n// GetRobustList\n// GetThreadArea\n// Getitimer\n// Getpmsg\n// IoCancel\n// IoDestroy\n// IoGetevents\n// IoSetup\n// IoSubmit\n// IoprioGet\n// IoprioSet\n// KexecLoad\n// LookupDcookie\n// Mbind\n// MigratePages\n// Mincore\n// ModifyLdt\n// Mount\n// MovePages\n// MqGetsetattr\n// MqNotify\n// MqOpen\n// MqTimedreceive\n// MqTimedsend\n// MqUnlink\n// Mremap\n// Msgctl\n// Msgget\n// Msgrcv\n// Msgsnd\n// Nfsservctl\n// Personality\n// Pselect6\n// Ptrace\n// Putpmsg\n// Quotactl\n// Readahead\n// Readv\n// RemapFilePages\n// RestartSyscall\n// RtSigaction\n// RtSigpending\n// RtSigprocmask\n// RtSigqueueinfo\n// RtSigreturn\n// RtSigsuspend\n// RtSigtimedwait\n// SchedGetPriorityMax\n// SchedGetPriorityMin\n// SchedGetparam\n// SchedGetscheduler\n// SchedRrGetInterval\n// SchedSetparam\n// SchedYield\n// Security\n// Semctl\n// Semget\n// Semop\n// Semtimedop\n// SetMempolicy\n// SetRobustList\n// SetThreadArea\n// SetTidAddress\n// Shmat\n// Shmctl\n// Shmdt\n// Shmget\n// Sigaltstack\n// Swapoff\n// Swapon\n// Sysfs\n// TimerCreate\n// TimerDelete\n// TimerGetoverrun\n// TimerGettime\n// TimerSettime\n// Timerfd\n// Tkill (obsolete)\n// Tuxcall\n// Umount2\n// Uselib\n// Utimensat\n// Vfork\n// Vhangup\n// Vserver\n// Waitid\n// _Sysctl\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP)\n// so that go vet can check that they are correct.\n\n// +build 386,linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sysnb\tpipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n// 64-bit file system and 32-bit uid calls\n// (386 default is 32-bit file system and 16-bit uid).\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sysnb\tInotifyInit() (fd int, err error)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tSetfsgid(gid int) (err error) = SYS_SETFSGID32\n//sys\tSetfsuid(uid int) (err error) = SYS_SETFSUID32\n//sysnb\tSetregid(rgid int, egid int) (err error) = SYS_SETREGID32\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32\n//sysnb\tSetreuid(ruid int, euid int) (err error) = SYS_SETREUID32\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n//sys\tPause() (err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\n//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = prlimit(0, resource, rlim, nil)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\tif rlim.Cur == rlimInf64 {\n\t\trl.Cur = rlimInf32\n\t} else if rlim.Cur < uint64(rlimInf32) {\n\t\trl.Cur = uint32(rlim.Cur)\n\t} else {\n\t\treturn EINVAL\n\t}\n\tif rlim.Max == rlimInf64 {\n\t\trl.Max = rlimInf32\n\t} else if rlim.Max < uint64(rlimInf32) {\n\t\trl.Max = uint32(rlim.Max)\n\t} else {\n\t\treturn EINVAL\n\t}\n\n\treturn setrlimit(resource, &rl)\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n// On x86 Linux, all the socket calls go through an extra indirection,\n// I think because the 5-register system call interface can't handle\n// the 6-argument calls like sendto and recvfrom. Instead the\n// arguments to the underlying system call are the number below\n// and a pointer to an array of uintptr. We hide the pointer in the\n// socketcall assembly to avoid allocation on every system call.\n\nconst (\n\t// see linux/net.h\n\t_SOCKET      = 1\n\t_BIND        = 2\n\t_CONNECT     = 3\n\t_LISTEN      = 4\n\t_ACCEPT      = 5\n\t_GETSOCKNAME = 6\n\t_GETPEERNAME = 7\n\t_SOCKETPAIR  = 8\n\t_SEND        = 9\n\t_RECV        = 10\n\t_SENDTO      = 11\n\t_RECVFROM    = 12\n\t_SHUTDOWN    = 13\n\t_SETSOCKOPT  = 14\n\t_GETSOCKOPT  = 15\n\t_SENDMSG     = 16\n\t_RECVMSG     = 17\n\t_ACCEPT4     = 18\n\t_RECVMMSG    = 19\n\t_SENDMMSG    = 20\n)\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tfd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tfd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\tn, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\t_, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Listen(s int, n int) (err error) {\n\t_, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Shutdown(s, how int) (err error) {\n\t_, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,linux\n\npackage unix\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tinotifyInit() (fd int, err error)\n\nfunc InotifyInit() (fd int, err error) {\n\t// First try inotify_init1, because Android's seccomp policy blocks the latter.\n\tfd, err = InotifyInit1(0)\n\tif err == ENOSYS {\n\t\tfd, err = inotifyInit()\n\t}\n\treturn\n}\n\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn Pselect(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\t// Use fstatat, because Android's seccomp policy blocks stat.\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terrno := gettimeofday(tv)\n\tif errno != 0 {\n\t\treturn errno\n\t}\n\treturn nil\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terrno := gettimeofday(&tv)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\n//sysnb\tpipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Rip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,linux\n// +build !gccgo\n\npackage unix\n\nimport \"syscall\"\n\n//go:noescape\nfunc gettimeofday(tv *Timeval) (err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm,linux\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sysnb\tpipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\t// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.\n\terr = pipe2(&pp, 0)\n\tif err == ENOSYS {\n\t\terr = pipe(&pp)\n\t}\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocketpair(domain int, typ int, flags int, fd *[2]int32) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n// 64-bit file system and 32-bit uid calls\n// (16-bit uid calls are not always supported in newer kernels)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sysnb\tInotifyInit() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tSetfsgid(gid int) (err error) = SYS_SETFSGID32\n//sys\tSetfsuid(uid int) (err error) = SYS_SETFSUID32\n//sysnb\tSetregid(rgid int, egid int) (err error) = SYS_SETREGID32\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32\n//sysnb\tSetreuid(ruid int, euid int) (err error) = SYS_SETREUID32\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys   Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys   Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\n//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = prlimit(0, resource, rlim, nil)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\tif rlim.Cur == rlimInf64 {\n\t\trl.Cur = rlimInf32\n\t} else if rlim.Cur < uint64(rlimInf32) {\n\t\trl.Cur = uint32(rlim.Cur)\n\t} else {\n\t\treturn EINVAL\n\t}\n\tif rlim.Max == rlimInf64 {\n\t\trl.Max = rlimInf32\n\t} else if rlim.Max < uint64(rlimInf32) {\n\t\trl.Max = uint32(rlim.Max)\n\t} else {\n\t\treturn EINVAL\n\t}\n\n\treturn setrlimit(resource, &rl)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tarmSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and arm_sync_file_range syscalls differ only in the\n\t// order of their arguments.\n\treturn armSyncFileRange(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm64,linux\n\npackage unix\n\nimport \"unsafe\"\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tif size <= 0 {\n\t\treturn -1, EINVAL\n\t}\n\treturn EpollCreate1(0)\n}\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn Pselect(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, 0)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc InotifyInit() (fd int, err error) {\n\treturn InotifyInit1(0)\n}\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\treturn Dup3(oldfd, newfd, 0)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout >= 0 {\n\t\tts = new(Timespec)\n\t\t*ts = NsecToTimespec(int64(timeout) * 1e6)\n\t}\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, ts, nil)\n\t}\n\treturn ppoll(&fds[0], len(fds), ts, nil)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux,!gccgo\n\npackage unix\n\n// SyscallNoError may be used instead of Syscall for syscalls that don't fail.\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n\n// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't\n// fail.\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux,!gccgo,386\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux,gccgo,386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux,gccgo,arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build mips64 mips64le\n\npackage unix\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn Pselect(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, 0)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\ntype stat_t struct {\n\tDev        uint32\n\tPad0       [3]int32\n\tIno        uint64\n\tMode       uint32\n\tNlink      uint32\n\tUid        uint32\n\tGid        uint32\n\tRdev       uint32\n\tPad1       [3]uint32\n\tSize       int64\n\tAtime      uint32\n\tAtime_nsec uint32\n\tMtime      uint32\n\tMtime_nsec uint32\n\tCtime      uint32\n\tCtime_nsec uint32\n\tBlksize    uint32\n\tPad2       uint32\n\tBlocks     int64\n}\n\n//sys\tfstat(fd int, st *stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tlstat(path string, st *stat_t) (err error)\n//sys\tstat(path string, st *stat_t) (err error)\n\nfunc Fstat(fd int, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = fstat(fd, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) {\n\tst := &stat_t{}\n\terr = fstatat(dirfd, path, st, flags)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Lstat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = lstat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Stat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = stat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc fillStat_t(s *Stat_t, st *stat_t) {\n\ts.Dev = st.Dev\n\ts.Ino = st.Ino\n\ts.Mode = st.Mode\n\ts.Nlink = st.Nlink\n\ts.Uid = st.Uid\n\ts.Gid = st.Gid\n\ts.Rdev = st.Rdev\n\ts.Size = st.Size\n\ts.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)}\n\ts.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)}\n\ts.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)}\n\ts.Blksize = st.Blksize\n\ts.Blocks = st.Blocks\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build mips mipsle\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sysnb\tInotifyInit() (fd int, err error)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n\n//sys\tPause() (err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\t_, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0)\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe() (p1 int, p2 int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tp[0], p[1], err = pipe()\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\n//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = prlimit(0, resource, rlim, nil)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\tif rlim.Cur == rlimInf64 {\n\t\trl.Cur = rlimInf32\n\t} else if rlim.Cur < uint64(rlimInf32) {\n\t\trl.Cur = uint32(rlim.Cur)\n\t} else {\n\t\treturn EINVAL\n\t}\n\tif rlim.Max == rlimInf64 {\n\t\trl.Max = rlimInf32\n\t} else if rlim.Max < uint64(rlimInf32) {\n\t\trl.Max = uint32(rlim.Max)\n\t} else {\n\t\treturn EINVAL\n\t}\n\n\treturn setrlimit(resource, &rl)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build ppc64 ppc64le\n\npackage unix\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT\n//sysnb\tGetuid() (uid int)\n//sysnb\tInotifyInit() (fd int, err error)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\n//sysnb pipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build riscv64,linux\n\npackage unix\n\nimport \"unsafe\"\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tif size <= 0 {\n\t\treturn -1, EINVAL\n\t}\n\treturn EpollCreate1(0)\n}\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn Pselect(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, 0)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc InotifyInit() (fd int, err error) {\n\treturn InotifyInit1(0)\n}\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\treturn Dup3(oldfd, newfd, 0)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout >= 0 {\n\t\tts = new(Timespec)\n\t\t*ts = NsecToTimespec(int64(timeout) * 1e6)\n\t}\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, ts, nil)\n\t}\n\treturn ppoll(&fds[0], len(fds), ts, nil)\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_s390x.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build s390x,linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sysnb\tEpollCreate(size int) (fd int, err error)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tInotifyInit() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, 0) // pipe2 is the same as pipe when flags are set to 0.\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\n// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.\n// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tmmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}\n\tr0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// On s390x Linux, all the socket calls go through an extra indirection.\n// The arguments to the underlying system call (SYS_SOCKETCALL) are the\n// number below and a pointer to an array of uintptr.\nconst (\n\t// see linux/net.h\n\tnetSocket      = 1\n\tnetBind        = 2\n\tnetConnect     = 3\n\tnetListen      = 4\n\tnetAccept      = 5\n\tnetGetSockName = 6\n\tnetGetPeerName = 7\n\tnetSocketPair  = 8\n\tnetSend        = 9\n\tnetRecv        = 10\n\tnetSendTo      = 11\n\tnetRecvFrom    = 12\n\tnetShutdown    = 13\n\tnetSetSockOpt  = 14\n\tnetGetSockOpt  = 15\n\tnetSendMsg     = 16\n\tnetRecvMsg     = 17\n\tnetAccept4     = 18\n\tnetRecvMMsg    = 19\n\tnetSendMMsg    = 20\n)\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\tfd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) {\n\targs := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)}\n\tfd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) error {\n\targs := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socket(domain int, typ int, proto int) (int, error) {\n\targs := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)}\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error {\n\targs := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc Listen(s int, n int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(n)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc Shutdown(s, how int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(how)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build sparc64,linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tInotifyInit() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tSetfsgid(gid int) (err error)\n//sys\tSetfsuid(uid int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Tpc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\n//sysnb pipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sysnb pipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe2(&pp, flags)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// NetBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {\n\tvar olen uintptr\n\n\t// Get a list of all sysctl nodes below the given MIB by performing\n\t// a sysctl for the given MIB with CTL_QUERY appended.\n\tmib = append(mib, CTL_QUERY)\n\tqnode := Sysctlnode{Flags: SYSCTL_VERS_1}\n\tqp := (*byte)(unsafe.Pointer(&qnode))\n\tsz := unsafe.Sizeof(qnode)\n\tif err = sysctl(mib, nil, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Now that we know the size, get the actual nodes.\n\tnodes = make([]Sysctlnode, olen/sz)\n\tnp := (*byte)(unsafe.Pointer(&nodes[0]))\n\tif err = sysctl(mib, np, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn nodes, nil\n}\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\t// Split name into components.\n\tvar parts []string\n\tlast := 0\n\tfor i := 0; i < len(name); i++ {\n\t\tif name[i] == '.' {\n\t\t\tparts = append(parts, name[last:i])\n\t\t\tlast = i + 1\n\t\t}\n\t}\n\tparts = append(parts, name[last:])\n\n\t// Discover the nodes and construct the MIB OID.\n\tfor partno, part := range parts {\n\t\tnodes, err := sysctlNodes(mib)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, node := range nodes {\n\t\t\tn := make([]byte, 0)\n\t\t\tfor i := range node.Name {\n\t\t\t\tif node.Name[i] != 0 {\n\t\t\t\t\tn = append(n, byte(node.Name[i]))\n\t\t\t\t}\n\t\t\t}\n\t\t\tif string(n) == part {\n\t\t\t\tmib = append(mib, _C_int(node.Num))\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif len(mib) != partno+1 {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\n\treturn mib, nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlClockinfo(name string) (*Clockinfo, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofClockinfo)\n\tvar ci Clockinfo\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofClockinfo {\n\t\treturn nil, EIO\n\t}\n\treturn &ci, nil\n}\n\n//sysnb pipe() (fd1 int, fd2 int, err error)\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tp[0], p[1], err = pipe()\n\treturn\n}\n\n//sys Getdents(fd int, buf []byte) (n int, err error)\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc setattrlistTimes(path string, times []Timespec, flags int) error {\n\t// used on Darwin for UtimesNano\n\treturn ENOSYS\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\nfunc IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {\n\tvar value Ptmget\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))\n\truntime.KeepAlive(value)\n\treturn &value, err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\treadlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ\n//sys\twritelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Unimplemented\n */\n// ____semctl13\n// __clone\n// __fhopen40\n// __fhstat40\n// __fhstatvfs140\n// __fstat30\n// __getcwd\n// __getfh30\n// __getlogin\n// __lstat30\n// __mount50\n// __msgctl13\n// __msync13\n// __ntp_gettime30\n// __posix_chown\n// __posix_fchown\n// __posix_lchown\n// __posix_rename\n// __setlogin\n// __shmctl13\n// __sigaction_sigtramp\n// __sigaltstack14\n// __sigpending14\n// __sigprocmask14\n// __sigsuspend14\n// __sigtimedwait\n// __stat30\n// __syscall\n// __vfork14\n// _ksem_close\n// _ksem_destroy\n// _ksem_getvalue\n// _ksem_init\n// _ksem_open\n// _ksem_post\n// _ksem_trywait\n// _ksem_unlink\n// _ksem_wait\n// _lwp_continue\n// _lwp_create\n// _lwp_ctl\n// _lwp_detach\n// _lwp_exit\n// _lwp_getname\n// _lwp_getprivate\n// _lwp_kill\n// _lwp_park\n// _lwp_self\n// _lwp_setname\n// _lwp_setprivate\n// _lwp_suspend\n// _lwp_unpark\n// _lwp_unpark_all\n// _lwp_wait\n// _lwp_wakeup\n// _pset_bind\n// _sched_getaffinity\n// _sched_getparam\n// _sched_setaffinity\n// _sched_setparam\n// acct\n// aio_cancel\n// aio_error\n// aio_fsync\n// aio_read\n// aio_return\n// aio_suspend\n// aio_write\n// break\n// clock_getres\n// clock_gettime\n// clock_settime\n// compat_09_ogetdomainname\n// compat_09_osetdomainname\n// compat_09_ouname\n// compat_10_omsgsys\n// compat_10_osemsys\n// compat_10_oshmsys\n// compat_12_fstat12\n// compat_12_getdirentries\n// compat_12_lstat12\n// compat_12_msync\n// compat_12_oreboot\n// compat_12_oswapon\n// compat_12_stat12\n// compat_13_sigaction13\n// compat_13_sigaltstack13\n// compat_13_sigpending13\n// compat_13_sigprocmask13\n// compat_13_sigreturn13\n// compat_13_sigsuspend13\n// compat_14___semctl\n// compat_14_msgctl\n// compat_14_shmctl\n// compat_16___sigaction14\n// compat_16___sigreturn14\n// compat_20_fhstatfs\n// compat_20_fstatfs\n// compat_20_getfsstat\n// compat_20_statfs\n// compat_30___fhstat30\n// compat_30___fstat13\n// compat_30___lstat13\n// compat_30___stat13\n// compat_30_fhopen\n// compat_30_fhstat\n// compat_30_fhstatvfs1\n// compat_30_getdents\n// compat_30_getfh\n// compat_30_ntp_gettime\n// compat_30_socket\n// compat_40_mount\n// compat_43_fstat43\n// compat_43_lstat43\n// compat_43_oaccept\n// compat_43_ocreat\n// compat_43_oftruncate\n// compat_43_ogetdirentries\n// compat_43_ogetdtablesize\n// compat_43_ogethostid\n// compat_43_ogethostname\n// compat_43_ogetkerninfo\n// compat_43_ogetpagesize\n// compat_43_ogetpeername\n// compat_43_ogetrlimit\n// compat_43_ogetsockname\n// compat_43_okillpg\n// compat_43_olseek\n// compat_43_ommap\n// compat_43_oquota\n// compat_43_orecv\n// compat_43_orecvfrom\n// compat_43_orecvmsg\n// compat_43_osend\n// compat_43_osendmsg\n// compat_43_osethostid\n// compat_43_osethostname\n// compat_43_osetrlimit\n// compat_43_osigblock\n// compat_43_osigsetmask\n// compat_43_osigstack\n// compat_43_osigvec\n// compat_43_otruncate\n// compat_43_owait\n// compat_43_stat43\n// execve\n// extattr_delete_fd\n// extattr_delete_file\n// extattr_delete_link\n// extattr_get_fd\n// extattr_get_file\n// extattr_get_link\n// extattr_list_fd\n// extattr_list_file\n// extattr_list_link\n// extattr_set_fd\n// extattr_set_file\n// extattr_set_link\n// extattrctl\n// fchroot\n// fdatasync\n// fgetxattr\n// fktrace\n// flistxattr\n// fork\n// fremovexattr\n// fsetxattr\n// fstatvfs1\n// fsync_range\n// getcontext\n// getitimer\n// getvfsstat\n// getxattr\n// ktrace\n// lchflags\n// lchmod\n// lfs_bmapv\n// lfs_markv\n// lfs_segclean\n// lfs_segwait\n// lgetxattr\n// lio_listio\n// listxattr\n// llistxattr\n// lremovexattr\n// lseek\n// lsetxattr\n// lutimes\n// madvise\n// mincore\n// minherit\n// modctl\n// mq_close\n// mq_getattr\n// mq_notify\n// mq_open\n// mq_receive\n// mq_send\n// mq_setattr\n// mq_timedreceive\n// mq_timedsend\n// mq_unlink\n// mremap\n// msgget\n// msgrcv\n// msgsnd\n// nfssvc\n// ntp_adjtime\n// pmc_control\n// pmc_get_info\n// pollts\n// preadv\n// profil\n// pselect\n// pset_assign\n// pset_create\n// pset_destroy\n// ptrace\n// pwritev\n// quotactl\n// rasctl\n// readv\n// reboot\n// removexattr\n// sa_enable\n// sa_preempt\n// sa_register\n// sa_setconcurrency\n// sa_stacks\n// sa_yield\n// sbrk\n// sched_yield\n// semconfig\n// semget\n// semop\n// setcontext\n// setitimer\n// setxattr\n// shmat\n// shmdt\n// shmget\n// sstk\n// statvfs1\n// swapctl\n// sysarch\n// syscall\n// timer_create\n// timer_delete\n// timer_getoverrun\n// timer_gettime\n// timer_settime\n// undelete\n// utrace\n// uuidgen\n// vadvise\n// vfork\n// writev\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build 386,netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm,netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm64,netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// OpenBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sort\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\ti := sort.Search(len(sysctlMib), func(i int) bool {\n\t\treturn sysctlMib[i].ctlname >= name\n\t})\n\tif i < len(sysctlMib) && sysctlMib[i].ctlname == name {\n\t\treturn sysctlMib[i].ctloid, nil\n\t}\n\treturn nil, EINVAL\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlClockinfo(name string) (*Clockinfo, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofClockinfo)\n\tvar ci Clockinfo\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofClockinfo {\n\t\treturn nil, EIO\n\t}\n\treturn &ci, nil\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofUvmexp {\n\t\treturn nil, EIO\n\t}\n\treturn &u, nil\n}\n\n//sysnb pipe(p *[2]_C_int) (err error)\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys Getdents(fd int, buf []byte) (n int, err error)\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO was allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc setattrlistTimes(path string, times []Timespec, flags int) error {\n\t// used on Darwin for UtimesNano\n\treturn ENOSYS\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrtable() (rtable int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tSetrtable(rtable int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\treadlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ\n//sys\twritelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Unimplemented\n */\n// __getcwd\n// __semctl\n// __syscall\n// __sysctl\n// adjfreq\n// break\n// clock_getres\n// clock_gettime\n// clock_settime\n// closefrom\n// execve\n// fcntl\n// fhopen\n// fhstat\n// fhstatfs\n// fork\n// futimens\n// getfh\n// getgid\n// getitimer\n// getlogin\n// getresgid\n// getresuid\n// getthrid\n// ktrace\n// lfs_bmapv\n// lfs_markv\n// lfs_segclean\n// lfs_segwait\n// mincore\n// minherit\n// mount\n// mquery\n// msgctl\n// msgget\n// msgrcv\n// msgsnd\n// nfssvc\n// nnpfspioctl\n// preadv\n// profil\n// pwritev\n// quotactl\n// readv\n// reboot\n// renameat\n// rfork\n// sched_yield\n// semget\n// semop\n// setgroups\n// setitimer\n// setsockopt\n// shmat\n// shmctl\n// shmdt\n// shmget\n// sigaction\n// sigaltstack\n// sigpending\n// sigprocmask\n// sigreturn\n// sigsuspend\n// sysarch\n// syscall\n// threxit\n// thrsigdivert\n// thrsleep\n// thrwakeup\n// vfork\n// writev\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build 386,openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/386 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm,openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/arm the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build arm64,openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Solaris system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_solaris.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Implemented in runtime/syscall_solaris.go.\ntype syscallFunc uintptr\n\nfunc rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sysnb\tpipe(p *[2]_C_int) (n int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\tn, err := pipe(&pp)\n\tif n != 0 {\n\t\treturn err\n\t}\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn nil\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' {\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n//sys\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn string(buf[:vallen-1]), nil\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\t// Getcwd will return an error if it failed for any reason.\n\t_, err = Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\t// Check for error and sanity check group count. Newer versions of\n\t// Solaris allow up to 1024 (NGROUPS_MAX).\n\tif n < 0 || n > 1024 {\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, EINVAL\n\t} else if n == 0 {\n\t\treturn nil, nil\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif n == -1 {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\treturn Getdents(fd, buf, new(uintptr))\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) {\n\tvar status _C_int\n\trpid, err := wait4(int32(pid), &status, options, rusage)\n\twpid := int(rpid)\n\tif wpid == -1 {\n\t\treturn wpid, err\n\t}\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn wpid, nil\n}\n\n//sys\tgethostname(buf []byte) (n int, err error)\n\nfunc Gethostname() (name string, err error) {\n\tvar buf [MaxHostNameLen]byte\n\tn, err := gethostname(buf[:])\n\tif n != 0 {\n\t\treturn \"\", err\n\t}\n\tn = clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EFAULT\n\t}\n\treturn string(buf[:n]), nil\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(fd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\tvalptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)\n\tif e1 != 0 {\n\t\treturn e1\n\t}\n\treturn nil\n}\n\n//sys\tfutimesat(fildes int, path *byte, times *[2]Timeval) (err error)\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tv == nil {\n\t\treturn futimesat(dirfd, pathp, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// Solaris doesn't have an futimes function because it allows NULL to be\n// specified as the path for futimesat. However, Go doesn't like\n// NULL-style string interfaces, so this simple wrapper is provided.\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(fd, nil, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Solaris semantics for\n\t\t// abstract Unix domain sockets -- they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs -- but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tbytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]\n\t\tsa.Name = string(bytes)\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar msg Msghdr\n\tvar rsa RawSockaddrAny\n\tmsg.Name = (*byte)(unsafe.Pointer(&rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*int8)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy int8\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Accrightslen)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*int8)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy int8\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && len(p) == 0 {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tacct(path *byte) (err error)\n\nfunc Acct(path string) (err error) {\n\tif len(path) == 0 {\n\t\t// Assume caller wants to disable accounting.\n\t\treturn acct(nil)\n\t}\n\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn acct(pathp)\n}\n\n//sys\t__makedev(version int, major uint, minor uint) (val uint64)\n\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn __makedev(NEWDEV, uint(major), uint(minor))\n}\n\n//sys\t__major(version int, dev uint64) (val uint)\n\nfunc Major(dev uint64) uint32 {\n\treturn uint32(__major(NEWDEV, dev))\n}\n\n//sys\t__minor(version int, dev uint64) (val uint)\n\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(__minor(NEWDEV, dev))\n}\n\n/*\n * Expose the ioctl function\n */\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n\nfunc IoctlSetTermio(fd int, req uint, value *Termio) (err error) {\n\treturn ioctl(fd, req, uintptr(unsafe.Pointer(value)))\n}\n\nfunc IoctlGetTermio(fd int, req uint) (*Termio, error) {\n\tvar value Termio\n\terr := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))\n\treturn &value, err\n}\n\n//sys   poll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCreat(path string, mode uint32) (fd int, err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs(fd int, vfsstat *Statvfs_t) (err error)\n//sys\tGetdents(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgid int, err error)\n//sys\tGeteuid() (euid int)\n//sys\tGetegid() (egid int)\n//sys\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (n int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tListen(s int, backlog int) (err error) = libsocket.__xnet_llisten\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPause() (err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek\n//sys\tSelect(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tShutdown(s int, how int) (err error) = libsocket.shutdown\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs(path string, vfsstat *Statvfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSync() (err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = libc.umount\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto\n//sys\tsocket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build amd64,solaris\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e syscall.Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal)\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Slice memory layout\n\tvar sl = struct {\n\t\taddr uintptr\n\t\tlen  int\n\t\tcap  int\n\t}{addr, length, length}\n\n\t// Use unsafe to turn sl into a []byte.\n\tb := *(*[]byte)(unsafe.Pointer(&sl))\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, n, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, flags, ptr, n)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\n// Lutimes sets the access and modification times tv on path. If path refers to\n// a symlink, it is not dereferenced and the timestamps are set on the symlink.\n// If tv is nil, the access and modification times are set to the current time.\n// Otherwise tv must contain exactly 2 elements, with access time as the first\n// element and modification time as the second element.\nfunc Lutimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build darwin dragonfly freebsd linux netbsd openbsd solaris\n// +build !gccgo,!ppc64le,!ppc64\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build linux\n// +build ppc64le ppc64\n// +build !gccgo\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall(trap, a1, a2, a3)\n}\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)\n}\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall(trap, a1, a2, a3)\n}\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/timestruct.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris\n\npackage unix\n\nimport \"time\"\n\n// TimespecToNsec converts a Timespec value into a number of\n// nanoseconds since the Unix epoch.\nfunc TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }\n\n// NsecToTimespec takes a number of nanoseconds since the Unix epoch\n// and returns the corresponding Timespec value.\nfunc NsecToTimespec(nsec int64) Timespec {\n\tsec := nsec / 1e9\n\tnsec = nsec % 1e9\n\tif nsec < 0 {\n\t\tnsec += 1e9\n\t\tsec--\n\t}\n\treturn setTimespec(sec, nsec)\n}\n\n// TimeToTimespec converts t into a Timespec.\n// On some 32-bit systems the range of valid Timespec values are smaller\n// than that of time.Time values.  So if t is out of the valid range of\n// Timespec, it returns a zero Timespec and ERANGE.\nfunc TimeToTimespec(t time.Time) (Timespec, error) {\n\tsec := t.Unix()\n\tnsec := int64(t.Nanosecond())\n\tts := setTimespec(sec, nsec)\n\n\t// Currently all targets have either int32 or int64 for Timespec.Sec.\n\t// If there were a new target with floating point type for it, we have\n\t// to consider the rounding error.\n\tif int64(ts.Sec) != sec {\n\t\treturn Timespec{}, ERANGE\n\t}\n\treturn ts, nil\n}\n\n// TimevalToNsec converts a Timeval value into a number of nanoseconds\n// since the Unix epoch.\nfunc TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }\n\n// NsecToTimeval takes a number of nanoseconds since the Unix epoch\n// and returns the corresponding Timeval value.\nfunc NsecToTimeval(nsec int64) Timeval {\n\tnsec += 999 // round up to microsecond\n\tusec := nsec % 1e9 / 1e3\n\tsec := nsec / 1e9\n\tif usec < 0 {\n\t\tusec += 1e6\n\t\tsec--\n\t}\n\treturn setTimeval(sec, usec)\n}\n\n// Unix returns ts as the number of seconds and nanoseconds elapsed since the\n// Unix epoch.\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\n// Unix returns tv as the number of seconds and nanoseconds elapsed since the\n// Unix epoch.\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\n// Nano returns ts as the number of nanoseconds elapsed since the Unix epoch.\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\n// Nano returns tv as the number of nanoseconds elapsed since the Unix epoch.\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/unveil_openbsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Unveil implements the unveil syscall.\n// For more information see unveil(2).\n// Note that the special case of blocking further\n// unveil calls is handled by UnveilBlock.\nfunc Unveil(path string, flags string) error {\n\tpathPtr, err := syscall.BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tflagsPtr, err := syscall.BytePtrFromString(flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0)\n\tif e != 0 {\n\t\treturn e\n\t}\n\treturn nil\n}\n\n// UnveilBlock blocks future unveil calls.\n// For more information see unveil(2).\nfunc UnveilBlock() error {\n\t// Both pointers must be nil.\n\tvar pathUnsafe, flagsUnsafe unsafe.Pointer\n\t_, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0)\n\tif e != 0 {\n\t\treturn e\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/xattr_bsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build freebsd netbsd\n\npackage unix\n\nimport (\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// Derive extattr namespace and attribute name\n\nfunc xattrnamespace(fullattr string) (ns int, attr string, err error) {\n\ts := strings.IndexByte(fullattr, '.')\n\tif s == -1 {\n\t\treturn -1, \"\", ENOATTR\n\t}\n\n\tnamespace := fullattr[0:s]\n\tattr = fullattr[s+1:]\n\n\tswitch namespace {\n\tcase \"user\":\n\t\treturn EXTATTR_NAMESPACE_USER, attr, nil\n\tcase \"system\":\n\t\treturn EXTATTR_NAMESPACE_SYSTEM, attr, nil\n\tdefault:\n\t\treturn -1, \"\", ENOATTR\n\t}\n}\n\nfunc initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {\n\tif len(dest) > idx {\n\t\treturn unsafe.Pointer(&dest[idx])\n\t} else {\n\t\treturn unsafe.Pointer(_zero)\n\t}\n}\n\n// FreeBSD and NetBSD implement their own syscalls to handle extended attributes\n\nfunc Getxattr(file string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFile(file, nsid, a, uintptr(d), destsize)\n}\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetLink(link, nsid, a, uintptr(d), destsize)\n}\n\n// flags are unused on FreeBSD\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Setxattr(file string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Removexattr(file string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFile(file, nsid, a)\n\treturn\n}\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFd(fd, nsid, a)\n\treturn\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteLink(link, nsid, a)\n\treturn\n}\n\nfunc Listxattr(file string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\t// FreeBSD won't allow you to list xattrs from multiple namespaces\n\ts := 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)\n\n\t\t/* Errors accessing system attrs are ignored so that\n\t\t * we can implement the Linux-like behavior of omitting errors that\n\t\t * we don't have read permissions on\n\t\t *\n\t\t * Linux will still error if we ask for user attributes on a file that\n\t\t * we don't have read permissions on, so don't ignore those errors\n\t\t */\n\t\tif e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\tcontinue\n\t\t} else if e != nil {\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tdestsiz -= s\n\t\tif destsiz < 0 {\n\t\t\tdestsiz = 0\n\t\t}\n\t\td = initxattrdest(dest, s)\n\t}\n\n\treturn s, nil\n}\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts := 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)\n\t\tif e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\tcontinue\n\t\t} else if e != nil {\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tdestsiz -= s\n\t\tif destsiz < 0 {\n\t\t\tdestsiz = 0\n\t\t}\n\t\td = initxattrdest(dest, s)\n\t}\n\n\treturn s, nil\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts := 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)\n\t\tif e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\tcontinue\n\t\t} else if e != nil {\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tdestsiz -= s\n\t\tif destsiz < 0 {\n\t\t\tdestsiz = 0\n\t\t}\n\t\td = initxattrdest(dest, s)\n\t}\n\n\treturn s, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go",
    "content": "// mkerrors.sh -maix32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc,aix\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -maix32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3ff796dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0x5\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fd79693\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3ff796bb\n\tSIOCGIFCONFGLOB               = -0x3ff79670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0x80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0x80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0x80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0x80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0x80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0x8004747e\n\tTIOCLBIS                      = 0x8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0x8004747d\n\tTIOCMBIC                      = 0x8004746b\n\tTIOCMBIS                      = 0x8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0x80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0x80047404\n\tTIOCMSET                      = 0x8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0x80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0x80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0x80067411\n\tTIOCSETD                      = 0x80047401\n\tTIOCSETN                      = 0x8006740a\n\tTIOCSETP                      = 0x80067409\n\tTIOCSLTC                      = 0x80067475\n\tTIOCSPGRP                     = 0x80047476\n\tTIOCSSIZE                     = 0x80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0x80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0x80087467\n\tTIOCUCNTL                     = 0x80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0x3f)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGKAP\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGSAK\", \"secure attention\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go",
    "content": "// mkerrors.sh -maix64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64,aix\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -maix64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3fef96dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xb\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0xc\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0xd\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffffffffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fc78df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fc78df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fd79693\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3fef96bb\n\tSIOCGIFCONFGLOB               = -0x3fef9670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0xffffffff80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0xffffffff80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0xffffffff80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0xffffffff80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0xffffffff80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0xffffffff8004747e\n\tTIOCLBIS                      = 0xffffffff8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0xffffffff8004747d\n\tTIOCMBIC                      = 0xffffffff8004746b\n\tTIOCMBIS                      = 0xffffffff8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0xffffffff80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0xffffffff80047404\n\tTIOCMSET                      = 0xffffffff8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0xffffffff80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0xffffffff80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0xffffffff80067411\n\tTIOCSETD                      = 0xffffffff80047401\n\tTIOCSETN                      = 0xffffffff8006740a\n\tTIOCSETP                      = 0xffffffff80067409\n\tTIOCSLTC                      = 0xffffffff80067475\n\tTIOCSPGRP                     = 0xffffffff80047476\n\tTIOCSSIZE                     = 0xffffffff80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0xffffffff80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0xffffffff80087467\n\tTIOCUCNTL                     = 0xffffffff80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0xff)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGGRANT\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGMAX32\", \"secure attention\"},\n\t{255, \"SIGMAX\", \"signal 255\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,darwin\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1c\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x25\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1e\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1c\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x28\n\tAF_NATM                           = 0x1f\n\tAF_NDRV                           = 0x1b\n\tAF_NETBIOS                        = 0x21\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PPP                            = 0x22\n\tAF_PUP                            = 0x4\n\tAF_RESERVED_36                    = 0x24\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_SYSTEM                         = 0x20\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tAF_UTUN                           = 0x26\n\tALTWERASE                         = 0x200\n\tATTR_BIT_MAP_COUNT                = 0x5\n\tATTR_CMN_ACCESSMASK               = 0x20000\n\tATTR_CMN_ACCTIME                  = 0x1000\n\tATTR_CMN_ADDEDTIME                = 0x10000000\n\tATTR_CMN_BKUPTIME                 = 0x2000\n\tATTR_CMN_CHGTIME                  = 0x800\n\tATTR_CMN_CRTIME                   = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000\n\tATTR_CMN_DEVID                    = 0x2\n\tATTR_CMN_DOCUMENT_ID              = 0x100000\n\tATTR_CMN_ERROR                    = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY        = 0x400000\n\tATTR_CMN_FILEID                   = 0x2000000\n\tATTR_CMN_FLAGS                    = 0x40000\n\tATTR_CMN_FNDRINFO                 = 0x4000\n\tATTR_CMN_FSID                     = 0x4\n\tATTR_CMN_FULLPATH                 = 0x8000000\n\tATTR_CMN_GEN_COUNT                = 0x80000\n\tATTR_CMN_GRPID                    = 0x10000\n\tATTR_CMN_GRPUUID                  = 0x1000000\n\tATTR_CMN_MODTIME                  = 0x400\n\tATTR_CMN_NAME                     = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT           = 0x80000\n\tATTR_CMN_NAMEDATTRLIST            = 0x100000\n\tATTR_CMN_OBJID                    = 0x20\n\tATTR_CMN_OBJPERMANENTID           = 0x40\n\tATTR_CMN_OBJTAG                   = 0x10\n\tATTR_CMN_OBJTYPE                  = 0x8\n\tATTR_CMN_OWNERID                  = 0x8000\n\tATTR_CMN_PARENTID                 = 0x4000000\n\tATTR_CMN_PAROBJID                 = 0x80\n\tATTR_CMN_RETURNED_ATTRS           = 0x80000000\n\tATTR_CMN_SCRIPT                   = 0x100\n\tATTR_CMN_SETMASK                  = 0x41c7ff00\n\tATTR_CMN_USERACCESS               = 0x200000\n\tATTR_CMN_UUID                     = 0x800000\n\tATTR_CMN_VALIDMASK                = 0xffffffff\n\tATTR_CMN_VOLSETMASK               = 0x6700\n\tATTR_FILE_ALLOCSIZE               = 0x4\n\tATTR_FILE_CLUMPSIZE               = 0x10\n\tATTR_FILE_DATAALLOCSIZE           = 0x400\n\tATTR_FILE_DATAEXTENTS             = 0x800\n\tATTR_FILE_DATALENGTH              = 0x200\n\tATTR_FILE_DEVTYPE                 = 0x20\n\tATTR_FILE_FILETYPE                = 0x40\n\tATTR_FILE_FORKCOUNT               = 0x80\n\tATTR_FILE_FORKLIST                = 0x100\n\tATTR_FILE_IOBLOCKSIZE             = 0x8\n\tATTR_FILE_LINKCOUNT               = 0x1\n\tATTR_FILE_RSRCALLOCSIZE           = 0x2000\n\tATTR_FILE_RSRCEXTENTS             = 0x4000\n\tATTR_FILE_RSRCLENGTH              = 0x1000\n\tATTR_FILE_SETMASK                 = 0x20\n\tATTR_FILE_TOTALSIZE               = 0x2\n\tATTR_FILE_VALIDMASK               = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP          = 0x40\n\tATTR_VOL_ATTRIBUTES               = 0x40000000\n\tATTR_VOL_CAPABILITIES             = 0x20000\n\tATTR_VOL_DIRCOUNT                 = 0x400\n\tATTR_VOL_ENCODINGSUSED            = 0x10000\n\tATTR_VOL_FILECOUNT                = 0x200\n\tATTR_VOL_FSTYPE                   = 0x1\n\tATTR_VOL_INFO                     = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE              = 0x80\n\tATTR_VOL_MAXOBJCOUNT              = 0x800\n\tATTR_VOL_MINALLOCATION            = 0x20\n\tATTR_VOL_MOUNTEDDEVICE            = 0x8000\n\tATTR_VOL_MOUNTFLAGS               = 0x4000\n\tATTR_VOL_MOUNTPOINT               = 0x1000\n\tATTR_VOL_NAME                     = 0x2000\n\tATTR_VOL_OBJCOUNT                 = 0x100\n\tATTR_VOL_QUOTA_SIZE               = 0x10000000\n\tATTR_VOL_RESERVED_SIZE            = 0x20000000\n\tATTR_VOL_SETMASK                  = 0x80002000\n\tATTR_VOL_SIGNATURE                = 0x2\n\tATTR_VOL_SIZE                     = 0x4\n\tATTR_VOL_SPACEAVAIL               = 0x10\n\tATTR_VOL_SPACEFREE                = 0x8\n\tATTR_VOL_UUID                     = 0x40000\n\tATTR_VOL_VALIDMASK                = 0xf007ffff\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc00c4279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4008426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETFNR                        = 0x8008427e\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8008426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tBS0                               = 0x0\n\tBS1                               = 0x8000\n\tBSDLY                             = 0x8000\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x6\n\tCLOCK_MONOTONIC_RAW               = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX        = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xc\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x10\n\tCLOCK_UPTIME_RAW                  = 0x8\n\tCLOCK_UPTIME_RAW_APPROX           = 0x9\n\tCR0                               = 0x0\n\tCR1                               = 0x1000\n\tCR2                               = 0x2000\n\tCR3                               = 0x3000\n\tCRDLY                             = 0x3000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION       = 0xa6\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0xf5\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PPP_WITH_DIRECTION            = 0xa6\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0xf\n\tEVFILT_FS                         = -0x9\n\tEVFILT_MACHPORT                   = -0x8\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xf\n\tEVFILT_THREADMARKER               = 0xf\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0xa\n\tEVFILT_VM                         = -0xc\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_DISPATCH2                      = 0x180\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG0                          = 0x1000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_OOBAND                         = 0x2000\n\tEV_POLL                           = 0x1000\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEV_UDATA_SPECIFIC                 = 0x100\n\tEV_VANISHED                       = 0x200\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFF0                               = 0x0\n\tFF1                               = 0x4000\n\tFFDLY                             = 0x4000\n\tFLUSHO                            = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED           = 0x20\n\tFSOPT_NOFOLLOW                    = 0x1\n\tFSOPT_NOINMEMUPDATE               = 0x2\n\tFSOPT_PACK_INVAL_ATTRS            = 0x8\n\tFSOPT_REPORT_FULLSIZE             = 0x4\n\tF_ADDFILESIGS                     = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM        = 0x53\n\tF_ADDFILESIGS_RETURN              = 0x61\n\tF_ADDSIGS                         = 0x3b\n\tF_ALLOCATEALL                     = 0x4\n\tF_ALLOCATECONTIG                  = 0x2\n\tF_BARRIERFSYNC                    = 0x55\n\tF_CHECK_LV                        = 0x62\n\tF_CHKCLEAN                        = 0x29\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x43\n\tF_FINDSIGS                        = 0x4e\n\tF_FLUSH_DATA                      = 0x28\n\tF_FREEZE_FS                       = 0x35\n\tF_FULLFSYNC                       = 0x33\n\tF_GETCODEDIR                      = 0x48\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETLKPID                        = 0x42\n\tF_GETNOSIGPIPE                    = 0x4a\n\tF_GETOWN                          = 0x5\n\tF_GETPATH                         = 0x32\n\tF_GETPATH_MTMINFO                 = 0x47\n\tF_GETPROTECTIONCLASS              = 0x3f\n\tF_GETPROTECTIONLEVEL              = 0x4d\n\tF_GLOBAL_NOCACHE                  = 0x37\n\tF_LOG2PHYS                        = 0x31\n\tF_LOG2PHYS_EXT                    = 0x41\n\tF_NOCACHE                         = 0x30\n\tF_NODIRECT                        = 0x3e\n\tF_OK                              = 0x0\n\tF_PATHPKG_CHECK                   = 0x34\n\tF_PEOFPOSMODE                     = 0x3\n\tF_PREALLOCATE                     = 0x2a\n\tF_PUNCHHOLE                       = 0x63\n\tF_RDADVISE                        = 0x2c\n\tF_RDAHEAD                         = 0x2d\n\tF_RDLCK                           = 0x1\n\tF_SETBACKINGSTORE                 = 0x46\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETLKWTIMEOUT                   = 0xa\n\tF_SETNOSIGPIPE                    = 0x49\n\tF_SETOWN                          = 0x6\n\tF_SETPROTECTIONCLASS              = 0x40\n\tF_SETSIZE                         = 0x2b\n\tF_SINGLE_WRITER                   = 0x4c\n\tF_THAW_FS                         = 0x36\n\tF_TRANSCODEKEY                    = 0x4b\n\tF_TRIM_ACTIVE_FILE                = 0x64\n\tF_UNLCK                           = 0x2\n\tF_VOLPOSMODE                      = 0x4\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_AAL5                          = 0x31\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ATM                           = 0x25\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_CARP                          = 0xf8\n\tIFT_CELLULAR                      = 0xff\n\tIFT_CEPT                          = 0x13\n\tIFT_DS3                           = 0x1e\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0x38\n\tIFT_FDDI                          = 0xf\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_GIF                           = 0x37\n\tIFT_HDH1822                       = 0x3\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE8023ADLAG                 = 0x88\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88026                      = 0xa\n\tIFT_L2VLAN                        = 0x87\n\tIFT_LAPB                          = 0x10\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_NSIP                          = 0x1b\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PDP                           = 0xff\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PKTAP                         = 0xfe\n\tIFT_PPP                           = 0x17\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_RS232                         = 0x21\n\tIFT_SDLC                          = 0x11\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0x39\n\tIFT_T1                            = 0x12\n\tIFT_ULTRA                         = 0x1d\n\tIFT_V35                           = 0x2d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LINKLOCALNETNUM                = 0xa9fe0000\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_2292DSTOPTS                  = 0x17\n\tIPV6_2292HOPLIMIT                 = 0x14\n\tIPV6_2292HOPOPTS                  = 0x16\n\tIPV6_2292NEXTHOP                  = 0x15\n\tIPV6_2292PKTINFO                  = 0x13\n\tIPV6_2292PKTOPTIONS               = 0x19\n\tIPV6_2292RTHDR                    = 0x18\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_BOUND_IF                     = 0x7d\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                = 0x300\n\tIPV6_FRAGTTL                      = 0x3c\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXOPTHDR                    = 0x800\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER         = 0x200\n\tIPV6_MAX_MEMBERSHIPS              = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER          = 0x80\n\tIPV6_MIN_MEMBERSHIPS              = 0x1f\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVTCLASS                   = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x24\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP          = 0x46\n\tIP_BLOCK_SOURCE                   = 0x48\n\tIP_BOUND_IF                       = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP         = 0x47\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FAITH                          = 0x16\n\tIP_FW_ADD                         = 0x28\n\tIP_FW_DEL                         = 0x29\n\tIP_FW_FLUSH                       = 0x2a\n\tIP_FW_GET                         = 0x2c\n\tIP_FW_RESETLOG                    = 0x2d\n\tIP_FW_ZERO                        = 0x2b\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x15\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER           = 0x200\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER           = 0x80\n\tIP_MAX_SOCK_SRC_FILTER            = 0x80\n\tIP_MF                             = 0x2000\n\tIP_MIN_MEMBERSHIPS                = 0x1f\n\tIP_MSFILTER                       = 0x4a\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_IFINDEX              = 0x42\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_NAT__XXX                       = 0x37\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OLD_FW_ADD                     = 0x32\n\tIP_OLD_FW_DEL                     = 0x33\n\tIP_OLD_FW_FLUSH                   = 0x34\n\tIP_OLD_FW_GET                     = 0x36\n\tIP_OLD_FW_RESETLOG                = 0x38\n\tIP_OLD_FW_ZERO                    = 0x35\n\tIP_OPTIONS                        = 0x1\n\tIP_PKTINFO                        = 0x1a\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVPKTINFO                    = 0x1a\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTOS                        = 0x1b\n\tIP_RECVTTL                        = 0x18\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_STRIPHDR                       = 0x17\n\tIP_TOS                            = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND         = 0x41\n\tIP_TTL                            = 0x4\n\tIP_UNBLOCK_SOURCE                 = 0x49\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIUTF8                             = 0x4000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_CAN_REUSE                    = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_FREE_REUSABLE                = 0x7\n\tMADV_FREE_REUSE                   = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_PAGEOUT                      = 0xa\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_WILLNEED                     = 0x3\n\tMADV_ZERO_WIRED_PAGES             = 0x6\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_JIT                           = 0x800\n\tMAP_NOCACHE                       = 0x400\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_RESERVED0080                  = 0x80\n\tMAP_RESILIENT_CODESIGN            = 0x2000\n\tMAP_RESILIENT_MEDIA               = 0x4000\n\tMAP_SHARED                        = 0x1\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x400000\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_CPROTECT                      = 0x80\n\tMNT_DEFWRITE                      = 0x2000000\n\tMNT_DONTBROWSE                    = 0x100000\n\tMNT_DOVOLFS                       = 0x8000\n\tMNT_DWAIT                         = 0x4\n\tMNT_EXPORTED                      = 0x100\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE_OWNERSHIP              = 0x200000\n\tMNT_JOURNALED                     = 0x800000\n\tMNT_LOCAL                         = 0x1000\n\tMNT_MULTILABEL                    = 0x4000000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOBLOCK                       = 0x20000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOUSERXATTR                   = 0x1000000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUARANTINE                    = 0x400\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UNKNOWNPERMISSIONS            = 0x200000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x17f0f5ff\n\tMNT_WAIT                          = 0x1\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FLUSH                         = 0x400\n\tMSG_HAVEMORE                      = 0x2000\n\tMSG_HOLD                          = 0x800\n\tMSG_NEEDSA                        = 0x10000\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_RCVMORE                       = 0x4000\n\tMSG_SEND                          = 0x1000\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITSTREAM                    = 0x200\n\tMS_ASYNC                          = 0x1\n\tMS_DEACTIVATE                     = 0x8\n\tMS_INVALIDATE                     = 0x2\n\tMS_KILLPAGES                      = 0x4\n\tMS_SYNC                           = 0x10\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_DUMP2                      = 0x7\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFLIST2                    = 0x6\n\tNET_RT_MAXID                      = 0xa\n\tNET_RT_STAT                       = 0x4\n\tNET_RT_TRASH                      = 0x5\n\tNL0                               = 0x0\n\tNL1                               = 0x100\n\tNL2                               = 0x200\n\tNL3                               = 0x300\n\tNLDLY                             = 0x300\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ABSOLUTE                     = 0x8\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_BACKGROUND                   = 0x40\n\tNOTE_CHILD                        = 0x4\n\tNOTE_CRITICAL                     = 0x20\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXITSTATUS                   = 0x4000000\n\tNOTE_EXIT_CSERROR                 = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL             = 0x10000\n\tNOTE_EXIT_DETAIL                  = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK             = 0x70000\n\tNOTE_EXIT_MEMORY                  = 0x20000\n\tNOTE_EXIT_REPARENTED              = 0x80000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_FUNLOCK                      = 0x100\n\tNOTE_LEEWAY                       = 0x10\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_MACH_CONTINUOUS_TIME         = 0x80\n\tNOTE_NONE                         = 0x80\n\tNOTE_NSECONDS                     = 0x4\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = -0x100000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_REAP                         = 0x10000000\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_SECONDS                      = 0x1\n\tNOTE_SIGNAL                       = 0x8000000\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_USECONDS                     = 0x2\n\tNOTE_VM_ERROR                     = 0x10000000\n\tNOTE_VM_PRESSURE                  = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE        = 0x40000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFDEL                             = 0x20000\n\tOFILL                             = 0x80\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_ALERT                           = 0x20000000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x1000000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x100000\n\tO_DP_GETRAWENCRYPTED              = 0x1\n\tO_DP_GETRAWUNENCRYPTED            = 0x2\n\tO_DSYNC                           = 0x400000\n\tO_EVTONLY                         = 0x8000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x20000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_POPUP                           = 0x80000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYMLINK                         = 0x200000\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPT_ATTACH                         = 0xa\n\tPT_ATTACHEXC                      = 0xe\n\tPT_CONTINUE                       = 0x7\n\tPT_DENY_ATTACH                    = 0x1f\n\tPT_DETACH                         = 0xb\n\tPT_FIRSTMACH                      = 0x20\n\tPT_FORCEQUOTA                     = 0x1e\n\tPT_KILL                           = 0x8\n\tPT_READ_D                         = 0x2\n\tPT_READ_I                         = 0x1\n\tPT_READ_U                         = 0x3\n\tPT_SIGEXC                         = 0xc\n\tPT_STEP                           = 0x9\n\tPT_THUPDATE                       = 0xd\n\tPT_TRACE_ME                       = 0x0\n\tPT_WRITE_D                        = 0x5\n\tPT_WRITE_I                        = 0x4\n\tPT_WRITE_U                        = 0x6\n\tRLIMIT_AS                         = 0x5\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR          = 0x2\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x8\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONDEMNED                     = 0x2000000\n\tRTF_DELCLONE                      = 0x80\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_IFREF                         = 0x4000000\n\tRTF_IFSCOPE                       = 0x1000000\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_NOIFREF                       = 0x2000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_PROXY                         = 0x8000000\n\tRTF_REJECT                        = 0x8\n\tRTF_ROUTER                        = 0x10000000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_GET2                          = 0x14\n\tRTM_IFINFO                        = 0xe\n\tRTM_IFINFO2                       = 0x12\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_NEWMADDR2                     = 0x13\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSCM_TIMESTAMP_MONOTONIC           = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCARPIPLL                       = 0xc0206928\n\tSIOCATMARK                        = 0x40047307\n\tSIOCAUTOADDR                      = 0xc0206926\n\tSIOCAUTONETMASK                   = 0x80206927\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFPHYADDR                    = 0x80206941\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETVLAN                       = 0xc020697f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALTMTU                     = 0xc0206948\n\tSIOCGIFASYNCMAP                   = 0xc020697c\n\tSIOCGIFBOND                       = 0xc0206947\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020695b\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDEVMTU                     = 0xc0206944\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFKPI                        = 0xc0206987\n\tSIOCGIFMAC                        = 0xc0206982\n\tSIOCGIFMEDIA                      = 0xc0286938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206940\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPSRCADDR                   = 0xc020693f\n\tSIOCGIFSTATUS                     = 0xc331693d\n\tSIOCGIFVLAN                       = 0xc020697f\n\tSIOCGIFWAKEFLAGS                  = 0xc0206988\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCIFCREATE                      = 0xc0206978\n\tSIOCIFCREATE2                     = 0xc020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6981\n\tSIOCRSLVMULTI                     = 0xc008693b\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETVLAN                       = 0x8020697e\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFALTMTU                     = 0x80206945\n\tSIOCSIFASYNCMAP                   = 0x8020697d\n\tSIOCSIFBOND                       = 0x80206946\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020695a\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFKPI                        = 0x80206986\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMAC                        = 0x80206983\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x8040693e\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFVLAN                       = 0x8020697e\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_DONTTRUNC                      = 0x2000\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LABEL                          = 0x1010\n\tSO_LINGER                         = 0x80\n\tSO_LINGER_SEC                     = 0x1080\n\tSO_NETSVC_MARKING_LEVEL           = 0x1119\n\tSO_NET_SERVICE_TYPE               = 0x1116\n\tSO_NKE                            = 0x1021\n\tSO_NOADDRERR                      = 0x1023\n\tSO_NOSIGPIPE                      = 0x1022\n\tSO_NOTIFYCONFLICT                 = 0x1026\n\tSO_NP_EXTENSIONS                  = 0x1083\n\tSO_NREAD                          = 0x1020\n\tSO_NUMRCVPKT                      = 0x1112\n\tSO_NWRITE                         = 0x1024\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERLABEL                      = 0x1011\n\tSO_RANDOMPORT                     = 0x1082\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_REUSESHAREUID                  = 0x1025\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TIMESTAMP_MONOTONIC            = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_UPCALLCLOSEWAIT                = 0x1027\n\tSO_USELOOPBACK                    = 0x40\n\tSO_WANTMORE                       = 0x4000\n\tSO_WANTOOBFLAG                    = 0x8000\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB1                              = 0x400\n\tTAB2                              = 0x800\n\tTAB3                              = 0x4\n\tTABDLY                            = 0xc04\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_CONNECTIONTIMEOUT             = 0x20\n\tTCP_CONNECTION_INFO               = 0x106\n\tTCP_ENABLE_ECN                    = 0x104\n\tTCP_FASTOPEN                      = 0x105\n\tTCP_KEEPALIVE                     = 0x10\n\tTCP_KEEPCNT                       = 0x102\n\tTCP_KEEPINTVL                     = 0x101\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x4\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_NOTSENT_LOWAT                 = 0x201\n\tTCP_RXT_CONNDROPTIME              = 0x80\n\tTCP_RXT_FINDROP                   = 0x100\n\tTCP_SENDMOREACKS                  = 0x103\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40087458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCDSIMICROCODE                  = 0x20007455\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCIXOFF                         = 0x20007480\n\tTIOCIXON                          = 0x20007481\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTYGNAME                      = 0x40807453\n\tTIOCPTYGRANT                      = 0x20007454\n\tTIOCPTYUNLK                       = 0x20007452\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCONS                         = 0x20007463\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40087459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_LOADAVG                        = 0x2\n\tVM_MACHFACTOR                     = 0x4\n\tVM_MAXID                          = 0x6\n\tVM_METER                          = 0x1\n\tVM_SWAPUSAGE                      = 0x5\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVT0                               = 0x0\n\tVT1                               = 0x10000\n\tVTDLY                             = 0x10000\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x10\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x4\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x20\n\tWORDSIZE                          = 0x20\n\tWSTOPPED                          = 0x8\n\tWUNTRACED                         = 0x2\n\tXATTR_CREATE                      = 0x2\n\tXATTR_NODEFAULT                   = 0x10\n\tXATTR_NOFOLLOW                    = 0x1\n\tXATTR_NOSECURITY                  = 0x8\n\tXATTR_REPLACE                     = 0x4\n\tXATTR_SHOWCOMPRESSION             = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,darwin\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1c\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x25\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1e\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1c\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x28\n\tAF_NATM                           = 0x1f\n\tAF_NDRV                           = 0x1b\n\tAF_NETBIOS                        = 0x21\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PPP                            = 0x22\n\tAF_PUP                            = 0x4\n\tAF_RESERVED_36                    = 0x24\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_SYSTEM                         = 0x20\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tAF_UTUN                           = 0x26\n\tALTWERASE                         = 0x200\n\tATTR_BIT_MAP_COUNT                = 0x5\n\tATTR_CMN_ACCESSMASK               = 0x20000\n\tATTR_CMN_ACCTIME                  = 0x1000\n\tATTR_CMN_ADDEDTIME                = 0x10000000\n\tATTR_CMN_BKUPTIME                 = 0x2000\n\tATTR_CMN_CHGTIME                  = 0x800\n\tATTR_CMN_CRTIME                   = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000\n\tATTR_CMN_DEVID                    = 0x2\n\tATTR_CMN_DOCUMENT_ID              = 0x100000\n\tATTR_CMN_ERROR                    = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY        = 0x400000\n\tATTR_CMN_FILEID                   = 0x2000000\n\tATTR_CMN_FLAGS                    = 0x40000\n\tATTR_CMN_FNDRINFO                 = 0x4000\n\tATTR_CMN_FSID                     = 0x4\n\tATTR_CMN_FULLPATH                 = 0x8000000\n\tATTR_CMN_GEN_COUNT                = 0x80000\n\tATTR_CMN_GRPID                    = 0x10000\n\tATTR_CMN_GRPUUID                  = 0x1000000\n\tATTR_CMN_MODTIME                  = 0x400\n\tATTR_CMN_NAME                     = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT           = 0x80000\n\tATTR_CMN_NAMEDATTRLIST            = 0x100000\n\tATTR_CMN_OBJID                    = 0x20\n\tATTR_CMN_OBJPERMANENTID           = 0x40\n\tATTR_CMN_OBJTAG                   = 0x10\n\tATTR_CMN_OBJTYPE                  = 0x8\n\tATTR_CMN_OWNERID                  = 0x8000\n\tATTR_CMN_PARENTID                 = 0x4000000\n\tATTR_CMN_PAROBJID                 = 0x80\n\tATTR_CMN_RETURNED_ATTRS           = 0x80000000\n\tATTR_CMN_SCRIPT                   = 0x100\n\tATTR_CMN_SETMASK                  = 0x41c7ff00\n\tATTR_CMN_USERACCESS               = 0x200000\n\tATTR_CMN_UUID                     = 0x800000\n\tATTR_CMN_VALIDMASK                = 0xffffffff\n\tATTR_CMN_VOLSETMASK               = 0x6700\n\tATTR_FILE_ALLOCSIZE               = 0x4\n\tATTR_FILE_CLUMPSIZE               = 0x10\n\tATTR_FILE_DATAALLOCSIZE           = 0x400\n\tATTR_FILE_DATAEXTENTS             = 0x800\n\tATTR_FILE_DATALENGTH              = 0x200\n\tATTR_FILE_DEVTYPE                 = 0x20\n\tATTR_FILE_FILETYPE                = 0x40\n\tATTR_FILE_FORKCOUNT               = 0x80\n\tATTR_FILE_FORKLIST                = 0x100\n\tATTR_FILE_IOBLOCKSIZE             = 0x8\n\tATTR_FILE_LINKCOUNT               = 0x1\n\tATTR_FILE_RSRCALLOCSIZE           = 0x2000\n\tATTR_FILE_RSRCEXTENTS             = 0x4000\n\tATTR_FILE_RSRCLENGTH              = 0x1000\n\tATTR_FILE_SETMASK                 = 0x20\n\tATTR_FILE_TOTALSIZE               = 0x2\n\tATTR_FILE_VALIDMASK               = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP          = 0x40\n\tATTR_VOL_ATTRIBUTES               = 0x40000000\n\tATTR_VOL_CAPABILITIES             = 0x20000\n\tATTR_VOL_DIRCOUNT                 = 0x400\n\tATTR_VOL_ENCODINGSUSED            = 0x10000\n\tATTR_VOL_FILECOUNT                = 0x200\n\tATTR_VOL_FSTYPE                   = 0x1\n\tATTR_VOL_INFO                     = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE              = 0x80\n\tATTR_VOL_MAXOBJCOUNT              = 0x800\n\tATTR_VOL_MINALLOCATION            = 0x20\n\tATTR_VOL_MOUNTEDDEVICE            = 0x8000\n\tATTR_VOL_MOUNTFLAGS               = 0x4000\n\tATTR_VOL_MOUNTPOINT               = 0x1000\n\tATTR_VOL_NAME                     = 0x2000\n\tATTR_VOL_OBJCOUNT                 = 0x100\n\tATTR_VOL_QUOTA_SIZE               = 0x10000000\n\tATTR_VOL_RESERVED_SIZE            = 0x20000000\n\tATTR_VOL_SETMASK                  = 0x80002000\n\tATTR_VOL_SIGNATURE                = 0x2\n\tATTR_VOL_SIZE                     = 0x4\n\tATTR_VOL_SPACEAVAIL               = 0x10\n\tATTR_VOL_SPACEFREE                = 0x8\n\tATTR_VOL_UUID                     = 0x40000\n\tATTR_VOL_VALIDMASK                = 0xf007ffff\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc00c4279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETFNR                        = 0x8010427e\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tBS0                               = 0x0\n\tBS1                               = 0x8000\n\tBSDLY                             = 0x8000\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x6\n\tCLOCK_MONOTONIC_RAW               = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX        = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xc\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x10\n\tCLOCK_UPTIME_RAW                  = 0x8\n\tCLOCK_UPTIME_RAW_APPROX           = 0x9\n\tCR0                               = 0x0\n\tCR1                               = 0x1000\n\tCR2                               = 0x2000\n\tCR3                               = 0x3000\n\tCRDLY                             = 0x3000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION       = 0xa6\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0xf5\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PPP_WITH_DIRECTION            = 0xa6\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0xf\n\tEVFILT_FS                         = -0x9\n\tEVFILT_MACHPORT                   = -0x8\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xf\n\tEVFILT_THREADMARKER               = 0xf\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0xa\n\tEVFILT_VM                         = -0xc\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_DISPATCH2                      = 0x180\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG0                          = 0x1000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_OOBAND                         = 0x2000\n\tEV_POLL                           = 0x1000\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEV_UDATA_SPECIFIC                 = 0x100\n\tEV_VANISHED                       = 0x200\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFF0                               = 0x0\n\tFF1                               = 0x4000\n\tFFDLY                             = 0x4000\n\tFLUSHO                            = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED           = 0x20\n\tFSOPT_NOFOLLOW                    = 0x1\n\tFSOPT_NOINMEMUPDATE               = 0x2\n\tFSOPT_PACK_INVAL_ATTRS            = 0x8\n\tFSOPT_REPORT_FULLSIZE             = 0x4\n\tF_ADDFILESIGS                     = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM        = 0x53\n\tF_ADDFILESIGS_RETURN              = 0x61\n\tF_ADDSIGS                         = 0x3b\n\tF_ALLOCATEALL                     = 0x4\n\tF_ALLOCATECONTIG                  = 0x2\n\tF_BARRIERFSYNC                    = 0x55\n\tF_CHECK_LV                        = 0x62\n\tF_CHKCLEAN                        = 0x29\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x43\n\tF_FINDSIGS                        = 0x4e\n\tF_FLUSH_DATA                      = 0x28\n\tF_FREEZE_FS                       = 0x35\n\tF_FULLFSYNC                       = 0x33\n\tF_GETCODEDIR                      = 0x48\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETLKPID                        = 0x42\n\tF_GETNOSIGPIPE                    = 0x4a\n\tF_GETOWN                          = 0x5\n\tF_GETPATH                         = 0x32\n\tF_GETPATH_MTMINFO                 = 0x47\n\tF_GETPROTECTIONCLASS              = 0x3f\n\tF_GETPROTECTIONLEVEL              = 0x4d\n\tF_GLOBAL_NOCACHE                  = 0x37\n\tF_LOG2PHYS                        = 0x31\n\tF_LOG2PHYS_EXT                    = 0x41\n\tF_NOCACHE                         = 0x30\n\tF_NODIRECT                        = 0x3e\n\tF_OK                              = 0x0\n\tF_PATHPKG_CHECK                   = 0x34\n\tF_PEOFPOSMODE                     = 0x3\n\tF_PREALLOCATE                     = 0x2a\n\tF_PUNCHHOLE                       = 0x63\n\tF_RDADVISE                        = 0x2c\n\tF_RDAHEAD                         = 0x2d\n\tF_RDLCK                           = 0x1\n\tF_SETBACKINGSTORE                 = 0x46\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETLKWTIMEOUT                   = 0xa\n\tF_SETNOSIGPIPE                    = 0x49\n\tF_SETOWN                          = 0x6\n\tF_SETPROTECTIONCLASS              = 0x40\n\tF_SETSIZE                         = 0x2b\n\tF_SINGLE_WRITER                   = 0x4c\n\tF_THAW_FS                         = 0x36\n\tF_TRANSCODEKEY                    = 0x4b\n\tF_TRIM_ACTIVE_FILE                = 0x64\n\tF_UNLCK                           = 0x2\n\tF_VOLPOSMODE                      = 0x4\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_AAL5                          = 0x31\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ATM                           = 0x25\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_CARP                          = 0xf8\n\tIFT_CELLULAR                      = 0xff\n\tIFT_CEPT                          = 0x13\n\tIFT_DS3                           = 0x1e\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0x38\n\tIFT_FDDI                          = 0xf\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_GIF                           = 0x37\n\tIFT_HDH1822                       = 0x3\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE8023ADLAG                 = 0x88\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88026                      = 0xa\n\tIFT_L2VLAN                        = 0x87\n\tIFT_LAPB                          = 0x10\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_NSIP                          = 0x1b\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PDP                           = 0xff\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PKTAP                         = 0xfe\n\tIFT_PPP                           = 0x17\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_RS232                         = 0x21\n\tIFT_SDLC                          = 0x11\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0x39\n\tIFT_T1                            = 0x12\n\tIFT_ULTRA                         = 0x1d\n\tIFT_V35                           = 0x2d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LINKLOCALNETNUM                = 0xa9fe0000\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_2292DSTOPTS                  = 0x17\n\tIPV6_2292HOPLIMIT                 = 0x14\n\tIPV6_2292HOPOPTS                  = 0x16\n\tIPV6_2292NEXTHOP                  = 0x15\n\tIPV6_2292PKTINFO                  = 0x13\n\tIPV6_2292PKTOPTIONS               = 0x19\n\tIPV6_2292RTHDR                    = 0x18\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_BOUND_IF                     = 0x7d\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                = 0x300\n\tIPV6_FRAGTTL                      = 0x3c\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXOPTHDR                    = 0x800\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER         = 0x200\n\tIPV6_MAX_MEMBERSHIPS              = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER          = 0x80\n\tIPV6_MIN_MEMBERSHIPS              = 0x1f\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVTCLASS                   = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x24\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP          = 0x46\n\tIP_BLOCK_SOURCE                   = 0x48\n\tIP_BOUND_IF                       = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP         = 0x47\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FAITH                          = 0x16\n\tIP_FW_ADD                         = 0x28\n\tIP_FW_DEL                         = 0x29\n\tIP_FW_FLUSH                       = 0x2a\n\tIP_FW_GET                         = 0x2c\n\tIP_FW_RESETLOG                    = 0x2d\n\tIP_FW_ZERO                        = 0x2b\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x15\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER           = 0x200\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER           = 0x80\n\tIP_MAX_SOCK_SRC_FILTER            = 0x80\n\tIP_MF                             = 0x2000\n\tIP_MIN_MEMBERSHIPS                = 0x1f\n\tIP_MSFILTER                       = 0x4a\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_IFINDEX              = 0x42\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_NAT__XXX                       = 0x37\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OLD_FW_ADD                     = 0x32\n\tIP_OLD_FW_DEL                     = 0x33\n\tIP_OLD_FW_FLUSH                   = 0x34\n\tIP_OLD_FW_GET                     = 0x36\n\tIP_OLD_FW_RESETLOG                = 0x38\n\tIP_OLD_FW_ZERO                    = 0x35\n\tIP_OPTIONS                        = 0x1\n\tIP_PKTINFO                        = 0x1a\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVPKTINFO                    = 0x1a\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTOS                        = 0x1b\n\tIP_RECVTTL                        = 0x18\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_STRIPHDR                       = 0x17\n\tIP_TOS                            = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND         = 0x41\n\tIP_TTL                            = 0x4\n\tIP_UNBLOCK_SOURCE                 = 0x49\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIUTF8                             = 0x4000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_CAN_REUSE                    = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_FREE_REUSABLE                = 0x7\n\tMADV_FREE_REUSE                   = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_PAGEOUT                      = 0xa\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_WILLNEED                     = 0x3\n\tMADV_ZERO_WIRED_PAGES             = 0x6\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_JIT                           = 0x800\n\tMAP_NOCACHE                       = 0x400\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_RESERVED0080                  = 0x80\n\tMAP_RESILIENT_CODESIGN            = 0x2000\n\tMAP_RESILIENT_MEDIA               = 0x4000\n\tMAP_SHARED                        = 0x1\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x400000\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_CPROTECT                      = 0x80\n\tMNT_DEFWRITE                      = 0x2000000\n\tMNT_DONTBROWSE                    = 0x100000\n\tMNT_DOVOLFS                       = 0x8000\n\tMNT_DWAIT                         = 0x4\n\tMNT_EXPORTED                      = 0x100\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE_OWNERSHIP              = 0x200000\n\tMNT_JOURNALED                     = 0x800000\n\tMNT_LOCAL                         = 0x1000\n\tMNT_MULTILABEL                    = 0x4000000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOBLOCK                       = 0x20000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOUSERXATTR                   = 0x1000000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUARANTINE                    = 0x400\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UNKNOWNPERMISSIONS            = 0x200000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x17f0f5ff\n\tMNT_WAIT                          = 0x1\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FLUSH                         = 0x400\n\tMSG_HAVEMORE                      = 0x2000\n\tMSG_HOLD                          = 0x800\n\tMSG_NEEDSA                        = 0x10000\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_RCVMORE                       = 0x4000\n\tMSG_SEND                          = 0x1000\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITSTREAM                    = 0x200\n\tMS_ASYNC                          = 0x1\n\tMS_DEACTIVATE                     = 0x8\n\tMS_INVALIDATE                     = 0x2\n\tMS_KILLPAGES                      = 0x4\n\tMS_SYNC                           = 0x10\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_DUMP2                      = 0x7\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFLIST2                    = 0x6\n\tNET_RT_MAXID                      = 0xa\n\tNET_RT_STAT                       = 0x4\n\tNET_RT_TRASH                      = 0x5\n\tNL0                               = 0x0\n\tNL1                               = 0x100\n\tNL2                               = 0x200\n\tNL3                               = 0x300\n\tNLDLY                             = 0x300\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ABSOLUTE                     = 0x8\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_BACKGROUND                   = 0x40\n\tNOTE_CHILD                        = 0x4\n\tNOTE_CRITICAL                     = 0x20\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXITSTATUS                   = 0x4000000\n\tNOTE_EXIT_CSERROR                 = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL             = 0x10000\n\tNOTE_EXIT_DETAIL                  = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK             = 0x70000\n\tNOTE_EXIT_MEMORY                  = 0x20000\n\tNOTE_EXIT_REPARENTED              = 0x80000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_FUNLOCK                      = 0x100\n\tNOTE_LEEWAY                       = 0x10\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_MACH_CONTINUOUS_TIME         = 0x80\n\tNOTE_NONE                         = 0x80\n\tNOTE_NSECONDS                     = 0x4\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = -0x100000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_REAP                         = 0x10000000\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_SECONDS                      = 0x1\n\tNOTE_SIGNAL                       = 0x8000000\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_USECONDS                     = 0x2\n\tNOTE_VM_ERROR                     = 0x10000000\n\tNOTE_VM_PRESSURE                  = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE        = 0x40000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFDEL                             = 0x20000\n\tOFILL                             = 0x80\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_ALERT                           = 0x20000000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x1000000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x100000\n\tO_DP_GETRAWENCRYPTED              = 0x1\n\tO_DP_GETRAWUNENCRYPTED            = 0x2\n\tO_DSYNC                           = 0x400000\n\tO_EVTONLY                         = 0x8000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x20000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_POPUP                           = 0x80000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYMLINK                         = 0x200000\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPT_ATTACH                         = 0xa\n\tPT_ATTACHEXC                      = 0xe\n\tPT_CONTINUE                       = 0x7\n\tPT_DENY_ATTACH                    = 0x1f\n\tPT_DETACH                         = 0xb\n\tPT_FIRSTMACH                      = 0x20\n\tPT_FORCEQUOTA                     = 0x1e\n\tPT_KILL                           = 0x8\n\tPT_READ_D                         = 0x2\n\tPT_READ_I                         = 0x1\n\tPT_READ_U                         = 0x3\n\tPT_SIGEXC                         = 0xc\n\tPT_STEP                           = 0x9\n\tPT_THUPDATE                       = 0xd\n\tPT_TRACE_ME                       = 0x0\n\tPT_WRITE_D                        = 0x5\n\tPT_WRITE_I                        = 0x4\n\tPT_WRITE_U                        = 0x6\n\tRLIMIT_AS                         = 0x5\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR          = 0x2\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x8\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONDEMNED                     = 0x2000000\n\tRTF_DELCLONE                      = 0x80\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_IFREF                         = 0x4000000\n\tRTF_IFSCOPE                       = 0x1000000\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_NOIFREF                       = 0x2000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_PROXY                         = 0x8000000\n\tRTF_REJECT                        = 0x8\n\tRTF_ROUTER                        = 0x10000000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_GET2                          = 0x14\n\tRTM_IFINFO                        = 0xe\n\tRTM_IFINFO2                       = 0x12\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_NEWMADDR2                     = 0x13\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSCM_TIMESTAMP_MONOTONIC           = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCARPIPLL                       = 0xc0206928\n\tSIOCATMARK                        = 0x40047307\n\tSIOCAUTOADDR                      = 0xc0206926\n\tSIOCAUTONETMASK                   = 0x80206927\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFPHYADDR                    = 0x80206941\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETVLAN                       = 0xc020697f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALTMTU                     = 0xc0206948\n\tSIOCGIFASYNCMAP                   = 0xc020697c\n\tSIOCGIFBOND                       = 0xc0206947\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020695b\n\tSIOCGIFCONF                       = 0xc00c6924\n\tSIOCGIFDEVMTU                     = 0xc0206944\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFKPI                        = 0xc0206987\n\tSIOCGIFMAC                        = 0xc0206982\n\tSIOCGIFMEDIA                      = 0xc02c6938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206940\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPSRCADDR                   = 0xc020693f\n\tSIOCGIFSTATUS                     = 0xc331693d\n\tSIOCGIFVLAN                       = 0xc020697f\n\tSIOCGIFWAKEFLAGS                  = 0xc0206988\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCIFCREATE                      = 0xc0206978\n\tSIOCIFCREATE2                     = 0xc020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106981\n\tSIOCRSLVMULTI                     = 0xc010693b\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETVLAN                       = 0x8020697e\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFALTMTU                     = 0x80206945\n\tSIOCSIFASYNCMAP                   = 0x8020697d\n\tSIOCSIFBOND                       = 0x80206946\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020695a\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFKPI                        = 0x80206986\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMAC                        = 0x80206983\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x8040693e\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFVLAN                       = 0x8020697e\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_DONTTRUNC                      = 0x2000\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LABEL                          = 0x1010\n\tSO_LINGER                         = 0x80\n\tSO_LINGER_SEC                     = 0x1080\n\tSO_NETSVC_MARKING_LEVEL           = 0x1119\n\tSO_NET_SERVICE_TYPE               = 0x1116\n\tSO_NKE                            = 0x1021\n\tSO_NOADDRERR                      = 0x1023\n\tSO_NOSIGPIPE                      = 0x1022\n\tSO_NOTIFYCONFLICT                 = 0x1026\n\tSO_NP_EXTENSIONS                  = 0x1083\n\tSO_NREAD                          = 0x1020\n\tSO_NUMRCVPKT                      = 0x1112\n\tSO_NWRITE                         = 0x1024\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERLABEL                      = 0x1011\n\tSO_RANDOMPORT                     = 0x1082\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_REUSESHAREUID                  = 0x1025\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TIMESTAMP_MONOTONIC            = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_UPCALLCLOSEWAIT                = 0x1027\n\tSO_USELOOPBACK                    = 0x40\n\tSO_WANTMORE                       = 0x4000\n\tSO_WANTOOBFLAG                    = 0x8000\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB1                              = 0x400\n\tTAB2                              = 0x800\n\tTAB3                              = 0x4\n\tTABDLY                            = 0xc04\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_CONNECTIONTIMEOUT             = 0x20\n\tTCP_CONNECTION_INFO               = 0x106\n\tTCP_ENABLE_ECN                    = 0x104\n\tTCP_FASTOPEN                      = 0x105\n\tTCP_KEEPALIVE                     = 0x10\n\tTCP_KEEPCNT                       = 0x102\n\tTCP_KEEPINTVL                     = 0x101\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x4\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_NOTSENT_LOWAT                 = 0x201\n\tTCP_RXT_CONNDROPTIME              = 0x80\n\tTCP_RXT_FINDROP                   = 0x100\n\tTCP_SENDMOREACKS                  = 0x103\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCDSIMICROCODE                  = 0x20007455\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x40487413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCIXOFF                         = 0x20007480\n\tTIOCIXON                          = 0x20007481\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTYGNAME                      = 0x40807453\n\tTIOCPTYGRANT                      = 0x20007454\n\tTIOCPTYUNLK                       = 0x20007452\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCONS                         = 0x20007463\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x80487414\n\tTIOCSETAF                         = 0x80487416\n\tTIOCSETAW                         = 0x80487415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_LOADAVG                        = 0x2\n\tVM_MACHFACTOR                     = 0x4\n\tVM_MAXID                          = 0x6\n\tVM_METER                          = 0x1\n\tVM_SWAPUSAGE                      = 0x5\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVT0                               = 0x0\n\tVT1                               = 0x10000\n\tVTDLY                             = 0x10000\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x10\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x4\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x20\n\tWORDSIZE                          = 0x40\n\tWSTOPPED                          = 0x8\n\tWUNTRACED                         = 0x2\n\tXATTR_CREATE                      = 0x2\n\tXATTR_NODEFAULT                   = 0x10\n\tXATTR_NOFOLLOW                    = 0x1\n\tXATTR_NOSECURITY                  = 0x8\n\tXATTR_REPLACE                     = 0x4\n\tXATTR_SHOWCOMPRESSION             = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,darwin\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1c\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x25\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1e\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1c\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x28\n\tAF_NATM                           = 0x1f\n\tAF_NDRV                           = 0x1b\n\tAF_NETBIOS                        = 0x21\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PPP                            = 0x22\n\tAF_PUP                            = 0x4\n\tAF_RESERVED_36                    = 0x24\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_SYSTEM                         = 0x20\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tAF_UTUN                           = 0x26\n\tALTWERASE                         = 0x200\n\tATTR_BIT_MAP_COUNT                = 0x5\n\tATTR_CMN_ACCESSMASK               = 0x20000\n\tATTR_CMN_ACCTIME                  = 0x1000\n\tATTR_CMN_ADDEDTIME                = 0x10000000\n\tATTR_CMN_BKUPTIME                 = 0x2000\n\tATTR_CMN_CHGTIME                  = 0x800\n\tATTR_CMN_CRTIME                   = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000\n\tATTR_CMN_DEVID                    = 0x2\n\tATTR_CMN_DOCUMENT_ID              = 0x100000\n\tATTR_CMN_ERROR                    = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY        = 0x400000\n\tATTR_CMN_FILEID                   = 0x2000000\n\tATTR_CMN_FLAGS                    = 0x40000\n\tATTR_CMN_FNDRINFO                 = 0x4000\n\tATTR_CMN_FSID                     = 0x4\n\tATTR_CMN_FULLPATH                 = 0x8000000\n\tATTR_CMN_GEN_COUNT                = 0x80000\n\tATTR_CMN_GRPID                    = 0x10000\n\tATTR_CMN_GRPUUID                  = 0x1000000\n\tATTR_CMN_MODTIME                  = 0x400\n\tATTR_CMN_NAME                     = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT           = 0x80000\n\tATTR_CMN_NAMEDATTRLIST            = 0x100000\n\tATTR_CMN_OBJID                    = 0x20\n\tATTR_CMN_OBJPERMANENTID           = 0x40\n\tATTR_CMN_OBJTAG                   = 0x10\n\tATTR_CMN_OBJTYPE                  = 0x8\n\tATTR_CMN_OWNERID                  = 0x8000\n\tATTR_CMN_PARENTID                 = 0x4000000\n\tATTR_CMN_PAROBJID                 = 0x80\n\tATTR_CMN_RETURNED_ATTRS           = 0x80000000\n\tATTR_CMN_SCRIPT                   = 0x100\n\tATTR_CMN_SETMASK                  = 0x41c7ff00\n\tATTR_CMN_USERACCESS               = 0x200000\n\tATTR_CMN_UUID                     = 0x800000\n\tATTR_CMN_VALIDMASK                = 0xffffffff\n\tATTR_CMN_VOLSETMASK               = 0x6700\n\tATTR_FILE_ALLOCSIZE               = 0x4\n\tATTR_FILE_CLUMPSIZE               = 0x10\n\tATTR_FILE_DATAALLOCSIZE           = 0x400\n\tATTR_FILE_DATAEXTENTS             = 0x800\n\tATTR_FILE_DATALENGTH              = 0x200\n\tATTR_FILE_DEVTYPE                 = 0x20\n\tATTR_FILE_FILETYPE                = 0x40\n\tATTR_FILE_FORKCOUNT               = 0x80\n\tATTR_FILE_FORKLIST                = 0x100\n\tATTR_FILE_IOBLOCKSIZE             = 0x8\n\tATTR_FILE_LINKCOUNT               = 0x1\n\tATTR_FILE_RSRCALLOCSIZE           = 0x2000\n\tATTR_FILE_RSRCEXTENTS             = 0x4000\n\tATTR_FILE_RSRCLENGTH              = 0x1000\n\tATTR_FILE_SETMASK                 = 0x20\n\tATTR_FILE_TOTALSIZE               = 0x2\n\tATTR_FILE_VALIDMASK               = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP          = 0x40\n\tATTR_VOL_ATTRIBUTES               = 0x40000000\n\tATTR_VOL_CAPABILITIES             = 0x20000\n\tATTR_VOL_DIRCOUNT                 = 0x400\n\tATTR_VOL_ENCODINGSUSED            = 0x10000\n\tATTR_VOL_FILECOUNT                = 0x200\n\tATTR_VOL_FSTYPE                   = 0x1\n\tATTR_VOL_INFO                     = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE              = 0x80\n\tATTR_VOL_MAXOBJCOUNT              = 0x800\n\tATTR_VOL_MINALLOCATION            = 0x20\n\tATTR_VOL_MOUNTEDDEVICE            = 0x8000\n\tATTR_VOL_MOUNTFLAGS               = 0x4000\n\tATTR_VOL_MOUNTPOINT               = 0x1000\n\tATTR_VOL_NAME                     = 0x2000\n\tATTR_VOL_OBJCOUNT                 = 0x100\n\tATTR_VOL_QUOTA_SIZE               = 0x10000000\n\tATTR_VOL_RESERVED_SIZE            = 0x20000000\n\tATTR_VOL_SETMASK                  = 0x80002000\n\tATTR_VOL_SIGNATURE                = 0x2\n\tATTR_VOL_SIZE                     = 0x4\n\tATTR_VOL_SPACEAVAIL               = 0x10\n\tATTR_VOL_SPACEFREE                = 0x8\n\tATTR_VOL_UUID                     = 0x40000\n\tATTR_VOL_VALIDMASK                = 0xf007ffff\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc00c4279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETFNR                        = 0x8010427e\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tBS0                               = 0x0\n\tBS1                               = 0x8000\n\tBSDLY                             = 0x8000\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x6\n\tCLOCK_MONOTONIC_RAW               = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX        = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xc\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x10\n\tCLOCK_UPTIME_RAW                  = 0x8\n\tCLOCK_UPTIME_RAW_APPROX           = 0x9\n\tCR0                               = 0x0\n\tCR1                               = 0x1000\n\tCR2                               = 0x2000\n\tCR3                               = 0x3000\n\tCRDLY                             = 0x3000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION       = 0xa6\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0xf5\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PPP_WITH_DIRECTION            = 0xa6\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0xf\n\tEVFILT_FS                         = -0x9\n\tEVFILT_MACHPORT                   = -0x8\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xf\n\tEVFILT_THREADMARKER               = 0xf\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0xa\n\tEVFILT_VM                         = -0xc\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_DISPATCH2                      = 0x180\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG0                          = 0x1000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_OOBAND                         = 0x2000\n\tEV_POLL                           = 0x1000\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEV_UDATA_SPECIFIC                 = 0x100\n\tEV_VANISHED                       = 0x200\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFF0                               = 0x0\n\tFF1                               = 0x4000\n\tFFDLY                             = 0x4000\n\tFLUSHO                            = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED           = 0x20\n\tFSOPT_NOFOLLOW                    = 0x1\n\tFSOPT_NOINMEMUPDATE               = 0x2\n\tFSOPT_PACK_INVAL_ATTRS            = 0x8\n\tFSOPT_REPORT_FULLSIZE             = 0x4\n\tF_ADDFILESIGS                     = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM        = 0x53\n\tF_ADDFILESIGS_RETURN              = 0x61\n\tF_ADDSIGS                         = 0x3b\n\tF_ALLOCATEALL                     = 0x4\n\tF_ALLOCATECONTIG                  = 0x2\n\tF_BARRIERFSYNC                    = 0x55\n\tF_CHECK_LV                        = 0x62\n\tF_CHKCLEAN                        = 0x29\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x43\n\tF_FINDSIGS                        = 0x4e\n\tF_FLUSH_DATA                      = 0x28\n\tF_FREEZE_FS                       = 0x35\n\tF_FULLFSYNC                       = 0x33\n\tF_GETCODEDIR                      = 0x48\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETLKPID                        = 0x42\n\tF_GETNOSIGPIPE                    = 0x4a\n\tF_GETOWN                          = 0x5\n\tF_GETPATH                         = 0x32\n\tF_GETPATH_MTMINFO                 = 0x47\n\tF_GETPROTECTIONCLASS              = 0x3f\n\tF_GETPROTECTIONLEVEL              = 0x4d\n\tF_GLOBAL_NOCACHE                  = 0x37\n\tF_LOG2PHYS                        = 0x31\n\tF_LOG2PHYS_EXT                    = 0x41\n\tF_NOCACHE                         = 0x30\n\tF_NODIRECT                        = 0x3e\n\tF_OK                              = 0x0\n\tF_PATHPKG_CHECK                   = 0x34\n\tF_PEOFPOSMODE                     = 0x3\n\tF_PREALLOCATE                     = 0x2a\n\tF_PUNCHHOLE                       = 0x63\n\tF_RDADVISE                        = 0x2c\n\tF_RDAHEAD                         = 0x2d\n\tF_RDLCK                           = 0x1\n\tF_SETBACKINGSTORE                 = 0x46\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETLKWTIMEOUT                   = 0xa\n\tF_SETNOSIGPIPE                    = 0x49\n\tF_SETOWN                          = 0x6\n\tF_SETPROTECTIONCLASS              = 0x40\n\tF_SETSIZE                         = 0x2b\n\tF_SINGLE_WRITER                   = 0x4c\n\tF_THAW_FS                         = 0x36\n\tF_TRANSCODEKEY                    = 0x4b\n\tF_TRIM_ACTIVE_FILE                = 0x64\n\tF_UNLCK                           = 0x2\n\tF_VOLPOSMODE                      = 0x4\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_AAL5                          = 0x31\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ATM                           = 0x25\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_CARP                          = 0xf8\n\tIFT_CELLULAR                      = 0xff\n\tIFT_CEPT                          = 0x13\n\tIFT_DS3                           = 0x1e\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0x38\n\tIFT_FDDI                          = 0xf\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_GIF                           = 0x37\n\tIFT_HDH1822                       = 0x3\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE8023ADLAG                 = 0x88\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88026                      = 0xa\n\tIFT_L2VLAN                        = 0x87\n\tIFT_LAPB                          = 0x10\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_NSIP                          = 0x1b\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PDP                           = 0xff\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PKTAP                         = 0xfe\n\tIFT_PPP                           = 0x17\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_RS232                         = 0x21\n\tIFT_SDLC                          = 0x11\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0x39\n\tIFT_T1                            = 0x12\n\tIFT_ULTRA                         = 0x1d\n\tIFT_V35                           = 0x2d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LINKLOCALNETNUM                = 0xa9fe0000\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_2292DSTOPTS                  = 0x17\n\tIPV6_2292HOPLIMIT                 = 0x14\n\tIPV6_2292HOPOPTS                  = 0x16\n\tIPV6_2292NEXTHOP                  = 0x15\n\tIPV6_2292PKTINFO                  = 0x13\n\tIPV6_2292PKTOPTIONS               = 0x19\n\tIPV6_2292RTHDR                    = 0x18\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_BOUND_IF                     = 0x7d\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                = 0x300\n\tIPV6_FRAGTTL                      = 0x3c\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXOPTHDR                    = 0x800\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER         = 0x200\n\tIPV6_MAX_MEMBERSHIPS              = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER          = 0x80\n\tIPV6_MIN_MEMBERSHIPS              = 0x1f\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVTCLASS                   = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x24\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP          = 0x46\n\tIP_BLOCK_SOURCE                   = 0x48\n\tIP_BOUND_IF                       = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP         = 0x47\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FAITH                          = 0x16\n\tIP_FW_ADD                         = 0x28\n\tIP_FW_DEL                         = 0x29\n\tIP_FW_FLUSH                       = 0x2a\n\tIP_FW_GET                         = 0x2c\n\tIP_FW_RESETLOG                    = 0x2d\n\tIP_FW_ZERO                        = 0x2b\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x15\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER           = 0x200\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER           = 0x80\n\tIP_MAX_SOCK_SRC_FILTER            = 0x80\n\tIP_MF                             = 0x2000\n\tIP_MIN_MEMBERSHIPS                = 0x1f\n\tIP_MSFILTER                       = 0x4a\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_IFINDEX              = 0x42\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_NAT__XXX                       = 0x37\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OLD_FW_ADD                     = 0x32\n\tIP_OLD_FW_DEL                     = 0x33\n\tIP_OLD_FW_FLUSH                   = 0x34\n\tIP_OLD_FW_GET                     = 0x36\n\tIP_OLD_FW_RESETLOG                = 0x38\n\tIP_OLD_FW_ZERO                    = 0x35\n\tIP_OPTIONS                        = 0x1\n\tIP_PKTINFO                        = 0x1a\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVPKTINFO                    = 0x1a\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTOS                        = 0x1b\n\tIP_RECVTTL                        = 0x18\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_STRIPHDR                       = 0x17\n\tIP_TOS                            = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND         = 0x41\n\tIP_TTL                            = 0x4\n\tIP_UNBLOCK_SOURCE                 = 0x49\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIUTF8                             = 0x4000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_CAN_REUSE                    = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_FREE_REUSABLE                = 0x7\n\tMADV_FREE_REUSE                   = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_PAGEOUT                      = 0xa\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_WILLNEED                     = 0x3\n\tMADV_ZERO_WIRED_PAGES             = 0x6\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_JIT                           = 0x800\n\tMAP_NOCACHE                       = 0x400\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_RESERVED0080                  = 0x80\n\tMAP_RESILIENT_CODESIGN            = 0x2000\n\tMAP_RESILIENT_MEDIA               = 0x4000\n\tMAP_SHARED                        = 0x1\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x400000\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_CPROTECT                      = 0x80\n\tMNT_DEFWRITE                      = 0x2000000\n\tMNT_DONTBROWSE                    = 0x100000\n\tMNT_DOVOLFS                       = 0x8000\n\tMNT_DWAIT                         = 0x4\n\tMNT_EXPORTED                      = 0x100\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE_OWNERSHIP              = 0x200000\n\tMNT_JOURNALED                     = 0x800000\n\tMNT_LOCAL                         = 0x1000\n\tMNT_MULTILABEL                    = 0x4000000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOBLOCK                       = 0x20000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOUSERXATTR                   = 0x1000000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUARANTINE                    = 0x400\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UNKNOWNPERMISSIONS            = 0x200000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x17f0f5ff\n\tMNT_WAIT                          = 0x1\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FLUSH                         = 0x400\n\tMSG_HAVEMORE                      = 0x2000\n\tMSG_HOLD                          = 0x800\n\tMSG_NEEDSA                        = 0x10000\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_RCVMORE                       = 0x4000\n\tMSG_SEND                          = 0x1000\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITSTREAM                    = 0x200\n\tMS_ASYNC                          = 0x1\n\tMS_DEACTIVATE                     = 0x8\n\tMS_INVALIDATE                     = 0x2\n\tMS_KILLPAGES                      = 0x4\n\tMS_SYNC                           = 0x10\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_DUMP2                      = 0x7\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFLIST2                    = 0x6\n\tNET_RT_MAXID                      = 0xa\n\tNET_RT_STAT                       = 0x4\n\tNET_RT_TRASH                      = 0x5\n\tNL0                               = 0x0\n\tNL1                               = 0x100\n\tNL2                               = 0x200\n\tNL3                               = 0x300\n\tNLDLY                             = 0x300\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ABSOLUTE                     = 0x8\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_BACKGROUND                   = 0x40\n\tNOTE_CHILD                        = 0x4\n\tNOTE_CRITICAL                     = 0x20\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXITSTATUS                   = 0x4000000\n\tNOTE_EXIT_CSERROR                 = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL             = 0x10000\n\tNOTE_EXIT_DETAIL                  = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK             = 0x70000\n\tNOTE_EXIT_MEMORY                  = 0x20000\n\tNOTE_EXIT_REPARENTED              = 0x80000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_FUNLOCK                      = 0x100\n\tNOTE_LEEWAY                       = 0x10\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_MACH_CONTINUOUS_TIME         = 0x80\n\tNOTE_NONE                         = 0x80\n\tNOTE_NSECONDS                     = 0x4\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = -0x100000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_REAP                         = 0x10000000\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_SECONDS                      = 0x1\n\tNOTE_SIGNAL                       = 0x8000000\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_USECONDS                     = 0x2\n\tNOTE_VM_ERROR                     = 0x10000000\n\tNOTE_VM_PRESSURE                  = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE        = 0x40000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFDEL                             = 0x20000\n\tOFILL                             = 0x80\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_ALERT                           = 0x20000000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x1000000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x100000\n\tO_DP_GETRAWENCRYPTED              = 0x1\n\tO_DP_GETRAWUNENCRYPTED            = 0x2\n\tO_DSYNC                           = 0x400000\n\tO_EVTONLY                         = 0x8000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x20000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_POPUP                           = 0x80000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYMLINK                         = 0x200000\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPT_ATTACH                         = 0xa\n\tPT_ATTACHEXC                      = 0xe\n\tPT_CONTINUE                       = 0x7\n\tPT_DENY_ATTACH                    = 0x1f\n\tPT_DETACH                         = 0xb\n\tPT_FIRSTMACH                      = 0x20\n\tPT_FORCEQUOTA                     = 0x1e\n\tPT_KILL                           = 0x8\n\tPT_READ_D                         = 0x2\n\tPT_READ_I                         = 0x1\n\tPT_READ_U                         = 0x3\n\tPT_SIGEXC                         = 0xc\n\tPT_STEP                           = 0x9\n\tPT_THUPDATE                       = 0xd\n\tPT_TRACE_ME                       = 0x0\n\tPT_WRITE_D                        = 0x5\n\tPT_WRITE_I                        = 0x4\n\tPT_WRITE_U                        = 0x6\n\tRLIMIT_AS                         = 0x5\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR          = 0x2\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x8\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONDEMNED                     = 0x2000000\n\tRTF_DELCLONE                      = 0x80\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_IFREF                         = 0x4000000\n\tRTF_IFSCOPE                       = 0x1000000\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_NOIFREF                       = 0x2000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_PROXY                         = 0x8000000\n\tRTF_REJECT                        = 0x8\n\tRTF_ROUTER                        = 0x10000000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_GET2                          = 0x14\n\tRTM_IFINFO                        = 0xe\n\tRTM_IFINFO2                       = 0x12\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_NEWMADDR2                     = 0x13\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSCM_TIMESTAMP_MONOTONIC           = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCARPIPLL                       = 0xc0206928\n\tSIOCATMARK                        = 0x40047307\n\tSIOCAUTOADDR                      = 0xc0206926\n\tSIOCAUTONETMASK                   = 0x80206927\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFPHYADDR                    = 0x80206941\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETVLAN                       = 0xc020697f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALTMTU                     = 0xc0206948\n\tSIOCGIFASYNCMAP                   = 0xc020697c\n\tSIOCGIFBOND                       = 0xc0206947\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020695b\n\tSIOCGIFCONF                       = 0xc00c6924\n\tSIOCGIFDEVMTU                     = 0xc0206944\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFKPI                        = 0xc0206987\n\tSIOCGIFMAC                        = 0xc0206982\n\tSIOCGIFMEDIA                      = 0xc02c6938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206940\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPSRCADDR                   = 0xc020693f\n\tSIOCGIFSTATUS                     = 0xc331693d\n\tSIOCGIFVLAN                       = 0xc020697f\n\tSIOCGIFWAKEFLAGS                  = 0xc0206988\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCIFCREATE                      = 0xc0206978\n\tSIOCIFCREATE2                     = 0xc020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106981\n\tSIOCRSLVMULTI                     = 0xc010693b\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETVLAN                       = 0x8020697e\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFALTMTU                     = 0x80206945\n\tSIOCSIFASYNCMAP                   = 0x8020697d\n\tSIOCSIFBOND                       = 0x80206946\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020695a\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFKPI                        = 0x80206986\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMAC                        = 0x80206983\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x8040693e\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFVLAN                       = 0x8020697e\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_DONTTRUNC                      = 0x2000\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LABEL                          = 0x1010\n\tSO_LINGER                         = 0x80\n\tSO_LINGER_SEC                     = 0x1080\n\tSO_NETSVC_MARKING_LEVEL           = 0x1119\n\tSO_NET_SERVICE_TYPE               = 0x1116\n\tSO_NKE                            = 0x1021\n\tSO_NOADDRERR                      = 0x1023\n\tSO_NOSIGPIPE                      = 0x1022\n\tSO_NOTIFYCONFLICT                 = 0x1026\n\tSO_NP_EXTENSIONS                  = 0x1083\n\tSO_NREAD                          = 0x1020\n\tSO_NUMRCVPKT                      = 0x1112\n\tSO_NWRITE                         = 0x1024\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERLABEL                      = 0x1011\n\tSO_RANDOMPORT                     = 0x1082\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_REUSESHAREUID                  = 0x1025\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TIMESTAMP_MONOTONIC            = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_UPCALLCLOSEWAIT                = 0x1027\n\tSO_USELOOPBACK                    = 0x40\n\tSO_WANTMORE                       = 0x4000\n\tSO_WANTOOBFLAG                    = 0x8000\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB1                              = 0x400\n\tTAB2                              = 0x800\n\tTAB3                              = 0x4\n\tTABDLY                            = 0xc04\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_CONNECTIONTIMEOUT             = 0x20\n\tTCP_CONNECTION_INFO               = 0x106\n\tTCP_ENABLE_ECN                    = 0x104\n\tTCP_FASTOPEN                      = 0x105\n\tTCP_KEEPALIVE                     = 0x10\n\tTCP_KEEPCNT                       = 0x102\n\tTCP_KEEPINTVL                     = 0x101\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x4\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_NOTSENT_LOWAT                 = 0x201\n\tTCP_RXT_CONNDROPTIME              = 0x80\n\tTCP_RXT_FINDROP                   = 0x100\n\tTCP_SENDMOREACKS                  = 0x103\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCDSIMICROCODE                  = 0x20007455\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x40487413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCIXOFF                         = 0x20007480\n\tTIOCIXON                          = 0x20007481\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTYGNAME                      = 0x40807453\n\tTIOCPTYGRANT                      = 0x20007454\n\tTIOCPTYUNLK                       = 0x20007452\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCONS                         = 0x20007463\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x80487414\n\tTIOCSETAF                         = 0x80487416\n\tTIOCSETAW                         = 0x80487415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_LOADAVG                        = 0x2\n\tVM_MACHFACTOR                     = 0x4\n\tVM_MAXID                          = 0x6\n\tVM_METER                          = 0x1\n\tVM_SWAPUSAGE                      = 0x5\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVT0                               = 0x0\n\tVT1                               = 0x10000\n\tVTDLY                             = 0x10000\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x10\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x4\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x20\n\tWORDSIZE                          = 0x40\n\tWSTOPPED                          = 0x8\n\tWUNTRACED                         = 0x2\n\tXATTR_CREATE                      = 0x2\n\tXATTR_NODEFAULT                   = 0x10\n\tXATTR_NOFOLLOW                    = 0x1\n\tXATTR_NOSECURITY                  = 0x8\n\tXATTR_REPLACE                     = 0x4\n\tXATTR_SHOWCOMPRESSION             = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,darwin\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1c\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x25\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1e\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1c\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x28\n\tAF_NATM                           = 0x1f\n\tAF_NDRV                           = 0x1b\n\tAF_NETBIOS                        = 0x21\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PPP                            = 0x22\n\tAF_PUP                            = 0x4\n\tAF_RESERVED_36                    = 0x24\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_SYSTEM                         = 0x20\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tAF_UTUN                           = 0x26\n\tALTWERASE                         = 0x200\n\tATTR_BIT_MAP_COUNT                = 0x5\n\tATTR_CMN_ACCESSMASK               = 0x20000\n\tATTR_CMN_ACCTIME                  = 0x1000\n\tATTR_CMN_ADDEDTIME                = 0x10000000\n\tATTR_CMN_BKUPTIME                 = 0x2000\n\tATTR_CMN_CHGTIME                  = 0x800\n\tATTR_CMN_CRTIME                   = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000\n\tATTR_CMN_DEVID                    = 0x2\n\tATTR_CMN_DOCUMENT_ID              = 0x100000\n\tATTR_CMN_ERROR                    = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY        = 0x400000\n\tATTR_CMN_FILEID                   = 0x2000000\n\tATTR_CMN_FLAGS                    = 0x40000\n\tATTR_CMN_FNDRINFO                 = 0x4000\n\tATTR_CMN_FSID                     = 0x4\n\tATTR_CMN_FULLPATH                 = 0x8000000\n\tATTR_CMN_GEN_COUNT                = 0x80000\n\tATTR_CMN_GRPID                    = 0x10000\n\tATTR_CMN_GRPUUID                  = 0x1000000\n\tATTR_CMN_MODTIME                  = 0x400\n\tATTR_CMN_NAME                     = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT           = 0x80000\n\tATTR_CMN_NAMEDATTRLIST            = 0x100000\n\tATTR_CMN_OBJID                    = 0x20\n\tATTR_CMN_OBJPERMANENTID           = 0x40\n\tATTR_CMN_OBJTAG                   = 0x10\n\tATTR_CMN_OBJTYPE                  = 0x8\n\tATTR_CMN_OWNERID                  = 0x8000\n\tATTR_CMN_PARENTID                 = 0x4000000\n\tATTR_CMN_PAROBJID                 = 0x80\n\tATTR_CMN_RETURNED_ATTRS           = 0x80000000\n\tATTR_CMN_SCRIPT                   = 0x100\n\tATTR_CMN_SETMASK                  = 0x41c7ff00\n\tATTR_CMN_USERACCESS               = 0x200000\n\tATTR_CMN_UUID                     = 0x800000\n\tATTR_CMN_VALIDMASK                = 0xffffffff\n\tATTR_CMN_VOLSETMASK               = 0x6700\n\tATTR_FILE_ALLOCSIZE               = 0x4\n\tATTR_FILE_CLUMPSIZE               = 0x10\n\tATTR_FILE_DATAALLOCSIZE           = 0x400\n\tATTR_FILE_DATAEXTENTS             = 0x800\n\tATTR_FILE_DATALENGTH              = 0x200\n\tATTR_FILE_DEVTYPE                 = 0x20\n\tATTR_FILE_FILETYPE                = 0x40\n\tATTR_FILE_FORKCOUNT               = 0x80\n\tATTR_FILE_FORKLIST                = 0x100\n\tATTR_FILE_IOBLOCKSIZE             = 0x8\n\tATTR_FILE_LINKCOUNT               = 0x1\n\tATTR_FILE_RSRCALLOCSIZE           = 0x2000\n\tATTR_FILE_RSRCEXTENTS             = 0x4000\n\tATTR_FILE_RSRCLENGTH              = 0x1000\n\tATTR_FILE_SETMASK                 = 0x20\n\tATTR_FILE_TOTALSIZE               = 0x2\n\tATTR_FILE_VALIDMASK               = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP          = 0x40\n\tATTR_VOL_ATTRIBUTES               = 0x40000000\n\tATTR_VOL_CAPABILITIES             = 0x20000\n\tATTR_VOL_DIRCOUNT                 = 0x400\n\tATTR_VOL_ENCODINGSUSED            = 0x10000\n\tATTR_VOL_FILECOUNT                = 0x200\n\tATTR_VOL_FSTYPE                   = 0x1\n\tATTR_VOL_INFO                     = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE              = 0x80\n\tATTR_VOL_MAXOBJCOUNT              = 0x800\n\tATTR_VOL_MINALLOCATION            = 0x20\n\tATTR_VOL_MOUNTEDDEVICE            = 0x8000\n\tATTR_VOL_MOUNTFLAGS               = 0x4000\n\tATTR_VOL_MOUNTPOINT               = 0x1000\n\tATTR_VOL_NAME                     = 0x2000\n\tATTR_VOL_OBJCOUNT                 = 0x100\n\tATTR_VOL_QUOTA_SIZE               = 0x10000000\n\tATTR_VOL_RESERVED_SIZE            = 0x20000000\n\tATTR_VOL_SETMASK                  = 0x80002000\n\tATTR_VOL_SIGNATURE                = 0x2\n\tATTR_VOL_SIZE                     = 0x4\n\tATTR_VOL_SPACEAVAIL               = 0x10\n\tATTR_VOL_SPACEFREE                = 0x8\n\tATTR_VOL_UUID                     = 0x40000\n\tATTR_VOL_VALIDMASK                = 0xf007ffff\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc00c4279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETFNR                        = 0x8010427e\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tBS0                               = 0x0\n\tBS1                               = 0x8000\n\tBSDLY                             = 0x8000\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x6\n\tCLOCK_MONOTONIC_RAW               = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX        = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xc\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x10\n\tCLOCK_UPTIME_RAW                  = 0x8\n\tCLOCK_UPTIME_RAW_APPROX           = 0x9\n\tCR0                               = 0x0\n\tCR1                               = 0x1000\n\tCR2                               = 0x2000\n\tCR3                               = 0x3000\n\tCRDLY                             = 0x3000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION       = 0xa6\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0xf5\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PPP_WITH_DIRECTION            = 0xa6\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0xf\n\tEVFILT_FS                         = -0x9\n\tEVFILT_MACHPORT                   = -0x8\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xf\n\tEVFILT_THREADMARKER               = 0xf\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0xa\n\tEVFILT_VM                         = -0xc\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_DISPATCH2                      = 0x180\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG0                          = 0x1000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_OOBAND                         = 0x2000\n\tEV_POLL                           = 0x1000\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEV_UDATA_SPECIFIC                 = 0x100\n\tEV_VANISHED                       = 0x200\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFF0                               = 0x0\n\tFF1                               = 0x4000\n\tFFDLY                             = 0x4000\n\tFLUSHO                            = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED           = 0x20\n\tFSOPT_NOFOLLOW                    = 0x1\n\tFSOPT_NOINMEMUPDATE               = 0x2\n\tFSOPT_PACK_INVAL_ATTRS            = 0x8\n\tFSOPT_REPORT_FULLSIZE             = 0x4\n\tF_ADDFILESIGS                     = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM        = 0x53\n\tF_ADDFILESIGS_RETURN              = 0x61\n\tF_ADDSIGS                         = 0x3b\n\tF_ALLOCATEALL                     = 0x4\n\tF_ALLOCATECONTIG                  = 0x2\n\tF_BARRIERFSYNC                    = 0x55\n\tF_CHECK_LV                        = 0x62\n\tF_CHKCLEAN                        = 0x29\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x43\n\tF_FINDSIGS                        = 0x4e\n\tF_FLUSH_DATA                      = 0x28\n\tF_FREEZE_FS                       = 0x35\n\tF_FULLFSYNC                       = 0x33\n\tF_GETCODEDIR                      = 0x48\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETLKPID                        = 0x42\n\tF_GETNOSIGPIPE                    = 0x4a\n\tF_GETOWN                          = 0x5\n\tF_GETPATH                         = 0x32\n\tF_GETPATH_MTMINFO                 = 0x47\n\tF_GETPROTECTIONCLASS              = 0x3f\n\tF_GETPROTECTIONLEVEL              = 0x4d\n\tF_GLOBAL_NOCACHE                  = 0x37\n\tF_LOG2PHYS                        = 0x31\n\tF_LOG2PHYS_EXT                    = 0x41\n\tF_NOCACHE                         = 0x30\n\tF_NODIRECT                        = 0x3e\n\tF_OK                              = 0x0\n\tF_PATHPKG_CHECK                   = 0x34\n\tF_PEOFPOSMODE                     = 0x3\n\tF_PREALLOCATE                     = 0x2a\n\tF_PUNCHHOLE                       = 0x63\n\tF_RDADVISE                        = 0x2c\n\tF_RDAHEAD                         = 0x2d\n\tF_RDLCK                           = 0x1\n\tF_SETBACKINGSTORE                 = 0x46\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETLKWTIMEOUT                   = 0xa\n\tF_SETNOSIGPIPE                    = 0x49\n\tF_SETOWN                          = 0x6\n\tF_SETPROTECTIONCLASS              = 0x40\n\tF_SETSIZE                         = 0x2b\n\tF_SINGLE_WRITER                   = 0x4c\n\tF_THAW_FS                         = 0x36\n\tF_TRANSCODEKEY                    = 0x4b\n\tF_TRIM_ACTIVE_FILE                = 0x64\n\tF_UNLCK                           = 0x2\n\tF_VOLPOSMODE                      = 0x4\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_AAL5                          = 0x31\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ATM                           = 0x25\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_CARP                          = 0xf8\n\tIFT_CELLULAR                      = 0xff\n\tIFT_CEPT                          = 0x13\n\tIFT_DS3                           = 0x1e\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0x38\n\tIFT_FDDI                          = 0xf\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_GIF                           = 0x37\n\tIFT_HDH1822                       = 0x3\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE8023ADLAG                 = 0x88\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88026                      = 0xa\n\tIFT_L2VLAN                        = 0x87\n\tIFT_LAPB                          = 0x10\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_NSIP                          = 0x1b\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PDP                           = 0xff\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PKTAP                         = 0xfe\n\tIFT_PPP                           = 0x17\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_RS232                         = 0x21\n\tIFT_SDLC                          = 0x11\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0x39\n\tIFT_T1                            = 0x12\n\tIFT_ULTRA                         = 0x1d\n\tIFT_V35                           = 0x2d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LINKLOCALNETNUM                = 0xa9fe0000\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_2292DSTOPTS                  = 0x17\n\tIPV6_2292HOPLIMIT                 = 0x14\n\tIPV6_2292HOPOPTS                  = 0x16\n\tIPV6_2292NEXTHOP                  = 0x15\n\tIPV6_2292PKTINFO                  = 0x13\n\tIPV6_2292PKTOPTIONS               = 0x19\n\tIPV6_2292RTHDR                    = 0x18\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_BOUND_IF                     = 0x7d\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                = 0x300\n\tIPV6_FRAGTTL                      = 0x3c\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXOPTHDR                    = 0x800\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER         = 0x200\n\tIPV6_MAX_MEMBERSHIPS              = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER          = 0x80\n\tIPV6_MIN_MEMBERSHIPS              = 0x1f\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVTCLASS                   = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x24\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP          = 0x46\n\tIP_BLOCK_SOURCE                   = 0x48\n\tIP_BOUND_IF                       = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP         = 0x47\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FAITH                          = 0x16\n\tIP_FW_ADD                         = 0x28\n\tIP_FW_DEL                         = 0x29\n\tIP_FW_FLUSH                       = 0x2a\n\tIP_FW_GET                         = 0x2c\n\tIP_FW_RESETLOG                    = 0x2d\n\tIP_FW_ZERO                        = 0x2b\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x15\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER           = 0x200\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER           = 0x80\n\tIP_MAX_SOCK_SRC_FILTER            = 0x80\n\tIP_MF                             = 0x2000\n\tIP_MIN_MEMBERSHIPS                = 0x1f\n\tIP_MSFILTER                       = 0x4a\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_IFINDEX              = 0x42\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_NAT__XXX                       = 0x37\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OLD_FW_ADD                     = 0x32\n\tIP_OLD_FW_DEL                     = 0x33\n\tIP_OLD_FW_FLUSH                   = 0x34\n\tIP_OLD_FW_GET                     = 0x36\n\tIP_OLD_FW_RESETLOG                = 0x38\n\tIP_OLD_FW_ZERO                    = 0x35\n\tIP_OPTIONS                        = 0x1\n\tIP_PKTINFO                        = 0x1a\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVPKTINFO                    = 0x1a\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTOS                        = 0x1b\n\tIP_RECVTTL                        = 0x18\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_STRIPHDR                       = 0x17\n\tIP_TOS                            = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND         = 0x41\n\tIP_TTL                            = 0x4\n\tIP_UNBLOCK_SOURCE                 = 0x49\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIUTF8                             = 0x4000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_CAN_REUSE                    = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_FREE_REUSABLE                = 0x7\n\tMADV_FREE_REUSE                   = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_PAGEOUT                      = 0xa\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_WILLNEED                     = 0x3\n\tMADV_ZERO_WIRED_PAGES             = 0x6\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_JIT                           = 0x800\n\tMAP_NOCACHE                       = 0x400\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_RESERVED0080                  = 0x80\n\tMAP_RESILIENT_CODESIGN            = 0x2000\n\tMAP_RESILIENT_MEDIA               = 0x4000\n\tMAP_SHARED                        = 0x1\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x400000\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_CPROTECT                      = 0x80\n\tMNT_DEFWRITE                      = 0x2000000\n\tMNT_DONTBROWSE                    = 0x100000\n\tMNT_DOVOLFS                       = 0x8000\n\tMNT_DWAIT                         = 0x4\n\tMNT_EXPORTED                      = 0x100\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE_OWNERSHIP              = 0x200000\n\tMNT_JOURNALED                     = 0x800000\n\tMNT_LOCAL                         = 0x1000\n\tMNT_MULTILABEL                    = 0x4000000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOBLOCK                       = 0x20000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOUSERXATTR                   = 0x1000000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUARANTINE                    = 0x400\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UNKNOWNPERMISSIONS            = 0x200000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x17f0f5ff\n\tMNT_WAIT                          = 0x1\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FLUSH                         = 0x400\n\tMSG_HAVEMORE                      = 0x2000\n\tMSG_HOLD                          = 0x800\n\tMSG_NEEDSA                        = 0x10000\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_RCVMORE                       = 0x4000\n\tMSG_SEND                          = 0x1000\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITSTREAM                    = 0x200\n\tMS_ASYNC                          = 0x1\n\tMS_DEACTIVATE                     = 0x8\n\tMS_INVALIDATE                     = 0x2\n\tMS_KILLPAGES                      = 0x4\n\tMS_SYNC                           = 0x10\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_DUMP2                      = 0x7\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFLIST2                    = 0x6\n\tNET_RT_MAXID                      = 0xa\n\tNET_RT_STAT                       = 0x4\n\tNET_RT_TRASH                      = 0x5\n\tNL0                               = 0x0\n\tNL1                               = 0x100\n\tNL2                               = 0x200\n\tNL3                               = 0x300\n\tNLDLY                             = 0x300\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ABSOLUTE                     = 0x8\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_BACKGROUND                   = 0x40\n\tNOTE_CHILD                        = 0x4\n\tNOTE_CRITICAL                     = 0x20\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXITSTATUS                   = 0x4000000\n\tNOTE_EXIT_CSERROR                 = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL             = 0x10000\n\tNOTE_EXIT_DETAIL                  = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK             = 0x70000\n\tNOTE_EXIT_MEMORY                  = 0x20000\n\tNOTE_EXIT_REPARENTED              = 0x80000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_FUNLOCK                      = 0x100\n\tNOTE_LEEWAY                       = 0x10\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_MACH_CONTINUOUS_TIME         = 0x80\n\tNOTE_NONE                         = 0x80\n\tNOTE_NSECONDS                     = 0x4\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = -0x100000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_REAP                         = 0x10000000\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_SECONDS                      = 0x1\n\tNOTE_SIGNAL                       = 0x8000000\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_USECONDS                     = 0x2\n\tNOTE_VM_ERROR                     = 0x10000000\n\tNOTE_VM_PRESSURE                  = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE        = 0x40000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFDEL                             = 0x20000\n\tOFILL                             = 0x80\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_ALERT                           = 0x20000000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x1000000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x100000\n\tO_DP_GETRAWENCRYPTED              = 0x1\n\tO_DP_GETRAWUNENCRYPTED            = 0x2\n\tO_DSYNC                           = 0x400000\n\tO_EVTONLY                         = 0x8000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x20000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_POPUP                           = 0x80000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYMLINK                         = 0x200000\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPT_ATTACH                         = 0xa\n\tPT_ATTACHEXC                      = 0xe\n\tPT_CONTINUE                       = 0x7\n\tPT_DENY_ATTACH                    = 0x1f\n\tPT_DETACH                         = 0xb\n\tPT_FIRSTMACH                      = 0x20\n\tPT_FORCEQUOTA                     = 0x1e\n\tPT_KILL                           = 0x8\n\tPT_READ_D                         = 0x2\n\tPT_READ_I                         = 0x1\n\tPT_READ_U                         = 0x3\n\tPT_SIGEXC                         = 0xc\n\tPT_STEP                           = 0x9\n\tPT_THUPDATE                       = 0xd\n\tPT_TRACE_ME                       = 0x0\n\tPT_WRITE_D                        = 0x5\n\tPT_WRITE_I                        = 0x4\n\tPT_WRITE_U                        = 0x6\n\tRLIMIT_AS                         = 0x5\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR          = 0x2\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x8\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONDEMNED                     = 0x2000000\n\tRTF_DELCLONE                      = 0x80\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_IFREF                         = 0x4000000\n\tRTF_IFSCOPE                       = 0x1000000\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_NOIFREF                       = 0x2000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_PROXY                         = 0x8000000\n\tRTF_REJECT                        = 0x8\n\tRTF_ROUTER                        = 0x10000000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_GET2                          = 0x14\n\tRTM_IFINFO                        = 0xe\n\tRTM_IFINFO2                       = 0x12\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_NEWMADDR2                     = 0x13\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSCM_TIMESTAMP_MONOTONIC           = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCARPIPLL                       = 0xc0206928\n\tSIOCATMARK                        = 0x40047307\n\tSIOCAUTOADDR                      = 0xc0206926\n\tSIOCAUTONETMASK                   = 0x80206927\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFPHYADDR                    = 0x80206941\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETVLAN                       = 0xc020697f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALTMTU                     = 0xc0206948\n\tSIOCGIFASYNCMAP                   = 0xc020697c\n\tSIOCGIFBOND                       = 0xc0206947\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020695b\n\tSIOCGIFCONF                       = 0xc00c6924\n\tSIOCGIFDEVMTU                     = 0xc0206944\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFKPI                        = 0xc0206987\n\tSIOCGIFMAC                        = 0xc0206982\n\tSIOCGIFMEDIA                      = 0xc02c6938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206940\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPSRCADDR                   = 0xc020693f\n\tSIOCGIFSTATUS                     = 0xc331693d\n\tSIOCGIFVLAN                       = 0xc020697f\n\tSIOCGIFWAKEFLAGS                  = 0xc0206988\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCIFCREATE                      = 0xc0206978\n\tSIOCIFCREATE2                     = 0xc020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106981\n\tSIOCRSLVMULTI                     = 0xc010693b\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETVLAN                       = 0x8020697e\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFALTMTU                     = 0x80206945\n\tSIOCSIFASYNCMAP                   = 0x8020697d\n\tSIOCSIFBOND                       = 0x80206946\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020695a\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFKPI                        = 0x80206986\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMAC                        = 0x80206983\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x8040693e\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFVLAN                       = 0x8020697e\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_DONTTRUNC                      = 0x2000\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LABEL                          = 0x1010\n\tSO_LINGER                         = 0x80\n\tSO_LINGER_SEC                     = 0x1080\n\tSO_NETSVC_MARKING_LEVEL           = 0x1119\n\tSO_NET_SERVICE_TYPE               = 0x1116\n\tSO_NKE                            = 0x1021\n\tSO_NOADDRERR                      = 0x1023\n\tSO_NOSIGPIPE                      = 0x1022\n\tSO_NOTIFYCONFLICT                 = 0x1026\n\tSO_NP_EXTENSIONS                  = 0x1083\n\tSO_NREAD                          = 0x1020\n\tSO_NUMRCVPKT                      = 0x1112\n\tSO_NWRITE                         = 0x1024\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERLABEL                      = 0x1011\n\tSO_RANDOMPORT                     = 0x1082\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_REUSESHAREUID                  = 0x1025\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TIMESTAMP_MONOTONIC            = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_UPCALLCLOSEWAIT                = 0x1027\n\tSO_USELOOPBACK                    = 0x40\n\tSO_WANTMORE                       = 0x4000\n\tSO_WANTOOBFLAG                    = 0x8000\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB1                              = 0x400\n\tTAB2                              = 0x800\n\tTAB3                              = 0x4\n\tTABDLY                            = 0xc04\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_CONNECTIONTIMEOUT             = 0x20\n\tTCP_CONNECTION_INFO               = 0x106\n\tTCP_ENABLE_ECN                    = 0x104\n\tTCP_FASTOPEN                      = 0x105\n\tTCP_KEEPALIVE                     = 0x10\n\tTCP_KEEPCNT                       = 0x102\n\tTCP_KEEPINTVL                     = 0x101\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x4\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_NOTSENT_LOWAT                 = 0x201\n\tTCP_RXT_CONNDROPTIME              = 0x80\n\tTCP_RXT_FINDROP                   = 0x100\n\tTCP_SENDMOREACKS                  = 0x103\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCDSIMICROCODE                  = 0x20007455\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x40487413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCIXOFF                         = 0x20007480\n\tTIOCIXON                          = 0x20007481\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTYGNAME                      = 0x40807453\n\tTIOCPTYGRANT                      = 0x20007454\n\tTIOCPTYUNLK                       = 0x20007452\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCONS                         = 0x20007463\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x80487414\n\tTIOCSETAF                         = 0x80487416\n\tTIOCSETAW                         = 0x80487415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_LOADAVG                        = 0x2\n\tVM_MACHFACTOR                     = 0x4\n\tVM_MAXID                          = 0x6\n\tVM_METER                          = 0x1\n\tVM_SWAPUSAGE                      = 0x5\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVT0                               = 0x0\n\tVT1                               = 0x10000\n\tVTDLY                             = 0x10000\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x10\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x4\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x20\n\tWORDSIZE                          = 0x40\n\tWSTOPPED                          = 0x8\n\tWUNTRACED                         = 0x2\n\tXATTR_CREATE                      = 0x2\n\tXATTR_NODEFAULT                   = 0x10\n\tXATTR_NOFOLLOW                    = 0x1\n\tXATTR_NOSECURITY                  = 0x8\n\tXATTR_REPLACE                     = 0x4\n\tXATTR_SHOWCOMPRESSION             = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,dragonfly\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ATM                            = 0x1e\n\tAF_BLUETOOTH                      = 0x21\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x23\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1c\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x22\n\tAF_NATM                           = 0x1d\n\tAF_NETBIOS                        = 0x6\n\tAF_NETGRAPH                       = 0x20\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x2000427a\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x8010427b\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DEFAULTBUFSIZE                = 0x1000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MAX_CLONES                    = 0x80\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x4\n\tCLOCK_MONOTONIC_FAST              = 0xc\n\tCLOCK_MONOTONIC_PRECISE           = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xf\n\tCLOCK_PROF                        = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_REALTIME_FAST               = 0xa\n\tCLOCK_REALTIME_PRECISE            = 0x9\n\tCLOCK_SECOND                      = 0xd\n\tCLOCK_THREAD_CPUTIME_ID           = 0xe\n\tCLOCK_UPTIME                      = 0x5\n\tCLOCK_UPTIME_FAST                 = 0x8\n\tCLOCK_UPTIME_PRECISE              = 0x7\n\tCLOCK_VIRTUAL                     = 0x1\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_REDBACK_SMARTEDGE             = 0x20\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DBF                            = 0xf\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0x8\n\tEVFILT_FS                         = -0xa\n\tEVFILT_MARKER                     = 0xf\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xa\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0x9\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_NODATA                         = 0x1000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTEXIT_LWP                       = 0x10000\n\tEXTEXIT_PROC                      = 0x0\n\tEXTEXIT_SETINT                    = 0x1\n\tEXTEXIT_SIMPLE                    = 0x0\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUP2FD                          = 0xa\n\tF_DUP2FD_CLOEXEC                  = 0x12\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x11\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x118e72\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MONITOR                       = 0x40000\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NPOLLING                      = 0x100000\n\tIFF_OACTIVE                       = 0x400\n\tIFF_OACTIVE_COMPAT                = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_POLLING                       = 0x10000\n\tIFF_POLLING_COMPAT                = 0x10000\n\tIFF_PPROMISC                      = 0x20000\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_SMART                         = 0x20\n\tIFF_STATICARP                     = 0x80000\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xf3\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SKIP                      = 0x39\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TLSP                      = 0x38\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UNKNOWN                   = 0x102\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHLIM                      = 0x28\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MSFILTER                     = 0x4a\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PKTOPTIONS                   = 0x34\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_PREFER_TEMPADDR              = 0x3f\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FAITH                          = 0x16\n\tIP_FW_ADD                         = 0x32\n\tIP_FW_DEL                         = 0x33\n\tIP_FW_FLUSH                       = 0x34\n\tIP_FW_GET                         = 0x36\n\tIP_FW_RESETLOG                    = 0x37\n\tIP_FW_X                           = 0x31\n\tIP_FW_ZERO                        = 0x35\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x15\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x42\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x41\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_AUTOSYNC                     = 0x7\n\tMADV_CONTROL_END                  = 0xb\n\tMADV_CONTROL_START                = 0xa\n\tMADV_CORE                         = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_INVAL                        = 0xa\n\tMADV_NOCORE                       = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_NOSYNC                       = 0x6\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SETMAP                       = 0xb\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_NOCORE                        = 0x20000\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_NOSYNC                        = 0x800\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_SIZEALIGN                     = 0x40000\n\tMAP_STACK                         = 0x400\n\tMAP_TRYFIXED                      = 0x10000\n\tMAP_VPAGETABLE                    = 0x2000\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x20\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x20000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE                        = 0x800000\n\tMNT_LAZY                          = 0x4\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOCLUSTERR                    = 0x40000000\n\tMNT_NOCLUSTERW                    = 0x80000000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOSYMFOLLOW                   = 0x400000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x200000\n\tMNT_SUIDDIR                       = 0x100000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_TRIM                          = 0x1000000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_USER                          = 0x8000\n\tMNT_VISFLAGMASK                   = 0xf1f0ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_CMSG_CLOEXEC                  = 0x1000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FBLOCKING                     = 0x10000\n\tMSG_FMASK                         = 0xffff0000\n\tMSG_FNONBLOCKING                  = 0x20000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_SYNC                          = 0x800\n\tMSG_TRUNC                         = 0x10\n\tMSG_UNUSED09                      = 0x200\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x0\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_MAXID                      = 0x4\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x20000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x10000\n\tO_DIRECTORY                       = 0x8000000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FAPPEND                         = 0x100000\n\tO_FASYNCWRITE                     = 0x800000\n\tO_FBLOCKING                       = 0x40000\n\tO_FMASK                           = 0xfc0000\n\tO_FNONBLOCKING                    = 0x80000\n\tO_FOFFSET                         = 0x200000\n\tO_FSYNC                           = 0x80\n\tO_FSYNCWRITE                      = 0x400000\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0xb\n\tRTAX_MPLS1                        = 0x8\n\tRTAX_MPLS2                        = 0x9\n\tRTAX_MPLS3                        = 0xa\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_MPLS1                         = 0x100\n\tRTA_MPLS2                         = 0x200\n\tRTA_MPLS3                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPLSOPS                       = 0x1000000\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x12\n\tRTM_IFANNOUNCE                    = 0x11\n\tRTM_IFINFO                        = 0xe\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x6\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_IWCAPSEGS                     = 0x400\n\tRTV_IWMAXSEGS                     = 0x200\n\tRTV_MSL                           = 0x100\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCADDRT                         = 0x8040720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691b\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDELRT                         = 0x8040720b\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDLIFADDR                      = 0x8118691d\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETSGCNT                      = 0xc0207210\n\tSIOCGETVIFCNT                     = 0xc028720f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020691f\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc0206926\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFINDEX                      = 0xc0206920\n\tSIOCGIFMEDIA                      = 0xc0306938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206948\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPOLLCPU                    = 0xc020697e\n\tSIOCGIFPSRCADDR                   = 0xc0206947\n\tSIOCGIFSTATUS                     = 0xc331693b\n\tSIOCGIFTSOLEN                     = 0xc0206980\n\tSIOCGLIFADDR                      = 0xc118691c\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPRIVATE_0                    = 0xc0206950\n\tSIOCGPRIVATE_1                    = 0xc0206951\n\tSIOCIFCREATE                      = 0xc020697a\n\tSIOCIFCREATE2                     = 0xc020697c\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020691e\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNAME                       = 0x80206928\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFPOLLCPU                    = 0x8020697d\n\tSIOCSIFTSOLEN                     = 0x8020697f\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_CPUHINT                        = 0x1030\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDSPACE                       = 0x100a\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDB                            = 0x9000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_FASTKEEP                      = 0x80\n\tTCP_KEEPCNT                       = 0x400\n\tTCP_KEEPIDLE                      = 0x100\n\tTCP_KEEPINIT                      = 0x20\n\tTCP_KEEPINTVL                     = 0x200\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0x100\n\tTCP_MIN_WINSHIFT                  = 0x5\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_SIGNATURE_ENABLE              = 0x10\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCISPTMASTER                    = 0x20007455\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVCHECKPT                          = 0x13\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVERASE2                           = 0x7\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_BCACHE_SIZE_MAX                = 0x0\n\tVM_SWZONE_SIZE_MAX                = 0x4000000000\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x4\n\tWCOREFLAG                         = 0x80\n\tWLINUXCLONE                       = 0x80000000\n\tWNOHANG                           = 0x1\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEASYNC          = syscall.Errno(0x63)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x63)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEDIUM       = syscall.Errno(0x5d)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNUSED94       = syscall.Errno(0x5e)\n\tEUNUSED95       = syscall.Errno(0x5f)\n\tEUNUSED96       = syscall.Errno(0x60)\n\tEUNUSED97       = syscall.Errno(0x61)\n\tEUNUSED98       = syscall.Errno(0x62)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCKPT     = syscall.Signal(0x21)\n\tSIGCKPTEXIT = syscall.Signal(0x22)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINFO     = syscall.Signal(0x1d)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPROF     = syscall.Signal(0x1b)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTHR      = syscall.Signal(0x20)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVTALRM   = syscall.Signal(0x1a)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOMEDIUM\", \"no medium found\"},\n\t{94, \"EUNUSED94\", \"unknown error: 94\"},\n\t{95, \"EUNUSED95\", \"unknown error: 95\"},\n\t{96, \"EUNUSED96\", \"unknown error: 96\"},\n\t{97, \"EUNUSED97\", \"unknown error: 97\"},\n\t{98, \"EUNUSED98\", \"unknown error: 98\"},\n\t{99, \"ELAST\", \"unknown error: 99\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread Scheduler\"},\n\t{33, \"SIGCKPT\", \"checkPoint\"},\n\t{34, \"SIGCKPTEXIT\", \"checkPointExit\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4008426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8008426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_HHDLC                      = 0x79\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB                       = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LOOP                       = 0x6c\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x104\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NULL                       = 0x0\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0x10\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xf\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xc\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SEP                    = 0x21\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MIN_MEMBERSHIPS           = 0x1f\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MAX_SOURCE_FILTER           = 0x400\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MIN_MEMBERSHIPS             = 0x1f\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0x2d8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VISFLAGMASK                = 0x3fef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_CACHING_CONTEXT             = 0x1\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_NORTREF                     = 0x2\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40087459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_HHDLC                      = 0x79\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB                       = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LOOP                       = 0x6c\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x104\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NULL                       = 0x0\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0x10\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xf\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xc\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SEP                    = 0x21\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MIN_MEMBERSHIPS           = 0x1f\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MAX_SOURCE_FILTER           = 0x400\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MIN_MEMBERSHIPS             = 0x1f\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0x2d8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VISFLAGMASK                = 0x3fef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_CACHING_CONTEXT             = 0x1\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_NORTREF                     = 0x2\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB                       = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LOOP                       = 0x6c\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x109\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NULL                       = 0x0\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xc\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SEP                    = 0x21\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MIN_MEMBERSHIPS           = 0x1f\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MAX_SOURCE_FILTER           = 0x400\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MIN_MEMBERSHIPS             = 0x1f\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0x2d8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VISFLAGMASK                = 0x3fef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_CACHING_CONTEXT             = 0x1\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_NORTREF                     = 0x2\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_HHDLC                      = 0x79\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB                       = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LOOP                       = 0x6c\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x104\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NULL                       = 0x0\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0x10\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xf\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xc\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SEP                    = 0x21\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MIN_MEMBERSHIPS           = 0x1f\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MAX_SOURCE_FILTER           = 0x400\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MIN_MEMBERSHIPS             = 0x1f\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0x2d8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VISFLAGMASK                = 0x3fef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_CACHING_CONTEXT             = 0x1\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_NORTREF                     = 0x2\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_386.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x80041270\n\tBLKBSZSET                            = 0x40041271\n\tBLKFLSBUF                            = 0x1261\n\tBLKFRAGET                            = 0x1265\n\tBLKFRASET                            = 0x1264\n\tBLKGETSIZE                           = 0x1260\n\tBLKGETSIZE64                         = 0x80041272\n\tBLKPBSZGET                           = 0x127b\n\tBLKRAGET                             = 0x1263\n\tBLKRASET                             = 0x1262\n\tBLKROGET                             = 0x125e\n\tBLKROSET                             = 0x125d\n\tBLKRRPART                            = 0x125f\n\tBLKSECTGET                           = 0x1267\n\tBLKSECTSET                           = 0x1266\n\tBLKSSZGET                            = 0x1268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFP_XSTATE_MAGIC2                     = 0x46505845\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0xc\n\tF_GETLK64                            = 0xc\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0xd\n\tF_SETLK64                            = 0xd\n\tF_SETLKW                             = 0xe\n\tF_SETLKW64                           = 0xe\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x7b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_32BIT                            = 0x40\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x2000\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x4000\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_SYNC                             = 0x80000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0xb703\n\tNS_GET_OWNER_UID                     = 0xb704\n\tNS_GET_PARENT                        = 0xb702\n\tNS_GET_USERNS                        = 0xb701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x4000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x8000\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x2401\n\tPERF_EVENT_IOC_ENABLE                = 0x2400\n\tPERF_EVENT_IOC_ID                    = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409\n\tPERF_EVENT_IOC_PERIOD                = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH               = 0x2402\n\tPERF_EVENT_IOC_RESET                 = 0x2403\n\tPERF_EVENT_IOC_SET_BPF               = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x2405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x4004743d\n\tPPPIOCATTCHAN                        = 0x40047438\n\tPPPIOCCONNECT                        = 0x4004743a\n\tPPPIOCDETACH                         = 0x4004743c\n\tPPPIOCDISCONN                        = 0x7439\n\tPPPIOCGASYNCMAP                      = 0x80047458\n\tPPPIOCGCHAN                          = 0x80047437\n\tPPPIOCGDEBUG                         = 0x80047441\n\tPPPIOCGFLAGS                         = 0x8004745a\n\tPPPIOCGIDLE                          = 0x8008743f\n\tPPPIOCGL2TPSTATS                     = 0x80487436\n\tPPPIOCGMRU                           = 0x80047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x80047455\n\tPPPIOCGUNIT                          = 0x80047456\n\tPPPIOCGXASYNCMAP                     = 0x80207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x40087446\n\tPPPIOCSASYNCMAP                      = 0x40047457\n\tPPPIOCSCOMPRESS                      = 0x400c744d\n\tPPPIOCSDEBUG                         = 0x40047440\n\tPPPIOCSFLAGS                         = 0x40047459\n\tPPPIOCSMAXCID                        = 0x40047451\n\tPPPIOCSMRRU                          = 0x4004743b\n\tPPPIOCSMRU                           = 0x40047452\n\tPPPIOCSNPMODE                        = 0x4008744b\n\tPPPIOCSPASS                          = 0x40087447\n\tPPPIOCSRASYNCMAP                     = 0x40047454\n\tPPPIOCSXASYNCMAP                     = 0x4020744f\n\tPPPIOCXFERUNIT                       = 0x744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETFPXREGS                    = 0x12\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x19\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETFPXREGS                    = 0x13\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SET_THREAD_AREA               = 0x1a\n\tPTRACE_SINGLEBLOCK                   = 0x21\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_SYSEMU                        = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP             = 0x20\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x40085203\n\tRNDADDTOENTCNT                       = 0x40045201\n\tRNDCLEARPOOL                         = 0x5206\n\tRNDGETENTCNT                         = 0x80045200\n\tRNDGETPOOL                           = 0x80085202\n\tRNDRESEEDCRNG                        = 0x5207\n\tRNDZAPENTCNT                         = 0x5204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x7002\n\tRTC_AIE_ON                           = 0x7001\n\tRTC_ALM_READ                         = 0x80247008\n\tRTC_ALM_SET                          = 0x40247007\n\tRTC_EPOCH_READ                       = 0x8004700d\n\tRTC_EPOCH_SET                        = 0x4004700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x8004700b\n\tRTC_IRQP_SET                         = 0x4004700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x7006\n\tRTC_PIE_ON                           = 0x7005\n\tRTC_PLL_GET                          = 0x801c7011\n\tRTC_PLL_SET                          = 0x401c7012\n\tRTC_RD_TIME                          = 0x80247009\n\tRTC_SET_TIME                         = 0x4024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x7004\n\tRTC_UIE_ON                           = 0x7003\n\tRTC_VL_CLR                           = 0x7014\n\tRTC_VL_READ                          = 0x80047013\n\tRTC_WIE_OFF                          = 0x7010\n\tRTC_WIE_ON                           = 0x700f\n\tRTC_WKALM_RD                         = 0x80287010\n\tRTC_WKALM_SET                        = 0x4028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x80108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x80108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x541b\n\tSIOCOUTQ                             = 0x5411\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x10\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x11\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x12\n\tSO_RCVTIMEO                          = 0x14\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x14\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x13\n\tSO_SNDTIMEO                          = 0x15\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x15\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x540b\n\tTCGETA                               = 0x5405\n\tTCGETS                               = 0x5401\n\tTCGETS2                              = 0x802c542a\n\tTCGETX                               = 0x5432\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x5409\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x5406\n\tTCSETAF                              = 0x5408\n\tTCSETAW                              = 0x5407\n\tTCSETS                               = 0x5402\n\tTCSETS2                              = 0x402c542b\n\tTCSETSF                              = 0x5404\n\tTCSETSF2                             = 0x402c542d\n\tTCSETSW                              = 0x5403\n\tTCSETSW2                             = 0x402c542c\n\tTCSETX                               = 0x5433\n\tTCSETXF                              = 0x5434\n\tTCSETXW                              = 0x5435\n\tTCXONC                               = 0x540a\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x80045432\n\tTIOCGETD                             = 0x5424\n\tTIOCGEXCL                            = 0x80045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x80285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x540f\n\tTIOCGPKT                             = 0x80045438\n\tTIOCGPTLCK                           = 0x80045439\n\tTIOCGPTN                             = 0x80045430\n\tTIOCGPTPEER                          = 0x5441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x5413\n\tTIOCINQ                              = 0x541b\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x5411\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x5423\n\tTIOCSIG                              = 0x40045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x5410\n\tTIOCSPTLCK                           = 0x40045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTI                              = 0x5412\n\tTIOCSWINSZ                           = 0x5414\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x400854d5\n\tTUNDETACHFILTER                      = 0x400854d6\n\tTUNGETDEVNETNS                       = 0x54e3\n\tTUNGETFEATURES                       = 0x800454cf\n\tTUNGETFILTER                         = 0x800854db\n\tTUNGETIFF                            = 0x800454d2\n\tTUNGETSNDBUF                         = 0x800454d3\n\tTUNGETVNETBE                         = 0x800454df\n\tTUNGETVNETHDRSZ                      = 0x800454d7\n\tTUNGETVNETLE                         = 0x800454dd\n\tTUNSETCARRIER                        = 0x400454e2\n\tTUNSETDEBUG                          = 0x400454c9\n\tTUNSETFILTEREBPF                     = 0x800454e1\n\tTUNSETGROUP                          = 0x400454ce\n\tTUNSETIFF                            = 0x400454ca\n\tTUNSETIFINDEX                        = 0x400454da\n\tTUNSETLINK                           = 0x400454cd\n\tTUNSETNOCSUM                         = 0x400454c8\n\tTUNSETOFFLOAD                        = 0x400454d0\n\tTUNSETOWNER                          = 0x400454cc\n\tTUNSETPERSIST                        = 0x400454cb\n\tTUNSETQUEUE                          = 0x400454d9\n\tTUNSETSNDBUF                         = 0x400454d4\n\tTUNSETSTEERINGEBPF                   = 0x800454e0\n\tTUNSETTXFILTER                       = 0x400454d1\n\tTUNSETVNETBE                         = 0x400454de\n\tTUNSETVNETHDRSZ                      = 0x400454d8\n\tTUNSETVNETLE                         = 0x400454dc\n\tUBI_IOCATT                           = 0x40186f40\n\tUBI_IOCDET                           = 0x40046f41\n\tUBI_IOCEBCH                          = 0x40044f02\n\tUBI_IOCEBER                          = 0x40044f01\n\tUBI_IOCEBISMAP                       = 0x80044f05\n\tUBI_IOCEBMAP                         = 0x40084f03\n\tUBI_IOCEBUNMAP                       = 0x40044f04\n\tUBI_IOCMKVOL                         = 0x40986f00\n\tUBI_IOCRMVOL                         = 0x40046f01\n\tUBI_IOCRNVOL                         = 0x51106f03\n\tUBI_IOCRPEB                          = 0x40046f04\n\tUBI_IOCRSVOL                         = 0x400c6f02\n\tUBI_IOCSETVOLPROP                    = 0x40104f06\n\tUBI_IOCSPEB                          = 0x40046f05\n\tUBI_IOCVOLCRBLK                      = 0x40804f07\n\tUBI_IOCVOLRMBLK                      = 0x4f08\n\tUBI_IOCVOLUP                         = 0x40084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x80045702\n\tWDIOC_GETPRETIMEOUT                  = 0x80045709\n\tWDIOC_GETSTATUS                      = 0x80045701\n\tWDIOC_GETSUPPORT                     = 0x80285700\n\tWDIOC_GETTEMP                        = 0x80045703\n\tWDIOC_GETTIMELEFT                    = 0x8004570a\n\tWDIOC_GETTIMEOUT                     = 0x80045707\n\tWDIOC_KEEPALIVE                      = 0x80045705\n\tWDIOC_SETOPTIONS                     = 0x80045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x20\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tX86_FXSR_MAGIC                       = 0x0\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x80081270\n\tBLKBSZSET                            = 0x40081271\n\tBLKFLSBUF                            = 0x1261\n\tBLKFRAGET                            = 0x1265\n\tBLKFRASET                            = 0x1264\n\tBLKGETSIZE                           = 0x1260\n\tBLKGETSIZE64                         = 0x80081272\n\tBLKPBSZGET                           = 0x127b\n\tBLKRAGET                             = 0x1263\n\tBLKRASET                             = 0x1262\n\tBLKROGET                             = 0x125e\n\tBLKROSET                             = 0x125d\n\tBLKRRPART                            = 0x125f\n\tBLKSECTGET                           = 0x1267\n\tBLKSECTSET                           = 0x1266\n\tBLKSSZGET                            = 0x1268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFP_XSTATE_MAGIC2                     = 0x46505845\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x5\n\tF_GETLK64                            = 0x5\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0x6\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0x7\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x7b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_32BIT                            = 0x40\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x2000\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x4000\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_SYNC                             = 0x80000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0xb703\n\tNS_GET_OWNER_UID                     = 0xb704\n\tNS_GET_PARENT                        = 0xb702\n\tNS_GET_USERNS                        = 0xb701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x4000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x2401\n\tPERF_EVENT_IOC_ENABLE                = 0x2400\n\tPERF_EVENT_IOC_ID                    = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409\n\tPERF_EVENT_IOC_PERIOD                = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x2402\n\tPERF_EVENT_IOC_RESET                 = 0x2403\n\tPERF_EVENT_IOC_SET_BPF               = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x2405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x4004743d\n\tPPPIOCATTCHAN                        = 0x40047438\n\tPPPIOCCONNECT                        = 0x4004743a\n\tPPPIOCDETACH                         = 0x4004743c\n\tPPPIOCDISCONN                        = 0x7439\n\tPPPIOCGASYNCMAP                      = 0x80047458\n\tPPPIOCGCHAN                          = 0x80047437\n\tPPPIOCGDEBUG                         = 0x80047441\n\tPPPIOCGFLAGS                         = 0x8004745a\n\tPPPIOCGIDLE                          = 0x8010743f\n\tPPPIOCGL2TPSTATS                     = 0x80487436\n\tPPPIOCGMRU                           = 0x80047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x80047455\n\tPPPIOCGUNIT                          = 0x80047456\n\tPPPIOCGXASYNCMAP                     = 0x80207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x40107446\n\tPPPIOCSASYNCMAP                      = 0x40047457\n\tPPPIOCSCOMPRESS                      = 0x4010744d\n\tPPPIOCSDEBUG                         = 0x40047440\n\tPPPIOCSFLAGS                         = 0x40047459\n\tPPPIOCSMAXCID                        = 0x40047451\n\tPPPIOCSMRRU                          = 0x4004743b\n\tPPPIOCSMRU                           = 0x40047452\n\tPPPIOCSNPMODE                        = 0x4008744b\n\tPPPIOCSPASS                          = 0x40107447\n\tPPPIOCSRASYNCMAP                     = 0x40047454\n\tPPPIOCSXASYNCMAP                     = 0x4020744f\n\tPPPIOCXFERUNIT                       = 0x744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ARCH_PRCTL                    = 0x1e\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETFPXREGS                    = 0x12\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x19\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETFPXREGS                    = 0x13\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SET_THREAD_AREA               = 0x1a\n\tPTRACE_SINGLEBLOCK                   = 0x21\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_SYSEMU                        = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP             = 0x20\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x40085203\n\tRNDADDTOENTCNT                       = 0x40045201\n\tRNDCLEARPOOL                         = 0x5206\n\tRNDGETENTCNT                         = 0x80045200\n\tRNDGETPOOL                           = 0x80085202\n\tRNDRESEEDCRNG                        = 0x5207\n\tRNDZAPENTCNT                         = 0x5204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x7002\n\tRTC_AIE_ON                           = 0x7001\n\tRTC_ALM_READ                         = 0x80247008\n\tRTC_ALM_SET                          = 0x40247007\n\tRTC_EPOCH_READ                       = 0x8008700d\n\tRTC_EPOCH_SET                        = 0x4008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x8008700b\n\tRTC_IRQP_SET                         = 0x4008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x7006\n\tRTC_PIE_ON                           = 0x7005\n\tRTC_PLL_GET                          = 0x80207011\n\tRTC_PLL_SET                          = 0x40207012\n\tRTC_RD_TIME                          = 0x80247009\n\tRTC_SET_TIME                         = 0x4024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x7004\n\tRTC_UIE_ON                           = 0x7003\n\tRTC_VL_CLR                           = 0x7014\n\tRTC_VL_READ                          = 0x80047013\n\tRTC_WIE_OFF                          = 0x7010\n\tRTC_WIE_ON                           = 0x700f\n\tRTC_WKALM_RD                         = 0x80287010\n\tRTC_WKALM_SET                        = 0x4028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x80108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x80108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x541b\n\tSIOCOUTQ                             = 0x5411\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x10\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x11\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x12\n\tSO_RCVTIMEO                          = 0x14\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x14\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x13\n\tSO_SNDTIMEO                          = 0x15\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x15\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x540b\n\tTCGETA                               = 0x5405\n\tTCGETS                               = 0x5401\n\tTCGETS2                              = 0x802c542a\n\tTCGETX                               = 0x5432\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x5409\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x5406\n\tTCSETAF                              = 0x5408\n\tTCSETAW                              = 0x5407\n\tTCSETS                               = 0x5402\n\tTCSETS2                              = 0x402c542b\n\tTCSETSF                              = 0x5404\n\tTCSETSF2                             = 0x402c542d\n\tTCSETSW                              = 0x5403\n\tTCSETSW2                             = 0x402c542c\n\tTCSETX                               = 0x5433\n\tTCSETXF                              = 0x5434\n\tTCSETXW                              = 0x5435\n\tTCXONC                               = 0x540a\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x80045432\n\tTIOCGETD                             = 0x5424\n\tTIOCGEXCL                            = 0x80045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x80285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x540f\n\tTIOCGPKT                             = 0x80045438\n\tTIOCGPTLCK                           = 0x80045439\n\tTIOCGPTN                             = 0x80045430\n\tTIOCGPTPEER                          = 0x5441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x5413\n\tTIOCINQ                              = 0x541b\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x5411\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x5423\n\tTIOCSIG                              = 0x40045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x5410\n\tTIOCSPTLCK                           = 0x40045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTI                              = 0x5412\n\tTIOCSWINSZ                           = 0x5414\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x401054d5\n\tTUNDETACHFILTER                      = 0x401054d6\n\tTUNGETDEVNETNS                       = 0x54e3\n\tTUNGETFEATURES                       = 0x800454cf\n\tTUNGETFILTER                         = 0x801054db\n\tTUNGETIFF                            = 0x800454d2\n\tTUNGETSNDBUF                         = 0x800454d3\n\tTUNGETVNETBE                         = 0x800454df\n\tTUNGETVNETHDRSZ                      = 0x800454d7\n\tTUNGETVNETLE                         = 0x800454dd\n\tTUNSETCARRIER                        = 0x400454e2\n\tTUNSETDEBUG                          = 0x400454c9\n\tTUNSETFILTEREBPF                     = 0x800454e1\n\tTUNSETGROUP                          = 0x400454ce\n\tTUNSETIFF                            = 0x400454ca\n\tTUNSETIFINDEX                        = 0x400454da\n\tTUNSETLINK                           = 0x400454cd\n\tTUNSETNOCSUM                         = 0x400454c8\n\tTUNSETOFFLOAD                        = 0x400454d0\n\tTUNSETOWNER                          = 0x400454cc\n\tTUNSETPERSIST                        = 0x400454cb\n\tTUNSETQUEUE                          = 0x400454d9\n\tTUNSETSNDBUF                         = 0x400454d4\n\tTUNSETSTEERINGEBPF                   = 0x800454e0\n\tTUNSETTXFILTER                       = 0x400454d1\n\tTUNSETVNETBE                         = 0x400454de\n\tTUNSETVNETHDRSZ                      = 0x400454d8\n\tTUNSETVNETLE                         = 0x400454dc\n\tUBI_IOCATT                           = 0x40186f40\n\tUBI_IOCDET                           = 0x40046f41\n\tUBI_IOCEBCH                          = 0x40044f02\n\tUBI_IOCEBER                          = 0x40044f01\n\tUBI_IOCEBISMAP                       = 0x80044f05\n\tUBI_IOCEBMAP                         = 0x40084f03\n\tUBI_IOCEBUNMAP                       = 0x40044f04\n\tUBI_IOCMKVOL                         = 0x40986f00\n\tUBI_IOCRMVOL                         = 0x40046f01\n\tUBI_IOCRNVOL                         = 0x51106f03\n\tUBI_IOCRPEB                          = 0x40046f04\n\tUBI_IOCRSVOL                         = 0x400c6f02\n\tUBI_IOCSETVOLPROP                    = 0x40104f06\n\tUBI_IOCSPEB                          = 0x40046f05\n\tUBI_IOCVOLCRBLK                      = 0x40804f07\n\tUBI_IOCVOLRMBLK                      = 0x4f08\n\tUBI_IOCVOLUP                         = 0x40084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x80045702\n\tWDIOC_GETPRETIMEOUT                  = 0x80045709\n\tWDIOC_GETSTATUS                      = 0x80045701\n\tWDIOC_GETSUPPORT                     = 0x80285700\n\tWDIOC_GETTEMP                        = 0x80045703\n\tWDIOC_GETTIMELEFT                    = 0x8004570a\n\tWDIOC_GETTIMEOUT                     = 0x80045707\n\tWDIOC_KEEPALIVE                      = 0x80045705\n\tWDIOC_SETOPTIONS                     = 0x80045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x80041270\n\tBLKBSZSET                            = 0x40041271\n\tBLKFLSBUF                            = 0x1261\n\tBLKFRAGET                            = 0x1265\n\tBLKFRASET                            = 0x1264\n\tBLKGETSIZE                           = 0x1260\n\tBLKGETSIZE64                         = 0x80041272\n\tBLKPBSZGET                           = 0x127b\n\tBLKRAGET                             = 0x1263\n\tBLKRASET                             = 0x1262\n\tBLKROGET                             = 0x125e\n\tBLKROSET                             = 0x125d\n\tBLKRRPART                            = 0x125f\n\tBLKSECTGET                           = 0x1267\n\tBLKSECTSET                           = 0x1266\n\tBLKSSZGET                            = 0x1268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0xc\n\tF_GETLK64                            = 0xc\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0xd\n\tF_SETLK64                            = 0xd\n\tF_SETLKW                             = 0xe\n\tF_SETLKW64                           = 0xe\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x7b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x2000\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x4000\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_SYNC                             = 0x80000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0xb703\n\tNS_GET_OWNER_UID                     = 0xb704\n\tNS_GET_PARENT                        = 0xb702\n\tNS_GET_USERNS                        = 0xb701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x10000\n\tO_DIRECTORY                          = 0x4000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x20000\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x8000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x404000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x2401\n\tPERF_EVENT_IOC_ENABLE                = 0x2400\n\tPERF_EVENT_IOC_ID                    = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409\n\tPERF_EVENT_IOC_PERIOD                = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH               = 0x2402\n\tPERF_EVENT_IOC_RESET                 = 0x2403\n\tPERF_EVENT_IOC_SET_BPF               = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x2405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x4004743d\n\tPPPIOCATTCHAN                        = 0x40047438\n\tPPPIOCCONNECT                        = 0x4004743a\n\tPPPIOCDETACH                         = 0x4004743c\n\tPPPIOCDISCONN                        = 0x7439\n\tPPPIOCGASYNCMAP                      = 0x80047458\n\tPPPIOCGCHAN                          = 0x80047437\n\tPPPIOCGDEBUG                         = 0x80047441\n\tPPPIOCGFLAGS                         = 0x8004745a\n\tPPPIOCGIDLE                          = 0x8008743f\n\tPPPIOCGL2TPSTATS                     = 0x80487436\n\tPPPIOCGMRU                           = 0x80047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x80047455\n\tPPPIOCGUNIT                          = 0x80047456\n\tPPPIOCGXASYNCMAP                     = 0x80207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x40087446\n\tPPPIOCSASYNCMAP                      = 0x40047457\n\tPPPIOCSCOMPRESS                      = 0x400c744d\n\tPPPIOCSDEBUG                         = 0x40047440\n\tPPPIOCSFLAGS                         = 0x40047459\n\tPPPIOCSMAXCID                        = 0x40047451\n\tPPPIOCSMRRU                          = 0x4004743b\n\tPPPIOCSMRU                           = 0x40047452\n\tPPPIOCSNPMODE                        = 0x4008744b\n\tPPPIOCSPASS                          = 0x40087447\n\tPPPIOCSRASYNCMAP                     = 0x40047454\n\tPPPIOCSXASYNCMAP                     = 0x4020744f\n\tPPPIOCXFERUNIT                       = 0x744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETCRUNCHREGS                 = 0x19\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFDPIC                      = 0x1f\n\tPTRACE_GETFDPIC_EXEC                 = 0x0\n\tPTRACE_GETFDPIC_INTERP               = 0x1\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETHBPREGS                    = 0x1d\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GETVFPREGS                    = 0x1b\n\tPTRACE_GETWMMXREGS                   = 0x12\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x16\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETCRUNCHREGS                 = 0x1a\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETHBPREGS                    = 0x1e\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SETVFPREGS                    = 0x1c\n\tPTRACE_SETWMMXREGS                   = 0x13\n\tPTRACE_SET_SYSCALL                   = 0x17\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tPT_DATA_ADDR                         = 0x10004\n\tPT_TEXT_ADDR                         = 0x10000\n\tPT_TEXT_END_ADDR                     = 0x10008\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x40085203\n\tRNDADDTOENTCNT                       = 0x40045201\n\tRNDCLEARPOOL                         = 0x5206\n\tRNDGETENTCNT                         = 0x80045200\n\tRNDGETPOOL                           = 0x80085202\n\tRNDRESEEDCRNG                        = 0x5207\n\tRNDZAPENTCNT                         = 0x5204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x7002\n\tRTC_AIE_ON                           = 0x7001\n\tRTC_ALM_READ                         = 0x80247008\n\tRTC_ALM_SET                          = 0x40247007\n\tRTC_EPOCH_READ                       = 0x8004700d\n\tRTC_EPOCH_SET                        = 0x4004700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x8004700b\n\tRTC_IRQP_SET                         = 0x4004700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x7006\n\tRTC_PIE_ON                           = 0x7005\n\tRTC_PLL_GET                          = 0x801c7011\n\tRTC_PLL_SET                          = 0x401c7012\n\tRTC_RD_TIME                          = 0x80247009\n\tRTC_SET_TIME                         = 0x4024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x7004\n\tRTC_UIE_ON                           = 0x7003\n\tRTC_VL_CLR                           = 0x7014\n\tRTC_VL_READ                          = 0x80047013\n\tRTC_WIE_OFF                          = 0x7010\n\tRTC_WIE_ON                           = 0x700f\n\tRTC_WKALM_RD                         = 0x80287010\n\tRTC_WKALM_SET                        = 0x4028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x80108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x80108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x541b\n\tSIOCOUTQ                             = 0x5411\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x10\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x11\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x12\n\tSO_RCVTIMEO                          = 0x14\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x14\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x13\n\tSO_SNDTIMEO                          = 0x15\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x15\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x540b\n\tTCGETA                               = 0x5405\n\tTCGETS                               = 0x5401\n\tTCGETS2                              = 0x802c542a\n\tTCGETX                               = 0x5432\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x5409\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x5406\n\tTCSETAF                              = 0x5408\n\tTCSETAW                              = 0x5407\n\tTCSETS                               = 0x5402\n\tTCSETS2                              = 0x402c542b\n\tTCSETSF                              = 0x5404\n\tTCSETSF2                             = 0x402c542d\n\tTCSETSW                              = 0x5403\n\tTCSETSW2                             = 0x402c542c\n\tTCSETX                               = 0x5433\n\tTCSETXF                              = 0x5434\n\tTCSETXW                              = 0x5435\n\tTCXONC                               = 0x540a\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x80045432\n\tTIOCGETD                             = 0x5424\n\tTIOCGEXCL                            = 0x80045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x80285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x540f\n\tTIOCGPKT                             = 0x80045438\n\tTIOCGPTLCK                           = 0x80045439\n\tTIOCGPTN                             = 0x80045430\n\tTIOCGPTPEER                          = 0x5441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x5413\n\tTIOCINQ                              = 0x541b\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x5411\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x5423\n\tTIOCSIG                              = 0x40045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x5410\n\tTIOCSPTLCK                           = 0x40045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTI                              = 0x5412\n\tTIOCSWINSZ                           = 0x5414\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x400854d5\n\tTUNDETACHFILTER                      = 0x400854d6\n\tTUNGETDEVNETNS                       = 0x54e3\n\tTUNGETFEATURES                       = 0x800454cf\n\tTUNGETFILTER                         = 0x800854db\n\tTUNGETIFF                            = 0x800454d2\n\tTUNGETSNDBUF                         = 0x800454d3\n\tTUNGETVNETBE                         = 0x800454df\n\tTUNGETVNETHDRSZ                      = 0x800454d7\n\tTUNGETVNETLE                         = 0x800454dd\n\tTUNSETCARRIER                        = 0x400454e2\n\tTUNSETDEBUG                          = 0x400454c9\n\tTUNSETFILTEREBPF                     = 0x800454e1\n\tTUNSETGROUP                          = 0x400454ce\n\tTUNSETIFF                            = 0x400454ca\n\tTUNSETIFINDEX                        = 0x400454da\n\tTUNSETLINK                           = 0x400454cd\n\tTUNSETNOCSUM                         = 0x400454c8\n\tTUNSETOFFLOAD                        = 0x400454d0\n\tTUNSETOWNER                          = 0x400454cc\n\tTUNSETPERSIST                        = 0x400454cb\n\tTUNSETQUEUE                          = 0x400454d9\n\tTUNSETSNDBUF                         = 0x400454d4\n\tTUNSETSTEERINGEBPF                   = 0x800454e0\n\tTUNSETTXFILTER                       = 0x400454d1\n\tTUNSETVNETBE                         = 0x400454de\n\tTUNSETVNETHDRSZ                      = 0x400454d8\n\tTUNSETVNETLE                         = 0x400454dc\n\tUBI_IOCATT                           = 0x40186f40\n\tUBI_IOCDET                           = 0x40046f41\n\tUBI_IOCEBCH                          = 0x40044f02\n\tUBI_IOCEBER                          = 0x40044f01\n\tUBI_IOCEBISMAP                       = 0x80044f05\n\tUBI_IOCEBMAP                         = 0x40084f03\n\tUBI_IOCEBUNMAP                       = 0x40044f04\n\tUBI_IOCMKVOL                         = 0x40986f00\n\tUBI_IOCRMVOL                         = 0x40046f01\n\tUBI_IOCRNVOL                         = 0x51106f03\n\tUBI_IOCRPEB                          = 0x40046f04\n\tUBI_IOCRSVOL                         = 0x400c6f02\n\tUBI_IOCSETVOLPROP                    = 0x40104f06\n\tUBI_IOCSPEB                          = 0x40046f05\n\tUBI_IOCVOLCRBLK                      = 0x40804f07\n\tUBI_IOCVOLRMBLK                      = 0x4f08\n\tUBI_IOCVOLUP                         = 0x40084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x80045702\n\tWDIOC_GETPRETIMEOUT                  = 0x80045709\n\tWDIOC_GETSTATUS                      = 0x80045701\n\tWDIOC_GETSUPPORT                     = 0x80285700\n\tWDIOC_GETTEMP                        = 0x80045703\n\tWDIOC_GETTIMELEFT                    = 0x8004570a\n\tWDIOC_GETTIMEOUT                     = 0x80045707\n\tWDIOC_KEEPALIVE                      = 0x80045705\n\tWDIOC_SETOPTIONS                     = 0x80045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x20\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x80081270\n\tBLKBSZSET                            = 0x40081271\n\tBLKFLSBUF                            = 0x1261\n\tBLKFRAGET                            = 0x1265\n\tBLKFRASET                            = 0x1264\n\tBLKGETSIZE                           = 0x1260\n\tBLKGETSIZE64                         = 0x80081272\n\tBLKPBSZGET                           = 0x127b\n\tBLKRAGET                             = 0x1263\n\tBLKRASET                             = 0x1262\n\tBLKROGET                             = 0x125e\n\tBLKROSET                             = 0x125d\n\tBLKRRPART                            = 0x125f\n\tBLKSECTGET                           = 0x1267\n\tBLKSECTSET                           = 0x1266\n\tBLKSSZGET                            = 0x1268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tESR_MAGIC                            = 0x45535201\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tEXTRA_MAGIC                          = 0x45585401\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFPSIMD_MAGIC                         = 0x46508001\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x5\n\tF_GETLK64                            = 0x5\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0x6\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0x7\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x7b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x2000\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x4000\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_SYNC                             = 0x80000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0xb703\n\tNS_GET_OWNER_UID                     = 0xb704\n\tNS_GET_PARENT                        = 0xb702\n\tNS_GET_USERNS                        = 0xb701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x10000\n\tO_DIRECTORY                          = 0x4000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x8000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x404000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x2401\n\tPERF_EVENT_IOC_ENABLE                = 0x2400\n\tPERF_EVENT_IOC_ID                    = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409\n\tPERF_EVENT_IOC_PERIOD                = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x2402\n\tPERF_EVENT_IOC_RESET                 = 0x2403\n\tPERF_EVENT_IOC_SET_BPF               = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x2405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x4004743d\n\tPPPIOCATTCHAN                        = 0x40047438\n\tPPPIOCCONNECT                        = 0x4004743a\n\tPPPIOCDETACH                         = 0x4004743c\n\tPPPIOCDISCONN                        = 0x7439\n\tPPPIOCGASYNCMAP                      = 0x80047458\n\tPPPIOCGCHAN                          = 0x80047437\n\tPPPIOCGDEBUG                         = 0x80047441\n\tPPPIOCGFLAGS                         = 0x8004745a\n\tPPPIOCGIDLE                          = 0x8010743f\n\tPPPIOCGL2TPSTATS                     = 0x80487436\n\tPPPIOCGMRU                           = 0x80047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x80047455\n\tPPPIOCGUNIT                          = 0x80047456\n\tPPPIOCGXASYNCMAP                     = 0x80207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x40107446\n\tPPPIOCSASYNCMAP                      = 0x40047457\n\tPPPIOCSCOMPRESS                      = 0x4010744d\n\tPPPIOCSDEBUG                         = 0x40047440\n\tPPPIOCSFLAGS                         = 0x40047459\n\tPPPIOCSMAXCID                        = 0x40047451\n\tPPPIOCSMRRU                          = 0x4004743b\n\tPPPIOCSMRU                           = 0x40047452\n\tPPPIOCSNPMODE                        = 0x4008744b\n\tPPPIOCSPASS                          = 0x40107447\n\tPPPIOCSRASYNCMAP                     = 0x40047454\n\tPPPIOCSXASYNCMAP                     = 0x4020744f\n\tPPPIOCXFERUNIT                       = 0x744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_SYSEMU                        = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP             = 0x20\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x40085203\n\tRNDADDTOENTCNT                       = 0x40045201\n\tRNDCLEARPOOL                         = 0x5206\n\tRNDGETENTCNT                         = 0x80045200\n\tRNDGETPOOL                           = 0x80085202\n\tRNDRESEEDCRNG                        = 0x5207\n\tRNDZAPENTCNT                         = 0x5204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x7002\n\tRTC_AIE_ON                           = 0x7001\n\tRTC_ALM_READ                         = 0x80247008\n\tRTC_ALM_SET                          = 0x40247007\n\tRTC_EPOCH_READ                       = 0x8008700d\n\tRTC_EPOCH_SET                        = 0x4008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x8008700b\n\tRTC_IRQP_SET                         = 0x4008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x7006\n\tRTC_PIE_ON                           = 0x7005\n\tRTC_PLL_GET                          = 0x80207011\n\tRTC_PLL_SET                          = 0x40207012\n\tRTC_RD_TIME                          = 0x80247009\n\tRTC_SET_TIME                         = 0x4024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x7004\n\tRTC_UIE_ON                           = 0x7003\n\tRTC_VL_CLR                           = 0x7014\n\tRTC_VL_READ                          = 0x80047013\n\tRTC_WIE_OFF                          = 0x7010\n\tRTC_WIE_ON                           = 0x700f\n\tRTC_WKALM_RD                         = 0x80287010\n\tRTC_WKALM_SET                        = 0x4028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x80108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x80108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x541b\n\tSIOCOUTQ                             = 0x5411\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x10\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x11\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x12\n\tSO_RCVTIMEO                          = 0x14\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x14\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x13\n\tSO_SNDTIMEO                          = 0x15\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x15\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSVE_MAGIC                            = 0x53564501\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x540b\n\tTCGETA                               = 0x5405\n\tTCGETS                               = 0x5401\n\tTCGETS2                              = 0x802c542a\n\tTCGETX                               = 0x5432\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x5409\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x5406\n\tTCSETAF                              = 0x5408\n\tTCSETAW                              = 0x5407\n\tTCSETS                               = 0x5402\n\tTCSETS2                              = 0x402c542b\n\tTCSETSF                              = 0x5404\n\tTCSETSF2                             = 0x402c542d\n\tTCSETSW                              = 0x5403\n\tTCSETSW2                             = 0x402c542c\n\tTCSETX                               = 0x5433\n\tTCSETXF                              = 0x5434\n\tTCSETXW                              = 0x5435\n\tTCXONC                               = 0x540a\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x80045432\n\tTIOCGETD                             = 0x5424\n\tTIOCGEXCL                            = 0x80045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x80285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x540f\n\tTIOCGPKT                             = 0x80045438\n\tTIOCGPTLCK                           = 0x80045439\n\tTIOCGPTN                             = 0x80045430\n\tTIOCGPTPEER                          = 0x5441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x5413\n\tTIOCINQ                              = 0x541b\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x5411\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x5423\n\tTIOCSIG                              = 0x40045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x5410\n\tTIOCSPTLCK                           = 0x40045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTI                              = 0x5412\n\tTIOCSWINSZ                           = 0x5414\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x401054d5\n\tTUNDETACHFILTER                      = 0x401054d6\n\tTUNGETDEVNETNS                       = 0x54e3\n\tTUNGETFEATURES                       = 0x800454cf\n\tTUNGETFILTER                         = 0x801054db\n\tTUNGETIFF                            = 0x800454d2\n\tTUNGETSNDBUF                         = 0x800454d3\n\tTUNGETVNETBE                         = 0x800454df\n\tTUNGETVNETHDRSZ                      = 0x800454d7\n\tTUNGETVNETLE                         = 0x800454dd\n\tTUNSETCARRIER                        = 0x400454e2\n\tTUNSETDEBUG                          = 0x400454c9\n\tTUNSETFILTEREBPF                     = 0x800454e1\n\tTUNSETGROUP                          = 0x400454ce\n\tTUNSETIFF                            = 0x400454ca\n\tTUNSETIFINDEX                        = 0x400454da\n\tTUNSETLINK                           = 0x400454cd\n\tTUNSETNOCSUM                         = 0x400454c8\n\tTUNSETOFFLOAD                        = 0x400454d0\n\tTUNSETOWNER                          = 0x400454cc\n\tTUNSETPERSIST                        = 0x400454cb\n\tTUNSETQUEUE                          = 0x400454d9\n\tTUNSETSNDBUF                         = 0x400454d4\n\tTUNSETSTEERINGEBPF                   = 0x800454e0\n\tTUNSETTXFILTER                       = 0x400454d1\n\tTUNSETVNETBE                         = 0x400454de\n\tTUNSETVNETHDRSZ                      = 0x400454d8\n\tTUNSETVNETLE                         = 0x400454dc\n\tUBI_IOCATT                           = 0x40186f40\n\tUBI_IOCDET                           = 0x40046f41\n\tUBI_IOCEBCH                          = 0x40044f02\n\tUBI_IOCEBER                          = 0x40044f01\n\tUBI_IOCEBISMAP                       = 0x80044f05\n\tUBI_IOCEBMAP                         = 0x40084f03\n\tUBI_IOCEBUNMAP                       = 0x40044f04\n\tUBI_IOCMKVOL                         = 0x40986f00\n\tUBI_IOCRMVOL                         = 0x40046f01\n\tUBI_IOCRNVOL                         = 0x51106f03\n\tUBI_IOCRPEB                          = 0x40046f04\n\tUBI_IOCRSVOL                         = 0x400c6f02\n\tUBI_IOCSETVOLPROP                    = 0x40104f06\n\tUBI_IOCSPEB                          = 0x40046f05\n\tUBI_IOCVOLCRBLK                      = 0x40804f07\n\tUBI_IOCVOLRMBLK                      = 0x4f08\n\tUBI_IOCVOLUP                         = 0x40084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x80045702\n\tWDIOC_GETPRETIMEOUT                  = 0x80045709\n\tWDIOC_GETSTATUS                      = 0x80045701\n\tWDIOC_GETSUPPORT                     = 0x80285700\n\tWDIOC_GETTEMP                        = 0x80045703\n\tWDIOC_GETTIMELEFT                    = 0x8004570a\n\tWDIOC_GETTIMEOUT                     = 0x80045707\n\tWDIOC_KEEPALIVE                      = 0x80045705\n\tWDIOC_SETOPTIONS                     = 0x80045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40041270\n\tBLKBSZSET                            = 0x80041271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40041272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x80\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x2000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x21\n\tF_GETLK64                            = 0x21\n\tF_GETOWN                             = 0x17\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x22\n\tF_SETLK64                            = 0x22\n\tF_SETLKW                             = 0x23\n\tF_SETLKW64                           = 0x23\n\tF_SETOWN                             = 0x18\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x100\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x80\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x800\n\tMAP_ANONYMOUS                        = 0x800\n\tMAP_DENYWRITE                        = 0x2000\n\tMAP_EXECUTABLE                       = 0x4000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x1000\n\tMAP_HUGETLB                          = 0x80000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x8000\n\tMAP_NONBLOCK                         = 0x20000\n\tMAP_NORESERVE                        = 0x400\n\tMAP_POPULATE                         = 0x10000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_RENAME                           = 0x800\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x40000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x8\n\tO_ASYNC                              = 0x1000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x100\n\tO_DIRECT                             = 0x8000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x10\n\tO_EXCL                               = 0x400\n\tO_FSYNC                              = 0x4010\n\tO_LARGEFILE                          = 0x2000\n\tO_NDELAY                             = 0x80\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x800\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x80\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x4010\n\tO_SYNC                               = 0x4010\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4008743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80087446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x800c744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80087447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x19\n\tPTRACE_GET_THREAD_AREA_3264          = 0xc4\n\tPTRACE_GET_WATCH_REGS                = 0xd0\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKDATA_3264                 = 0xc1\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKTEXT_3264                 = 0xc0\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKEDATA_3264                 = 0xc3\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKETEXT_3264                 = 0xc2\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SET_THREAD_AREA               = 0x1a\n\tPTRACE_SET_WATCH_REGS                = 0xd1\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x6\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x9\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x5\n\tRLIMIT_NPROC                         = 0x8\n\tRLIMIT_RSS                           = 0x7\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4004700d\n\tRTC_EPOCH_SET                        = 0x8004700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4004700b\n\tRTC_IRQP_SET                         = 0x8004700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x401c7011\n\tRTC_PLL_SET                          = 0x801c7012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x80\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x40047307\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x40047309\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x467f\n\tSIOCOUTQ                             = 0x7472\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x80047308\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x1\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x80\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x2\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0xffff\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1009\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x20\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x1029\n\tSO_DONTROUTE                         = 0x10\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x1007\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x8\n\tSO_LINGER                            = 0x80\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0x100\n\tSO_PASSCRED                          = 0x11\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x12\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1e\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x1028\n\tSO_RCVBUF                            = 0x1002\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x1004\n\tSO_RCVTIMEO                          = 0x1006\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x1006\n\tSO_REUSEADDR                         = 0x4\n\tSO_REUSEPORT                         = 0x200\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x1001\n\tSO_SNDBUFFORCE                       = 0x1f\n\tSO_SNDLOWAT                          = 0x1003\n\tSO_SNDTIMEO                          = 0x1005\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x1005\n\tSO_STYLE                             = 0x1008\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x1008\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x5407\n\tTCGETA                               = 0x5401\n\tTCGETS                               = 0x540d\n\tTCGETS2                              = 0x4030542a\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x5410\n\tTCSBRK                               = 0x5405\n\tTCSBRKP                              = 0x5486\n\tTCSETA                               = 0x5402\n\tTCSETAF                              = 0x5404\n\tTCSETAW                              = 0x5403\n\tTCSETS                               = 0x540e\n\tTCSETS2                              = 0x8030542b\n\tTCSETSF                              = 0x5410\n\tTCSETSF2                             = 0x8030542d\n\tTCSETSW                              = 0x540f\n\tTCSETSW2                             = 0x8030542c\n\tTCXONC                               = 0x5406\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x80047478\n\tTIOCEXCL                             = 0x740d\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETD                             = 0x7400\n\tTIOCGETP                             = 0x7408\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x5492\n\tTIOCGISO7816                         = 0x40285442\n\tTIOCGLCKTRMIOS                       = 0x548b\n\tTIOCGLTC                             = 0x7474\n\tTIOCGPGRP                            = 0x40047477\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40045430\n\tTIOCGPTPEER                          = 0x20005441\n\tTIOCGRS485                           = 0x4020542e\n\tTIOCGSERIAL                          = 0x5484\n\tTIOCGSID                             = 0x7416\n\tTIOCGSOFTCAR                         = 0x5481\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x467f\n\tTIOCLINUX                            = 0x5483\n\tTIOCMBIC                             = 0x741c\n\tTIOCMBIS                             = 0x741b\n\tTIOCMGET                             = 0x741d\n\tTIOCMIWAIT                           = 0x5491\n\tTIOCMSET                             = 0x741a\n\tTIOCM_CAR                            = 0x100\n\tTIOCM_CD                             = 0x100\n\tTIOCM_CTS                            = 0x40\n\tTIOCM_DSR                            = 0x400\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x200\n\tTIOCM_RNG                            = 0x200\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x20\n\tTIOCM_ST                             = 0x10\n\tTIOCNOTTY                            = 0x5471\n\tTIOCNXCL                             = 0x740e\n\tTIOCOUTQ                             = 0x7472\n\tTIOCPKT                              = 0x5470\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x5480\n\tTIOCSERCONFIG                        = 0x5488\n\tTIOCSERGETLSR                        = 0x548e\n\tTIOCSERGETMULTI                      = 0x548f\n\tTIOCSERGSTRUCT                       = 0x548d\n\tTIOCSERGWILD                         = 0x5489\n\tTIOCSERSETMULTI                      = 0x5490\n\tTIOCSERSWILD                         = 0x548a\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x7401\n\tTIOCSETN                             = 0x740a\n\tTIOCSETP                             = 0x7409\n\tTIOCSIG                              = 0x80045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x548c\n\tTIOCSLTC                             = 0x7475\n\tTIOCSPGRP                            = 0x80047476\n\tTIOCSPTLCK                           = 0x80045431\n\tTIOCSRS485                           = 0xc020542f\n\tTIOCSSERIAL                          = 0x5485\n\tTIOCSSOFTCAR                         = 0x5482\n\tTIOCSTI                              = 0x5472\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x8000\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x800854d5\n\tTUNDETACHFILTER                      = 0x800854d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x400854db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x10\n\tVEOL                                 = 0x11\n\tVEOL2                                = 0x6\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x4\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVSWTCH                               = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x20\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips64,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40081270\n\tBLKBSZSET                            = 0x80081271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40081272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x80\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x2000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0xe\n\tF_GETLK64                            = 0xe\n\tF_GETOWN                             = 0x17\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0x6\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0x7\n\tF_SETOWN                             = 0x18\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x100\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x80\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x800\n\tMAP_ANONYMOUS                        = 0x800\n\tMAP_DENYWRITE                        = 0x2000\n\tMAP_EXECUTABLE                       = 0x4000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x1000\n\tMAP_HUGETLB                          = 0x80000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x8000\n\tMAP_NONBLOCK                         = 0x20000\n\tMAP_NORESERVE                        = 0x400\n\tMAP_POPULATE                         = 0x10000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_RENAME                           = 0x800\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x40000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x8\n\tO_ASYNC                              = 0x1000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x100\n\tO_DIRECT                             = 0x8000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x10\n\tO_EXCL                               = 0x400\n\tO_FSYNC                              = 0x4010\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x80\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x800\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x80\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x4010\n\tO_SYNC                               = 0x4010\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4010743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80107446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x8010744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80107447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x19\n\tPTRACE_GET_THREAD_AREA_3264          = 0xc4\n\tPTRACE_GET_WATCH_REGS                = 0xd0\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKDATA_3264                 = 0xc1\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKTEXT_3264                 = 0xc0\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKEDATA_3264                 = 0xc3\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKETEXT_3264                 = 0xc2\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SET_THREAD_AREA               = 0x1a\n\tPTRACE_SET_WATCH_REGS                = 0xd1\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x6\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x9\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x5\n\tRLIMIT_NPROC                         = 0x8\n\tRLIMIT_RSS                           = 0x7\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4008700d\n\tRTC_EPOCH_SET                        = 0x8008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4008700b\n\tRTC_IRQP_SET                         = 0x8008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x40207011\n\tRTC_PLL_SET                          = 0x80207012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x80\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x40047307\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x40047309\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x467f\n\tSIOCOUTQ                             = 0x7472\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x80047308\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x1\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x80\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x2\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0xffff\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1009\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x20\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x1029\n\tSO_DONTROUTE                         = 0x10\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x1007\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x8\n\tSO_LINGER                            = 0x80\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0x100\n\tSO_PASSCRED                          = 0x11\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x12\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1e\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x1028\n\tSO_RCVBUF                            = 0x1002\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x1004\n\tSO_RCVTIMEO                          = 0x1006\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x1006\n\tSO_REUSEADDR                         = 0x4\n\tSO_REUSEPORT                         = 0x200\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x1001\n\tSO_SNDBUFFORCE                       = 0x1f\n\tSO_SNDLOWAT                          = 0x1003\n\tSO_SNDTIMEO                          = 0x1005\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x1005\n\tSO_STYLE                             = 0x1008\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x1008\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x5407\n\tTCGETA                               = 0x5401\n\tTCGETS                               = 0x540d\n\tTCGETS2                              = 0x4030542a\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x5410\n\tTCSBRK                               = 0x5405\n\tTCSBRKP                              = 0x5486\n\tTCSETA                               = 0x5402\n\tTCSETAF                              = 0x5404\n\tTCSETAW                              = 0x5403\n\tTCSETS                               = 0x540e\n\tTCSETS2                              = 0x8030542b\n\tTCSETSF                              = 0x5410\n\tTCSETSF2                             = 0x8030542d\n\tTCSETSW                              = 0x540f\n\tTCSETSW2                             = 0x8030542c\n\tTCXONC                               = 0x5406\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x80047478\n\tTIOCEXCL                             = 0x740d\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETD                             = 0x7400\n\tTIOCGETP                             = 0x7408\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x5492\n\tTIOCGISO7816                         = 0x40285442\n\tTIOCGLCKTRMIOS                       = 0x548b\n\tTIOCGLTC                             = 0x7474\n\tTIOCGPGRP                            = 0x40047477\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40045430\n\tTIOCGPTPEER                          = 0x20005441\n\tTIOCGRS485                           = 0x4020542e\n\tTIOCGSERIAL                          = 0x5484\n\tTIOCGSID                             = 0x7416\n\tTIOCGSOFTCAR                         = 0x5481\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x467f\n\tTIOCLINUX                            = 0x5483\n\tTIOCMBIC                             = 0x741c\n\tTIOCMBIS                             = 0x741b\n\tTIOCMGET                             = 0x741d\n\tTIOCMIWAIT                           = 0x5491\n\tTIOCMSET                             = 0x741a\n\tTIOCM_CAR                            = 0x100\n\tTIOCM_CD                             = 0x100\n\tTIOCM_CTS                            = 0x40\n\tTIOCM_DSR                            = 0x400\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x200\n\tTIOCM_RNG                            = 0x200\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x20\n\tTIOCM_ST                             = 0x10\n\tTIOCNOTTY                            = 0x5471\n\tTIOCNXCL                             = 0x740e\n\tTIOCOUTQ                             = 0x7472\n\tTIOCPKT                              = 0x5470\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x5480\n\tTIOCSERCONFIG                        = 0x5488\n\tTIOCSERGETLSR                        = 0x548e\n\tTIOCSERGETMULTI                      = 0x548f\n\tTIOCSERGSTRUCT                       = 0x548d\n\tTIOCSERGWILD                         = 0x5489\n\tTIOCSERSETMULTI                      = 0x5490\n\tTIOCSERSWILD                         = 0x548a\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x7401\n\tTIOCSETN                             = 0x740a\n\tTIOCSETP                             = 0x7409\n\tTIOCSIG                              = 0x80045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x548c\n\tTIOCSLTC                             = 0x7475\n\tTIOCSPGRP                            = 0x80047476\n\tTIOCSPTLCK                           = 0x80045431\n\tTIOCSRS485                           = 0xc020542f\n\tTIOCSSERIAL                          = 0x5485\n\tTIOCSSOFTCAR                         = 0x5482\n\tTIOCSTI                              = 0x5472\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x8000\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x801054d5\n\tTUNDETACHFILTER                      = 0x801054d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x401054db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x10\n\tVEOL                                 = 0x11\n\tVEOL2                                = 0x6\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x4\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVSWTCH                               = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips64le,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40081270\n\tBLKBSZSET                            = 0x80081271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40081272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x80\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x2000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0xe\n\tF_GETLK64                            = 0xe\n\tF_GETOWN                             = 0x17\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0x6\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0x7\n\tF_SETOWN                             = 0x18\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x100\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x80\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x800\n\tMAP_ANONYMOUS                        = 0x800\n\tMAP_DENYWRITE                        = 0x2000\n\tMAP_EXECUTABLE                       = 0x4000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x1000\n\tMAP_HUGETLB                          = 0x80000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x8000\n\tMAP_NONBLOCK                         = 0x20000\n\tMAP_NORESERVE                        = 0x400\n\tMAP_POPULATE                         = 0x10000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_RENAME                           = 0x800\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x40000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x8\n\tO_ASYNC                              = 0x1000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x100\n\tO_DIRECT                             = 0x8000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x10\n\tO_EXCL                               = 0x400\n\tO_FSYNC                              = 0x4010\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x80\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x800\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x80\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x4010\n\tO_SYNC                               = 0x4010\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4010743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80107446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x8010744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80107447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x19\n\tPTRACE_GET_THREAD_AREA_3264          = 0xc4\n\tPTRACE_GET_WATCH_REGS                = 0xd0\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKDATA_3264                 = 0xc1\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKTEXT_3264                 = 0xc0\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKEDATA_3264                 = 0xc3\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKETEXT_3264                 = 0xc2\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SET_THREAD_AREA               = 0x1a\n\tPTRACE_SET_WATCH_REGS                = 0xd1\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x6\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x9\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x5\n\tRLIMIT_NPROC                         = 0x8\n\tRLIMIT_RSS                           = 0x7\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4008700d\n\tRTC_EPOCH_SET                        = 0x8008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4008700b\n\tRTC_IRQP_SET                         = 0x8008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x40207011\n\tRTC_PLL_SET                          = 0x80207012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x80\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x40047307\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x40047309\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x467f\n\tSIOCOUTQ                             = 0x7472\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x80047308\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x1\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x80\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x2\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0xffff\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1009\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x20\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x1029\n\tSO_DONTROUTE                         = 0x10\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x1007\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x8\n\tSO_LINGER                            = 0x80\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0x100\n\tSO_PASSCRED                          = 0x11\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x12\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1e\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x1028\n\tSO_RCVBUF                            = 0x1002\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x1004\n\tSO_RCVTIMEO                          = 0x1006\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x1006\n\tSO_REUSEADDR                         = 0x4\n\tSO_REUSEPORT                         = 0x200\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x1001\n\tSO_SNDBUFFORCE                       = 0x1f\n\tSO_SNDLOWAT                          = 0x1003\n\tSO_SNDTIMEO                          = 0x1005\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x1005\n\tSO_STYLE                             = 0x1008\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x1008\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x5407\n\tTCGETA                               = 0x5401\n\tTCGETS                               = 0x540d\n\tTCGETS2                              = 0x4030542a\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x5410\n\tTCSBRK                               = 0x5405\n\tTCSBRKP                              = 0x5486\n\tTCSETA                               = 0x5402\n\tTCSETAF                              = 0x5404\n\tTCSETAW                              = 0x5403\n\tTCSETS                               = 0x540e\n\tTCSETS2                              = 0x8030542b\n\tTCSETSF                              = 0x5410\n\tTCSETSF2                             = 0x8030542d\n\tTCSETSW                              = 0x540f\n\tTCSETSW2                             = 0x8030542c\n\tTCXONC                               = 0x5406\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x80047478\n\tTIOCEXCL                             = 0x740d\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETD                             = 0x7400\n\tTIOCGETP                             = 0x7408\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x5492\n\tTIOCGISO7816                         = 0x40285442\n\tTIOCGLCKTRMIOS                       = 0x548b\n\tTIOCGLTC                             = 0x7474\n\tTIOCGPGRP                            = 0x40047477\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40045430\n\tTIOCGPTPEER                          = 0x20005441\n\tTIOCGRS485                           = 0x4020542e\n\tTIOCGSERIAL                          = 0x5484\n\tTIOCGSID                             = 0x7416\n\tTIOCGSOFTCAR                         = 0x5481\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x467f\n\tTIOCLINUX                            = 0x5483\n\tTIOCMBIC                             = 0x741c\n\tTIOCMBIS                             = 0x741b\n\tTIOCMGET                             = 0x741d\n\tTIOCMIWAIT                           = 0x5491\n\tTIOCMSET                             = 0x741a\n\tTIOCM_CAR                            = 0x100\n\tTIOCM_CD                             = 0x100\n\tTIOCM_CTS                            = 0x40\n\tTIOCM_DSR                            = 0x400\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x200\n\tTIOCM_RNG                            = 0x200\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x20\n\tTIOCM_ST                             = 0x10\n\tTIOCNOTTY                            = 0x5471\n\tTIOCNXCL                             = 0x740e\n\tTIOCOUTQ                             = 0x7472\n\tTIOCPKT                              = 0x5470\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x5480\n\tTIOCSERCONFIG                        = 0x5488\n\tTIOCSERGETLSR                        = 0x548e\n\tTIOCSERGETMULTI                      = 0x548f\n\tTIOCSERGSTRUCT                       = 0x548d\n\tTIOCSERGWILD                         = 0x5489\n\tTIOCSERSETMULTI                      = 0x5490\n\tTIOCSERSWILD                         = 0x548a\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x7401\n\tTIOCSETN                             = 0x740a\n\tTIOCSETP                             = 0x7409\n\tTIOCSIG                              = 0x80045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x548c\n\tTIOCSLTC                             = 0x7475\n\tTIOCSPGRP                            = 0x80047476\n\tTIOCSPTLCK                           = 0x80045431\n\tTIOCSRS485                           = 0xc020542f\n\tTIOCSSERIAL                          = 0x5485\n\tTIOCSSOFTCAR                         = 0x5482\n\tTIOCSTI                              = 0x5472\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x8000\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x801054d5\n\tTUNDETACHFILTER                      = 0x801054d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x401054db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x10\n\tVEOL                                 = 0x11\n\tVEOL2                                = 0x6\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x4\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVSWTCH                               = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mipsle,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40041270\n\tBLKBSZSET                            = 0x80041271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40041272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x80\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x2000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x21\n\tF_GETLK64                            = 0x21\n\tF_GETOWN                             = 0x17\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x22\n\tF_SETLK64                            = 0x22\n\tF_SETLKW                             = 0x23\n\tF_SETLKW64                           = 0x23\n\tF_SETOWN                             = 0x18\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x100\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x80\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x800\n\tMAP_ANONYMOUS                        = 0x800\n\tMAP_DENYWRITE                        = 0x2000\n\tMAP_EXECUTABLE                       = 0x4000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x1000\n\tMAP_HUGETLB                          = 0x80000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x8000\n\tMAP_NONBLOCK                         = 0x20000\n\tMAP_NORESERVE                        = 0x400\n\tMAP_POPULATE                         = 0x10000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_RENAME                           = 0x800\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x40000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x8\n\tO_ASYNC                              = 0x1000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x100\n\tO_DIRECT                             = 0x8000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x10\n\tO_EXCL                               = 0x400\n\tO_FSYNC                              = 0x4010\n\tO_LARGEFILE                          = 0x2000\n\tO_NDELAY                             = 0x80\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x800\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x80\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x4010\n\tO_SYNC                               = 0x4010\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4008743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80087446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x800c744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80087447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_GET_THREAD_AREA               = 0x19\n\tPTRACE_GET_THREAD_AREA_3264          = 0xc4\n\tPTRACE_GET_WATCH_REGS                = 0xd0\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKDATA_3264                 = 0xc1\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKTEXT_3264                 = 0xc0\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKEDATA_3264                 = 0xc3\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKETEXT_3264                 = 0xc2\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SET_THREAD_AREA               = 0x1a\n\tPTRACE_SET_WATCH_REGS                = 0xd1\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x6\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x9\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x5\n\tRLIMIT_NPROC                         = 0x8\n\tRLIMIT_RSS                           = 0x7\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4004700d\n\tRTC_EPOCH_SET                        = 0x8004700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4004700b\n\tRTC_IRQP_SET                         = 0x8004700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x401c7011\n\tRTC_PLL_SET                          = 0x801c7012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x80\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x40047307\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x40047309\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x467f\n\tSIOCOUTQ                             = 0x7472\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x80047308\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x1\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x80\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x2\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0xffff\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1009\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x20\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x1029\n\tSO_DONTROUTE                         = 0x10\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x1007\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x8\n\tSO_LINGER                            = 0x80\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0x100\n\tSO_PASSCRED                          = 0x11\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x12\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1e\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x1028\n\tSO_RCVBUF                            = 0x1002\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x1004\n\tSO_RCVTIMEO                          = 0x1006\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x1006\n\tSO_REUSEADDR                         = 0x4\n\tSO_REUSEPORT                         = 0x200\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x1001\n\tSO_SNDBUFFORCE                       = 0x1f\n\tSO_SNDLOWAT                          = 0x1003\n\tSO_SNDTIMEO                          = 0x1005\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x1005\n\tSO_STYLE                             = 0x1008\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x1008\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x5407\n\tTCGETA                               = 0x5401\n\tTCGETS                               = 0x540d\n\tTCGETS2                              = 0x4030542a\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x5410\n\tTCSBRK                               = 0x5405\n\tTCSBRKP                              = 0x5486\n\tTCSETA                               = 0x5402\n\tTCSETAF                              = 0x5404\n\tTCSETAW                              = 0x5403\n\tTCSETS                               = 0x540e\n\tTCSETS2                              = 0x8030542b\n\tTCSETSF                              = 0x5410\n\tTCSETSF2                             = 0x8030542d\n\tTCSETSW                              = 0x540f\n\tTCSETSW2                             = 0x8030542c\n\tTCXONC                               = 0x5406\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x80047478\n\tTIOCEXCL                             = 0x740d\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETD                             = 0x7400\n\tTIOCGETP                             = 0x7408\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x5492\n\tTIOCGISO7816                         = 0x40285442\n\tTIOCGLCKTRMIOS                       = 0x548b\n\tTIOCGLTC                             = 0x7474\n\tTIOCGPGRP                            = 0x40047477\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40045430\n\tTIOCGPTPEER                          = 0x20005441\n\tTIOCGRS485                           = 0x4020542e\n\tTIOCGSERIAL                          = 0x5484\n\tTIOCGSID                             = 0x7416\n\tTIOCGSOFTCAR                         = 0x5481\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x467f\n\tTIOCLINUX                            = 0x5483\n\tTIOCMBIC                             = 0x741c\n\tTIOCMBIS                             = 0x741b\n\tTIOCMGET                             = 0x741d\n\tTIOCMIWAIT                           = 0x5491\n\tTIOCMSET                             = 0x741a\n\tTIOCM_CAR                            = 0x100\n\tTIOCM_CD                             = 0x100\n\tTIOCM_CTS                            = 0x40\n\tTIOCM_DSR                            = 0x400\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x200\n\tTIOCM_RNG                            = 0x200\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x20\n\tTIOCM_ST                             = 0x10\n\tTIOCNOTTY                            = 0x5471\n\tTIOCNXCL                             = 0x740e\n\tTIOCOUTQ                             = 0x7472\n\tTIOCPKT                              = 0x5470\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x5480\n\tTIOCSERCONFIG                        = 0x5488\n\tTIOCSERGETLSR                        = 0x548e\n\tTIOCSERGETMULTI                      = 0x548f\n\tTIOCSERGSTRUCT                       = 0x548d\n\tTIOCSERGWILD                         = 0x5489\n\tTIOCSERSETMULTI                      = 0x5490\n\tTIOCSERSWILD                         = 0x548a\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x7401\n\tTIOCSETN                             = 0x740a\n\tTIOCSETP                             = 0x7409\n\tTIOCSIG                              = 0x80045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x548c\n\tTIOCSLTC                             = 0x7475\n\tTIOCSPGRP                            = 0x80047476\n\tTIOCSPTLCK                           = 0x80045431\n\tTIOCSRS485                           = 0xc020542f\n\tTIOCSSERIAL                          = 0x5485\n\tTIOCSSOFTCAR                         = 0x5482\n\tTIOCSTI                              = 0x5472\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x8000\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x800854d5\n\tTUNDETACHFILTER                      = 0x800854d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x400854db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x10\n\tVEOL                                 = 0x11\n\tVEOL2                                = 0x6\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x4\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVSWTCH                               = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x20\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x17\n\tB110                                 = 0x3\n\tB115200                              = 0x11\n\tB1152000                             = 0x18\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x19\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x1a\n\tB230400                              = 0x12\n\tB2400                                = 0xb\n\tB2500000                             = 0x1b\n\tB300                                 = 0x7\n\tB3000000                             = 0x1c\n\tB3500000                             = 0x1d\n\tB38400                               = 0xf\n\tB4000000                             = 0x1e\n\tB460800                              = 0x13\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x14\n\tB57600                               = 0x10\n\tB576000                              = 0x15\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x16\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40081270\n\tBLKBSZSET                            = 0x80081271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40081272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1f\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x8000\n\tBSDLY                                = 0x8000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0xff\n\tCBAUDEX                              = 0x0\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0xff0000\n\tCLOCAL                               = 0x8000\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x1000\n\tCR2                                  = 0x2000\n\tCR3                                  = 0x3000\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x3000\n\tCREAD                                = 0x800\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x100\n\tCS7                                  = 0x200\n\tCS8                                  = 0x300\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x300\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x400\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x40\n\tECHOE                                = 0x2\n\tECHOK                                = 0x4\n\tECHOKE                               = 0x1\n\tECHONL                               = 0x10\n\tECHOPRT                              = 0x20\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x4000\n\tFFDLY                                = 0x4000\n\tFLUSHO                               = 0x800000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x5\n\tF_GETLK64                            = 0xc\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0xd\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0xe\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x4000\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x100\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x400\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x80\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x1000\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x400\n\tIXON                                 = 0x200\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x80\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x40\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x2000\n\tMCL_FUTURE                           = 0x4000\n\tMCL_ONFAULT                          = 0x8000\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNL2                                  = 0x200\n\tNL3                                  = 0x300\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x300\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80000000\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x4\n\tONLCR                                = 0x2\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x20000\n\tO_DIRECTORY                          = 0x4000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x8000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x404000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x1000\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x2000\n\tPENDIN                               = 0x20000000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4010743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80107446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x8010744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80107447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_SAO                             = 0x10\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETEVRREGS                    = 0x14\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGS64                     = 0x16\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GETVRREGS                     = 0x12\n\tPTRACE_GETVSRREGS                    = 0x1b\n\tPTRACE_GET_DEBUGREG                  = 0x19\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETEVRREGS                    = 0x15\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGS64                     = 0x17\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SETVRREGS                     = 0x13\n\tPTRACE_SETVSRREGS                    = 0x1c\n\tPTRACE_SET_DEBUGREG                  = 0x1a\n\tPTRACE_SINGLEBLOCK                   = 0x100\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_SYSEMU                        = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP             = 0x1e\n\tPTRACE_TRACEME                       = 0x0\n\tPT_CCR                               = 0x26\n\tPT_CTR                               = 0x23\n\tPT_DAR                               = 0x29\n\tPT_DSCR                              = 0x2c\n\tPT_DSISR                             = 0x2a\n\tPT_FPR0                              = 0x30\n\tPT_FPSCR                             = 0x50\n\tPT_LNK                               = 0x24\n\tPT_MSR                               = 0x21\n\tPT_NIP                               = 0x20\n\tPT_ORIG_R3                           = 0x22\n\tPT_R0                                = 0x0\n\tPT_R1                                = 0x1\n\tPT_R10                               = 0xa\n\tPT_R11                               = 0xb\n\tPT_R12                               = 0xc\n\tPT_R13                               = 0xd\n\tPT_R14                               = 0xe\n\tPT_R15                               = 0xf\n\tPT_R16                               = 0x10\n\tPT_R17                               = 0x11\n\tPT_R18                               = 0x12\n\tPT_R19                               = 0x13\n\tPT_R2                                = 0x2\n\tPT_R20                               = 0x14\n\tPT_R21                               = 0x15\n\tPT_R22                               = 0x16\n\tPT_R23                               = 0x17\n\tPT_R24                               = 0x18\n\tPT_R25                               = 0x19\n\tPT_R26                               = 0x1a\n\tPT_R27                               = 0x1b\n\tPT_R28                               = 0x1c\n\tPT_R29                               = 0x1d\n\tPT_R3                                = 0x3\n\tPT_R30                               = 0x1e\n\tPT_R31                               = 0x1f\n\tPT_R4                                = 0x4\n\tPT_R5                                = 0x5\n\tPT_R6                                = 0x6\n\tPT_R7                                = 0x7\n\tPT_R8                                = 0x8\n\tPT_R9                                = 0x9\n\tPT_REGS_COUNT                        = 0x2c\n\tPT_RESULT                            = 0x2b\n\tPT_SOFTE                             = 0x27\n\tPT_TRAP                              = 0x28\n\tPT_VR0                               = 0x52\n\tPT_VRSAVE                            = 0x94\n\tPT_VSCR                              = 0x93\n\tPT_VSR0                              = 0x96\n\tPT_VSR31                             = 0xd4\n\tPT_XER                               = 0x25\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4008700d\n\tRTC_EPOCH_SET                        = 0x8008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4008700b\n\tRTC_IRQP_SET                         = 0x8008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x40207011\n\tRTC_PLL_SET                          = 0x80207012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x4004667f\n\tSIOCOUTQ                             = 0x40047473\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x14\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x15\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x10\n\tSO_RCVTIMEO                          = 0x12\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x12\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x11\n\tSO_SNDTIMEO                          = 0x13\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x13\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x400\n\tTAB2                                 = 0x800\n\tTAB3                                 = 0xc00\n\tTABDLY                               = 0xc00\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x2000741f\n\tTCGETA                               = 0x40147417\n\tTCGETS                               = 0x402c7413\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x2000741d\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x80147418\n\tTCSETAF                              = 0x8014741c\n\tTCSETAW                              = 0x80147419\n\tTCSETS                               = 0x802c7414\n\tTCSETSF                              = 0x802c7416\n\tTCSETSW                              = 0x802c7415\n\tTCXONC                               = 0x2000741e\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETC                             = 0x40067412\n\tTIOCGETD                             = 0x5424\n\tTIOCGETP                             = 0x40067408\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x40285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGLTC                             = 0x40067474\n\tTIOCGPGRP                            = 0x40047477\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40045430\n\tTIOCGPTPEER                          = 0x20005441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x4004667f\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_LOOP                           = 0x8000\n\tTIOCM_OUT1                           = 0x2000\n\tTIOCM_OUT2                           = 0x4000\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x40047473\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETC                             = 0x80067411\n\tTIOCSETD                             = 0x5423\n\tTIOCSETN                             = 0x8006740a\n\tTIOCSETP                             = 0x80067409\n\tTIOCSIG                              = 0x80045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSLTC                             = 0x80067475\n\tTIOCSPGRP                            = 0x80047476\n\tTIOCSPTLCK                           = 0x80045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTART                            = 0x2000746e\n\tTIOCSTI                              = 0x5412\n\tTIOCSTOP                             = 0x2000746f\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x400000\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x801054d5\n\tTUNDETACHFILTER                      = 0x801054d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x401054db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0x10\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0x6\n\tVEOL2                                = 0x8\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x5\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xb\n\tVSTART                               = 0xd\n\tVSTOP                                = 0xe\n\tVSUSP                                = 0xc\n\tVSWTC                                = 0x9\n\tVT0                                  = 0x0\n\tVT1                                  = 0x10000\n\tVTDLY                                = 0x10000\n\tVTIME                                = 0x7\n\tVWERASE                              = 0xa\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4000\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0xc00\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64le,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x17\n\tB110                                 = 0x3\n\tB115200                              = 0x11\n\tB1152000                             = 0x18\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x19\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x1a\n\tB230400                              = 0x12\n\tB2400                                = 0xb\n\tB2500000                             = 0x1b\n\tB300                                 = 0x7\n\tB3000000                             = 0x1c\n\tB3500000                             = 0x1d\n\tB38400                               = 0xf\n\tB4000000                             = 0x1e\n\tB460800                              = 0x13\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x14\n\tB57600                               = 0x10\n\tB576000                              = 0x15\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x16\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40081270\n\tBLKBSZSET                            = 0x80081271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40081272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1f\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x8000\n\tBSDLY                                = 0x8000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0xff\n\tCBAUDEX                              = 0x0\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0xff0000\n\tCLOCAL                               = 0x8000\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x1000\n\tCR2                                  = 0x2000\n\tCR3                                  = 0x3000\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x3000\n\tCREAD                                = 0x800\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x100\n\tCS7                                  = 0x200\n\tCS8                                  = 0x300\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x300\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x400\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x40\n\tECHOE                                = 0x2\n\tECHOK                                = 0x4\n\tECHOKE                               = 0x1\n\tECHONL                               = 0x10\n\tECHOPRT                              = 0x20\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x4000\n\tFFDLY                                = 0x4000\n\tFLUSHO                               = 0x800000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x5\n\tF_GETLK64                            = 0xc\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0xd\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0xe\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x4000\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x100\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x400\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x80\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x1000\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x400\n\tIXON                                 = 0x200\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x80\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x40\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x2000\n\tMCL_FUTURE                           = 0x4000\n\tMCL_ONFAULT                          = 0x8000\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNL2                                  = 0x200\n\tNL3                                  = 0x300\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x300\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80000000\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x4\n\tONLCR                                = 0x2\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x20000\n\tO_DIRECTORY                          = 0x4000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x8000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x404000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x1000\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x2000\n\tPENDIN                               = 0x20000000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4010743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80107446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x8010744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80107447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_SAO                             = 0x10\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETEVRREGS                    = 0x14\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGS64                     = 0x16\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GETVRREGS                     = 0x12\n\tPTRACE_GETVSRREGS                    = 0x1b\n\tPTRACE_GET_DEBUGREG                  = 0x19\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETEVRREGS                    = 0x15\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGS64                     = 0x17\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SETVRREGS                     = 0x13\n\tPTRACE_SETVSRREGS                    = 0x1c\n\tPTRACE_SET_DEBUGREG                  = 0x1a\n\tPTRACE_SINGLEBLOCK                   = 0x100\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_SYSEMU                        = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP             = 0x1e\n\tPTRACE_TRACEME                       = 0x0\n\tPT_CCR                               = 0x26\n\tPT_CTR                               = 0x23\n\tPT_DAR                               = 0x29\n\tPT_DSCR                              = 0x2c\n\tPT_DSISR                             = 0x2a\n\tPT_FPR0                              = 0x30\n\tPT_FPSCR                             = 0x50\n\tPT_LNK                               = 0x24\n\tPT_MSR                               = 0x21\n\tPT_NIP                               = 0x20\n\tPT_ORIG_R3                           = 0x22\n\tPT_R0                                = 0x0\n\tPT_R1                                = 0x1\n\tPT_R10                               = 0xa\n\tPT_R11                               = 0xb\n\tPT_R12                               = 0xc\n\tPT_R13                               = 0xd\n\tPT_R14                               = 0xe\n\tPT_R15                               = 0xf\n\tPT_R16                               = 0x10\n\tPT_R17                               = 0x11\n\tPT_R18                               = 0x12\n\tPT_R19                               = 0x13\n\tPT_R2                                = 0x2\n\tPT_R20                               = 0x14\n\tPT_R21                               = 0x15\n\tPT_R22                               = 0x16\n\tPT_R23                               = 0x17\n\tPT_R24                               = 0x18\n\tPT_R25                               = 0x19\n\tPT_R26                               = 0x1a\n\tPT_R27                               = 0x1b\n\tPT_R28                               = 0x1c\n\tPT_R29                               = 0x1d\n\tPT_R3                                = 0x3\n\tPT_R30                               = 0x1e\n\tPT_R31                               = 0x1f\n\tPT_R4                                = 0x4\n\tPT_R5                                = 0x5\n\tPT_R6                                = 0x6\n\tPT_R7                                = 0x7\n\tPT_R8                                = 0x8\n\tPT_R9                                = 0x9\n\tPT_REGS_COUNT                        = 0x2c\n\tPT_RESULT                            = 0x2b\n\tPT_SOFTE                             = 0x27\n\tPT_TRAP                              = 0x28\n\tPT_VR0                               = 0x52\n\tPT_VRSAVE                            = 0x94\n\tPT_VSCR                              = 0x93\n\tPT_VSR0                              = 0x96\n\tPT_VSR31                             = 0xd4\n\tPT_XER                               = 0x25\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4008700d\n\tRTC_EPOCH_SET                        = 0x8008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4008700b\n\tRTC_IRQP_SET                         = 0x8008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x40207011\n\tRTC_PLL_SET                          = 0x80207012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x4004667f\n\tSIOCOUTQ                             = 0x40047473\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x14\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x15\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x10\n\tSO_RCVTIMEO                          = 0x12\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x12\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x11\n\tSO_SNDTIMEO                          = 0x13\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x13\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x400\n\tTAB2                                 = 0x800\n\tTAB3                                 = 0xc00\n\tTABDLY                               = 0xc00\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x2000741f\n\tTCGETA                               = 0x40147417\n\tTCGETS                               = 0x402c7413\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x2000741d\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x80147418\n\tTCSETAF                              = 0x8014741c\n\tTCSETAW                              = 0x80147419\n\tTCSETS                               = 0x802c7414\n\tTCSETSF                              = 0x802c7416\n\tTCSETSW                              = 0x802c7415\n\tTCXONC                               = 0x2000741e\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETC                             = 0x40067412\n\tTIOCGETD                             = 0x5424\n\tTIOCGETP                             = 0x40067408\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x40285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGLTC                             = 0x40067474\n\tTIOCGPGRP                            = 0x40047477\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40045430\n\tTIOCGPTPEER                          = 0x20005441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x4004667f\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_LOOP                           = 0x8000\n\tTIOCM_OUT1                           = 0x2000\n\tTIOCM_OUT2                           = 0x4000\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x40047473\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETC                             = 0x80067411\n\tTIOCSETD                             = 0x5423\n\tTIOCSETN                             = 0x8006740a\n\tTIOCSETP                             = 0x80067409\n\tTIOCSIG                              = 0x80045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSLTC                             = 0x80067475\n\tTIOCSPGRP                            = 0x80047476\n\tTIOCSPTLCK                           = 0x80045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTART                            = 0x2000746e\n\tTIOCSTI                              = 0x5412\n\tTIOCSTOP                             = 0x2000746f\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x400000\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x801054d5\n\tTUNDETACHFILTER                      = 0x801054d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x401054db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0x10\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0x6\n\tVEOL2                                = 0x8\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x5\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xb\n\tVSTART                               = 0xd\n\tVSTOP                                = 0xe\n\tVSUSP                                = 0xc\n\tVSWTC                                = 0x9\n\tVT0                                  = 0x0\n\tVT1                                  = 0x10000\n\tVTDLY                                = 0x10000\n\tVTIME                                = 0x7\n\tVWERASE                              = 0xa\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4000\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0xc00\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build riscv64,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x80081270\n\tBLKBSZSET                            = 0x40081271\n\tBLKFLSBUF                            = 0x1261\n\tBLKFRAGET                            = 0x1265\n\tBLKFRASET                            = 0x1264\n\tBLKGETSIZE                           = 0x1260\n\tBLKGETSIZE64                         = 0x80081272\n\tBLKPBSZGET                           = 0x127b\n\tBLKRAGET                             = 0x1263\n\tBLKRASET                             = 0x1262\n\tBLKROGET                             = 0x125e\n\tBLKROSET                             = 0x125d\n\tBLKRRPART                            = 0x125f\n\tBLKSECTGET                           = 0x1267\n\tBLKSECTSET                           = 0x1266\n\tBLKSSZGET                            = 0x1268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x5\n\tF_GETLK64                            = 0x5\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0x6\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0x7\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x7b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x2000\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x4000\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_SYNC                             = 0x80000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0xb703\n\tNS_GET_OWNER_UID                     = 0xb704\n\tNS_GET_PARENT                        = 0xb702\n\tNS_GET_USERNS                        = 0xb701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x4000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x2401\n\tPERF_EVENT_IOC_ENABLE                = 0x2400\n\tPERF_EVENT_IOC_ID                    = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409\n\tPERF_EVENT_IOC_PERIOD                = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x2402\n\tPERF_EVENT_IOC_RESET                 = 0x2403\n\tPERF_EVENT_IOC_SET_BPF               = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x2405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x4004743d\n\tPPPIOCATTCHAN                        = 0x40047438\n\tPPPIOCCONNECT                        = 0x4004743a\n\tPPPIOCDETACH                         = 0x4004743c\n\tPPPIOCDISCONN                        = 0x7439\n\tPPPIOCGASYNCMAP                      = 0x80047458\n\tPPPIOCGCHAN                          = 0x80047437\n\tPPPIOCGDEBUG                         = 0x80047441\n\tPPPIOCGFLAGS                         = 0x8004745a\n\tPPPIOCGIDLE                          = 0x8010743f\n\tPPPIOCGL2TPSTATS                     = 0x80487436\n\tPPPIOCGMRU                           = 0x80047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x80047455\n\tPPPIOCGUNIT                          = 0x80047456\n\tPPPIOCGXASYNCMAP                     = 0x80207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x40107446\n\tPPPIOCSASYNCMAP                      = 0x40047457\n\tPPPIOCSCOMPRESS                      = 0x4010744d\n\tPPPIOCSDEBUG                         = 0x40047440\n\tPPPIOCSFLAGS                         = 0x40047459\n\tPPPIOCSMAXCID                        = 0x40047451\n\tPPPIOCSMRRU                          = 0x4004743b\n\tPPPIOCSMRU                           = 0x40047452\n\tPPPIOCSNPMODE                        = 0x4008744b\n\tPPPIOCSPASS                          = 0x40107447\n\tPPPIOCSRASYNCMAP                     = 0x40047454\n\tPPPIOCSXASYNCMAP                     = 0x4020744f\n\tPPPIOCXFERUNIT                       = 0x744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x40085203\n\tRNDADDTOENTCNT                       = 0x40045201\n\tRNDCLEARPOOL                         = 0x5206\n\tRNDGETENTCNT                         = 0x80045200\n\tRNDGETPOOL                           = 0x80085202\n\tRNDRESEEDCRNG                        = 0x5207\n\tRNDZAPENTCNT                         = 0x5204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x7002\n\tRTC_AIE_ON                           = 0x7001\n\tRTC_ALM_READ                         = 0x80247008\n\tRTC_ALM_SET                          = 0x40247007\n\tRTC_EPOCH_READ                       = 0x8008700d\n\tRTC_EPOCH_SET                        = 0x4008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x8008700b\n\tRTC_IRQP_SET                         = 0x4008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x7006\n\tRTC_PIE_ON                           = 0x7005\n\tRTC_PLL_GET                          = 0x80207011\n\tRTC_PLL_SET                          = 0x40207012\n\tRTC_RD_TIME                          = 0x80247009\n\tRTC_SET_TIME                         = 0x4024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x7004\n\tRTC_UIE_ON                           = 0x7003\n\tRTC_VL_CLR                           = 0x7014\n\tRTC_VL_READ                          = 0x80047013\n\tRTC_WIE_OFF                          = 0x7010\n\tRTC_WIE_ON                           = 0x700f\n\tRTC_WKALM_RD                         = 0x80287010\n\tRTC_WKALM_SET                        = 0x4028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x80108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x80108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x541b\n\tSIOCOUTQ                             = 0x5411\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x10\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x11\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x12\n\tSO_RCVTIMEO                          = 0x14\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x14\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x13\n\tSO_SNDTIMEO                          = 0x15\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x15\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x540b\n\tTCGETA                               = 0x5405\n\tTCGETS                               = 0x5401\n\tTCGETS2                              = 0x802c542a\n\tTCGETX                               = 0x5432\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x5409\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x5406\n\tTCSETAF                              = 0x5408\n\tTCSETAW                              = 0x5407\n\tTCSETS                               = 0x5402\n\tTCSETS2                              = 0x402c542b\n\tTCSETSF                              = 0x5404\n\tTCSETSF2                             = 0x402c542d\n\tTCSETSW                              = 0x5403\n\tTCSETSW2                             = 0x402c542c\n\tTCSETX                               = 0x5433\n\tTCSETXF                              = 0x5434\n\tTCSETXW                              = 0x5435\n\tTCXONC                               = 0x540a\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x80045432\n\tTIOCGETD                             = 0x5424\n\tTIOCGEXCL                            = 0x80045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x80285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x540f\n\tTIOCGPKT                             = 0x80045438\n\tTIOCGPTLCK                           = 0x80045439\n\tTIOCGPTN                             = 0x80045430\n\tTIOCGPTPEER                          = 0x5441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x5413\n\tTIOCINQ                              = 0x541b\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x5411\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x5423\n\tTIOCSIG                              = 0x40045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x5410\n\tTIOCSPTLCK                           = 0x40045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTI                              = 0x5412\n\tTIOCSWINSZ                           = 0x5414\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x401054d5\n\tTUNDETACHFILTER                      = 0x401054d6\n\tTUNGETDEVNETNS                       = 0x54e3\n\tTUNGETFEATURES                       = 0x800454cf\n\tTUNGETFILTER                         = 0x801054db\n\tTUNGETIFF                            = 0x800454d2\n\tTUNGETSNDBUF                         = 0x800454d3\n\tTUNGETVNETBE                         = 0x800454df\n\tTUNGETVNETHDRSZ                      = 0x800454d7\n\tTUNGETVNETLE                         = 0x800454dd\n\tTUNSETCARRIER                        = 0x400454e2\n\tTUNSETDEBUG                          = 0x400454c9\n\tTUNSETFILTEREBPF                     = 0x800454e1\n\tTUNSETGROUP                          = 0x400454ce\n\tTUNSETIFF                            = 0x400454ca\n\tTUNSETIFINDEX                        = 0x400454da\n\tTUNSETLINK                           = 0x400454cd\n\tTUNSETNOCSUM                         = 0x400454c8\n\tTUNSETOFFLOAD                        = 0x400454d0\n\tTUNSETOWNER                          = 0x400454cc\n\tTUNSETPERSIST                        = 0x400454cb\n\tTUNSETQUEUE                          = 0x400454d9\n\tTUNSETSNDBUF                         = 0x400454d4\n\tTUNSETSTEERINGEBPF                   = 0x800454e0\n\tTUNSETTXFILTER                       = 0x400454d1\n\tTUNSETVNETBE                         = 0x400454de\n\tTUNSETVNETHDRSZ                      = 0x400454d8\n\tTUNSETVNETLE                         = 0x400454dc\n\tUBI_IOCATT                           = 0x40186f40\n\tUBI_IOCDET                           = 0x40046f41\n\tUBI_IOCEBCH                          = 0x40044f02\n\tUBI_IOCEBER                          = 0x40044f01\n\tUBI_IOCEBISMAP                       = 0x80044f05\n\tUBI_IOCEBMAP                         = 0x40084f03\n\tUBI_IOCEBUNMAP                       = 0x40044f04\n\tUBI_IOCMKVOL                         = 0x40986f00\n\tUBI_IOCRMVOL                         = 0x40046f01\n\tUBI_IOCRNVOL                         = 0x51106f03\n\tUBI_IOCRPEB                          = 0x40046f04\n\tUBI_IOCRSVOL                         = 0x400c6f02\n\tUBI_IOCSETVOLPROP                    = 0x40104f06\n\tUBI_IOCSPEB                          = 0x40046f05\n\tUBI_IOCVOLCRBLK                      = 0x40804f07\n\tUBI_IOCVOLRMBLK                      = 0x4f08\n\tUBI_IOCVOLUP                         = 0x40084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x80045702\n\tWDIOC_GETPRETIMEOUT                  = 0x80045709\n\tWDIOC_GETSTATUS                      = 0x80045701\n\tWDIOC_GETSUPPORT                     = 0x80285700\n\tWDIOC_GETTEMP                        = 0x80045703\n\tWDIOC_GETTIMELEFT                    = 0x8004570a\n\tWDIOC_GETTIMEOUT                     = 0x80045707\n\tWDIOC_KEEPALIVE                      = 0x80045705\n\tWDIOC_SETOPTIONS                     = 0x80045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build s390x,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x80081270\n\tBLKBSZSET                            = 0x40081271\n\tBLKFLSBUF                            = 0x1261\n\tBLKFRAGET                            = 0x1265\n\tBLKFRASET                            = 0x1264\n\tBLKGETSIZE                           = 0x1260\n\tBLKGETSIZE64                         = 0x80081272\n\tBLKPBSZGET                           = 0x127b\n\tBLKRAGET                             = 0x1263\n\tBLKRASET                             = 0x1262\n\tBLKROGET                             = 0x125e\n\tBLKROSET                             = 0x125d\n\tBLKRRPART                            = 0x125f\n\tBLKSECTGET                           = 0x1267\n\tBLKSECTSET                           = 0x1266\n\tBLKSSZGET                            = 0x1268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x80000\n\tEFD_NONBLOCK                         = 0x800\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x80000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x5\n\tF_GETLK64                            = 0x5\n\tF_GETOWN                             = 0x9\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x0\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x6\n\tF_SETLK64                            = 0x6\n\tF_SETLKW                             = 0x7\n\tF_SETLKW64                           = 0x7\n\tF_SETOWN                             = 0x8\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x2\n\tF_WRLCK                              = 0x1\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x80000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x800\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x7b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x100\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x2000\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x4000\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_SYNC                             = 0x80000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x1\n\tMCL_FUTURE                           = 0x2\n\tMCL_ONFAULT                          = 0x4\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0xb703\n\tNS_GET_OWNER_UID                     = 0xb704\n\tNS_GET_PARENT                        = 0xb702\n\tNS_GET_USERNS                        = 0xb701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x400\n\tO_ASYNC                              = 0x2000\n\tO_CLOEXEC                            = 0x80000\n\tO_CREAT                              = 0x40\n\tO_DIRECT                             = 0x4000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x1000\n\tO_EXCL                               = 0x80\n\tO_FSYNC                              = 0x101000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x800\n\tO_NOATIME                            = 0x40000\n\tO_NOCTTY                             = 0x100\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x800\n\tO_PATH                               = 0x200000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x101000\n\tO_SYNC                               = 0x101000\n\tO_TMPFILE                            = 0x410000\n\tO_TRUNC                              = 0x200\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x2401\n\tPERF_EVENT_IOC_ENABLE                = 0x2400\n\tPERF_EVENT_IOC_ID                    = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409\n\tPERF_EVENT_IOC_PERIOD                = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x2402\n\tPERF_EVENT_IOC_RESET                 = 0x2403\n\tPERF_EVENT_IOC_SET_BPF               = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x2405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x4004743d\n\tPPPIOCATTCHAN                        = 0x40047438\n\tPPPIOCCONNECT                        = 0x4004743a\n\tPPPIOCDETACH                         = 0x4004743c\n\tPPPIOCDISCONN                        = 0x7439\n\tPPPIOCGASYNCMAP                      = 0x80047458\n\tPPPIOCGCHAN                          = 0x80047437\n\tPPPIOCGDEBUG                         = 0x80047441\n\tPPPIOCGFLAGS                         = 0x8004745a\n\tPPPIOCGIDLE                          = 0x8010743f\n\tPPPIOCGL2TPSTATS                     = 0x80487436\n\tPPPIOCGMRU                           = 0x80047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x80047455\n\tPPPIOCGUNIT                          = 0x80047456\n\tPPPIOCGXASYNCMAP                     = 0x80207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x40107446\n\tPPPIOCSASYNCMAP                      = 0x40047457\n\tPPPIOCSCOMPRESS                      = 0x4010744d\n\tPPPIOCSDEBUG                         = 0x40047440\n\tPPPIOCSFLAGS                         = 0x40047459\n\tPPPIOCSMAXCID                        = 0x40047451\n\tPPPIOCSMRRU                          = 0x4004743b\n\tPPPIOCSMRU                           = 0x40047452\n\tPPPIOCSNPMODE                        = 0x4008744b\n\tPPPIOCSPASS                          = 0x40107447\n\tPPPIOCSRASYNCMAP                     = 0x40047454\n\tPPPIOCSXASYNCMAP                     = 0x4020744f\n\tPPPIOCXFERUNIT                       = 0x744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_DISABLE_TE                    = 0x5010\n\tPTRACE_ENABLE_TE                     = 0x5009\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_LAST_BREAK                = 0x5006\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_OLDSETOPTIONS                 = 0x15\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKDATA_AREA                 = 0x5003\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKTEXT_AREA                 = 0x5002\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_PEEKUSR_AREA                  = 0x5000\n\tPTRACE_PEEK_SYSTEM_CALL              = 0x5007\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKEDATA_AREA                 = 0x5005\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKETEXT_AREA                 = 0x5004\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_POKEUSR_AREA                  = 0x5001\n\tPTRACE_POKE_SYSTEM_CALL              = 0x5008\n\tPTRACE_PROT                          = 0x15\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SINGLEBLOCK                   = 0xc\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TE_ABORT_RAND                 = 0x5011\n\tPTRACE_TRACEME                       = 0x0\n\tPT_ACR0                              = 0x90\n\tPT_ACR1                              = 0x94\n\tPT_ACR10                             = 0xb8\n\tPT_ACR11                             = 0xbc\n\tPT_ACR12                             = 0xc0\n\tPT_ACR13                             = 0xc4\n\tPT_ACR14                             = 0xc8\n\tPT_ACR15                             = 0xcc\n\tPT_ACR2                              = 0x98\n\tPT_ACR3                              = 0x9c\n\tPT_ACR4                              = 0xa0\n\tPT_ACR5                              = 0xa4\n\tPT_ACR6                              = 0xa8\n\tPT_ACR7                              = 0xac\n\tPT_ACR8                              = 0xb0\n\tPT_ACR9                              = 0xb4\n\tPT_CR_10                             = 0x168\n\tPT_CR_11                             = 0x170\n\tPT_CR_9                              = 0x160\n\tPT_ENDREGS                           = 0x1af\n\tPT_FPC                               = 0xd8\n\tPT_FPR0                              = 0xe0\n\tPT_FPR1                              = 0xe8\n\tPT_FPR10                             = 0x130\n\tPT_FPR11                             = 0x138\n\tPT_FPR12                             = 0x140\n\tPT_FPR13                             = 0x148\n\tPT_FPR14                             = 0x150\n\tPT_FPR15                             = 0x158\n\tPT_FPR2                              = 0xf0\n\tPT_FPR3                              = 0xf8\n\tPT_FPR4                              = 0x100\n\tPT_FPR5                              = 0x108\n\tPT_FPR6                              = 0x110\n\tPT_FPR7                              = 0x118\n\tPT_FPR8                              = 0x120\n\tPT_FPR9                              = 0x128\n\tPT_GPR0                              = 0x10\n\tPT_GPR1                              = 0x18\n\tPT_GPR10                             = 0x60\n\tPT_GPR11                             = 0x68\n\tPT_GPR12                             = 0x70\n\tPT_GPR13                             = 0x78\n\tPT_GPR14                             = 0x80\n\tPT_GPR15                             = 0x88\n\tPT_GPR2                              = 0x20\n\tPT_GPR3                              = 0x28\n\tPT_GPR4                              = 0x30\n\tPT_GPR5                              = 0x38\n\tPT_GPR6                              = 0x40\n\tPT_GPR7                              = 0x48\n\tPT_GPR8                              = 0x50\n\tPT_GPR9                              = 0x58\n\tPT_IEEE_IP                           = 0x1a8\n\tPT_LASTOFF                           = 0x1a8\n\tPT_ORIGGPR2                          = 0xd0\n\tPT_PSWADDR                           = 0x8\n\tPT_PSWMASK                           = 0x0\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x7\n\tRLIMIT_NPROC                         = 0x6\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x40085203\n\tRNDADDTOENTCNT                       = 0x40045201\n\tRNDCLEARPOOL                         = 0x5206\n\tRNDGETENTCNT                         = 0x80045200\n\tRNDGETPOOL                           = 0x80085202\n\tRNDRESEEDCRNG                        = 0x5207\n\tRNDZAPENTCNT                         = 0x5204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x7002\n\tRTC_AIE_ON                           = 0x7001\n\tRTC_ALM_READ                         = 0x80247008\n\tRTC_ALM_SET                          = 0x40247007\n\tRTC_EPOCH_READ                       = 0x8008700d\n\tRTC_EPOCH_SET                        = 0x4008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x8008700b\n\tRTC_IRQP_SET                         = 0x4008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x7006\n\tRTC_PIE_ON                           = 0x7005\n\tRTC_PLL_GET                          = 0x80207011\n\tRTC_PLL_SET                          = 0x40207012\n\tRTC_RD_TIME                          = 0x80247009\n\tRTC_SET_TIME                         = 0x4024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x7004\n\tRTC_UIE_ON                           = 0x7003\n\tRTC_VL_CLR                           = 0x7014\n\tRTC_VL_READ                          = 0x80047013\n\tRTC_WIE_OFF                          = 0x7010\n\tRTC_WIE_ON                           = 0x700f\n\tRTC_WKALM_RD                         = 0x80287010\n\tRTC_WKALM_SET                        = 0x4028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x36\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3a\n\tSCM_TIMESTAMPNS                      = 0x23\n\tSCM_TXTIME                           = 0x3d\n\tSCM_WIFI_STATUS                      = 0x29\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x80000\n\tSFD_NONBLOCK                         = 0x800\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x80108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x80108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x541b\n\tSIOCOUTQ                             = 0x5411\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x80000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x800\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0x1\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x1e\n\tSO_ATTACH_BPF                        = 0x32\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x34\n\tSO_BINDTODEVICE                      = 0x19\n\tSO_BINDTOIFINDEX                     = 0x3e\n\tSO_BPF_EXTENSIONS                    = 0x30\n\tSO_BROADCAST                         = 0x6\n\tSO_BSDCOMPAT                         = 0xe\n\tSO_BUSY_POLL                         = 0x2e\n\tSO_CNX_ADVICE                        = 0x35\n\tSO_COOKIE                            = 0x39\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x44\n\tSO_DOMAIN                            = 0x27\n\tSO_DONTROUTE                         = 0x5\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x4\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x31\n\tSO_INCOMING_NAPI_ID                  = 0x38\n\tSO_KEEPALIVE                         = 0x9\n\tSO_LINGER                            = 0xd\n\tSO_LOCK_FILTER                       = 0x2c\n\tSO_MARK                              = 0x24\n\tSO_MAX_PACING_RATE                   = 0x2f\n\tSO_MEMINFO                           = 0x37\n\tSO_NOFCS                             = 0x2b\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0xa\n\tSO_PASSCRED                          = 0x10\n\tSO_PASSSEC                           = 0x22\n\tSO_PEEK_OFF                          = 0x2a\n\tSO_PEERCRED                          = 0x11\n\tSO_PEERGROUPS                        = 0x3b\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1f\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x26\n\tSO_RCVBUF                            = 0x8\n\tSO_RCVBUFFORCE                       = 0x21\n\tSO_RCVLOWAT                          = 0x12\n\tSO_RCVTIMEO                          = 0x14\n\tSO_RCVTIMEO_NEW                      = 0x42\n\tSO_RCVTIMEO_OLD                      = 0x14\n\tSO_REUSEADDR                         = 0x2\n\tSO_REUSEPORT                         = 0xf\n\tSO_RXQ_OVFL                          = 0x28\n\tSO_SECURITY_AUTHENTICATION           = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x17\n\tSO_SELECT_ERR_QUEUE                  = 0x2d\n\tSO_SNDBUF                            = 0x7\n\tSO_SNDBUFFORCE                       = 0x20\n\tSO_SNDLOWAT                          = 0x13\n\tSO_SNDTIMEO                          = 0x15\n\tSO_SNDTIMEO_NEW                      = 0x43\n\tSO_SNDTIMEO_OLD                      = 0x15\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x25\n\tSO_TIMESTAMPING_NEW                  = 0x41\n\tSO_TIMESTAMPING_OLD                  = 0x25\n\tSO_TIMESTAMPNS                       = 0x23\n\tSO_TIMESTAMPNS_NEW                   = 0x40\n\tSO_TIMESTAMPNS_OLD                   = 0x23\n\tSO_TIMESTAMP_NEW                     = 0x3f\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3d\n\tSO_TYPE                              = 0x3\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x29\n\tSO_ZEROCOPY                          = 0x3c\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x540b\n\tTCGETA                               = 0x5405\n\tTCGETS                               = 0x5401\n\tTCGETS2                              = 0x802c542a\n\tTCGETX                               = 0x5432\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x5409\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x5406\n\tTCSETAF                              = 0x5408\n\tTCSETAW                              = 0x5407\n\tTCSETS                               = 0x5402\n\tTCSETS2                              = 0x402c542b\n\tTCSETSF                              = 0x5404\n\tTCSETSF2                             = 0x402c542d\n\tTCSETSW                              = 0x5403\n\tTCSETSW2                             = 0x402c542c\n\tTCSETX                               = 0x5433\n\tTCSETXF                              = 0x5434\n\tTCSETXW                              = 0x5435\n\tTCXONC                               = 0x540a\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x5428\n\tTIOCCONS                             = 0x541d\n\tTIOCEXCL                             = 0x540c\n\tTIOCGDEV                             = 0x80045432\n\tTIOCGETD                             = 0x5424\n\tTIOCGEXCL                            = 0x80045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x80285442\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x540f\n\tTIOCGPKT                             = 0x80045438\n\tTIOCGPTLCK                           = 0x80045439\n\tTIOCGPTN                             = 0x80045430\n\tTIOCGPTPEER                          = 0x5441\n\tTIOCGRS485                           = 0x542e\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x5429\n\tTIOCGSOFTCAR                         = 0x5419\n\tTIOCGWINSZ                           = 0x5413\n\tTIOCINQ                              = 0x541b\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x5417\n\tTIOCMBIS                             = 0x5416\n\tTIOCMGET                             = 0x5415\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x5418\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x5422\n\tTIOCNXCL                             = 0x540d\n\tTIOCOUTQ                             = 0x5411\n\tTIOCPKT                              = 0x5420\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x5427\n\tTIOCSCTTY                            = 0x540e\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSER_TEMT                         = 0x1\n\tTIOCSETD                             = 0x5423\n\tTIOCSIG                              = 0x40045436\n\tTIOCSISO7816                         = 0xc0285443\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x5410\n\tTIOCSPTLCK                           = 0x40045431\n\tTIOCSRS485                           = 0x542f\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x541a\n\tTIOCSTI                              = 0x5412\n\tTIOCSWINSZ                           = 0x5414\n\tTIOCVHANGUP                          = 0x5437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x401054d5\n\tTUNDETACHFILTER                      = 0x401054d6\n\tTUNGETDEVNETNS                       = 0x54e3\n\tTUNGETFEATURES                       = 0x800454cf\n\tTUNGETFILTER                         = 0x801054db\n\tTUNGETIFF                            = 0x800454d2\n\tTUNGETSNDBUF                         = 0x800454d3\n\tTUNGETVNETBE                         = 0x800454df\n\tTUNGETVNETHDRSZ                      = 0x800454d7\n\tTUNGETVNETLE                         = 0x800454dd\n\tTUNSETCARRIER                        = 0x400454e2\n\tTUNSETDEBUG                          = 0x400454c9\n\tTUNSETFILTEREBPF                     = 0x800454e1\n\tTUNSETGROUP                          = 0x400454ce\n\tTUNSETIFF                            = 0x400454ca\n\tTUNSETIFINDEX                        = 0x400454da\n\tTUNSETLINK                           = 0x400454cd\n\tTUNSETNOCSUM                         = 0x400454c8\n\tTUNSETOFFLOAD                        = 0x400454d0\n\tTUNSETOWNER                          = 0x400454cc\n\tTUNSETPERSIST                        = 0x400454cb\n\tTUNSETQUEUE                          = 0x400454d9\n\tTUNSETSNDBUF                         = 0x400454d4\n\tTUNSETSTEERINGEBPF                   = 0x800454e0\n\tTUNSETTXFILTER                       = 0x400454d1\n\tTUNSETVNETBE                         = 0x400454de\n\tTUNSETVNETHDRSZ                      = 0x400454d8\n\tTUNSETVNETLE                         = 0x400454dc\n\tUBI_IOCATT                           = 0x40186f40\n\tUBI_IOCDET                           = 0x40046f41\n\tUBI_IOCEBCH                          = 0x40044f02\n\tUBI_IOCEBER                          = 0x40044f01\n\tUBI_IOCEBISMAP                       = 0x80044f05\n\tUBI_IOCEBMAP                         = 0x40084f03\n\tUBI_IOCEBUNMAP                       = 0x40044f04\n\tUBI_IOCMKVOL                         = 0x40986f00\n\tUBI_IOCRMVOL                         = 0x40046f01\n\tUBI_IOCRNVOL                         = 0x51106f03\n\tUBI_IOCRPEB                          = 0x40046f04\n\tUBI_IOCRSVOL                         = 0x400c6f02\n\tUBI_IOCSETVOLPROP                    = 0x40104f06\n\tUBI_IOCSPEB                          = 0x40046f05\n\tUBI_IOCVOLCRBLK                      = 0x40804f07\n\tUBI_IOCVOLRMBLK                      = 0x4f08\n\tUBI_IOCVOLUP                         = 0x40084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x80045702\n\tWDIOC_GETPRETIMEOUT                  = 0x80045709\n\tWDIOC_GETSTATUS                      = 0x80045701\n\tWDIOC_GETSUPPORT                     = 0x80285700\n\tWDIOC_GETTEMP                        = 0x80045703\n\tWDIOC_GETTIMELEFT                    = 0x8004570a\n\tWDIOC_GETTIMEOUT                     = 0x80045707\n\tWDIOC_KEEPALIVE                      = 0x80045705\n\tWDIOC_SETOPTIONS                     = 0x80045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build sparc64,linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                           = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                     = 0xadf5\n\tAFFS_SUPER_MAGIC                     = 0xadff\n\tAFS_FS_MAGIC                         = 0x6b414653\n\tAFS_SUPER_MAGIC                      = 0x5346414f\n\tAF_ALG                               = 0x26\n\tAF_APPLETALK                         = 0x5\n\tAF_ASH                               = 0x12\n\tAF_ATMPVC                            = 0x8\n\tAF_ATMSVC                            = 0x14\n\tAF_AX25                              = 0x3\n\tAF_BLUETOOTH                         = 0x1f\n\tAF_BRIDGE                            = 0x7\n\tAF_CAIF                              = 0x25\n\tAF_CAN                               = 0x1d\n\tAF_DECnet                            = 0xc\n\tAF_ECONET                            = 0x13\n\tAF_FILE                              = 0x1\n\tAF_IB                                = 0x1b\n\tAF_IEEE802154                        = 0x24\n\tAF_INET                              = 0x2\n\tAF_INET6                             = 0xa\n\tAF_IPX                               = 0x4\n\tAF_IRDA                              = 0x17\n\tAF_ISDN                              = 0x22\n\tAF_IUCV                              = 0x20\n\tAF_KCM                               = 0x29\n\tAF_KEY                               = 0xf\n\tAF_LLC                               = 0x1a\n\tAF_LOCAL                             = 0x1\n\tAF_MAX                               = 0x2d\n\tAF_MPLS                              = 0x1c\n\tAF_NETBEUI                           = 0xd\n\tAF_NETLINK                           = 0x10\n\tAF_NETROM                            = 0x6\n\tAF_NFC                               = 0x27\n\tAF_PACKET                            = 0x11\n\tAF_PHONET                            = 0x23\n\tAF_PPPOX                             = 0x18\n\tAF_QIPCRTR                           = 0x2a\n\tAF_RDS                               = 0x15\n\tAF_ROSE                              = 0xb\n\tAF_ROUTE                             = 0x10\n\tAF_RXRPC                             = 0x21\n\tAF_SECURITY                          = 0xe\n\tAF_SMC                               = 0x2b\n\tAF_SNA                               = 0x16\n\tAF_TIPC                              = 0x1e\n\tAF_UNIX                              = 0x1\n\tAF_UNSPEC                            = 0x0\n\tAF_VSOCK                             = 0x28\n\tAF_WANPIPE                           = 0x19\n\tAF_X25                               = 0x9\n\tAF_XDP                               = 0x2c\n\tALG_OP_DECRYPT                       = 0x0\n\tALG_OP_ENCRYPT                       = 0x1\n\tALG_SET_AEAD_ASSOCLEN                = 0x4\n\tALG_SET_AEAD_AUTHSIZE                = 0x5\n\tALG_SET_IV                           = 0x2\n\tALG_SET_KEY                          = 0x1\n\tALG_SET_OP                           = 0x3\n\tANON_INODE_FS_MAGIC                  = 0x9041934\n\tARPHRD_6LOWPAN                       = 0x339\n\tARPHRD_ADAPT                         = 0x108\n\tARPHRD_APPLETLK                      = 0x8\n\tARPHRD_ARCNET                        = 0x7\n\tARPHRD_ASH                           = 0x30d\n\tARPHRD_ATM                           = 0x13\n\tARPHRD_AX25                          = 0x3\n\tARPHRD_BIF                           = 0x307\n\tARPHRD_CAIF                          = 0x336\n\tARPHRD_CAN                           = 0x118\n\tARPHRD_CHAOS                         = 0x5\n\tARPHRD_CISCO                         = 0x201\n\tARPHRD_CSLIP                         = 0x101\n\tARPHRD_CSLIP6                        = 0x103\n\tARPHRD_DDCMP                         = 0x205\n\tARPHRD_DLCI                          = 0xf\n\tARPHRD_ECONET                        = 0x30e\n\tARPHRD_EETHER                        = 0x2\n\tARPHRD_ETHER                         = 0x1\n\tARPHRD_EUI64                         = 0x1b\n\tARPHRD_FCAL                          = 0x311\n\tARPHRD_FCFABRIC                      = 0x313\n\tARPHRD_FCPL                          = 0x312\n\tARPHRD_FCPP                          = 0x310\n\tARPHRD_FDDI                          = 0x306\n\tARPHRD_FRAD                          = 0x302\n\tARPHRD_HDLC                          = 0x201\n\tARPHRD_HIPPI                         = 0x30c\n\tARPHRD_HWX25                         = 0x110\n\tARPHRD_IEEE1394                      = 0x18\n\tARPHRD_IEEE802                       = 0x6\n\tARPHRD_IEEE80211                     = 0x321\n\tARPHRD_IEEE80211_PRISM               = 0x322\n\tARPHRD_IEEE80211_RADIOTAP            = 0x323\n\tARPHRD_IEEE802154                    = 0x324\n\tARPHRD_IEEE802154_MONITOR            = 0x325\n\tARPHRD_IEEE802_TR                    = 0x320\n\tARPHRD_INFINIBAND                    = 0x20\n\tARPHRD_IP6GRE                        = 0x337\n\tARPHRD_IPDDP                         = 0x309\n\tARPHRD_IPGRE                         = 0x30a\n\tARPHRD_IRDA                          = 0x30f\n\tARPHRD_LAPB                          = 0x204\n\tARPHRD_LOCALTLK                      = 0x305\n\tARPHRD_LOOPBACK                      = 0x304\n\tARPHRD_METRICOM                      = 0x17\n\tARPHRD_NETLINK                       = 0x338\n\tARPHRD_NETROM                        = 0x0\n\tARPHRD_NONE                          = 0xfffe\n\tARPHRD_PHONET                        = 0x334\n\tARPHRD_PHONET_PIPE                   = 0x335\n\tARPHRD_PIMREG                        = 0x30b\n\tARPHRD_PPP                           = 0x200\n\tARPHRD_PRONET                        = 0x4\n\tARPHRD_RAWHDLC                       = 0x206\n\tARPHRD_RAWIP                         = 0x207\n\tARPHRD_ROSE                          = 0x10e\n\tARPHRD_RSRVD                         = 0x104\n\tARPHRD_SIT                           = 0x308\n\tARPHRD_SKIP                          = 0x303\n\tARPHRD_SLIP                          = 0x100\n\tARPHRD_SLIP6                         = 0x102\n\tARPHRD_TUNNEL                        = 0x300\n\tARPHRD_TUNNEL6                       = 0x301\n\tARPHRD_VOID                          = 0xffff\n\tARPHRD_VSOCKMON                      = 0x33a\n\tARPHRD_X25                           = 0x10f\n\tASI_LEON_DFLUSH                      = 0x11\n\tASI_LEON_IFLUSH                      = 0x10\n\tASI_LEON_MMUFLUSH                    = 0x18\n\tAUTOFS_SUPER_MAGIC                   = 0x187\n\tB0                                   = 0x0\n\tB1000000                             = 0x1008\n\tB110                                 = 0x3\n\tB115200                              = 0x1002\n\tB1152000                             = 0x1009\n\tB1200                                = 0x9\n\tB134                                 = 0x4\n\tB150                                 = 0x5\n\tB1500000                             = 0x100a\n\tB1800                                = 0xa\n\tB19200                               = 0xe\n\tB200                                 = 0x6\n\tB2000000                             = 0x100b\n\tB230400                              = 0x1003\n\tB2400                                = 0xb\n\tB2500000                             = 0x100c\n\tB300                                 = 0x7\n\tB3000000                             = 0x100d\n\tB3500000                             = 0x100e\n\tB38400                               = 0xf\n\tB4000000                             = 0x100f\n\tB460800                              = 0x1004\n\tB4800                                = 0xc\n\tB50                                  = 0x1\n\tB500000                              = 0x1005\n\tB57600                               = 0x1001\n\tB576000                              = 0x1006\n\tB600                                 = 0x8\n\tB75                                  = 0x2\n\tB921600                              = 0x1007\n\tB9600                                = 0xd\n\tBALLOON_KVM_MAGIC                    = 0x13661366\n\tBDEVFS_MAGIC                         = 0x62646576\n\tBINDERFS_SUPER_MAGIC                 = 0x6c6f6f70\n\tBINFMTFS_MAGIC                       = 0x42494e4d\n\tBLKBSZGET                            = 0x40081270\n\tBLKBSZSET                            = 0x80081271\n\tBLKFLSBUF                            = 0x20001261\n\tBLKFRAGET                            = 0x20001265\n\tBLKFRASET                            = 0x20001264\n\tBLKGETSIZE                           = 0x20001260\n\tBLKGETSIZE64                         = 0x40081272\n\tBLKPBSZGET                           = 0x2000127b\n\tBLKRAGET                             = 0x20001263\n\tBLKRASET                             = 0x20001262\n\tBLKROGET                             = 0x2000125e\n\tBLKROSET                             = 0x2000125d\n\tBLKRRPART                            = 0x2000125f\n\tBLKSECTGET                           = 0x20001267\n\tBLKSECTSET                           = 0x20001266\n\tBLKSSZGET                            = 0x20001268\n\tBOTHER                               = 0x1000\n\tBPF_A                                = 0x10\n\tBPF_ABS                              = 0x20\n\tBPF_ADD                              = 0x0\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK           = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT          = 0x38\n\tBPF_ALU                              = 0x4\n\tBPF_ALU64                            = 0x7\n\tBPF_AND                              = 0x50\n\tBPF_ANY                              = 0x0\n\tBPF_ARSH                             = 0xc0\n\tBPF_B                                = 0x10\n\tBPF_BUILD_ID_SIZE                    = 0x14\n\tBPF_CALL                             = 0x80\n\tBPF_DEVCG_ACC_MKNOD                  = 0x1\n\tBPF_DEVCG_ACC_READ                   = 0x2\n\tBPF_DEVCG_ACC_WRITE                  = 0x4\n\tBPF_DEVCG_DEV_BLOCK                  = 0x1\n\tBPF_DEVCG_DEV_CHAR                   = 0x2\n\tBPF_DIV                              = 0x30\n\tBPF_DW                               = 0x18\n\tBPF_END                              = 0xd0\n\tBPF_EXIST                            = 0x2\n\tBPF_EXIT                             = 0x90\n\tBPF_FROM_BE                          = 0x8\n\tBPF_FROM_LE                          = 0x0\n\tBPF_FS_MAGIC                         = 0xcafe4a11\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4         = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6         = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE          = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP          = 0x10\n\tBPF_F_ADJ_ROOM_FIXED_GSO             = 0x1\n\tBPF_F_ALLOW_MULTI                    = 0x2\n\tBPF_F_ALLOW_OVERRIDE                 = 0x1\n\tBPF_F_ANY_ALIGNMENT                  = 0x2\n\tBPF_F_CTXLEN_MASK                    = 0xfffff00000000\n\tBPF_F_CURRENT_CPU                    = 0xffffffff\n\tBPF_F_CURRENT_NETNS                  = -0x1\n\tBPF_F_DONT_FRAGMENT                  = 0x4\n\tBPF_F_FAST_STACK_CMP                 = 0x200\n\tBPF_F_HDR_FIELD_MASK                 = 0xf\n\tBPF_F_INDEX_MASK                     = 0xffffffff\n\tBPF_F_INGRESS                        = 0x1\n\tBPF_F_INVALIDATE_HASH                = 0x2\n\tBPF_F_LOCK                           = 0x4\n\tBPF_F_MARK_ENFORCE                   = 0x40\n\tBPF_F_MARK_MANGLED_0                 = 0x20\n\tBPF_F_NO_COMMON_LRU                  = 0x2\n\tBPF_F_NO_PREALLOC                    = 0x1\n\tBPF_F_NUMA_NODE                      = 0x4\n\tBPF_F_PSEUDO_HDR                     = 0x10\n\tBPF_F_QUERY_EFFECTIVE                = 0x1\n\tBPF_F_RDONLY                         = 0x8\n\tBPF_F_RDONLY_PROG                    = 0x80\n\tBPF_F_RECOMPUTE_CSUM                 = 0x1\n\tBPF_F_REUSE_STACKID                  = 0x400\n\tBPF_F_SEQ_NUMBER                     = 0x8\n\tBPF_F_SKIP_FIELD_MASK                = 0xff\n\tBPF_F_STACK_BUILD_ID                 = 0x20\n\tBPF_F_STRICT_ALIGNMENT               = 0x1\n\tBPF_F_SYSCTL_BASE_NAME               = 0x1\n\tBPF_F_TEST_RND_HI32                  = 0x4\n\tBPF_F_TUNINFO_IPV6                   = 0x1\n\tBPF_F_USER_BUILD_ID                  = 0x800\n\tBPF_F_USER_STACK                     = 0x100\n\tBPF_F_WRONLY                         = 0x10\n\tBPF_F_WRONLY_PROG                    = 0x100\n\tBPF_F_ZERO_CSUM_TX                   = 0x2\n\tBPF_F_ZERO_SEED                      = 0x40\n\tBPF_H                                = 0x8\n\tBPF_IMM                              = 0x0\n\tBPF_IND                              = 0x40\n\tBPF_JA                               = 0x0\n\tBPF_JEQ                              = 0x10\n\tBPF_JGE                              = 0x30\n\tBPF_JGT                              = 0x20\n\tBPF_JLE                              = 0xb0\n\tBPF_JLT                              = 0xa0\n\tBPF_JMP                              = 0x5\n\tBPF_JMP32                            = 0x6\n\tBPF_JNE                              = 0x50\n\tBPF_JSET                             = 0x40\n\tBPF_JSGE                             = 0x70\n\tBPF_JSGT                             = 0x60\n\tBPF_JSLE                             = 0xd0\n\tBPF_JSLT                             = 0xc0\n\tBPF_K                                = 0x0\n\tBPF_LD                               = 0x0\n\tBPF_LDX                              = 0x1\n\tBPF_LEN                              = 0x80\n\tBPF_LL_OFF                           = -0x200000\n\tBPF_LSH                              = 0x60\n\tBPF_MAJOR_VERSION                    = 0x1\n\tBPF_MAXINSNS                         = 0x1000\n\tBPF_MEM                              = 0x60\n\tBPF_MEMWORDS                         = 0x10\n\tBPF_MINOR_VERSION                    = 0x1\n\tBPF_MISC                             = 0x7\n\tBPF_MOD                              = 0x90\n\tBPF_MOV                              = 0xb0\n\tBPF_MSH                              = 0xa0\n\tBPF_MUL                              = 0x20\n\tBPF_NEG                              = 0x80\n\tBPF_NET_OFF                          = -0x100000\n\tBPF_NOEXIST                          = 0x1\n\tBPF_OBJ_NAME_LEN                     = 0x10\n\tBPF_OR                               = 0x40\n\tBPF_PSEUDO_CALL                      = 0x1\n\tBPF_PSEUDO_MAP_FD                    = 0x1\n\tBPF_PSEUDO_MAP_VALUE                 = 0x2\n\tBPF_RET                              = 0x6\n\tBPF_RSH                              = 0x70\n\tBPF_SK_STORAGE_GET_F_CREATE          = 0x1\n\tBPF_SOCK_OPS_ALL_CB_FLAGS            = 0xf\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG         = 0x2\n\tBPF_SOCK_OPS_RTO_CB_FLAG             = 0x1\n\tBPF_SOCK_OPS_RTT_CB_FLAG             = 0x8\n\tBPF_SOCK_OPS_STATE_CB_FLAG           = 0x4\n\tBPF_ST                               = 0x2\n\tBPF_STX                              = 0x3\n\tBPF_SUB                              = 0x10\n\tBPF_TAG_SIZE                         = 0x8\n\tBPF_TAX                              = 0x0\n\tBPF_TO_BE                            = 0x8\n\tBPF_TO_LE                            = 0x0\n\tBPF_TXA                              = 0x80\n\tBPF_W                                = 0x0\n\tBPF_X                                = 0x8\n\tBPF_XADD                             = 0xc0\n\tBPF_XOR                              = 0xa0\n\tBRKINT                               = 0x2\n\tBS0                                  = 0x0\n\tBS1                                  = 0x2000\n\tBSDLY                                = 0x2000\n\tBTRFS_SUPER_MAGIC                    = 0x9123683e\n\tBTRFS_TEST_MAGIC                     = 0x73727279\n\tCAN_BCM                              = 0x2\n\tCAN_EFF_FLAG                         = 0x80000000\n\tCAN_EFF_ID_BITS                      = 0x1d\n\tCAN_EFF_MASK                         = 0x1fffffff\n\tCAN_ERR_FLAG                         = 0x20000000\n\tCAN_ERR_MASK                         = 0x1fffffff\n\tCAN_INV_FILTER                       = 0x20000000\n\tCAN_ISOTP                            = 0x6\n\tCAN_MAX_DLC                          = 0x8\n\tCAN_MAX_DLEN                         = 0x8\n\tCAN_MCNET                            = 0x5\n\tCAN_MTU                              = 0x10\n\tCAN_NPROTO                           = 0x7\n\tCAN_RAW                              = 0x1\n\tCAN_RAW_FILTER_MAX                   = 0x200\n\tCAN_RTR_FLAG                         = 0x40000000\n\tCAN_SFF_ID_BITS                      = 0xb\n\tCAN_SFF_MASK                         = 0x7ff\n\tCAN_TP16                             = 0x3\n\tCAN_TP20                             = 0x4\n\tCAP_AUDIT_CONTROL                    = 0x1e\n\tCAP_AUDIT_READ                       = 0x25\n\tCAP_AUDIT_WRITE                      = 0x1d\n\tCAP_BLOCK_SUSPEND                    = 0x24\n\tCAP_CHOWN                            = 0x0\n\tCAP_DAC_OVERRIDE                     = 0x1\n\tCAP_DAC_READ_SEARCH                  = 0x2\n\tCAP_FOWNER                           = 0x3\n\tCAP_FSETID                           = 0x4\n\tCAP_IPC_LOCK                         = 0xe\n\tCAP_IPC_OWNER                        = 0xf\n\tCAP_KILL                             = 0x5\n\tCAP_LAST_CAP                         = 0x25\n\tCAP_LEASE                            = 0x1c\n\tCAP_LINUX_IMMUTABLE                  = 0x9\n\tCAP_MAC_ADMIN                        = 0x21\n\tCAP_MAC_OVERRIDE                     = 0x20\n\tCAP_MKNOD                            = 0x1b\n\tCAP_NET_ADMIN                        = 0xc\n\tCAP_NET_BIND_SERVICE                 = 0xa\n\tCAP_NET_BROADCAST                    = 0xb\n\tCAP_NET_RAW                          = 0xd\n\tCAP_SETFCAP                          = 0x1f\n\tCAP_SETGID                           = 0x6\n\tCAP_SETPCAP                          = 0x8\n\tCAP_SETUID                           = 0x7\n\tCAP_SYSLOG                           = 0x22\n\tCAP_SYS_ADMIN                        = 0x15\n\tCAP_SYS_BOOT                         = 0x16\n\tCAP_SYS_CHROOT                       = 0x12\n\tCAP_SYS_MODULE                       = 0x10\n\tCAP_SYS_NICE                         = 0x17\n\tCAP_SYS_PACCT                        = 0x14\n\tCAP_SYS_PTRACE                       = 0x13\n\tCAP_SYS_RAWIO                        = 0x11\n\tCAP_SYS_RESOURCE                     = 0x18\n\tCAP_SYS_TIME                         = 0x19\n\tCAP_SYS_TTY_CONFIG                   = 0x1a\n\tCAP_WAKE_ALARM                       = 0x23\n\tCBAUD                                = 0x100f\n\tCBAUDEX                              = 0x1000\n\tCFLUSH                               = 0xf\n\tCGROUP2_SUPER_MAGIC                  = 0x63677270\n\tCGROUP_SUPER_MAGIC                   = 0x27e0eb\n\tCIBAUD                               = 0x100f0000\n\tCLOCAL                               = 0x800\n\tCLOCK_BOOTTIME                       = 0x7\n\tCLOCK_BOOTTIME_ALARM                 = 0x9\n\tCLOCK_DEFAULT                        = 0x0\n\tCLOCK_EXT                            = 0x1\n\tCLOCK_INT                            = 0x2\n\tCLOCK_MONOTONIC                      = 0x1\n\tCLOCK_MONOTONIC_COARSE               = 0x6\n\tCLOCK_MONOTONIC_RAW                  = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID             = 0x2\n\tCLOCK_REALTIME                       = 0x0\n\tCLOCK_REALTIME_ALARM                 = 0x8\n\tCLOCK_REALTIME_COARSE                = 0x5\n\tCLOCK_TAI                            = 0xb\n\tCLOCK_THREAD_CPUTIME_ID              = 0x3\n\tCLOCK_TXFROMRX                       = 0x4\n\tCLOCK_TXINT                          = 0x3\n\tCLONE_CHILD_CLEARTID                 = 0x200000\n\tCLONE_CHILD_SETTID                   = 0x1000000\n\tCLONE_DETACHED                       = 0x400000\n\tCLONE_FILES                          = 0x400\n\tCLONE_FS                             = 0x200\n\tCLONE_IO                             = 0x80000000\n\tCLONE_NEWCGROUP                      = 0x2000000\n\tCLONE_NEWIPC                         = 0x8000000\n\tCLONE_NEWNET                         = 0x40000000\n\tCLONE_NEWNS                          = 0x20000\n\tCLONE_NEWPID                         = 0x20000000\n\tCLONE_NEWUSER                        = 0x10000000\n\tCLONE_NEWUTS                         = 0x4000000\n\tCLONE_PARENT                         = 0x8000\n\tCLONE_PARENT_SETTID                  = 0x100000\n\tCLONE_PIDFD                          = 0x1000\n\tCLONE_PTRACE                         = 0x2000\n\tCLONE_SETTLS                         = 0x80000\n\tCLONE_SIGHAND                        = 0x800\n\tCLONE_SYSVSEM                        = 0x40000\n\tCLONE_THREAD                         = 0x10000\n\tCLONE_UNTRACED                       = 0x800000\n\tCLONE_VFORK                          = 0x4000\n\tCLONE_VM                             = 0x100\n\tCMSPAR                               = 0x40000000\n\tCODA_SUPER_MAGIC                     = 0x73757245\n\tCR0                                  = 0x0\n\tCR1                                  = 0x200\n\tCR2                                  = 0x400\n\tCR3                                  = 0x600\n\tCRAMFS_MAGIC                         = 0x28cd3d45\n\tCRDLY                                = 0x600\n\tCREAD                                = 0x80\n\tCRTSCTS                              = 0x80000000\n\tCRYPTO_MAX_NAME                      = 0x40\n\tCRYPTO_MSG_MAX                       = 0x15\n\tCRYPTO_NR_MSGTYPES                   = 0x6\n\tCRYPTO_REPORT_MAXSIZE                = 0x160\n\tCS5                                  = 0x0\n\tCS6                                  = 0x10\n\tCS7                                  = 0x20\n\tCS8                                  = 0x30\n\tCSIGNAL                              = 0xff\n\tCSIZE                                = 0x30\n\tCSTART                               = 0x11\n\tCSTATUS                              = 0x0\n\tCSTOP                                = 0x13\n\tCSTOPB                               = 0x40\n\tCSUSP                                = 0x1a\n\tDAXFS_MAGIC                          = 0x64646178\n\tDEBUGFS_MAGIC                        = 0x64626720\n\tDEVPTS_SUPER_MAGIC                   = 0x1cd1\n\tDMA_BUF_MAGIC                        = 0x444d4142\n\tDT_BLK                               = 0x6\n\tDT_CHR                               = 0x2\n\tDT_DIR                               = 0x4\n\tDT_FIFO                              = 0x1\n\tDT_LNK                               = 0xa\n\tDT_REG                               = 0x8\n\tDT_SOCK                              = 0xc\n\tDT_UNKNOWN                           = 0x0\n\tDT_WHT                               = 0xe\n\tECHO                                 = 0x8\n\tECHOCTL                              = 0x200\n\tECHOE                                = 0x10\n\tECHOK                                = 0x20\n\tECHOKE                               = 0x800\n\tECHONL                               = 0x40\n\tECHOPRT                              = 0x400\n\tECRYPTFS_SUPER_MAGIC                 = 0xf15f\n\tEFD_CLOEXEC                          = 0x400000\n\tEFD_NONBLOCK                         = 0x4000\n\tEFD_SEMAPHORE                        = 0x1\n\tEFIVARFS_MAGIC                       = 0xde5e81e4\n\tEFS_SUPER_MAGIC                      = 0x414a53\n\tEMT_TAGOVF                           = 0x1\n\tENCODING_DEFAULT                     = 0x0\n\tENCODING_FM_MARK                     = 0x3\n\tENCODING_FM_SPACE                    = 0x4\n\tENCODING_MANCHESTER                  = 0x5\n\tENCODING_NRZ                         = 0x1\n\tENCODING_NRZI                        = 0x2\n\tEPOLLERR                             = 0x8\n\tEPOLLET                              = 0x80000000\n\tEPOLLEXCLUSIVE                       = 0x10000000\n\tEPOLLHUP                             = 0x10\n\tEPOLLIN                              = 0x1\n\tEPOLLMSG                             = 0x400\n\tEPOLLONESHOT                         = 0x40000000\n\tEPOLLOUT                             = 0x4\n\tEPOLLPRI                             = 0x2\n\tEPOLLRDBAND                          = 0x80\n\tEPOLLRDHUP                           = 0x2000\n\tEPOLLRDNORM                          = 0x40\n\tEPOLLWAKEUP                          = 0x20000000\n\tEPOLLWRBAND                          = 0x200\n\tEPOLLWRNORM                          = 0x100\n\tEPOLL_CLOEXEC                        = 0x400000\n\tEPOLL_CTL_ADD                        = 0x1\n\tEPOLL_CTL_DEL                        = 0x2\n\tEPOLL_CTL_MOD                        = 0x3\n\tETH_P_1588                           = 0x88f7\n\tETH_P_8021AD                         = 0x88a8\n\tETH_P_8021AH                         = 0x88e7\n\tETH_P_8021Q                          = 0x8100\n\tETH_P_80221                          = 0x8917\n\tETH_P_802_2                          = 0x4\n\tETH_P_802_3                          = 0x1\n\tETH_P_802_3_MIN                      = 0x600\n\tETH_P_802_EX1                        = 0x88b5\n\tETH_P_AARP                           = 0x80f3\n\tETH_P_AF_IUCV                        = 0xfbfb\n\tETH_P_ALL                            = 0x3\n\tETH_P_AOE                            = 0x88a2\n\tETH_P_ARCNET                         = 0x1a\n\tETH_P_ARP                            = 0x806\n\tETH_P_ATALK                          = 0x809b\n\tETH_P_ATMFATE                        = 0x8884\n\tETH_P_ATMMPOA                        = 0x884c\n\tETH_P_AX25                           = 0x2\n\tETH_P_BATMAN                         = 0x4305\n\tETH_P_BPQ                            = 0x8ff\n\tETH_P_CAIF                           = 0xf7\n\tETH_P_CAN                            = 0xc\n\tETH_P_CANFD                          = 0xd\n\tETH_P_CONTROL                        = 0x16\n\tETH_P_CUST                           = 0x6006\n\tETH_P_DDCMP                          = 0x6\n\tETH_P_DEC                            = 0x6000\n\tETH_P_DIAG                           = 0x6005\n\tETH_P_DNA_DL                         = 0x6001\n\tETH_P_DNA_RC                         = 0x6002\n\tETH_P_DNA_RT                         = 0x6003\n\tETH_P_DSA                            = 0x1b\n\tETH_P_DSA_8021Q                      = 0xdadb\n\tETH_P_ECONET                         = 0x18\n\tETH_P_EDSA                           = 0xdada\n\tETH_P_ERSPAN                         = 0x88be\n\tETH_P_ERSPAN2                        = 0x22eb\n\tETH_P_FCOE                           = 0x8906\n\tETH_P_FIP                            = 0x8914\n\tETH_P_HDLC                           = 0x19\n\tETH_P_HSR                            = 0x892f\n\tETH_P_IBOE                           = 0x8915\n\tETH_P_IEEE802154                     = 0xf6\n\tETH_P_IEEEPUP                        = 0xa00\n\tETH_P_IEEEPUPAT                      = 0xa01\n\tETH_P_IFE                            = 0xed3e\n\tETH_P_IP                             = 0x800\n\tETH_P_IPV6                           = 0x86dd\n\tETH_P_IPX                            = 0x8137\n\tETH_P_IRDA                           = 0x17\n\tETH_P_LAT                            = 0x6004\n\tETH_P_LINK_CTL                       = 0x886c\n\tETH_P_LLDP                           = 0x88cc\n\tETH_P_LOCALTALK                      = 0x9\n\tETH_P_LOOP                           = 0x60\n\tETH_P_LOOPBACK                       = 0x9000\n\tETH_P_MACSEC                         = 0x88e5\n\tETH_P_MAP                            = 0xf9\n\tETH_P_MOBITEX                        = 0x15\n\tETH_P_MPLS_MC                        = 0x8848\n\tETH_P_MPLS_UC                        = 0x8847\n\tETH_P_MVRP                           = 0x88f5\n\tETH_P_NCSI                           = 0x88f8\n\tETH_P_NSH                            = 0x894f\n\tETH_P_PAE                            = 0x888e\n\tETH_P_PAUSE                          = 0x8808\n\tETH_P_PHONET                         = 0xf5\n\tETH_P_PPPTALK                        = 0x10\n\tETH_P_PPP_DISC                       = 0x8863\n\tETH_P_PPP_MP                         = 0x8\n\tETH_P_PPP_SES                        = 0x8864\n\tETH_P_PREAUTH                        = 0x88c7\n\tETH_P_PRP                            = 0x88fb\n\tETH_P_PUP                            = 0x200\n\tETH_P_PUPAT                          = 0x201\n\tETH_P_QINQ1                          = 0x9100\n\tETH_P_QINQ2                          = 0x9200\n\tETH_P_QINQ3                          = 0x9300\n\tETH_P_RARP                           = 0x8035\n\tETH_P_SCA                            = 0x6007\n\tETH_P_SLOW                           = 0x8809\n\tETH_P_SNAP                           = 0x5\n\tETH_P_TDLS                           = 0x890d\n\tETH_P_TEB                            = 0x6558\n\tETH_P_TIPC                           = 0x88ca\n\tETH_P_TRAILER                        = 0x1c\n\tETH_P_TR_802_2                       = 0x11\n\tETH_P_TSN                            = 0x22f0\n\tETH_P_WAN_PPP                        = 0x7\n\tETH_P_WCCP                           = 0x883e\n\tETH_P_X25                            = 0x805\n\tETH_P_XDSA                           = 0xf8\n\tEXABYTE_ENABLE_NEST                  = 0xf0\n\tEXT2_SUPER_MAGIC                     = 0xef53\n\tEXT3_SUPER_MAGIC                     = 0xef53\n\tEXT4_SUPER_MAGIC                     = 0xef53\n\tEXTA                                 = 0xe\n\tEXTB                                 = 0xf\n\tEXTPROC                              = 0x10000\n\tF2FS_SUPER_MAGIC                     = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE             = 0x8\n\tFALLOC_FL_INSERT_RANGE               = 0x20\n\tFALLOC_FL_KEEP_SIZE                  = 0x1\n\tFALLOC_FL_NO_HIDE_STALE              = 0x4\n\tFALLOC_FL_PUNCH_HOLE                 = 0x2\n\tFALLOC_FL_UNSHARE_RANGE              = 0x40\n\tFALLOC_FL_ZERO_RANGE                 = 0x10\n\tFANOTIFY_METADATA_VERSION            = 0x3\n\tFAN_ACCESS                           = 0x1\n\tFAN_ACCESS_PERM                      = 0x20000\n\tFAN_ALLOW                            = 0x1\n\tFAN_ALL_CLASS_BITS                   = 0xc\n\tFAN_ALL_EVENTS                       = 0x3b\n\tFAN_ALL_INIT_FLAGS                   = 0x3f\n\tFAN_ALL_MARK_FLAGS                   = 0xff\n\tFAN_ALL_OUTGOING_EVENTS              = 0x3403b\n\tFAN_ALL_PERM_EVENTS                  = 0x30000\n\tFAN_ATTRIB                           = 0x4\n\tFAN_AUDIT                            = 0x10\n\tFAN_CLASS_CONTENT                    = 0x4\n\tFAN_CLASS_NOTIF                      = 0x0\n\tFAN_CLASS_PRE_CONTENT                = 0x8\n\tFAN_CLOEXEC                          = 0x1\n\tFAN_CLOSE                            = 0x18\n\tFAN_CLOSE_NOWRITE                    = 0x10\n\tFAN_CLOSE_WRITE                      = 0x8\n\tFAN_CREATE                           = 0x100\n\tFAN_DELETE                           = 0x200\n\tFAN_DELETE_SELF                      = 0x400\n\tFAN_DENY                             = 0x2\n\tFAN_ENABLE_AUDIT                     = 0x40\n\tFAN_EVENT_INFO_TYPE_FID              = 0x1\n\tFAN_EVENT_METADATA_LEN               = 0x18\n\tFAN_EVENT_ON_CHILD                   = 0x8000000\n\tFAN_MARK_ADD                         = 0x1\n\tFAN_MARK_DONT_FOLLOW                 = 0x4\n\tFAN_MARK_FILESYSTEM                  = 0x100\n\tFAN_MARK_FLUSH                       = 0x80\n\tFAN_MARK_IGNORED_MASK                = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY         = 0x40\n\tFAN_MARK_INODE                       = 0x0\n\tFAN_MARK_MOUNT                       = 0x10\n\tFAN_MARK_ONLYDIR                     = 0x8\n\tFAN_MARK_REMOVE                      = 0x2\n\tFAN_MODIFY                           = 0x2\n\tFAN_MOVE                             = 0xc0\n\tFAN_MOVED_FROM                       = 0x40\n\tFAN_MOVED_TO                         = 0x80\n\tFAN_MOVE_SELF                        = 0x800\n\tFAN_NOFD                             = -0x1\n\tFAN_NONBLOCK                         = 0x2\n\tFAN_ONDIR                            = 0x40000000\n\tFAN_OPEN                             = 0x20\n\tFAN_OPEN_EXEC                        = 0x1000\n\tFAN_OPEN_EXEC_PERM                   = 0x40000\n\tFAN_OPEN_PERM                        = 0x10000\n\tFAN_Q_OVERFLOW                       = 0x4000\n\tFAN_REPORT_FID                       = 0x200\n\tFAN_REPORT_TID                       = 0x100\n\tFAN_UNLIMITED_MARKS                  = 0x20\n\tFAN_UNLIMITED_QUEUE                  = 0x10\n\tFD_CLOEXEC                           = 0x1\n\tFD_SETSIZE                           = 0x400\n\tFF0                                  = 0x0\n\tFF1                                  = 0x8000\n\tFFDLY                                = 0x8000\n\tFLUSHO                               = 0x1000\n\tFS_ENCRYPTION_MODE_ADIANTUM          = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC       = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS       = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC       = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS       = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM       = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS       = 0x1\n\tFS_ENCRYPTION_MODE_INVALID           = 0x0\n\tFS_ENCRYPTION_MODE_SPECK128_256_CTS  = 0x8\n\tFS_ENCRYPTION_MODE_SPECK128_256_XTS  = 0x7\n\tFS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614\n\tFS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613\n\tFS_KEY_DESCRIPTOR_SIZE               = 0x8\n\tFS_KEY_DESC_PREFIX                   = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE              = 0x8\n\tFS_MAX_KEY_SIZE                      = 0x40\n\tFS_POLICY_FLAGS_PAD_16               = 0x2\n\tFS_POLICY_FLAGS_PAD_32               = 0x3\n\tFS_POLICY_FLAGS_PAD_4                = 0x0\n\tFS_POLICY_FLAGS_PAD_8                = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK             = 0x3\n\tFS_POLICY_FLAGS_VALID                = 0x7\n\tFUTEXFS_SUPER_MAGIC                  = 0xbad1dea\n\tF_ADD_SEALS                          = 0x409\n\tF_DUPFD                              = 0x0\n\tF_DUPFD_CLOEXEC                      = 0x406\n\tF_EXLCK                              = 0x4\n\tF_GETFD                              = 0x1\n\tF_GETFL                              = 0x3\n\tF_GETLEASE                           = 0x401\n\tF_GETLK                              = 0x7\n\tF_GETLK64                            = 0x7\n\tF_GETOWN                             = 0x5\n\tF_GETOWN_EX                          = 0x10\n\tF_GETPIPE_SZ                         = 0x408\n\tF_GETSIG                             = 0xb\n\tF_GET_FILE_RW_HINT                   = 0x40d\n\tF_GET_RW_HINT                        = 0x40b\n\tF_GET_SEALS                          = 0x40a\n\tF_LOCK                               = 0x1\n\tF_NOTIFY                             = 0x402\n\tF_OFD_GETLK                          = 0x24\n\tF_OFD_SETLK                          = 0x25\n\tF_OFD_SETLKW                         = 0x26\n\tF_OK                                 = 0x0\n\tF_RDLCK                              = 0x1\n\tF_SEAL_FUTURE_WRITE                  = 0x10\n\tF_SEAL_GROW                          = 0x4\n\tF_SEAL_SEAL                          = 0x1\n\tF_SEAL_SHRINK                        = 0x2\n\tF_SEAL_WRITE                         = 0x8\n\tF_SETFD                              = 0x2\n\tF_SETFL                              = 0x4\n\tF_SETLEASE                           = 0x400\n\tF_SETLK                              = 0x8\n\tF_SETLK64                            = 0x8\n\tF_SETLKW                             = 0x9\n\tF_SETLKW64                           = 0x9\n\tF_SETOWN                             = 0x6\n\tF_SETOWN_EX                          = 0xf\n\tF_SETPIPE_SZ                         = 0x407\n\tF_SETSIG                             = 0xa\n\tF_SET_FILE_RW_HINT                   = 0x40e\n\tF_SET_RW_HINT                        = 0x40c\n\tF_SHLCK                              = 0x8\n\tF_TEST                               = 0x3\n\tF_TLOCK                              = 0x2\n\tF_ULOCK                              = 0x0\n\tF_UNLCK                              = 0x3\n\tF_WRLCK                              = 0x2\n\tGENL_ADMIN_PERM                      = 0x1\n\tGENL_CMD_CAP_DO                      = 0x2\n\tGENL_CMD_CAP_DUMP                    = 0x4\n\tGENL_CMD_CAP_HASPOL                  = 0x8\n\tGENL_HDRLEN                          = 0x4\n\tGENL_ID_CTRL                         = 0x10\n\tGENL_ID_PMCRAID                      = 0x12\n\tGENL_ID_VFS_DQUOT                    = 0x11\n\tGENL_MAX_ID                          = 0x3ff\n\tGENL_MIN_ID                          = 0x10\n\tGENL_NAMSIZ                          = 0x10\n\tGENL_START_ALLOC                     = 0x13\n\tGENL_UNS_ADMIN_PERM                  = 0x10\n\tGRND_NONBLOCK                        = 0x1\n\tGRND_RANDOM                          = 0x2\n\tHDIO_DRIVE_CMD                       = 0x31f\n\tHDIO_DRIVE_CMD_AEB                   = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE              = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE              = 0x8\n\tHDIO_DRIVE_RESET                     = 0x31c\n\tHDIO_DRIVE_TASK                      = 0x31e\n\tHDIO_DRIVE_TASKFILE                  = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE             = 0x8\n\tHDIO_GETGEO                          = 0x301\n\tHDIO_GET_32BIT                       = 0x309\n\tHDIO_GET_ACOUSTIC                    = 0x30f\n\tHDIO_GET_ADDRESS                     = 0x310\n\tHDIO_GET_BUSSTATE                    = 0x31a\n\tHDIO_GET_DMA                         = 0x30b\n\tHDIO_GET_IDENTITY                    = 0x30d\n\tHDIO_GET_KEEPSETTINGS                = 0x308\n\tHDIO_GET_MULTCOUNT                   = 0x304\n\tHDIO_GET_NICE                        = 0x30c\n\tHDIO_GET_NOWERR                      = 0x30a\n\tHDIO_GET_QDMA                        = 0x305\n\tHDIO_GET_UNMASKINTR                  = 0x302\n\tHDIO_GET_WCACHE                      = 0x30e\n\tHDIO_OBSOLETE_IDENTITY               = 0x307\n\tHDIO_SCAN_HWIF                       = 0x328\n\tHDIO_SET_32BIT                       = 0x324\n\tHDIO_SET_ACOUSTIC                    = 0x32c\n\tHDIO_SET_ADDRESS                     = 0x32f\n\tHDIO_SET_BUSSTATE                    = 0x32d\n\tHDIO_SET_DMA                         = 0x326\n\tHDIO_SET_KEEPSETTINGS                = 0x323\n\tHDIO_SET_MULTCOUNT                   = 0x321\n\tHDIO_SET_NICE                        = 0x329\n\tHDIO_SET_NOWERR                      = 0x325\n\tHDIO_SET_PIO_MODE                    = 0x327\n\tHDIO_SET_QDMA                        = 0x32e\n\tHDIO_SET_UNMASKINTR                  = 0x322\n\tHDIO_SET_WCACHE                      = 0x32b\n\tHDIO_SET_XFER                        = 0x306\n\tHDIO_TRISTATE_HWIF                   = 0x31b\n\tHDIO_UNREGISTER_HWIF                 = 0x32a\n\tHOSTFS_SUPER_MAGIC                   = 0xc0ffee\n\tHPFS_SUPER_MAGIC                     = 0xf995e849\n\tHUGETLBFS_MAGIC                      = 0x958458f6\n\tHUPCL                                = 0x400\n\tIBSHIFT                              = 0x10\n\tICANON                               = 0x2\n\tICMPV6_FILTER                        = 0x1\n\tICRNL                                = 0x100\n\tIEXTEN                               = 0x8000\n\tIFA_F_DADFAILED                      = 0x8\n\tIFA_F_DEPRECATED                     = 0x20\n\tIFA_F_HOMEADDRESS                    = 0x10\n\tIFA_F_MANAGETEMPADDR                 = 0x100\n\tIFA_F_MCAUTOJOIN                     = 0x400\n\tIFA_F_NODAD                          = 0x2\n\tIFA_F_NOPREFIXROUTE                  = 0x200\n\tIFA_F_OPTIMISTIC                     = 0x4\n\tIFA_F_PERMANENT                      = 0x80\n\tIFA_F_SECONDARY                      = 0x1\n\tIFA_F_STABLE_PRIVACY                 = 0x800\n\tIFA_F_TEMPORARY                      = 0x1\n\tIFA_F_TENTATIVE                      = 0x40\n\tIFA_MAX                              = 0xa\n\tIFF_ALLMULTI                         = 0x200\n\tIFF_ATTACH_QUEUE                     = 0x200\n\tIFF_AUTOMEDIA                        = 0x4000\n\tIFF_BROADCAST                        = 0x2\n\tIFF_DEBUG                            = 0x4\n\tIFF_DETACH_QUEUE                     = 0x400\n\tIFF_DORMANT                          = 0x20000\n\tIFF_DYNAMIC                          = 0x8000\n\tIFF_ECHO                             = 0x40000\n\tIFF_LOOPBACK                         = 0x8\n\tIFF_LOWER_UP                         = 0x10000\n\tIFF_MASTER                           = 0x400\n\tIFF_MULTICAST                        = 0x1000\n\tIFF_MULTI_QUEUE                      = 0x100\n\tIFF_NAPI                             = 0x10\n\tIFF_NAPI_FRAGS                       = 0x20\n\tIFF_NOARP                            = 0x80\n\tIFF_NOFILTER                         = 0x1000\n\tIFF_NOTRAILERS                       = 0x20\n\tIFF_NO_PI                            = 0x1000\n\tIFF_ONE_QUEUE                        = 0x2000\n\tIFF_PERSIST                          = 0x800\n\tIFF_POINTOPOINT                      = 0x10\n\tIFF_PORTSEL                          = 0x2000\n\tIFF_PROMISC                          = 0x100\n\tIFF_RUNNING                          = 0x40\n\tIFF_SLAVE                            = 0x800\n\tIFF_TAP                              = 0x2\n\tIFF_TUN                              = 0x1\n\tIFF_TUN_EXCL                         = 0x8000\n\tIFF_UP                               = 0x1\n\tIFF_VNET_HDR                         = 0x4000\n\tIFF_VOLATILE                         = 0x70c5a\n\tIFNAMSIZ                             = 0x10\n\tIGNBRK                               = 0x1\n\tIGNCR                                = 0x80\n\tIGNPAR                               = 0x4\n\tIMAXBEL                              = 0x2000\n\tINLCR                                = 0x40\n\tINPCK                                = 0x10\n\tIN_ACCESS                            = 0x1\n\tIN_ALL_EVENTS                        = 0xfff\n\tIN_ATTRIB                            = 0x4\n\tIN_CLASSA_HOST                       = 0xffffff\n\tIN_CLASSA_MAX                        = 0x80\n\tIN_CLASSA_NET                        = 0xff000000\n\tIN_CLASSA_NSHIFT                     = 0x18\n\tIN_CLASSB_HOST                       = 0xffff\n\tIN_CLASSB_MAX                        = 0x10000\n\tIN_CLASSB_NET                        = 0xffff0000\n\tIN_CLASSB_NSHIFT                     = 0x10\n\tIN_CLASSC_HOST                       = 0xff\n\tIN_CLASSC_NET                        = 0xffffff00\n\tIN_CLASSC_NSHIFT                     = 0x8\n\tIN_CLOEXEC                           = 0x400000\n\tIN_CLOSE                             = 0x18\n\tIN_CLOSE_NOWRITE                     = 0x10\n\tIN_CLOSE_WRITE                       = 0x8\n\tIN_CREATE                            = 0x100\n\tIN_DELETE                            = 0x200\n\tIN_DELETE_SELF                       = 0x400\n\tIN_DONT_FOLLOW                       = 0x2000000\n\tIN_EXCL_UNLINK                       = 0x4000000\n\tIN_IGNORED                           = 0x8000\n\tIN_ISDIR                             = 0x40000000\n\tIN_LOOPBACKNET                       = 0x7f\n\tIN_MASK_ADD                          = 0x20000000\n\tIN_MASK_CREATE                       = 0x10000000\n\tIN_MODIFY                            = 0x2\n\tIN_MOVE                              = 0xc0\n\tIN_MOVED_FROM                        = 0x40\n\tIN_MOVED_TO                          = 0x80\n\tIN_MOVE_SELF                         = 0x800\n\tIN_NONBLOCK                          = 0x4000\n\tIN_ONESHOT                           = 0x80000000\n\tIN_ONLYDIR                           = 0x1000000\n\tIN_OPEN                              = 0x20\n\tIN_Q_OVERFLOW                        = 0x4000\n\tIN_UNMOUNT                           = 0x2000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID       = 0x200007b9\n\tIPPROTO_AH                           = 0x33\n\tIPPROTO_BEETPH                       = 0x5e\n\tIPPROTO_COMP                         = 0x6c\n\tIPPROTO_DCCP                         = 0x21\n\tIPPROTO_DSTOPTS                      = 0x3c\n\tIPPROTO_EGP                          = 0x8\n\tIPPROTO_ENCAP                        = 0x62\n\tIPPROTO_ESP                          = 0x32\n\tIPPROTO_FRAGMENT                     = 0x2c\n\tIPPROTO_GRE                          = 0x2f\n\tIPPROTO_HOPOPTS                      = 0x0\n\tIPPROTO_ICMP                         = 0x1\n\tIPPROTO_ICMPV6                       = 0x3a\n\tIPPROTO_IDP                          = 0x16\n\tIPPROTO_IGMP                         = 0x2\n\tIPPROTO_IP                           = 0x0\n\tIPPROTO_IPIP                         = 0x4\n\tIPPROTO_IPV6                         = 0x29\n\tIPPROTO_MH                           = 0x87\n\tIPPROTO_MPLS                         = 0x89\n\tIPPROTO_MTP                          = 0x5c\n\tIPPROTO_NONE                         = 0x3b\n\tIPPROTO_PIM                          = 0x67\n\tIPPROTO_PUP                          = 0xc\n\tIPPROTO_RAW                          = 0xff\n\tIPPROTO_ROUTING                      = 0x2b\n\tIPPROTO_RSVP                         = 0x2e\n\tIPPROTO_SCTP                         = 0x84\n\tIPPROTO_TCP                          = 0x6\n\tIPPROTO_TP                           = 0x1d\n\tIPPROTO_UDP                          = 0x11\n\tIPPROTO_UDPLITE                      = 0x88\n\tIPV6_2292DSTOPTS                     = 0x4\n\tIPV6_2292HOPLIMIT                    = 0x8\n\tIPV6_2292HOPOPTS                     = 0x3\n\tIPV6_2292PKTINFO                     = 0x2\n\tIPV6_2292PKTOPTIONS                  = 0x6\n\tIPV6_2292RTHDR                       = 0x5\n\tIPV6_ADDRFORM                        = 0x1\n\tIPV6_ADDR_PREFERENCES                = 0x48\n\tIPV6_ADD_MEMBERSHIP                  = 0x14\n\tIPV6_AUTHHDR                         = 0xa\n\tIPV6_AUTOFLOWLABEL                   = 0x46\n\tIPV6_CHECKSUM                        = 0x7\n\tIPV6_DONTFRAG                        = 0x3e\n\tIPV6_DROP_MEMBERSHIP                 = 0x15\n\tIPV6_DSTOPTS                         = 0x3b\n\tIPV6_FREEBIND                        = 0x4e\n\tIPV6_HDRINCL                         = 0x24\n\tIPV6_HOPLIMIT                        = 0x34\n\tIPV6_HOPOPTS                         = 0x36\n\tIPV6_IPSEC_POLICY                    = 0x22\n\tIPV6_JOIN_ANYCAST                    = 0x1b\n\tIPV6_JOIN_GROUP                      = 0x14\n\tIPV6_LEAVE_ANYCAST                   = 0x1c\n\tIPV6_LEAVE_GROUP                     = 0x15\n\tIPV6_MINHOPCOUNT                     = 0x49\n\tIPV6_MTU                             = 0x18\n\tIPV6_MTU_DISCOVER                    = 0x17\n\tIPV6_MULTICAST_ALL                   = 0x1d\n\tIPV6_MULTICAST_HOPS                  = 0x12\n\tIPV6_MULTICAST_IF                    = 0x11\n\tIPV6_MULTICAST_LOOP                  = 0x13\n\tIPV6_NEXTHOP                         = 0x9\n\tIPV6_ORIGDSTADDR                     = 0x4a\n\tIPV6_PATHMTU                         = 0x3d\n\tIPV6_PKTINFO                         = 0x32\n\tIPV6_PMTUDISC_DO                     = 0x2\n\tIPV6_PMTUDISC_DONT                   = 0x0\n\tIPV6_PMTUDISC_INTERFACE              = 0x4\n\tIPV6_PMTUDISC_OMIT                   = 0x5\n\tIPV6_PMTUDISC_PROBE                  = 0x3\n\tIPV6_PMTUDISC_WANT                   = 0x1\n\tIPV6_RECVDSTOPTS                     = 0x3a\n\tIPV6_RECVERR                         = 0x19\n\tIPV6_RECVFRAGSIZE                    = 0x4d\n\tIPV6_RECVHOPLIMIT                    = 0x33\n\tIPV6_RECVHOPOPTS                     = 0x35\n\tIPV6_RECVORIGDSTADDR                 = 0x4a\n\tIPV6_RECVPATHMTU                     = 0x3c\n\tIPV6_RECVPKTINFO                     = 0x31\n\tIPV6_RECVRTHDR                       = 0x38\n\tIPV6_RECVTCLASS                      = 0x42\n\tIPV6_ROUTER_ALERT                    = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE            = 0x1e\n\tIPV6_RTHDR                           = 0x39\n\tIPV6_RTHDRDSTOPTS                    = 0x37\n\tIPV6_RTHDR_LOOSE                     = 0x0\n\tIPV6_RTHDR_STRICT                    = 0x1\n\tIPV6_RTHDR_TYPE_0                    = 0x0\n\tIPV6_RXDSTOPTS                       = 0x3b\n\tIPV6_RXHOPOPTS                       = 0x36\n\tIPV6_TCLASS                          = 0x43\n\tIPV6_TRANSPARENT                     = 0x4b\n\tIPV6_UNICAST_HOPS                    = 0x10\n\tIPV6_UNICAST_IF                      = 0x4c\n\tIPV6_V6ONLY                          = 0x1a\n\tIPV6_XFRM_POLICY                     = 0x23\n\tIP_ADD_MEMBERSHIP                    = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP             = 0x27\n\tIP_BIND_ADDRESS_NO_PORT              = 0x18\n\tIP_BLOCK_SOURCE                      = 0x26\n\tIP_CHECKSUM                          = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP            = 0x1\n\tIP_DEFAULT_MULTICAST_TTL             = 0x1\n\tIP_DF                                = 0x4000\n\tIP_DROP_MEMBERSHIP                   = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP            = 0x28\n\tIP_FREEBIND                          = 0xf\n\tIP_HDRINCL                           = 0x3\n\tIP_IPSEC_POLICY                      = 0x10\n\tIP_MAXPACKET                         = 0xffff\n\tIP_MAX_MEMBERSHIPS                   = 0x14\n\tIP_MF                                = 0x2000\n\tIP_MINTTL                            = 0x15\n\tIP_MSFILTER                          = 0x29\n\tIP_MSS                               = 0x240\n\tIP_MTU                               = 0xe\n\tIP_MTU_DISCOVER                      = 0xa\n\tIP_MULTICAST_ALL                     = 0x31\n\tIP_MULTICAST_IF                      = 0x20\n\tIP_MULTICAST_LOOP                    = 0x22\n\tIP_MULTICAST_TTL                     = 0x21\n\tIP_NODEFRAG                          = 0x16\n\tIP_OFFMASK                           = 0x1fff\n\tIP_OPTIONS                           = 0x4\n\tIP_ORIGDSTADDR                       = 0x14\n\tIP_PASSSEC                           = 0x12\n\tIP_PKTINFO                           = 0x8\n\tIP_PKTOPTIONS                        = 0x9\n\tIP_PMTUDISC                          = 0xa\n\tIP_PMTUDISC_DO                       = 0x2\n\tIP_PMTUDISC_DONT                     = 0x0\n\tIP_PMTUDISC_INTERFACE                = 0x4\n\tIP_PMTUDISC_OMIT                     = 0x5\n\tIP_PMTUDISC_PROBE                    = 0x3\n\tIP_PMTUDISC_WANT                     = 0x1\n\tIP_RECVERR                           = 0xb\n\tIP_RECVFRAGSIZE                      = 0x19\n\tIP_RECVOPTS                          = 0x6\n\tIP_RECVORIGDSTADDR                   = 0x14\n\tIP_RECVRETOPTS                       = 0x7\n\tIP_RECVTOS                           = 0xd\n\tIP_RECVTTL                           = 0xc\n\tIP_RETOPTS                           = 0x7\n\tIP_RF                                = 0x8000\n\tIP_ROUTER_ALERT                      = 0x5\n\tIP_TOS                               = 0x1\n\tIP_TRANSPARENT                       = 0x13\n\tIP_TTL                               = 0x2\n\tIP_UNBLOCK_SOURCE                    = 0x25\n\tIP_UNICAST_IF                        = 0x32\n\tIP_XFRM_POLICY                       = 0x11\n\tISIG                                 = 0x1\n\tISOFS_SUPER_MAGIC                    = 0x9660\n\tISTRIP                               = 0x20\n\tIUCLC                                = 0x200\n\tIUTF8                                = 0x4000\n\tIXANY                                = 0x800\n\tIXOFF                                = 0x1000\n\tIXON                                 = 0x400\n\tJFFS2_SUPER_MAGIC                    = 0x72b6\n\tKEXEC_ARCH_386                       = 0x30000\n\tKEXEC_ARCH_68K                       = 0x40000\n\tKEXEC_ARCH_AARCH64                   = 0xb70000\n\tKEXEC_ARCH_ARM                       = 0x280000\n\tKEXEC_ARCH_DEFAULT                   = 0x0\n\tKEXEC_ARCH_IA_64                     = 0x320000\n\tKEXEC_ARCH_MASK                      = 0xffff0000\n\tKEXEC_ARCH_MIPS                      = 0x80000\n\tKEXEC_ARCH_MIPS_LE                   = 0xa0000\n\tKEXEC_ARCH_PPC                       = 0x140000\n\tKEXEC_ARCH_PPC64                     = 0x150000\n\tKEXEC_ARCH_S390                      = 0x160000\n\tKEXEC_ARCH_SH                        = 0x2a0000\n\tKEXEC_ARCH_X86_64                    = 0x3e0000\n\tKEXEC_FILE_NO_INITRAMFS              = 0x4\n\tKEXEC_FILE_ON_CRASH                  = 0x2\n\tKEXEC_FILE_UNLOAD                    = 0x1\n\tKEXEC_ON_CRASH                       = 0x1\n\tKEXEC_PRESERVE_CONTEXT               = 0x2\n\tKEXEC_SEGMENT_MAX                    = 0x10\n\tKEYCTL_ASSUME_AUTHORITY              = 0x10\n\tKEYCTL_CAPABILITIES                  = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                 = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES            = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN          = 0x4\n\tKEYCTL_CAPS0_INVALIDATE              = 0x20\n\tKEYCTL_CAPS0_MOVE                    = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS     = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY              = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING        = 0x40\n\tKEYCTL_CAPS1_NS_KEYRING_NAME         = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG              = 0x2\n\tKEYCTL_CHOWN                         = 0x4\n\tKEYCTL_CLEAR                         = 0x7\n\tKEYCTL_DESCRIBE                      = 0x6\n\tKEYCTL_DH_COMPUTE                    = 0x17\n\tKEYCTL_GET_KEYRING_ID                = 0x0\n\tKEYCTL_GET_PERSISTENT                = 0x16\n\tKEYCTL_GET_SECURITY                  = 0x11\n\tKEYCTL_INSTANTIATE                   = 0xc\n\tKEYCTL_INSTANTIATE_IOV               = 0x14\n\tKEYCTL_INVALIDATE                    = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING          = 0x1\n\tKEYCTL_LINK                          = 0x8\n\tKEYCTL_MOVE                          = 0x1e\n\tKEYCTL_MOVE_EXCL                     = 0x1\n\tKEYCTL_NEGATE                        = 0xd\n\tKEYCTL_PKEY_DECRYPT                  = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                  = 0x19\n\tKEYCTL_PKEY_QUERY                    = 0x18\n\tKEYCTL_PKEY_SIGN                     = 0x1b\n\tKEYCTL_PKEY_VERIFY                   = 0x1c\n\tKEYCTL_READ                          = 0xb\n\tKEYCTL_REJECT                        = 0x13\n\tKEYCTL_RESTRICT_KEYRING              = 0x1d\n\tKEYCTL_REVOKE                        = 0x3\n\tKEYCTL_SEARCH                        = 0xa\n\tKEYCTL_SESSION_TO_PARENT             = 0x12\n\tKEYCTL_SETPERM                       = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING            = 0xe\n\tKEYCTL_SET_TIMEOUT                   = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT              = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT              = 0x1\n\tKEYCTL_SUPPORTS_SIGN                 = 0x4\n\tKEYCTL_SUPPORTS_VERIFY               = 0x8\n\tKEYCTL_UNLINK                        = 0x9\n\tKEYCTL_UPDATE                        = 0x2\n\tKEY_REQKEY_DEFL_DEFAULT              = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE            = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING         = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5\n\tKEY_SPEC_GROUP_KEYRING               = -0x6\n\tKEY_SPEC_PROCESS_KEYRING             = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY             = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING           = -0x8\n\tKEY_SPEC_SESSION_KEYRING             = -0x3\n\tKEY_SPEC_THREAD_KEYRING              = -0x1\n\tKEY_SPEC_USER_KEYRING                = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING        = -0x5\n\tLINUX_REBOOT_CMD_CAD_OFF             = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON              = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC               = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF           = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART             = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2            = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND          = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                  = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                  = 0x28121969\n\tLOCK_EX                              = 0x2\n\tLOCK_NB                              = 0x4\n\tLOCK_SH                              = 0x1\n\tLOCK_UN                              = 0x8\n\tLOOP_CLR_FD                          = 0x4c01\n\tLOOP_CTL_ADD                         = 0x4c80\n\tLOOP_CTL_GET_FREE                    = 0x4c82\n\tLOOP_CTL_REMOVE                      = 0x4c81\n\tLOOP_GET_STATUS                      = 0x4c03\n\tLOOP_GET_STATUS64                    = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                  = 0x4c09\n\tLOOP_SET_CAPACITY                    = 0x4c07\n\tLOOP_SET_DIRECT_IO                   = 0x4c08\n\tLOOP_SET_FD                          = 0x4c00\n\tLOOP_SET_STATUS                      = 0x4c02\n\tLOOP_SET_STATUS64                    = 0x4c04\n\tLO_KEY_SIZE                          = 0x20\n\tLO_NAME_SIZE                         = 0x40\n\tMADV_DODUMP                          = 0x11\n\tMADV_DOFORK                          = 0xb\n\tMADV_DONTDUMP                        = 0x10\n\tMADV_DONTFORK                        = 0xa\n\tMADV_DONTNEED                        = 0x4\n\tMADV_FREE                            = 0x8\n\tMADV_HUGEPAGE                        = 0xe\n\tMADV_HWPOISON                        = 0x64\n\tMADV_KEEPONFORK                      = 0x13\n\tMADV_MERGEABLE                       = 0xc\n\tMADV_NOHUGEPAGE                      = 0xf\n\tMADV_NORMAL                          = 0x0\n\tMADV_RANDOM                          = 0x1\n\tMADV_REMOVE                          = 0x9\n\tMADV_SEQUENTIAL                      = 0x2\n\tMADV_UNMERGEABLE                     = 0xd\n\tMADV_WILLNEED                        = 0x3\n\tMADV_WIPEONFORK                      = 0x12\n\tMAP_ANON                             = 0x20\n\tMAP_ANONYMOUS                        = 0x20\n\tMAP_DENYWRITE                        = 0x800\n\tMAP_EXECUTABLE                       = 0x1000\n\tMAP_FILE                             = 0x0\n\tMAP_FIXED                            = 0x10\n\tMAP_FIXED_NOREPLACE                  = 0x100000\n\tMAP_GROWSDOWN                        = 0x200\n\tMAP_HUGETLB                          = 0x40000\n\tMAP_HUGE_MASK                        = 0x3f\n\tMAP_HUGE_SHIFT                       = 0x1a\n\tMAP_LOCKED                           = 0x100\n\tMAP_NONBLOCK                         = 0x10000\n\tMAP_NORESERVE                        = 0x40\n\tMAP_POPULATE                         = 0x8000\n\tMAP_PRIVATE                          = 0x2\n\tMAP_RENAME                           = 0x20\n\tMAP_SHARED                           = 0x1\n\tMAP_SHARED_VALIDATE                  = 0x3\n\tMAP_STACK                            = 0x20000\n\tMAP_TYPE                             = 0xf\n\tMCAST_BLOCK_SOURCE                   = 0x2b\n\tMCAST_EXCLUDE                        = 0x0\n\tMCAST_INCLUDE                        = 0x1\n\tMCAST_JOIN_GROUP                     = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP              = 0x2e\n\tMCAST_LEAVE_GROUP                    = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP             = 0x2f\n\tMCAST_MSFILTER                       = 0x30\n\tMCAST_UNBLOCK_SOURCE                 = 0x2c\n\tMCL_CURRENT                          = 0x2000\n\tMCL_FUTURE                           = 0x4000\n\tMCL_ONFAULT                          = 0x8000\n\tMFD_ALLOW_SEALING                    = 0x2\n\tMFD_CLOEXEC                          = 0x1\n\tMFD_HUGETLB                          = 0x4\n\tMFD_HUGE_16GB                        = -0x78000000\n\tMFD_HUGE_16MB                        = 0x60000000\n\tMFD_HUGE_1GB                         = 0x78000000\n\tMFD_HUGE_1MB                         = 0x50000000\n\tMFD_HUGE_256MB                       = 0x70000000\n\tMFD_HUGE_2GB                         = 0x7c000000\n\tMFD_HUGE_2MB                         = 0x54000000\n\tMFD_HUGE_32MB                        = 0x64000000\n\tMFD_HUGE_512KB                       = 0x4c000000\n\tMFD_HUGE_512MB                       = 0x74000000\n\tMFD_HUGE_64KB                        = 0x40000000\n\tMFD_HUGE_8MB                         = 0x5c000000\n\tMFD_HUGE_MASK                        = 0x3f\n\tMFD_HUGE_SHIFT                       = 0x1a\n\tMINIX2_SUPER_MAGIC                   = 0x2468\n\tMINIX2_SUPER_MAGIC2                  = 0x2478\n\tMINIX3_SUPER_MAGIC                   = 0x4d5a\n\tMINIX_SUPER_MAGIC                    = 0x137f\n\tMINIX_SUPER_MAGIC2                   = 0x138f\n\tMNT_DETACH                           = 0x2\n\tMNT_EXPIRE                           = 0x4\n\tMNT_FORCE                            = 0x1\n\tMODULE_INIT_IGNORE_MODVERSIONS       = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC          = 0x2\n\tMSDOS_SUPER_MAGIC                    = 0x4d44\n\tMSG_BATCH                            = 0x40000\n\tMSG_CMSG_CLOEXEC                     = 0x40000000\n\tMSG_CONFIRM                          = 0x800\n\tMSG_CTRUNC                           = 0x8\n\tMSG_DONTROUTE                        = 0x4\n\tMSG_DONTWAIT                         = 0x40\n\tMSG_EOR                              = 0x80\n\tMSG_ERRQUEUE                         = 0x2000\n\tMSG_FASTOPEN                         = 0x20000000\n\tMSG_FIN                              = 0x200\n\tMSG_MORE                             = 0x8000\n\tMSG_NOSIGNAL                         = 0x4000\n\tMSG_OOB                              = 0x1\n\tMSG_PEEK                             = 0x2\n\tMSG_PROXY                            = 0x10\n\tMSG_RST                              = 0x1000\n\tMSG_SYN                              = 0x400\n\tMSG_TRUNC                            = 0x20\n\tMSG_TRYHARD                          = 0x4\n\tMSG_WAITALL                          = 0x100\n\tMSG_WAITFORONE                       = 0x10000\n\tMSG_ZEROCOPY                         = 0x4000000\n\tMS_ACTIVE                            = 0x40000000\n\tMS_ASYNC                             = 0x1\n\tMS_BIND                              = 0x1000\n\tMS_BORN                              = 0x20000000\n\tMS_DIRSYNC                           = 0x80\n\tMS_INVALIDATE                        = 0x2\n\tMS_I_VERSION                         = 0x800000\n\tMS_KERNMOUNT                         = 0x400000\n\tMS_LAZYTIME                          = 0x2000000\n\tMS_MANDLOCK                          = 0x40\n\tMS_MGC_MSK                           = 0xffff0000\n\tMS_MGC_VAL                           = 0xc0ed0000\n\tMS_MOVE                              = 0x2000\n\tMS_NOATIME                           = 0x400\n\tMS_NODEV                             = 0x4\n\tMS_NODIRATIME                        = 0x800\n\tMS_NOEXEC                            = 0x8\n\tMS_NOREMOTELOCK                      = 0x8000000\n\tMS_NOSEC                             = 0x10000000\n\tMS_NOSUID                            = 0x2\n\tMS_NOUSER                            = -0x80000000\n\tMS_POSIXACL                          = 0x10000\n\tMS_PRIVATE                           = 0x40000\n\tMS_RDONLY                            = 0x1\n\tMS_REC                               = 0x4000\n\tMS_RELATIME                          = 0x200000\n\tMS_REMOUNT                           = 0x20\n\tMS_RMT_MASK                          = 0x2800051\n\tMS_SHARED                            = 0x100000\n\tMS_SILENT                            = 0x8000\n\tMS_SLAVE                             = 0x80000\n\tMS_STRICTATIME                       = 0x1000000\n\tMS_SUBMOUNT                          = 0x4000000\n\tMS_SYNC                              = 0x4\n\tMS_SYNCHRONOUS                       = 0x10\n\tMS_UNBINDABLE                        = 0x20000\n\tMS_VERBOSE                           = 0x8000\n\tMTD_INODE_FS_MAGIC                   = 0x11307854\n\tNAME_MAX                             = 0xff\n\tNCP_SUPER_MAGIC                      = 0x564c\n\tNETLINK_ADD_MEMBERSHIP               = 0x1\n\tNETLINK_AUDIT                        = 0x9\n\tNETLINK_BROADCAST_ERROR              = 0x4\n\tNETLINK_CAP_ACK                      = 0xa\n\tNETLINK_CONNECTOR                    = 0xb\n\tNETLINK_CRYPTO                       = 0x15\n\tNETLINK_DNRTMSG                      = 0xe\n\tNETLINK_DROP_MEMBERSHIP              = 0x2\n\tNETLINK_ECRYPTFS                     = 0x13\n\tNETLINK_EXT_ACK                      = 0xb\n\tNETLINK_FIB_LOOKUP                   = 0xa\n\tNETLINK_FIREWALL                     = 0x3\n\tNETLINK_GENERIC                      = 0x10\n\tNETLINK_GET_STRICT_CHK               = 0xc\n\tNETLINK_INET_DIAG                    = 0x4\n\tNETLINK_IP6_FW                       = 0xd\n\tNETLINK_ISCSI                        = 0x8\n\tNETLINK_KOBJECT_UEVENT               = 0xf\n\tNETLINK_LISTEN_ALL_NSID              = 0x8\n\tNETLINK_LIST_MEMBERSHIPS             = 0x9\n\tNETLINK_NETFILTER                    = 0xc\n\tNETLINK_NFLOG                        = 0x5\n\tNETLINK_NO_ENOBUFS                   = 0x5\n\tNETLINK_PKTINFO                      = 0x3\n\tNETLINK_RDMA                         = 0x14\n\tNETLINK_ROUTE                        = 0x0\n\tNETLINK_RX_RING                      = 0x6\n\tNETLINK_SCSITRANSPORT                = 0x12\n\tNETLINK_SELINUX                      = 0x7\n\tNETLINK_SMC                          = 0x16\n\tNETLINK_SOCK_DIAG                    = 0x4\n\tNETLINK_TX_RING                      = 0x7\n\tNETLINK_UNUSED                       = 0x1\n\tNETLINK_USERSOCK                     = 0x2\n\tNETLINK_XFRM                         = 0x6\n\tNETNSA_MAX                           = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED             = -0x1\n\tNFNETLINK_V0                         = 0x0\n\tNFNLGRP_ACCT_QUOTA                   = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY            = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY        = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW            = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE         = 0x5\n\tNFNLGRP_CONNTRACK_NEW                = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE             = 0x2\n\tNFNLGRP_MAX                          = 0x9\n\tNFNLGRP_NFTABLES                     = 0x7\n\tNFNLGRP_NFTRACE                      = 0x9\n\tNFNLGRP_NONE                         = 0x0\n\tNFNL_BATCH_MAX                       = 0x1\n\tNFNL_MSG_BATCH_BEGIN                 = 0x10\n\tNFNL_MSG_BATCH_END                   = 0x11\n\tNFNL_NFA_NEST                        = 0x8000\n\tNFNL_SUBSYS_ACCT                     = 0x7\n\tNFNL_SUBSYS_COUNT                    = 0xc\n\tNFNL_SUBSYS_CTHELPER                 = 0x9\n\tNFNL_SUBSYS_CTNETLINK                = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP            = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT        = 0x8\n\tNFNL_SUBSYS_IPSET                    = 0x6\n\tNFNL_SUBSYS_NFTABLES                 = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT               = 0xb\n\tNFNL_SUBSYS_NONE                     = 0x0\n\tNFNL_SUBSYS_OSF                      = 0x5\n\tNFNL_SUBSYS_QUEUE                    = 0x3\n\tNFNL_SUBSYS_ULOG                     = 0x4\n\tNFS_SUPER_MAGIC                      = 0x6969\n\tNILFS_SUPER_MAGIC                    = 0x3434\n\tNL0                                  = 0x0\n\tNL1                                  = 0x100\n\tNLA_ALIGNTO                          = 0x4\n\tNLA_F_NESTED                         = 0x8000\n\tNLA_F_NET_BYTEORDER                  = 0x4000\n\tNLA_HDRLEN                           = 0x4\n\tNLDLY                                = 0x100\n\tNLMSG_ALIGNTO                        = 0x4\n\tNLMSG_DONE                           = 0x3\n\tNLMSG_ERROR                          = 0x2\n\tNLMSG_HDRLEN                         = 0x10\n\tNLMSG_MIN_TYPE                       = 0x10\n\tNLMSG_NOOP                           = 0x1\n\tNLMSG_OVERRUN                        = 0x4\n\tNLM_F_ACK                            = 0x4\n\tNLM_F_ACK_TLVS                       = 0x200\n\tNLM_F_APPEND                         = 0x800\n\tNLM_F_ATOMIC                         = 0x400\n\tNLM_F_CAPPED                         = 0x100\n\tNLM_F_CREATE                         = 0x400\n\tNLM_F_DUMP                           = 0x300\n\tNLM_F_DUMP_FILTERED                  = 0x20\n\tNLM_F_DUMP_INTR                      = 0x10\n\tNLM_F_ECHO                           = 0x8\n\tNLM_F_EXCL                           = 0x200\n\tNLM_F_MATCH                          = 0x200\n\tNLM_F_MULTI                          = 0x2\n\tNLM_F_NONREC                         = 0x100\n\tNLM_F_REPLACE                        = 0x100\n\tNLM_F_REQUEST                        = 0x1\n\tNLM_F_ROOT                           = 0x100\n\tNOFLSH                               = 0x80\n\tNSFS_MAGIC                           = 0x6e736673\n\tNS_GET_NSTYPE                        = 0x2000b703\n\tNS_GET_OWNER_UID                     = 0x2000b704\n\tNS_GET_PARENT                        = 0x2000b702\n\tNS_GET_USERNS                        = 0x2000b701\n\tOCFS2_SUPER_MAGIC                    = 0x7461636f\n\tOCRNL                                = 0x8\n\tOFDEL                                = 0x80\n\tOFILL                                = 0x40\n\tOLCUC                                = 0x2\n\tONLCR                                = 0x4\n\tONLRET                               = 0x20\n\tONOCR                                = 0x10\n\tOPENPROM_SUPER_MAGIC                 = 0x9fa1\n\tOPOST                                = 0x1\n\tOVERLAYFS_SUPER_MAGIC                = 0x794c7630\n\tO_ACCMODE                            = 0x3\n\tO_APPEND                             = 0x8\n\tO_ASYNC                              = 0x40\n\tO_CLOEXEC                            = 0x400000\n\tO_CREAT                              = 0x200\n\tO_DIRECT                             = 0x100000\n\tO_DIRECTORY                          = 0x10000\n\tO_DSYNC                              = 0x2000\n\tO_EXCL                               = 0x800\n\tO_FSYNC                              = 0x802000\n\tO_LARGEFILE                          = 0x0\n\tO_NDELAY                             = 0x4004\n\tO_NOATIME                            = 0x200000\n\tO_NOCTTY                             = 0x8000\n\tO_NOFOLLOW                           = 0x20000\n\tO_NONBLOCK                           = 0x4000\n\tO_PATH                               = 0x1000000\n\tO_RDONLY                             = 0x0\n\tO_RDWR                               = 0x2\n\tO_RSYNC                              = 0x802000\n\tO_SYNC                               = 0x802000\n\tO_TMPFILE                            = 0x2010000\n\tO_TRUNC                              = 0x400\n\tO_WRONLY                             = 0x1\n\tPACKET_ADD_MEMBERSHIP                = 0x1\n\tPACKET_AUXDATA                       = 0x8\n\tPACKET_BROADCAST                     = 0x1\n\tPACKET_COPY_THRESH                   = 0x7\n\tPACKET_DROP_MEMBERSHIP               = 0x2\n\tPACKET_FANOUT                        = 0x12\n\tPACKET_FANOUT_CBPF                   = 0x6\n\tPACKET_FANOUT_CPU                    = 0x2\n\tPACKET_FANOUT_DATA                   = 0x16\n\tPACKET_FANOUT_EBPF                   = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG            = 0x8000\n\tPACKET_FANOUT_FLAG_ROLLOVER          = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID          = 0x2000\n\tPACKET_FANOUT_HASH                   = 0x0\n\tPACKET_FANOUT_LB                     = 0x1\n\tPACKET_FANOUT_QM                     = 0x5\n\tPACKET_FANOUT_RND                    = 0x4\n\tPACKET_FANOUT_ROLLOVER               = 0x3\n\tPACKET_FASTROUTE                     = 0x6\n\tPACKET_HDRLEN                        = 0xb\n\tPACKET_HOST                          = 0x0\n\tPACKET_IGNORE_OUTGOING               = 0x17\n\tPACKET_KERNEL                        = 0x7\n\tPACKET_LOOPBACK                      = 0x5\n\tPACKET_LOSS                          = 0xe\n\tPACKET_MR_ALLMULTI                   = 0x2\n\tPACKET_MR_MULTICAST                  = 0x0\n\tPACKET_MR_PROMISC                    = 0x1\n\tPACKET_MR_UNICAST                    = 0x3\n\tPACKET_MULTICAST                     = 0x2\n\tPACKET_ORIGDEV                       = 0x9\n\tPACKET_OTHERHOST                     = 0x3\n\tPACKET_OUTGOING                      = 0x4\n\tPACKET_QDISC_BYPASS                  = 0x14\n\tPACKET_RECV_OUTPUT                   = 0x3\n\tPACKET_RESERVE                       = 0xc\n\tPACKET_ROLLOVER_STATS                = 0x15\n\tPACKET_RX_RING                       = 0x5\n\tPACKET_STATISTICS                    = 0x6\n\tPACKET_TIMESTAMP                     = 0x11\n\tPACKET_TX_HAS_OFF                    = 0x13\n\tPACKET_TX_RING                       = 0xd\n\tPACKET_TX_TIMESTAMP                  = 0x10\n\tPACKET_USER                          = 0x6\n\tPACKET_VERSION                       = 0xa\n\tPACKET_VNET_HDR                      = 0xf\n\tPARENB                               = 0x100\n\tPARITY_CRC16_PR0                     = 0x2\n\tPARITY_CRC16_PR0_CCITT               = 0x4\n\tPARITY_CRC16_PR1                     = 0x3\n\tPARITY_CRC16_PR1_CCITT               = 0x5\n\tPARITY_CRC32_PR0_CCITT               = 0x6\n\tPARITY_CRC32_PR1_CCITT               = 0x7\n\tPARITY_DEFAULT                       = 0x0\n\tPARITY_NONE                          = 0x1\n\tPARMRK                               = 0x8\n\tPARODD                               = 0x200\n\tPENDIN                               = 0x4000\n\tPERF_EVENT_IOC_DISABLE               = 0x20002401\n\tPERF_EVENT_IOC_ENABLE                = 0x20002400\n\tPERF_EVENT_IOC_ID                    = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES     = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409\n\tPERF_EVENT_IOC_PERIOD                = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF             = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH               = 0x20002402\n\tPERF_EVENT_IOC_RESET                 = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF               = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER            = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT            = 0x20002405\n\tPIPEFS_MAGIC                         = 0x50495045\n\tPPPIOCATTACH                         = 0x8004743d\n\tPPPIOCATTCHAN                        = 0x80047438\n\tPPPIOCCONNECT                        = 0x8004743a\n\tPPPIOCDETACH                         = 0x8004743c\n\tPPPIOCDISCONN                        = 0x20007439\n\tPPPIOCGASYNCMAP                      = 0x40047458\n\tPPPIOCGCHAN                          = 0x40047437\n\tPPPIOCGDEBUG                         = 0x40047441\n\tPPPIOCGFLAGS                         = 0x4004745a\n\tPPPIOCGIDLE                          = 0x4010743f\n\tPPPIOCGL2TPSTATS                     = 0x40487436\n\tPPPIOCGMRU                           = 0x40047453\n\tPPPIOCGNPMODE                        = 0xc008744c\n\tPPPIOCGRASYNCMAP                     = 0x40047455\n\tPPPIOCGUNIT                          = 0x40047456\n\tPPPIOCGXASYNCMAP                     = 0x40207450\n\tPPPIOCNEWUNIT                        = 0xc004743e\n\tPPPIOCSACTIVE                        = 0x80107446\n\tPPPIOCSASYNCMAP                      = 0x80047457\n\tPPPIOCSCOMPRESS                      = 0x8010744d\n\tPPPIOCSDEBUG                         = 0x80047440\n\tPPPIOCSFLAGS                         = 0x80047459\n\tPPPIOCSMAXCID                        = 0x80047451\n\tPPPIOCSMRRU                          = 0x8004743b\n\tPPPIOCSMRU                           = 0x80047452\n\tPPPIOCSNPMODE                        = 0x8008744b\n\tPPPIOCSPASS                          = 0x80107447\n\tPPPIOCSRASYNCMAP                     = 0x80047454\n\tPPPIOCSXASYNCMAP                     = 0x8020744f\n\tPPPIOCXFERUNIT                       = 0x2000744e\n\tPRIO_PGRP                            = 0x1\n\tPRIO_PROCESS                         = 0x0\n\tPRIO_USER                            = 0x2\n\tPROC_SUPER_MAGIC                     = 0x9fa0\n\tPROT_EXEC                            = 0x4\n\tPROT_GROWSDOWN                       = 0x1000000\n\tPROT_GROWSUP                         = 0x2000000\n\tPROT_NONE                            = 0x0\n\tPROT_READ                            = 0x1\n\tPROT_WRITE                           = 0x2\n\tPR_CAPBSET_DROP                      = 0x18\n\tPR_CAPBSET_READ                      = 0x17\n\tPR_CAP_AMBIENT                       = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL             = 0x4\n\tPR_CAP_AMBIENT_IS_SET                = 0x1\n\tPR_CAP_AMBIENT_LOWER                 = 0x3\n\tPR_CAP_AMBIENT_RAISE                 = 0x2\n\tPR_ENDIAN_BIG                        = 0x0\n\tPR_ENDIAN_LITTLE                     = 0x1\n\tPR_ENDIAN_PPC_LITTLE                 = 0x2\n\tPR_FPEMU_NOPRINT                     = 0x1\n\tPR_FPEMU_SIGFPE                      = 0x2\n\tPR_FP_EXC_ASYNC                      = 0x2\n\tPR_FP_EXC_DISABLED                   = 0x0\n\tPR_FP_EXC_DIV                        = 0x10000\n\tPR_FP_EXC_INV                        = 0x100000\n\tPR_FP_EXC_NONRECOV                   = 0x1\n\tPR_FP_EXC_OVF                        = 0x20000\n\tPR_FP_EXC_PRECISE                    = 0x3\n\tPR_FP_EXC_RES                        = 0x80000\n\tPR_FP_EXC_SW_ENABLE                  = 0x80\n\tPR_FP_EXC_UND                        = 0x40000\n\tPR_FP_MODE_FR                        = 0x1\n\tPR_FP_MODE_FRE                       = 0x2\n\tPR_GET_CHILD_SUBREAPER               = 0x25\n\tPR_GET_DUMPABLE                      = 0x3\n\tPR_GET_ENDIAN                        = 0x13\n\tPR_GET_FPEMU                         = 0x9\n\tPR_GET_FPEXC                         = 0xb\n\tPR_GET_FP_MODE                       = 0x2e\n\tPR_GET_KEEPCAPS                      = 0x7\n\tPR_GET_NAME                          = 0x10\n\tPR_GET_NO_NEW_PRIVS                  = 0x27\n\tPR_GET_PDEATHSIG                     = 0x2\n\tPR_GET_SECCOMP                       = 0x15\n\tPR_GET_SECUREBITS                    = 0x1b\n\tPR_GET_SPECULATION_CTRL              = 0x34\n\tPR_GET_THP_DISABLE                   = 0x2a\n\tPR_GET_TID_ADDRESS                   = 0x28\n\tPR_GET_TIMERSLACK                    = 0x1e\n\tPR_GET_TIMING                        = 0xd\n\tPR_GET_TSC                           = 0x19\n\tPR_GET_UNALIGN                       = 0x5\n\tPR_MCE_KILL                          = 0x21\n\tPR_MCE_KILL_CLEAR                    = 0x0\n\tPR_MCE_KILL_DEFAULT                  = 0x2\n\tPR_MCE_KILL_EARLY                    = 0x1\n\tPR_MCE_KILL_GET                      = 0x22\n\tPR_MCE_KILL_LATE                     = 0x0\n\tPR_MCE_KILL_SET                      = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT            = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT             = 0x2b\n\tPR_PAC_APDAKEY                       = 0x4\n\tPR_PAC_APDBKEY                       = 0x8\n\tPR_PAC_APGAKEY                       = 0x10\n\tPR_PAC_APIAKEY                       = 0x1\n\tPR_PAC_APIBKEY                       = 0x2\n\tPR_PAC_RESET_KEYS                    = 0x36\n\tPR_SET_CHILD_SUBREAPER               = 0x24\n\tPR_SET_DUMPABLE                      = 0x4\n\tPR_SET_ENDIAN                        = 0x14\n\tPR_SET_FPEMU                         = 0xa\n\tPR_SET_FPEXC                         = 0xc\n\tPR_SET_FP_MODE                       = 0x2d\n\tPR_SET_KEEPCAPS                      = 0x8\n\tPR_SET_MM                            = 0x23\n\tPR_SET_MM_ARG_END                    = 0x9\n\tPR_SET_MM_ARG_START                  = 0x8\n\tPR_SET_MM_AUXV                       = 0xc\n\tPR_SET_MM_BRK                        = 0x7\n\tPR_SET_MM_END_CODE                   = 0x2\n\tPR_SET_MM_END_DATA                   = 0x4\n\tPR_SET_MM_ENV_END                    = 0xb\n\tPR_SET_MM_ENV_START                  = 0xa\n\tPR_SET_MM_EXE_FILE                   = 0xd\n\tPR_SET_MM_MAP                        = 0xe\n\tPR_SET_MM_MAP_SIZE                   = 0xf\n\tPR_SET_MM_START_BRK                  = 0x6\n\tPR_SET_MM_START_CODE                 = 0x1\n\tPR_SET_MM_START_DATA                 = 0x3\n\tPR_SET_MM_START_STACK                = 0x5\n\tPR_SET_NAME                          = 0xf\n\tPR_SET_NO_NEW_PRIVS                  = 0x26\n\tPR_SET_PDEATHSIG                     = 0x1\n\tPR_SET_PTRACER                       = 0x59616d61\n\tPR_SET_PTRACER_ANY                   = 0xffffffffffffffff\n\tPR_SET_SECCOMP                       = 0x16\n\tPR_SET_SECUREBITS                    = 0x1c\n\tPR_SET_SPECULATION_CTRL              = 0x35\n\tPR_SET_THP_DISABLE                   = 0x29\n\tPR_SET_TIMERSLACK                    = 0x1d\n\tPR_SET_TIMING                        = 0xe\n\tPR_SET_TSC                           = 0x1a\n\tPR_SET_UNALIGN                       = 0x6\n\tPR_SPEC_DISABLE                      = 0x4\n\tPR_SPEC_DISABLE_NOEXEC               = 0x10\n\tPR_SPEC_ENABLE                       = 0x2\n\tPR_SPEC_FORCE_DISABLE                = 0x8\n\tPR_SPEC_INDIRECT_BRANCH              = 0x1\n\tPR_SPEC_NOT_AFFECTED                 = 0x0\n\tPR_SPEC_PRCTL                        = 0x1\n\tPR_SPEC_STORE_BYPASS                 = 0x0\n\tPR_SVE_GET_VL                        = 0x33\n\tPR_SVE_SET_VL                        = 0x32\n\tPR_SVE_SET_VL_ONEXEC                 = 0x40000\n\tPR_SVE_VL_INHERIT                    = 0x20000\n\tPR_SVE_VL_LEN_MASK                   = 0xffff\n\tPR_TASK_PERF_EVENTS_DISABLE          = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE           = 0x20\n\tPR_TIMING_STATISTICAL                = 0x0\n\tPR_TIMING_TIMESTAMP                  = 0x1\n\tPR_TSC_ENABLE                        = 0x1\n\tPR_TSC_SIGSEGV                       = 0x2\n\tPR_UNALIGN_NOPRINT                   = 0x1\n\tPR_UNALIGN_SIGBUS                    = 0x2\n\tPSTOREFS_MAGIC                       = 0x6165676c\n\tPTRACE_ATTACH                        = 0x10\n\tPTRACE_CONT                          = 0x7\n\tPTRACE_DETACH                        = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY        = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT         = 0x2\n\tPTRACE_EVENT_CLONE                   = 0x3\n\tPTRACE_EVENT_EXEC                    = 0x4\n\tPTRACE_EVENT_EXIT                    = 0x6\n\tPTRACE_EVENT_FORK                    = 0x1\n\tPTRACE_EVENT_SECCOMP                 = 0x7\n\tPTRACE_EVENT_STOP                    = 0x80\n\tPTRACE_EVENT_VFORK                   = 0x2\n\tPTRACE_EVENT_VFORK_DONE              = 0x5\n\tPTRACE_GETEVENTMSG                   = 0x4201\n\tPTRACE_GETFPAREGS                    = 0x14\n\tPTRACE_GETFPREGS                     = 0xe\n\tPTRACE_GETFPREGS64                   = 0x19\n\tPTRACE_GETREGS                       = 0xc\n\tPTRACE_GETREGS64                     = 0x16\n\tPTRACE_GETREGSET                     = 0x4204\n\tPTRACE_GETSIGINFO                    = 0x4202\n\tPTRACE_GETSIGMASK                    = 0x420a\n\tPTRACE_GET_SYSCALL_INFO              = 0x420e\n\tPTRACE_INTERRUPT                     = 0x4207\n\tPTRACE_KILL                          = 0x8\n\tPTRACE_LISTEN                        = 0x4208\n\tPTRACE_O_EXITKILL                    = 0x100000\n\tPTRACE_O_MASK                        = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP             = 0x200000\n\tPTRACE_O_TRACECLONE                  = 0x8\n\tPTRACE_O_TRACEEXEC                   = 0x10\n\tPTRACE_O_TRACEEXIT                   = 0x40\n\tPTRACE_O_TRACEFORK                   = 0x2\n\tPTRACE_O_TRACESECCOMP                = 0x80\n\tPTRACE_O_TRACESYSGOOD                = 0x1\n\tPTRACE_O_TRACEVFORK                  = 0x4\n\tPTRACE_O_TRACEVFORKDONE              = 0x20\n\tPTRACE_PEEKDATA                      = 0x2\n\tPTRACE_PEEKSIGINFO                   = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED            = 0x1\n\tPTRACE_PEEKTEXT                      = 0x1\n\tPTRACE_PEEKUSR                       = 0x3\n\tPTRACE_POKEDATA                      = 0x5\n\tPTRACE_POKETEXT                      = 0x4\n\tPTRACE_POKEUSR                       = 0x6\n\tPTRACE_READDATA                      = 0x10\n\tPTRACE_READTEXT                      = 0x12\n\tPTRACE_SECCOMP_GET_FILTER            = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA          = 0x420d\n\tPTRACE_SEIZE                         = 0x4206\n\tPTRACE_SETFPAREGS                    = 0x15\n\tPTRACE_SETFPREGS                     = 0xf\n\tPTRACE_SETFPREGS64                   = 0x1a\n\tPTRACE_SETOPTIONS                    = 0x4200\n\tPTRACE_SETREGS                       = 0xd\n\tPTRACE_SETREGS64                     = 0x17\n\tPTRACE_SETREGSET                     = 0x4205\n\tPTRACE_SETSIGINFO                    = 0x4203\n\tPTRACE_SETSIGMASK                    = 0x420b\n\tPTRACE_SINGLESTEP                    = 0x9\n\tPTRACE_SPARC_DETACH                  = 0xb\n\tPTRACE_SYSCALL                       = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY            = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT             = 0x2\n\tPTRACE_SYSCALL_INFO_NONE             = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP          = 0x3\n\tPTRACE_TRACEME                       = 0x0\n\tPTRACE_WRITEDATA                     = 0x11\n\tPTRACE_WRITETEXT                     = 0x13\n\tPT_FP                                = 0x48\n\tPT_G0                                = 0x10\n\tPT_G1                                = 0x14\n\tPT_G2                                = 0x18\n\tPT_G3                                = 0x1c\n\tPT_G4                                = 0x20\n\tPT_G5                                = 0x24\n\tPT_G6                                = 0x28\n\tPT_G7                                = 0x2c\n\tPT_I0                                = 0x30\n\tPT_I1                                = 0x34\n\tPT_I2                                = 0x38\n\tPT_I3                                = 0x3c\n\tPT_I4                                = 0x40\n\tPT_I5                                = 0x44\n\tPT_I6                                = 0x48\n\tPT_I7                                = 0x4c\n\tPT_NPC                               = 0x8\n\tPT_PC                                = 0x4\n\tPT_PSR                               = 0x0\n\tPT_REGS_MAGIC                        = 0x57ac6c00\n\tPT_TNPC                              = 0x90\n\tPT_TPC                               = 0x88\n\tPT_TSTATE                            = 0x80\n\tPT_V9_FP                             = 0x70\n\tPT_V9_G0                             = 0x0\n\tPT_V9_G1                             = 0x8\n\tPT_V9_G2                             = 0x10\n\tPT_V9_G3                             = 0x18\n\tPT_V9_G4                             = 0x20\n\tPT_V9_G5                             = 0x28\n\tPT_V9_G6                             = 0x30\n\tPT_V9_G7                             = 0x38\n\tPT_V9_I0                             = 0x40\n\tPT_V9_I1                             = 0x48\n\tPT_V9_I2                             = 0x50\n\tPT_V9_I3                             = 0x58\n\tPT_V9_I4                             = 0x60\n\tPT_V9_I5                             = 0x68\n\tPT_V9_I6                             = 0x70\n\tPT_V9_I7                             = 0x78\n\tPT_V9_MAGIC                          = 0x9c\n\tPT_V9_TNPC                           = 0x90\n\tPT_V9_TPC                            = 0x88\n\tPT_V9_TSTATE                         = 0x80\n\tPT_V9_Y                              = 0x98\n\tPT_WIM                               = 0x10\n\tPT_Y                                 = 0xc\n\tQNX4_SUPER_MAGIC                     = 0x2f\n\tQNX6_SUPER_MAGIC                     = 0x68191122\n\tRAMFS_MAGIC                          = 0x858458f6\n\tRDTGROUP_SUPER_MAGIC                 = 0x7655821\n\tREISERFS_SUPER_MAGIC                 = 0x52654973\n\tRENAME_EXCHANGE                      = 0x2\n\tRENAME_NOREPLACE                     = 0x1\n\tRENAME_WHITEOUT                      = 0x4\n\tRLIMIT_AS                            = 0x9\n\tRLIMIT_CORE                          = 0x4\n\tRLIMIT_CPU                           = 0x0\n\tRLIMIT_DATA                          = 0x2\n\tRLIMIT_FSIZE                         = 0x1\n\tRLIMIT_LOCKS                         = 0xa\n\tRLIMIT_MEMLOCK                       = 0x8\n\tRLIMIT_MSGQUEUE                      = 0xc\n\tRLIMIT_NICE                          = 0xd\n\tRLIMIT_NOFILE                        = 0x6\n\tRLIMIT_NPROC                         = 0x7\n\tRLIMIT_RSS                           = 0x5\n\tRLIMIT_RTPRIO                        = 0xe\n\tRLIMIT_RTTIME                        = 0xf\n\tRLIMIT_SIGPENDING                    = 0xb\n\tRLIMIT_STACK                         = 0x3\n\tRLIM_INFINITY                        = 0xffffffffffffffff\n\tRNDADDENTROPY                        = 0x80085203\n\tRNDADDTOENTCNT                       = 0x80045201\n\tRNDCLEARPOOL                         = 0x20005206\n\tRNDGETENTCNT                         = 0x40045200\n\tRNDGETPOOL                           = 0x40085202\n\tRNDRESEEDCRNG                        = 0x20005207\n\tRNDZAPENTCNT                         = 0x20005204\n\tRTAX_ADVMSS                          = 0x8\n\tRTAX_CC_ALGO                         = 0x10\n\tRTAX_CWND                            = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE              = 0x11\n\tRTAX_FEATURES                        = 0xc\n\tRTAX_FEATURE_ALLFRAG                 = 0x8\n\tRTAX_FEATURE_ECN                     = 0x1\n\tRTAX_FEATURE_MASK                    = 0xf\n\tRTAX_FEATURE_SACK                    = 0x2\n\tRTAX_FEATURE_TIMESTAMP               = 0x4\n\tRTAX_HOPLIMIT                        = 0xa\n\tRTAX_INITCWND                        = 0xb\n\tRTAX_INITRWND                        = 0xe\n\tRTAX_LOCK                            = 0x1\n\tRTAX_MAX                             = 0x11\n\tRTAX_MTU                             = 0x2\n\tRTAX_QUICKACK                        = 0xf\n\tRTAX_REORDERING                      = 0x9\n\tRTAX_RTO_MIN                         = 0xd\n\tRTAX_RTT                             = 0x4\n\tRTAX_RTTVAR                          = 0x5\n\tRTAX_SSTHRESH                        = 0x6\n\tRTAX_UNSPEC                          = 0x0\n\tRTAX_WINDOW                          = 0x3\n\tRTA_ALIGNTO                          = 0x4\n\tRTA_MAX                              = 0x1e\n\tRTCF_DIRECTSRC                       = 0x4000000\n\tRTCF_DOREDIRECT                      = 0x1000000\n\tRTCF_LOG                             = 0x2000000\n\tRTCF_MASQ                            = 0x400000\n\tRTCF_NAT                             = 0x800000\n\tRTCF_VALVE                           = 0x200000\n\tRTC_AF                               = 0x20\n\tRTC_AIE_OFF                          = 0x20007002\n\tRTC_AIE_ON                           = 0x20007001\n\tRTC_ALM_READ                         = 0x40247008\n\tRTC_ALM_SET                          = 0x80247007\n\tRTC_EPOCH_READ                       = 0x4008700d\n\tRTC_EPOCH_SET                        = 0x8008700e\n\tRTC_IRQF                             = 0x80\n\tRTC_IRQP_READ                        = 0x4008700b\n\tRTC_IRQP_SET                         = 0x8008700c\n\tRTC_MAX_FREQ                         = 0x2000\n\tRTC_PF                               = 0x40\n\tRTC_PIE_OFF                          = 0x20007006\n\tRTC_PIE_ON                           = 0x20007005\n\tRTC_PLL_GET                          = 0x40207011\n\tRTC_PLL_SET                          = 0x80207012\n\tRTC_RD_TIME                          = 0x40247009\n\tRTC_SET_TIME                         = 0x8024700a\n\tRTC_UF                               = 0x10\n\tRTC_UIE_OFF                          = 0x20007004\n\tRTC_UIE_ON                           = 0x20007003\n\tRTC_VL_CLR                           = 0x20007014\n\tRTC_VL_READ                          = 0x40047013\n\tRTC_WIE_OFF                          = 0x20007010\n\tRTC_WIE_ON                           = 0x2000700f\n\tRTC_WKALM_RD                         = 0x40287010\n\tRTC_WKALM_SET                        = 0x8028700f\n\tRTF_ADDRCLASSMASK                    = 0xf8000000\n\tRTF_ADDRCONF                         = 0x40000\n\tRTF_ALLONLINK                        = 0x20000\n\tRTF_BROADCAST                        = 0x10000000\n\tRTF_CACHE                            = 0x1000000\n\tRTF_DEFAULT                          = 0x10000\n\tRTF_DYNAMIC                          = 0x10\n\tRTF_FLOW                             = 0x2000000\n\tRTF_GATEWAY                          = 0x2\n\tRTF_HOST                             = 0x4\n\tRTF_INTERFACE                        = 0x40000000\n\tRTF_IRTT                             = 0x100\n\tRTF_LINKRT                           = 0x100000\n\tRTF_LOCAL                            = 0x80000000\n\tRTF_MODIFIED                         = 0x20\n\tRTF_MSS                              = 0x40\n\tRTF_MTU                              = 0x40\n\tRTF_MULTICAST                        = 0x20000000\n\tRTF_NAT                              = 0x8000000\n\tRTF_NOFORWARD                        = 0x1000\n\tRTF_NONEXTHOP                        = 0x200000\n\tRTF_NOPMTUDISC                       = 0x4000\n\tRTF_POLICY                           = 0x4000000\n\tRTF_REINSTATE                        = 0x8\n\tRTF_REJECT                           = 0x200\n\tRTF_STATIC                           = 0x400\n\tRTF_THROW                            = 0x2000\n\tRTF_UP                               = 0x1\n\tRTF_WINDOW                           = 0x80\n\tRTF_XRESOLVE                         = 0x800\n\tRTM_BASE                             = 0x10\n\tRTM_DELACTION                        = 0x31\n\tRTM_DELADDR                          = 0x15\n\tRTM_DELADDRLABEL                     = 0x49\n\tRTM_DELCHAIN                         = 0x65\n\tRTM_DELLINK                          = 0x11\n\tRTM_DELMDB                           = 0x55\n\tRTM_DELNEIGH                         = 0x1d\n\tRTM_DELNETCONF                       = 0x51\n\tRTM_DELNEXTHOP                       = 0x69\n\tRTM_DELNSID                          = 0x59\n\tRTM_DELQDISC                         = 0x25\n\tRTM_DELROUTE                         = 0x19\n\tRTM_DELRULE                          = 0x21\n\tRTM_DELTCLASS                        = 0x29\n\tRTM_DELTFILTER                       = 0x2d\n\tRTM_F_CLONED                         = 0x200\n\tRTM_F_EQUALIZE                       = 0x400\n\tRTM_F_FIB_MATCH                      = 0x2000\n\tRTM_F_LOOKUP_TABLE                   = 0x1000\n\tRTM_F_NOTIFY                         = 0x100\n\tRTM_F_PREFIX                         = 0x800\n\tRTM_GETACTION                        = 0x32\n\tRTM_GETADDR                          = 0x16\n\tRTM_GETADDRLABEL                     = 0x4a\n\tRTM_GETANYCAST                       = 0x3e\n\tRTM_GETCHAIN                         = 0x66\n\tRTM_GETDCB                           = 0x4e\n\tRTM_GETLINK                          = 0x12\n\tRTM_GETMDB                           = 0x56\n\tRTM_GETMULTICAST                     = 0x3a\n\tRTM_GETNEIGH                         = 0x1e\n\tRTM_GETNEIGHTBL                      = 0x42\n\tRTM_GETNETCONF                       = 0x52\n\tRTM_GETNEXTHOP                       = 0x6a\n\tRTM_GETNSID                          = 0x5a\n\tRTM_GETQDISC                         = 0x26\n\tRTM_GETROUTE                         = 0x1a\n\tRTM_GETRULE                          = 0x22\n\tRTM_GETSTATS                         = 0x5e\n\tRTM_GETTCLASS                        = 0x2a\n\tRTM_GETTFILTER                       = 0x2e\n\tRTM_MAX                              = 0x6b\n\tRTM_NEWACTION                        = 0x30\n\tRTM_NEWADDR                          = 0x14\n\tRTM_NEWADDRLABEL                     = 0x48\n\tRTM_NEWCACHEREPORT                   = 0x60\n\tRTM_NEWCHAIN                         = 0x64\n\tRTM_NEWLINK                          = 0x10\n\tRTM_NEWMDB                           = 0x54\n\tRTM_NEWNDUSEROPT                     = 0x44\n\tRTM_NEWNEIGH                         = 0x1c\n\tRTM_NEWNEIGHTBL                      = 0x40\n\tRTM_NEWNETCONF                       = 0x50\n\tRTM_NEWNEXTHOP                       = 0x68\n\tRTM_NEWNSID                          = 0x58\n\tRTM_NEWPREFIX                        = 0x34\n\tRTM_NEWQDISC                         = 0x24\n\tRTM_NEWROUTE                         = 0x18\n\tRTM_NEWRULE                          = 0x20\n\tRTM_NEWSTATS                         = 0x5c\n\tRTM_NEWTCLASS                        = 0x28\n\tRTM_NEWTFILTER                       = 0x2c\n\tRTM_NR_FAMILIES                      = 0x17\n\tRTM_NR_MSGTYPES                      = 0x5c\n\tRTM_SETDCB                           = 0x4f\n\tRTM_SETLINK                          = 0x13\n\tRTM_SETNEIGHTBL                      = 0x43\n\tRTNH_ALIGNTO                         = 0x4\n\tRTNH_COMPARE_MASK                    = 0x19\n\tRTNH_F_DEAD                          = 0x1\n\tRTNH_F_LINKDOWN                      = 0x10\n\tRTNH_F_OFFLOAD                       = 0x8\n\tRTNH_F_ONLINK                        = 0x4\n\tRTNH_F_PERVASIVE                     = 0x2\n\tRTNH_F_UNRESOLVED                    = 0x20\n\tRTN_MAX                              = 0xb\n\tRTPROT_BABEL                         = 0x2a\n\tRTPROT_BGP                           = 0xba\n\tRTPROT_BIRD                          = 0xc\n\tRTPROT_BOOT                          = 0x3\n\tRTPROT_DHCP                          = 0x10\n\tRTPROT_DNROUTED                      = 0xd\n\tRTPROT_EIGRP                         = 0xc0\n\tRTPROT_GATED                         = 0x8\n\tRTPROT_ISIS                          = 0xbb\n\tRTPROT_KERNEL                        = 0x2\n\tRTPROT_MROUTED                       = 0x11\n\tRTPROT_MRT                           = 0xa\n\tRTPROT_NTK                           = 0xf\n\tRTPROT_OSPF                          = 0xbc\n\tRTPROT_RA                            = 0x9\n\tRTPROT_REDIRECT                      = 0x1\n\tRTPROT_RIP                           = 0xbd\n\tRTPROT_STATIC                        = 0x4\n\tRTPROT_UNSPEC                        = 0x0\n\tRTPROT_XORP                          = 0xe\n\tRTPROT_ZEBRA                         = 0xb\n\tRT_CLASS_DEFAULT                     = 0xfd\n\tRT_CLASS_LOCAL                       = 0xff\n\tRT_CLASS_MAIN                        = 0xfe\n\tRT_CLASS_MAX                         = 0xff\n\tRT_CLASS_UNSPEC                      = 0x0\n\tRUSAGE_CHILDREN                      = -0x1\n\tRUSAGE_SELF                          = 0x0\n\tRUSAGE_THREAD                        = 0x1\n\tSCM_CREDENTIALS                      = 0x2\n\tSCM_RIGHTS                           = 0x1\n\tSCM_TIMESTAMP                        = 0x1d\n\tSCM_TIMESTAMPING                     = 0x23\n\tSCM_TIMESTAMPING_OPT_STATS           = 0x38\n\tSCM_TIMESTAMPING_PKTINFO             = 0x3c\n\tSCM_TIMESTAMPNS                      = 0x21\n\tSCM_TXTIME                           = 0x3f\n\tSCM_WIFI_STATUS                      = 0x25\n\tSC_LOG_FLUSH                         = 0x100000\n\tSECCOMP_MODE_DISABLED                = 0x0\n\tSECCOMP_MODE_FILTER                  = 0x2\n\tSECCOMP_MODE_STRICT                  = 0x1\n\tSECURITYFS_MAGIC                     = 0x73636673\n\tSELINUX_MAGIC                        = 0xf97cff8c\n\tSFD_CLOEXEC                          = 0x400000\n\tSFD_NONBLOCK                         = 0x4000\n\tSHUT_RD                              = 0x0\n\tSHUT_RDWR                            = 0x2\n\tSHUT_WR                              = 0x1\n\tSIOCADDDLCI                          = 0x8980\n\tSIOCADDMULTI                         = 0x8931\n\tSIOCADDRT                            = 0x890b\n\tSIOCATMARK                           = 0x8905\n\tSIOCBONDCHANGEACTIVE                 = 0x8995\n\tSIOCBONDENSLAVE                      = 0x8990\n\tSIOCBONDINFOQUERY                    = 0x8994\n\tSIOCBONDRELEASE                      = 0x8991\n\tSIOCBONDSETHWADDR                    = 0x8992\n\tSIOCBONDSLAVEINFOQUERY               = 0x8993\n\tSIOCBRADDBR                          = 0x89a0\n\tSIOCBRADDIF                          = 0x89a2\n\tSIOCBRDELBR                          = 0x89a1\n\tSIOCBRDELIF                          = 0x89a3\n\tSIOCDARP                             = 0x8953\n\tSIOCDELDLCI                          = 0x8981\n\tSIOCDELMULTI                         = 0x8932\n\tSIOCDELRT                            = 0x890c\n\tSIOCDEVPRIVATE                       = 0x89f0\n\tSIOCDIFADDR                          = 0x8936\n\tSIOCDRARP                            = 0x8960\n\tSIOCETHTOOL                          = 0x8946\n\tSIOCGARP                             = 0x8954\n\tSIOCGETLINKNAME                      = 0x89e0\n\tSIOCGETNODEID                        = 0x89e1\n\tSIOCGHWTSTAMP                        = 0x89b1\n\tSIOCGIFADDR                          = 0x8915\n\tSIOCGIFBR                            = 0x8940\n\tSIOCGIFBRDADDR                       = 0x8919\n\tSIOCGIFCONF                          = 0x8912\n\tSIOCGIFCOUNT                         = 0x8938\n\tSIOCGIFDSTADDR                       = 0x8917\n\tSIOCGIFENCAP                         = 0x8925\n\tSIOCGIFFLAGS                         = 0x8913\n\tSIOCGIFHWADDR                        = 0x8927\n\tSIOCGIFINDEX                         = 0x8933\n\tSIOCGIFMAP                           = 0x8970\n\tSIOCGIFMEM                           = 0x891f\n\tSIOCGIFMETRIC                        = 0x891d\n\tSIOCGIFMTU                           = 0x8921\n\tSIOCGIFNAME                          = 0x8910\n\tSIOCGIFNETMASK                       = 0x891b\n\tSIOCGIFPFLAGS                        = 0x8935\n\tSIOCGIFSLAVE                         = 0x8929\n\tSIOCGIFTXQLEN                        = 0x8942\n\tSIOCGIFVLAN                          = 0x8982\n\tSIOCGMIIPHY                          = 0x8947\n\tSIOCGMIIREG                          = 0x8948\n\tSIOCGPGRP                            = 0x8904\n\tSIOCGPPPCSTATS                       = 0x89f2\n\tSIOCGPPPSTATS                        = 0x89f0\n\tSIOCGPPPVER                          = 0x89f1\n\tSIOCGRARP                            = 0x8961\n\tSIOCGSKNS                            = 0x894c\n\tSIOCGSTAMP                           = 0x8906\n\tSIOCGSTAMPNS                         = 0x8907\n\tSIOCGSTAMPNS_NEW                     = 0x40108907\n\tSIOCGSTAMPNS_OLD                     = 0x8907\n\tSIOCGSTAMP_NEW                       = 0x40108906\n\tSIOCGSTAMP_OLD                       = 0x8906\n\tSIOCINQ                              = 0x4004667f\n\tSIOCOUTQ                             = 0x40047473\n\tSIOCOUTQNSD                          = 0x894b\n\tSIOCPROTOPRIVATE                     = 0x89e0\n\tSIOCRTMSG                            = 0x890d\n\tSIOCSARP                             = 0x8955\n\tSIOCSHWTSTAMP                        = 0x89b0\n\tSIOCSIFADDR                          = 0x8916\n\tSIOCSIFBR                            = 0x8941\n\tSIOCSIFBRDADDR                       = 0x891a\n\tSIOCSIFDSTADDR                       = 0x8918\n\tSIOCSIFENCAP                         = 0x8926\n\tSIOCSIFFLAGS                         = 0x8914\n\tSIOCSIFHWADDR                        = 0x8924\n\tSIOCSIFHWBROADCAST                   = 0x8937\n\tSIOCSIFLINK                          = 0x8911\n\tSIOCSIFMAP                           = 0x8971\n\tSIOCSIFMEM                           = 0x8920\n\tSIOCSIFMETRIC                        = 0x891e\n\tSIOCSIFMTU                           = 0x8922\n\tSIOCSIFNAME                          = 0x8923\n\tSIOCSIFNETMASK                       = 0x891c\n\tSIOCSIFPFLAGS                        = 0x8934\n\tSIOCSIFSLAVE                         = 0x8930\n\tSIOCSIFTXQLEN                        = 0x8943\n\tSIOCSIFVLAN                          = 0x8983\n\tSIOCSMIIREG                          = 0x8949\n\tSIOCSPGRP                            = 0x8902\n\tSIOCSRARP                            = 0x8962\n\tSIOCWANDEV                           = 0x894a\n\tSMACK_MAGIC                          = 0x43415d53\n\tSMART_AUTOSAVE                       = 0xd2\n\tSMART_AUTO_OFFLINE                   = 0xdb\n\tSMART_DISABLE                        = 0xd9\n\tSMART_ENABLE                         = 0xd8\n\tSMART_HCYL_PASS                      = 0xc2\n\tSMART_IMMEDIATE_OFFLINE              = 0xd4\n\tSMART_LCYL_PASS                      = 0x4f\n\tSMART_READ_LOG_SECTOR                = 0xd5\n\tSMART_READ_THRESHOLDS                = 0xd1\n\tSMART_READ_VALUES                    = 0xd0\n\tSMART_SAVE                           = 0xd3\n\tSMART_STATUS                         = 0xda\n\tSMART_WRITE_LOG_SECTOR               = 0xd6\n\tSMART_WRITE_THRESHOLDS               = 0xd7\n\tSMB_SUPER_MAGIC                      = 0x517b\n\tSOCKFS_MAGIC                         = 0x534f434b\n\tSOCK_CLOEXEC                         = 0x400000\n\tSOCK_DCCP                            = 0x6\n\tSOCK_DGRAM                           = 0x2\n\tSOCK_IOC_TYPE                        = 0x89\n\tSOCK_NONBLOCK                        = 0x4000\n\tSOCK_PACKET                          = 0xa\n\tSOCK_RAW                             = 0x3\n\tSOCK_RDM                             = 0x4\n\tSOCK_SEQPACKET                       = 0x5\n\tSOCK_STREAM                          = 0x1\n\tSOL_AAL                              = 0x109\n\tSOL_ALG                              = 0x117\n\tSOL_ATM                              = 0x108\n\tSOL_CAIF                             = 0x116\n\tSOL_CAN_BASE                         = 0x64\n\tSOL_DCCP                             = 0x10d\n\tSOL_DECNET                           = 0x105\n\tSOL_ICMPV6                           = 0x3a\n\tSOL_IP                               = 0x0\n\tSOL_IPV6                             = 0x29\n\tSOL_IRDA                             = 0x10a\n\tSOL_IUCV                             = 0x115\n\tSOL_KCM                              = 0x119\n\tSOL_LLC                              = 0x10c\n\tSOL_NETBEUI                          = 0x10b\n\tSOL_NETLINK                          = 0x10e\n\tSOL_NFC                              = 0x118\n\tSOL_PACKET                           = 0x107\n\tSOL_PNPIPE                           = 0x113\n\tSOL_PPPOL2TP                         = 0x111\n\tSOL_RAW                              = 0xff\n\tSOL_RDS                              = 0x114\n\tSOL_RXRPC                            = 0x110\n\tSOL_SOCKET                           = 0xffff\n\tSOL_TCP                              = 0x6\n\tSOL_TIPC                             = 0x10f\n\tSOL_TLS                              = 0x11a\n\tSOL_X25                              = 0x106\n\tSOL_XDP                              = 0x11b\n\tSOMAXCONN                            = 0x80\n\tSO_ACCEPTCONN                        = 0x8000\n\tSO_ATTACH_BPF                        = 0x34\n\tSO_ATTACH_FILTER                     = 0x1a\n\tSO_ATTACH_REUSEPORT_CBPF             = 0x35\n\tSO_ATTACH_REUSEPORT_EBPF             = 0x36\n\tSO_BINDTODEVICE                      = 0xd\n\tSO_BINDTOIFINDEX                     = 0x41\n\tSO_BPF_EXTENSIONS                    = 0x32\n\tSO_BROADCAST                         = 0x20\n\tSO_BSDCOMPAT                         = 0x400\n\tSO_BUSY_POLL                         = 0x30\n\tSO_CNX_ADVICE                        = 0x37\n\tSO_COOKIE                            = 0x3b\n\tSO_DEBUG                             = 0x1\n\tSO_DETACH_BPF                        = 0x1b\n\tSO_DETACH_FILTER                     = 0x1b\n\tSO_DETACH_REUSEPORT_BPF              = 0x47\n\tSO_DOMAIN                            = 0x1029\n\tSO_DONTROUTE                         = 0x10\n\tSO_EE_CODE_TXTIME_INVALID_PARAM      = 0x1\n\tSO_EE_CODE_TXTIME_MISSED             = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED           = 0x1\n\tSO_EE_ORIGIN_ICMP                    = 0x2\n\tSO_EE_ORIGIN_ICMP6                   = 0x3\n\tSO_EE_ORIGIN_LOCAL                   = 0x1\n\tSO_EE_ORIGIN_NONE                    = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING            = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                = 0x4\n\tSO_EE_ORIGIN_TXTIME                  = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                = 0x5\n\tSO_ERROR                             = 0x1007\n\tSO_GET_FILTER                        = 0x1a\n\tSO_INCOMING_CPU                      = 0x33\n\tSO_INCOMING_NAPI_ID                  = 0x3a\n\tSO_KEEPALIVE                         = 0x8\n\tSO_LINGER                            = 0x80\n\tSO_LOCK_FILTER                       = 0x28\n\tSO_MARK                              = 0x22\n\tSO_MAX_PACING_RATE                   = 0x31\n\tSO_MEMINFO                           = 0x39\n\tSO_NOFCS                             = 0x27\n\tSO_NO_CHECK                          = 0xb\n\tSO_OOBINLINE                         = 0x100\n\tSO_PASSCRED                          = 0x2\n\tSO_PASSSEC                           = 0x1f\n\tSO_PEEK_OFF                          = 0x26\n\tSO_PEERCRED                          = 0x40\n\tSO_PEERGROUPS                        = 0x3d\n\tSO_PEERNAME                          = 0x1c\n\tSO_PEERSEC                           = 0x1e\n\tSO_PRIORITY                          = 0xc\n\tSO_PROTOCOL                          = 0x1028\n\tSO_RCVBUF                            = 0x1002\n\tSO_RCVBUFFORCE                       = 0x100b\n\tSO_RCVLOWAT                          = 0x800\n\tSO_RCVTIMEO                          = 0x2000\n\tSO_RCVTIMEO_NEW                      = 0x44\n\tSO_RCVTIMEO_OLD                      = 0x2000\n\tSO_REUSEADDR                         = 0x4\n\tSO_REUSEPORT                         = 0x200\n\tSO_RXQ_OVFL                          = 0x24\n\tSO_SECURITY_AUTHENTICATION           = 0x5001\n\tSO_SECURITY_ENCRYPTION_NETWORK       = 0x5004\n\tSO_SECURITY_ENCRYPTION_TRANSPORT     = 0x5002\n\tSO_SELECT_ERR_QUEUE                  = 0x29\n\tSO_SNDBUF                            = 0x1001\n\tSO_SNDBUFFORCE                       = 0x100a\n\tSO_SNDLOWAT                          = 0x1000\n\tSO_SNDTIMEO                          = 0x4000\n\tSO_SNDTIMEO_NEW                      = 0x45\n\tSO_SNDTIMEO_OLD                      = 0x4000\n\tSO_TIMESTAMP                         = 0x1d\n\tSO_TIMESTAMPING                      = 0x23\n\tSO_TIMESTAMPING_NEW                  = 0x43\n\tSO_TIMESTAMPING_OLD                  = 0x23\n\tSO_TIMESTAMPNS                       = 0x21\n\tSO_TIMESTAMPNS_NEW                   = 0x42\n\tSO_TIMESTAMPNS_OLD                   = 0x21\n\tSO_TIMESTAMP_NEW                     = 0x46\n\tSO_TIMESTAMP_OLD                     = 0x1d\n\tSO_TXTIME                            = 0x3f\n\tSO_TYPE                              = 0x1008\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE        = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE        = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE            = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT        = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX          = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID        = 0x3\n\tSO_VM_SOCKETS_TRUSTED                = 0x5\n\tSO_WIFI_STATUS                       = 0x25\n\tSO_ZEROCOPY                          = 0x3e\n\tSPLICE_F_GIFT                        = 0x8\n\tSPLICE_F_MORE                        = 0x4\n\tSPLICE_F_MOVE                        = 0x1\n\tSPLICE_F_NONBLOCK                    = 0x2\n\tSQUASHFS_MAGIC                       = 0x73717368\n\tSTACK_END_MAGIC                      = 0x57ac6e9d\n\tSTATX_ALL                            = 0xfff\n\tSTATX_ATIME                          = 0x20\n\tSTATX_ATTR_APPEND                    = 0x20\n\tSTATX_ATTR_AUTOMOUNT                 = 0x1000\n\tSTATX_ATTR_COMPRESSED                = 0x4\n\tSTATX_ATTR_ENCRYPTED                 = 0x800\n\tSTATX_ATTR_IMMUTABLE                 = 0x10\n\tSTATX_ATTR_NODUMP                    = 0x40\n\tSTATX_BASIC_STATS                    = 0x7ff\n\tSTATX_BLOCKS                         = 0x400\n\tSTATX_BTIME                          = 0x800\n\tSTATX_CTIME                          = 0x80\n\tSTATX_GID                            = 0x10\n\tSTATX_INO                            = 0x100\n\tSTATX_MODE                           = 0x2\n\tSTATX_MTIME                          = 0x40\n\tSTATX_NLINK                          = 0x4\n\tSTATX_SIZE                           = 0x200\n\tSTATX_TYPE                           = 0x1\n\tSTATX_UID                            = 0x8\n\tSTATX__RESERVED                      = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER           = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE          = 0x1\n\tSYNC_FILE_RANGE_WRITE                = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT       = 0x7\n\tSYSFS_MAGIC                          = 0x62656572\n\tS_BLKSIZE                            = 0x200\n\tS_IEXEC                              = 0x40\n\tS_IFBLK                              = 0x6000\n\tS_IFCHR                              = 0x2000\n\tS_IFDIR                              = 0x4000\n\tS_IFIFO                              = 0x1000\n\tS_IFLNK                              = 0xa000\n\tS_IFMT                               = 0xf000\n\tS_IFREG                              = 0x8000\n\tS_IFSOCK                             = 0xc000\n\tS_IREAD                              = 0x100\n\tS_IRGRP                              = 0x20\n\tS_IROTH                              = 0x4\n\tS_IRUSR                              = 0x100\n\tS_IRWXG                              = 0x38\n\tS_IRWXO                              = 0x7\n\tS_IRWXU                              = 0x1c0\n\tS_ISGID                              = 0x400\n\tS_ISUID                              = 0x800\n\tS_ISVTX                              = 0x200\n\tS_IWGRP                              = 0x10\n\tS_IWOTH                              = 0x2\n\tS_IWRITE                             = 0x80\n\tS_IWUSR                              = 0x80\n\tS_IXGRP                              = 0x8\n\tS_IXOTH                              = 0x1\n\tS_IXUSR                              = 0x40\n\tTAB0                                 = 0x0\n\tTAB1                                 = 0x800\n\tTAB2                                 = 0x1000\n\tTAB3                                 = 0x1800\n\tTABDLY                               = 0x1800\n\tTASKSTATS_CMD_ATTR_MAX               = 0x4\n\tTASKSTATS_CMD_MAX                    = 0x2\n\tTASKSTATS_GENL_NAME                  = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION               = 0x1\n\tTASKSTATS_TYPE_MAX                   = 0x6\n\tTASKSTATS_VERSION                    = 0x9\n\tTCFLSH                               = 0x20005407\n\tTCGETA                               = 0x40125401\n\tTCGETS                               = 0x40245408\n\tTCGETS2                              = 0x402c540c\n\tTCIFLUSH                             = 0x0\n\tTCIOFF                               = 0x2\n\tTCIOFLUSH                            = 0x2\n\tTCION                                = 0x3\n\tTCOFLUSH                             = 0x1\n\tTCOOFF                               = 0x0\n\tTCOON                                = 0x1\n\tTCP_BPF_IW                           = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                = 0x3ea\n\tTCP_CC_INFO                          = 0x1a\n\tTCP_CM_INQ                           = 0x24\n\tTCP_CONGESTION                       = 0xd\n\tTCP_COOKIE_IN_ALWAYS                 = 0x1\n\tTCP_COOKIE_MAX                       = 0x10\n\tTCP_COOKIE_MIN                       = 0x8\n\tTCP_COOKIE_OUT_NEVER                 = 0x2\n\tTCP_COOKIE_PAIR_SIZE                 = 0x20\n\tTCP_COOKIE_TRANSACTIONS              = 0xf\n\tTCP_CORK                             = 0x3\n\tTCP_DEFER_ACCEPT                     = 0x9\n\tTCP_FASTOPEN                         = 0x17\n\tTCP_FASTOPEN_CONNECT                 = 0x1e\n\tTCP_FASTOPEN_KEY                     = 0x21\n\tTCP_FASTOPEN_NO_COOKIE               = 0x22\n\tTCP_INFO                             = 0xb\n\tTCP_INQ                              = 0x24\n\tTCP_KEEPCNT                          = 0x6\n\tTCP_KEEPIDLE                         = 0x4\n\tTCP_KEEPINTVL                        = 0x5\n\tTCP_LINGER2                          = 0x8\n\tTCP_MAXSEG                           = 0x2\n\tTCP_MAXWIN                           = 0xffff\n\tTCP_MAX_WINSHIFT                     = 0xe\n\tTCP_MD5SIG                           = 0xe\n\tTCP_MD5SIG_EXT                       = 0x20\n\tTCP_MD5SIG_FLAG_PREFIX               = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                 = 0x50\n\tTCP_MSS                              = 0x200\n\tTCP_MSS_DEFAULT                      = 0x218\n\tTCP_MSS_DESIRED                      = 0x4c4\n\tTCP_NODELAY                          = 0x1\n\tTCP_NOTSENT_LOWAT                    = 0x19\n\tTCP_QUEUE_SEQ                        = 0x15\n\tTCP_QUICKACK                         = 0xc\n\tTCP_REPAIR                           = 0x13\n\tTCP_REPAIR_OFF                       = 0x0\n\tTCP_REPAIR_OFF_NO_WP                 = -0x1\n\tTCP_REPAIR_ON                        = 0x1\n\tTCP_REPAIR_OPTIONS                   = 0x16\n\tTCP_REPAIR_QUEUE                     = 0x14\n\tTCP_REPAIR_WINDOW                    = 0x1d\n\tTCP_SAVED_SYN                        = 0x1c\n\tTCP_SAVE_SYN                         = 0x1b\n\tTCP_SYNCNT                           = 0x7\n\tTCP_S_DATA_IN                        = 0x4\n\tTCP_S_DATA_OUT                       = 0x8\n\tTCP_THIN_DUPACK                      = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS             = 0x10\n\tTCP_TIMESTAMP                        = 0x18\n\tTCP_ULP                              = 0x1f\n\tTCP_USER_TIMEOUT                     = 0x12\n\tTCP_WINDOW_CLAMP                     = 0xa\n\tTCP_ZEROCOPY_RECEIVE                 = 0x23\n\tTCSAFLUSH                            = 0x2\n\tTCSBRK                               = 0x20005405\n\tTCSBRKP                              = 0x5425\n\tTCSETA                               = 0x80125402\n\tTCSETAF                              = 0x80125404\n\tTCSETAW                              = 0x80125403\n\tTCSETS                               = 0x80245409\n\tTCSETS2                              = 0x802c540d\n\tTCSETSF                              = 0x8024540b\n\tTCSETSF2                             = 0x802c540f\n\tTCSETSW                              = 0x8024540a\n\tTCSETSW2                             = 0x802c540e\n\tTCXONC                               = 0x20005406\n\tTIMER_ABSTIME                        = 0x1\n\tTIOCCBRK                             = 0x2000747a\n\tTIOCCONS                             = 0x20007424\n\tTIOCEXCL                             = 0x2000740d\n\tTIOCGDEV                             = 0x40045432\n\tTIOCGETD                             = 0x40047400\n\tTIOCGEXCL                            = 0x40045440\n\tTIOCGICOUNT                          = 0x545d\n\tTIOCGISO7816                         = 0x40285443\n\tTIOCGLCKTRMIOS                       = 0x5456\n\tTIOCGPGRP                            = 0x40047483\n\tTIOCGPKT                             = 0x40045438\n\tTIOCGPTLCK                           = 0x40045439\n\tTIOCGPTN                             = 0x40047486\n\tTIOCGPTPEER                          = 0x20007489\n\tTIOCGRS485                           = 0x40205441\n\tTIOCGSERIAL                          = 0x541e\n\tTIOCGSID                             = 0x40047485\n\tTIOCGSOFTCAR                         = 0x40047464\n\tTIOCGWINSZ                           = 0x40087468\n\tTIOCINQ                              = 0x4004667f\n\tTIOCLINUX                            = 0x541c\n\tTIOCMBIC                             = 0x8004746b\n\tTIOCMBIS                             = 0x8004746c\n\tTIOCMGET                             = 0x4004746a\n\tTIOCMIWAIT                           = 0x545c\n\tTIOCMSET                             = 0x8004746d\n\tTIOCM_CAR                            = 0x40\n\tTIOCM_CD                             = 0x40\n\tTIOCM_CTS                            = 0x20\n\tTIOCM_DSR                            = 0x100\n\tTIOCM_DTR                            = 0x2\n\tTIOCM_LE                             = 0x1\n\tTIOCM_RI                             = 0x80\n\tTIOCM_RNG                            = 0x80\n\tTIOCM_RTS                            = 0x4\n\tTIOCM_SR                             = 0x10\n\tTIOCM_ST                             = 0x8\n\tTIOCNOTTY                            = 0x20007471\n\tTIOCNXCL                             = 0x2000740e\n\tTIOCOUTQ                             = 0x40047473\n\tTIOCPKT                              = 0x80047470\n\tTIOCPKT_DATA                         = 0x0\n\tTIOCPKT_DOSTOP                       = 0x20\n\tTIOCPKT_FLUSHREAD                    = 0x1\n\tTIOCPKT_FLUSHWRITE                   = 0x2\n\tTIOCPKT_IOCTL                        = 0x40\n\tTIOCPKT_NOSTOP                       = 0x10\n\tTIOCPKT_START                        = 0x8\n\tTIOCPKT_STOP                         = 0x4\n\tTIOCSBRK                             = 0x2000747b\n\tTIOCSCTTY                            = 0x20007484\n\tTIOCSERCONFIG                        = 0x5453\n\tTIOCSERGETLSR                        = 0x5459\n\tTIOCSERGETMULTI                      = 0x545a\n\tTIOCSERGSTRUCT                       = 0x5458\n\tTIOCSERGWILD                         = 0x5454\n\tTIOCSERSETMULTI                      = 0x545b\n\tTIOCSERSWILD                         = 0x5455\n\tTIOCSETD                             = 0x80047401\n\tTIOCSIG                              = 0x80047488\n\tTIOCSISO7816                         = 0xc0285444\n\tTIOCSLCKTRMIOS                       = 0x5457\n\tTIOCSPGRP                            = 0x80047482\n\tTIOCSPTLCK                           = 0x80047487\n\tTIOCSRS485                           = 0xc0205442\n\tTIOCSSERIAL                          = 0x541f\n\tTIOCSSOFTCAR                         = 0x80047465\n\tTIOCSTART                            = 0x2000746e\n\tTIOCSTI                              = 0x80017472\n\tTIOCSTOP                             = 0x2000746f\n\tTIOCSWINSZ                           = 0x80087467\n\tTIOCVHANGUP                          = 0x20005437\n\tTIPC_ADDR_ID                         = 0x3\n\tTIPC_ADDR_MCAST                      = 0x1\n\tTIPC_ADDR_NAME                       = 0x2\n\tTIPC_ADDR_NAMESEQ                    = 0x1\n\tTIPC_CFG_SRV                         = 0x0\n\tTIPC_CLUSTER_BITS                    = 0xc\n\tTIPC_CLUSTER_MASK                    = 0xfff000\n\tTIPC_CLUSTER_OFFSET                  = 0xc\n\tTIPC_CLUSTER_SIZE                    = 0xfff\n\tTIPC_CONN_SHUTDOWN                   = 0x5\n\tTIPC_CONN_TIMEOUT                    = 0x82\n\tTIPC_CRITICAL_IMPORTANCE             = 0x3\n\tTIPC_DESTNAME                        = 0x3\n\tTIPC_DEST_DROPPABLE                  = 0x81\n\tTIPC_ERRINFO                         = 0x1\n\tTIPC_ERR_NO_NAME                     = 0x1\n\tTIPC_ERR_NO_NODE                     = 0x3\n\tTIPC_ERR_NO_PORT                     = 0x2\n\tTIPC_ERR_OVERLOAD                    = 0x4\n\tTIPC_GROUP_JOIN                      = 0x87\n\tTIPC_GROUP_LEAVE                     = 0x88\n\tTIPC_GROUP_LOOPBACK                  = 0x1\n\tTIPC_GROUP_MEMBER_EVTS               = 0x2\n\tTIPC_HIGH_IMPORTANCE                 = 0x2\n\tTIPC_IMPORTANCE                      = 0x7f\n\tTIPC_LINK_STATE                      = 0x2\n\tTIPC_LOW_IMPORTANCE                  = 0x0\n\tTIPC_MAX_BEARER_NAME                 = 0x20\n\tTIPC_MAX_IF_NAME                     = 0x10\n\tTIPC_MAX_LINK_NAME                   = 0x44\n\tTIPC_MAX_MEDIA_NAME                  = 0x10\n\tTIPC_MAX_USER_MSG_SIZE               = 0x101d0\n\tTIPC_MCAST_BROADCAST                 = 0x85\n\tTIPC_MCAST_REPLICAST                 = 0x86\n\tTIPC_MEDIUM_IMPORTANCE               = 0x1\n\tTIPC_NODEID_LEN                      = 0x10\n\tTIPC_NODE_BITS                       = 0xc\n\tTIPC_NODE_MASK                       = 0xfff\n\tTIPC_NODE_OFFSET                     = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                = 0x83\n\tTIPC_NODE_SIZE                       = 0xfff\n\tTIPC_NODE_STATE                      = 0x0\n\tTIPC_OK                              = 0x0\n\tTIPC_PUBLISHED                       = 0x1\n\tTIPC_RESERVED_TYPES                  = 0x40\n\tTIPC_RETDATA                         = 0x2\n\tTIPC_SERVICE_ADDR                    = 0x2\n\tTIPC_SERVICE_RANGE                   = 0x1\n\tTIPC_SOCKET_ADDR                     = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                = 0x84\n\tTIPC_SOCK_RECVQ_USED                 = 0x89\n\tTIPC_SRC_DROPPABLE                   = 0x80\n\tTIPC_SUBSCR_TIMEOUT                  = 0x3\n\tTIPC_SUB_CANCEL                      = 0x4\n\tTIPC_SUB_PORTS                       = 0x1\n\tTIPC_SUB_SERVICE                     = 0x2\n\tTIPC_TOP_SRV                         = 0x1\n\tTIPC_WAIT_FOREVER                    = 0xffffffff\n\tTIPC_WITHDRAWN                       = 0x2\n\tTIPC_ZONE_BITS                       = 0x8\n\tTIPC_ZONE_CLUSTER_MASK               = 0xfffff000\n\tTIPC_ZONE_MASK                       = 0xff000000\n\tTIPC_ZONE_OFFSET                     = 0x18\n\tTIPC_ZONE_SCOPE                      = 0x1\n\tTIPC_ZONE_SIZE                       = 0xff\n\tTMPFS_MAGIC                          = 0x1021994\n\tTOSTOP                               = 0x100\n\tTPACKET_ALIGNMENT                    = 0x10\n\tTPACKET_HDRLEN                       = 0x34\n\tTP_STATUS_AVAILABLE                  = 0x0\n\tTP_STATUS_BLK_TMO                    = 0x20\n\tTP_STATUS_COPY                       = 0x2\n\tTP_STATUS_CSUMNOTREADY               = 0x8\n\tTP_STATUS_CSUM_VALID                 = 0x80\n\tTP_STATUS_KERNEL                     = 0x0\n\tTP_STATUS_LOSING                     = 0x4\n\tTP_STATUS_SENDING                    = 0x2\n\tTP_STATUS_SEND_REQUEST               = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE            = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE            = 0x40000000\n\tTP_STATUS_USER                       = 0x1\n\tTP_STATUS_VLAN_TPID_VALID            = 0x40\n\tTP_STATUS_VLAN_VALID                 = 0x10\n\tTP_STATUS_WRONG_FORMAT               = 0x4\n\tTRACEFS_MAGIC                        = 0x74726163\n\tTS_COMM_LEN                          = 0x20\n\tTUNATTACHFILTER                      = 0x801054d5\n\tTUNDETACHFILTER                      = 0x801054d6\n\tTUNGETDEVNETNS                       = 0x200054e3\n\tTUNGETFEATURES                       = 0x400454cf\n\tTUNGETFILTER                         = 0x401054db\n\tTUNGETIFF                            = 0x400454d2\n\tTUNGETSNDBUF                         = 0x400454d3\n\tTUNGETVNETBE                         = 0x400454df\n\tTUNGETVNETHDRSZ                      = 0x400454d7\n\tTUNGETVNETLE                         = 0x400454dd\n\tTUNSETCARRIER                        = 0x800454e2\n\tTUNSETDEBUG                          = 0x800454c9\n\tTUNSETFILTEREBPF                     = 0x400454e1\n\tTUNSETGROUP                          = 0x800454ce\n\tTUNSETIFF                            = 0x800454ca\n\tTUNSETIFINDEX                        = 0x800454da\n\tTUNSETLINK                           = 0x800454cd\n\tTUNSETNOCSUM                         = 0x800454c8\n\tTUNSETOFFLOAD                        = 0x800454d0\n\tTUNSETOWNER                          = 0x800454cc\n\tTUNSETPERSIST                        = 0x800454cb\n\tTUNSETQUEUE                          = 0x800454d9\n\tTUNSETSNDBUF                         = 0x800454d4\n\tTUNSETSTEERINGEBPF                   = 0x400454e0\n\tTUNSETTXFILTER                       = 0x800454d1\n\tTUNSETVNETBE                         = 0x800454de\n\tTUNSETVNETHDRSZ                      = 0x800454d8\n\tTUNSETVNETLE                         = 0x800454dc\n\tUBI_IOCATT                           = 0x80186f40\n\tUBI_IOCDET                           = 0x80046f41\n\tUBI_IOCEBCH                          = 0x80044f02\n\tUBI_IOCEBER                          = 0x80044f01\n\tUBI_IOCEBISMAP                       = 0x40044f05\n\tUBI_IOCEBMAP                         = 0x80084f03\n\tUBI_IOCEBUNMAP                       = 0x80044f04\n\tUBI_IOCMKVOL                         = 0x80986f00\n\tUBI_IOCRMVOL                         = 0x80046f01\n\tUBI_IOCRNVOL                         = 0x91106f03\n\tUBI_IOCRPEB                          = 0x80046f04\n\tUBI_IOCRSVOL                         = 0x800c6f02\n\tUBI_IOCSETVOLPROP                    = 0x80104f06\n\tUBI_IOCSPEB                          = 0x80046f05\n\tUBI_IOCVOLCRBLK                      = 0x80804f07\n\tUBI_IOCVOLRMBLK                      = 0x20004f08\n\tUBI_IOCVOLUP                         = 0x80084f00\n\tUDF_SUPER_MAGIC                      = 0x15013346\n\tUMOUNT_NOFOLLOW                      = 0x8\n\tUSBDEVICE_SUPER_MAGIC                = 0x9fa2\n\tUTIME_NOW                            = 0x3fffffff\n\tUTIME_OMIT                           = 0x3ffffffe\n\tV9FS_MAGIC                           = 0x1021997\n\tVDISCARD                             = 0xd\n\tVEOF                                 = 0x4\n\tVEOL                                 = 0xb\n\tVEOL2                                = 0x10\n\tVERASE                               = 0x2\n\tVINTR                                = 0x0\n\tVKILL                                = 0x3\n\tVLNEXT                               = 0xf\n\tVMADDR_CID_ANY                       = 0xffffffff\n\tVMADDR_CID_HOST                      = 0x2\n\tVMADDR_CID_HYPERVISOR                = 0x0\n\tVMADDR_CID_RESERVED                  = 0x1\n\tVMADDR_PORT_ANY                      = 0xffffffff\n\tVMIN                                 = 0x6\n\tVM_SOCKETS_INVALID_VERSION           = 0xffffffff\n\tVQUIT                                = 0x1\n\tVREPRINT                             = 0xc\n\tVSTART                               = 0x8\n\tVSTOP                                = 0x9\n\tVSUSP                                = 0xa\n\tVSWTC                                = 0x7\n\tVT0                                  = 0x0\n\tVT1                                  = 0x4000\n\tVTDLY                                = 0x4000\n\tVTIME                                = 0x5\n\tVWERASE                              = 0xe\n\tWALL                                 = 0x40000000\n\tWCLONE                               = 0x80000000\n\tWCONTINUED                           = 0x8\n\tWDIOC_GETBOOTSTATUS                  = 0x40045702\n\tWDIOC_GETPRETIMEOUT                  = 0x40045709\n\tWDIOC_GETSTATUS                      = 0x40045701\n\tWDIOC_GETSUPPORT                     = 0x40285700\n\tWDIOC_GETTEMP                        = 0x40045703\n\tWDIOC_GETTIMELEFT                    = 0x4004570a\n\tWDIOC_GETTIMEOUT                     = 0x40045707\n\tWDIOC_KEEPALIVE                      = 0x40045705\n\tWDIOC_SETOPTIONS                     = 0x40045704\n\tWDIOC_SETPRETIMEOUT                  = 0xc0045708\n\tWDIOC_SETTIMEOUT                     = 0xc0045706\n\tWEXITED                              = 0x4\n\tWIN_ACKMEDIACHANGE                   = 0xdb\n\tWIN_CHECKPOWERMODE1                  = 0xe5\n\tWIN_CHECKPOWERMODE2                  = 0x98\n\tWIN_DEVICE_RESET                     = 0x8\n\tWIN_DIAGNOSE                         = 0x90\n\tWIN_DOORLOCK                         = 0xde\n\tWIN_DOORUNLOCK                       = 0xdf\n\tWIN_DOWNLOAD_MICROCODE               = 0x92\n\tWIN_FLUSH_CACHE                      = 0xe7\n\tWIN_FLUSH_CACHE_EXT                  = 0xea\n\tWIN_FORMAT                           = 0x50\n\tWIN_GETMEDIASTATUS                   = 0xda\n\tWIN_IDENTIFY                         = 0xec\n\tWIN_IDENTIFY_DMA                     = 0xee\n\tWIN_IDLEIMMEDIATE                    = 0xe1\n\tWIN_INIT                             = 0x60\n\tWIN_MEDIAEJECT                       = 0xed\n\tWIN_MULTREAD                         = 0xc4\n\tWIN_MULTREAD_EXT                     = 0x29\n\tWIN_MULTWRITE                        = 0xc5\n\tWIN_MULTWRITE_EXT                    = 0x39\n\tWIN_NOP                              = 0x0\n\tWIN_PACKETCMD                        = 0xa0\n\tWIN_PIDENTIFY                        = 0xa1\n\tWIN_POSTBOOT                         = 0xdc\n\tWIN_PREBOOT                          = 0xdd\n\tWIN_QUEUED_SERVICE                   = 0xa2\n\tWIN_READ                             = 0x20\n\tWIN_READDMA                          = 0xc8\n\tWIN_READDMA_EXT                      = 0x25\n\tWIN_READDMA_ONCE                     = 0xc9\n\tWIN_READDMA_QUEUED                   = 0xc7\n\tWIN_READDMA_QUEUED_EXT               = 0x26\n\tWIN_READ_BUFFER                      = 0xe4\n\tWIN_READ_EXT                         = 0x24\n\tWIN_READ_LONG                        = 0x22\n\tWIN_READ_LONG_ONCE                   = 0x23\n\tWIN_READ_NATIVE_MAX                  = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT              = 0x27\n\tWIN_READ_ONCE                        = 0x21\n\tWIN_RECAL                            = 0x10\n\tWIN_RESTORE                          = 0x10\n\tWIN_SECURITY_DISABLE                 = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE           = 0xf3\n\tWIN_SECURITY_ERASE_UNIT              = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK             = 0xf5\n\tWIN_SECURITY_SET_PASS                = 0xf1\n\tWIN_SECURITY_UNLOCK                  = 0xf2\n\tWIN_SEEK                             = 0x70\n\tWIN_SETFEATURES                      = 0xef\n\tWIN_SETIDLE1                         = 0xe3\n\tWIN_SETIDLE2                         = 0x97\n\tWIN_SETMULT                          = 0xc6\n\tWIN_SET_MAX                          = 0xf9\n\tWIN_SET_MAX_EXT                      = 0x37\n\tWIN_SLEEPNOW1                        = 0xe6\n\tWIN_SLEEPNOW2                        = 0x99\n\tWIN_SMART                            = 0xb0\n\tWIN_SPECIFY                          = 0x91\n\tWIN_SRST                             = 0x8\n\tWIN_STANDBY                          = 0xe2\n\tWIN_STANDBY2                         = 0x96\n\tWIN_STANDBYNOW1                      = 0xe0\n\tWIN_STANDBYNOW2                      = 0x94\n\tWIN_VERIFY                           = 0x40\n\tWIN_VERIFY_EXT                       = 0x42\n\tWIN_VERIFY_ONCE                      = 0x41\n\tWIN_WRITE                            = 0x30\n\tWIN_WRITEDMA                         = 0xca\n\tWIN_WRITEDMA_EXT                     = 0x35\n\tWIN_WRITEDMA_ONCE                    = 0xcb\n\tWIN_WRITEDMA_QUEUED                  = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT              = 0x36\n\tWIN_WRITE_BUFFER                     = 0xe8\n\tWIN_WRITE_EXT                        = 0x34\n\tWIN_WRITE_LONG                       = 0x32\n\tWIN_WRITE_LONG_ONCE                  = 0x33\n\tWIN_WRITE_ONCE                       = 0x31\n\tWIN_WRITE_SAME                       = 0xe9\n\tWIN_WRITE_VERIFY                     = 0x3c\n\tWNOHANG                              = 0x1\n\tWNOTHREAD                            = 0x20000000\n\tWNOWAIT                              = 0x1000000\n\tWORDSIZE                             = 0x40\n\tWSTOPPED                             = 0x2\n\tWUNTRACED                            = 0x2\n\tXATTR_CREATE                         = 0x1\n\tXATTR_REPLACE                        = 0x2\n\tXCASE                                = 0x4\n\tXDP_COPY                             = 0x2\n\tXDP_FLAGS_DRV_MODE                   = 0x4\n\tXDP_FLAGS_HW_MODE                    = 0x8\n\tXDP_FLAGS_MASK                       = 0xf\n\tXDP_FLAGS_MODES                      = 0xe\n\tXDP_FLAGS_SKB_MODE                   = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST          = 0x1\n\tXDP_MMAP_OFFSETS                     = 0x1\n\tXDP_OPTIONS                          = 0x8\n\tXDP_OPTIONS_ZEROCOPY                 = 0x1\n\tXDP_PACKET_HEADROOM                  = 0x100\n\tXDP_PGOFF_RX_RING                    = 0x0\n\tXDP_PGOFF_TX_RING                    = 0x80000000\n\tXDP_RX_RING                          = 0x2\n\tXDP_SHARED_UMEM                      = 0x1\n\tXDP_STATISTICS                       = 0x7\n\tXDP_TX_RING                          = 0x3\n\tXDP_UMEM_COMPLETION_RING             = 0x6\n\tXDP_UMEM_FILL_RING                   = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING       = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING             = 0x100000000\n\tXDP_UMEM_REG                         = 0x4\n\tXDP_ZEROCOPY                         = 0x4\n\tXENFS_SUPER_MAGIC                    = 0xabba1974\n\tXFS_SUPER_MAGIC                      = 0x58465342\n\tXTABS                                = 0x1800\n\tZ3FOLD_MAGIC                         = 0x33\n\tZSMALLOC_MAGIC                       = 0x58295829\n\t__TIOCFLUSH                          = 0x80047410\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEADV            = syscall.Errno(0x53)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x25)\n\tEBADE           = syscall.Errno(0x66)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x5d)\n\tEBADMSG         = syscall.Errno(0x4c)\n\tEBADR           = syscall.Errno(0x67)\n\tEBADRQC         = syscall.Errno(0x6a)\n\tEBADSLT         = syscall.Errno(0x6b)\n\tEBFONT          = syscall.Errno(0x6d)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x7f)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x5e)\n\tECOMM           = syscall.Errno(0x55)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0x4e)\n\tEDEADLOCK       = syscall.Errno(0x6c)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOTDOT         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEHWPOISON       = syscall.Errno(0x87)\n\tEIDRM           = syscall.Errno(0x4d)\n\tEILSEQ          = syscall.Errno(0x7a)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x81)\n\tEKEYREJECTED    = syscall.Errno(0x83)\n\tEKEYREVOKED     = syscall.Errno(0x82)\n\tEL2HLT          = syscall.Errno(0x65)\n\tEL2NSYNC        = syscall.Errno(0x5f)\n\tEL3HLT          = syscall.Errno(0x60)\n\tEL3RST          = syscall.Errno(0x61)\n\tELIBACC         = syscall.Errno(0x72)\n\tELIBBAD         = syscall.Errno(0x70)\n\tELIBEXEC        = syscall.Errno(0x6e)\n\tELIBMAX         = syscall.Errno(0x7b)\n\tELIBSCN         = syscall.Errno(0x7c)\n\tELNRNG          = syscall.Errno(0x62)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x7e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x57)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x69)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENOCSI          = syscall.Errno(0x64)\n\tENODATA         = syscall.Errno(0x6f)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOKEY          = syscall.Errno(0x80)\n\tENOLCK          = syscall.Errno(0x4f)\n\tENOLINK         = syscall.Errno(0x52)\n\tENOMEDIUM       = syscall.Errno(0x7d)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x4b)\n\tENONET          = syscall.Errno(0x50)\n\tENOPKG          = syscall.Errno(0x71)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x4a)\n\tENOSTR          = syscall.Errno(0x48)\n\tENOSYS          = syscall.Errno(0x5a)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x85)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x73)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x5c)\n\tEOWNERDEAD      = syscall.Errno(0x84)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROTO          = syscall.Errno(0x56)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x59)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x74)\n\tERFKILL         = syscall.Errno(0x86)\n\tEROFS           = syscall.Errno(0x1e)\n\tERREMOTE        = syscall.Errno(0x51)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x54)\n\tESTALE          = syscall.Errno(0x46)\n\tESTRPIPE        = syscall.Errno(0x5b)\n\tETIME           = syscall.Errno(0x49)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x63)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x68)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCLD    = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLOST   = syscall.Signal(0x1d)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPOLL   = syscall.Signal(0x17)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1d)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{57, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{58, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale file handle\"},\n\t{71, \"EREMOTE\", \"object is remote\"},\n\t{72, \"ENOSTR\", \"device not a stream\"},\n\t{73, \"ETIME\", \"timer expired\"},\n\t{74, \"ENOSR\", \"out of streams resources\"},\n\t{75, \"ENOMSG\", \"no message of desired type\"},\n\t{76, \"EBADMSG\", \"bad message\"},\n\t{77, \"EIDRM\", \"identifier removed\"},\n\t{78, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{79, \"ENOLCK\", \"no locks available\"},\n\t{80, \"ENONET\", \"machine is not on the network\"},\n\t{81, \"ERREMOTE\", \"unknown error 81\"},\n\t{82, \"ENOLINK\", \"link has been severed\"},\n\t{83, \"EADV\", \"advertise error\"},\n\t{84, \"ESRMNT\", \"srmount error\"},\n\t{85, \"ECOMM\", \"communication error on send\"},\n\t{86, \"EPROTO\", \"protocol error\"},\n\t{87, \"EMULTIHOP\", \"multihop attempted\"},\n\t{88, \"EDOTDOT\", \"RFS specific error\"},\n\t{89, \"EREMCHG\", \"remote address changed\"},\n\t{90, \"ENOSYS\", \"function not implemented\"},\n\t{91, \"ESTRPIPE\", \"streams pipe error\"},\n\t{92, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{93, \"EBADFD\", \"file descriptor in bad state\"},\n\t{94, \"ECHRNG\", \"channel number out of range\"},\n\t{95, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{96, \"EL3HLT\", \"level 3 halted\"},\n\t{97, \"EL3RST\", \"level 3 reset\"},\n\t{98, \"ELNRNG\", \"link number out of range\"},\n\t{99, \"EUNATCH\", \"protocol driver not attached\"},\n\t{100, \"ENOCSI\", \"no CSI structure available\"},\n\t{101, \"EL2HLT\", \"level 2 halted\"},\n\t{102, \"EBADE\", \"invalid exchange\"},\n\t{103, \"EBADR\", \"invalid request descriptor\"},\n\t{104, \"EXFULL\", \"exchange full\"},\n\t{105, \"ENOANO\", \"no anode\"},\n\t{106, \"EBADRQC\", \"invalid request code\"},\n\t{107, \"EBADSLT\", \"invalid slot\"},\n\t{108, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{109, \"EBFONT\", \"bad font file format\"},\n\t{110, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{111, \"ENODATA\", \"no data available\"},\n\t{112, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{113, \"ENOPKG\", \"package not installed\"},\n\t{114, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{115, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{116, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{123, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{124, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{125, \"ENOMEDIUM\", \"no medium found\"},\n\t{126, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{127, \"ECANCELED\", \"operation canceled\"},\n\t{128, \"ENOKEY\", \"required key not available\"},\n\t{129, \"EKEYEXPIRED\", \"key has expired\"},\n\t{130, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{131, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{132, \"EOWNERDEAD\", \"owner died\"},\n\t{133, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{134, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{135, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGLOST\", \"power failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,netbsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tEN_SW_CTL_INF                     = 0x1000\n\tEN_SW_CTL_PREC                    = 0x300\n\tEN_SW_CTL_ROUND                   = 0xc00\n\tEN_SW_DATACHAIN                   = 0x80\n\tEN_SW_DENORM                      = 0x2\n\tEN_SW_INVOP                       = 0x1\n\tEN_SW_OVERFLOW                    = 0x8\n\tEN_SW_PRECLOSS                    = 0x20\n\tEN_SW_UNDERFLOW                   = 0x10\n\tEN_SW_ZERODIV                     = 0x4\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,netbsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go",
    "content": "// mkerrors.sh -marm\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,netbsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -marm _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x48087446\n\tTIOCPTSNAME                       = 0x48087448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,netbsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,openbsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x400c426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x800c426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DIVERT_INIT               = 0x2\n\tIPPROTO_DIVERT_RESP               = 0x1\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DIVERTFL                       = 0x1022\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_COPY                          = 0x4\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0x1ff7\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_TRYFIXED                      = 0x400\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMSG_BCAST                         = 0x100\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPT_MASK                           = 0x3ff000\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xb\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x10f808\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_SOURCE                        = 0x20000\n\tRTF_STATIC                        = 0x800\n\tRTF_TUNNEL                        = 0x100000\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCALIFADDR                      = 0x8218691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8054693c\n\tSIOCBRDGADDS                      = 0x80546941\n\tSIOCBRDGARL                       = 0x806e694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8054693d\n\tSIOCBRDGDELS                      = 0x80546942\n\tSIOCBRDGFLUSH                     = 0x80546948\n\tSIOCBRDGFRL                       = 0x806e694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc054693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc03c6958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGSIFS                     = 0xc054693c\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0546942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80546955\n\tSIOCBRDGSIFFLGS                   = 0x8054693f\n\tSIOCBRDGSIFPRIO                   = 0x80546954\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDLIFADDR                      = 0x8218691e\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFASYNCMAP                   = 0xc020697c\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206948\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFPSRCADDR                   = 0xc0206947\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFTIMESLOT                   = 0xc0206986\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFADDR                      = 0xc218691d\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFASYNCMAP                   = 0x8020697d\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFMEDIA                      = 0xc0206935\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFTIMESLOT                   = 0x80206985\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_NSTATES                       = 0xb\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x400c745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5b)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ELAST\", \"not supported\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,openbsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x8\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0x7ff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0186941\n\tSIOCBRDGGFD                       = 0xc0186952\n\tSIOCBRDGGHT                       = 0xc0186951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0186953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0186950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0186946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80186940\n\tSIOCBRDGSFD                       = 0x80186952\n\tSIOCBRDGSHT                       = 0x80186951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80186953\n\tSIOCBRDGSPRI                      = 0x80186950\n\tSIOCBRDGSPROTO                    = 0x8018695a\n\tSIOCBRDGSTO                       = 0x80186945\n\tSIOCBRDGSTXHC                     = 0x80186959\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSIOCSWGDPID                       = 0xc018695b\n\tSIOCSWGMAXFLOW                    = 0xc0186960\n\tSIOCSWGMAXGROUP                   = 0xc018695d\n\tSIOCSWSDPID                       = 0x8018695c\n\tSIOCSWSPORTNO                     = 0xc060695f\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MAXID                          = 0xc\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- _const.go\n\n// +build arm,openbsd\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x400c426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x800c426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DIVERT_INIT               = 0x2\n\tIPPROTO_DIVERT_RESP               = 0x1\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DIVERTFL                       = 0x1022\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0x3ff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xb\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x70f808\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCALIFADDR                      = 0x8218691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8054693c\n\tSIOCBRDGADDS                      = 0x80546941\n\tSIOCBRDGARL                       = 0x806e694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8054693d\n\tSIOCBRDGDELS                      = 0x80546942\n\tSIOCBRDGFLUSH                     = 0x80546948\n\tSIOCBRDGFRL                       = 0x806e694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc054693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc03c6958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGSIFS                     = 0xc054693c\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0546942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80546955\n\tSIOCBRDGSIFFLGS                   = 0x8054693f\n\tSIOCBRDGSIFPRIO                   = 0x80546954\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDLIFADDR                      = 0x8218691e\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFASYNCMAP                   = 0xc020697c\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206948\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFPSRCADDR                   = 0xc0206947\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFTIMESLOT                   = 0xc0206986\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFADDR                      = 0xc218691d\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFASYNCMAP                   = 0x8020697d\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFMEDIA                      = 0xc0206935\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFTIMESLOT                   = 0x80206985\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_NSTATES                       = 0xb\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x400c745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5b)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ELAST\", \"not supported\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x8\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0186941\n\tSIOCBRDGGFD                       = 0xc0186952\n\tSIOCBRDGGHT                       = 0xc0186951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0186953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0186950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0186946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80186940\n\tSIOCBRDGSFD                       = 0x80186952\n\tSIOCBRDGSHT                       = 0x80186951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80186953\n\tSIOCBRDGSPRI                      = 0x80186950\n\tSIOCBRDGSPROTO                    = 0x8018695a\n\tSIOCBRDGSTO                       = 0x80186945\n\tSIOCBRDGSTXHC                     = 0x80186959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSIOCSWGDPID                       = 0xc018695b\n\tSIOCSWGMAXFLOW                    = 0xc0186960\n\tSIOCSWGMAXGROUP                   = 0xc018695d\n\tSIOCSWSDPID                       = 0x8018695c\n\tSIOCSWSPORTNO                     = 0xc060695f\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,solaris\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_802                        = 0x12\n\tAF_APPLETALK                  = 0x10\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_FILE                       = 0x1\n\tAF_GOSIP                      = 0x16\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x1a\n\tAF_INET_OFFLOAD               = 0x1e\n\tAF_IPX                        = 0x17\n\tAF_KEY                        = 0x1b\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x19\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x20\n\tAF_NBS                        = 0x7\n\tAF_NCA                        = 0x1c\n\tAF_NIT                        = 0x11\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x13\n\tAF_OSINET                     = 0x15\n\tAF_PACKET                     = 0x20\n\tAF_POLICY                     = 0x1d\n\tAF_PUP                        = 0x4\n\tAF_ROUTE                      = 0x18\n\tAF_SNA                        = 0xb\n\tAF_TRILL                      = 0x1f\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tAF_X25                        = 0x14\n\tARPHRD_ARCNET                 = 0x7\n\tARPHRD_ATM                    = 0x10\n\tARPHRD_AX25                   = 0x3\n\tARPHRD_CHAOS                  = 0x5\n\tARPHRD_EETHER                 = 0x2\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FC                     = 0x12\n\tARPHRD_FRAME                  = 0xf\n\tARPHRD_HDLC                   = 0x11\n\tARPHRD_IB                     = 0x20\n\tARPHRD_IEEE802                = 0x6\n\tARPHRD_IPATM                  = 0x13\n\tARPHRD_METRICOM               = 0x17\n\tARPHRD_TUNNEL                 = 0x1f\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB115200                       = 0x12\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB153600                       = 0x13\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB230400                       = 0x14\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB307200                       = 0x15\n\tB38400                        = 0xf\n\tB460800                       = 0x16\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB57600                        = 0x10\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB76800                        = 0x11\n\tB921600                       = 0x17\n\tB9600                         = 0xd\n\tBIOCFLUSH                     = 0x20004268\n\tBIOCGBLEN                     = 0x40044266\n\tBIOCGDLT                      = 0x4004426a\n\tBIOCGDLTLIST                  = -0x3fefbd89\n\tBIOCGDLTLIST32                = -0x3ff7bd89\n\tBIOCGETIF                     = 0x4020426b\n\tBIOCGETLIF                    = 0x4078426b\n\tBIOCGHDRCMPLT                 = 0x40044274\n\tBIOCGRTIMEOUT                 = 0x4010427b\n\tBIOCGRTIMEOUT32               = 0x4008427b\n\tBIOCGSEESENT                  = 0x40044278\n\tBIOCGSTATS                    = 0x4080426f\n\tBIOCGSTATSOLD                 = 0x4008426f\n\tBIOCIMMEDIATE                 = -0x7ffbbd90\n\tBIOCPROMISC                   = 0x20004269\n\tBIOCSBLEN                     = -0x3ffbbd9a\n\tBIOCSDLT                      = -0x7ffbbd8a\n\tBIOCSETF                      = -0x7fefbd99\n\tBIOCSETF32                    = -0x7ff7bd99\n\tBIOCSETIF                     = -0x7fdfbd94\n\tBIOCSETLIF                    = -0x7f87bd94\n\tBIOCSHDRCMPLT                 = -0x7ffbbd8b\n\tBIOCSRTIMEOUT                 = -0x7fefbd86\n\tBIOCSRTIMEOUT32               = -0x7ff7bd86\n\tBIOCSSEESENT                  = -0x7ffbbd87\n\tBIOCSTCPF                     = -0x7fefbd8e\n\tBIOCSUDPF                     = -0x7fefbd8d\n\tBIOCVERSION                   = 0x40044271\n\tBPF_A                         = 0x10\n\tBPF_ABS                       = 0x20\n\tBPF_ADD                       = 0x0\n\tBPF_ALIGNMENT                 = 0x4\n\tBPF_ALU                       = 0x4\n\tBPF_AND                       = 0x50\n\tBPF_B                         = 0x10\n\tBPF_DFLTBUFSIZE               = 0x100000\n\tBPF_DIV                       = 0x30\n\tBPF_H                         = 0x8\n\tBPF_IMM                       = 0x0\n\tBPF_IND                       = 0x40\n\tBPF_JA                        = 0x0\n\tBPF_JEQ                       = 0x10\n\tBPF_JGE                       = 0x30\n\tBPF_JGT                       = 0x20\n\tBPF_JMP                       = 0x5\n\tBPF_JSET                      = 0x40\n\tBPF_K                         = 0x0\n\tBPF_LD                        = 0x0\n\tBPF_LDX                       = 0x1\n\tBPF_LEN                       = 0x80\n\tBPF_LSH                       = 0x60\n\tBPF_MAJOR_VERSION             = 0x1\n\tBPF_MAXBUFSIZE                = 0x1000000\n\tBPF_MAXINSNS                  = 0x200\n\tBPF_MEM                       = 0x60\n\tBPF_MEMWORDS                  = 0x10\n\tBPF_MINBUFSIZE                = 0x20\n\tBPF_MINOR_VERSION             = 0x1\n\tBPF_MISC                      = 0x7\n\tBPF_MSH                       = 0xa0\n\tBPF_MUL                       = 0x20\n\tBPF_NEG                       = 0x80\n\tBPF_OR                        = 0x40\n\tBPF_RELEASE                   = 0x30bb6\n\tBPF_RET                       = 0x6\n\tBPF_RSH                       = 0x70\n\tBPF_ST                        = 0x2\n\tBPF_STX                       = 0x3\n\tBPF_SUB                       = 0x10\n\tBPF_TAX                       = 0x0\n\tBPF_TXA                       = 0x80\n\tBPF_W                         = 0x0\n\tBPF_X                         = 0x8\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x2000\n\tBSDLY                         = 0x2000\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_HIGHRES                 = 0x4\n\tCLOCK_LEVEL                   = 0xa\n\tCLOCK_MONOTONIC               = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID      = 0x5\n\tCLOCK_PROF                    = 0x2\n\tCLOCK_REALTIME                = 0x3\n\tCLOCK_THREAD_CPUTIME_ID       = 0x2\n\tCLOCK_VIRTUAL                 = 0x1\n\tCR0                           = 0x0\n\tCR1                           = 0x200\n\tCR2                           = 0x400\n\tCR3                           = 0x600\n\tCRDLY                         = 0x600\n\tCREAD                         = 0x80\n\tCRTSCTS                       = 0x80000000\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIZE                         = 0x30\n\tCSTART                        = 0x11\n\tCSTATUS                       = 0x14\n\tCSTOP                         = 0x13\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tCSWTCH                        = 0x1a\n\tDLT_AIRONET_HEADER            = 0x78\n\tDLT_APPLE_IP_OVER_IEEE1394    = 0x8a\n\tDLT_ARCNET                    = 0x7\n\tDLT_ARCNET_LINUX              = 0x81\n\tDLT_ATM_CLIP                  = 0x13\n\tDLT_ATM_RFC1483               = 0xb\n\tDLT_AURORA                    = 0x7e\n\tDLT_AX25                      = 0x3\n\tDLT_BACNET_MS_TP              = 0xa5\n\tDLT_CHAOS                     = 0x5\n\tDLT_CISCO_IOS                 = 0x76\n\tDLT_C_HDLC                    = 0x68\n\tDLT_DOCSIS                    = 0x8f\n\tDLT_ECONET                    = 0x73\n\tDLT_EN10MB                    = 0x1\n\tDLT_EN3MB                     = 0x2\n\tDLT_ENC                       = 0x6d\n\tDLT_ERF_ETH                   = 0xaf\n\tDLT_ERF_POS                   = 0xb0\n\tDLT_FDDI                      = 0xa\n\tDLT_FRELAY                    = 0x6b\n\tDLT_GCOM_SERIAL               = 0xad\n\tDLT_GCOM_T1E1                 = 0xac\n\tDLT_GPF_F                     = 0xab\n\tDLT_GPF_T                     = 0xaa\n\tDLT_GPRS_LLC                  = 0xa9\n\tDLT_HDLC                      = 0x10\n\tDLT_HHDLC                     = 0x79\n\tDLT_HIPPI                     = 0xf\n\tDLT_IBM_SN                    = 0x92\n\tDLT_IBM_SP                    = 0x91\n\tDLT_IEEE802                   = 0x6\n\tDLT_IEEE802_11                = 0x69\n\tDLT_IEEE802_11_RADIO          = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS      = 0xa3\n\tDLT_IPNET                     = 0xe2\n\tDLT_IPOIB                     = 0xa2\n\tDLT_IP_OVER_FC                = 0x7a\n\tDLT_JUNIPER_ATM1              = 0x89\n\tDLT_JUNIPER_ATM2              = 0x87\n\tDLT_JUNIPER_CHDLC             = 0xb5\n\tDLT_JUNIPER_ES                = 0x84\n\tDLT_JUNIPER_ETHER             = 0xb2\n\tDLT_JUNIPER_FRELAY            = 0xb4\n\tDLT_JUNIPER_GGSN              = 0x85\n\tDLT_JUNIPER_MFR               = 0x86\n\tDLT_JUNIPER_MLFR              = 0x83\n\tDLT_JUNIPER_MLPPP             = 0x82\n\tDLT_JUNIPER_MONITOR           = 0xa4\n\tDLT_JUNIPER_PIC_PEER          = 0xae\n\tDLT_JUNIPER_PPP               = 0xb3\n\tDLT_JUNIPER_PPPOE             = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM         = 0xa8\n\tDLT_JUNIPER_SERVICES          = 0x88\n\tDLT_LINUX_IRDA                = 0x90\n\tDLT_LINUX_LAPD                = 0xb1\n\tDLT_LINUX_SLL                 = 0x71\n\tDLT_LOOP                      = 0x6c\n\tDLT_LTALK                     = 0x72\n\tDLT_MTP2                      = 0x8c\n\tDLT_MTP2_WITH_PHDR            = 0x8b\n\tDLT_MTP3                      = 0x8d\n\tDLT_NULL                      = 0x0\n\tDLT_PCI_EXP                   = 0x7d\n\tDLT_PFLOG                     = 0x75\n\tDLT_PFSYNC                    = 0x12\n\tDLT_PPP                       = 0x9\n\tDLT_PPP_BSDOS                 = 0xe\n\tDLT_PPP_PPPD                  = 0xa6\n\tDLT_PRISM_HEADER              = 0x77\n\tDLT_PRONET                    = 0x4\n\tDLT_RAW                       = 0xc\n\tDLT_RAWAF_MASK                = 0x2240000\n\tDLT_RIO                       = 0x7c\n\tDLT_SCCP                      = 0x8e\n\tDLT_SLIP                      = 0x8\n\tDLT_SLIP_BSDOS                = 0xd\n\tDLT_SUNATM                    = 0x7b\n\tDLT_SYMANTEC_FIREWALL         = 0x63\n\tDLT_TZSP                      = 0x80\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x200\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x800\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x400\n\tEMPTY_SET                     = 0x0\n\tEMT_CPCOVF                    = 0x1\n\tEQUALITY_CHECK                = 0x0\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tFD_CLOEXEC                    = 0x1\n\tFD_NFDBITS                    = 0x40\n\tFD_SETSIZE                    = 0x10000\n\tFF0                           = 0x0\n\tFF1                           = 0x8000\n\tFFDLY                         = 0x8000\n\tFLUSHALL                      = 0x1\n\tFLUSHDATA                     = 0x0\n\tFLUSHO                        = 0x2000\n\tF_ALLOCSP                     = 0xa\n\tF_ALLOCSP64                   = 0xa\n\tF_BADFD                       = 0x2e\n\tF_BLKSIZE                     = 0x13\n\tF_BLOCKS                      = 0x12\n\tF_CHKFL                       = 0x8\n\tF_COMPAT                      = 0x8\n\tF_DUP2FD                      = 0x9\n\tF_DUP2FD_CLOEXEC              = 0x24\n\tF_DUPFD                       = 0x0\n\tF_DUPFD_CLOEXEC               = 0x25\n\tF_FLOCK                       = 0x35\n\tF_FLOCK64                     = 0x35\n\tF_FLOCKW                      = 0x36\n\tF_FLOCKW64                    = 0x36\n\tF_FREESP                      = 0xb\n\tF_FREESP64                    = 0xb\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xe\n\tF_GETLK64                     = 0xe\n\tF_GETOWN                      = 0x17\n\tF_GETXFL                      = 0x2d\n\tF_HASREMOTELOCKS              = 0x1a\n\tF_ISSTREAM                    = 0xd\n\tF_MANDDNY                     = 0x10\n\tF_MDACC                       = 0x20\n\tF_NODNY                       = 0x0\n\tF_NPRIV                       = 0x10\n\tF_OFD_GETLK                   = 0x2f\n\tF_OFD_GETLK64                 = 0x2f\n\tF_OFD_SETLK                   = 0x30\n\tF_OFD_SETLK64                 = 0x30\n\tF_OFD_SETLKW                  = 0x31\n\tF_OFD_SETLKW64                = 0x31\n\tF_PRIV                        = 0xf\n\tF_QUOTACTL                    = 0x11\n\tF_RDACC                       = 0x1\n\tF_RDDNY                       = 0x1\n\tF_RDLCK                       = 0x1\n\tF_REVOKE                      = 0x19\n\tF_RMACC                       = 0x4\n\tF_RMDNY                       = 0x4\n\tF_RWACC                       = 0x3\n\tF_RWDNY                       = 0x3\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0x6\n\tF_SETLK64_NBMAND              = 0x2a\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0x7\n\tF_SETLK_NBMAND                = 0x2a\n\tF_SETOWN                      = 0x18\n\tF_SHARE                       = 0x28\n\tF_SHARE_NBMAND                = 0x2b\n\tF_UNLCK                       = 0x3\n\tF_UNLKSYS                     = 0x4\n\tF_UNSHARE                     = 0x29\n\tF_WRACC                       = 0x2\n\tF_WRDNY                       = 0x2\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x8000\n\tIFF_ADDRCONF                  = 0x80000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_ANYCAST                   = 0x400000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x7f203003b5a\n\tIFF_COS_ENABLED               = 0x200000000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEPRECATED                = 0x40000\n\tIFF_DHCPRUNNING               = 0x4000\n\tIFF_DUPLICATE                 = 0x4000000000\n\tIFF_FAILED                    = 0x10000000\n\tIFF_FIXEDMTU                  = 0x1000000000\n\tIFF_INACTIVE                  = 0x40000000\n\tIFF_INTELLIGENT               = 0x400\n\tIFF_IPMP                      = 0x8000000000\n\tIFF_IPMP_CANTCHANGE           = 0x10000000\n\tIFF_IPMP_INVALID              = 0x1ec200080\n\tIFF_IPV4                      = 0x1000000\n\tIFF_IPV6                      = 0x2000000\n\tIFF_L3PROTECT                 = 0x40000000000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x800\n\tIFF_MULTI_BCAST               = 0x1000\n\tIFF_NOACCEPT                  = 0x4000000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOFAILOVER                = 0x8000000\n\tIFF_NOLINKLOCAL               = 0x20000000000\n\tIFF_NOLOCAL                   = 0x20000\n\tIFF_NONUD                     = 0x200000\n\tIFF_NORTEXCH                  = 0x800000\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_NOXMIT                    = 0x10000\n\tIFF_OFFLINE                   = 0x80000000\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PREFERRED                 = 0x400000000\n\tIFF_PRIVATE                   = 0x8000\n\tIFF_PROMISC                   = 0x100\n\tIFF_ROUTER                    = 0x100000\n\tIFF_RUNNING                   = 0x40\n\tIFF_STANDBY                   = 0x20000000\n\tIFF_TEMPORARY                 = 0x800000000\n\tIFF_UNNUMBERED                = 0x2000\n\tIFF_UP                        = 0x1\n\tIFF_VIRTUAL                   = 0x2000000000\n\tIFF_VRRP                      = 0x10000000000\n\tIFF_XRESOLV                   = 0x100000000\n\tIFNAMSIZ                      = 0x10\n\tIFT_1822                      = 0x2\n\tIFT_6TO4                      = 0xca\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_IPV4                      = 0xc8\n\tIFT_IPV6                      = 0xc9\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x2000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_AUTOCONF_MASK              = 0xffff0000\n\tIN_AUTOCONF_NET               = 0xa9fe0000\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_CLASSE_NET                 = 0xffffffff\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_PRIVATE12_MASK             = 0xfff00000\n\tIN_PRIVATE12_NET              = 0xac100000\n\tIN_PRIVATE16_MASK             = 0xffff0000\n\tIN_PRIVATE16_NET              = 0xc0a80000\n\tIN_PRIVATE8_MASK              = 0xff000000\n\tIN_PRIVATE8_NET               = 0xa000000\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_ENCAP                 = 0x4\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_HELLO                 = 0x3f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_ND                    = 0x4d\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_OSPF                  = 0x59\n\tIPPROTO_PIM                   = 0x67\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADD_MEMBERSHIP           = 0x9\n\tIPV6_BOUND_IF                 = 0x41\n\tIPV6_CHECKSUM                 = 0x18\n\tIPV6_DONTFRAG                 = 0x21\n\tIPV6_DROP_MEMBERSHIP          = 0xa\n\tIPV6_DSTOPTS                  = 0xf\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffff0f00\n\tIPV6_FLOWINFO_TCLASS          = 0xf00f\n\tIPV6_HOPLIMIT                 = 0xc\n\tIPV6_HOPOPTS                  = 0xe\n\tIPV6_JOIN_GROUP               = 0x9\n\tIPV6_LEAVE_GROUP              = 0xa\n\tIPV6_MULTICAST_HOPS           = 0x7\n\tIPV6_MULTICAST_IF             = 0x6\n\tIPV6_MULTICAST_LOOP           = 0x8\n\tIPV6_NEXTHOP                  = 0xd\n\tIPV6_PAD1_OPT                 = 0x0\n\tIPV6_PATHMTU                  = 0x25\n\tIPV6_PKTINFO                  = 0xb\n\tIPV6_PREFER_SRC_CGA           = 0x20\n\tIPV6_PREFER_SRC_CGADEFAULT    = 0x10\n\tIPV6_PREFER_SRC_CGAMASK       = 0x30\n\tIPV6_PREFER_SRC_COA           = 0x2\n\tIPV6_PREFER_SRC_DEFAULT       = 0x15\n\tIPV6_PREFER_SRC_HOME          = 0x1\n\tIPV6_PREFER_SRC_MASK          = 0x3f\n\tIPV6_PREFER_SRC_MIPDEFAULT    = 0x1\n\tIPV6_PREFER_SRC_MIPMASK       = 0x3\n\tIPV6_PREFER_SRC_NONCGA        = 0x10\n\tIPV6_PREFER_SRC_PUBLIC        = 0x4\n\tIPV6_PREFER_SRC_TMP           = 0x8\n\tIPV6_PREFER_SRC_TMPDEFAULT    = 0x4\n\tIPV6_PREFER_SRC_TMPMASK       = 0xc\n\tIPV6_RECVDSTOPTS              = 0x28\n\tIPV6_RECVHOPLIMIT             = 0x13\n\tIPV6_RECVHOPOPTS              = 0x14\n\tIPV6_RECVPATHMTU              = 0x24\n\tIPV6_RECVPKTINFO              = 0x12\n\tIPV6_RECVRTHDR                = 0x16\n\tIPV6_RECVRTHDRDSTOPTS         = 0x17\n\tIPV6_RECVTCLASS               = 0x19\n\tIPV6_RTHDR                    = 0x10\n\tIPV6_RTHDRDSTOPTS             = 0x11\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_SEC_OPT                  = 0x22\n\tIPV6_SRC_PREFERENCES          = 0x23\n\tIPV6_TCLASS                   = 0x26\n\tIPV6_UNICAST_HOPS             = 0x5\n\tIPV6_UNSPEC_SRC               = 0x42\n\tIPV6_USE_MIN_MTU              = 0x20\n\tIPV6_V6ONLY                   = 0x27\n\tIP_ADD_MEMBERSHIP             = 0x13\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x17\n\tIP_BLOCK_SOURCE               = 0x15\n\tIP_BOUND_IF                   = 0x41\n\tIP_BROADCAST                  = 0x106\n\tIP_BROADCAST_TTL              = 0x43\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPINIT_IF                = 0x45\n\tIP_DONTFRAG                   = 0x1b\n\tIP_DONTROUTE                  = 0x105\n\tIP_DROP_MEMBERSHIP            = 0x14\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x18\n\tIP_HDRINCL                    = 0x2\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_IF               = 0x10\n\tIP_MULTICAST_LOOP             = 0x12\n\tIP_MULTICAST_TTL              = 0x11\n\tIP_NEXTHOP                    = 0x19\n\tIP_OPTIONS                    = 0x1\n\tIP_PKTINFO                    = 0x1a\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x9\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVPKTINFO                = 0x1a\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVSLLA                   = 0xa\n\tIP_RECVTTL                    = 0xb\n\tIP_RETOPTS                    = 0x8\n\tIP_REUSEADDR                  = 0x104\n\tIP_SEC_OPT                    = 0x22\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x16\n\tIP_UNSPEC_SRC                 = 0x42\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x200\n\tIXANY                         = 0x800\n\tIXOFF                         = 0x1000\n\tIXON                          = 0x400\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_ACCESS_DEFAULT           = 0x6\n\tMADV_ACCESS_LWP               = 0x7\n\tMADV_ACCESS_MANY              = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_FREE                     = 0x5\n\tMADV_NORMAL                   = 0x0\n\tMADV_PURGE                    = 0x9\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_WILLNEED                 = 0x3\n\tMAP_32BIT                     = 0x80\n\tMAP_ALIGN                     = 0x200\n\tMAP_ANON                      = 0x100\n\tMAP_ANONYMOUS                 = 0x100\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x10\n\tMAP_INITDATA                  = 0x800\n\tMAP_NORESERVE                 = 0x40\n\tMAP_PRIVATE                   = 0x2\n\tMAP_RENAME                    = 0x20\n\tMAP_SHARED                    = 0x1\n\tMAP_TEXT                      = 0x400\n\tMAP_TYPE                      = 0xf\n\tMCL_CURRENT                   = 0x1\n\tMCL_FUTURE                    = 0x2\n\tMSG_CTRUNC                    = 0x10\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_DONTWAIT                  = 0x80\n\tMSG_DUPCTRL                   = 0x800\n\tMSG_EOR                       = 0x8\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_NOTIFICATION              = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x20\n\tMSG_WAITALL                   = 0x40\n\tMSG_XPG4_2                    = 0x8000\n\tMS_ASYNC                      = 0x1\n\tMS_INVALIDATE                 = 0x2\n\tMS_OLDSYNC                    = 0x0\n\tMS_SYNC                       = 0x4\n\tM_FLUSH                       = 0x86\n\tNAME_MAX                      = 0xff\n\tNEWDEV                        = 0x1\n\tNL0                           = 0x0\n\tNL1                           = 0x100\n\tNLDLY                         = 0x100\n\tNOFLSH                        = 0x80\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tOLDDEV                        = 0x0\n\tONBITSMAJOR                   = 0x7\n\tONBITSMINOR                   = 0x8\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tOPENFAIL                      = -0x1\n\tOPOST                         = 0x1\n\tO_ACCMODE                     = 0x600003\n\tO_APPEND                      = 0x8\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DSYNC                       = 0x40\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x400000\n\tO_LARGEFILE                   = 0x2000\n\tO_NDELAY                      = 0x4\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x20000\n\tO_NOLINKS                     = 0x40000\n\tO_NONBLOCK                    = 0x80\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSYNC                       = 0x8000\n\tO_SEARCH                      = 0x200000\n\tO_SIOCGIFCONF                 = -0x3ff796ec\n\tO_SIOCGLIFCONF                = -0x3fef9688\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_WRONLY                      = 0x1\n\tO_XATTR                       = 0x4000\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x4000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = -0x3\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x9\n\tRTAX_NETMASK                  = 0x2\n\tRTAX_SRC                      = 0x8\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTA_NUMBITS                   = 0x9\n\tRTA_SRC                       = 0x100\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_INDIRECT                  = 0x40000\n\tRTF_KERNEL                    = 0x80000\n\tRTF_LLINFO                    = 0x400\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTIRT                   = 0x10000\n\tRTF_PRIVATE                   = 0x2000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_REJECT                    = 0x8\n\tRTF_SETSRC                    = 0x20000\n\tRTF_STATIC                    = 0x800\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTF_ZONE                      = 0x100000\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_CHGADDR                   = 0xf\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_FREEADDR                  = 0x10\n\tRTM_GET                       = 0x4\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_VERSION                   = 0x3\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRT_AWARE                      = 0x1\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tSCM_RIGHTS                    = 0x1010\n\tSCM_TIMESTAMP                 = 0x1013\n\tSCM_UCRED                     = 0x1012\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIG2STR_MAX                   = 0x20\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fdb96e0\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDXARP                     = -0x7fff9658\n\tSIOCGARP                      = -0x3fdb96e1\n\tSIOCGDSTINFO                  = -0x3fff965c\n\tSIOCGENADDR                   = -0x3fdf96ab\n\tSIOCGENPSTATS                 = -0x3fdf96c7\n\tSIOCGETLSGCNT                 = -0x3fef8deb\n\tSIOCGETNAME                   = 0x40107334\n\tSIOCGETPEER                   = 0x40107335\n\tSIOCGETPROP                   = -0x3fff8f44\n\tSIOCGETSGCNT                  = -0x3feb8deb\n\tSIOCGETSYNC                   = -0x3fdf96d3\n\tSIOCGETVIFCNT                 = -0x3feb8dec\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fdf96f3\n\tSIOCGIFBRDADDR                = -0x3fdf96e9\n\tSIOCGIFCONF                   = -0x3ff796a4\n\tSIOCGIFDSTADDR                = -0x3fdf96f1\n\tSIOCGIFFLAGS                  = -0x3fdf96ef\n\tSIOCGIFHWADDR                 = -0x3fdf9647\n\tSIOCGIFINDEX                  = -0x3fdf96a6\n\tSIOCGIFMEM                    = -0x3fdf96ed\n\tSIOCGIFMETRIC                 = -0x3fdf96e5\n\tSIOCGIFMTU                    = -0x3fdf96ea\n\tSIOCGIFMUXID                  = -0x3fdf96a8\n\tSIOCGIFNETMASK                = -0x3fdf96e7\n\tSIOCGIFNUM                    = 0x40046957\n\tSIOCGIP6ADDRPOLICY            = -0x3fff965e\n\tSIOCGIPMSFILTER               = -0x3ffb964c\n\tSIOCGLIFADDR                  = -0x3f87968f\n\tSIOCGLIFBINDING               = -0x3f879666\n\tSIOCGLIFBRDADDR               = -0x3f879685\n\tSIOCGLIFCONF                  = -0x3fef965b\n\tSIOCGLIFDADSTATE              = -0x3f879642\n\tSIOCGLIFDSTADDR               = -0x3f87968d\n\tSIOCGLIFFLAGS                 = -0x3f87968b\n\tSIOCGLIFGROUPINFO             = -0x3f4b9663\n\tSIOCGLIFGROUPNAME             = -0x3f879664\n\tSIOCGLIFHWADDR                = -0x3f879640\n\tSIOCGLIFINDEX                 = -0x3f87967b\n\tSIOCGLIFLNKINFO               = -0x3f879674\n\tSIOCGLIFMETRIC                = -0x3f879681\n\tSIOCGLIFMTU                   = -0x3f879686\n\tSIOCGLIFMUXID                 = -0x3f87967d\n\tSIOCGLIFNETMASK               = -0x3f879683\n\tSIOCGLIFNUM                   = -0x3ff3967e\n\tSIOCGLIFSRCOF                 = -0x3fef964f\n\tSIOCGLIFSUBNET                = -0x3f879676\n\tSIOCGLIFTOKEN                 = -0x3f879678\n\tSIOCGLIFUSESRC                = -0x3f879651\n\tSIOCGLIFZONE                  = -0x3f879656\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGMSFILTER                 = -0x3ffb964e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSTAMP                    = -0x3fef9646\n\tSIOCGXARP                     = -0x3fff9659\n\tSIOCIFDETACH                  = -0x7fdf96c8\n\tSIOCILB                       = -0x3ffb9645\n\tSIOCLIFADDIF                  = -0x3f879691\n\tSIOCLIFDELND                  = -0x7f879673\n\tSIOCLIFGETND                  = -0x3f879672\n\tSIOCLIFREMOVEIF               = -0x7f879692\n\tSIOCLIFSETND                  = -0x7f879671\n\tSIOCLOWER                     = -0x7fdf96d7\n\tSIOCSARP                      = -0x7fdb96e2\n\tSIOCSCTPGOPT                  = -0x3fef9653\n\tSIOCSCTPPEELOFF               = -0x3ffb9652\n\tSIOCSCTPSOPT                  = -0x7fef9654\n\tSIOCSENABLESDP                = -0x3ffb9649\n\tSIOCSETPROP                   = -0x7ffb8f43\n\tSIOCSETSYNC                   = -0x7fdf96d4\n\tSIOCSHIWAT                    = -0x7ffb8d00\n\tSIOCSIFADDR                   = -0x7fdf96f4\n\tSIOCSIFBRDADDR                = -0x7fdf96e8\n\tSIOCSIFDSTADDR                = -0x7fdf96f2\n\tSIOCSIFFLAGS                  = -0x7fdf96f0\n\tSIOCSIFINDEX                  = -0x7fdf96a5\n\tSIOCSIFMEM                    = -0x7fdf96ee\n\tSIOCSIFMETRIC                 = -0x7fdf96e4\n\tSIOCSIFMTU                    = -0x7fdf96eb\n\tSIOCSIFMUXID                  = -0x7fdf96a7\n\tSIOCSIFNAME                   = -0x7fdf96b7\n\tSIOCSIFNETMASK                = -0x7fdf96e6\n\tSIOCSIP6ADDRPOLICY            = -0x7fff965d\n\tSIOCSIPMSFILTER               = -0x7ffb964b\n\tSIOCSLGETREQ                  = -0x3fdf96b9\n\tSIOCSLIFADDR                  = -0x7f879690\n\tSIOCSLIFBRDADDR               = -0x7f879684\n\tSIOCSLIFDSTADDR               = -0x7f87968e\n\tSIOCSLIFFLAGS                 = -0x7f87968c\n\tSIOCSLIFGROUPNAME             = -0x7f879665\n\tSIOCSLIFINDEX                 = -0x7f87967a\n\tSIOCSLIFLNKINFO               = -0x7f879675\n\tSIOCSLIFMETRIC                = -0x7f879680\n\tSIOCSLIFMTU                   = -0x7f879687\n\tSIOCSLIFMUXID                 = -0x7f87967c\n\tSIOCSLIFNAME                  = -0x3f87967f\n\tSIOCSLIFNETMASK               = -0x7f879682\n\tSIOCSLIFPREFIX                = -0x3f879641\n\tSIOCSLIFSUBNET                = -0x7f879677\n\tSIOCSLIFTOKEN                 = -0x7f879679\n\tSIOCSLIFUSESRC                = -0x7f879650\n\tSIOCSLIFZONE                  = -0x7f879655\n\tSIOCSLOWAT                    = -0x7ffb8cfe\n\tSIOCSLSTAT                    = -0x7fdf96b8\n\tSIOCSMSFILTER                 = -0x7ffb964d\n\tSIOCSPGRP                     = -0x7ffb8cf8\n\tSIOCSPROMISC                  = -0x7ffb96d0\n\tSIOCSQPTR                     = -0x3ffb9648\n\tSIOCSSDSTATS                  = -0x3fdf96d2\n\tSIOCSSESTATS                  = -0x3fdf96d1\n\tSIOCSXARP                     = -0x7fff965a\n\tSIOCTMYADDR                   = -0x3ff79670\n\tSIOCTMYSITE                   = -0x3ff7966e\n\tSIOCTONLINK                   = -0x3ff7966f\n\tSIOCUPPER                     = -0x7fdf96d8\n\tSIOCX25RCV                    = -0x3fdf96c4\n\tSIOCX25TBL                    = -0x3fdf96c3\n\tSIOCX25XMT                    = -0x3fdf96c5\n\tSIOCXPROTO                    = 0x20007337\n\tSOCK_CLOEXEC                  = 0x80000\n\tSOCK_DGRAM                    = 0x1\n\tSOCK_NDELAY                   = 0x200000\n\tSOCK_NONBLOCK                 = 0x100000\n\tSOCK_RAW                      = 0x4\n\tSOCK_RDM                      = 0x5\n\tSOCK_SEQPACKET                = 0x6\n\tSOCK_STREAM                   = 0x2\n\tSOCK_TYPE_MASK                = 0xffff\n\tSOL_FILTER                    = 0xfffc\n\tSOL_PACKET                    = 0xfffd\n\tSOL_ROUTE                     = 0xfffe\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x80\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_ALL                        = 0x3f\n\tSO_ALLZONES                   = 0x1014\n\tSO_ANON_MLP                   = 0x100a\n\tSO_ATTACH_FILTER              = 0x40000001\n\tSO_BAND                       = 0x4000\n\tSO_BROADCAST                  = 0x20\n\tSO_COPYOPT                    = 0x80000\n\tSO_DEBUG                      = 0x1\n\tSO_DELIM                      = 0x8000\n\tSO_DETACH_FILTER              = 0x40000002\n\tSO_DGRAM_ERRIND               = 0x200\n\tSO_DOMAIN                     = 0x100c\n\tSO_DONTLINGER                 = -0x81\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROPT                     = 0x40000\n\tSO_ERROR                      = 0x1007\n\tSO_EXCLBIND                   = 0x1015\n\tSO_HIWAT                      = 0x10\n\tSO_ISNTTY                     = 0x800\n\tSO_ISTTY                      = 0x400\n\tSO_KEEPALIVE                  = 0x8\n\tSO_LINGER                     = 0x80\n\tSO_LOWAT                      = 0x20\n\tSO_MAC_EXEMPT                 = 0x100b\n\tSO_MAC_IMPLICIT               = 0x1016\n\tSO_MAXBLK                     = 0x100000\n\tSO_MAXPSZ                     = 0x8\n\tSO_MINPSZ                     = 0x4\n\tSO_MREADOFF                   = 0x80\n\tSO_MREADON                    = 0x40\n\tSO_NDELOFF                    = 0x200\n\tSO_NDELON                     = 0x100\n\tSO_NODELIM                    = 0x10000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PROTOTYPE                  = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVPSH                     = 0x100d\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_READOPT                    = 0x1\n\tSO_RECVUCRED                  = 0x400\n\tSO_REUSEADDR                  = 0x4\n\tSO_SECATTR                    = 0x1011\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_STRHOLD                    = 0x20000\n\tSO_TAIL                       = 0x200000\n\tSO_TIMESTAMP                  = 0x1013\n\tSO_TONSTOP                    = 0x2000\n\tSO_TOSTOP                     = 0x1000\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_VRRP                       = 0x1017\n\tSO_WROFF                      = 0x2\n\tS_ENFMT                       = 0x400\n\tS_IAMB                        = 0x1ff\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFDOOR                      = 0xd000\n\tS_IFIFO                       = 0x1000\n\tS_IFLNK                       = 0xa000\n\tS_IFMT                        = 0xf000\n\tS_IFNAM                       = 0x5000\n\tS_IFPORT                      = 0xe000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_INSEM                       = 0x1\n\tS_INSHD                       = 0x2\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXGRP                       = 0x8\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x800\n\tTAB2                          = 0x1000\n\tTAB3                          = 0x1800\n\tTABDLY                        = 0x1800\n\tTCFLSH                        = 0x5407\n\tTCGETA                        = 0x5401\n\tTCGETS                        = 0x540d\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_ABORT_THRESHOLD           = 0x11\n\tTCP_ANONPRIVBIND              = 0x20\n\tTCP_CONN_ABORT_THRESHOLD      = 0x13\n\tTCP_CONN_NOTIFY_THRESHOLD     = 0x12\n\tTCP_CORK                      = 0x18\n\tTCP_EXCLBIND                  = 0x21\n\tTCP_INIT_CWND                 = 0x15\n\tTCP_KEEPALIVE                 = 0x8\n\tTCP_KEEPALIVE_ABORT_THRESHOLD = 0x17\n\tTCP_KEEPALIVE_THRESHOLD       = 0x16\n\tTCP_KEEPCNT                   = 0x23\n\tTCP_KEEPIDLE                  = 0x22\n\tTCP_KEEPINTVL                 = 0x24\n\tTCP_LINGER2                   = 0x1c\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MSS                       = 0x218\n\tTCP_NODELAY                   = 0x1\n\tTCP_NOTIFY_THRESHOLD          = 0x10\n\tTCP_RECVDSTADDR               = 0x14\n\tTCP_RTO_INITIAL               = 0x19\n\tTCP_RTO_MAX                   = 0x1b\n\tTCP_RTO_MIN                   = 0x1a\n\tTCSAFLUSH                     = 0x5410\n\tTCSBRK                        = 0x5405\n\tTCSETA                        = 0x5402\n\tTCSETAF                       = 0x5404\n\tTCSETAW                       = 0x5403\n\tTCSETS                        = 0x540e\n\tTCSETSF                       = 0x5410\n\tTCSETSW                       = 0x540f\n\tTCXONC                        = 0x5406\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x747a\n\tTIOCCDTR                      = 0x7478\n\tTIOCCILOOP                    = 0x746c\n\tTIOCEXCL                      = 0x740d\n\tTIOCFLUSH                     = 0x7410\n\tTIOCGETC                      = 0x7412\n\tTIOCGETD                      = 0x7400\n\tTIOCGETP                      = 0x7408\n\tTIOCGLTC                      = 0x7474\n\tTIOCGPGRP                     = 0x7414\n\tTIOCGPPS                      = 0x547d\n\tTIOCGPPSEV                    = 0x547f\n\tTIOCGSID                      = 0x7416\n\tTIOCGSOFTCAR                  = 0x5469\n\tTIOCGWINSZ                    = 0x5468\n\tTIOCHPCL                      = 0x7402\n\tTIOCKBOF                      = 0x5409\n\tTIOCKBON                      = 0x5408\n\tTIOCLBIC                      = 0x747e\n\tTIOCLBIS                      = 0x747f\n\tTIOCLGET                      = 0x747c\n\tTIOCLSET                      = 0x747d\n\tTIOCMBIC                      = 0x741c\n\tTIOCMBIS                      = 0x741b\n\tTIOCMGET                      = 0x741d\n\tTIOCMSET                      = 0x741a\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x7471\n\tTIOCNXCL                      = 0x740e\n\tTIOCOUTQ                      = 0x7473\n\tTIOCREMOTE                    = 0x741e\n\tTIOCSBRK                      = 0x747b\n\tTIOCSCTTY                     = 0x7484\n\tTIOCSDTR                      = 0x7479\n\tTIOCSETC                      = 0x7411\n\tTIOCSETD                      = 0x7401\n\tTIOCSETN                      = 0x740a\n\tTIOCSETP                      = 0x7409\n\tTIOCSIGNAL                    = 0x741f\n\tTIOCSILOOP                    = 0x746d\n\tTIOCSLTC                      = 0x7475\n\tTIOCSPGRP                     = 0x7415\n\tTIOCSPPS                      = 0x547e\n\tTIOCSSOFTCAR                  = 0x546a\n\tTIOCSTART                     = 0x746e\n\tTIOCSTI                       = 0x7417\n\tTIOCSTOP                      = 0x746f\n\tTIOCSWINSZ                    = 0x5467\n\tTOSTOP                        = 0x100\n\tUTIME_NOW                     = -0x1\n\tUTIME_OMIT                    = -0x2\n\tVCEOF                         = 0x8\n\tVCEOL                         = 0x9\n\tVDISCARD                      = 0xd\n\tVDSUSP                        = 0xb\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVERASE2                       = 0x11\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xf\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xc\n\tVSTART                        = 0x8\n\tVSTATUS                       = 0x10\n\tVSTOP                         = 0x9\n\tVSUSP                         = 0xa\n\tVSWTCH                        = 0x7\n\tVT0                           = 0x0\n\tVT1                           = 0x4000\n\tVTDLY                         = 0x4000\n\tVTIME                         = 0x5\n\tVWERASE                       = 0xe\n\tWCONTFLG                      = 0xffff\n\tWCONTINUED                    = 0x8\n\tWCOREFLG                      = 0x80\n\tWEXITED                       = 0x1\n\tWNOHANG                       = 0x40\n\tWNOWAIT                       = 0x80\n\tWOPTMASK                      = 0xcf\n\tWRAP                          = 0x20000\n\tWSIGMASK                      = 0x7f\n\tWSTOPFLG                      = 0x7f\n\tWSTOPPED                      = 0x4\n\tWTRAPPED                      = 0x2\n\tWUNTRACED                     = 0x4\n\tXCASE                         = 0x4\n\tXTABS                         = 0x1800\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x39)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x2f)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x31)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOCKUNMAPPED   = syscall.Errno(0x48)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTACTIVE      = syscall.Errno(0x49)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTRECOVERABLE = syscall.Errno(0x3b)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x30)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0x3a)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMOTE         = syscall.Errno(0x42)\n\tERESTART        = syscall.Errno(0x5b)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT    = syscall.Signal(0x6)\n\tSIGALRM    = syscall.Signal(0xe)\n\tSIGBUS     = syscall.Signal(0xa)\n\tSIGCANCEL  = syscall.Signal(0x24)\n\tSIGCHLD    = syscall.Signal(0x12)\n\tSIGCLD     = syscall.Signal(0x12)\n\tSIGCONT    = syscall.Signal(0x19)\n\tSIGEMT     = syscall.Signal(0x7)\n\tSIGFPE     = syscall.Signal(0x8)\n\tSIGFREEZE  = syscall.Signal(0x22)\n\tSIGHUP     = syscall.Signal(0x1)\n\tSIGILL     = syscall.Signal(0x4)\n\tSIGINFO    = syscall.Signal(0x29)\n\tSIGINT     = syscall.Signal(0x2)\n\tSIGIO      = syscall.Signal(0x16)\n\tSIGIOT     = syscall.Signal(0x6)\n\tSIGJVM1    = syscall.Signal(0x27)\n\tSIGJVM2    = syscall.Signal(0x28)\n\tSIGKILL    = syscall.Signal(0x9)\n\tSIGLOST    = syscall.Signal(0x25)\n\tSIGLWP     = syscall.Signal(0x21)\n\tSIGPIPE    = syscall.Signal(0xd)\n\tSIGPOLL    = syscall.Signal(0x16)\n\tSIGPROF    = syscall.Signal(0x1d)\n\tSIGPWR     = syscall.Signal(0x13)\n\tSIGQUIT    = syscall.Signal(0x3)\n\tSIGSEGV    = syscall.Signal(0xb)\n\tSIGSTOP    = syscall.Signal(0x17)\n\tSIGSYS     = syscall.Signal(0xc)\n\tSIGTERM    = syscall.Signal(0xf)\n\tSIGTHAW    = syscall.Signal(0x23)\n\tSIGTRAP    = syscall.Signal(0x5)\n\tSIGTSTP    = syscall.Signal(0x18)\n\tSIGTTIN    = syscall.Signal(0x1a)\n\tSIGTTOU    = syscall.Signal(0x1b)\n\tSIGURG     = syscall.Signal(0x15)\n\tSIGUSR1    = syscall.Signal(0x10)\n\tSIGUSR2    = syscall.Signal(0x11)\n\tSIGVTALRM  = syscall.Signal(0x1c)\n\tSIGWAITING = syscall.Signal(0x20)\n\tSIGWINCH   = syscall.Signal(0x14)\n\tSIGXCPU    = syscall.Signal(0x1e)\n\tSIGXFSZ    = syscall.Signal(0x1f)\n\tSIGXRES    = syscall.Signal(0x26)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock situation detected/avoided\"},\n\t{46, \"ENOLCK\", \"no record locks available\"},\n\t{47, \"ECANCELED\", \"operation canceled\"},\n\t{48, \"ENOTSUP\", \"operation not supported\"},\n\t{49, \"EDQUOT\", \"disc quota exceeded\"},\n\t{50, \"EBADE\", \"bad exchange descriptor\"},\n\t{51, \"EBADR\", \"bad request descriptor\"},\n\t{52, \"EXFULL\", \"message tables full\"},\n\t{53, \"ENOANO\", \"anode table overflow\"},\n\t{54, \"EBADRQC\", \"bad request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock\"},\n\t{57, \"EBFONT\", \"bad font file format\"},\n\t{58, \"EOWNERDEAD\", \"owner of the lock died\"},\n\t{59, \"ENOTRECOVERABLE\", \"lock is not recoverable\"},\n\t{60, \"ENOSTR\", \"not a stream device\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of stream resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"ELOCKUNMAPPED\", \"locked lock was unmapped \"},\n\t{73, \"ENOTACTIVE\", \"facility is not active\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"not a data message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in more shared libraries than system limit\"},\n\t{87, \"ELIBEXEC\", \"can not exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"illegal byte sequence\"},\n\t{89, \"ENOSYS\", \"operation not applicable\"},\n\t{90, \"ELOOP\", \"number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS\"},\n\t{91, \"ERESTART\", \"error 91\"},\n\t{92, \"ESTRPIPE\", \"error 92\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"option not supported by protocol\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"EOPNOTSUPP\", \"operation not supported on transport endpoint\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection because of reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after socket shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale NFS file handle\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal Instruction\"},\n\t{5, \"SIGTRAP\", \"trace/Breakpoint Trap\"},\n\t{6, \"SIGABRT\", \"abort\"},\n\t{7, \"SIGEMT\", \"emulation Trap\"},\n\t{8, \"SIGFPE\", \"arithmetic Exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus Error\"},\n\t{11, \"SIGSEGV\", \"segmentation Fault\"},\n\t{12, \"SIGSYS\", \"bad System Call\"},\n\t{13, \"SIGPIPE\", \"broken Pipe\"},\n\t{14, \"SIGALRM\", \"alarm Clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user Signal 1\"},\n\t{17, \"SIGUSR2\", \"user Signal 2\"},\n\t{18, \"SIGCHLD\", \"child Status Changed\"},\n\t{19, \"SIGPWR\", \"power-Fail/Restart\"},\n\t{20, \"SIGWINCH\", \"window Size Change\"},\n\t{21, \"SIGURG\", \"urgent Socket Condition\"},\n\t{22, \"SIGIO\", \"pollable Event\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped (user)\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual Timer Expired\"},\n\t{29, \"SIGPROF\", \"profiling Timer Expired\"},\n\t{30, \"SIGXCPU\", \"cpu Limit Exceeded\"},\n\t{31, \"SIGXFSZ\", \"file Size Limit Exceeded\"},\n\t{32, \"SIGWAITING\", \"no runnable lwp\"},\n\t{33, \"SIGLWP\", \"inter-lwp signal\"},\n\t{34, \"SIGFREEZE\", \"checkpoint Freeze\"},\n\t{35, \"SIGTHAW\", \"checkpoint Thaw\"},\n\t{36, \"SIGCANCEL\", \"thread Cancellation\"},\n\t{37, \"SIGLOST\", \"resource Lost\"},\n\t{38, \"SIGXRES\", \"resource Control Exceeded\"},\n\t{39, \"SIGJVM1\", \"reserved for JVM 1\"},\n\t{40, \"SIGJVM2\", \"reserved for JVM 2\"},\n\t{41, \"SIGINFO\", \"information Request\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace386_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(386, amd64). DO NOT EDIT.\n\n// +build linux\n// +build 386 amd64\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegs386 is the registers used by 386 binaries.\ntype PtraceRegs386 struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\n// PtraceGetRegs386 fetches the registers used by 386 binaries.\nfunc PtraceGetRegs386(pid int, regsout *PtraceRegs386) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegs386 sets the registers used by 386 binaries.\nfunc PtraceSetRegs386(pid int, regs *PtraceRegs386) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n\n// PtraceRegsAmd64 is the registers used by amd64 binaries.\ntype PtraceRegsAmd64 struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\n// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries.\nfunc PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsAmd64 sets the registers used by amd64 binaries.\nfunc PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptracearm_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(arm, arm64). DO NOT EDIT.\n\n// +build linux\n// +build arm arm64\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsArm is the registers used by arm binaries.\ntype PtraceRegsArm struct {\n\tUregs [18]uint32\n}\n\n// PtraceGetRegsArm fetches the registers used by arm binaries.\nfunc PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsArm sets the registers used by arm binaries.\nfunc PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n\n// PtraceRegsArm64 is the registers used by arm64 binaries.\ntype PtraceRegsArm64 struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\n// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptracemips_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(mips, mips64). DO NOT EDIT.\n\n// +build linux\n// +build mips mips64\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMips is the registers used by mips binaries.\ntype PtraceRegsMips struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips fetches the registers used by mips binaries.\nfunc PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsMips sets the registers used by mips binaries.\nfunc PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n\n// PtraceRegsMips64 is the registers used by mips64 binaries.\ntype PtraceRegsMips64 struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.\nfunc PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsMips64 sets the registers used by mips64 binaries.\nfunc PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptracemipsle_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(mipsle, mips64le). DO NOT EDIT.\n\n// +build linux\n// +build mipsle mips64le\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMipsle is the registers used by mipsle binaries.\ntype PtraceRegsMipsle struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMipsle fetches the registers used by mipsle binaries.\nfunc PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsMipsle sets the registers used by mipsle binaries.\nfunc PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n\n// PtraceRegsMips64le is the registers used by mips64le binaries.\ntype PtraceRegsMips64le struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64le fetches the registers used by mips64le binaries.\nfunc PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {\n\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n}\n\n// PtraceSetRegsMips64le sets the registers used by mips64le binaries.\nfunc PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {\n\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go",
    "content": "// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build aix,ppc\n\npackage unix\n\n/*\n#include <stdint.h>\n#include <stddef.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint fsync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit64(int, uintptr_t);\nint setrlimit64(int, uintptr_t);\nlong long lseek64(int, long long, int);\nuintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\twpid = Pid_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tr = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tval = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.acct(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chdir(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chroot(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, er := C.close(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, er := C.dup(C.int(oldfd))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tC.exit(C.int(code))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\tr0, er := C.fchdir(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\tr0, er := C.fchmod(C.int(fd), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\tr0, er := C.fdatasync(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\tr0, er := C.fsync(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, er := C.getpgid(C.int(pid))\n\tpgid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := C.getpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := C.getpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := C.getppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, er := C.getpriority(C.int(which), C.int(who))\n\tprio = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tr0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, er := C.getsid(C.int(pid))\n\tsid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, er := C.kill(C.int(pid), C.int(sig))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\tr0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tvar _p2 int\n\t_p2 = len(buf)\n\tr0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))\n\t_p1 := uintptr(unsafe.Pointer(C.CString(newpath)))\n\tr0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, er := C.setpgid(C.int(pid), C.int(pgid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, er := C.setsid()\n\tpid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\tr0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\tr0, er := C.setuid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\tr0, er := C.setgid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\tr0, er := C.setpriority(C.int(which), C.int(who), C.int(prio))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tC.sync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))\n\tticks = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := C.umask(C.int(mask))\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlink(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\tr0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\tr0, er := C.dup2(C.int(oldfd), C.int(newfd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\tr0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\tr0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\tr0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tr0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\tr0, er := C.ftruncate(C.int(fd), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := C.getegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := C.geteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := C.getgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := C.getuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\tr0, er := C.listen(C.int(s), C.int(n))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\tr0, er := C.pause()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, er := C.setregid(C.int(rgid), C.int(egid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, er := C.setreuid(C.int(ruid), C.int(euid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\tr0, er := C.shutdown(C.int(fd), C.int(how))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags))\n\tn = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tnn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\tr0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\tr0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, er := C.socket(C.int(domain), C.int(typ), C.int(proto))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\tr0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\tr0, er := C.mlockall(C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\tr0, er := C.munlockall()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\tr0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t))))\n\ttt = Time_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := C.getsystemcfg(C.int(label))\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(target)))\n\tr0, er := C.umount(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, er := C.setrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence))\n\toff = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))\n\txaddr = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build aix,ppc64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage)))\n\twpid = Pid_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, e1 := callioctl(fd, int(req), arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, e1 := callfcntl(fd, cmd, uintptr(arg))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\t_, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callacct(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchdir(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchroot(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, e1 := callclose(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, e1 := calldup(oldfd)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tcallexit(code)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, e1 := callfchdir(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, e1 := callfchmod(fd, mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, e1 := callfdatasync(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, e1 := callfsync(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e1 := callgetpgid(pid)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := callgetpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := callgetpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := callgetppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, e1 := callgetpriority(which, who)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e1 := callgetsid(pid)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\t_, e1 := callkill(pid, int(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, e1 := callsetpgid(pid, pgid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e1 := callsetsid()\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, e1 := callsetuid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\t_, e1 := callsetgid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, e1 := callsetpriority(which, who, prio)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tcallsync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, e1 := calltimes(uintptr(unsafe.Pointer(tms)))\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := callumask(mask)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, e1 := calluname(uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlink(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, e1 := calldup2(oldfd, newfd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, e1 := callposix_fadvise64(fd, offset, length, advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, e1 := callfchown(fd, uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\t_, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, e1 := callftruncate(fd, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := callgetegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := callgeteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := callgetgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := callgetuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, e1 := calllisten(s, n)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, e1 := callpause()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, e1 := callsetregid(rgid, egid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, e1 := callsetreuid(ruid, euid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, e1 := callshutdown(fd, how)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callbind(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callconnect(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e1 := callsetsockopt(s, level, name, uintptr(val), vallen)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e1 := callsocket(domain, typ, proto)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, e1 := callmunmap(addr, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, e1 := callmlockall(flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, e1 := callmunlockall()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, e1 := callpipe(uintptr(unsafe.Pointer(p)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\t_, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, e1 := calltime(uintptr(unsafe.Pointer(t)))\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := callgetsystemcfg(label)\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callumount(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, e1 := callsetrlimit(resource, uintptr(unsafe.Pointer(rlim)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, e1 := calllseek(fd, offset, whence)\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, e1 := callmmap64(addr, length, prot, flags, fd, offset)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build aix,ppc64\n// +build !gccgo\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_accept accept \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getdirent getdirent \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_acct acct \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_close close \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup dup \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_exit exit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fsync fsync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_kill kill \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_syslog syslog \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_open64 open64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_openat openat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_read read \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setdomainname setdomainname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statx statx \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sync sync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_times times \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umask umask \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_uname uname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_write write \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_listen listen \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pause pause \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pread64 pread64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pwrite64 pwrite64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_select select \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pselect pselect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_splice splice \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_stat stat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statfs statfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_bind bind \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_connect connect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socket socket \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sendto sendto \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nsendmsg nsendmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_msync msync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pipe pipe \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_poll poll \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_time time \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utime utime \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umount umount \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setrlimit setrlimit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mmap64 mmap64 \"libc.a/shr_64.o\"\n\n//go:linkname libc_utimes libc_utimes\n//go:linkname libc_utimensat libc_utimensat\n//go:linkname libc_getcwd libc_getcwd\n//go:linkname libc_accept libc_accept\n//go:linkname libc_getdirent libc_getdirent\n//go:linkname libc_wait4 libc_wait4\n//go:linkname libc_ioctl libc_ioctl\n//go:linkname libc_fcntl libc_fcntl\n//go:linkname libc_acct libc_acct\n//go:linkname libc_chdir libc_chdir\n//go:linkname libc_chroot libc_chroot\n//go:linkname libc_close libc_close\n//go:linkname libc_dup libc_dup\n//go:linkname libc_exit libc_exit\n//go:linkname libc_faccessat libc_faccessat\n//go:linkname libc_fchdir libc_fchdir\n//go:linkname libc_fchmod libc_fchmod\n//go:linkname libc_fchmodat libc_fchmodat\n//go:linkname libc_fchownat libc_fchownat\n//go:linkname libc_fdatasync libc_fdatasync\n//go:linkname libc_fsync libc_fsync\n//go:linkname libc_getpgid libc_getpgid\n//go:linkname libc_getpgrp libc_getpgrp\n//go:linkname libc_getpid libc_getpid\n//go:linkname libc_getppid libc_getppid\n//go:linkname libc_getpriority libc_getpriority\n//go:linkname libc_getrusage libc_getrusage\n//go:linkname libc_getsid libc_getsid\n//go:linkname libc_kill libc_kill\n//go:linkname libc_syslog libc_syslog\n//go:linkname libc_mkdir libc_mkdir\n//go:linkname libc_mkdirat libc_mkdirat\n//go:linkname libc_mkfifo libc_mkfifo\n//go:linkname libc_mknod libc_mknod\n//go:linkname libc_mknodat libc_mknodat\n//go:linkname libc_nanosleep libc_nanosleep\n//go:linkname libc_open64 libc_open64\n//go:linkname libc_openat libc_openat\n//go:linkname libc_read libc_read\n//go:linkname libc_readlink libc_readlink\n//go:linkname libc_renameat libc_renameat\n//go:linkname libc_setdomainname libc_setdomainname\n//go:linkname libc_sethostname libc_sethostname\n//go:linkname libc_setpgid libc_setpgid\n//go:linkname libc_setsid libc_setsid\n//go:linkname libc_settimeofday libc_settimeofday\n//go:linkname libc_setuid libc_setuid\n//go:linkname libc_setgid libc_setgid\n//go:linkname libc_setpriority libc_setpriority\n//go:linkname libc_statx libc_statx\n//go:linkname libc_sync libc_sync\n//go:linkname libc_times libc_times\n//go:linkname libc_umask libc_umask\n//go:linkname libc_uname libc_uname\n//go:linkname libc_unlink libc_unlink\n//go:linkname libc_unlinkat libc_unlinkat\n//go:linkname libc_ustat libc_ustat\n//go:linkname libc_write libc_write\n//go:linkname libc_dup2 libc_dup2\n//go:linkname libc_posix_fadvise64 libc_posix_fadvise64\n//go:linkname libc_fchown libc_fchown\n//go:linkname libc_fstat libc_fstat\n//go:linkname libc_fstatat libc_fstatat\n//go:linkname libc_fstatfs libc_fstatfs\n//go:linkname libc_ftruncate libc_ftruncate\n//go:linkname libc_getegid libc_getegid\n//go:linkname libc_geteuid libc_geteuid\n//go:linkname libc_getgid libc_getgid\n//go:linkname libc_getuid libc_getuid\n//go:linkname libc_lchown libc_lchown\n//go:linkname libc_listen libc_listen\n//go:linkname libc_lstat libc_lstat\n//go:linkname libc_pause libc_pause\n//go:linkname libc_pread64 libc_pread64\n//go:linkname libc_pwrite64 libc_pwrite64\n//go:linkname libc_select libc_select\n//go:linkname libc_pselect libc_pselect\n//go:linkname libc_setregid libc_setregid\n//go:linkname libc_setreuid libc_setreuid\n//go:linkname libc_shutdown libc_shutdown\n//go:linkname libc_splice libc_splice\n//go:linkname libc_stat libc_stat\n//go:linkname libc_statfs libc_statfs\n//go:linkname libc_truncate libc_truncate\n//go:linkname libc_bind libc_bind\n//go:linkname libc_connect libc_connect\n//go:linkname libc_getgroups libc_getgroups\n//go:linkname libc_setgroups libc_setgroups\n//go:linkname libc_getsockopt libc_getsockopt\n//go:linkname libc_setsockopt libc_setsockopt\n//go:linkname libc_socket libc_socket\n//go:linkname libc_socketpair libc_socketpair\n//go:linkname libc_getpeername libc_getpeername\n//go:linkname libc_getsockname libc_getsockname\n//go:linkname libc_recvfrom libc_recvfrom\n//go:linkname libc_sendto libc_sendto\n//go:linkname libc_nrecvmsg libc_nrecvmsg\n//go:linkname libc_nsendmsg libc_nsendmsg\n//go:linkname libc_munmap libc_munmap\n//go:linkname libc_madvise libc_madvise\n//go:linkname libc_mprotect libc_mprotect\n//go:linkname libc_mlock libc_mlock\n//go:linkname libc_mlockall libc_mlockall\n//go:linkname libc_msync libc_msync\n//go:linkname libc_munlock libc_munlock\n//go:linkname libc_munlockall libc_munlockall\n//go:linkname libc_pipe libc_pipe\n//go:linkname libc_poll libc_poll\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:linkname libc_time libc_time\n//go:linkname libc_utime libc_utime\n//go:linkname libc_getsystemcfg libc_getsystemcfg\n//go:linkname libc_umount libc_umount\n//go:linkname libc_getrlimit libc_getrlimit\n//go:linkname libc_setrlimit libc_setrlimit\n//go:linkname libc_lseek libc_lseek\n//go:linkname libc_mmap64 libc_mmap64\n\ntype syscallFunc uintptr\n\nvar (\n\tlibc_utimes,\n\tlibc_utimensat,\n\tlibc_getcwd,\n\tlibc_accept,\n\tlibc_getdirent,\n\tlibc_wait4,\n\tlibc_ioctl,\n\tlibc_fcntl,\n\tlibc_acct,\n\tlibc_chdir,\n\tlibc_chroot,\n\tlibc_close,\n\tlibc_dup,\n\tlibc_exit,\n\tlibc_faccessat,\n\tlibc_fchdir,\n\tlibc_fchmod,\n\tlibc_fchmodat,\n\tlibc_fchownat,\n\tlibc_fdatasync,\n\tlibc_fsync,\n\tlibc_getpgid,\n\tlibc_getpgrp,\n\tlibc_getpid,\n\tlibc_getppid,\n\tlibc_getpriority,\n\tlibc_getrusage,\n\tlibc_getsid,\n\tlibc_kill,\n\tlibc_syslog,\n\tlibc_mkdir,\n\tlibc_mkdirat,\n\tlibc_mkfifo,\n\tlibc_mknod,\n\tlibc_mknodat,\n\tlibc_nanosleep,\n\tlibc_open64,\n\tlibc_openat,\n\tlibc_read,\n\tlibc_readlink,\n\tlibc_renameat,\n\tlibc_setdomainname,\n\tlibc_sethostname,\n\tlibc_setpgid,\n\tlibc_setsid,\n\tlibc_settimeofday,\n\tlibc_setuid,\n\tlibc_setgid,\n\tlibc_setpriority,\n\tlibc_statx,\n\tlibc_sync,\n\tlibc_times,\n\tlibc_umask,\n\tlibc_uname,\n\tlibc_unlink,\n\tlibc_unlinkat,\n\tlibc_ustat,\n\tlibc_write,\n\tlibc_dup2,\n\tlibc_posix_fadvise64,\n\tlibc_fchown,\n\tlibc_fstat,\n\tlibc_fstatat,\n\tlibc_fstatfs,\n\tlibc_ftruncate,\n\tlibc_getegid,\n\tlibc_geteuid,\n\tlibc_getgid,\n\tlibc_getuid,\n\tlibc_lchown,\n\tlibc_listen,\n\tlibc_lstat,\n\tlibc_pause,\n\tlibc_pread64,\n\tlibc_pwrite64,\n\tlibc_select,\n\tlibc_pselect,\n\tlibc_setregid,\n\tlibc_setreuid,\n\tlibc_shutdown,\n\tlibc_splice,\n\tlibc_stat,\n\tlibc_statfs,\n\tlibc_truncate,\n\tlibc_bind,\n\tlibc_connect,\n\tlibc_getgroups,\n\tlibc_setgroups,\n\tlibc_getsockopt,\n\tlibc_setsockopt,\n\tlibc_socket,\n\tlibc_socketpair,\n\tlibc_getpeername,\n\tlibc_getsockname,\n\tlibc_recvfrom,\n\tlibc_sendto,\n\tlibc_nrecvmsg,\n\tlibc_nsendmsg,\n\tlibc_munmap,\n\tlibc_madvise,\n\tlibc_mprotect,\n\tlibc_mlock,\n\tlibc_mlockall,\n\tlibc_msync,\n\tlibc_munlock,\n\tlibc_munlockall,\n\tlibc_pipe,\n\tlibc_poll,\n\tlibc_gettimeofday,\n\tlibc_time,\n\tlibc_utime,\n\tlibc_getsystemcfg,\n\tlibc_umount,\n\tlibc_getrlimit,\n\tlibc_setrlimit,\n\tlibc_lseek,\n\tlibc_mmap64 syscallFunc\n)\n\n// Implemented in runtime/syscall_aix.go.\nfunc rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build aix,ppc64\n// +build gccgo\n\npackage unix\n\n/*\n#include <stdint.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint fsync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit(int, uintptr_t);\nint setrlimit(int, uintptr_t);\nlong long lseek(int, long long, int);\nuintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"syscall\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.acct(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chdir(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chroot(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.close(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup(C.int(oldfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.exit(C.int(code)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchdir(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmod(C.int(fd), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fdatasync(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fsync(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgrp())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getppid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpriority(C.int(which), C.int(who)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.kill(C.int(pid), C.int(sig)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpgid(C.int(pid), C.int(pgid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.settimeofday(C.uintptr_t(tv)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setuid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sync())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.times(C.uintptr_t(tms)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umask(C.int(mask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.uname(C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlink(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getegid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.geteuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.listen(C.int(s), C.int(n)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pause())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setregid(C.int(rgid), C.int(egid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setreuid(C.int(ruid), C.int(euid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.shutdown(C.int(fd), C.int(how)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlockall(C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlockall())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pipe(C.uintptr_t(p)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.time(C.uintptr_t(t)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsystemcfg(C.int(label)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umount(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setrlimit(C.int(resource), C.uintptr_t(rlim)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go",
    "content": "// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,386,!go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int32(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go",
    "content": "// go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,386,go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getgroups_trampoline()\n\n//go:linkname libc_getgroups libc_getgroups\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgroups_trampoline()\n\n//go:linkname libc_setgroups libc_setgroups\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_wait4_trampoline()\n\n//go:linkname libc_wait4 libc_wait4\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_accept_trampoline()\n\n//go:linkname libc_accept libc_accept\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_bind_trampoline()\n\n//go:linkname libc_bind libc_bind\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_connect_trampoline()\n\n//go:linkname libc_connect libc_connect\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socket_trampoline()\n\n//go:linkname libc_socket libc_socket\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockopt_trampoline()\n\n//go:linkname libc_getsockopt libc_getsockopt\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsockopt_trampoline()\n\n//go:linkname libc_setsockopt libc_setsockopt\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpeername_trampoline()\n\n//go:linkname libc_getpeername libc_getpeername\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockname_trampoline()\n\n//go:linkname libc_getsockname libc_getsockname\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_shutdown_trampoline()\n\n//go:linkname libc_shutdown libc_shutdown\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socketpair_trampoline()\n\n//go:linkname libc_socketpair libc_socketpair\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvfrom_trampoline()\n\n//go:linkname libc_recvfrom libc_recvfrom\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendto_trampoline()\n\n//go:linkname libc_sendto libc_sendto\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvmsg_trampoline()\n\n//go:linkname libc_recvmsg libc_recvmsg\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendmsg_trampoline()\n\n//go:linkname libc_sendmsg libc_sendmsg\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kevent_trampoline()\n\n//go:linkname libc_kevent libc_kevent\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_utimes_trampoline()\n\n//go:linkname libc_utimes libc_utimes\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_futimes_trampoline()\n\n//go:linkname libc_futimes libc_futimes\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fcntl_trampoline()\n\n//go:linkname libc_fcntl libc_fcntl\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_poll_trampoline()\n\n//go:linkname libc_poll libc_poll\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_madvise_trampoline()\n\n//go:linkname libc_madvise libc_madvise\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlock_trampoline()\n\n//go:linkname libc_mlock libc_mlock\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlockall_trampoline()\n\n//go:linkname libc_mlockall libc_mlockall\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mprotect_trampoline()\n\n//go:linkname libc_mprotect libc_mprotect\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_msync_trampoline()\n\n//go:linkname libc_msync libc_msync\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlock_trampoline()\n\n//go:linkname libc_munlock libc_munlock\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlockall_trampoline()\n\n//go:linkname libc_munlockall libc_munlockall\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getattrlist_trampoline()\n\n//go:linkname libc_getattrlist libc_getattrlist\n//go:cgo_import_dynamic libc_getattrlist getattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pipe_trampoline()\n\n//go:linkname libc_pipe libc_pipe\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getxattr_trampoline()\n\n//go:linkname libc_getxattr libc_getxattr\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fgetxattr_trampoline()\n\n//go:linkname libc_fgetxattr libc_fgetxattr\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setxattr_trampoline()\n\n//go:linkname libc_setxattr libc_setxattr\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsetxattr_trampoline()\n\n//go:linkname libc_fsetxattr libc_fsetxattr\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_removexattr_trampoline()\n\n//go:linkname libc_removexattr libc_removexattr\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fremovexattr_trampoline()\n\n//go:linkname libc_fremovexattr libc_fremovexattr\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listxattr_trampoline()\n\n//go:linkname libc_listxattr libc_listxattr\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flistxattr_trampoline()\n\n//go:linkname libc_flistxattr libc_flistxattr\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setattrlist_trampoline()\n\n//go:linkname libc_setattrlist libc_setattrlist\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kill_trampoline()\n\n//go:linkname libc_kill libc_kill\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ioctl_trampoline()\n\n//go:linkname libc_ioctl libc_ioctl\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendfile_trampoline()\n\n//go:linkname libc_sendfile libc_sendfile\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_access_trampoline()\n\n//go:linkname libc_access libc_access\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_adjtime_trampoline()\n\n//go:linkname libc_adjtime libc_adjtime\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chdir_trampoline()\n\n//go:linkname libc_chdir libc_chdir\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chflags_trampoline()\n\n//go:linkname libc_chflags libc_chflags\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chmod_trampoline()\n\n//go:linkname libc_chmod libc_chmod\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chown_trampoline()\n\n//go:linkname libc_chown libc_chown\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chroot_trampoline()\n\n//go:linkname libc_chroot libc_chroot\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_clock_gettime_trampoline()\n\n//go:linkname libc_clock_gettime libc_clock_gettime\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_close_trampoline()\n\n//go:linkname libc_close libc_close\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup_trampoline()\n\n//go:linkname libc_dup libc_dup\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup2_trampoline()\n\n//go:linkname libc_dup2 libc_dup2\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_exchangedata_trampoline()\n\n//go:linkname libc_exchangedata libc_exchangedata\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)\n\treturn\n}\n\nfunc libc_exit_trampoline()\n\n//go:linkname libc_exit libc_exit\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_faccessat_trampoline()\n\n//go:linkname libc_faccessat libc_faccessat\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchdir_trampoline()\n\n//go:linkname libc_fchdir libc_fchdir\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchflags_trampoline()\n\n//go:linkname libc_fchflags libc_fchflags\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmod_trampoline()\n\n//go:linkname libc_fchmod libc_fchmod\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmodat_trampoline()\n\n//go:linkname libc_fchmodat libc_fchmodat\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchown_trampoline()\n\n//go:linkname libc_fchown libc_fchown\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchownat_trampoline()\n\n//go:linkname libc_fchownat libc_fchownat\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flock_trampoline()\n\n//go:linkname libc_flock libc_flock\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fpathconf_trampoline()\n\n//go:linkname libc_fpathconf libc_fpathconf\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsync_trampoline()\n\n//go:linkname libc_fsync libc_fsync\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ftruncate_trampoline()\n\n//go:linkname libc_ftruncate libc_ftruncate\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nfunc libc_getdtablesize_trampoline()\n\n//go:linkname libc_getdtablesize libc_getdtablesize\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nfunc libc_getegid_trampoline()\n\n//go:linkname libc_getegid libc_getegid\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_geteuid_trampoline()\n\n//go:linkname libc_geteuid libc_geteuid\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nfunc libc_getgid_trampoline()\n\n//go:linkname libc_getgid libc_getgid\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpgid_trampoline()\n\n//go:linkname libc_getpgid libc_getpgid\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nfunc libc_getpgrp_trampoline()\n\n//go:linkname libc_getpgrp libc_getpgrp\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nfunc libc_getpid_trampoline()\n\n//go:linkname libc_getpid libc_getpid\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nfunc libc_getppid_trampoline()\n\n//go:linkname libc_getppid libc_getppid\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpriority_trampoline()\n\n//go:linkname libc_getpriority libc_getpriority\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrlimit_trampoline()\n\n//go:linkname libc_getrlimit libc_getrlimit\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrusage_trampoline()\n\n//go:linkname libc_getrusage libc_getrusage\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsid_trampoline()\n\n//go:linkname libc_getsid libc_getsid\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_getuid_trampoline()\n\n//go:linkname libc_getuid libc_getuid\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nfunc libc_issetugid_trampoline()\n\n//go:linkname libc_issetugid libc_issetugid\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kqueue_trampoline()\n\n//go:linkname libc_kqueue libc_kqueue\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lchown_trampoline()\n\n//go:linkname libc_lchown libc_lchown\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_link_trampoline()\n\n//go:linkname libc_link libc_link\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_linkat_trampoline()\n\n//go:linkname libc_linkat libc_linkat\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listen_trampoline()\n\n//go:linkname libc_listen libc_listen\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdir_trampoline()\n\n//go:linkname libc_mkdir libc_mkdir\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdirat_trampoline()\n\n//go:linkname libc_mkdirat libc_mkdirat\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkfifo_trampoline()\n\n//go:linkname libc_mkfifo libc_mkfifo\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mknod_trampoline()\n\n//go:linkname libc_mknod libc_mknod\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_open_trampoline()\n\n//go:linkname libc_open libc_open\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_openat_trampoline()\n\n//go:linkname libc_openat libc_openat\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pathconf_trampoline()\n\n//go:linkname libc_pathconf libc_pathconf\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pread_trampoline()\n\n//go:linkname libc_pread libc_pread\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pwrite_trampoline()\n\n//go:linkname libc_pwrite libc_pwrite\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_read_trampoline()\n\n//go:linkname libc_read libc_read\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlink_trampoline()\n\n//go:linkname libc_readlink libc_readlink\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlinkat_trampoline()\n\n//go:linkname libc_readlinkat libc_readlinkat\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rename_trampoline()\n\n//go:linkname libc_rename libc_rename\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_renameat_trampoline()\n\n//go:linkname libc_renameat libc_renameat\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_revoke_trampoline()\n\n//go:linkname libc_revoke libc_revoke\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rmdir_trampoline()\n\n//go:linkname libc_rmdir libc_rmdir\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lseek_trampoline()\n\n//go:linkname libc_lseek libc_lseek\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_select_trampoline()\n\n//go:linkname libc_select libc_select\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setegid_trampoline()\n\n//go:linkname libc_setegid libc_setegid\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_seteuid_trampoline()\n\n//go:linkname libc_seteuid libc_seteuid\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgid_trampoline()\n\n//go:linkname libc_setgid libc_setgid\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setlogin_trampoline()\n\n//go:linkname libc_setlogin libc_setlogin\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpgid_trampoline()\n\n//go:linkname libc_setpgid libc_setpgid\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpriority_trampoline()\n\n//go:linkname libc_setpriority libc_setpriority\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setprivexec_trampoline()\n\n//go:linkname libc_setprivexec libc_setprivexec\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setregid_trampoline()\n\n//go:linkname libc_setregid libc_setregid\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setreuid_trampoline()\n\n//go:linkname libc_setreuid libc_setreuid\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setrlimit_trampoline()\n\n//go:linkname libc_setrlimit libc_setrlimit\n//go:cgo_import_dynamic libc_setrlimit setrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsid_trampoline()\n\n//go:linkname libc_setsid libc_setsid\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_settimeofday_trampoline()\n\n//go:linkname libc_settimeofday libc_settimeofday\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setuid_trampoline()\n\n//go:linkname libc_setuid libc_setuid\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlink_trampoline()\n\n//go:linkname libc_symlink libc_symlink\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlinkat_trampoline()\n\n//go:linkname libc_symlinkat libc_symlinkat\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sync_trampoline()\n\n//go:linkname libc_sync libc_sync\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_truncate_trampoline()\n\n//go:linkname libc_truncate libc_truncate\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nfunc libc_umask_trampoline()\n\n//go:linkname libc_umask libc_umask\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_undelete_trampoline()\n\n//go:linkname libc_undelete libc_undelete\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlink_trampoline()\n\n//go:linkname libc_unlink libc_unlink\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlinkat_trampoline()\n\n//go:linkname libc_unlinkat libc_unlinkat\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unmount_trampoline()\n\n//go:linkname libc_unmount libc_unmount\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_write_trampoline()\n\n//go:linkname libc_write libc_write\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mmap_trampoline()\n\n//go:linkname libc_mmap libc_mmap\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munmap_trampoline()\n\n//go:linkname libc_munmap libc_munmap\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc___sysctl_trampoline()\n\n//go:linkname libc___sysctl libc___sysctl\n//go:cgo_import_dynamic libc___sysctl __sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ptrace_trampoline()\n\n//go:linkname libc_ptrace libc_ptrace\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int32(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_gettimeofday_trampoline()\n\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstat64_trampoline()\n\n//go:linkname libc_fstat64 libc_fstat64\n//go:cgo_import_dynamic libc_fstat64 fstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatat64_trampoline()\n\n//go:linkname libc_fstatat64 libc_fstatat64\n//go:cgo_import_dynamic libc_fstatat64 fstatat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatfs64_trampoline()\n\n//go:linkname libc_fstatfs64 libc_fstatfs64\n//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc___getdirentries64_trampoline()\n\n//go:linkname libc___getdirentries64 libc___getdirentries64\n//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getfsstat64_trampoline()\n\n//go:linkname libc_getfsstat64 libc_getfsstat64\n//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lstat64_trampoline()\n\n//go:linkname libc_lstat64 libc_lstat64\n//go:cgo_import_dynamic libc_lstat64 lstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_stat64_trampoline()\n\n//go:linkname libc_stat64 libc_stat64\n//go:cgo_import_dynamic libc_stat64 stat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_statfs64_trampoline()\n\n//go:linkname libc_statfs64 libc_statfs64\n//go:cgo_import_dynamic libc_statfs64 statfs64 \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s",
    "content": "// go run mkasm_darwin.go 386\n// Code generated by the command above; DO NOT EDIT.\n\n// +build go1.12\n\n#include \"textflag.h\"\nTEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nTEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nTEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nTEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nTEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nTEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nTEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nTEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nTEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nTEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nTEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nTEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nTEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nTEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nTEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nTEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nTEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nTEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nTEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nTEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nTEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nTEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nTEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nTEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nTEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nTEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nTEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nTEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nTEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nTEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getattrlist(SB)\nTEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nTEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nTEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nTEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nTEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nTEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nTEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nTEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nTEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nTEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nTEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nTEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nTEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nTEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nTEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nTEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nTEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nTEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nTEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nTEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nTEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nTEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nTEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nTEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nTEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nTEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nTEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nTEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nTEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nTEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nTEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nTEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nTEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nTEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nTEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nTEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nTEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nTEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nTEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nTEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nTEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nTEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nTEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nTEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nTEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nTEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nTEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nTEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nTEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nTEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nTEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nTEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nTEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nTEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nTEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nTEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nTEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nTEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nTEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nTEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nTEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nTEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nTEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nTEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nTEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nTEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nTEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nTEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nTEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nTEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nTEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nTEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nTEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nTEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nTEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nTEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nTEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nTEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nTEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nTEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nTEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nTEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nTEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nTEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrlimit(SB)\nTEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nTEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nTEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nTEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nTEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nTEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nTEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nTEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nTEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nTEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nTEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nTEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nTEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nTEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nTEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nTEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc___sysctl(SB)\nTEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nTEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nTEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat64(SB)\nTEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat64(SB)\nTEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs64(SB)\nTEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc___getdirentries64(SB)\nTEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat64(SB)\nTEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat64(SB)\nTEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat64(SB)\nTEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs64(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go",
    "content": "// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,amd64,!go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int64(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go",
    "content": "// go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,amd64,go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getgroups_trampoline()\n\n//go:linkname libc_getgroups libc_getgroups\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgroups_trampoline()\n\n//go:linkname libc_setgroups libc_setgroups\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_wait4_trampoline()\n\n//go:linkname libc_wait4 libc_wait4\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_accept_trampoline()\n\n//go:linkname libc_accept libc_accept\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_bind_trampoline()\n\n//go:linkname libc_bind libc_bind\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_connect_trampoline()\n\n//go:linkname libc_connect libc_connect\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socket_trampoline()\n\n//go:linkname libc_socket libc_socket\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockopt_trampoline()\n\n//go:linkname libc_getsockopt libc_getsockopt\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsockopt_trampoline()\n\n//go:linkname libc_setsockopt libc_setsockopt\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpeername_trampoline()\n\n//go:linkname libc_getpeername libc_getpeername\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockname_trampoline()\n\n//go:linkname libc_getsockname libc_getsockname\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_shutdown_trampoline()\n\n//go:linkname libc_shutdown libc_shutdown\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socketpair_trampoline()\n\n//go:linkname libc_socketpair libc_socketpair\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvfrom_trampoline()\n\n//go:linkname libc_recvfrom libc_recvfrom\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendto_trampoline()\n\n//go:linkname libc_sendto libc_sendto\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvmsg_trampoline()\n\n//go:linkname libc_recvmsg libc_recvmsg\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendmsg_trampoline()\n\n//go:linkname libc_sendmsg libc_sendmsg\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kevent_trampoline()\n\n//go:linkname libc_kevent libc_kevent\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_utimes_trampoline()\n\n//go:linkname libc_utimes libc_utimes\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_futimes_trampoline()\n\n//go:linkname libc_futimes libc_futimes\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fcntl_trampoline()\n\n//go:linkname libc_fcntl libc_fcntl\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_poll_trampoline()\n\n//go:linkname libc_poll libc_poll\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_madvise_trampoline()\n\n//go:linkname libc_madvise libc_madvise\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlock_trampoline()\n\n//go:linkname libc_mlock libc_mlock\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlockall_trampoline()\n\n//go:linkname libc_mlockall libc_mlockall\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mprotect_trampoline()\n\n//go:linkname libc_mprotect libc_mprotect\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_msync_trampoline()\n\n//go:linkname libc_msync libc_msync\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlock_trampoline()\n\n//go:linkname libc_munlock libc_munlock\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlockall_trampoline()\n\n//go:linkname libc_munlockall libc_munlockall\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getattrlist_trampoline()\n\n//go:linkname libc_getattrlist libc_getattrlist\n//go:cgo_import_dynamic libc_getattrlist getattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pipe_trampoline()\n\n//go:linkname libc_pipe libc_pipe\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getxattr_trampoline()\n\n//go:linkname libc_getxattr libc_getxattr\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fgetxattr_trampoline()\n\n//go:linkname libc_fgetxattr libc_fgetxattr\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setxattr_trampoline()\n\n//go:linkname libc_setxattr libc_setxattr\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsetxattr_trampoline()\n\n//go:linkname libc_fsetxattr libc_fsetxattr\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_removexattr_trampoline()\n\n//go:linkname libc_removexattr libc_removexattr\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fremovexattr_trampoline()\n\n//go:linkname libc_fremovexattr libc_fremovexattr\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listxattr_trampoline()\n\n//go:linkname libc_listxattr libc_listxattr\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flistxattr_trampoline()\n\n//go:linkname libc_flistxattr libc_flistxattr\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setattrlist_trampoline()\n\n//go:linkname libc_setattrlist libc_setattrlist\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kill_trampoline()\n\n//go:linkname libc_kill libc_kill\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ioctl_trampoline()\n\n//go:linkname libc_ioctl libc_ioctl\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendfile_trampoline()\n\n//go:linkname libc_sendfile libc_sendfile\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_access_trampoline()\n\n//go:linkname libc_access libc_access\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_adjtime_trampoline()\n\n//go:linkname libc_adjtime libc_adjtime\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chdir_trampoline()\n\n//go:linkname libc_chdir libc_chdir\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chflags_trampoline()\n\n//go:linkname libc_chflags libc_chflags\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chmod_trampoline()\n\n//go:linkname libc_chmod libc_chmod\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chown_trampoline()\n\n//go:linkname libc_chown libc_chown\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chroot_trampoline()\n\n//go:linkname libc_chroot libc_chroot\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_clock_gettime_trampoline()\n\n//go:linkname libc_clock_gettime libc_clock_gettime\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_close_trampoline()\n\n//go:linkname libc_close libc_close\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup_trampoline()\n\n//go:linkname libc_dup libc_dup\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup2_trampoline()\n\n//go:linkname libc_dup2 libc_dup2\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_exchangedata_trampoline()\n\n//go:linkname libc_exchangedata libc_exchangedata\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)\n\treturn\n}\n\nfunc libc_exit_trampoline()\n\n//go:linkname libc_exit libc_exit\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_faccessat_trampoline()\n\n//go:linkname libc_faccessat libc_faccessat\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchdir_trampoline()\n\n//go:linkname libc_fchdir libc_fchdir\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchflags_trampoline()\n\n//go:linkname libc_fchflags libc_fchflags\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmod_trampoline()\n\n//go:linkname libc_fchmod libc_fchmod\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmodat_trampoline()\n\n//go:linkname libc_fchmodat libc_fchmodat\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchown_trampoline()\n\n//go:linkname libc_fchown libc_fchown\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchownat_trampoline()\n\n//go:linkname libc_fchownat libc_fchownat\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flock_trampoline()\n\n//go:linkname libc_flock libc_flock\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fpathconf_trampoline()\n\n//go:linkname libc_fpathconf libc_fpathconf\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsync_trampoline()\n\n//go:linkname libc_fsync libc_fsync\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ftruncate_trampoline()\n\n//go:linkname libc_ftruncate libc_ftruncate\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nfunc libc_getdtablesize_trampoline()\n\n//go:linkname libc_getdtablesize libc_getdtablesize\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nfunc libc_getegid_trampoline()\n\n//go:linkname libc_getegid libc_getegid\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_geteuid_trampoline()\n\n//go:linkname libc_geteuid libc_geteuid\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nfunc libc_getgid_trampoline()\n\n//go:linkname libc_getgid libc_getgid\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpgid_trampoline()\n\n//go:linkname libc_getpgid libc_getpgid\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nfunc libc_getpgrp_trampoline()\n\n//go:linkname libc_getpgrp libc_getpgrp\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nfunc libc_getpid_trampoline()\n\n//go:linkname libc_getpid libc_getpid\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nfunc libc_getppid_trampoline()\n\n//go:linkname libc_getppid libc_getppid\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpriority_trampoline()\n\n//go:linkname libc_getpriority libc_getpriority\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrlimit_trampoline()\n\n//go:linkname libc_getrlimit libc_getrlimit\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrusage_trampoline()\n\n//go:linkname libc_getrusage libc_getrusage\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsid_trampoline()\n\n//go:linkname libc_getsid libc_getsid\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_getuid_trampoline()\n\n//go:linkname libc_getuid libc_getuid\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nfunc libc_issetugid_trampoline()\n\n//go:linkname libc_issetugid libc_issetugid\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kqueue_trampoline()\n\n//go:linkname libc_kqueue libc_kqueue\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lchown_trampoline()\n\n//go:linkname libc_lchown libc_lchown\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_link_trampoline()\n\n//go:linkname libc_link libc_link\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_linkat_trampoline()\n\n//go:linkname libc_linkat libc_linkat\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listen_trampoline()\n\n//go:linkname libc_listen libc_listen\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdir_trampoline()\n\n//go:linkname libc_mkdir libc_mkdir\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdirat_trampoline()\n\n//go:linkname libc_mkdirat libc_mkdirat\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkfifo_trampoline()\n\n//go:linkname libc_mkfifo libc_mkfifo\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mknod_trampoline()\n\n//go:linkname libc_mknod libc_mknod\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_open_trampoline()\n\n//go:linkname libc_open libc_open\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_openat_trampoline()\n\n//go:linkname libc_openat libc_openat\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pathconf_trampoline()\n\n//go:linkname libc_pathconf libc_pathconf\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pread_trampoline()\n\n//go:linkname libc_pread libc_pread\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pwrite_trampoline()\n\n//go:linkname libc_pwrite libc_pwrite\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_read_trampoline()\n\n//go:linkname libc_read libc_read\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlink_trampoline()\n\n//go:linkname libc_readlink libc_readlink\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlinkat_trampoline()\n\n//go:linkname libc_readlinkat libc_readlinkat\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rename_trampoline()\n\n//go:linkname libc_rename libc_rename\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_renameat_trampoline()\n\n//go:linkname libc_renameat libc_renameat\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_revoke_trampoline()\n\n//go:linkname libc_revoke libc_revoke\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rmdir_trampoline()\n\n//go:linkname libc_rmdir libc_rmdir\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lseek_trampoline()\n\n//go:linkname libc_lseek libc_lseek\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_select_trampoline()\n\n//go:linkname libc_select libc_select\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setegid_trampoline()\n\n//go:linkname libc_setegid libc_setegid\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_seteuid_trampoline()\n\n//go:linkname libc_seteuid libc_seteuid\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgid_trampoline()\n\n//go:linkname libc_setgid libc_setgid\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setlogin_trampoline()\n\n//go:linkname libc_setlogin libc_setlogin\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpgid_trampoline()\n\n//go:linkname libc_setpgid libc_setpgid\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpriority_trampoline()\n\n//go:linkname libc_setpriority libc_setpriority\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setprivexec_trampoline()\n\n//go:linkname libc_setprivexec libc_setprivexec\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setregid_trampoline()\n\n//go:linkname libc_setregid libc_setregid\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setreuid_trampoline()\n\n//go:linkname libc_setreuid libc_setreuid\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setrlimit_trampoline()\n\n//go:linkname libc_setrlimit libc_setrlimit\n//go:cgo_import_dynamic libc_setrlimit setrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsid_trampoline()\n\n//go:linkname libc_setsid libc_setsid\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_settimeofday_trampoline()\n\n//go:linkname libc_settimeofday libc_settimeofday\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setuid_trampoline()\n\n//go:linkname libc_setuid libc_setuid\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlink_trampoline()\n\n//go:linkname libc_symlink libc_symlink\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlinkat_trampoline()\n\n//go:linkname libc_symlinkat libc_symlinkat\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sync_trampoline()\n\n//go:linkname libc_sync libc_sync\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_truncate_trampoline()\n\n//go:linkname libc_truncate libc_truncate\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nfunc libc_umask_trampoline()\n\n//go:linkname libc_umask libc_umask\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_undelete_trampoline()\n\n//go:linkname libc_undelete libc_undelete\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlink_trampoline()\n\n//go:linkname libc_unlink libc_unlink\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlinkat_trampoline()\n\n//go:linkname libc_unlinkat libc_unlinkat\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unmount_trampoline()\n\n//go:linkname libc_unmount libc_unmount\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_write_trampoline()\n\n//go:linkname libc_write libc_write\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mmap_trampoline()\n\n//go:linkname libc_mmap libc_mmap\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munmap_trampoline()\n\n//go:linkname libc_munmap libc_munmap\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc___sysctl_trampoline()\n\n//go:linkname libc___sysctl libc___sysctl\n//go:cgo_import_dynamic libc___sysctl __sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ptrace_trampoline()\n\n//go:linkname libc_ptrace libc_ptrace\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int64(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_gettimeofday_trampoline()\n\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstat64_trampoline()\n\n//go:linkname libc_fstat64 libc_fstat64\n//go:cgo_import_dynamic libc_fstat64 fstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatat64_trampoline()\n\n//go:linkname libc_fstatat64 libc_fstatat64\n//go:cgo_import_dynamic libc_fstatat64 fstatat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatfs64_trampoline()\n\n//go:linkname libc_fstatfs64 libc_fstatfs64\n//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc___getdirentries64_trampoline()\n\n//go:linkname libc___getdirentries64 libc___getdirentries64\n//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getfsstat64_trampoline()\n\n//go:linkname libc_getfsstat64 libc_getfsstat64\n//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lstat64_trampoline()\n\n//go:linkname libc_lstat64 libc_lstat64\n//go:cgo_import_dynamic libc_lstat64 lstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_stat64_trampoline()\n\n//go:linkname libc_stat64 libc_stat64\n//go:cgo_import_dynamic libc_stat64 stat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_statfs64_trampoline()\n\n//go:linkname libc_statfs64 libc_statfs64\n//go:cgo_import_dynamic libc_statfs64 statfs64 \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s",
    "content": "// go run mkasm_darwin.go amd64\n// Code generated by the command above; DO NOT EDIT.\n\n// +build go1.12\n\n#include \"textflag.h\"\nTEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nTEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nTEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nTEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nTEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nTEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nTEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nTEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nTEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nTEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nTEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nTEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nTEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nTEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nTEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nTEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nTEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nTEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nTEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nTEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nTEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nTEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nTEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nTEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nTEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nTEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nTEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nTEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nTEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nTEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getattrlist(SB)\nTEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nTEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nTEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nTEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nTEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nTEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nTEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nTEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nTEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nTEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nTEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nTEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nTEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nTEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nTEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nTEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nTEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nTEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nTEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nTEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nTEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nTEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nTEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nTEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nTEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nTEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nTEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nTEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nTEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nTEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nTEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nTEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nTEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nTEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nTEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nTEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nTEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nTEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nTEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nTEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nTEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nTEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nTEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nTEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nTEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nTEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nTEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nTEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nTEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nTEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nTEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nTEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nTEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nTEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nTEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nTEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nTEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nTEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nTEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nTEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nTEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nTEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nTEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nTEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nTEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nTEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nTEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nTEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nTEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nTEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nTEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nTEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nTEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nTEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nTEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nTEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nTEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nTEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nTEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nTEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nTEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nTEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nTEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nTEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrlimit(SB)\nTEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nTEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nTEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nTEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nTEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nTEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nTEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nTEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nTEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nTEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nTEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nTEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nTEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nTEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nTEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nTEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc___sysctl(SB)\nTEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nTEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nTEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat64(SB)\nTEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat64(SB)\nTEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs64(SB)\nTEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc___getdirentries64(SB)\nTEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat64(SB)\nTEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat64(SB)\nTEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat64(SB)\nTEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs64(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go",
    "content": "// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,arm,!go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int32(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go",
    "content": "// go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,arm,go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getgroups_trampoline()\n\n//go:linkname libc_getgroups libc_getgroups\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgroups_trampoline()\n\n//go:linkname libc_setgroups libc_setgroups\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_wait4_trampoline()\n\n//go:linkname libc_wait4 libc_wait4\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_accept_trampoline()\n\n//go:linkname libc_accept libc_accept\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_bind_trampoline()\n\n//go:linkname libc_bind libc_bind\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_connect_trampoline()\n\n//go:linkname libc_connect libc_connect\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socket_trampoline()\n\n//go:linkname libc_socket libc_socket\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockopt_trampoline()\n\n//go:linkname libc_getsockopt libc_getsockopt\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsockopt_trampoline()\n\n//go:linkname libc_setsockopt libc_setsockopt\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpeername_trampoline()\n\n//go:linkname libc_getpeername libc_getpeername\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockname_trampoline()\n\n//go:linkname libc_getsockname libc_getsockname\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_shutdown_trampoline()\n\n//go:linkname libc_shutdown libc_shutdown\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socketpair_trampoline()\n\n//go:linkname libc_socketpair libc_socketpair\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvfrom_trampoline()\n\n//go:linkname libc_recvfrom libc_recvfrom\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendto_trampoline()\n\n//go:linkname libc_sendto libc_sendto\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvmsg_trampoline()\n\n//go:linkname libc_recvmsg libc_recvmsg\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendmsg_trampoline()\n\n//go:linkname libc_sendmsg libc_sendmsg\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kevent_trampoline()\n\n//go:linkname libc_kevent libc_kevent\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_utimes_trampoline()\n\n//go:linkname libc_utimes libc_utimes\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_futimes_trampoline()\n\n//go:linkname libc_futimes libc_futimes\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fcntl_trampoline()\n\n//go:linkname libc_fcntl libc_fcntl\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_poll_trampoline()\n\n//go:linkname libc_poll libc_poll\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_madvise_trampoline()\n\n//go:linkname libc_madvise libc_madvise\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlock_trampoline()\n\n//go:linkname libc_mlock libc_mlock\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlockall_trampoline()\n\n//go:linkname libc_mlockall libc_mlockall\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mprotect_trampoline()\n\n//go:linkname libc_mprotect libc_mprotect\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_msync_trampoline()\n\n//go:linkname libc_msync libc_msync\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlock_trampoline()\n\n//go:linkname libc_munlock libc_munlock\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlockall_trampoline()\n\n//go:linkname libc_munlockall libc_munlockall\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getattrlist_trampoline()\n\n//go:linkname libc_getattrlist libc_getattrlist\n//go:cgo_import_dynamic libc_getattrlist getattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pipe_trampoline()\n\n//go:linkname libc_pipe libc_pipe\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getxattr_trampoline()\n\n//go:linkname libc_getxattr libc_getxattr\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fgetxattr_trampoline()\n\n//go:linkname libc_fgetxattr libc_fgetxattr\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setxattr_trampoline()\n\n//go:linkname libc_setxattr libc_setxattr\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsetxattr_trampoline()\n\n//go:linkname libc_fsetxattr libc_fsetxattr\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_removexattr_trampoline()\n\n//go:linkname libc_removexattr libc_removexattr\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fremovexattr_trampoline()\n\n//go:linkname libc_fremovexattr libc_fremovexattr\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listxattr_trampoline()\n\n//go:linkname libc_listxattr libc_listxattr\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flistxattr_trampoline()\n\n//go:linkname libc_flistxattr libc_flistxattr\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setattrlist_trampoline()\n\n//go:linkname libc_setattrlist libc_setattrlist\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kill_trampoline()\n\n//go:linkname libc_kill libc_kill\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ioctl_trampoline()\n\n//go:linkname libc_ioctl libc_ioctl\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendfile_trampoline()\n\n//go:linkname libc_sendfile libc_sendfile\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_access_trampoline()\n\n//go:linkname libc_access libc_access\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_adjtime_trampoline()\n\n//go:linkname libc_adjtime libc_adjtime\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chdir_trampoline()\n\n//go:linkname libc_chdir libc_chdir\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chflags_trampoline()\n\n//go:linkname libc_chflags libc_chflags\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chmod_trampoline()\n\n//go:linkname libc_chmod libc_chmod\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chown_trampoline()\n\n//go:linkname libc_chown libc_chown\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chroot_trampoline()\n\n//go:linkname libc_chroot libc_chroot\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_clock_gettime_trampoline()\n\n//go:linkname libc_clock_gettime libc_clock_gettime\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_close_trampoline()\n\n//go:linkname libc_close libc_close\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup_trampoline()\n\n//go:linkname libc_dup libc_dup\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup2_trampoline()\n\n//go:linkname libc_dup2 libc_dup2\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_exchangedata_trampoline()\n\n//go:linkname libc_exchangedata libc_exchangedata\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)\n\treturn\n}\n\nfunc libc_exit_trampoline()\n\n//go:linkname libc_exit libc_exit\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_faccessat_trampoline()\n\n//go:linkname libc_faccessat libc_faccessat\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchdir_trampoline()\n\n//go:linkname libc_fchdir libc_fchdir\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchflags_trampoline()\n\n//go:linkname libc_fchflags libc_fchflags\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmod_trampoline()\n\n//go:linkname libc_fchmod libc_fchmod\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmodat_trampoline()\n\n//go:linkname libc_fchmodat libc_fchmodat\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchown_trampoline()\n\n//go:linkname libc_fchown libc_fchown\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchownat_trampoline()\n\n//go:linkname libc_fchownat libc_fchownat\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flock_trampoline()\n\n//go:linkname libc_flock libc_flock\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fpathconf_trampoline()\n\n//go:linkname libc_fpathconf libc_fpathconf\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsync_trampoline()\n\n//go:linkname libc_fsync libc_fsync\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ftruncate_trampoline()\n\n//go:linkname libc_ftruncate libc_ftruncate\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nfunc libc_getdtablesize_trampoline()\n\n//go:linkname libc_getdtablesize libc_getdtablesize\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nfunc libc_getegid_trampoline()\n\n//go:linkname libc_getegid libc_getegid\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_geteuid_trampoline()\n\n//go:linkname libc_geteuid libc_geteuid\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nfunc libc_getgid_trampoline()\n\n//go:linkname libc_getgid libc_getgid\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpgid_trampoline()\n\n//go:linkname libc_getpgid libc_getpgid\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nfunc libc_getpgrp_trampoline()\n\n//go:linkname libc_getpgrp libc_getpgrp\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nfunc libc_getpid_trampoline()\n\n//go:linkname libc_getpid libc_getpid\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nfunc libc_getppid_trampoline()\n\n//go:linkname libc_getppid libc_getppid\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpriority_trampoline()\n\n//go:linkname libc_getpriority libc_getpriority\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrlimit_trampoline()\n\n//go:linkname libc_getrlimit libc_getrlimit\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrusage_trampoline()\n\n//go:linkname libc_getrusage libc_getrusage\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsid_trampoline()\n\n//go:linkname libc_getsid libc_getsid\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_getuid_trampoline()\n\n//go:linkname libc_getuid libc_getuid\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nfunc libc_issetugid_trampoline()\n\n//go:linkname libc_issetugid libc_issetugid\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kqueue_trampoline()\n\n//go:linkname libc_kqueue libc_kqueue\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lchown_trampoline()\n\n//go:linkname libc_lchown libc_lchown\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_link_trampoline()\n\n//go:linkname libc_link libc_link\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_linkat_trampoline()\n\n//go:linkname libc_linkat libc_linkat\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listen_trampoline()\n\n//go:linkname libc_listen libc_listen\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdir_trampoline()\n\n//go:linkname libc_mkdir libc_mkdir\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdirat_trampoline()\n\n//go:linkname libc_mkdirat libc_mkdirat\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkfifo_trampoline()\n\n//go:linkname libc_mkfifo libc_mkfifo\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mknod_trampoline()\n\n//go:linkname libc_mknod libc_mknod\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_open_trampoline()\n\n//go:linkname libc_open libc_open\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_openat_trampoline()\n\n//go:linkname libc_openat libc_openat\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pathconf_trampoline()\n\n//go:linkname libc_pathconf libc_pathconf\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pread_trampoline()\n\n//go:linkname libc_pread libc_pread\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pwrite_trampoline()\n\n//go:linkname libc_pwrite libc_pwrite\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_read_trampoline()\n\n//go:linkname libc_read libc_read\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlink_trampoline()\n\n//go:linkname libc_readlink libc_readlink\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlinkat_trampoline()\n\n//go:linkname libc_readlinkat libc_readlinkat\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rename_trampoline()\n\n//go:linkname libc_rename libc_rename\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_renameat_trampoline()\n\n//go:linkname libc_renameat libc_renameat\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_revoke_trampoline()\n\n//go:linkname libc_revoke libc_revoke\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rmdir_trampoline()\n\n//go:linkname libc_rmdir libc_rmdir\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lseek_trampoline()\n\n//go:linkname libc_lseek libc_lseek\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_select_trampoline()\n\n//go:linkname libc_select libc_select\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setegid_trampoline()\n\n//go:linkname libc_setegid libc_setegid\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_seteuid_trampoline()\n\n//go:linkname libc_seteuid libc_seteuid\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgid_trampoline()\n\n//go:linkname libc_setgid libc_setgid\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setlogin_trampoline()\n\n//go:linkname libc_setlogin libc_setlogin\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpgid_trampoline()\n\n//go:linkname libc_setpgid libc_setpgid\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpriority_trampoline()\n\n//go:linkname libc_setpriority libc_setpriority\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setprivexec_trampoline()\n\n//go:linkname libc_setprivexec libc_setprivexec\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setregid_trampoline()\n\n//go:linkname libc_setregid libc_setregid\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setreuid_trampoline()\n\n//go:linkname libc_setreuid libc_setreuid\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setrlimit_trampoline()\n\n//go:linkname libc_setrlimit libc_setrlimit\n//go:cgo_import_dynamic libc_setrlimit setrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsid_trampoline()\n\n//go:linkname libc_setsid libc_setsid\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_settimeofday_trampoline()\n\n//go:linkname libc_settimeofday libc_settimeofday\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setuid_trampoline()\n\n//go:linkname libc_setuid libc_setuid\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlink_trampoline()\n\n//go:linkname libc_symlink libc_symlink\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlinkat_trampoline()\n\n//go:linkname libc_symlinkat libc_symlinkat\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sync_trampoline()\n\n//go:linkname libc_sync libc_sync\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_truncate_trampoline()\n\n//go:linkname libc_truncate libc_truncate\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nfunc libc_umask_trampoline()\n\n//go:linkname libc_umask libc_umask\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_undelete_trampoline()\n\n//go:linkname libc_undelete libc_undelete\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlink_trampoline()\n\n//go:linkname libc_unlink libc_unlink\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlinkat_trampoline()\n\n//go:linkname libc_unlinkat libc_unlinkat\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unmount_trampoline()\n\n//go:linkname libc_unmount libc_unmount\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_write_trampoline()\n\n//go:linkname libc_write libc_write\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mmap_trampoline()\n\n//go:linkname libc_mmap libc_mmap\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munmap_trampoline()\n\n//go:linkname libc_munmap libc_munmap\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int32(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_gettimeofday_trampoline()\n\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstat_trampoline()\n\n//go:linkname libc_fstat libc_fstat\n//go:cgo_import_dynamic libc_fstat fstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatat_trampoline()\n\n//go:linkname libc_fstatat libc_fstatat\n//go:cgo_import_dynamic libc_fstatat fstatat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatfs_trampoline()\n\n//go:linkname libc_fstatfs libc_fstatfs\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getfsstat_trampoline()\n\n//go:linkname libc_getfsstat libc_getfsstat\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lstat_trampoline()\n\n//go:linkname libc_lstat libc_lstat\n//go:cgo_import_dynamic libc_lstat lstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_stat_trampoline()\n\n//go:linkname libc_stat libc_stat\n//go:cgo_import_dynamic libc_stat stat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_statfs_trampoline()\n\n//go:linkname libc_statfs libc_statfs\n//go:cgo_import_dynamic libc_statfs statfs \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s",
    "content": "// go run mkasm_darwin.go arm\n// Code generated by the command above; DO NOT EDIT.\n\n// +build go1.12\n\n#include \"textflag.h\"\nTEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nTEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nTEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nTEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nTEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nTEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nTEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nTEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nTEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nTEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nTEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nTEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nTEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nTEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nTEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nTEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nTEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nTEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nTEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc___sysctl(SB)\nTEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nTEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nTEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nTEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nTEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nTEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nTEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nTEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nTEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nTEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nTEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nTEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getattrlist(SB)\nTEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nTEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nTEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nTEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nTEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nTEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nTEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nTEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nTEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nTEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nTEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nTEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nTEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nTEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nTEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nTEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nTEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nTEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nTEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nTEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nTEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nTEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nTEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nTEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nTEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nTEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nTEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nTEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nTEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nTEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nTEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nTEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nTEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nTEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nTEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nTEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nTEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nTEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nTEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nTEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nTEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nTEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nTEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nTEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nTEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nTEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nTEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nTEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nTEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nTEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nTEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nTEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nTEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nTEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nTEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nTEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nTEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nTEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nTEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nTEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nTEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nTEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nTEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nTEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nTEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nTEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nTEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nTEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nTEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nTEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nTEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nTEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nTEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nTEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nTEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nTEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nTEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nTEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nTEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nTEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nTEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nTEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nTEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrlimit(SB)\nTEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nTEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nTEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nTEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nTEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nTEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nTEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nTEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nTEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nTEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nTEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nTEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nTEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nTEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nTEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nTEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nTEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nTEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nTEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nTEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nTEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nTEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nTEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go",
    "content": "// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,arm64,!go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int64(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go",
    "content": "// go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build darwin,arm64,go1.12\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getgroups_trampoline()\n\n//go:linkname libc_getgroups libc_getgroups\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgroups_trampoline()\n\n//go:linkname libc_setgroups libc_setgroups\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_wait4_trampoline()\n\n//go:linkname libc_wait4 libc_wait4\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_accept_trampoline()\n\n//go:linkname libc_accept libc_accept\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_bind_trampoline()\n\n//go:linkname libc_bind libc_bind\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_connect_trampoline()\n\n//go:linkname libc_connect libc_connect\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socket_trampoline()\n\n//go:linkname libc_socket libc_socket\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockopt_trampoline()\n\n//go:linkname libc_getsockopt libc_getsockopt\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsockopt_trampoline()\n\n//go:linkname libc_setsockopt libc_setsockopt\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpeername_trampoline()\n\n//go:linkname libc_getpeername libc_getpeername\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsockname_trampoline()\n\n//go:linkname libc_getsockname libc_getsockname\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_shutdown_trampoline()\n\n//go:linkname libc_shutdown libc_shutdown\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_socketpair_trampoline()\n\n//go:linkname libc_socketpair libc_socketpair\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvfrom_trampoline()\n\n//go:linkname libc_recvfrom libc_recvfrom\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendto_trampoline()\n\n//go:linkname libc_sendto libc_sendto\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_recvmsg_trampoline()\n\n//go:linkname libc_recvmsg libc_recvmsg\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendmsg_trampoline()\n\n//go:linkname libc_sendmsg libc_sendmsg\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kevent_trampoline()\n\n//go:linkname libc_kevent libc_kevent\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_utimes_trampoline()\n\n//go:linkname libc_utimes libc_utimes\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_futimes_trampoline()\n\n//go:linkname libc_futimes libc_futimes\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fcntl_trampoline()\n\n//go:linkname libc_fcntl libc_fcntl\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_poll_trampoline()\n\n//go:linkname libc_poll libc_poll\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_madvise_trampoline()\n\n//go:linkname libc_madvise libc_madvise\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlock_trampoline()\n\n//go:linkname libc_mlock libc_mlock\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mlockall_trampoline()\n\n//go:linkname libc_mlockall libc_mlockall\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mprotect_trampoline()\n\n//go:linkname libc_mprotect libc_mprotect\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_msync_trampoline()\n\n//go:linkname libc_msync libc_msync\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlock_trampoline()\n\n//go:linkname libc_munlock libc_munlock\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munlockall_trampoline()\n\n//go:linkname libc_munlockall libc_munlockall\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getattrlist_trampoline()\n\n//go:linkname libc_getattrlist libc_getattrlist\n//go:cgo_import_dynamic libc_getattrlist getattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pipe_trampoline()\n\n//go:linkname libc_pipe libc_pipe\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getxattr_trampoline()\n\n//go:linkname libc_getxattr libc_getxattr\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fgetxattr_trampoline()\n\n//go:linkname libc_fgetxattr libc_fgetxattr\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setxattr_trampoline()\n\n//go:linkname libc_setxattr libc_setxattr\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsetxattr_trampoline()\n\n//go:linkname libc_fsetxattr libc_fsetxattr\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_removexattr_trampoline()\n\n//go:linkname libc_removexattr libc_removexattr\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fremovexattr_trampoline()\n\n//go:linkname libc_fremovexattr libc_fremovexattr\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listxattr_trampoline()\n\n//go:linkname libc_listxattr libc_listxattr\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flistxattr_trampoline()\n\n//go:linkname libc_flistxattr libc_flistxattr\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setattrlist_trampoline()\n\n//go:linkname libc_setattrlist libc_setattrlist\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kill_trampoline()\n\n//go:linkname libc_kill libc_kill\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ioctl_trampoline()\n\n//go:linkname libc_ioctl libc_ioctl\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sendfile_trampoline()\n\n//go:linkname libc_sendfile libc_sendfile\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_access_trampoline()\n\n//go:linkname libc_access libc_access\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_adjtime_trampoline()\n\n//go:linkname libc_adjtime libc_adjtime\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chdir_trampoline()\n\n//go:linkname libc_chdir libc_chdir\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chflags_trampoline()\n\n//go:linkname libc_chflags libc_chflags\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chmod_trampoline()\n\n//go:linkname libc_chmod libc_chmod\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chown_trampoline()\n\n//go:linkname libc_chown libc_chown\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_chroot_trampoline()\n\n//go:linkname libc_chroot libc_chroot\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_clock_gettime_trampoline()\n\n//go:linkname libc_clock_gettime libc_clock_gettime\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_close_trampoline()\n\n//go:linkname libc_close libc_close\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup_trampoline()\n\n//go:linkname libc_dup libc_dup\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_dup2_trampoline()\n\n//go:linkname libc_dup2 libc_dup2\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_exchangedata_trampoline()\n\n//go:linkname libc_exchangedata libc_exchangedata\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)\n\treturn\n}\n\nfunc libc_exit_trampoline()\n\n//go:linkname libc_exit libc_exit\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_faccessat_trampoline()\n\n//go:linkname libc_faccessat libc_faccessat\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchdir_trampoline()\n\n//go:linkname libc_fchdir libc_fchdir\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchflags_trampoline()\n\n//go:linkname libc_fchflags libc_fchflags\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmod_trampoline()\n\n//go:linkname libc_fchmod libc_fchmod\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchmodat_trampoline()\n\n//go:linkname libc_fchmodat libc_fchmodat\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchown_trampoline()\n\n//go:linkname libc_fchown libc_fchown\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fchownat_trampoline()\n\n//go:linkname libc_fchownat libc_fchownat\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_flock_trampoline()\n\n//go:linkname libc_flock libc_flock\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fpathconf_trampoline()\n\n//go:linkname libc_fpathconf libc_fpathconf\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fsync_trampoline()\n\n//go:linkname libc_fsync libc_fsync\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_ftruncate_trampoline()\n\n//go:linkname libc_ftruncate libc_ftruncate\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nfunc libc_getdtablesize_trampoline()\n\n//go:linkname libc_getdtablesize libc_getdtablesize\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nfunc libc_getegid_trampoline()\n\n//go:linkname libc_getegid libc_getegid\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_geteuid_trampoline()\n\n//go:linkname libc_geteuid libc_geteuid\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nfunc libc_getgid_trampoline()\n\n//go:linkname libc_getgid libc_getgid\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpgid_trampoline()\n\n//go:linkname libc_getpgid libc_getpgid\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nfunc libc_getpgrp_trampoline()\n\n//go:linkname libc_getpgrp libc_getpgrp\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nfunc libc_getpid_trampoline()\n\n//go:linkname libc_getpid libc_getpid\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nfunc libc_getppid_trampoline()\n\n//go:linkname libc_getppid libc_getppid\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getpriority_trampoline()\n\n//go:linkname libc_getpriority libc_getpriority\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrlimit_trampoline()\n\n//go:linkname libc_getrlimit libc_getrlimit\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getrusage_trampoline()\n\n//go:linkname libc_getrusage libc_getrusage\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getsid_trampoline()\n\n//go:linkname libc_getsid libc_getsid\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nfunc libc_getuid_trampoline()\n\n//go:linkname libc_getuid libc_getuid\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nfunc libc_issetugid_trampoline()\n\n//go:linkname libc_issetugid libc_issetugid\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_kqueue_trampoline()\n\n//go:linkname libc_kqueue libc_kqueue\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lchown_trampoline()\n\n//go:linkname libc_lchown libc_lchown\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_link_trampoline()\n\n//go:linkname libc_link libc_link\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_linkat_trampoline()\n\n//go:linkname libc_linkat libc_linkat\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_listen_trampoline()\n\n//go:linkname libc_listen libc_listen\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdir_trampoline()\n\n//go:linkname libc_mkdir libc_mkdir\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkdirat_trampoline()\n\n//go:linkname libc_mkdirat libc_mkdirat\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mkfifo_trampoline()\n\n//go:linkname libc_mkfifo libc_mkfifo\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mknod_trampoline()\n\n//go:linkname libc_mknod libc_mknod\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_open_trampoline()\n\n//go:linkname libc_open libc_open\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_openat_trampoline()\n\n//go:linkname libc_openat libc_openat\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pathconf_trampoline()\n\n//go:linkname libc_pathconf libc_pathconf\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pread_trampoline()\n\n//go:linkname libc_pread libc_pread\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_pwrite_trampoline()\n\n//go:linkname libc_pwrite libc_pwrite\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_read_trampoline()\n\n//go:linkname libc_read libc_read\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlink_trampoline()\n\n//go:linkname libc_readlink libc_readlink\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_readlinkat_trampoline()\n\n//go:linkname libc_readlinkat libc_readlinkat\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rename_trampoline()\n\n//go:linkname libc_rename libc_rename\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_renameat_trampoline()\n\n//go:linkname libc_renameat libc_renameat\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_revoke_trampoline()\n\n//go:linkname libc_revoke libc_revoke\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_rmdir_trampoline()\n\n//go:linkname libc_rmdir libc_rmdir\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lseek_trampoline()\n\n//go:linkname libc_lseek libc_lseek\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_select_trampoline()\n\n//go:linkname libc_select libc_select\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setegid_trampoline()\n\n//go:linkname libc_setegid libc_setegid\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_seteuid_trampoline()\n\n//go:linkname libc_seteuid libc_seteuid\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setgid_trampoline()\n\n//go:linkname libc_setgid libc_setgid\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setlogin_trampoline()\n\n//go:linkname libc_setlogin libc_setlogin\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpgid_trampoline()\n\n//go:linkname libc_setpgid libc_setpgid\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setpriority_trampoline()\n\n//go:linkname libc_setpriority libc_setpriority\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setprivexec_trampoline()\n\n//go:linkname libc_setprivexec libc_setprivexec\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setregid_trampoline()\n\n//go:linkname libc_setregid libc_setregid\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setreuid_trampoline()\n\n//go:linkname libc_setreuid libc_setreuid\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setrlimit_trampoline()\n\n//go:linkname libc_setrlimit libc_setrlimit\n//go:cgo_import_dynamic libc_setrlimit setrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setsid_trampoline()\n\n//go:linkname libc_setsid libc_setsid\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_settimeofday_trampoline()\n\n//go:linkname libc_settimeofday libc_settimeofday\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_setuid_trampoline()\n\n//go:linkname libc_setuid libc_setuid\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlink_trampoline()\n\n//go:linkname libc_symlink libc_symlink\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_symlinkat_trampoline()\n\n//go:linkname libc_symlinkat libc_symlinkat\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_sync_trampoline()\n\n//go:linkname libc_sync libc_sync\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_truncate_trampoline()\n\n//go:linkname libc_truncate libc_truncate\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nfunc libc_umask_trampoline()\n\n//go:linkname libc_umask libc_umask\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_undelete_trampoline()\n\n//go:linkname libc_undelete libc_undelete\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlink_trampoline()\n\n//go:linkname libc_unlink libc_unlink\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unlinkat_trampoline()\n\n//go:linkname libc_unlinkat libc_unlinkat\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_unmount_trampoline()\n\n//go:linkname libc_unmount libc_unmount\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_write_trampoline()\n\n//go:linkname libc_write libc_write\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_mmap_trampoline()\n\n//go:linkname libc_mmap libc_mmap\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_munmap_trampoline()\n\n//go:linkname libc_munmap libc_munmap\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {\n\tr0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)\n\tsec = int64(r0)\n\tusec = int32(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_gettimeofday_trampoline()\n\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstat_trampoline()\n\n//go:linkname libc_fstat libc_fstat\n//go:cgo_import_dynamic libc_fstat fstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatat_trampoline()\n\n//go:linkname libc_fstatat libc_fstatat\n//go:cgo_import_dynamic libc_fstatat fstatat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_fstatfs_trampoline()\n\n//go:linkname libc_fstatfs libc_fstatfs\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_getfsstat_trampoline()\n\n//go:linkname libc_getfsstat libc_getfsstat\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_lstat_trampoline()\n\n//go:linkname libc_lstat libc_lstat\n//go:cgo_import_dynamic libc_lstat lstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_stat_trampoline()\n\n//go:linkname libc_stat libc_stat\n//go:cgo_import_dynamic libc_stat stat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc libc_statfs_trampoline()\n\n//go:linkname libc_statfs libc_statfs\n//go:cgo_import_dynamic libc_statfs statfs \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s",
    "content": "// go run mkasm_darwin.go arm64\n// Code generated by the command above; DO NOT EDIT.\n\n// +build go1.12\n\n#include \"textflag.h\"\nTEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nTEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nTEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nTEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nTEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nTEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nTEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nTEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nTEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nTEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nTEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nTEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nTEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nTEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nTEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nTEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nTEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nTEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nTEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nTEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nTEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nTEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nTEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nTEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nTEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nTEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nTEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nTEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nTEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nTEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getattrlist(SB)\nTEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nTEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nTEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nTEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nTEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nTEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nTEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nTEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nTEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nTEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nTEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nTEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nTEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nTEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nTEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nTEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nTEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nTEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nTEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nTEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nTEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nTEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nTEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nTEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nTEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nTEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nTEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nTEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nTEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nTEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nTEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nTEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nTEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nTEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nTEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nTEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nTEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nTEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nTEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nTEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nTEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nTEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nTEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nTEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nTEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nTEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nTEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nTEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nTEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nTEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nTEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nTEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nTEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nTEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nTEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nTEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nTEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nTEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nTEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nTEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nTEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nTEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nTEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nTEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nTEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nTEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nTEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nTEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nTEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nTEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nTEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nTEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nTEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nTEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nTEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nTEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nTEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nTEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nTEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nTEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nTEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nTEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nTEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nTEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrlimit(SB)\nTEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nTEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nTEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nTEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nTEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nTEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nTEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nTEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nTEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nTEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nTEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nTEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nTEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nTEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nTEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nTEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nTEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nTEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nTEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nTEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nTEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nTEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nTEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go",
    "content": "// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build dragonfly,amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpread(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go",
    "content": "// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build freebsd,386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *stat_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat_freebsd12(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs(path string, stat *statfs_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs_freebsd12(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go",
    "content": "// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build freebsd,amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *stat_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat_freebsd12(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs(path string, stat *statfs_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs_freebsd12(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build freebsd,arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *stat_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat_freebsd12(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs(path string, stat *statfs_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs_freebsd12(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go",
    "content": "// go run mksyscall.go -tags freebsd,arm64 -- syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build freebsd,arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *stat_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat_freebsd12(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, stat *stat_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs(path string, stat *statfs_freebsd11_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc statfs_freebsd12(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_386.go",
    "content": "// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go",
    "content": "// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc inotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc armSyncFileRange(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go",
    "content": "// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go",
    "content": "// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,mips\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (p1 int, p2 int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tp1 = int(r0)\n\tp2 = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go",
    "content": "// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go",
    "content": "// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,mips64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,mipsle\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (p1 int, p2 int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tp1 = int(r0)\n\tp2 = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go",
    "content": "// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go",
    "content": "// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,ppc64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go",
    "content": "// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go",
    "content": "// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,s390x\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go",
    "content": "// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build linux,sparc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, p *byte, np int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit() (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsgid(gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setfsuid(uid int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go",
    "content": "// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build netbsd,386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (fd1 int, fd2 int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tfd1 = int(r0)\n\tfd2 = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build netbsd,amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (fd1 int, fd2 int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tfd1 = int(r0)\n\tfd2 = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build netbsd,arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (fd1 int, fd2 int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tfd1 = int(r0)\n\tfd2 = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build netbsd,arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (fd1 int, fd2 int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tfd1 = int(r0)\n\tfd2 = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go",
    "content": "// go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build openbsd,386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go",
    "content": "// go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build openbsd,amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build openbsd,arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go",
    "content": "// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build openbsd,arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readlen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writelen(fd int, buf *byte, nbuf int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go",
    "content": "// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build solaris,amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_pipe pipe \"libc.so\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libsocket.so\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n//go:cgo_import_dynamic libc_gethostname gethostname \"libc.so\"\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n//go:cgo_import_dynamic libc_futimesat futimesat \"libc.so\"\n//go:cgo_import_dynamic libc_accept accept \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc_acct acct \"libc.so\"\n//go:cgo_import_dynamic libc___makedev __makedev \"libc.so\"\n//go:cgo_import_dynamic libc___major __major \"libc.so\"\n//go:cgo_import_dynamic libc___minor __minor \"libc.so\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n//go:cgo_import_dynamic libc_creat creat \"libc.so\"\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.so\"\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatvfs fstatvfs \"libc.so\"\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten \"libsocket.so\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n//go:cgo_import_dynamic libc_pause pause \"libc.so\"\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.so\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n//go:cgo_import_dynamic libc_setrlimit setrlimit \"libc.so\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libsocket.so\"\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n//go:cgo_import_dynamic libc_statvfs statvfs \"libc.so\"\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n//go:cgo_import_dynamic libc_times times \"libc.so\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n//go:cgo_import_dynamic libc_uname uname \"libc.so\"\n//go:cgo_import_dynamic libc_umount umount \"libc.so\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.so\"\n//go:cgo_import_dynamic libc_utime utime \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_bind __xnet_bind \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_connect __xnet_connect \"libsocket.so\"\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n//go:cgo_import_dynamic libc_sendfile sendfile \"libsendfile.so\"\n//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socket __xnet_socket \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair \"libsocket.so\"\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libsocket.so\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libsocket.so\"\n\n//go:linkname procpipe libc_pipe\n//go:linkname procgetsockname libc_getsockname\n//go:linkname procGetcwd libc_getcwd\n//go:linkname procgetgroups libc_getgroups\n//go:linkname procsetgroups libc_setgroups\n//go:linkname procwait4 libc_wait4\n//go:linkname procgethostname libc_gethostname\n//go:linkname procutimes libc_utimes\n//go:linkname procutimensat libc_utimensat\n//go:linkname procfcntl libc_fcntl\n//go:linkname procfutimesat libc_futimesat\n//go:linkname procaccept libc_accept\n//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg\n//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg\n//go:linkname procacct libc_acct\n//go:linkname proc__makedev libc___makedev\n//go:linkname proc__major libc___major\n//go:linkname proc__minor libc___minor\n//go:linkname procioctl libc_ioctl\n//go:linkname procpoll libc_poll\n//go:linkname procAccess libc_access\n//go:linkname procAdjtime libc_adjtime\n//go:linkname procChdir libc_chdir\n//go:linkname procChmod libc_chmod\n//go:linkname procChown libc_chown\n//go:linkname procChroot libc_chroot\n//go:linkname procClose libc_close\n//go:linkname procCreat libc_creat\n//go:linkname procDup libc_dup\n//go:linkname procDup2 libc_dup2\n//go:linkname procExit libc_exit\n//go:linkname procFaccessat libc_faccessat\n//go:linkname procFchdir libc_fchdir\n//go:linkname procFchmod libc_fchmod\n//go:linkname procFchmodat libc_fchmodat\n//go:linkname procFchown libc_fchown\n//go:linkname procFchownat libc_fchownat\n//go:linkname procFdatasync libc_fdatasync\n//go:linkname procFlock libc_flock\n//go:linkname procFpathconf libc_fpathconf\n//go:linkname procFstat libc_fstat\n//go:linkname procFstatat libc_fstatat\n//go:linkname procFstatvfs libc_fstatvfs\n//go:linkname procGetdents libc_getdents\n//go:linkname procGetgid libc_getgid\n//go:linkname procGetpid libc_getpid\n//go:linkname procGetpgid libc_getpgid\n//go:linkname procGetpgrp libc_getpgrp\n//go:linkname procGeteuid libc_geteuid\n//go:linkname procGetegid libc_getegid\n//go:linkname procGetppid libc_getppid\n//go:linkname procGetpriority libc_getpriority\n//go:linkname procGetrlimit libc_getrlimit\n//go:linkname procGetrusage libc_getrusage\n//go:linkname procGettimeofday libc_gettimeofday\n//go:linkname procGetuid libc_getuid\n//go:linkname procKill libc_kill\n//go:linkname procLchown libc_lchown\n//go:linkname procLink libc_link\n//go:linkname proc__xnet_llisten libc___xnet_llisten\n//go:linkname procLstat libc_lstat\n//go:linkname procMadvise libc_madvise\n//go:linkname procMkdir libc_mkdir\n//go:linkname procMkdirat libc_mkdirat\n//go:linkname procMkfifo libc_mkfifo\n//go:linkname procMkfifoat libc_mkfifoat\n//go:linkname procMknod libc_mknod\n//go:linkname procMknodat libc_mknodat\n//go:linkname procMlock libc_mlock\n//go:linkname procMlockall libc_mlockall\n//go:linkname procMprotect libc_mprotect\n//go:linkname procMsync libc_msync\n//go:linkname procMunlock libc_munlock\n//go:linkname procMunlockall libc_munlockall\n//go:linkname procNanosleep libc_nanosleep\n//go:linkname procOpen libc_open\n//go:linkname procOpenat libc_openat\n//go:linkname procPathconf libc_pathconf\n//go:linkname procPause libc_pause\n//go:linkname procPread libc_pread\n//go:linkname procPwrite libc_pwrite\n//go:linkname procread libc_read\n//go:linkname procReadlink libc_readlink\n//go:linkname procRename libc_rename\n//go:linkname procRenameat libc_renameat\n//go:linkname procRmdir libc_rmdir\n//go:linkname proclseek libc_lseek\n//go:linkname procSelect libc_select\n//go:linkname procSetegid libc_setegid\n//go:linkname procSeteuid libc_seteuid\n//go:linkname procSetgid libc_setgid\n//go:linkname procSethostname libc_sethostname\n//go:linkname procSetpgid libc_setpgid\n//go:linkname procSetpriority libc_setpriority\n//go:linkname procSetregid libc_setregid\n//go:linkname procSetreuid libc_setreuid\n//go:linkname procSetrlimit libc_setrlimit\n//go:linkname procSetsid libc_setsid\n//go:linkname procSetuid libc_setuid\n//go:linkname procshutdown libc_shutdown\n//go:linkname procStat libc_stat\n//go:linkname procStatvfs libc_statvfs\n//go:linkname procSymlink libc_symlink\n//go:linkname procSync libc_sync\n//go:linkname procTimes libc_times\n//go:linkname procTruncate libc_truncate\n//go:linkname procFsync libc_fsync\n//go:linkname procFtruncate libc_ftruncate\n//go:linkname procUmask libc_umask\n//go:linkname procUname libc_uname\n//go:linkname procumount libc_umount\n//go:linkname procUnlink libc_unlink\n//go:linkname procUnlinkat libc_unlinkat\n//go:linkname procUstat libc_ustat\n//go:linkname procUtime libc_utime\n//go:linkname proc__xnet_bind libc___xnet_bind\n//go:linkname proc__xnet_connect libc___xnet_connect\n//go:linkname procmmap libc_mmap\n//go:linkname procmunmap libc_munmap\n//go:linkname procsendfile libc_sendfile\n//go:linkname proc__xnet_sendto libc___xnet_sendto\n//go:linkname proc__xnet_socket libc___xnet_socket\n//go:linkname proc__xnet_socketpair libc___xnet_socketpair\n//go:linkname procwrite libc_write\n//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt\n//go:linkname procgetpeername libc_getpeername\n//go:linkname procsetsockopt libc_setsockopt\n//go:linkname procrecvfrom libc_recvfrom\n\nvar (\n\tprocpipe,\n\tprocgetsockname,\n\tprocGetcwd,\n\tprocgetgroups,\n\tprocsetgroups,\n\tprocwait4,\n\tprocgethostname,\n\tprocutimes,\n\tprocutimensat,\n\tprocfcntl,\n\tprocfutimesat,\n\tprocaccept,\n\tproc__xnet_recvmsg,\n\tproc__xnet_sendmsg,\n\tprocacct,\n\tproc__makedev,\n\tproc__major,\n\tproc__minor,\n\tprocioctl,\n\tprocpoll,\n\tprocAccess,\n\tprocAdjtime,\n\tprocChdir,\n\tprocChmod,\n\tprocChown,\n\tprocChroot,\n\tprocClose,\n\tprocCreat,\n\tprocDup,\n\tprocDup2,\n\tprocExit,\n\tprocFaccessat,\n\tprocFchdir,\n\tprocFchmod,\n\tprocFchmodat,\n\tprocFchown,\n\tprocFchownat,\n\tprocFdatasync,\n\tprocFlock,\n\tprocFpathconf,\n\tprocFstat,\n\tprocFstatat,\n\tprocFstatvfs,\n\tprocGetdents,\n\tprocGetgid,\n\tprocGetpid,\n\tprocGetpgid,\n\tprocGetpgrp,\n\tprocGeteuid,\n\tprocGetegid,\n\tprocGetppid,\n\tprocGetpriority,\n\tprocGetrlimit,\n\tprocGetrusage,\n\tprocGettimeofday,\n\tprocGetuid,\n\tprocKill,\n\tprocLchown,\n\tprocLink,\n\tproc__xnet_llisten,\n\tprocLstat,\n\tprocMadvise,\n\tprocMkdir,\n\tprocMkdirat,\n\tprocMkfifo,\n\tprocMkfifoat,\n\tprocMknod,\n\tprocMknodat,\n\tprocMlock,\n\tprocMlockall,\n\tprocMprotect,\n\tprocMsync,\n\tprocMunlock,\n\tprocMunlockall,\n\tprocNanosleep,\n\tprocOpen,\n\tprocOpenat,\n\tprocPathconf,\n\tprocPause,\n\tprocPread,\n\tprocPwrite,\n\tprocread,\n\tprocReadlink,\n\tprocRename,\n\tprocRenameat,\n\tprocRmdir,\n\tproclseek,\n\tprocSelect,\n\tprocSetegid,\n\tprocSeteuid,\n\tprocSetgid,\n\tprocSethostname,\n\tprocSetpgid,\n\tprocSetpriority,\n\tprocSetregid,\n\tprocSetreuid,\n\tprocSetrlimit,\n\tprocSetsid,\n\tprocSetuid,\n\tprocshutdown,\n\tprocStat,\n\tprocStatvfs,\n\tprocSymlink,\n\tprocSync,\n\tprocTimes,\n\tprocTruncate,\n\tprocFsync,\n\tprocFtruncate,\n\tprocUmask,\n\tprocUname,\n\tprocumount,\n\tprocUnlink,\n\tprocUnlinkat,\n\tprocUstat,\n\tprocUtime,\n\tproc__xnet_bind,\n\tproc__xnet_connect,\n\tprocmmap,\n\tprocmunmap,\n\tprocsendfile,\n\tproc__xnet_sendto,\n\tproc__xnet_socket,\n\tproc__xnet_socketpair,\n\tprocwrite,\n\tproc__xnet_getsockopt,\n\tprocgetpeername,\n\tprocsetsockopt,\n\tprocrecvfrom syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int32(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gethostname(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc acct(path *byte) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __makedev(version int, major uint, minor uint) (val uint64) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)\n\tval = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __major(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __minor(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs(path string, vfsstat *Statvfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go",
    "content": "// mksysctl_openbsd.pl\n// Code generated by the command above; DO NOT EDIT.\n\n// +build 386,openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.arandom\", []_C_int{1, 37}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cryptodevallowsoft\", []_C_int{1, 53}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.random\", []_C_int{1, 31}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.tty.maxptys\", []_C_int{1, 44, 6}},\n\t{\"kern.tty.nptys\", []_C_int{1, 44, 7}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.userasymcrypto\", []_C_int{1, 60}},\n\t{\"kern.usercrypto\", []_C_int{1, 52}},\n\t{\"kern.usermount\", []_C_int{1, 30}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.vnode\", []_C_int{1, 13}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.mobileip.allow\", []_C_int{4, 2, 55, 1}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.pim.stats\", []_C_int{4, 2, 103, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_prune\", []_C_int{4, 24, 30, 6}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.nd6_useloopback\", []_C_int{4, 24, 30, 11}},\n\t{\"net.inet6.icmp6.nodeinfo\", []_C_int{4, 24, 30, 13}},\n\t{\"net.inet6.icmp6.rediraccept\", []_C_int{4, 24, 30, 2}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.accept_rtadv\", []_C_int{4, 24, 17, 12}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.maxifdefrouters\", []_C_int{4, 24, 17, 47}},\n\t{\"net.inet6.ip6.maxifprefixes\", []_C_int{4, 24, 17, 46}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.rr_prune\", []_C_int{4, 24, 17, 22}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.inet6.ip6.v6only\", []_C_int{4, 24, 17, 24}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.maxloop_inkernel\", []_C_int{4, 33, 4}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n// +build amd64,openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.dnsjackport\", []_C_int{1, 13}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.mobileip.allow\", []_C_int{4, 2, 55, 1}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.maxloop_inkernel\", []_C_int{4, 33, 4}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n// +build arm,openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.arandom\", []_C_int{1, 37}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cryptodevallowsoft\", []_C_int{1, 53}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.random\", []_C_int{1, 31}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.tty.maxptys\", []_C_int{1, 44, 6}},\n\t{\"kern.tty.nptys\", []_C_int{1, 44, 7}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.userasymcrypto\", []_C_int{1, 60}},\n\t{\"kern.usercrypto\", []_C_int{1, 52}},\n\t{\"kern.usermount\", []_C_int{1, 30}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.vnode\", []_C_int{1, 13}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.mobileip.allow\", []_C_int{4, 2, 55, 1}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.pim.stats\", []_C_int{4, 2, 103, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_prune\", []_C_int{4, 24, 30, 6}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.nd6_useloopback\", []_C_int{4, 24, 30, 11}},\n\t{\"net.inet6.icmp6.nodeinfo\", []_C_int{4, 24, 30, 13}},\n\t{\"net.inet6.icmp6.rediraccept\", []_C_int{4, 24, 30, 2}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.accept_rtadv\", []_C_int{4, 24, 17, 12}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.maxifdefrouters\", []_C_int{4, 24, 17, 47}},\n\t{\"net.inet6.ip6.maxifprefixes\", []_C_int{4, 24, 17, 46}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.rr_prune\", []_C_int{4, 24, 17, 22}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.inet6.ip6.v6only\", []_C_int{4, 24, 17, 24}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.maxloop_inkernel\", []_C_int{4, 33, 4}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n// +build arm64,openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.mobileip.allow\", []_C_int{4, 2, 55, 1}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.maxloop_inkernel\", []_C_int{4, 33, 4}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,darwin\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_MAXSYSCALL                     = 530\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,darwin\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_KQUEUE_WORKLOOP_CTL            = 530\n\tSYS___MACH_BRIDGE_REMOTE_TIME      = 531\n\tSYS_MAXSYSCALL                     = 532\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,darwin\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_MAXSYSCALL                     = 530\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,darwin\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_MAXSYSCALL                     = 530\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go",
    "content": "// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,dragonfly\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT          = 1   // { void exit(int rval); }\n\tSYS_FORK          = 2   // { int fork(void); }\n\tSYS_READ          = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE         = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN          = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE         = 6   // { int close(int fd); }\n\tSYS_WAIT4         = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int\n\tSYS_LINK          = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK        = 10  // { int unlink(char *path); }\n\tSYS_CHDIR         = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR        = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD         = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD         = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN         = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK        = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETFSSTAT     = 18  // { int getfsstat(struct statfs *buf, long bufsize, int flags); }\n\tSYS_GETPID        = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT         = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT       = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID        = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID        = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID       = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE        = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG       = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG       = 28  // { int sendmsg(int s, caddr_t msg, int flags); }\n\tSYS_RECVFROM      = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); }\n\tSYS_ACCEPT        = 30  // { int accept(int s, caddr_t name, int *anamelen); }\n\tSYS_GETPEERNAME   = 31  // { int getpeername(int fdes, caddr_t asa, int *alen); }\n\tSYS_GETSOCKNAME   = 32  // { int getsockname(int fdes, caddr_t asa, int *alen); }\n\tSYS_ACCESS        = 33  // { int access(char *path, int flags); }\n\tSYS_CHFLAGS       = 34  // { int chflags(char *path, int flags); }\n\tSYS_FCHFLAGS      = 35  // { int fchflags(int fd, int flags); }\n\tSYS_SYNC          = 36  // { int sync(void); }\n\tSYS_KILL          = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID       = 39  // { pid_t getppid(void); }\n\tSYS_DUP           = 41  // { int dup(int fd); }\n\tSYS_PIPE          = 42  // { int pipe(void); }\n\tSYS_GETEGID       = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL        = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE        = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID        = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN      = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN      = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT          = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK   = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL         = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT        = 55  // { int reboot(int opt); }\n\tSYS_REVOKE        = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK       = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK      = 58  // { int readlink(char *path, char *buf, int count); }\n\tSYS_EXECVE        = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK         = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT        = 61  // { int chroot(char *path); }\n\tSYS_MSYNC         = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK         = 66  // { pid_t vfork(void); }\n\tSYS_SBRK          = 69  // { int sbrk(int incr); }\n\tSYS_SSTK          = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP        = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT      = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE       = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE       = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS     = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS     = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP       = 81  // { int getpgrp(void); }\n\tSYS_SETPGID       = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER     = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON        = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER     = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE = 89  // { int getdtablesize(void); }\n\tSYS_DUP2          = 90  // { int dup2(int from, int to); }\n\tSYS_FCNTL         = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT        = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC         = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY   = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET        = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT       = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY   = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND          = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT    = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN        = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY  = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE     = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT    = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV         = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV        = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY  = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN        = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD        = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID      = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID      = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME        = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK         = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO        = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO        = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN      = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR    = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR         = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR         = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES        = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME       = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID        = 147 // { int setsid(void); }\n\tSYS_QUOTACTL      = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_STATFS        = 157 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS       = 158 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFH         = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETDOMAINNAME = 162 // { int getdomainname(char *domainname, int len); }\n\tSYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); }\n\tSYS_UNAME         = 164 // { int uname(struct utsname *name); }\n\tSYS_SYSARCH       = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO        = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_EXTPREAD      = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTPWRITE     = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_NTP_ADJTIME   = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID        = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID       = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID       = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF      = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF     = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT     = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT     = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_MMAP          = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); }\n\t// SYS_NOSYS = 198;  // { int nosys(void); } __syscall __syscall_args int\n\tSYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE               = 200 // { int truncate(char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE              = 201 // { int ftruncate(int fd, int pad, off_t length); }\n\tSYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE               = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS___SEMCTL               = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SEMGET                 = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                  = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); }\n\tSYS_MSGCTL                 = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_MSGGET                 = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                 = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                 = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                  = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMCTL                 = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_SHMDT                  = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                 = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME          = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                  = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID              = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_EXTPREADV              = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, u_int iovcnt, int flags, off_t offset); }\n\tSYS_EXTPWRITEV             = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,u_int iovcnt, int flags, off_t offset); }\n\tSYS_FHSTATFS               = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT               = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                 = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN             = 314 // { int aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND            = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL             = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR              = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_AIO_READ               = 318 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE              = 319 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO             = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_YIELD                  = 321 // { int yield(void); }\n\tSYS_MLOCKALL               = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL             = 325 // { int munlockall(void); }\n\tSYS___GETCWD               = 326 // { int __getcwd(u_char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD            = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                   = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGRETURN              = 344 // { int sigreturn(ucontext_t *sigcntxp); }\n\tSYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); }\n\tSYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE       = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE       = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE       = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                 = 362 // { int kqueue(void); }\n\tSYS_KEVENT                 = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_KENV                   = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS               = 391 // { int lchflags(char *path, int flags); }\n\tSYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_VARSYM_SET             = 450 // { int varsym_set(int level, const char *name, const char *data); }\n\tSYS_VARSYM_GET             = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); }\n\tSYS_VARSYM_LIST            = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); }\n\tSYS_EXEC_SYS_REGISTER      = 465 // { int exec_sys_register(void *entry); }\n\tSYS_EXEC_SYS_UNREGISTER    = 466 // { int exec_sys_unregister(int id); }\n\tSYS_SYS_CHECKPOINT         = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); }\n\tSYS_MOUNTCTL               = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); }\n\tSYS_UMTX_SLEEP             = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); }\n\tSYS_UMTX_WAKEUP            = 470 // { int umtx_wakeup(volatile const int *ptr, int count); }\n\tSYS_JAIL_ATTACH            = 471 // { int jail_attach(int jid); }\n\tSYS_SET_TLS_AREA           = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_GET_TLS_AREA           = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_CLOSEFROM              = 474 // { int closefrom(int fd); }\n\tSYS_STAT                   = 475 // { int stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                  = 476 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                  = 477 // { int lstat(const char *path, struct stat *ub); }\n\tSYS_FHSTAT                 = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES          = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS_GETDENTS               = 480 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_USCHED_SET             = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); }\n\tSYS_EXTACCEPT              = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); }\n\tSYS_EXTCONNECT             = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); }\n\tSYS_MCONTROL               = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); }\n\tSYS_VMSPACE_CREATE         = 486 // { int vmspace_create(void *id, int type, void *data); }\n\tSYS_VMSPACE_DESTROY        = 487 // { int vmspace_destroy(void *id); }\n\tSYS_VMSPACE_CTL            = 488 // { int vmspace_ctl(void *id, int cmd, \t\tstruct trapframe *tframe,\tstruct vextframe *vframe); }\n\tSYS_VMSPACE_MMAP           = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); }\n\tSYS_VMSPACE_MUNMAP         = 490 // { int vmspace_munmap(void *id, void *addr,\tsize_t len); }\n\tSYS_VMSPACE_MCONTROL       = 491 // { int vmspace_mcontrol(void *id, void *addr, \tsize_t len, int behav, off_t value); }\n\tSYS_VMSPACE_PREAD          = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_VMSPACE_PWRITE         = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTEXIT                = 494 // { void extexit(int how, int status, void *addr); }\n\tSYS_LWP_CREATE             = 495 // { int lwp_create(struct lwp_params *params); }\n\tSYS_LWP_GETTID             = 496 // { lwpid_t lwp_gettid(void); }\n\tSYS_LWP_KILL               = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); }\n\tSYS_LWP_RTPRIO             = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); }\n\tSYS_PSELECT                = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts,    const sigset_t *sigmask); }\n\tSYS_STATVFS                = 500 // { int statvfs(const char *path, struct statvfs *buf); }\n\tSYS_FSTATVFS               = 501 // { int fstatvfs(int fd, struct statvfs *buf); }\n\tSYS_FHSTATVFS              = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); }\n\tSYS_GETVFSSTAT             = 503 // { int getvfsstat(struct statfs *buf,          struct statvfs *vbuf, long vbufsize, int flags); }\n\tSYS_OPENAT                 = 504 // { int openat(int fd, char *path, int flags, int mode); }\n\tSYS_FSTATAT                = 505 // { int fstatat(int fd, char *path, \tstruct stat *sb, int flags); }\n\tSYS_FCHMODAT               = 506 // { int fchmodat(int fd, char *path, int mode, int flags); }\n\tSYS_FCHOWNAT               = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); }\n\tSYS_UNLINKAT               = 508 // { int unlinkat(int fd, char *path, int flags); }\n\tSYS_FACCESSAT              = 509 // { int faccessat(int fd, char *path, int amode, int flags); }\n\tSYS_MQ_OPEN                = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); }\n\tSYS_MQ_CLOSE               = 511 // { int mq_close(mqd_t mqdes); }\n\tSYS_MQ_UNLINK              = 512 // { int mq_unlink(const char *name); }\n\tSYS_MQ_GETATTR             = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); }\n\tSYS_MQ_SETATTR             = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); }\n\tSYS_MQ_NOTIFY              = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); }\n\tSYS_MQ_SEND                = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); }\n\tSYS_MQ_RECEIVE             = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); }\n\tSYS_MQ_TIMEDSEND           = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_MQ_TIMEDRECEIVE        = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_IOPRIO_SET             = 520 // { int ioprio_set(int which, int who, int prio); }\n\tSYS_IOPRIO_GET             = 521 // { int ioprio_get(int which, int who); }\n\tSYS_CHROOT_KERNEL          = 522 // { int chroot_kernel(char *path); }\n\tSYS_RENAMEAT               = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_MKDIRAT                = 524 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT               = 525 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_READLINKAT             = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT              = 528 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_SWAPOFF                = 529 // { int swapoff(char *name); }\n\tSYS_VQUOTACTL              = 530 // { int vquotactl(const char *path, struct plistref *pref); }\n\tSYS_LINKAT                 = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); }\n\tSYS_EACCESS                = 532 // { int eaccess(char *path, int flags); }\n\tSYS_LPATHCONF              = 533 // { int lpathconf(char *path, int name); }\n\tSYS_VMM_GUEST_CTL          = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); }\n\tSYS_VMM_GUEST_SYNC_ADDR    = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); }\n\tSYS_PROCCTL                = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); }\n\tSYS_CHFLAGSAT              = 537 // { int chflagsat(int fd, const char *path, int flags, int atflags);}\n\tSYS_PIPE2                  = 538 // { int pipe2(int *fildes, int flags); }\n\tSYS_UTIMENSAT              = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); }\n\tSYS_FUTIMENS               = 540 // { int futimens(int fd, const struct timespec *ts); }\n\tSYS_ACCEPT4                = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); }\n\tSYS_LWP_SETNAME            = 542 // { int lwp_setname(lwpid_t tid, const char *name); }\n\tSYS_PPOLL                  = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); }\n\tSYS_LWP_SETAFFINITY        = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); }\n\tSYS_LWP_GETAFFINITY        = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); }\n\tSYS_LWP_CREATE2            = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go",
    "content": "// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                    = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                   = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_PIPE                     = 42  // { int pipe(void); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_OVADVISE                 = 72  // { int ovadvise(int anom); } vadvise ovadvise_args int\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(const void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_STAT                     = 188 // { int stat(char *path, struct stat *ub); }\n\tSYS_FSTAT                    = 189 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                    = 190 // { int lstat(char *path, struct stat *ub); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL             = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_NSTAT                    = 278 // { int nstat(char *path, struct nstat *ub); }\n\tSYS_NFSTAT                   = 279 // { int nfstat(int fd, struct nstat *sb); }\n\tSYS_NLSTAT                   = 280 // { int nlstat(char *path, struct nstat *ub); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat *stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_KEVENT                   = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,\t\tconst struct mq_attr *attr,\t\tstruct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,\tchar *msg_ptr, size_t msg_len,\tunsigned *msg_prio,\t\t\tconst struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,\t\tconst char *msg_ptr, size_t msg_len,unsigned msg_prio,\t\t\tconst struct timespec *abs_timeout);}\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,\t\tconst struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                  = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }\n\tSYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go",
    "content": "// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                    = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                   = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_PIPE                     = 42  // { int pipe(void); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_OVADVISE                 = 72  // { int ovadvise(int anom); } vadvise ovadvise_args int\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(const void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_STAT                     = 188 // { int stat(char *path, struct stat *ub); }\n\tSYS_FSTAT                    = 189 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                    = 190 // { int lstat(char *path, struct stat *ub); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL             = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_NSTAT                    = 278 // { int nstat(char *path, struct nstat *ub); }\n\tSYS_NFSTAT                   = 279 // { int nfstat(int fd, struct nstat *sb); }\n\tSYS_NLSTAT                   = 280 // { int nlstat(char *path, struct nstat *ub); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat *stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_KEVENT                   = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,\t\tconst struct mq_attr *attr,\t\tstruct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,\tchar *msg_ptr, size_t msg_len,\tunsigned *msg_prio,\t\t\tconst struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,\t\tconst char *msg_ptr, size_t msg_len,unsigned msg_prio,\t\t\tconst struct timespec *abs_timeout);}\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,\t\tconst struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                  = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }\n\tSYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go",
    "content": "// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                    = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                   = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_PIPE                     = 42  // { int pipe(void); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_OVADVISE                 = 72  // { int ovadvise(int anom); } vadvise ovadvise_args int\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(const void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_STAT                     = 188 // { int stat(char *path, struct stat *ub); }\n\tSYS_FSTAT                    = 189 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                    = 190 // { int lstat(char *path, struct stat *ub); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL             = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_NSTAT                    = 278 // { int nstat(char *path, struct nstat *ub); }\n\tSYS_NFSTAT                   = 279 // { int nfstat(int fd, struct nstat *sb); }\n\tSYS_NLSTAT                   = 280 // { int nlstat(char *path, struct nstat *ub); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat *stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_KEVENT                   = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,\t\tconst struct mq_attr *attr,\t\tstruct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,\tchar *msg_ptr, size_t msg_len,\tunsigned *msg_prio,\t\t\tconst struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,\t\tconst char *msg_ptr, size_t msg_len,unsigned msg_prio,\t\t\tconst struct timespec *abs_timeout);}\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,\t\tconst struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                  = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }\n\tSYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go",
    "content": "// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                    = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                   = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_PIPE                     = 42  // { int pipe(void); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_OVADVISE                 = 72  // { int ovadvise(int anom); } vadvise ovadvise_args int\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(const void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_STAT                     = 188 // { int stat(char *path, struct stat *ub); }\n\tSYS_FSTAT                    = 189 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                    = 190 // { int lstat(char *path, struct stat *ub); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL             = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_NSTAT                    = 278 // { int nstat(char *path, struct nstat *ub); }\n\tSYS_NFSTAT                   = 279 // { int nfstat(int fd, struct nstat *sb); }\n\tSYS_NLSTAT                   = 280 // { int nlstat(char *path, struct nstat *ub); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat *stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_KEVENT                   = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,\t\tconst struct mq_attr *attr,\t\tstruct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,\tchar *msg_ptr, size_t msg_len,\tunsigned *msg_prio,\t\t\tconst struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,\t\tconst char *msg_ptr, size_t msg_len,unsigned msg_prio,\t\t\tconst struct timespec *abs_timeout);}\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,\t\tconst struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                  = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }\n\tSYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_386.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86OLD                      = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_VM86                         = 166\n\tSYS_QUERY_MODULE                 = 167\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_GETPMSG                      = 188\n\tSYS_PUTPMSG                      = 189\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_PIVOT_ROOT                   = 217\n\tSYS_MINCORE                      = 218\n\tSYS_MADVISE                      = 219\n\tSYS_GETDENTS64                   = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_SET_THREAD_AREA              = 243\n\tSYS_GET_THREAD_AREA              = 244\n\tSYS_IO_SETUP                     = 245\n\tSYS_IO_DESTROY                   = 246\n\tSYS_IO_GETEVENTS                 = 247\n\tSYS_IO_SUBMIT                    = 248\n\tSYS_IO_CANCEL                    = 249\n\tSYS_FADVISE64                    = 250\n\tSYS_EXIT_GROUP                   = 252\n\tSYS_LOOKUP_DCOOKIE               = 253\n\tSYS_EPOLL_CREATE                 = 254\n\tSYS_EPOLL_CTL                    = 255\n\tSYS_EPOLL_WAIT                   = 256\n\tSYS_REMAP_FILE_PAGES             = 257\n\tSYS_SET_TID_ADDRESS              = 258\n\tSYS_TIMER_CREATE                 = 259\n\tSYS_TIMER_SETTIME                = 260\n\tSYS_TIMER_GETTIME                = 261\n\tSYS_TIMER_GETOVERRUN             = 262\n\tSYS_TIMER_DELETE                 = 263\n\tSYS_CLOCK_SETTIME                = 264\n\tSYS_CLOCK_GETTIME                = 265\n\tSYS_CLOCK_GETRES                 = 266\n\tSYS_CLOCK_NANOSLEEP              = 267\n\tSYS_STATFS64                     = 268\n\tSYS_FSTATFS64                    = 269\n\tSYS_TGKILL                       = 270\n\tSYS_UTIMES                       = 271\n\tSYS_FADVISE64_64                 = 272\n\tSYS_VSERVER                      = 273\n\tSYS_MBIND                        = 274\n\tSYS_GET_MEMPOLICY                = 275\n\tSYS_SET_MEMPOLICY                = 276\n\tSYS_MQ_OPEN                      = 277\n\tSYS_MQ_UNLINK                    = 278\n\tSYS_MQ_TIMEDSEND                 = 279\n\tSYS_MQ_TIMEDRECEIVE              = 280\n\tSYS_MQ_NOTIFY                    = 281\n\tSYS_MQ_GETSETATTR                = 282\n\tSYS_KEXEC_LOAD                   = 283\n\tSYS_WAITID                       = 284\n\tSYS_ADD_KEY                      = 286\n\tSYS_REQUEST_KEY                  = 287\n\tSYS_KEYCTL                       = 288\n\tSYS_IOPRIO_SET                   = 289\n\tSYS_IOPRIO_GET                   = 290\n\tSYS_INOTIFY_INIT                 = 291\n\tSYS_INOTIFY_ADD_WATCH            = 292\n\tSYS_INOTIFY_RM_WATCH             = 293\n\tSYS_MIGRATE_PAGES                = 294\n\tSYS_OPENAT                       = 295\n\tSYS_MKDIRAT                      = 296\n\tSYS_MKNODAT                      = 297\n\tSYS_FCHOWNAT                     = 298\n\tSYS_FUTIMESAT                    = 299\n\tSYS_FSTATAT64                    = 300\n\tSYS_UNLINKAT                     = 301\n\tSYS_RENAMEAT                     = 302\n\tSYS_LINKAT                       = 303\n\tSYS_SYMLINKAT                    = 304\n\tSYS_READLINKAT                   = 305\n\tSYS_FCHMODAT                     = 306\n\tSYS_FACCESSAT                    = 307\n\tSYS_PSELECT6                     = 308\n\tSYS_PPOLL                        = 309\n\tSYS_UNSHARE                      = 310\n\tSYS_SET_ROBUST_LIST              = 311\n\tSYS_GET_ROBUST_LIST              = 312\n\tSYS_SPLICE                       = 313\n\tSYS_SYNC_FILE_RANGE              = 314\n\tSYS_TEE                          = 315\n\tSYS_VMSPLICE                     = 316\n\tSYS_MOVE_PAGES                   = 317\n\tSYS_GETCPU                       = 318\n\tSYS_EPOLL_PWAIT                  = 319\n\tSYS_UTIMENSAT                    = 320\n\tSYS_SIGNALFD                     = 321\n\tSYS_TIMERFD_CREATE               = 322\n\tSYS_EVENTFD                      = 323\n\tSYS_FALLOCATE                    = 324\n\tSYS_TIMERFD_SETTIME              = 325\n\tSYS_TIMERFD_GETTIME              = 326\n\tSYS_SIGNALFD4                    = 327\n\tSYS_EVENTFD2                     = 328\n\tSYS_EPOLL_CREATE1                = 329\n\tSYS_DUP3                         = 330\n\tSYS_PIPE2                        = 331\n\tSYS_INOTIFY_INIT1                = 332\n\tSYS_PREADV                       = 333\n\tSYS_PWRITEV                      = 334\n\tSYS_RT_TGSIGQUEUEINFO            = 335\n\tSYS_PERF_EVENT_OPEN              = 336\n\tSYS_RECVMMSG                     = 337\n\tSYS_FANOTIFY_INIT                = 338\n\tSYS_FANOTIFY_MARK                = 339\n\tSYS_PRLIMIT64                    = 340\n\tSYS_NAME_TO_HANDLE_AT            = 341\n\tSYS_OPEN_BY_HANDLE_AT            = 342\n\tSYS_CLOCK_ADJTIME                = 343\n\tSYS_SYNCFS                       = 344\n\tSYS_SENDMMSG                     = 345\n\tSYS_SETNS                        = 346\n\tSYS_PROCESS_VM_READV             = 347\n\tSYS_PROCESS_VM_WRITEV            = 348\n\tSYS_KCMP                         = 349\n\tSYS_FINIT_MODULE                 = 350\n\tSYS_SCHED_SETATTR                = 351\n\tSYS_SCHED_GETATTR                = 352\n\tSYS_RENAMEAT2                    = 353\n\tSYS_SECCOMP                      = 354\n\tSYS_GETRANDOM                    = 355\n\tSYS_MEMFD_CREATE                 = 356\n\tSYS_BPF                          = 357\n\tSYS_EXECVEAT                     = 358\n\tSYS_SOCKET                       = 359\n\tSYS_SOCKETPAIR                   = 360\n\tSYS_BIND                         = 361\n\tSYS_CONNECT                      = 362\n\tSYS_LISTEN                       = 363\n\tSYS_ACCEPT4                      = 364\n\tSYS_GETSOCKOPT                   = 365\n\tSYS_SETSOCKOPT                   = 366\n\tSYS_GETSOCKNAME                  = 367\n\tSYS_GETPEERNAME                  = 368\n\tSYS_SENDTO                       = 369\n\tSYS_SENDMSG                      = 370\n\tSYS_RECVFROM                     = 371\n\tSYS_RECVMSG                      = 372\n\tSYS_SHUTDOWN                     = 373\n\tSYS_USERFAULTFD                  = 374\n\tSYS_MEMBARRIER                   = 375\n\tSYS_MLOCK2                       = 376\n\tSYS_COPY_FILE_RANGE              = 377\n\tSYS_PREADV2                      = 378\n\tSYS_PWRITEV2                     = 379\n\tSYS_PKEY_MPROTECT                = 380\n\tSYS_PKEY_ALLOC                   = 381\n\tSYS_PKEY_FREE                    = 382\n\tSYS_STATX                        = 383\n\tSYS_ARCH_PRCTL                   = 384\n\tSYS_IO_PGETEVENTS                = 385\n\tSYS_RSEQ                         = 386\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,linux\n\npackage unix\n\nconst (\n\tSYS_READ                   = 0\n\tSYS_WRITE                  = 1\n\tSYS_OPEN                   = 2\n\tSYS_CLOSE                  = 3\n\tSYS_STAT                   = 4\n\tSYS_FSTAT                  = 5\n\tSYS_LSTAT                  = 6\n\tSYS_POLL                   = 7\n\tSYS_LSEEK                  = 8\n\tSYS_MMAP                   = 9\n\tSYS_MPROTECT               = 10\n\tSYS_MUNMAP                 = 11\n\tSYS_BRK                    = 12\n\tSYS_RT_SIGACTION           = 13\n\tSYS_RT_SIGPROCMASK         = 14\n\tSYS_RT_SIGRETURN           = 15\n\tSYS_IOCTL                  = 16\n\tSYS_PREAD64                = 17\n\tSYS_PWRITE64               = 18\n\tSYS_READV                  = 19\n\tSYS_WRITEV                 = 20\n\tSYS_ACCESS                 = 21\n\tSYS_PIPE                   = 22\n\tSYS_SELECT                 = 23\n\tSYS_SCHED_YIELD            = 24\n\tSYS_MREMAP                 = 25\n\tSYS_MSYNC                  = 26\n\tSYS_MINCORE                = 27\n\tSYS_MADVISE                = 28\n\tSYS_SHMGET                 = 29\n\tSYS_SHMAT                  = 30\n\tSYS_SHMCTL                 = 31\n\tSYS_DUP                    = 32\n\tSYS_DUP2                   = 33\n\tSYS_PAUSE                  = 34\n\tSYS_NANOSLEEP              = 35\n\tSYS_GETITIMER              = 36\n\tSYS_ALARM                  = 37\n\tSYS_SETITIMER              = 38\n\tSYS_GETPID                 = 39\n\tSYS_SENDFILE               = 40\n\tSYS_SOCKET                 = 41\n\tSYS_CONNECT                = 42\n\tSYS_ACCEPT                 = 43\n\tSYS_SENDTO                 = 44\n\tSYS_RECVFROM               = 45\n\tSYS_SENDMSG                = 46\n\tSYS_RECVMSG                = 47\n\tSYS_SHUTDOWN               = 48\n\tSYS_BIND                   = 49\n\tSYS_LISTEN                 = 50\n\tSYS_GETSOCKNAME            = 51\n\tSYS_GETPEERNAME            = 52\n\tSYS_SOCKETPAIR             = 53\n\tSYS_SETSOCKOPT             = 54\n\tSYS_GETSOCKOPT             = 55\n\tSYS_CLONE                  = 56\n\tSYS_FORK                   = 57\n\tSYS_VFORK                  = 58\n\tSYS_EXECVE                 = 59\n\tSYS_EXIT                   = 60\n\tSYS_WAIT4                  = 61\n\tSYS_KILL                   = 62\n\tSYS_UNAME                  = 63\n\tSYS_SEMGET                 = 64\n\tSYS_SEMOP                  = 65\n\tSYS_SEMCTL                 = 66\n\tSYS_SHMDT                  = 67\n\tSYS_MSGGET                 = 68\n\tSYS_MSGSND                 = 69\n\tSYS_MSGRCV                 = 70\n\tSYS_MSGCTL                 = 71\n\tSYS_FCNTL                  = 72\n\tSYS_FLOCK                  = 73\n\tSYS_FSYNC                  = 74\n\tSYS_FDATASYNC              = 75\n\tSYS_TRUNCATE               = 76\n\tSYS_FTRUNCATE              = 77\n\tSYS_GETDENTS               = 78\n\tSYS_GETCWD                 = 79\n\tSYS_CHDIR                  = 80\n\tSYS_FCHDIR                 = 81\n\tSYS_RENAME                 = 82\n\tSYS_MKDIR                  = 83\n\tSYS_RMDIR                  = 84\n\tSYS_CREAT                  = 85\n\tSYS_LINK                   = 86\n\tSYS_UNLINK                 = 87\n\tSYS_SYMLINK                = 88\n\tSYS_READLINK               = 89\n\tSYS_CHMOD                  = 90\n\tSYS_FCHMOD                 = 91\n\tSYS_CHOWN                  = 92\n\tSYS_FCHOWN                 = 93\n\tSYS_LCHOWN                 = 94\n\tSYS_UMASK                  = 95\n\tSYS_GETTIMEOFDAY           = 96\n\tSYS_GETRLIMIT              = 97\n\tSYS_GETRUSAGE              = 98\n\tSYS_SYSINFO                = 99\n\tSYS_TIMES                  = 100\n\tSYS_PTRACE                 = 101\n\tSYS_GETUID                 = 102\n\tSYS_SYSLOG                 = 103\n\tSYS_GETGID                 = 104\n\tSYS_SETUID                 = 105\n\tSYS_SETGID                 = 106\n\tSYS_GETEUID                = 107\n\tSYS_GETEGID                = 108\n\tSYS_SETPGID                = 109\n\tSYS_GETPPID                = 110\n\tSYS_GETPGRP                = 111\n\tSYS_SETSID                 = 112\n\tSYS_SETREUID               = 113\n\tSYS_SETREGID               = 114\n\tSYS_GETGROUPS              = 115\n\tSYS_SETGROUPS              = 116\n\tSYS_SETRESUID              = 117\n\tSYS_GETRESUID              = 118\n\tSYS_SETRESGID              = 119\n\tSYS_GETRESGID              = 120\n\tSYS_GETPGID                = 121\n\tSYS_SETFSUID               = 122\n\tSYS_SETFSGID               = 123\n\tSYS_GETSID                 = 124\n\tSYS_CAPGET                 = 125\n\tSYS_CAPSET                 = 126\n\tSYS_RT_SIGPENDING          = 127\n\tSYS_RT_SIGTIMEDWAIT        = 128\n\tSYS_RT_SIGQUEUEINFO        = 129\n\tSYS_RT_SIGSUSPEND          = 130\n\tSYS_SIGALTSTACK            = 131\n\tSYS_UTIME                  = 132\n\tSYS_MKNOD                  = 133\n\tSYS_USELIB                 = 134\n\tSYS_PERSONALITY            = 135\n\tSYS_USTAT                  = 136\n\tSYS_STATFS                 = 137\n\tSYS_FSTATFS                = 138\n\tSYS_SYSFS                  = 139\n\tSYS_GETPRIORITY            = 140\n\tSYS_SETPRIORITY            = 141\n\tSYS_SCHED_SETPARAM         = 142\n\tSYS_SCHED_GETPARAM         = 143\n\tSYS_SCHED_SETSCHEDULER     = 144\n\tSYS_SCHED_GETSCHEDULER     = 145\n\tSYS_SCHED_GET_PRIORITY_MAX = 146\n\tSYS_SCHED_GET_PRIORITY_MIN = 147\n\tSYS_SCHED_RR_GET_INTERVAL  = 148\n\tSYS_MLOCK                  = 149\n\tSYS_MUNLOCK                = 150\n\tSYS_MLOCKALL               = 151\n\tSYS_MUNLOCKALL             = 152\n\tSYS_VHANGUP                = 153\n\tSYS_MODIFY_LDT             = 154\n\tSYS_PIVOT_ROOT             = 155\n\tSYS__SYSCTL                = 156\n\tSYS_PRCTL                  = 157\n\tSYS_ARCH_PRCTL             = 158\n\tSYS_ADJTIMEX               = 159\n\tSYS_SETRLIMIT              = 160\n\tSYS_CHROOT                 = 161\n\tSYS_SYNC                   = 162\n\tSYS_ACCT                   = 163\n\tSYS_SETTIMEOFDAY           = 164\n\tSYS_MOUNT                  = 165\n\tSYS_UMOUNT2                = 166\n\tSYS_SWAPON                 = 167\n\tSYS_SWAPOFF                = 168\n\tSYS_REBOOT                 = 169\n\tSYS_SETHOSTNAME            = 170\n\tSYS_SETDOMAINNAME          = 171\n\tSYS_IOPL                   = 172\n\tSYS_IOPERM                 = 173\n\tSYS_CREATE_MODULE          = 174\n\tSYS_INIT_MODULE            = 175\n\tSYS_DELETE_MODULE          = 176\n\tSYS_GET_KERNEL_SYMS        = 177\n\tSYS_QUERY_MODULE           = 178\n\tSYS_QUOTACTL               = 179\n\tSYS_NFSSERVCTL             = 180\n\tSYS_GETPMSG                = 181\n\tSYS_PUTPMSG                = 182\n\tSYS_AFS_SYSCALL            = 183\n\tSYS_TUXCALL                = 184\n\tSYS_SECURITY               = 185\n\tSYS_GETTID                 = 186\n\tSYS_READAHEAD              = 187\n\tSYS_SETXATTR               = 188\n\tSYS_LSETXATTR              = 189\n\tSYS_FSETXATTR              = 190\n\tSYS_GETXATTR               = 191\n\tSYS_LGETXATTR              = 192\n\tSYS_FGETXATTR              = 193\n\tSYS_LISTXATTR              = 194\n\tSYS_LLISTXATTR             = 195\n\tSYS_FLISTXATTR             = 196\n\tSYS_REMOVEXATTR            = 197\n\tSYS_LREMOVEXATTR           = 198\n\tSYS_FREMOVEXATTR           = 199\n\tSYS_TKILL                  = 200\n\tSYS_TIME                   = 201\n\tSYS_FUTEX                  = 202\n\tSYS_SCHED_SETAFFINITY      = 203\n\tSYS_SCHED_GETAFFINITY      = 204\n\tSYS_SET_THREAD_AREA        = 205\n\tSYS_IO_SETUP               = 206\n\tSYS_IO_DESTROY             = 207\n\tSYS_IO_GETEVENTS           = 208\n\tSYS_IO_SUBMIT              = 209\n\tSYS_IO_CANCEL              = 210\n\tSYS_GET_THREAD_AREA        = 211\n\tSYS_LOOKUP_DCOOKIE         = 212\n\tSYS_EPOLL_CREATE           = 213\n\tSYS_EPOLL_CTL_OLD          = 214\n\tSYS_EPOLL_WAIT_OLD         = 215\n\tSYS_REMAP_FILE_PAGES       = 216\n\tSYS_GETDENTS64             = 217\n\tSYS_SET_TID_ADDRESS        = 218\n\tSYS_RESTART_SYSCALL        = 219\n\tSYS_SEMTIMEDOP             = 220\n\tSYS_FADVISE64              = 221\n\tSYS_TIMER_CREATE           = 222\n\tSYS_TIMER_SETTIME          = 223\n\tSYS_TIMER_GETTIME          = 224\n\tSYS_TIMER_GETOVERRUN       = 225\n\tSYS_TIMER_DELETE           = 226\n\tSYS_CLOCK_SETTIME          = 227\n\tSYS_CLOCK_GETTIME          = 228\n\tSYS_CLOCK_GETRES           = 229\n\tSYS_CLOCK_NANOSLEEP        = 230\n\tSYS_EXIT_GROUP             = 231\n\tSYS_EPOLL_WAIT             = 232\n\tSYS_EPOLL_CTL              = 233\n\tSYS_TGKILL                 = 234\n\tSYS_UTIMES                 = 235\n\tSYS_VSERVER                = 236\n\tSYS_MBIND                  = 237\n\tSYS_SET_MEMPOLICY          = 238\n\tSYS_GET_MEMPOLICY          = 239\n\tSYS_MQ_OPEN                = 240\n\tSYS_MQ_UNLINK              = 241\n\tSYS_MQ_TIMEDSEND           = 242\n\tSYS_MQ_TIMEDRECEIVE        = 243\n\tSYS_MQ_NOTIFY              = 244\n\tSYS_MQ_GETSETATTR          = 245\n\tSYS_KEXEC_LOAD             = 246\n\tSYS_WAITID                 = 247\n\tSYS_ADD_KEY                = 248\n\tSYS_REQUEST_KEY            = 249\n\tSYS_KEYCTL                 = 250\n\tSYS_IOPRIO_SET             = 251\n\tSYS_IOPRIO_GET             = 252\n\tSYS_INOTIFY_INIT           = 253\n\tSYS_INOTIFY_ADD_WATCH      = 254\n\tSYS_INOTIFY_RM_WATCH       = 255\n\tSYS_MIGRATE_PAGES          = 256\n\tSYS_OPENAT                 = 257\n\tSYS_MKDIRAT                = 258\n\tSYS_MKNODAT                = 259\n\tSYS_FCHOWNAT               = 260\n\tSYS_FUTIMESAT              = 261\n\tSYS_NEWFSTATAT             = 262\n\tSYS_UNLINKAT               = 263\n\tSYS_RENAMEAT               = 264\n\tSYS_LINKAT                 = 265\n\tSYS_SYMLINKAT              = 266\n\tSYS_READLINKAT             = 267\n\tSYS_FCHMODAT               = 268\n\tSYS_FACCESSAT              = 269\n\tSYS_PSELECT6               = 270\n\tSYS_PPOLL                  = 271\n\tSYS_UNSHARE                = 272\n\tSYS_SET_ROBUST_LIST        = 273\n\tSYS_GET_ROBUST_LIST        = 274\n\tSYS_SPLICE                 = 275\n\tSYS_TEE                    = 276\n\tSYS_SYNC_FILE_RANGE        = 277\n\tSYS_VMSPLICE               = 278\n\tSYS_MOVE_PAGES             = 279\n\tSYS_UTIMENSAT              = 280\n\tSYS_EPOLL_PWAIT            = 281\n\tSYS_SIGNALFD               = 282\n\tSYS_TIMERFD_CREATE         = 283\n\tSYS_EVENTFD                = 284\n\tSYS_FALLOCATE              = 285\n\tSYS_TIMERFD_SETTIME        = 286\n\tSYS_TIMERFD_GETTIME        = 287\n\tSYS_ACCEPT4                = 288\n\tSYS_SIGNALFD4              = 289\n\tSYS_EVENTFD2               = 290\n\tSYS_EPOLL_CREATE1          = 291\n\tSYS_DUP3                   = 292\n\tSYS_PIPE2                  = 293\n\tSYS_INOTIFY_INIT1          = 294\n\tSYS_PREADV                 = 295\n\tSYS_PWRITEV                = 296\n\tSYS_RT_TGSIGQUEUEINFO      = 297\n\tSYS_PERF_EVENT_OPEN        = 298\n\tSYS_RECVMMSG               = 299\n\tSYS_FANOTIFY_INIT          = 300\n\tSYS_FANOTIFY_MARK          = 301\n\tSYS_PRLIMIT64              = 302\n\tSYS_NAME_TO_HANDLE_AT      = 303\n\tSYS_OPEN_BY_HANDLE_AT      = 304\n\tSYS_CLOCK_ADJTIME          = 305\n\tSYS_SYNCFS                 = 306\n\tSYS_SENDMMSG               = 307\n\tSYS_SETNS                  = 308\n\tSYS_GETCPU                 = 309\n\tSYS_PROCESS_VM_READV       = 310\n\tSYS_PROCESS_VM_WRITEV      = 311\n\tSYS_KCMP                   = 312\n\tSYS_FINIT_MODULE           = 313\n\tSYS_SCHED_SETATTR          = 314\n\tSYS_SCHED_GETATTR          = 315\n\tSYS_RENAMEAT2              = 316\n\tSYS_SECCOMP                = 317\n\tSYS_GETRANDOM              = 318\n\tSYS_MEMFD_CREATE           = 319\n\tSYS_KEXEC_FILE_LOAD        = 320\n\tSYS_BPF                    = 321\n\tSYS_EXECVEAT               = 322\n\tSYS_USERFAULTFD            = 323\n\tSYS_MEMBARRIER             = 324\n\tSYS_MLOCK2                 = 325\n\tSYS_COPY_FILE_RANGE        = 326\n\tSYS_PREADV2                = 327\n\tSYS_PWRITEV2               = 328\n\tSYS_PKEY_MPROTECT          = 329\n\tSYS_PKEY_ALLOC             = 330\n\tSYS_PKEY_FREE              = 331\n\tSYS_STATX                  = 332\n\tSYS_IO_PGETEVENTS          = 333\n\tSYS_RSEQ                   = 334\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n\tSYS_CLONE3                 = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_PTRACE                       = 26\n\tSYS_PAUSE                        = 29\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_SETPGID                      = 57\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SYMLINK                      = 83\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_VHANGUP                      = 111\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_GETDENTS64                   = 217\n\tSYS_PIVOT_ROOT                   = 218\n\tSYS_MINCORE                      = 219\n\tSYS_MADVISE                      = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_IO_SETUP                     = 243\n\tSYS_IO_DESTROY                   = 244\n\tSYS_IO_GETEVENTS                 = 245\n\tSYS_IO_SUBMIT                    = 246\n\tSYS_IO_CANCEL                    = 247\n\tSYS_EXIT_GROUP                   = 248\n\tSYS_LOOKUP_DCOOKIE               = 249\n\tSYS_EPOLL_CREATE                 = 250\n\tSYS_EPOLL_CTL                    = 251\n\tSYS_EPOLL_WAIT                   = 252\n\tSYS_REMAP_FILE_PAGES             = 253\n\tSYS_SET_TID_ADDRESS              = 256\n\tSYS_TIMER_CREATE                 = 257\n\tSYS_TIMER_SETTIME                = 258\n\tSYS_TIMER_GETTIME                = 259\n\tSYS_TIMER_GETOVERRUN             = 260\n\tSYS_TIMER_DELETE                 = 261\n\tSYS_CLOCK_SETTIME                = 262\n\tSYS_CLOCK_GETTIME                = 263\n\tSYS_CLOCK_GETRES                 = 264\n\tSYS_CLOCK_NANOSLEEP              = 265\n\tSYS_STATFS64                     = 266\n\tSYS_FSTATFS64                    = 267\n\tSYS_TGKILL                       = 268\n\tSYS_UTIMES                       = 269\n\tSYS_ARM_FADVISE64_64             = 270\n\tSYS_PCICONFIG_IOBASE             = 271\n\tSYS_PCICONFIG_READ               = 272\n\tSYS_PCICONFIG_WRITE              = 273\n\tSYS_MQ_OPEN                      = 274\n\tSYS_MQ_UNLINK                    = 275\n\tSYS_MQ_TIMEDSEND                 = 276\n\tSYS_MQ_TIMEDRECEIVE              = 277\n\tSYS_MQ_NOTIFY                    = 278\n\tSYS_MQ_GETSETATTR                = 279\n\tSYS_WAITID                       = 280\n\tSYS_SOCKET                       = 281\n\tSYS_BIND                         = 282\n\tSYS_CONNECT                      = 283\n\tSYS_LISTEN                       = 284\n\tSYS_ACCEPT                       = 285\n\tSYS_GETSOCKNAME                  = 286\n\tSYS_GETPEERNAME                  = 287\n\tSYS_SOCKETPAIR                   = 288\n\tSYS_SEND                         = 289\n\tSYS_SENDTO                       = 290\n\tSYS_RECV                         = 291\n\tSYS_RECVFROM                     = 292\n\tSYS_SHUTDOWN                     = 293\n\tSYS_SETSOCKOPT                   = 294\n\tSYS_GETSOCKOPT                   = 295\n\tSYS_SENDMSG                      = 296\n\tSYS_RECVMSG                      = 297\n\tSYS_SEMOP                        = 298\n\tSYS_SEMGET                       = 299\n\tSYS_SEMCTL                       = 300\n\tSYS_MSGSND                       = 301\n\tSYS_MSGRCV                       = 302\n\tSYS_MSGGET                       = 303\n\tSYS_MSGCTL                       = 304\n\tSYS_SHMAT                        = 305\n\tSYS_SHMDT                        = 306\n\tSYS_SHMGET                       = 307\n\tSYS_SHMCTL                       = 308\n\tSYS_ADD_KEY                      = 309\n\tSYS_REQUEST_KEY                  = 310\n\tSYS_KEYCTL                       = 311\n\tSYS_SEMTIMEDOP                   = 312\n\tSYS_VSERVER                      = 313\n\tSYS_IOPRIO_SET                   = 314\n\tSYS_IOPRIO_GET                   = 315\n\tSYS_INOTIFY_INIT                 = 316\n\tSYS_INOTIFY_ADD_WATCH            = 317\n\tSYS_INOTIFY_RM_WATCH             = 318\n\tSYS_MBIND                        = 319\n\tSYS_GET_MEMPOLICY                = 320\n\tSYS_SET_MEMPOLICY                = 321\n\tSYS_OPENAT                       = 322\n\tSYS_MKDIRAT                      = 323\n\tSYS_MKNODAT                      = 324\n\tSYS_FCHOWNAT                     = 325\n\tSYS_FUTIMESAT                    = 326\n\tSYS_FSTATAT64                    = 327\n\tSYS_UNLINKAT                     = 328\n\tSYS_RENAMEAT                     = 329\n\tSYS_LINKAT                       = 330\n\tSYS_SYMLINKAT                    = 331\n\tSYS_READLINKAT                   = 332\n\tSYS_FCHMODAT                     = 333\n\tSYS_FACCESSAT                    = 334\n\tSYS_PSELECT6                     = 335\n\tSYS_PPOLL                        = 336\n\tSYS_UNSHARE                      = 337\n\tSYS_SET_ROBUST_LIST              = 338\n\tSYS_GET_ROBUST_LIST              = 339\n\tSYS_SPLICE                       = 340\n\tSYS_ARM_SYNC_FILE_RANGE          = 341\n\tSYS_TEE                          = 342\n\tSYS_VMSPLICE                     = 343\n\tSYS_MOVE_PAGES                   = 344\n\tSYS_GETCPU                       = 345\n\tSYS_EPOLL_PWAIT                  = 346\n\tSYS_KEXEC_LOAD                   = 347\n\tSYS_UTIMENSAT                    = 348\n\tSYS_SIGNALFD                     = 349\n\tSYS_TIMERFD_CREATE               = 350\n\tSYS_EVENTFD                      = 351\n\tSYS_FALLOCATE                    = 352\n\tSYS_TIMERFD_SETTIME              = 353\n\tSYS_TIMERFD_GETTIME              = 354\n\tSYS_SIGNALFD4                    = 355\n\tSYS_EVENTFD2                     = 356\n\tSYS_EPOLL_CREATE1                = 357\n\tSYS_DUP3                         = 358\n\tSYS_PIPE2                        = 359\n\tSYS_INOTIFY_INIT1                = 360\n\tSYS_PREADV                       = 361\n\tSYS_PWRITEV                      = 362\n\tSYS_RT_TGSIGQUEUEINFO            = 363\n\tSYS_PERF_EVENT_OPEN              = 364\n\tSYS_RECVMMSG                     = 365\n\tSYS_ACCEPT4                      = 366\n\tSYS_FANOTIFY_INIT                = 367\n\tSYS_FANOTIFY_MARK                = 368\n\tSYS_PRLIMIT64                    = 369\n\tSYS_NAME_TO_HANDLE_AT            = 370\n\tSYS_OPEN_BY_HANDLE_AT            = 371\n\tSYS_CLOCK_ADJTIME                = 372\n\tSYS_SYNCFS                       = 373\n\tSYS_SENDMMSG                     = 374\n\tSYS_SETNS                        = 375\n\tSYS_PROCESS_VM_READV             = 376\n\tSYS_PROCESS_VM_WRITEV            = 377\n\tSYS_KCMP                         = 378\n\tSYS_FINIT_MODULE                 = 379\n\tSYS_SCHED_SETATTR                = 380\n\tSYS_SCHED_GETATTR                = 381\n\tSYS_RENAMEAT2                    = 382\n\tSYS_SECCOMP                      = 383\n\tSYS_GETRANDOM                    = 384\n\tSYS_MEMFD_CREATE                 = 385\n\tSYS_BPF                          = 386\n\tSYS_EXECVEAT                     = 387\n\tSYS_USERFAULTFD                  = 388\n\tSYS_MEMBARRIER                   = 389\n\tSYS_MLOCK2                       = 390\n\tSYS_COPY_FILE_RANGE              = 391\n\tSYS_PREADV2                      = 392\n\tSYS_PWRITEV2                     = 393\n\tSYS_PKEY_MPROTECT                = 394\n\tSYS_PKEY_ALLOC                   = 395\n\tSYS_PKEY_FREE                    = 396\n\tSYS_STATX                        = 397\n\tSYS_RSEQ                         = 398\n\tSYS_IO_PGETEVENTS                = 399\n\tSYS_MIGRATE_PAGES                = 400\n\tSYS_KEXEC_FILE_LOAD              = 401\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP               = 0\n\tSYS_IO_DESTROY             = 1\n\tSYS_IO_SUBMIT              = 2\n\tSYS_IO_CANCEL              = 3\n\tSYS_IO_GETEVENTS           = 4\n\tSYS_SETXATTR               = 5\n\tSYS_LSETXATTR              = 6\n\tSYS_FSETXATTR              = 7\n\tSYS_GETXATTR               = 8\n\tSYS_LGETXATTR              = 9\n\tSYS_FGETXATTR              = 10\n\tSYS_LISTXATTR              = 11\n\tSYS_LLISTXATTR             = 12\n\tSYS_FLISTXATTR             = 13\n\tSYS_REMOVEXATTR            = 14\n\tSYS_LREMOVEXATTR           = 15\n\tSYS_FREMOVEXATTR           = 16\n\tSYS_GETCWD                 = 17\n\tSYS_LOOKUP_DCOOKIE         = 18\n\tSYS_EVENTFD2               = 19\n\tSYS_EPOLL_CREATE1          = 20\n\tSYS_EPOLL_CTL              = 21\n\tSYS_EPOLL_PWAIT            = 22\n\tSYS_DUP                    = 23\n\tSYS_DUP3                   = 24\n\tSYS_FCNTL                  = 25\n\tSYS_INOTIFY_INIT1          = 26\n\tSYS_INOTIFY_ADD_WATCH      = 27\n\tSYS_INOTIFY_RM_WATCH       = 28\n\tSYS_IOCTL                  = 29\n\tSYS_IOPRIO_SET             = 30\n\tSYS_IOPRIO_GET             = 31\n\tSYS_FLOCK                  = 32\n\tSYS_MKNODAT                = 33\n\tSYS_MKDIRAT                = 34\n\tSYS_UNLINKAT               = 35\n\tSYS_SYMLINKAT              = 36\n\tSYS_LINKAT                 = 37\n\tSYS_RENAMEAT               = 38\n\tSYS_UMOUNT2                = 39\n\tSYS_MOUNT                  = 40\n\tSYS_PIVOT_ROOT             = 41\n\tSYS_NFSSERVCTL             = 42\n\tSYS_STATFS                 = 43\n\tSYS_FSTATFS                = 44\n\tSYS_TRUNCATE               = 45\n\tSYS_FTRUNCATE              = 46\n\tSYS_FALLOCATE              = 47\n\tSYS_FACCESSAT              = 48\n\tSYS_CHDIR                  = 49\n\tSYS_FCHDIR                 = 50\n\tSYS_CHROOT                 = 51\n\tSYS_FCHMOD                 = 52\n\tSYS_FCHMODAT               = 53\n\tSYS_FCHOWNAT               = 54\n\tSYS_FCHOWN                 = 55\n\tSYS_OPENAT                 = 56\n\tSYS_CLOSE                  = 57\n\tSYS_VHANGUP                = 58\n\tSYS_PIPE2                  = 59\n\tSYS_QUOTACTL               = 60\n\tSYS_GETDENTS64             = 61\n\tSYS_LSEEK                  = 62\n\tSYS_READ                   = 63\n\tSYS_WRITE                  = 64\n\tSYS_READV                  = 65\n\tSYS_WRITEV                 = 66\n\tSYS_PREAD64                = 67\n\tSYS_PWRITE64               = 68\n\tSYS_PREADV                 = 69\n\tSYS_PWRITEV                = 70\n\tSYS_SENDFILE               = 71\n\tSYS_PSELECT6               = 72\n\tSYS_PPOLL                  = 73\n\tSYS_SIGNALFD4              = 74\n\tSYS_VMSPLICE               = 75\n\tSYS_SPLICE                 = 76\n\tSYS_TEE                    = 77\n\tSYS_READLINKAT             = 78\n\tSYS_FSTATAT                = 79\n\tSYS_FSTAT                  = 80\n\tSYS_SYNC                   = 81\n\tSYS_FSYNC                  = 82\n\tSYS_FDATASYNC              = 83\n\tSYS_SYNC_FILE_RANGE        = 84\n\tSYS_TIMERFD_CREATE         = 85\n\tSYS_TIMERFD_SETTIME        = 86\n\tSYS_TIMERFD_GETTIME        = 87\n\tSYS_UTIMENSAT              = 88\n\tSYS_ACCT                   = 89\n\tSYS_CAPGET                 = 90\n\tSYS_CAPSET                 = 91\n\tSYS_PERSONALITY            = 92\n\tSYS_EXIT                   = 93\n\tSYS_EXIT_GROUP             = 94\n\tSYS_WAITID                 = 95\n\tSYS_SET_TID_ADDRESS        = 96\n\tSYS_UNSHARE                = 97\n\tSYS_FUTEX                  = 98\n\tSYS_SET_ROBUST_LIST        = 99\n\tSYS_GET_ROBUST_LIST        = 100\n\tSYS_NANOSLEEP              = 101\n\tSYS_GETITIMER              = 102\n\tSYS_SETITIMER              = 103\n\tSYS_KEXEC_LOAD             = 104\n\tSYS_INIT_MODULE            = 105\n\tSYS_DELETE_MODULE          = 106\n\tSYS_TIMER_CREATE           = 107\n\tSYS_TIMER_GETTIME          = 108\n\tSYS_TIMER_GETOVERRUN       = 109\n\tSYS_TIMER_SETTIME          = 110\n\tSYS_TIMER_DELETE           = 111\n\tSYS_CLOCK_SETTIME          = 112\n\tSYS_CLOCK_GETTIME          = 113\n\tSYS_CLOCK_GETRES           = 114\n\tSYS_CLOCK_NANOSLEEP        = 115\n\tSYS_SYSLOG                 = 116\n\tSYS_PTRACE                 = 117\n\tSYS_SCHED_SETPARAM         = 118\n\tSYS_SCHED_SETSCHEDULER     = 119\n\tSYS_SCHED_GETSCHEDULER     = 120\n\tSYS_SCHED_GETPARAM         = 121\n\tSYS_SCHED_SETAFFINITY      = 122\n\tSYS_SCHED_GETAFFINITY      = 123\n\tSYS_SCHED_YIELD            = 124\n\tSYS_SCHED_GET_PRIORITY_MAX = 125\n\tSYS_SCHED_GET_PRIORITY_MIN = 126\n\tSYS_SCHED_RR_GET_INTERVAL  = 127\n\tSYS_RESTART_SYSCALL        = 128\n\tSYS_KILL                   = 129\n\tSYS_TKILL                  = 130\n\tSYS_TGKILL                 = 131\n\tSYS_SIGALTSTACK            = 132\n\tSYS_RT_SIGSUSPEND          = 133\n\tSYS_RT_SIGACTION           = 134\n\tSYS_RT_SIGPROCMASK         = 135\n\tSYS_RT_SIGPENDING          = 136\n\tSYS_RT_SIGTIMEDWAIT        = 137\n\tSYS_RT_SIGQUEUEINFO        = 138\n\tSYS_RT_SIGRETURN           = 139\n\tSYS_SETPRIORITY            = 140\n\tSYS_GETPRIORITY            = 141\n\tSYS_REBOOT                 = 142\n\tSYS_SETREGID               = 143\n\tSYS_SETGID                 = 144\n\tSYS_SETREUID               = 145\n\tSYS_SETUID                 = 146\n\tSYS_SETRESUID              = 147\n\tSYS_GETRESUID              = 148\n\tSYS_SETRESGID              = 149\n\tSYS_GETRESGID              = 150\n\tSYS_SETFSUID               = 151\n\tSYS_SETFSGID               = 152\n\tSYS_TIMES                  = 153\n\tSYS_SETPGID                = 154\n\tSYS_GETPGID                = 155\n\tSYS_GETSID                 = 156\n\tSYS_SETSID                 = 157\n\tSYS_GETGROUPS              = 158\n\tSYS_SETGROUPS              = 159\n\tSYS_UNAME                  = 160\n\tSYS_SETHOSTNAME            = 161\n\tSYS_SETDOMAINNAME          = 162\n\tSYS_GETRLIMIT              = 163\n\tSYS_SETRLIMIT              = 164\n\tSYS_GETRUSAGE              = 165\n\tSYS_UMASK                  = 166\n\tSYS_PRCTL                  = 167\n\tSYS_GETCPU                 = 168\n\tSYS_GETTIMEOFDAY           = 169\n\tSYS_SETTIMEOFDAY           = 170\n\tSYS_ADJTIMEX               = 171\n\tSYS_GETPID                 = 172\n\tSYS_GETPPID                = 173\n\tSYS_GETUID                 = 174\n\tSYS_GETEUID                = 175\n\tSYS_GETGID                 = 176\n\tSYS_GETEGID                = 177\n\tSYS_GETTID                 = 178\n\tSYS_SYSINFO                = 179\n\tSYS_MQ_OPEN                = 180\n\tSYS_MQ_UNLINK              = 181\n\tSYS_MQ_TIMEDSEND           = 182\n\tSYS_MQ_TIMEDRECEIVE        = 183\n\tSYS_MQ_NOTIFY              = 184\n\tSYS_MQ_GETSETATTR          = 185\n\tSYS_MSGGET                 = 186\n\tSYS_MSGCTL                 = 187\n\tSYS_MSGRCV                 = 188\n\tSYS_MSGSND                 = 189\n\tSYS_SEMGET                 = 190\n\tSYS_SEMCTL                 = 191\n\tSYS_SEMTIMEDOP             = 192\n\tSYS_SEMOP                  = 193\n\tSYS_SHMGET                 = 194\n\tSYS_SHMCTL                 = 195\n\tSYS_SHMAT                  = 196\n\tSYS_SHMDT                  = 197\n\tSYS_SOCKET                 = 198\n\tSYS_SOCKETPAIR             = 199\n\tSYS_BIND                   = 200\n\tSYS_LISTEN                 = 201\n\tSYS_ACCEPT                 = 202\n\tSYS_CONNECT                = 203\n\tSYS_GETSOCKNAME            = 204\n\tSYS_GETPEERNAME            = 205\n\tSYS_SENDTO                 = 206\n\tSYS_RECVFROM               = 207\n\tSYS_SETSOCKOPT             = 208\n\tSYS_GETSOCKOPT             = 209\n\tSYS_SHUTDOWN               = 210\n\tSYS_SENDMSG                = 211\n\tSYS_RECVMSG                = 212\n\tSYS_READAHEAD              = 213\n\tSYS_BRK                    = 214\n\tSYS_MUNMAP                 = 215\n\tSYS_MREMAP                 = 216\n\tSYS_ADD_KEY                = 217\n\tSYS_REQUEST_KEY            = 218\n\tSYS_KEYCTL                 = 219\n\tSYS_CLONE                  = 220\n\tSYS_EXECVE                 = 221\n\tSYS_MMAP                   = 222\n\tSYS_FADVISE64              = 223\n\tSYS_SWAPON                 = 224\n\tSYS_SWAPOFF                = 225\n\tSYS_MPROTECT               = 226\n\tSYS_MSYNC                  = 227\n\tSYS_MLOCK                  = 228\n\tSYS_MUNLOCK                = 229\n\tSYS_MLOCKALL               = 230\n\tSYS_MUNLOCKALL             = 231\n\tSYS_MINCORE                = 232\n\tSYS_MADVISE                = 233\n\tSYS_REMAP_FILE_PAGES       = 234\n\tSYS_MBIND                  = 235\n\tSYS_GET_MEMPOLICY          = 236\n\tSYS_SET_MEMPOLICY          = 237\n\tSYS_MIGRATE_PAGES          = 238\n\tSYS_MOVE_PAGES             = 239\n\tSYS_RT_TGSIGQUEUEINFO      = 240\n\tSYS_PERF_EVENT_OPEN        = 241\n\tSYS_ACCEPT4                = 242\n\tSYS_RECVMMSG               = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL  = 244\n\tSYS_WAIT4                  = 260\n\tSYS_PRLIMIT64              = 261\n\tSYS_FANOTIFY_INIT          = 262\n\tSYS_FANOTIFY_MARK          = 263\n\tSYS_NAME_TO_HANDLE_AT      = 264\n\tSYS_OPEN_BY_HANDLE_AT      = 265\n\tSYS_CLOCK_ADJTIME          = 266\n\tSYS_SYNCFS                 = 267\n\tSYS_SETNS                  = 268\n\tSYS_SENDMMSG               = 269\n\tSYS_PROCESS_VM_READV       = 270\n\tSYS_PROCESS_VM_WRITEV      = 271\n\tSYS_KCMP                   = 272\n\tSYS_FINIT_MODULE           = 273\n\tSYS_SCHED_SETATTR          = 274\n\tSYS_SCHED_GETATTR          = 275\n\tSYS_RENAMEAT2              = 276\n\tSYS_SECCOMP                = 277\n\tSYS_GETRANDOM              = 278\n\tSYS_MEMFD_CREATE           = 279\n\tSYS_BPF                    = 280\n\tSYS_EXECVEAT               = 281\n\tSYS_USERFAULTFD            = 282\n\tSYS_MEMBARRIER             = 283\n\tSYS_MLOCK2                 = 284\n\tSYS_COPY_FILE_RANGE        = 285\n\tSYS_PREADV2                = 286\n\tSYS_PWRITEV2               = 287\n\tSYS_PKEY_MPROTECT          = 288\n\tSYS_PKEY_ALLOC             = 289\n\tSYS_PKEY_FREE              = 290\n\tSYS_STATX                  = 291\n\tSYS_IO_PGETEVENTS          = 292\n\tSYS_RSEQ                   = 293\n\tSYS_KEXEC_FILE_LOAD        = 294\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips,linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips64,linux\n\npackage unix\n\nconst (\n\tSYS_READ                   = 5000\n\tSYS_WRITE                  = 5001\n\tSYS_OPEN                   = 5002\n\tSYS_CLOSE                  = 5003\n\tSYS_STAT                   = 5004\n\tSYS_FSTAT                  = 5005\n\tSYS_LSTAT                  = 5006\n\tSYS_POLL                   = 5007\n\tSYS_LSEEK                  = 5008\n\tSYS_MMAP                   = 5009\n\tSYS_MPROTECT               = 5010\n\tSYS_MUNMAP                 = 5011\n\tSYS_BRK                    = 5012\n\tSYS_RT_SIGACTION           = 5013\n\tSYS_RT_SIGPROCMASK         = 5014\n\tSYS_IOCTL                  = 5015\n\tSYS_PREAD64                = 5016\n\tSYS_PWRITE64               = 5017\n\tSYS_READV                  = 5018\n\tSYS_WRITEV                 = 5019\n\tSYS_ACCESS                 = 5020\n\tSYS_PIPE                   = 5021\n\tSYS__NEWSELECT             = 5022\n\tSYS_SCHED_YIELD            = 5023\n\tSYS_MREMAP                 = 5024\n\tSYS_MSYNC                  = 5025\n\tSYS_MINCORE                = 5026\n\tSYS_MADVISE                = 5027\n\tSYS_SHMGET                 = 5028\n\tSYS_SHMAT                  = 5029\n\tSYS_SHMCTL                 = 5030\n\tSYS_DUP                    = 5031\n\tSYS_DUP2                   = 5032\n\tSYS_PAUSE                  = 5033\n\tSYS_NANOSLEEP              = 5034\n\tSYS_GETITIMER              = 5035\n\tSYS_SETITIMER              = 5036\n\tSYS_ALARM                  = 5037\n\tSYS_GETPID                 = 5038\n\tSYS_SENDFILE               = 5039\n\tSYS_SOCKET                 = 5040\n\tSYS_CONNECT                = 5041\n\tSYS_ACCEPT                 = 5042\n\tSYS_SENDTO                 = 5043\n\tSYS_RECVFROM               = 5044\n\tSYS_SENDMSG                = 5045\n\tSYS_RECVMSG                = 5046\n\tSYS_SHUTDOWN               = 5047\n\tSYS_BIND                   = 5048\n\tSYS_LISTEN                 = 5049\n\tSYS_GETSOCKNAME            = 5050\n\tSYS_GETPEERNAME            = 5051\n\tSYS_SOCKETPAIR             = 5052\n\tSYS_SETSOCKOPT             = 5053\n\tSYS_GETSOCKOPT             = 5054\n\tSYS_CLONE                  = 5055\n\tSYS_FORK                   = 5056\n\tSYS_EXECVE                 = 5057\n\tSYS_EXIT                   = 5058\n\tSYS_WAIT4                  = 5059\n\tSYS_KILL                   = 5060\n\tSYS_UNAME                  = 5061\n\tSYS_SEMGET                 = 5062\n\tSYS_SEMOP                  = 5063\n\tSYS_SEMCTL                 = 5064\n\tSYS_SHMDT                  = 5065\n\tSYS_MSGGET                 = 5066\n\tSYS_MSGSND                 = 5067\n\tSYS_MSGRCV                 = 5068\n\tSYS_MSGCTL                 = 5069\n\tSYS_FCNTL                  = 5070\n\tSYS_FLOCK                  = 5071\n\tSYS_FSYNC                  = 5072\n\tSYS_FDATASYNC              = 5073\n\tSYS_TRUNCATE               = 5074\n\tSYS_FTRUNCATE              = 5075\n\tSYS_GETDENTS               = 5076\n\tSYS_GETCWD                 = 5077\n\tSYS_CHDIR                  = 5078\n\tSYS_FCHDIR                 = 5079\n\tSYS_RENAME                 = 5080\n\tSYS_MKDIR                  = 5081\n\tSYS_RMDIR                  = 5082\n\tSYS_CREAT                  = 5083\n\tSYS_LINK                   = 5084\n\tSYS_UNLINK                 = 5085\n\tSYS_SYMLINK                = 5086\n\tSYS_READLINK               = 5087\n\tSYS_CHMOD                  = 5088\n\tSYS_FCHMOD                 = 5089\n\tSYS_CHOWN                  = 5090\n\tSYS_FCHOWN                 = 5091\n\tSYS_LCHOWN                 = 5092\n\tSYS_UMASK                  = 5093\n\tSYS_GETTIMEOFDAY           = 5094\n\tSYS_GETRLIMIT              = 5095\n\tSYS_GETRUSAGE              = 5096\n\tSYS_SYSINFO                = 5097\n\tSYS_TIMES                  = 5098\n\tSYS_PTRACE                 = 5099\n\tSYS_GETUID                 = 5100\n\tSYS_SYSLOG                 = 5101\n\tSYS_GETGID                 = 5102\n\tSYS_SETUID                 = 5103\n\tSYS_SETGID                 = 5104\n\tSYS_GETEUID                = 5105\n\tSYS_GETEGID                = 5106\n\tSYS_SETPGID                = 5107\n\tSYS_GETPPID                = 5108\n\tSYS_GETPGRP                = 5109\n\tSYS_SETSID                 = 5110\n\tSYS_SETREUID               = 5111\n\tSYS_SETREGID               = 5112\n\tSYS_GETGROUPS              = 5113\n\tSYS_SETGROUPS              = 5114\n\tSYS_SETRESUID              = 5115\n\tSYS_GETRESUID              = 5116\n\tSYS_SETRESGID              = 5117\n\tSYS_GETRESGID              = 5118\n\tSYS_GETPGID                = 5119\n\tSYS_SETFSUID               = 5120\n\tSYS_SETFSGID               = 5121\n\tSYS_GETSID                 = 5122\n\tSYS_CAPGET                 = 5123\n\tSYS_CAPSET                 = 5124\n\tSYS_RT_SIGPENDING          = 5125\n\tSYS_RT_SIGTIMEDWAIT        = 5126\n\tSYS_RT_SIGQUEUEINFO        = 5127\n\tSYS_RT_SIGSUSPEND          = 5128\n\tSYS_SIGALTSTACK            = 5129\n\tSYS_UTIME                  = 5130\n\tSYS_MKNOD                  = 5131\n\tSYS_PERSONALITY            = 5132\n\tSYS_USTAT                  = 5133\n\tSYS_STATFS                 = 5134\n\tSYS_FSTATFS                = 5135\n\tSYS_SYSFS                  = 5136\n\tSYS_GETPRIORITY            = 5137\n\tSYS_SETPRIORITY            = 5138\n\tSYS_SCHED_SETPARAM         = 5139\n\tSYS_SCHED_GETPARAM         = 5140\n\tSYS_SCHED_SETSCHEDULER     = 5141\n\tSYS_SCHED_GETSCHEDULER     = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN = 5144\n\tSYS_SCHED_RR_GET_INTERVAL  = 5145\n\tSYS_MLOCK                  = 5146\n\tSYS_MUNLOCK                = 5147\n\tSYS_MLOCKALL               = 5148\n\tSYS_MUNLOCKALL             = 5149\n\tSYS_VHANGUP                = 5150\n\tSYS_PIVOT_ROOT             = 5151\n\tSYS__SYSCTL                = 5152\n\tSYS_PRCTL                  = 5153\n\tSYS_ADJTIMEX               = 5154\n\tSYS_SETRLIMIT              = 5155\n\tSYS_CHROOT                 = 5156\n\tSYS_SYNC                   = 5157\n\tSYS_ACCT                   = 5158\n\tSYS_SETTIMEOFDAY           = 5159\n\tSYS_MOUNT                  = 5160\n\tSYS_UMOUNT2                = 5161\n\tSYS_SWAPON                 = 5162\n\tSYS_SWAPOFF                = 5163\n\tSYS_REBOOT                 = 5164\n\tSYS_SETHOSTNAME            = 5165\n\tSYS_SETDOMAINNAME          = 5166\n\tSYS_CREATE_MODULE          = 5167\n\tSYS_INIT_MODULE            = 5168\n\tSYS_DELETE_MODULE          = 5169\n\tSYS_GET_KERNEL_SYMS        = 5170\n\tSYS_QUERY_MODULE           = 5171\n\tSYS_QUOTACTL               = 5172\n\tSYS_NFSSERVCTL             = 5173\n\tSYS_GETPMSG                = 5174\n\tSYS_PUTPMSG                = 5175\n\tSYS_AFS_SYSCALL            = 5176\n\tSYS_RESERVED177            = 5177\n\tSYS_GETTID                 = 5178\n\tSYS_READAHEAD              = 5179\n\tSYS_SETXATTR               = 5180\n\tSYS_LSETXATTR              = 5181\n\tSYS_FSETXATTR              = 5182\n\tSYS_GETXATTR               = 5183\n\tSYS_LGETXATTR              = 5184\n\tSYS_FGETXATTR              = 5185\n\tSYS_LISTXATTR              = 5186\n\tSYS_LLISTXATTR             = 5187\n\tSYS_FLISTXATTR             = 5188\n\tSYS_REMOVEXATTR            = 5189\n\tSYS_LREMOVEXATTR           = 5190\n\tSYS_FREMOVEXATTR           = 5191\n\tSYS_TKILL                  = 5192\n\tSYS_RESERVED193            = 5193\n\tSYS_FUTEX                  = 5194\n\tSYS_SCHED_SETAFFINITY      = 5195\n\tSYS_SCHED_GETAFFINITY      = 5196\n\tSYS_CACHEFLUSH             = 5197\n\tSYS_CACHECTL               = 5198\n\tSYS_SYSMIPS                = 5199\n\tSYS_IO_SETUP               = 5200\n\tSYS_IO_DESTROY             = 5201\n\tSYS_IO_GETEVENTS           = 5202\n\tSYS_IO_SUBMIT              = 5203\n\tSYS_IO_CANCEL              = 5204\n\tSYS_EXIT_GROUP             = 5205\n\tSYS_LOOKUP_DCOOKIE         = 5206\n\tSYS_EPOLL_CREATE           = 5207\n\tSYS_EPOLL_CTL              = 5208\n\tSYS_EPOLL_WAIT             = 5209\n\tSYS_REMAP_FILE_PAGES       = 5210\n\tSYS_RT_SIGRETURN           = 5211\n\tSYS_SET_TID_ADDRESS        = 5212\n\tSYS_RESTART_SYSCALL        = 5213\n\tSYS_SEMTIMEDOP             = 5214\n\tSYS_FADVISE64              = 5215\n\tSYS_TIMER_CREATE           = 5216\n\tSYS_TIMER_SETTIME          = 5217\n\tSYS_TIMER_GETTIME          = 5218\n\tSYS_TIMER_GETOVERRUN       = 5219\n\tSYS_TIMER_DELETE           = 5220\n\tSYS_CLOCK_SETTIME          = 5221\n\tSYS_CLOCK_GETTIME          = 5222\n\tSYS_CLOCK_GETRES           = 5223\n\tSYS_CLOCK_NANOSLEEP        = 5224\n\tSYS_TGKILL                 = 5225\n\tSYS_UTIMES                 = 5226\n\tSYS_MBIND                  = 5227\n\tSYS_GET_MEMPOLICY          = 5228\n\tSYS_SET_MEMPOLICY          = 5229\n\tSYS_MQ_OPEN                = 5230\n\tSYS_MQ_UNLINK              = 5231\n\tSYS_MQ_TIMEDSEND           = 5232\n\tSYS_MQ_TIMEDRECEIVE        = 5233\n\tSYS_MQ_NOTIFY              = 5234\n\tSYS_MQ_GETSETATTR          = 5235\n\tSYS_VSERVER                = 5236\n\tSYS_WAITID                 = 5237\n\tSYS_ADD_KEY                = 5239\n\tSYS_REQUEST_KEY            = 5240\n\tSYS_KEYCTL                 = 5241\n\tSYS_SET_THREAD_AREA        = 5242\n\tSYS_INOTIFY_INIT           = 5243\n\tSYS_INOTIFY_ADD_WATCH      = 5244\n\tSYS_INOTIFY_RM_WATCH       = 5245\n\tSYS_MIGRATE_PAGES          = 5246\n\tSYS_OPENAT                 = 5247\n\tSYS_MKDIRAT                = 5248\n\tSYS_MKNODAT                = 5249\n\tSYS_FCHOWNAT               = 5250\n\tSYS_FUTIMESAT              = 5251\n\tSYS_NEWFSTATAT             = 5252\n\tSYS_UNLINKAT               = 5253\n\tSYS_RENAMEAT               = 5254\n\tSYS_LINKAT                 = 5255\n\tSYS_SYMLINKAT              = 5256\n\tSYS_READLINKAT             = 5257\n\tSYS_FCHMODAT               = 5258\n\tSYS_FACCESSAT              = 5259\n\tSYS_PSELECT6               = 5260\n\tSYS_PPOLL                  = 5261\n\tSYS_UNSHARE                = 5262\n\tSYS_SPLICE                 = 5263\n\tSYS_SYNC_FILE_RANGE        = 5264\n\tSYS_TEE                    = 5265\n\tSYS_VMSPLICE               = 5266\n\tSYS_MOVE_PAGES             = 5267\n\tSYS_SET_ROBUST_LIST        = 5268\n\tSYS_GET_ROBUST_LIST        = 5269\n\tSYS_KEXEC_LOAD             = 5270\n\tSYS_GETCPU                 = 5271\n\tSYS_EPOLL_PWAIT            = 5272\n\tSYS_IOPRIO_SET             = 5273\n\tSYS_IOPRIO_GET             = 5274\n\tSYS_UTIMENSAT              = 5275\n\tSYS_SIGNALFD               = 5276\n\tSYS_TIMERFD                = 5277\n\tSYS_EVENTFD                = 5278\n\tSYS_FALLOCATE              = 5279\n\tSYS_TIMERFD_CREATE         = 5280\n\tSYS_TIMERFD_GETTIME        = 5281\n\tSYS_TIMERFD_SETTIME        = 5282\n\tSYS_SIGNALFD4              = 5283\n\tSYS_EVENTFD2               = 5284\n\tSYS_EPOLL_CREATE1          = 5285\n\tSYS_DUP3                   = 5286\n\tSYS_PIPE2                  = 5287\n\tSYS_INOTIFY_INIT1          = 5288\n\tSYS_PREADV                 = 5289\n\tSYS_PWRITEV                = 5290\n\tSYS_RT_TGSIGQUEUEINFO      = 5291\n\tSYS_PERF_EVENT_OPEN        = 5292\n\tSYS_ACCEPT4                = 5293\n\tSYS_RECVMMSG               = 5294\n\tSYS_FANOTIFY_INIT          = 5295\n\tSYS_FANOTIFY_MARK          = 5296\n\tSYS_PRLIMIT64              = 5297\n\tSYS_NAME_TO_HANDLE_AT      = 5298\n\tSYS_OPEN_BY_HANDLE_AT      = 5299\n\tSYS_CLOCK_ADJTIME          = 5300\n\tSYS_SYNCFS                 = 5301\n\tSYS_SENDMMSG               = 5302\n\tSYS_SETNS                  = 5303\n\tSYS_PROCESS_VM_READV       = 5304\n\tSYS_PROCESS_VM_WRITEV      = 5305\n\tSYS_KCMP                   = 5306\n\tSYS_FINIT_MODULE           = 5307\n\tSYS_GETDENTS64             = 5308\n\tSYS_SCHED_SETATTR          = 5309\n\tSYS_SCHED_GETATTR          = 5310\n\tSYS_RENAMEAT2              = 5311\n\tSYS_SECCOMP                = 5312\n\tSYS_GETRANDOM              = 5313\n\tSYS_MEMFD_CREATE           = 5314\n\tSYS_BPF                    = 5315\n\tSYS_EXECVEAT               = 5316\n\tSYS_USERFAULTFD            = 5317\n\tSYS_MEMBARRIER             = 5318\n\tSYS_MLOCK2                 = 5319\n\tSYS_COPY_FILE_RANGE        = 5320\n\tSYS_PREADV2                = 5321\n\tSYS_PWRITEV2               = 5322\n\tSYS_PKEY_MPROTECT          = 5323\n\tSYS_PKEY_ALLOC             = 5324\n\tSYS_PKEY_FREE              = 5325\n\tSYS_STATX                  = 5326\n\tSYS_RSEQ                   = 5327\n\tSYS_IO_PGETEVENTS          = 5328\n\tSYS_PIDFD_SEND_SIGNAL      = 5424\n\tSYS_IO_URING_SETUP         = 5425\n\tSYS_IO_URING_ENTER         = 5426\n\tSYS_IO_URING_REGISTER      = 5427\n\tSYS_OPEN_TREE              = 5428\n\tSYS_MOVE_MOUNT             = 5429\n\tSYS_FSOPEN                 = 5430\n\tSYS_FSCONFIG               = 5431\n\tSYS_FSMOUNT                = 5432\n\tSYS_FSPICK                 = 5433\n\tSYS_PIDFD_OPEN             = 5434\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips64le,linux\n\npackage unix\n\nconst (\n\tSYS_READ                   = 5000\n\tSYS_WRITE                  = 5001\n\tSYS_OPEN                   = 5002\n\tSYS_CLOSE                  = 5003\n\tSYS_STAT                   = 5004\n\tSYS_FSTAT                  = 5005\n\tSYS_LSTAT                  = 5006\n\tSYS_POLL                   = 5007\n\tSYS_LSEEK                  = 5008\n\tSYS_MMAP                   = 5009\n\tSYS_MPROTECT               = 5010\n\tSYS_MUNMAP                 = 5011\n\tSYS_BRK                    = 5012\n\tSYS_RT_SIGACTION           = 5013\n\tSYS_RT_SIGPROCMASK         = 5014\n\tSYS_IOCTL                  = 5015\n\tSYS_PREAD64                = 5016\n\tSYS_PWRITE64               = 5017\n\tSYS_READV                  = 5018\n\tSYS_WRITEV                 = 5019\n\tSYS_ACCESS                 = 5020\n\tSYS_PIPE                   = 5021\n\tSYS__NEWSELECT             = 5022\n\tSYS_SCHED_YIELD            = 5023\n\tSYS_MREMAP                 = 5024\n\tSYS_MSYNC                  = 5025\n\tSYS_MINCORE                = 5026\n\tSYS_MADVISE                = 5027\n\tSYS_SHMGET                 = 5028\n\tSYS_SHMAT                  = 5029\n\tSYS_SHMCTL                 = 5030\n\tSYS_DUP                    = 5031\n\tSYS_DUP2                   = 5032\n\tSYS_PAUSE                  = 5033\n\tSYS_NANOSLEEP              = 5034\n\tSYS_GETITIMER              = 5035\n\tSYS_SETITIMER              = 5036\n\tSYS_ALARM                  = 5037\n\tSYS_GETPID                 = 5038\n\tSYS_SENDFILE               = 5039\n\tSYS_SOCKET                 = 5040\n\tSYS_CONNECT                = 5041\n\tSYS_ACCEPT                 = 5042\n\tSYS_SENDTO                 = 5043\n\tSYS_RECVFROM               = 5044\n\tSYS_SENDMSG                = 5045\n\tSYS_RECVMSG                = 5046\n\tSYS_SHUTDOWN               = 5047\n\tSYS_BIND                   = 5048\n\tSYS_LISTEN                 = 5049\n\tSYS_GETSOCKNAME            = 5050\n\tSYS_GETPEERNAME            = 5051\n\tSYS_SOCKETPAIR             = 5052\n\tSYS_SETSOCKOPT             = 5053\n\tSYS_GETSOCKOPT             = 5054\n\tSYS_CLONE                  = 5055\n\tSYS_FORK                   = 5056\n\tSYS_EXECVE                 = 5057\n\tSYS_EXIT                   = 5058\n\tSYS_WAIT4                  = 5059\n\tSYS_KILL                   = 5060\n\tSYS_UNAME                  = 5061\n\tSYS_SEMGET                 = 5062\n\tSYS_SEMOP                  = 5063\n\tSYS_SEMCTL                 = 5064\n\tSYS_SHMDT                  = 5065\n\tSYS_MSGGET                 = 5066\n\tSYS_MSGSND                 = 5067\n\tSYS_MSGRCV                 = 5068\n\tSYS_MSGCTL                 = 5069\n\tSYS_FCNTL                  = 5070\n\tSYS_FLOCK                  = 5071\n\tSYS_FSYNC                  = 5072\n\tSYS_FDATASYNC              = 5073\n\tSYS_TRUNCATE               = 5074\n\tSYS_FTRUNCATE              = 5075\n\tSYS_GETDENTS               = 5076\n\tSYS_GETCWD                 = 5077\n\tSYS_CHDIR                  = 5078\n\tSYS_FCHDIR                 = 5079\n\tSYS_RENAME                 = 5080\n\tSYS_MKDIR                  = 5081\n\tSYS_RMDIR                  = 5082\n\tSYS_CREAT                  = 5083\n\tSYS_LINK                   = 5084\n\tSYS_UNLINK                 = 5085\n\tSYS_SYMLINK                = 5086\n\tSYS_READLINK               = 5087\n\tSYS_CHMOD                  = 5088\n\tSYS_FCHMOD                 = 5089\n\tSYS_CHOWN                  = 5090\n\tSYS_FCHOWN                 = 5091\n\tSYS_LCHOWN                 = 5092\n\tSYS_UMASK                  = 5093\n\tSYS_GETTIMEOFDAY           = 5094\n\tSYS_GETRLIMIT              = 5095\n\tSYS_GETRUSAGE              = 5096\n\tSYS_SYSINFO                = 5097\n\tSYS_TIMES                  = 5098\n\tSYS_PTRACE                 = 5099\n\tSYS_GETUID                 = 5100\n\tSYS_SYSLOG                 = 5101\n\tSYS_GETGID                 = 5102\n\tSYS_SETUID                 = 5103\n\tSYS_SETGID                 = 5104\n\tSYS_GETEUID                = 5105\n\tSYS_GETEGID                = 5106\n\tSYS_SETPGID                = 5107\n\tSYS_GETPPID                = 5108\n\tSYS_GETPGRP                = 5109\n\tSYS_SETSID                 = 5110\n\tSYS_SETREUID               = 5111\n\tSYS_SETREGID               = 5112\n\tSYS_GETGROUPS              = 5113\n\tSYS_SETGROUPS              = 5114\n\tSYS_SETRESUID              = 5115\n\tSYS_GETRESUID              = 5116\n\tSYS_SETRESGID              = 5117\n\tSYS_GETRESGID              = 5118\n\tSYS_GETPGID                = 5119\n\tSYS_SETFSUID               = 5120\n\tSYS_SETFSGID               = 5121\n\tSYS_GETSID                 = 5122\n\tSYS_CAPGET                 = 5123\n\tSYS_CAPSET                 = 5124\n\tSYS_RT_SIGPENDING          = 5125\n\tSYS_RT_SIGTIMEDWAIT        = 5126\n\tSYS_RT_SIGQUEUEINFO        = 5127\n\tSYS_RT_SIGSUSPEND          = 5128\n\tSYS_SIGALTSTACK            = 5129\n\tSYS_UTIME                  = 5130\n\tSYS_MKNOD                  = 5131\n\tSYS_PERSONALITY            = 5132\n\tSYS_USTAT                  = 5133\n\tSYS_STATFS                 = 5134\n\tSYS_FSTATFS                = 5135\n\tSYS_SYSFS                  = 5136\n\tSYS_GETPRIORITY            = 5137\n\tSYS_SETPRIORITY            = 5138\n\tSYS_SCHED_SETPARAM         = 5139\n\tSYS_SCHED_GETPARAM         = 5140\n\tSYS_SCHED_SETSCHEDULER     = 5141\n\tSYS_SCHED_GETSCHEDULER     = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN = 5144\n\tSYS_SCHED_RR_GET_INTERVAL  = 5145\n\tSYS_MLOCK                  = 5146\n\tSYS_MUNLOCK                = 5147\n\tSYS_MLOCKALL               = 5148\n\tSYS_MUNLOCKALL             = 5149\n\tSYS_VHANGUP                = 5150\n\tSYS_PIVOT_ROOT             = 5151\n\tSYS__SYSCTL                = 5152\n\tSYS_PRCTL                  = 5153\n\tSYS_ADJTIMEX               = 5154\n\tSYS_SETRLIMIT              = 5155\n\tSYS_CHROOT                 = 5156\n\tSYS_SYNC                   = 5157\n\tSYS_ACCT                   = 5158\n\tSYS_SETTIMEOFDAY           = 5159\n\tSYS_MOUNT                  = 5160\n\tSYS_UMOUNT2                = 5161\n\tSYS_SWAPON                 = 5162\n\tSYS_SWAPOFF                = 5163\n\tSYS_REBOOT                 = 5164\n\tSYS_SETHOSTNAME            = 5165\n\tSYS_SETDOMAINNAME          = 5166\n\tSYS_CREATE_MODULE          = 5167\n\tSYS_INIT_MODULE            = 5168\n\tSYS_DELETE_MODULE          = 5169\n\tSYS_GET_KERNEL_SYMS        = 5170\n\tSYS_QUERY_MODULE           = 5171\n\tSYS_QUOTACTL               = 5172\n\tSYS_NFSSERVCTL             = 5173\n\tSYS_GETPMSG                = 5174\n\tSYS_PUTPMSG                = 5175\n\tSYS_AFS_SYSCALL            = 5176\n\tSYS_RESERVED177            = 5177\n\tSYS_GETTID                 = 5178\n\tSYS_READAHEAD              = 5179\n\tSYS_SETXATTR               = 5180\n\tSYS_LSETXATTR              = 5181\n\tSYS_FSETXATTR              = 5182\n\tSYS_GETXATTR               = 5183\n\tSYS_LGETXATTR              = 5184\n\tSYS_FGETXATTR              = 5185\n\tSYS_LISTXATTR              = 5186\n\tSYS_LLISTXATTR             = 5187\n\tSYS_FLISTXATTR             = 5188\n\tSYS_REMOVEXATTR            = 5189\n\tSYS_LREMOVEXATTR           = 5190\n\tSYS_FREMOVEXATTR           = 5191\n\tSYS_TKILL                  = 5192\n\tSYS_RESERVED193            = 5193\n\tSYS_FUTEX                  = 5194\n\tSYS_SCHED_SETAFFINITY      = 5195\n\tSYS_SCHED_GETAFFINITY      = 5196\n\tSYS_CACHEFLUSH             = 5197\n\tSYS_CACHECTL               = 5198\n\tSYS_SYSMIPS                = 5199\n\tSYS_IO_SETUP               = 5200\n\tSYS_IO_DESTROY             = 5201\n\tSYS_IO_GETEVENTS           = 5202\n\tSYS_IO_SUBMIT              = 5203\n\tSYS_IO_CANCEL              = 5204\n\tSYS_EXIT_GROUP             = 5205\n\tSYS_LOOKUP_DCOOKIE         = 5206\n\tSYS_EPOLL_CREATE           = 5207\n\tSYS_EPOLL_CTL              = 5208\n\tSYS_EPOLL_WAIT             = 5209\n\tSYS_REMAP_FILE_PAGES       = 5210\n\tSYS_RT_SIGRETURN           = 5211\n\tSYS_SET_TID_ADDRESS        = 5212\n\tSYS_RESTART_SYSCALL        = 5213\n\tSYS_SEMTIMEDOP             = 5214\n\tSYS_FADVISE64              = 5215\n\tSYS_TIMER_CREATE           = 5216\n\tSYS_TIMER_SETTIME          = 5217\n\tSYS_TIMER_GETTIME          = 5218\n\tSYS_TIMER_GETOVERRUN       = 5219\n\tSYS_TIMER_DELETE           = 5220\n\tSYS_CLOCK_SETTIME          = 5221\n\tSYS_CLOCK_GETTIME          = 5222\n\tSYS_CLOCK_GETRES           = 5223\n\tSYS_CLOCK_NANOSLEEP        = 5224\n\tSYS_TGKILL                 = 5225\n\tSYS_UTIMES                 = 5226\n\tSYS_MBIND                  = 5227\n\tSYS_GET_MEMPOLICY          = 5228\n\tSYS_SET_MEMPOLICY          = 5229\n\tSYS_MQ_OPEN                = 5230\n\tSYS_MQ_UNLINK              = 5231\n\tSYS_MQ_TIMEDSEND           = 5232\n\tSYS_MQ_TIMEDRECEIVE        = 5233\n\tSYS_MQ_NOTIFY              = 5234\n\tSYS_MQ_GETSETATTR          = 5235\n\tSYS_VSERVER                = 5236\n\tSYS_WAITID                 = 5237\n\tSYS_ADD_KEY                = 5239\n\tSYS_REQUEST_KEY            = 5240\n\tSYS_KEYCTL                 = 5241\n\tSYS_SET_THREAD_AREA        = 5242\n\tSYS_INOTIFY_INIT           = 5243\n\tSYS_INOTIFY_ADD_WATCH      = 5244\n\tSYS_INOTIFY_RM_WATCH       = 5245\n\tSYS_MIGRATE_PAGES          = 5246\n\tSYS_OPENAT                 = 5247\n\tSYS_MKDIRAT                = 5248\n\tSYS_MKNODAT                = 5249\n\tSYS_FCHOWNAT               = 5250\n\tSYS_FUTIMESAT              = 5251\n\tSYS_NEWFSTATAT             = 5252\n\tSYS_UNLINKAT               = 5253\n\tSYS_RENAMEAT               = 5254\n\tSYS_LINKAT                 = 5255\n\tSYS_SYMLINKAT              = 5256\n\tSYS_READLINKAT             = 5257\n\tSYS_FCHMODAT               = 5258\n\tSYS_FACCESSAT              = 5259\n\tSYS_PSELECT6               = 5260\n\tSYS_PPOLL                  = 5261\n\tSYS_UNSHARE                = 5262\n\tSYS_SPLICE                 = 5263\n\tSYS_SYNC_FILE_RANGE        = 5264\n\tSYS_TEE                    = 5265\n\tSYS_VMSPLICE               = 5266\n\tSYS_MOVE_PAGES             = 5267\n\tSYS_SET_ROBUST_LIST        = 5268\n\tSYS_GET_ROBUST_LIST        = 5269\n\tSYS_KEXEC_LOAD             = 5270\n\tSYS_GETCPU                 = 5271\n\tSYS_EPOLL_PWAIT            = 5272\n\tSYS_IOPRIO_SET             = 5273\n\tSYS_IOPRIO_GET             = 5274\n\tSYS_UTIMENSAT              = 5275\n\tSYS_SIGNALFD               = 5276\n\tSYS_TIMERFD                = 5277\n\tSYS_EVENTFD                = 5278\n\tSYS_FALLOCATE              = 5279\n\tSYS_TIMERFD_CREATE         = 5280\n\tSYS_TIMERFD_GETTIME        = 5281\n\tSYS_TIMERFD_SETTIME        = 5282\n\tSYS_SIGNALFD4              = 5283\n\tSYS_EVENTFD2               = 5284\n\tSYS_EPOLL_CREATE1          = 5285\n\tSYS_DUP3                   = 5286\n\tSYS_PIPE2                  = 5287\n\tSYS_INOTIFY_INIT1          = 5288\n\tSYS_PREADV                 = 5289\n\tSYS_PWRITEV                = 5290\n\tSYS_RT_TGSIGQUEUEINFO      = 5291\n\tSYS_PERF_EVENT_OPEN        = 5292\n\tSYS_ACCEPT4                = 5293\n\tSYS_RECVMMSG               = 5294\n\tSYS_FANOTIFY_INIT          = 5295\n\tSYS_FANOTIFY_MARK          = 5296\n\tSYS_PRLIMIT64              = 5297\n\tSYS_NAME_TO_HANDLE_AT      = 5298\n\tSYS_OPEN_BY_HANDLE_AT      = 5299\n\tSYS_CLOCK_ADJTIME          = 5300\n\tSYS_SYNCFS                 = 5301\n\tSYS_SENDMMSG               = 5302\n\tSYS_SETNS                  = 5303\n\tSYS_PROCESS_VM_READV       = 5304\n\tSYS_PROCESS_VM_WRITEV      = 5305\n\tSYS_KCMP                   = 5306\n\tSYS_FINIT_MODULE           = 5307\n\tSYS_GETDENTS64             = 5308\n\tSYS_SCHED_SETATTR          = 5309\n\tSYS_SCHED_GETATTR          = 5310\n\tSYS_RENAMEAT2              = 5311\n\tSYS_SECCOMP                = 5312\n\tSYS_GETRANDOM              = 5313\n\tSYS_MEMFD_CREATE           = 5314\n\tSYS_BPF                    = 5315\n\tSYS_EXECVEAT               = 5316\n\tSYS_USERFAULTFD            = 5317\n\tSYS_MEMBARRIER             = 5318\n\tSYS_MLOCK2                 = 5319\n\tSYS_COPY_FILE_RANGE        = 5320\n\tSYS_PREADV2                = 5321\n\tSYS_PWRITEV2               = 5322\n\tSYS_PKEY_MPROTECT          = 5323\n\tSYS_PKEY_ALLOC             = 5324\n\tSYS_PKEY_FREE              = 5325\n\tSYS_STATX                  = 5326\n\tSYS_RSEQ                   = 5327\n\tSYS_IO_PGETEVENTS          = 5328\n\tSYS_PIDFD_SEND_SIGNAL      = 5424\n\tSYS_IO_URING_SETUP         = 5425\n\tSYS_IO_URING_ENTER         = 5426\n\tSYS_IO_URING_REGISTER      = 5427\n\tSYS_OPEN_TREE              = 5428\n\tSYS_MOVE_MOUNT             = 5429\n\tSYS_FSOPEN                 = 5430\n\tSYS_FSCONFIG               = 5431\n\tSYS_FSMOUNT                = 5432\n\tSYS_FSPICK                 = 5433\n\tSYS_PIDFD_OPEN             = 5434\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mipsle,linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64,linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL        = 0\n\tSYS_EXIT                   = 1\n\tSYS_FORK                   = 2\n\tSYS_READ                   = 3\n\tSYS_WRITE                  = 4\n\tSYS_OPEN                   = 5\n\tSYS_CLOSE                  = 6\n\tSYS_WAITPID                = 7\n\tSYS_CREAT                  = 8\n\tSYS_LINK                   = 9\n\tSYS_UNLINK                 = 10\n\tSYS_EXECVE                 = 11\n\tSYS_CHDIR                  = 12\n\tSYS_TIME                   = 13\n\tSYS_MKNOD                  = 14\n\tSYS_CHMOD                  = 15\n\tSYS_LCHOWN                 = 16\n\tSYS_BREAK                  = 17\n\tSYS_OLDSTAT                = 18\n\tSYS_LSEEK                  = 19\n\tSYS_GETPID                 = 20\n\tSYS_MOUNT                  = 21\n\tSYS_UMOUNT                 = 22\n\tSYS_SETUID                 = 23\n\tSYS_GETUID                 = 24\n\tSYS_STIME                  = 25\n\tSYS_PTRACE                 = 26\n\tSYS_ALARM                  = 27\n\tSYS_OLDFSTAT               = 28\n\tSYS_PAUSE                  = 29\n\tSYS_UTIME                  = 30\n\tSYS_STTY                   = 31\n\tSYS_GTTY                   = 32\n\tSYS_ACCESS                 = 33\n\tSYS_NICE                   = 34\n\tSYS_FTIME                  = 35\n\tSYS_SYNC                   = 36\n\tSYS_KILL                   = 37\n\tSYS_RENAME                 = 38\n\tSYS_MKDIR                  = 39\n\tSYS_RMDIR                  = 40\n\tSYS_DUP                    = 41\n\tSYS_PIPE                   = 42\n\tSYS_TIMES                  = 43\n\tSYS_PROF                   = 44\n\tSYS_BRK                    = 45\n\tSYS_SETGID                 = 46\n\tSYS_GETGID                 = 47\n\tSYS_SIGNAL                 = 48\n\tSYS_GETEUID                = 49\n\tSYS_GETEGID                = 50\n\tSYS_ACCT                   = 51\n\tSYS_UMOUNT2                = 52\n\tSYS_LOCK                   = 53\n\tSYS_IOCTL                  = 54\n\tSYS_FCNTL                  = 55\n\tSYS_MPX                    = 56\n\tSYS_SETPGID                = 57\n\tSYS_ULIMIT                 = 58\n\tSYS_OLDOLDUNAME            = 59\n\tSYS_UMASK                  = 60\n\tSYS_CHROOT                 = 61\n\tSYS_USTAT                  = 62\n\tSYS_DUP2                   = 63\n\tSYS_GETPPID                = 64\n\tSYS_GETPGRP                = 65\n\tSYS_SETSID                 = 66\n\tSYS_SIGACTION              = 67\n\tSYS_SGETMASK               = 68\n\tSYS_SSETMASK               = 69\n\tSYS_SETREUID               = 70\n\tSYS_SETREGID               = 71\n\tSYS_SIGSUSPEND             = 72\n\tSYS_SIGPENDING             = 73\n\tSYS_SETHOSTNAME            = 74\n\tSYS_SETRLIMIT              = 75\n\tSYS_GETRLIMIT              = 76\n\tSYS_GETRUSAGE              = 77\n\tSYS_GETTIMEOFDAY           = 78\n\tSYS_SETTIMEOFDAY           = 79\n\tSYS_GETGROUPS              = 80\n\tSYS_SETGROUPS              = 81\n\tSYS_SELECT                 = 82\n\tSYS_SYMLINK                = 83\n\tSYS_OLDLSTAT               = 84\n\tSYS_READLINK               = 85\n\tSYS_USELIB                 = 86\n\tSYS_SWAPON                 = 87\n\tSYS_REBOOT                 = 88\n\tSYS_READDIR                = 89\n\tSYS_MMAP                   = 90\n\tSYS_MUNMAP                 = 91\n\tSYS_TRUNCATE               = 92\n\tSYS_FTRUNCATE              = 93\n\tSYS_FCHMOD                 = 94\n\tSYS_FCHOWN                 = 95\n\tSYS_GETPRIORITY            = 96\n\tSYS_SETPRIORITY            = 97\n\tSYS_PROFIL                 = 98\n\tSYS_STATFS                 = 99\n\tSYS_FSTATFS                = 100\n\tSYS_IOPERM                 = 101\n\tSYS_SOCKETCALL             = 102\n\tSYS_SYSLOG                 = 103\n\tSYS_SETITIMER              = 104\n\tSYS_GETITIMER              = 105\n\tSYS_STAT                   = 106\n\tSYS_LSTAT                  = 107\n\tSYS_FSTAT                  = 108\n\tSYS_OLDUNAME               = 109\n\tSYS_IOPL                   = 110\n\tSYS_VHANGUP                = 111\n\tSYS_IDLE                   = 112\n\tSYS_VM86                   = 113\n\tSYS_WAIT4                  = 114\n\tSYS_SWAPOFF                = 115\n\tSYS_SYSINFO                = 116\n\tSYS_IPC                    = 117\n\tSYS_FSYNC                  = 118\n\tSYS_SIGRETURN              = 119\n\tSYS_CLONE                  = 120\n\tSYS_SETDOMAINNAME          = 121\n\tSYS_UNAME                  = 122\n\tSYS_MODIFY_LDT             = 123\n\tSYS_ADJTIMEX               = 124\n\tSYS_MPROTECT               = 125\n\tSYS_SIGPROCMASK            = 126\n\tSYS_CREATE_MODULE          = 127\n\tSYS_INIT_MODULE            = 128\n\tSYS_DELETE_MODULE          = 129\n\tSYS_GET_KERNEL_SYMS        = 130\n\tSYS_QUOTACTL               = 131\n\tSYS_GETPGID                = 132\n\tSYS_FCHDIR                 = 133\n\tSYS_BDFLUSH                = 134\n\tSYS_SYSFS                  = 135\n\tSYS_PERSONALITY            = 136\n\tSYS_AFS_SYSCALL            = 137\n\tSYS_SETFSUID               = 138\n\tSYS_SETFSGID               = 139\n\tSYS__LLSEEK                = 140\n\tSYS_GETDENTS               = 141\n\tSYS__NEWSELECT             = 142\n\tSYS_FLOCK                  = 143\n\tSYS_MSYNC                  = 144\n\tSYS_READV                  = 145\n\tSYS_WRITEV                 = 146\n\tSYS_GETSID                 = 147\n\tSYS_FDATASYNC              = 148\n\tSYS__SYSCTL                = 149\n\tSYS_MLOCK                  = 150\n\tSYS_MUNLOCK                = 151\n\tSYS_MLOCKALL               = 152\n\tSYS_MUNLOCKALL             = 153\n\tSYS_SCHED_SETPARAM         = 154\n\tSYS_SCHED_GETPARAM         = 155\n\tSYS_SCHED_SETSCHEDULER     = 156\n\tSYS_SCHED_GETSCHEDULER     = 157\n\tSYS_SCHED_YIELD            = 158\n\tSYS_SCHED_GET_PRIORITY_MAX = 159\n\tSYS_SCHED_GET_PRIORITY_MIN = 160\n\tSYS_SCHED_RR_GET_INTERVAL  = 161\n\tSYS_NANOSLEEP              = 162\n\tSYS_MREMAP                 = 163\n\tSYS_SETRESUID              = 164\n\tSYS_GETRESUID              = 165\n\tSYS_QUERY_MODULE           = 166\n\tSYS_POLL                   = 167\n\tSYS_NFSSERVCTL             = 168\n\tSYS_SETRESGID              = 169\n\tSYS_GETRESGID              = 170\n\tSYS_PRCTL                  = 171\n\tSYS_RT_SIGRETURN           = 172\n\tSYS_RT_SIGACTION           = 173\n\tSYS_RT_SIGPROCMASK         = 174\n\tSYS_RT_SIGPENDING          = 175\n\tSYS_RT_SIGTIMEDWAIT        = 176\n\tSYS_RT_SIGQUEUEINFO        = 177\n\tSYS_RT_SIGSUSPEND          = 178\n\tSYS_PREAD64                = 179\n\tSYS_PWRITE64               = 180\n\tSYS_CHOWN                  = 181\n\tSYS_GETCWD                 = 182\n\tSYS_CAPGET                 = 183\n\tSYS_CAPSET                 = 184\n\tSYS_SIGALTSTACK            = 185\n\tSYS_SENDFILE               = 186\n\tSYS_GETPMSG                = 187\n\tSYS_PUTPMSG                = 188\n\tSYS_VFORK                  = 189\n\tSYS_UGETRLIMIT             = 190\n\tSYS_READAHEAD              = 191\n\tSYS_PCICONFIG_READ         = 198\n\tSYS_PCICONFIG_WRITE        = 199\n\tSYS_PCICONFIG_IOBASE       = 200\n\tSYS_MULTIPLEXER            = 201\n\tSYS_GETDENTS64             = 202\n\tSYS_PIVOT_ROOT             = 203\n\tSYS_MADVISE                = 205\n\tSYS_MINCORE                = 206\n\tSYS_GETTID                 = 207\n\tSYS_TKILL                  = 208\n\tSYS_SETXATTR               = 209\n\tSYS_LSETXATTR              = 210\n\tSYS_FSETXATTR              = 211\n\tSYS_GETXATTR               = 212\n\tSYS_LGETXATTR              = 213\n\tSYS_FGETXATTR              = 214\n\tSYS_LISTXATTR              = 215\n\tSYS_LLISTXATTR             = 216\n\tSYS_FLISTXATTR             = 217\n\tSYS_REMOVEXATTR            = 218\n\tSYS_LREMOVEXATTR           = 219\n\tSYS_FREMOVEXATTR           = 220\n\tSYS_FUTEX                  = 221\n\tSYS_SCHED_SETAFFINITY      = 222\n\tSYS_SCHED_GETAFFINITY      = 223\n\tSYS_TUXCALL                = 225\n\tSYS_IO_SETUP               = 227\n\tSYS_IO_DESTROY             = 228\n\tSYS_IO_GETEVENTS           = 229\n\tSYS_IO_SUBMIT              = 230\n\tSYS_IO_CANCEL              = 231\n\tSYS_SET_TID_ADDRESS        = 232\n\tSYS_FADVISE64              = 233\n\tSYS_EXIT_GROUP             = 234\n\tSYS_LOOKUP_DCOOKIE         = 235\n\tSYS_EPOLL_CREATE           = 236\n\tSYS_EPOLL_CTL              = 237\n\tSYS_EPOLL_WAIT             = 238\n\tSYS_REMAP_FILE_PAGES       = 239\n\tSYS_TIMER_CREATE           = 240\n\tSYS_TIMER_SETTIME          = 241\n\tSYS_TIMER_GETTIME          = 242\n\tSYS_TIMER_GETOVERRUN       = 243\n\tSYS_TIMER_DELETE           = 244\n\tSYS_CLOCK_SETTIME          = 245\n\tSYS_CLOCK_GETTIME          = 246\n\tSYS_CLOCK_GETRES           = 247\n\tSYS_CLOCK_NANOSLEEP        = 248\n\tSYS_SWAPCONTEXT            = 249\n\tSYS_TGKILL                 = 250\n\tSYS_UTIMES                 = 251\n\tSYS_STATFS64               = 252\n\tSYS_FSTATFS64              = 253\n\tSYS_RTAS                   = 255\n\tSYS_SYS_DEBUG_SETCONTEXT   = 256\n\tSYS_MIGRATE_PAGES          = 258\n\tSYS_MBIND                  = 259\n\tSYS_GET_MEMPOLICY          = 260\n\tSYS_SET_MEMPOLICY          = 261\n\tSYS_MQ_OPEN                = 262\n\tSYS_MQ_UNLINK              = 263\n\tSYS_MQ_TIMEDSEND           = 264\n\tSYS_MQ_TIMEDRECEIVE        = 265\n\tSYS_MQ_NOTIFY              = 266\n\tSYS_MQ_GETSETATTR          = 267\n\tSYS_KEXEC_LOAD             = 268\n\tSYS_ADD_KEY                = 269\n\tSYS_REQUEST_KEY            = 270\n\tSYS_KEYCTL                 = 271\n\tSYS_WAITID                 = 272\n\tSYS_IOPRIO_SET             = 273\n\tSYS_IOPRIO_GET             = 274\n\tSYS_INOTIFY_INIT           = 275\n\tSYS_INOTIFY_ADD_WATCH      = 276\n\tSYS_INOTIFY_RM_WATCH       = 277\n\tSYS_SPU_RUN                = 278\n\tSYS_SPU_CREATE             = 279\n\tSYS_PSELECT6               = 280\n\tSYS_PPOLL                  = 281\n\tSYS_UNSHARE                = 282\n\tSYS_SPLICE                 = 283\n\tSYS_TEE                    = 284\n\tSYS_VMSPLICE               = 285\n\tSYS_OPENAT                 = 286\n\tSYS_MKDIRAT                = 287\n\tSYS_MKNODAT                = 288\n\tSYS_FCHOWNAT               = 289\n\tSYS_FUTIMESAT              = 290\n\tSYS_NEWFSTATAT             = 291\n\tSYS_UNLINKAT               = 292\n\tSYS_RENAMEAT               = 293\n\tSYS_LINKAT                 = 294\n\tSYS_SYMLINKAT              = 295\n\tSYS_READLINKAT             = 296\n\tSYS_FCHMODAT               = 297\n\tSYS_FACCESSAT              = 298\n\tSYS_GET_ROBUST_LIST        = 299\n\tSYS_SET_ROBUST_LIST        = 300\n\tSYS_MOVE_PAGES             = 301\n\tSYS_GETCPU                 = 302\n\tSYS_EPOLL_PWAIT            = 303\n\tSYS_UTIMENSAT              = 304\n\tSYS_SIGNALFD               = 305\n\tSYS_TIMERFD_CREATE         = 306\n\tSYS_EVENTFD                = 307\n\tSYS_SYNC_FILE_RANGE2       = 308\n\tSYS_FALLOCATE              = 309\n\tSYS_SUBPAGE_PROT           = 310\n\tSYS_TIMERFD_SETTIME        = 311\n\tSYS_TIMERFD_GETTIME        = 312\n\tSYS_SIGNALFD4              = 313\n\tSYS_EVENTFD2               = 314\n\tSYS_EPOLL_CREATE1          = 315\n\tSYS_DUP3                   = 316\n\tSYS_PIPE2                  = 317\n\tSYS_INOTIFY_INIT1          = 318\n\tSYS_PERF_EVENT_OPEN        = 319\n\tSYS_PREADV                 = 320\n\tSYS_PWRITEV                = 321\n\tSYS_RT_TGSIGQUEUEINFO      = 322\n\tSYS_FANOTIFY_INIT          = 323\n\tSYS_FANOTIFY_MARK          = 324\n\tSYS_PRLIMIT64              = 325\n\tSYS_SOCKET                 = 326\n\tSYS_BIND                   = 327\n\tSYS_CONNECT                = 328\n\tSYS_LISTEN                 = 329\n\tSYS_ACCEPT                 = 330\n\tSYS_GETSOCKNAME            = 331\n\tSYS_GETPEERNAME            = 332\n\tSYS_SOCKETPAIR             = 333\n\tSYS_SEND                   = 334\n\tSYS_SENDTO                 = 335\n\tSYS_RECV                   = 336\n\tSYS_RECVFROM               = 337\n\tSYS_SHUTDOWN               = 338\n\tSYS_SETSOCKOPT             = 339\n\tSYS_GETSOCKOPT             = 340\n\tSYS_SENDMSG                = 341\n\tSYS_RECVMSG                = 342\n\tSYS_RECVMMSG               = 343\n\tSYS_ACCEPT4                = 344\n\tSYS_NAME_TO_HANDLE_AT      = 345\n\tSYS_OPEN_BY_HANDLE_AT      = 346\n\tSYS_CLOCK_ADJTIME          = 347\n\tSYS_SYNCFS                 = 348\n\tSYS_SENDMMSG               = 349\n\tSYS_SETNS                  = 350\n\tSYS_PROCESS_VM_READV       = 351\n\tSYS_PROCESS_VM_WRITEV      = 352\n\tSYS_FINIT_MODULE           = 353\n\tSYS_KCMP                   = 354\n\tSYS_SCHED_SETATTR          = 355\n\tSYS_SCHED_GETATTR          = 356\n\tSYS_RENAMEAT2              = 357\n\tSYS_SECCOMP                = 358\n\tSYS_GETRANDOM              = 359\n\tSYS_MEMFD_CREATE           = 360\n\tSYS_BPF                    = 361\n\tSYS_EXECVEAT               = 362\n\tSYS_SWITCH_ENDIAN          = 363\n\tSYS_USERFAULTFD            = 364\n\tSYS_MEMBARRIER             = 365\n\tSYS_MLOCK2                 = 378\n\tSYS_COPY_FILE_RANGE        = 379\n\tSYS_PREADV2                = 380\n\tSYS_PWRITEV2               = 381\n\tSYS_KEXEC_FILE_LOAD        = 382\n\tSYS_STATX                  = 383\n\tSYS_PKEY_ALLOC             = 384\n\tSYS_PKEY_FREE              = 385\n\tSYS_PKEY_MPROTECT          = 386\n\tSYS_RSEQ                   = 387\n\tSYS_IO_PGETEVENTS          = 388\n\tSYS_SEMTIMEDOP             = 392\n\tSYS_SEMGET                 = 393\n\tSYS_SEMCTL                 = 394\n\tSYS_SHMGET                 = 395\n\tSYS_SHMCTL                 = 396\n\tSYS_SHMAT                  = 397\n\tSYS_SHMDT                  = 398\n\tSYS_MSGGET                 = 399\n\tSYS_MSGSND                 = 400\n\tSYS_MSGRCV                 = 401\n\tSYS_MSGCTL                 = 402\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n\tSYS_CLONE3                 = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64le,linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL        = 0\n\tSYS_EXIT                   = 1\n\tSYS_FORK                   = 2\n\tSYS_READ                   = 3\n\tSYS_WRITE                  = 4\n\tSYS_OPEN                   = 5\n\tSYS_CLOSE                  = 6\n\tSYS_WAITPID                = 7\n\tSYS_CREAT                  = 8\n\tSYS_LINK                   = 9\n\tSYS_UNLINK                 = 10\n\tSYS_EXECVE                 = 11\n\tSYS_CHDIR                  = 12\n\tSYS_TIME                   = 13\n\tSYS_MKNOD                  = 14\n\tSYS_CHMOD                  = 15\n\tSYS_LCHOWN                 = 16\n\tSYS_BREAK                  = 17\n\tSYS_OLDSTAT                = 18\n\tSYS_LSEEK                  = 19\n\tSYS_GETPID                 = 20\n\tSYS_MOUNT                  = 21\n\tSYS_UMOUNT                 = 22\n\tSYS_SETUID                 = 23\n\tSYS_GETUID                 = 24\n\tSYS_STIME                  = 25\n\tSYS_PTRACE                 = 26\n\tSYS_ALARM                  = 27\n\tSYS_OLDFSTAT               = 28\n\tSYS_PAUSE                  = 29\n\tSYS_UTIME                  = 30\n\tSYS_STTY                   = 31\n\tSYS_GTTY                   = 32\n\tSYS_ACCESS                 = 33\n\tSYS_NICE                   = 34\n\tSYS_FTIME                  = 35\n\tSYS_SYNC                   = 36\n\tSYS_KILL                   = 37\n\tSYS_RENAME                 = 38\n\tSYS_MKDIR                  = 39\n\tSYS_RMDIR                  = 40\n\tSYS_DUP                    = 41\n\tSYS_PIPE                   = 42\n\tSYS_TIMES                  = 43\n\tSYS_PROF                   = 44\n\tSYS_BRK                    = 45\n\tSYS_SETGID                 = 46\n\tSYS_GETGID                 = 47\n\tSYS_SIGNAL                 = 48\n\tSYS_GETEUID                = 49\n\tSYS_GETEGID                = 50\n\tSYS_ACCT                   = 51\n\tSYS_UMOUNT2                = 52\n\tSYS_LOCK                   = 53\n\tSYS_IOCTL                  = 54\n\tSYS_FCNTL                  = 55\n\tSYS_MPX                    = 56\n\tSYS_SETPGID                = 57\n\tSYS_ULIMIT                 = 58\n\tSYS_OLDOLDUNAME            = 59\n\tSYS_UMASK                  = 60\n\tSYS_CHROOT                 = 61\n\tSYS_USTAT                  = 62\n\tSYS_DUP2                   = 63\n\tSYS_GETPPID                = 64\n\tSYS_GETPGRP                = 65\n\tSYS_SETSID                 = 66\n\tSYS_SIGACTION              = 67\n\tSYS_SGETMASK               = 68\n\tSYS_SSETMASK               = 69\n\tSYS_SETREUID               = 70\n\tSYS_SETREGID               = 71\n\tSYS_SIGSUSPEND             = 72\n\tSYS_SIGPENDING             = 73\n\tSYS_SETHOSTNAME            = 74\n\tSYS_SETRLIMIT              = 75\n\tSYS_GETRLIMIT              = 76\n\tSYS_GETRUSAGE              = 77\n\tSYS_GETTIMEOFDAY           = 78\n\tSYS_SETTIMEOFDAY           = 79\n\tSYS_GETGROUPS              = 80\n\tSYS_SETGROUPS              = 81\n\tSYS_SELECT                 = 82\n\tSYS_SYMLINK                = 83\n\tSYS_OLDLSTAT               = 84\n\tSYS_READLINK               = 85\n\tSYS_USELIB                 = 86\n\tSYS_SWAPON                 = 87\n\tSYS_REBOOT                 = 88\n\tSYS_READDIR                = 89\n\tSYS_MMAP                   = 90\n\tSYS_MUNMAP                 = 91\n\tSYS_TRUNCATE               = 92\n\tSYS_FTRUNCATE              = 93\n\tSYS_FCHMOD                 = 94\n\tSYS_FCHOWN                 = 95\n\tSYS_GETPRIORITY            = 96\n\tSYS_SETPRIORITY            = 97\n\tSYS_PROFIL                 = 98\n\tSYS_STATFS                 = 99\n\tSYS_FSTATFS                = 100\n\tSYS_IOPERM                 = 101\n\tSYS_SOCKETCALL             = 102\n\tSYS_SYSLOG                 = 103\n\tSYS_SETITIMER              = 104\n\tSYS_GETITIMER              = 105\n\tSYS_STAT                   = 106\n\tSYS_LSTAT                  = 107\n\tSYS_FSTAT                  = 108\n\tSYS_OLDUNAME               = 109\n\tSYS_IOPL                   = 110\n\tSYS_VHANGUP                = 111\n\tSYS_IDLE                   = 112\n\tSYS_VM86                   = 113\n\tSYS_WAIT4                  = 114\n\tSYS_SWAPOFF                = 115\n\tSYS_SYSINFO                = 116\n\tSYS_IPC                    = 117\n\tSYS_FSYNC                  = 118\n\tSYS_SIGRETURN              = 119\n\tSYS_CLONE                  = 120\n\tSYS_SETDOMAINNAME          = 121\n\tSYS_UNAME                  = 122\n\tSYS_MODIFY_LDT             = 123\n\tSYS_ADJTIMEX               = 124\n\tSYS_MPROTECT               = 125\n\tSYS_SIGPROCMASK            = 126\n\tSYS_CREATE_MODULE          = 127\n\tSYS_INIT_MODULE            = 128\n\tSYS_DELETE_MODULE          = 129\n\tSYS_GET_KERNEL_SYMS        = 130\n\tSYS_QUOTACTL               = 131\n\tSYS_GETPGID                = 132\n\tSYS_FCHDIR                 = 133\n\tSYS_BDFLUSH                = 134\n\tSYS_SYSFS                  = 135\n\tSYS_PERSONALITY            = 136\n\tSYS_AFS_SYSCALL            = 137\n\tSYS_SETFSUID               = 138\n\tSYS_SETFSGID               = 139\n\tSYS__LLSEEK                = 140\n\tSYS_GETDENTS               = 141\n\tSYS__NEWSELECT             = 142\n\tSYS_FLOCK                  = 143\n\tSYS_MSYNC                  = 144\n\tSYS_READV                  = 145\n\tSYS_WRITEV                 = 146\n\tSYS_GETSID                 = 147\n\tSYS_FDATASYNC              = 148\n\tSYS__SYSCTL                = 149\n\tSYS_MLOCK                  = 150\n\tSYS_MUNLOCK                = 151\n\tSYS_MLOCKALL               = 152\n\tSYS_MUNLOCKALL             = 153\n\tSYS_SCHED_SETPARAM         = 154\n\tSYS_SCHED_GETPARAM         = 155\n\tSYS_SCHED_SETSCHEDULER     = 156\n\tSYS_SCHED_GETSCHEDULER     = 157\n\tSYS_SCHED_YIELD            = 158\n\tSYS_SCHED_GET_PRIORITY_MAX = 159\n\tSYS_SCHED_GET_PRIORITY_MIN = 160\n\tSYS_SCHED_RR_GET_INTERVAL  = 161\n\tSYS_NANOSLEEP              = 162\n\tSYS_MREMAP                 = 163\n\tSYS_SETRESUID              = 164\n\tSYS_GETRESUID              = 165\n\tSYS_QUERY_MODULE           = 166\n\tSYS_POLL                   = 167\n\tSYS_NFSSERVCTL             = 168\n\tSYS_SETRESGID              = 169\n\tSYS_GETRESGID              = 170\n\tSYS_PRCTL                  = 171\n\tSYS_RT_SIGRETURN           = 172\n\tSYS_RT_SIGACTION           = 173\n\tSYS_RT_SIGPROCMASK         = 174\n\tSYS_RT_SIGPENDING          = 175\n\tSYS_RT_SIGTIMEDWAIT        = 176\n\tSYS_RT_SIGQUEUEINFO        = 177\n\tSYS_RT_SIGSUSPEND          = 178\n\tSYS_PREAD64                = 179\n\tSYS_PWRITE64               = 180\n\tSYS_CHOWN                  = 181\n\tSYS_GETCWD                 = 182\n\tSYS_CAPGET                 = 183\n\tSYS_CAPSET                 = 184\n\tSYS_SIGALTSTACK            = 185\n\tSYS_SENDFILE               = 186\n\tSYS_GETPMSG                = 187\n\tSYS_PUTPMSG                = 188\n\tSYS_VFORK                  = 189\n\tSYS_UGETRLIMIT             = 190\n\tSYS_READAHEAD              = 191\n\tSYS_PCICONFIG_READ         = 198\n\tSYS_PCICONFIG_WRITE        = 199\n\tSYS_PCICONFIG_IOBASE       = 200\n\tSYS_MULTIPLEXER            = 201\n\tSYS_GETDENTS64             = 202\n\tSYS_PIVOT_ROOT             = 203\n\tSYS_MADVISE                = 205\n\tSYS_MINCORE                = 206\n\tSYS_GETTID                 = 207\n\tSYS_TKILL                  = 208\n\tSYS_SETXATTR               = 209\n\tSYS_LSETXATTR              = 210\n\tSYS_FSETXATTR              = 211\n\tSYS_GETXATTR               = 212\n\tSYS_LGETXATTR              = 213\n\tSYS_FGETXATTR              = 214\n\tSYS_LISTXATTR              = 215\n\tSYS_LLISTXATTR             = 216\n\tSYS_FLISTXATTR             = 217\n\tSYS_REMOVEXATTR            = 218\n\tSYS_LREMOVEXATTR           = 219\n\tSYS_FREMOVEXATTR           = 220\n\tSYS_FUTEX                  = 221\n\tSYS_SCHED_SETAFFINITY      = 222\n\tSYS_SCHED_GETAFFINITY      = 223\n\tSYS_TUXCALL                = 225\n\tSYS_IO_SETUP               = 227\n\tSYS_IO_DESTROY             = 228\n\tSYS_IO_GETEVENTS           = 229\n\tSYS_IO_SUBMIT              = 230\n\tSYS_IO_CANCEL              = 231\n\tSYS_SET_TID_ADDRESS        = 232\n\tSYS_FADVISE64              = 233\n\tSYS_EXIT_GROUP             = 234\n\tSYS_LOOKUP_DCOOKIE         = 235\n\tSYS_EPOLL_CREATE           = 236\n\tSYS_EPOLL_CTL              = 237\n\tSYS_EPOLL_WAIT             = 238\n\tSYS_REMAP_FILE_PAGES       = 239\n\tSYS_TIMER_CREATE           = 240\n\tSYS_TIMER_SETTIME          = 241\n\tSYS_TIMER_GETTIME          = 242\n\tSYS_TIMER_GETOVERRUN       = 243\n\tSYS_TIMER_DELETE           = 244\n\tSYS_CLOCK_SETTIME          = 245\n\tSYS_CLOCK_GETTIME          = 246\n\tSYS_CLOCK_GETRES           = 247\n\tSYS_CLOCK_NANOSLEEP        = 248\n\tSYS_SWAPCONTEXT            = 249\n\tSYS_TGKILL                 = 250\n\tSYS_UTIMES                 = 251\n\tSYS_STATFS64               = 252\n\tSYS_FSTATFS64              = 253\n\tSYS_RTAS                   = 255\n\tSYS_SYS_DEBUG_SETCONTEXT   = 256\n\tSYS_MIGRATE_PAGES          = 258\n\tSYS_MBIND                  = 259\n\tSYS_GET_MEMPOLICY          = 260\n\tSYS_SET_MEMPOLICY          = 261\n\tSYS_MQ_OPEN                = 262\n\tSYS_MQ_UNLINK              = 263\n\tSYS_MQ_TIMEDSEND           = 264\n\tSYS_MQ_TIMEDRECEIVE        = 265\n\tSYS_MQ_NOTIFY              = 266\n\tSYS_MQ_GETSETATTR          = 267\n\tSYS_KEXEC_LOAD             = 268\n\tSYS_ADD_KEY                = 269\n\tSYS_REQUEST_KEY            = 270\n\tSYS_KEYCTL                 = 271\n\tSYS_WAITID                 = 272\n\tSYS_IOPRIO_SET             = 273\n\tSYS_IOPRIO_GET             = 274\n\tSYS_INOTIFY_INIT           = 275\n\tSYS_INOTIFY_ADD_WATCH      = 276\n\tSYS_INOTIFY_RM_WATCH       = 277\n\tSYS_SPU_RUN                = 278\n\tSYS_SPU_CREATE             = 279\n\tSYS_PSELECT6               = 280\n\tSYS_PPOLL                  = 281\n\tSYS_UNSHARE                = 282\n\tSYS_SPLICE                 = 283\n\tSYS_TEE                    = 284\n\tSYS_VMSPLICE               = 285\n\tSYS_OPENAT                 = 286\n\tSYS_MKDIRAT                = 287\n\tSYS_MKNODAT                = 288\n\tSYS_FCHOWNAT               = 289\n\tSYS_FUTIMESAT              = 290\n\tSYS_NEWFSTATAT             = 291\n\tSYS_UNLINKAT               = 292\n\tSYS_RENAMEAT               = 293\n\tSYS_LINKAT                 = 294\n\tSYS_SYMLINKAT              = 295\n\tSYS_READLINKAT             = 296\n\tSYS_FCHMODAT               = 297\n\tSYS_FACCESSAT              = 298\n\tSYS_GET_ROBUST_LIST        = 299\n\tSYS_SET_ROBUST_LIST        = 300\n\tSYS_MOVE_PAGES             = 301\n\tSYS_GETCPU                 = 302\n\tSYS_EPOLL_PWAIT            = 303\n\tSYS_UTIMENSAT              = 304\n\tSYS_SIGNALFD               = 305\n\tSYS_TIMERFD_CREATE         = 306\n\tSYS_EVENTFD                = 307\n\tSYS_SYNC_FILE_RANGE2       = 308\n\tSYS_FALLOCATE              = 309\n\tSYS_SUBPAGE_PROT           = 310\n\tSYS_TIMERFD_SETTIME        = 311\n\tSYS_TIMERFD_GETTIME        = 312\n\tSYS_SIGNALFD4              = 313\n\tSYS_EVENTFD2               = 314\n\tSYS_EPOLL_CREATE1          = 315\n\tSYS_DUP3                   = 316\n\tSYS_PIPE2                  = 317\n\tSYS_INOTIFY_INIT1          = 318\n\tSYS_PERF_EVENT_OPEN        = 319\n\tSYS_PREADV                 = 320\n\tSYS_PWRITEV                = 321\n\tSYS_RT_TGSIGQUEUEINFO      = 322\n\tSYS_FANOTIFY_INIT          = 323\n\tSYS_FANOTIFY_MARK          = 324\n\tSYS_PRLIMIT64              = 325\n\tSYS_SOCKET                 = 326\n\tSYS_BIND                   = 327\n\tSYS_CONNECT                = 328\n\tSYS_LISTEN                 = 329\n\tSYS_ACCEPT                 = 330\n\tSYS_GETSOCKNAME            = 331\n\tSYS_GETPEERNAME            = 332\n\tSYS_SOCKETPAIR             = 333\n\tSYS_SEND                   = 334\n\tSYS_SENDTO                 = 335\n\tSYS_RECV                   = 336\n\tSYS_RECVFROM               = 337\n\tSYS_SHUTDOWN               = 338\n\tSYS_SETSOCKOPT             = 339\n\tSYS_GETSOCKOPT             = 340\n\tSYS_SENDMSG                = 341\n\tSYS_RECVMSG                = 342\n\tSYS_RECVMMSG               = 343\n\tSYS_ACCEPT4                = 344\n\tSYS_NAME_TO_HANDLE_AT      = 345\n\tSYS_OPEN_BY_HANDLE_AT      = 346\n\tSYS_CLOCK_ADJTIME          = 347\n\tSYS_SYNCFS                 = 348\n\tSYS_SENDMMSG               = 349\n\tSYS_SETNS                  = 350\n\tSYS_PROCESS_VM_READV       = 351\n\tSYS_PROCESS_VM_WRITEV      = 352\n\tSYS_FINIT_MODULE           = 353\n\tSYS_KCMP                   = 354\n\tSYS_SCHED_SETATTR          = 355\n\tSYS_SCHED_GETATTR          = 356\n\tSYS_RENAMEAT2              = 357\n\tSYS_SECCOMP                = 358\n\tSYS_GETRANDOM              = 359\n\tSYS_MEMFD_CREATE           = 360\n\tSYS_BPF                    = 361\n\tSYS_EXECVEAT               = 362\n\tSYS_SWITCH_ENDIAN          = 363\n\tSYS_USERFAULTFD            = 364\n\tSYS_MEMBARRIER             = 365\n\tSYS_MLOCK2                 = 378\n\tSYS_COPY_FILE_RANGE        = 379\n\tSYS_PREADV2                = 380\n\tSYS_PWRITEV2               = 381\n\tSYS_KEXEC_FILE_LOAD        = 382\n\tSYS_STATX                  = 383\n\tSYS_PKEY_ALLOC             = 384\n\tSYS_PKEY_FREE              = 385\n\tSYS_PKEY_MPROTECT          = 386\n\tSYS_RSEQ                   = 387\n\tSYS_IO_PGETEVENTS          = 388\n\tSYS_SEMTIMEDOP             = 392\n\tSYS_SEMGET                 = 393\n\tSYS_SEMCTL                 = 394\n\tSYS_SHMGET                 = 395\n\tSYS_SHMCTL                 = 396\n\tSYS_SHMAT                  = 397\n\tSYS_SHMDT                  = 398\n\tSYS_MSGGET                 = 399\n\tSYS_MSGSND                 = 400\n\tSYS_MSGRCV                 = 401\n\tSYS_MSGCTL                 = 402\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n\tSYS_CLONE3                 = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build riscv64,linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP               = 0\n\tSYS_IO_DESTROY             = 1\n\tSYS_IO_SUBMIT              = 2\n\tSYS_IO_CANCEL              = 3\n\tSYS_IO_GETEVENTS           = 4\n\tSYS_SETXATTR               = 5\n\tSYS_LSETXATTR              = 6\n\tSYS_FSETXATTR              = 7\n\tSYS_GETXATTR               = 8\n\tSYS_LGETXATTR              = 9\n\tSYS_FGETXATTR              = 10\n\tSYS_LISTXATTR              = 11\n\tSYS_LLISTXATTR             = 12\n\tSYS_FLISTXATTR             = 13\n\tSYS_REMOVEXATTR            = 14\n\tSYS_LREMOVEXATTR           = 15\n\tSYS_FREMOVEXATTR           = 16\n\tSYS_GETCWD                 = 17\n\tSYS_LOOKUP_DCOOKIE         = 18\n\tSYS_EVENTFD2               = 19\n\tSYS_EPOLL_CREATE1          = 20\n\tSYS_EPOLL_CTL              = 21\n\tSYS_EPOLL_PWAIT            = 22\n\tSYS_DUP                    = 23\n\tSYS_DUP3                   = 24\n\tSYS_FCNTL                  = 25\n\tSYS_INOTIFY_INIT1          = 26\n\tSYS_INOTIFY_ADD_WATCH      = 27\n\tSYS_INOTIFY_RM_WATCH       = 28\n\tSYS_IOCTL                  = 29\n\tSYS_IOPRIO_SET             = 30\n\tSYS_IOPRIO_GET             = 31\n\tSYS_FLOCK                  = 32\n\tSYS_MKNODAT                = 33\n\tSYS_MKDIRAT                = 34\n\tSYS_UNLINKAT               = 35\n\tSYS_SYMLINKAT              = 36\n\tSYS_LINKAT                 = 37\n\tSYS_UMOUNT2                = 39\n\tSYS_MOUNT                  = 40\n\tSYS_PIVOT_ROOT             = 41\n\tSYS_NFSSERVCTL             = 42\n\tSYS_STATFS                 = 43\n\tSYS_FSTATFS                = 44\n\tSYS_TRUNCATE               = 45\n\tSYS_FTRUNCATE              = 46\n\tSYS_FALLOCATE              = 47\n\tSYS_FACCESSAT              = 48\n\tSYS_CHDIR                  = 49\n\tSYS_FCHDIR                 = 50\n\tSYS_CHROOT                 = 51\n\tSYS_FCHMOD                 = 52\n\tSYS_FCHMODAT               = 53\n\tSYS_FCHOWNAT               = 54\n\tSYS_FCHOWN                 = 55\n\tSYS_OPENAT                 = 56\n\tSYS_CLOSE                  = 57\n\tSYS_VHANGUP                = 58\n\tSYS_PIPE2                  = 59\n\tSYS_QUOTACTL               = 60\n\tSYS_GETDENTS64             = 61\n\tSYS_LSEEK                  = 62\n\tSYS_READ                   = 63\n\tSYS_WRITE                  = 64\n\tSYS_READV                  = 65\n\tSYS_WRITEV                 = 66\n\tSYS_PREAD64                = 67\n\tSYS_PWRITE64               = 68\n\tSYS_PREADV                 = 69\n\tSYS_PWRITEV                = 70\n\tSYS_SENDFILE               = 71\n\tSYS_PSELECT6               = 72\n\tSYS_PPOLL                  = 73\n\tSYS_SIGNALFD4              = 74\n\tSYS_VMSPLICE               = 75\n\tSYS_SPLICE                 = 76\n\tSYS_TEE                    = 77\n\tSYS_READLINKAT             = 78\n\tSYS_FSTATAT                = 79\n\tSYS_FSTAT                  = 80\n\tSYS_SYNC                   = 81\n\tSYS_FSYNC                  = 82\n\tSYS_FDATASYNC              = 83\n\tSYS_SYNC_FILE_RANGE        = 84\n\tSYS_TIMERFD_CREATE         = 85\n\tSYS_TIMERFD_SETTIME        = 86\n\tSYS_TIMERFD_GETTIME        = 87\n\tSYS_UTIMENSAT              = 88\n\tSYS_ACCT                   = 89\n\tSYS_CAPGET                 = 90\n\tSYS_CAPSET                 = 91\n\tSYS_PERSONALITY            = 92\n\tSYS_EXIT                   = 93\n\tSYS_EXIT_GROUP             = 94\n\tSYS_WAITID                 = 95\n\tSYS_SET_TID_ADDRESS        = 96\n\tSYS_UNSHARE                = 97\n\tSYS_FUTEX                  = 98\n\tSYS_SET_ROBUST_LIST        = 99\n\tSYS_GET_ROBUST_LIST        = 100\n\tSYS_NANOSLEEP              = 101\n\tSYS_GETITIMER              = 102\n\tSYS_SETITIMER              = 103\n\tSYS_KEXEC_LOAD             = 104\n\tSYS_INIT_MODULE            = 105\n\tSYS_DELETE_MODULE          = 106\n\tSYS_TIMER_CREATE           = 107\n\tSYS_TIMER_GETTIME          = 108\n\tSYS_TIMER_GETOVERRUN       = 109\n\tSYS_TIMER_SETTIME          = 110\n\tSYS_TIMER_DELETE           = 111\n\tSYS_CLOCK_SETTIME          = 112\n\tSYS_CLOCK_GETTIME          = 113\n\tSYS_CLOCK_GETRES           = 114\n\tSYS_CLOCK_NANOSLEEP        = 115\n\tSYS_SYSLOG                 = 116\n\tSYS_PTRACE                 = 117\n\tSYS_SCHED_SETPARAM         = 118\n\tSYS_SCHED_SETSCHEDULER     = 119\n\tSYS_SCHED_GETSCHEDULER     = 120\n\tSYS_SCHED_GETPARAM         = 121\n\tSYS_SCHED_SETAFFINITY      = 122\n\tSYS_SCHED_GETAFFINITY      = 123\n\tSYS_SCHED_YIELD            = 124\n\tSYS_SCHED_GET_PRIORITY_MAX = 125\n\tSYS_SCHED_GET_PRIORITY_MIN = 126\n\tSYS_SCHED_RR_GET_INTERVAL  = 127\n\tSYS_RESTART_SYSCALL        = 128\n\tSYS_KILL                   = 129\n\tSYS_TKILL                  = 130\n\tSYS_TGKILL                 = 131\n\tSYS_SIGALTSTACK            = 132\n\tSYS_RT_SIGSUSPEND          = 133\n\tSYS_RT_SIGACTION           = 134\n\tSYS_RT_SIGPROCMASK         = 135\n\tSYS_RT_SIGPENDING          = 136\n\tSYS_RT_SIGTIMEDWAIT        = 137\n\tSYS_RT_SIGQUEUEINFO        = 138\n\tSYS_RT_SIGRETURN           = 139\n\tSYS_SETPRIORITY            = 140\n\tSYS_GETPRIORITY            = 141\n\tSYS_REBOOT                 = 142\n\tSYS_SETREGID               = 143\n\tSYS_SETGID                 = 144\n\tSYS_SETREUID               = 145\n\tSYS_SETUID                 = 146\n\tSYS_SETRESUID              = 147\n\tSYS_GETRESUID              = 148\n\tSYS_SETRESGID              = 149\n\tSYS_GETRESGID              = 150\n\tSYS_SETFSUID               = 151\n\tSYS_SETFSGID               = 152\n\tSYS_TIMES                  = 153\n\tSYS_SETPGID                = 154\n\tSYS_GETPGID                = 155\n\tSYS_GETSID                 = 156\n\tSYS_SETSID                 = 157\n\tSYS_GETGROUPS              = 158\n\tSYS_SETGROUPS              = 159\n\tSYS_UNAME                  = 160\n\tSYS_SETHOSTNAME            = 161\n\tSYS_SETDOMAINNAME          = 162\n\tSYS_GETRLIMIT              = 163\n\tSYS_SETRLIMIT              = 164\n\tSYS_GETRUSAGE              = 165\n\tSYS_UMASK                  = 166\n\tSYS_PRCTL                  = 167\n\tSYS_GETCPU                 = 168\n\tSYS_GETTIMEOFDAY           = 169\n\tSYS_SETTIMEOFDAY           = 170\n\tSYS_ADJTIMEX               = 171\n\tSYS_GETPID                 = 172\n\tSYS_GETPPID                = 173\n\tSYS_GETUID                 = 174\n\tSYS_GETEUID                = 175\n\tSYS_GETGID                 = 176\n\tSYS_GETEGID                = 177\n\tSYS_GETTID                 = 178\n\tSYS_SYSINFO                = 179\n\tSYS_MQ_OPEN                = 180\n\tSYS_MQ_UNLINK              = 181\n\tSYS_MQ_TIMEDSEND           = 182\n\tSYS_MQ_TIMEDRECEIVE        = 183\n\tSYS_MQ_NOTIFY              = 184\n\tSYS_MQ_GETSETATTR          = 185\n\tSYS_MSGGET                 = 186\n\tSYS_MSGCTL                 = 187\n\tSYS_MSGRCV                 = 188\n\tSYS_MSGSND                 = 189\n\tSYS_SEMGET                 = 190\n\tSYS_SEMCTL                 = 191\n\tSYS_SEMTIMEDOP             = 192\n\tSYS_SEMOP                  = 193\n\tSYS_SHMGET                 = 194\n\tSYS_SHMCTL                 = 195\n\tSYS_SHMAT                  = 196\n\tSYS_SHMDT                  = 197\n\tSYS_SOCKET                 = 198\n\tSYS_SOCKETPAIR             = 199\n\tSYS_BIND                   = 200\n\tSYS_LISTEN                 = 201\n\tSYS_ACCEPT                 = 202\n\tSYS_CONNECT                = 203\n\tSYS_GETSOCKNAME            = 204\n\tSYS_GETPEERNAME            = 205\n\tSYS_SENDTO                 = 206\n\tSYS_RECVFROM               = 207\n\tSYS_SETSOCKOPT             = 208\n\tSYS_GETSOCKOPT             = 209\n\tSYS_SHUTDOWN               = 210\n\tSYS_SENDMSG                = 211\n\tSYS_RECVMSG                = 212\n\tSYS_READAHEAD              = 213\n\tSYS_BRK                    = 214\n\tSYS_MUNMAP                 = 215\n\tSYS_MREMAP                 = 216\n\tSYS_ADD_KEY                = 217\n\tSYS_REQUEST_KEY            = 218\n\tSYS_KEYCTL                 = 219\n\tSYS_CLONE                  = 220\n\tSYS_EXECVE                 = 221\n\tSYS_MMAP                   = 222\n\tSYS_FADVISE64              = 223\n\tSYS_SWAPON                 = 224\n\tSYS_SWAPOFF                = 225\n\tSYS_MPROTECT               = 226\n\tSYS_MSYNC                  = 227\n\tSYS_MLOCK                  = 228\n\tSYS_MUNLOCK                = 229\n\tSYS_MLOCKALL               = 230\n\tSYS_MUNLOCKALL             = 231\n\tSYS_MINCORE                = 232\n\tSYS_MADVISE                = 233\n\tSYS_REMAP_FILE_PAGES       = 234\n\tSYS_MBIND                  = 235\n\tSYS_GET_MEMPOLICY          = 236\n\tSYS_SET_MEMPOLICY          = 237\n\tSYS_MIGRATE_PAGES          = 238\n\tSYS_MOVE_PAGES             = 239\n\tSYS_RT_TGSIGQUEUEINFO      = 240\n\tSYS_PERF_EVENT_OPEN        = 241\n\tSYS_ACCEPT4                = 242\n\tSYS_RECVMMSG               = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL  = 244\n\tSYS_WAIT4                  = 260\n\tSYS_PRLIMIT64              = 261\n\tSYS_FANOTIFY_INIT          = 262\n\tSYS_FANOTIFY_MARK          = 263\n\tSYS_NAME_TO_HANDLE_AT      = 264\n\tSYS_OPEN_BY_HANDLE_AT      = 265\n\tSYS_CLOCK_ADJTIME          = 266\n\tSYS_SYNCFS                 = 267\n\tSYS_SETNS                  = 268\n\tSYS_SENDMMSG               = 269\n\tSYS_PROCESS_VM_READV       = 270\n\tSYS_PROCESS_VM_WRITEV      = 271\n\tSYS_KCMP                   = 272\n\tSYS_FINIT_MODULE           = 273\n\tSYS_SCHED_SETATTR          = 274\n\tSYS_SCHED_GETATTR          = 275\n\tSYS_RENAMEAT2              = 276\n\tSYS_SECCOMP                = 277\n\tSYS_GETRANDOM              = 278\n\tSYS_MEMFD_CREATE           = 279\n\tSYS_BPF                    = 280\n\tSYS_EXECVEAT               = 281\n\tSYS_USERFAULTFD            = 282\n\tSYS_MEMBARRIER             = 283\n\tSYS_MLOCK2                 = 284\n\tSYS_COPY_FILE_RANGE        = 285\n\tSYS_PREADV2                = 286\n\tSYS_PWRITEV2               = 287\n\tSYS_PKEY_MPROTECT          = 288\n\tSYS_PKEY_ALLOC             = 289\n\tSYS_PKEY_FREE              = 290\n\tSYS_STATX                  = 291\n\tSYS_IO_PGETEVENTS          = 292\n\tSYS_RSEQ                   = 293\n\tSYS_KEXEC_FILE_LOAD        = 294\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n\tSYS_CLONE3                 = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build s390x,linux\n\npackage unix\n\nconst (\n\tSYS_EXIT                   = 1\n\tSYS_FORK                   = 2\n\tSYS_READ                   = 3\n\tSYS_WRITE                  = 4\n\tSYS_OPEN                   = 5\n\tSYS_CLOSE                  = 6\n\tSYS_RESTART_SYSCALL        = 7\n\tSYS_CREAT                  = 8\n\tSYS_LINK                   = 9\n\tSYS_UNLINK                 = 10\n\tSYS_EXECVE                 = 11\n\tSYS_CHDIR                  = 12\n\tSYS_MKNOD                  = 14\n\tSYS_CHMOD                  = 15\n\tSYS_LSEEK                  = 19\n\tSYS_GETPID                 = 20\n\tSYS_MOUNT                  = 21\n\tSYS_UMOUNT                 = 22\n\tSYS_PTRACE                 = 26\n\tSYS_ALARM                  = 27\n\tSYS_PAUSE                  = 29\n\tSYS_UTIME                  = 30\n\tSYS_ACCESS                 = 33\n\tSYS_NICE                   = 34\n\tSYS_SYNC                   = 36\n\tSYS_KILL                   = 37\n\tSYS_RENAME                 = 38\n\tSYS_MKDIR                  = 39\n\tSYS_RMDIR                  = 40\n\tSYS_DUP                    = 41\n\tSYS_PIPE                   = 42\n\tSYS_TIMES                  = 43\n\tSYS_BRK                    = 45\n\tSYS_SIGNAL                 = 48\n\tSYS_ACCT                   = 51\n\tSYS_UMOUNT2                = 52\n\tSYS_IOCTL                  = 54\n\tSYS_FCNTL                  = 55\n\tSYS_SETPGID                = 57\n\tSYS_UMASK                  = 60\n\tSYS_CHROOT                 = 61\n\tSYS_USTAT                  = 62\n\tSYS_DUP2                   = 63\n\tSYS_GETPPID                = 64\n\tSYS_GETPGRP                = 65\n\tSYS_SETSID                 = 66\n\tSYS_SIGACTION              = 67\n\tSYS_SIGSUSPEND             = 72\n\tSYS_SIGPENDING             = 73\n\tSYS_SETHOSTNAME            = 74\n\tSYS_SETRLIMIT              = 75\n\tSYS_GETRUSAGE              = 77\n\tSYS_GETTIMEOFDAY           = 78\n\tSYS_SETTIMEOFDAY           = 79\n\tSYS_SYMLINK                = 83\n\tSYS_READLINK               = 85\n\tSYS_USELIB                 = 86\n\tSYS_SWAPON                 = 87\n\tSYS_REBOOT                 = 88\n\tSYS_READDIR                = 89\n\tSYS_MMAP                   = 90\n\tSYS_MUNMAP                 = 91\n\tSYS_TRUNCATE               = 92\n\tSYS_FTRUNCATE              = 93\n\tSYS_FCHMOD                 = 94\n\tSYS_GETPRIORITY            = 96\n\tSYS_SETPRIORITY            = 97\n\tSYS_STATFS                 = 99\n\tSYS_FSTATFS                = 100\n\tSYS_SOCKETCALL             = 102\n\tSYS_SYSLOG                 = 103\n\tSYS_SETITIMER              = 104\n\tSYS_GETITIMER              = 105\n\tSYS_STAT                   = 106\n\tSYS_LSTAT                  = 107\n\tSYS_FSTAT                  = 108\n\tSYS_LOOKUP_DCOOKIE         = 110\n\tSYS_VHANGUP                = 111\n\tSYS_IDLE                   = 112\n\tSYS_WAIT4                  = 114\n\tSYS_SWAPOFF                = 115\n\tSYS_SYSINFO                = 116\n\tSYS_IPC                    = 117\n\tSYS_FSYNC                  = 118\n\tSYS_SIGRETURN              = 119\n\tSYS_CLONE                  = 120\n\tSYS_SETDOMAINNAME          = 121\n\tSYS_UNAME                  = 122\n\tSYS_ADJTIMEX               = 124\n\tSYS_MPROTECT               = 125\n\tSYS_SIGPROCMASK            = 126\n\tSYS_CREATE_MODULE          = 127\n\tSYS_INIT_MODULE            = 128\n\tSYS_DELETE_MODULE          = 129\n\tSYS_GET_KERNEL_SYMS        = 130\n\tSYS_QUOTACTL               = 131\n\tSYS_GETPGID                = 132\n\tSYS_FCHDIR                 = 133\n\tSYS_BDFLUSH                = 134\n\tSYS_SYSFS                  = 135\n\tSYS_PERSONALITY            = 136\n\tSYS_AFS_SYSCALL            = 137\n\tSYS_GETDENTS               = 141\n\tSYS_SELECT                 = 142\n\tSYS_FLOCK                  = 143\n\tSYS_MSYNC                  = 144\n\tSYS_READV                  = 145\n\tSYS_WRITEV                 = 146\n\tSYS_GETSID                 = 147\n\tSYS_FDATASYNC              = 148\n\tSYS__SYSCTL                = 149\n\tSYS_MLOCK                  = 150\n\tSYS_MUNLOCK                = 151\n\tSYS_MLOCKALL               = 152\n\tSYS_MUNLOCKALL             = 153\n\tSYS_SCHED_SETPARAM         = 154\n\tSYS_SCHED_GETPARAM         = 155\n\tSYS_SCHED_SETSCHEDULER     = 156\n\tSYS_SCHED_GETSCHEDULER     = 157\n\tSYS_SCHED_YIELD            = 158\n\tSYS_SCHED_GET_PRIORITY_MAX = 159\n\tSYS_SCHED_GET_PRIORITY_MIN = 160\n\tSYS_SCHED_RR_GET_INTERVAL  = 161\n\tSYS_NANOSLEEP              = 162\n\tSYS_MREMAP                 = 163\n\tSYS_QUERY_MODULE           = 167\n\tSYS_POLL                   = 168\n\tSYS_NFSSERVCTL             = 169\n\tSYS_PRCTL                  = 172\n\tSYS_RT_SIGRETURN           = 173\n\tSYS_RT_SIGACTION           = 174\n\tSYS_RT_SIGPROCMASK         = 175\n\tSYS_RT_SIGPENDING          = 176\n\tSYS_RT_SIGTIMEDWAIT        = 177\n\tSYS_RT_SIGQUEUEINFO        = 178\n\tSYS_RT_SIGSUSPEND          = 179\n\tSYS_PREAD64                = 180\n\tSYS_PWRITE64               = 181\n\tSYS_GETCWD                 = 183\n\tSYS_CAPGET                 = 184\n\tSYS_CAPSET                 = 185\n\tSYS_SIGALTSTACK            = 186\n\tSYS_SENDFILE               = 187\n\tSYS_GETPMSG                = 188\n\tSYS_PUTPMSG                = 189\n\tSYS_VFORK                  = 190\n\tSYS_GETRLIMIT              = 191\n\tSYS_LCHOWN                 = 198\n\tSYS_GETUID                 = 199\n\tSYS_GETGID                 = 200\n\tSYS_GETEUID                = 201\n\tSYS_GETEGID                = 202\n\tSYS_SETREUID               = 203\n\tSYS_SETREGID               = 204\n\tSYS_GETGROUPS              = 205\n\tSYS_SETGROUPS              = 206\n\tSYS_FCHOWN                 = 207\n\tSYS_SETRESUID              = 208\n\tSYS_GETRESUID              = 209\n\tSYS_SETRESGID              = 210\n\tSYS_GETRESGID              = 211\n\tSYS_CHOWN                  = 212\n\tSYS_SETUID                 = 213\n\tSYS_SETGID                 = 214\n\tSYS_SETFSUID               = 215\n\tSYS_SETFSGID               = 216\n\tSYS_PIVOT_ROOT             = 217\n\tSYS_MINCORE                = 218\n\tSYS_MADVISE                = 219\n\tSYS_GETDENTS64             = 220\n\tSYS_READAHEAD              = 222\n\tSYS_SETXATTR               = 224\n\tSYS_LSETXATTR              = 225\n\tSYS_FSETXATTR              = 226\n\tSYS_GETXATTR               = 227\n\tSYS_LGETXATTR              = 228\n\tSYS_FGETXATTR              = 229\n\tSYS_LISTXATTR              = 230\n\tSYS_LLISTXATTR             = 231\n\tSYS_FLISTXATTR             = 232\n\tSYS_REMOVEXATTR            = 233\n\tSYS_LREMOVEXATTR           = 234\n\tSYS_FREMOVEXATTR           = 235\n\tSYS_GETTID                 = 236\n\tSYS_TKILL                  = 237\n\tSYS_FUTEX                  = 238\n\tSYS_SCHED_SETAFFINITY      = 239\n\tSYS_SCHED_GETAFFINITY      = 240\n\tSYS_TGKILL                 = 241\n\tSYS_IO_SETUP               = 243\n\tSYS_IO_DESTROY             = 244\n\tSYS_IO_GETEVENTS           = 245\n\tSYS_IO_SUBMIT              = 246\n\tSYS_IO_CANCEL              = 247\n\tSYS_EXIT_GROUP             = 248\n\tSYS_EPOLL_CREATE           = 249\n\tSYS_EPOLL_CTL              = 250\n\tSYS_EPOLL_WAIT             = 251\n\tSYS_SET_TID_ADDRESS        = 252\n\tSYS_FADVISE64              = 253\n\tSYS_TIMER_CREATE           = 254\n\tSYS_TIMER_SETTIME          = 255\n\tSYS_TIMER_GETTIME          = 256\n\tSYS_TIMER_GETOVERRUN       = 257\n\tSYS_TIMER_DELETE           = 258\n\tSYS_CLOCK_SETTIME          = 259\n\tSYS_CLOCK_GETTIME          = 260\n\tSYS_CLOCK_GETRES           = 261\n\tSYS_CLOCK_NANOSLEEP        = 262\n\tSYS_STATFS64               = 265\n\tSYS_FSTATFS64              = 266\n\tSYS_REMAP_FILE_PAGES       = 267\n\tSYS_MBIND                  = 268\n\tSYS_GET_MEMPOLICY          = 269\n\tSYS_SET_MEMPOLICY          = 270\n\tSYS_MQ_OPEN                = 271\n\tSYS_MQ_UNLINK              = 272\n\tSYS_MQ_TIMEDSEND           = 273\n\tSYS_MQ_TIMEDRECEIVE        = 274\n\tSYS_MQ_NOTIFY              = 275\n\tSYS_MQ_GETSETATTR          = 276\n\tSYS_KEXEC_LOAD             = 277\n\tSYS_ADD_KEY                = 278\n\tSYS_REQUEST_KEY            = 279\n\tSYS_KEYCTL                 = 280\n\tSYS_WAITID                 = 281\n\tSYS_IOPRIO_SET             = 282\n\tSYS_IOPRIO_GET             = 283\n\tSYS_INOTIFY_INIT           = 284\n\tSYS_INOTIFY_ADD_WATCH      = 285\n\tSYS_INOTIFY_RM_WATCH       = 286\n\tSYS_MIGRATE_PAGES          = 287\n\tSYS_OPENAT                 = 288\n\tSYS_MKDIRAT                = 289\n\tSYS_MKNODAT                = 290\n\tSYS_FCHOWNAT               = 291\n\tSYS_FUTIMESAT              = 292\n\tSYS_NEWFSTATAT             = 293\n\tSYS_UNLINKAT               = 294\n\tSYS_RENAMEAT               = 295\n\tSYS_LINKAT                 = 296\n\tSYS_SYMLINKAT              = 297\n\tSYS_READLINKAT             = 298\n\tSYS_FCHMODAT               = 299\n\tSYS_FACCESSAT              = 300\n\tSYS_PSELECT6               = 301\n\tSYS_PPOLL                  = 302\n\tSYS_UNSHARE                = 303\n\tSYS_SET_ROBUST_LIST        = 304\n\tSYS_GET_ROBUST_LIST        = 305\n\tSYS_SPLICE                 = 306\n\tSYS_SYNC_FILE_RANGE        = 307\n\tSYS_TEE                    = 308\n\tSYS_VMSPLICE               = 309\n\tSYS_MOVE_PAGES             = 310\n\tSYS_GETCPU                 = 311\n\tSYS_EPOLL_PWAIT            = 312\n\tSYS_UTIMES                 = 313\n\tSYS_FALLOCATE              = 314\n\tSYS_UTIMENSAT              = 315\n\tSYS_SIGNALFD               = 316\n\tSYS_TIMERFD                = 317\n\tSYS_EVENTFD                = 318\n\tSYS_TIMERFD_CREATE         = 319\n\tSYS_TIMERFD_SETTIME        = 320\n\tSYS_TIMERFD_GETTIME        = 321\n\tSYS_SIGNALFD4              = 322\n\tSYS_EVENTFD2               = 323\n\tSYS_INOTIFY_INIT1          = 324\n\tSYS_PIPE2                  = 325\n\tSYS_DUP3                   = 326\n\tSYS_EPOLL_CREATE1          = 327\n\tSYS_PREADV                 = 328\n\tSYS_PWRITEV                = 329\n\tSYS_RT_TGSIGQUEUEINFO      = 330\n\tSYS_PERF_EVENT_OPEN        = 331\n\tSYS_FANOTIFY_INIT          = 332\n\tSYS_FANOTIFY_MARK          = 333\n\tSYS_PRLIMIT64              = 334\n\tSYS_NAME_TO_HANDLE_AT      = 335\n\tSYS_OPEN_BY_HANDLE_AT      = 336\n\tSYS_CLOCK_ADJTIME          = 337\n\tSYS_SYNCFS                 = 338\n\tSYS_SETNS                  = 339\n\tSYS_PROCESS_VM_READV       = 340\n\tSYS_PROCESS_VM_WRITEV      = 341\n\tSYS_S390_RUNTIME_INSTR     = 342\n\tSYS_KCMP                   = 343\n\tSYS_FINIT_MODULE           = 344\n\tSYS_SCHED_SETATTR          = 345\n\tSYS_SCHED_GETATTR          = 346\n\tSYS_RENAMEAT2              = 347\n\tSYS_SECCOMP                = 348\n\tSYS_GETRANDOM              = 349\n\tSYS_MEMFD_CREATE           = 350\n\tSYS_BPF                    = 351\n\tSYS_S390_PCI_MMIO_WRITE    = 352\n\tSYS_S390_PCI_MMIO_READ     = 353\n\tSYS_EXECVEAT               = 354\n\tSYS_USERFAULTFD            = 355\n\tSYS_MEMBARRIER             = 356\n\tSYS_RECVMMSG               = 357\n\tSYS_SENDMMSG               = 358\n\tSYS_SOCKET                 = 359\n\tSYS_SOCKETPAIR             = 360\n\tSYS_BIND                   = 361\n\tSYS_CONNECT                = 362\n\tSYS_LISTEN                 = 363\n\tSYS_ACCEPT4                = 364\n\tSYS_GETSOCKOPT             = 365\n\tSYS_SETSOCKOPT             = 366\n\tSYS_GETSOCKNAME            = 367\n\tSYS_GETPEERNAME            = 368\n\tSYS_SENDTO                 = 369\n\tSYS_SENDMSG                = 370\n\tSYS_RECVFROM               = 371\n\tSYS_RECVMSG                = 372\n\tSYS_SHUTDOWN               = 373\n\tSYS_MLOCK2                 = 374\n\tSYS_COPY_FILE_RANGE        = 375\n\tSYS_PREADV2                = 376\n\tSYS_PWRITEV2               = 377\n\tSYS_S390_GUARDED_STORAGE   = 378\n\tSYS_STATX                  = 379\n\tSYS_S390_STHYI             = 380\n\tSYS_KEXEC_FILE_LOAD        = 381\n\tSYS_IO_PGETEVENTS          = 382\n\tSYS_RSEQ                   = 383\n\tSYS_PKEY_MPROTECT          = 384\n\tSYS_PKEY_ALLOC             = 385\n\tSYS_PKEY_FREE              = 386\n\tSYS_SEMTIMEDOP             = 392\n\tSYS_SEMGET                 = 393\n\tSYS_SEMCTL                 = 394\n\tSYS_SHMGET                 = 395\n\tSYS_SHMCTL                 = 396\n\tSYS_SHMAT                  = 397\n\tSYS_SHMDT                  = 398\n\tSYS_MSGGET                 = 399\n\tSYS_MSGSND                 = 400\n\tSYS_MSGRCV                 = 401\n\tSYS_MSGCTL                 = 402\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n\tSYS_CLONE3                 = 435\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build sparc64,linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL        = 0\n\tSYS_EXIT                   = 1\n\tSYS_FORK                   = 2\n\tSYS_READ                   = 3\n\tSYS_WRITE                  = 4\n\tSYS_OPEN                   = 5\n\tSYS_CLOSE                  = 6\n\tSYS_WAIT4                  = 7\n\tSYS_CREAT                  = 8\n\tSYS_LINK                   = 9\n\tSYS_UNLINK                 = 10\n\tSYS_EXECV                  = 11\n\tSYS_CHDIR                  = 12\n\tSYS_CHOWN                  = 13\n\tSYS_MKNOD                  = 14\n\tSYS_CHMOD                  = 15\n\tSYS_LCHOWN                 = 16\n\tSYS_BRK                    = 17\n\tSYS_PERFCTR                = 18\n\tSYS_LSEEK                  = 19\n\tSYS_GETPID                 = 20\n\tSYS_CAPGET                 = 21\n\tSYS_CAPSET                 = 22\n\tSYS_SETUID                 = 23\n\tSYS_GETUID                 = 24\n\tSYS_VMSPLICE               = 25\n\tSYS_PTRACE                 = 26\n\tSYS_ALARM                  = 27\n\tSYS_SIGALTSTACK            = 28\n\tSYS_PAUSE                  = 29\n\tSYS_UTIME                  = 30\n\tSYS_ACCESS                 = 33\n\tSYS_NICE                   = 34\n\tSYS_SYNC                   = 36\n\tSYS_KILL                   = 37\n\tSYS_STAT                   = 38\n\tSYS_SENDFILE               = 39\n\tSYS_LSTAT                  = 40\n\tSYS_DUP                    = 41\n\tSYS_PIPE                   = 42\n\tSYS_TIMES                  = 43\n\tSYS_UMOUNT2                = 45\n\tSYS_SETGID                 = 46\n\tSYS_GETGID                 = 47\n\tSYS_SIGNAL                 = 48\n\tSYS_GETEUID                = 49\n\tSYS_GETEGID                = 50\n\tSYS_ACCT                   = 51\n\tSYS_MEMORY_ORDERING        = 52\n\tSYS_IOCTL                  = 54\n\tSYS_REBOOT                 = 55\n\tSYS_SYMLINK                = 57\n\tSYS_READLINK               = 58\n\tSYS_EXECVE                 = 59\n\tSYS_UMASK                  = 60\n\tSYS_CHROOT                 = 61\n\tSYS_FSTAT                  = 62\n\tSYS_FSTAT64                = 63\n\tSYS_GETPAGESIZE            = 64\n\tSYS_MSYNC                  = 65\n\tSYS_VFORK                  = 66\n\tSYS_PREAD64                = 67\n\tSYS_PWRITE64               = 68\n\tSYS_MMAP                   = 71\n\tSYS_MUNMAP                 = 73\n\tSYS_MPROTECT               = 74\n\tSYS_MADVISE                = 75\n\tSYS_VHANGUP                = 76\n\tSYS_MINCORE                = 78\n\tSYS_GETGROUPS              = 79\n\tSYS_SETGROUPS              = 80\n\tSYS_GETPGRP                = 81\n\tSYS_SETITIMER              = 83\n\tSYS_SWAPON                 = 85\n\tSYS_GETITIMER              = 86\n\tSYS_SETHOSTNAME            = 88\n\tSYS_DUP2                   = 90\n\tSYS_FCNTL                  = 92\n\tSYS_SELECT                 = 93\n\tSYS_FSYNC                  = 95\n\tSYS_SETPRIORITY            = 96\n\tSYS_SOCKET                 = 97\n\tSYS_CONNECT                = 98\n\tSYS_ACCEPT                 = 99\n\tSYS_GETPRIORITY            = 100\n\tSYS_RT_SIGRETURN           = 101\n\tSYS_RT_SIGACTION           = 102\n\tSYS_RT_SIGPROCMASK         = 103\n\tSYS_RT_SIGPENDING          = 104\n\tSYS_RT_SIGTIMEDWAIT        = 105\n\tSYS_RT_SIGQUEUEINFO        = 106\n\tSYS_RT_SIGSUSPEND          = 107\n\tSYS_SETRESUID              = 108\n\tSYS_GETRESUID              = 109\n\tSYS_SETRESGID              = 110\n\tSYS_GETRESGID              = 111\n\tSYS_RECVMSG                = 113\n\tSYS_SENDMSG                = 114\n\tSYS_GETTIMEOFDAY           = 116\n\tSYS_GETRUSAGE              = 117\n\tSYS_GETSOCKOPT             = 118\n\tSYS_GETCWD                 = 119\n\tSYS_READV                  = 120\n\tSYS_WRITEV                 = 121\n\tSYS_SETTIMEOFDAY           = 122\n\tSYS_FCHOWN                 = 123\n\tSYS_FCHMOD                 = 124\n\tSYS_RECVFROM               = 125\n\tSYS_SETREUID               = 126\n\tSYS_SETREGID               = 127\n\tSYS_RENAME                 = 128\n\tSYS_TRUNCATE               = 129\n\tSYS_FTRUNCATE              = 130\n\tSYS_FLOCK                  = 131\n\tSYS_LSTAT64                = 132\n\tSYS_SENDTO                 = 133\n\tSYS_SHUTDOWN               = 134\n\tSYS_SOCKETPAIR             = 135\n\tSYS_MKDIR                  = 136\n\tSYS_RMDIR                  = 137\n\tSYS_UTIMES                 = 138\n\tSYS_STAT64                 = 139\n\tSYS_SENDFILE64             = 140\n\tSYS_GETPEERNAME            = 141\n\tSYS_FUTEX                  = 142\n\tSYS_GETTID                 = 143\n\tSYS_GETRLIMIT              = 144\n\tSYS_SETRLIMIT              = 145\n\tSYS_PIVOT_ROOT             = 146\n\tSYS_PRCTL                  = 147\n\tSYS_PCICONFIG_READ         = 148\n\tSYS_PCICONFIG_WRITE        = 149\n\tSYS_GETSOCKNAME            = 150\n\tSYS_INOTIFY_INIT           = 151\n\tSYS_INOTIFY_ADD_WATCH      = 152\n\tSYS_POLL                   = 153\n\tSYS_GETDENTS64             = 154\n\tSYS_INOTIFY_RM_WATCH       = 156\n\tSYS_STATFS                 = 157\n\tSYS_FSTATFS                = 158\n\tSYS_UMOUNT                 = 159\n\tSYS_SCHED_SET_AFFINITY     = 160\n\tSYS_SCHED_GET_AFFINITY     = 161\n\tSYS_GETDOMAINNAME          = 162\n\tSYS_SETDOMAINNAME          = 163\n\tSYS_UTRAP_INSTALL          = 164\n\tSYS_QUOTACTL               = 165\n\tSYS_SET_TID_ADDRESS        = 166\n\tSYS_MOUNT                  = 167\n\tSYS_USTAT                  = 168\n\tSYS_SETXATTR               = 169\n\tSYS_LSETXATTR              = 170\n\tSYS_FSETXATTR              = 171\n\tSYS_GETXATTR               = 172\n\tSYS_LGETXATTR              = 173\n\tSYS_GETDENTS               = 174\n\tSYS_SETSID                 = 175\n\tSYS_FCHDIR                 = 176\n\tSYS_FGETXATTR              = 177\n\tSYS_LISTXATTR              = 178\n\tSYS_LLISTXATTR             = 179\n\tSYS_FLISTXATTR             = 180\n\tSYS_REMOVEXATTR            = 181\n\tSYS_LREMOVEXATTR           = 182\n\tSYS_SIGPENDING             = 183\n\tSYS_QUERY_MODULE           = 184\n\tSYS_SETPGID                = 185\n\tSYS_FREMOVEXATTR           = 186\n\tSYS_TKILL                  = 187\n\tSYS_EXIT_GROUP             = 188\n\tSYS_UNAME                  = 189\n\tSYS_INIT_MODULE            = 190\n\tSYS_PERSONALITY            = 191\n\tSYS_REMAP_FILE_PAGES       = 192\n\tSYS_EPOLL_CREATE           = 193\n\tSYS_EPOLL_CTL              = 194\n\tSYS_EPOLL_WAIT             = 195\n\tSYS_IOPRIO_SET             = 196\n\tSYS_GETPPID                = 197\n\tSYS_SIGACTION              = 198\n\tSYS_SGETMASK               = 199\n\tSYS_SSETMASK               = 200\n\tSYS_SIGSUSPEND             = 201\n\tSYS_OLDLSTAT               = 202\n\tSYS_USELIB                 = 203\n\tSYS_READDIR                = 204\n\tSYS_READAHEAD              = 205\n\tSYS_SOCKETCALL             = 206\n\tSYS_SYSLOG                 = 207\n\tSYS_LOOKUP_DCOOKIE         = 208\n\tSYS_FADVISE64              = 209\n\tSYS_FADVISE64_64           = 210\n\tSYS_TGKILL                 = 211\n\tSYS_WAITPID                = 212\n\tSYS_SWAPOFF                = 213\n\tSYS_SYSINFO                = 214\n\tSYS_IPC                    = 215\n\tSYS_SIGRETURN              = 216\n\tSYS_CLONE                  = 217\n\tSYS_IOPRIO_GET             = 218\n\tSYS_ADJTIMEX               = 219\n\tSYS_SIGPROCMASK            = 220\n\tSYS_CREATE_MODULE          = 221\n\tSYS_DELETE_MODULE          = 222\n\tSYS_GET_KERNEL_SYMS        = 223\n\tSYS_GETPGID                = 224\n\tSYS_BDFLUSH                = 225\n\tSYS_SYSFS                  = 226\n\tSYS_AFS_SYSCALL            = 227\n\tSYS_SETFSUID               = 228\n\tSYS_SETFSGID               = 229\n\tSYS__NEWSELECT             = 230\n\tSYS_SPLICE                 = 232\n\tSYS_STIME                  = 233\n\tSYS_STATFS64               = 234\n\tSYS_FSTATFS64              = 235\n\tSYS__LLSEEK                = 236\n\tSYS_MLOCK                  = 237\n\tSYS_MUNLOCK                = 238\n\tSYS_MLOCKALL               = 239\n\tSYS_MUNLOCKALL             = 240\n\tSYS_SCHED_SETPARAM         = 241\n\tSYS_SCHED_GETPARAM         = 242\n\tSYS_SCHED_SETSCHEDULER     = 243\n\tSYS_SCHED_GETSCHEDULER     = 244\n\tSYS_SCHED_YIELD            = 245\n\tSYS_SCHED_GET_PRIORITY_MAX = 246\n\tSYS_SCHED_GET_PRIORITY_MIN = 247\n\tSYS_SCHED_RR_GET_INTERVAL  = 248\n\tSYS_NANOSLEEP              = 249\n\tSYS_MREMAP                 = 250\n\tSYS__SYSCTL                = 251\n\tSYS_GETSID                 = 252\n\tSYS_FDATASYNC              = 253\n\tSYS_NFSSERVCTL             = 254\n\tSYS_SYNC_FILE_RANGE        = 255\n\tSYS_CLOCK_SETTIME          = 256\n\tSYS_CLOCK_GETTIME          = 257\n\tSYS_CLOCK_GETRES           = 258\n\tSYS_CLOCK_NANOSLEEP        = 259\n\tSYS_SCHED_GETAFFINITY      = 260\n\tSYS_SCHED_SETAFFINITY      = 261\n\tSYS_TIMER_SETTIME          = 262\n\tSYS_TIMER_GETTIME          = 263\n\tSYS_TIMER_GETOVERRUN       = 264\n\tSYS_TIMER_DELETE           = 265\n\tSYS_TIMER_CREATE           = 266\n\tSYS_VSERVER                = 267\n\tSYS_IO_SETUP               = 268\n\tSYS_IO_DESTROY             = 269\n\tSYS_IO_SUBMIT              = 270\n\tSYS_IO_CANCEL              = 271\n\tSYS_IO_GETEVENTS           = 272\n\tSYS_MQ_OPEN                = 273\n\tSYS_MQ_UNLINK              = 274\n\tSYS_MQ_TIMEDSEND           = 275\n\tSYS_MQ_TIMEDRECEIVE        = 276\n\tSYS_MQ_NOTIFY              = 277\n\tSYS_MQ_GETSETATTR          = 278\n\tSYS_WAITID                 = 279\n\tSYS_TEE                    = 280\n\tSYS_ADD_KEY                = 281\n\tSYS_REQUEST_KEY            = 282\n\tSYS_KEYCTL                 = 283\n\tSYS_OPENAT                 = 284\n\tSYS_MKDIRAT                = 285\n\tSYS_MKNODAT                = 286\n\tSYS_FCHOWNAT               = 287\n\tSYS_FUTIMESAT              = 288\n\tSYS_FSTATAT64              = 289\n\tSYS_UNLINKAT               = 290\n\tSYS_RENAMEAT               = 291\n\tSYS_LINKAT                 = 292\n\tSYS_SYMLINKAT              = 293\n\tSYS_READLINKAT             = 294\n\tSYS_FCHMODAT               = 295\n\tSYS_FACCESSAT              = 296\n\tSYS_PSELECT6               = 297\n\tSYS_PPOLL                  = 298\n\tSYS_UNSHARE                = 299\n\tSYS_SET_ROBUST_LIST        = 300\n\tSYS_GET_ROBUST_LIST        = 301\n\tSYS_MIGRATE_PAGES          = 302\n\tSYS_MBIND                  = 303\n\tSYS_GET_MEMPOLICY          = 304\n\tSYS_SET_MEMPOLICY          = 305\n\tSYS_KEXEC_LOAD             = 306\n\tSYS_MOVE_PAGES             = 307\n\tSYS_GETCPU                 = 308\n\tSYS_EPOLL_PWAIT            = 309\n\tSYS_UTIMENSAT              = 310\n\tSYS_SIGNALFD               = 311\n\tSYS_TIMERFD_CREATE         = 312\n\tSYS_EVENTFD                = 313\n\tSYS_FALLOCATE              = 314\n\tSYS_TIMERFD_SETTIME        = 315\n\tSYS_TIMERFD_GETTIME        = 316\n\tSYS_SIGNALFD4              = 317\n\tSYS_EVENTFD2               = 318\n\tSYS_EPOLL_CREATE1          = 319\n\tSYS_DUP3                   = 320\n\tSYS_PIPE2                  = 321\n\tSYS_INOTIFY_INIT1          = 322\n\tSYS_ACCEPT4                = 323\n\tSYS_PREADV                 = 324\n\tSYS_PWRITEV                = 325\n\tSYS_RT_TGSIGQUEUEINFO      = 326\n\tSYS_PERF_EVENT_OPEN        = 327\n\tSYS_RECVMMSG               = 328\n\tSYS_FANOTIFY_INIT          = 329\n\tSYS_FANOTIFY_MARK          = 330\n\tSYS_PRLIMIT64              = 331\n\tSYS_NAME_TO_HANDLE_AT      = 332\n\tSYS_OPEN_BY_HANDLE_AT      = 333\n\tSYS_CLOCK_ADJTIME          = 334\n\tSYS_SYNCFS                 = 335\n\tSYS_SENDMMSG               = 336\n\tSYS_SETNS                  = 337\n\tSYS_PROCESS_VM_READV       = 338\n\tSYS_PROCESS_VM_WRITEV      = 339\n\tSYS_KERN_FEATURES          = 340\n\tSYS_KCMP                   = 341\n\tSYS_FINIT_MODULE           = 342\n\tSYS_SCHED_SETATTR          = 343\n\tSYS_SCHED_GETATTR          = 344\n\tSYS_RENAMEAT2              = 345\n\tSYS_SECCOMP                = 346\n\tSYS_GETRANDOM              = 347\n\tSYS_MEMFD_CREATE           = 348\n\tSYS_BPF                    = 349\n\tSYS_EXECVEAT               = 350\n\tSYS_MEMBARRIER             = 351\n\tSYS_USERFAULTFD            = 352\n\tSYS_BIND                   = 353\n\tSYS_LISTEN                 = 354\n\tSYS_SETSOCKOPT             = 355\n\tSYS_MLOCK2                 = 356\n\tSYS_COPY_FILE_RANGE        = 357\n\tSYS_PREADV2                = 358\n\tSYS_PWRITEV2               = 359\n\tSYS_STATX                  = 360\n\tSYS_IO_PGETEVENTS          = 361\n\tSYS_PKEY_MPROTECT          = 362\n\tSYS_PKEY_ALLOC             = 363\n\tSYS_PKEY_FREE              = 364\n\tSYS_RSEQ                   = 365\n\tSYS_SEMTIMEDOP             = 392\n\tSYS_SEMGET                 = 393\n\tSYS_SEMCTL                 = 394\n\tSYS_SHMGET                 = 395\n\tSYS_SHMCTL                 = 396\n\tSYS_SHMAT                  = 397\n\tSYS_SHMDT                  = 398\n\tSYS_MSGGET                 = 399\n\tSYS_MSGSND                 = 400\n\tSYS_MSGRCV                 = 401\n\tSYS_MSGCTL                 = 402\n\tSYS_PIDFD_SEND_SIGNAL      = 424\n\tSYS_IO_URING_SETUP         = 425\n\tSYS_IO_URING_ENTER         = 426\n\tSYS_IO_URING_REGISTER      = 427\n\tSYS_OPEN_TREE              = 428\n\tSYS_MOVE_MOUNT             = 429\n\tSYS_FSOPEN                 = 430\n\tSYS_FSCONFIG               = 431\n\tSYS_FSMOUNT                = 432\n\tSYS_FSPICK                 = 433\n\tSYS_PIDFD_OPEN             = 434\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; DO NOT EDIT.\n\n// +build arm64,netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc,aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int32\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int32\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint32\n\ntype Stat_t struct {\n\tDev      uint32\n\tIno      uint32\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint32\n\tSize     int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int32\n\tBlocks   int32\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint32\n\tIno    uint32\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [2048]int32\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tLosigs uint32\n\tHisigs uint32\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint32\n\tBlocks    uint32\n\tBfree     uint32\n\tBavail    uint32\n\tFiles     uint32\n\tFfree     uint32\n\tFsid      Fsid_t\n\tVfstype   int32\n\tFsize     uint32\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64,aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int64\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int64\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint64\n\ntype Stat_t struct {\n\tDev      uint64\n\tIno      uint64\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint64\n\tSsize    int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int64\n\tBlocks   int64\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n\tPadto_ll uint32\n\tSize     int64\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint64\n\tIno    uint64\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n\t_      [4]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tSet [4]uint64\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint64\n\tBlocks    uint64\n\tBfree     uint64\n\tBavail    uint64\n\tFiles     uint64\n\tFfree     uint64\n\tFsid      Fsid64_t\n\tVfstype   int32\n\tFsize     uint64\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n\t_         [4]byte\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_386.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timeval32 struct{}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]int8\n\tMntonname   [1024]int8\n\tMntfromname [1024]int8\n\tReserved    [8]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint32\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags       uint32\n\tContigbytes int64\n\tDevoffset   int64\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int32\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfData      = 0x60\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\t_        [2]byte\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tFiller   [4]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\t_       [4]byte\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]int8\n\tMntonname   [1024]int8\n\tMntfromname [1024]int8\n\tReserved    [8]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [8]byte\n\t_     [8]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\t_          [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\t_          [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfData      = 0x60\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\t_        [2]byte\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tFiller   [4]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\t_      [4]byte\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go",
    "content": "// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_darwin.go\n\n// +build arm,darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timeval32 [0]byte\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]int8\n\tMntonname   [1024]int8\n\tMntfromname [1024]int8\n\tReserved    [8]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint32\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags       uint32\n\tContigbytes int64\n\tDevoffset   int64\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int32\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfData      = 0x60\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\t_        [2]byte\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tFiller   [4]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\t_       [4]byte\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]int8\n\tMntonname   [1024]int8\n\tMntfromname [1024]int8\n\tReserved    [8]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [8]byte\n\t_     [8]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\t_          [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\t_          [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfData      = 0x60\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\t_        [2]byte\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tFiller   [4]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\t_      [4]byte\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go",
    "content": "// cgo -godefs types_dragonfly.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,dragonfly\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tIno     uint64\n\tNlink   uint32\n\tDev     uint32\n\tMode    uint16\n\t_1      uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare1 int64\n\tQspare2 int64\n}\n\ntype Statfs_t struct {\n\tSpare2      int64\n\tBsize       int64\n\tIosize      int64\n\tBlocks      int64\n\tBfree       int64\n\tBavail      int64\n\tFiles       int64\n\tFfree       int64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        int32\n\tFlags       int32\n\t_           [4]byte\n\tSyncwrites  int64\n\tAsyncwrites int64\n\tFstypename  [16]int8\n\tMntonname   [80]int8\n\tSyncreads   int64\n\tAsyncreads  int64\n\tSpares1     int16\n\tMntfromname [80]int8\n\tSpares2     int16\n\t_           [4]byte\n\tSpare       [2]int64\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno  uint64\n\tNamlen  uint16\n\tType    uint8\n\tUnused1 uint8\n\tUnused2 uint32\n\tName    [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\t_          [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\t_          [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xb0\n\tSizeofIfData           = 0xa0\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\t_          [2]byte\n\tMtu        uint64\n\tMetric     uint64\n\tLink_state uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\tOqdrops    uint64\n\tLastchange Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks     uint64\n\tMtu       uint64\n\tPksent    uint64\n\tExpire    uint64\n\tSendpipe  uint64\n\tSsthresh  uint64\n\tRtt       uint64\n\tRttvar    uint64\n\tRecvpipe  uint64\n\tHopcount  uint64\n\tMssopt    uint16\n\tPad       uint16\n\t_         [4]byte\n\tMsl       uint64\n\tIwmaxsegs uint64\n\tIwcapsegs uint64\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = 0xfffafdcd\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\t_       int32\n\tAtim    Timespec\n\t_       int32\n\tMtim    Timespec\n\t_       int32\n\tCtim    Timespec\n\t_       int32\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype stat_freebsd11_t struct {\n\tDev     uint32\n\tIno     uint32\n\tMode    uint16\n\tNlink   uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBtim    Timespec\n\t_       [8]byte\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [1024]int8\n\tMntonname   [1024]int8\n}\n\ntype statfs_freebsd11_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [88]int8\n\tMntonname   [88]int8\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype dirent_freebsd11 struct {\n\tFileno uint32\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_ATTACH     = 0xa\n\tPTRACE_CONT       = 0x7\n\tPTRACE_DETACH     = 0xb\n\tPTRACE_GETFPREGS  = 0x23\n\tPTRACE_GETFSBASE  = 0x47\n\tPTRACE_GETLWPLIST = 0xf\n\tPTRACE_GETNUMLWPS = 0xe\n\tPTRACE_GETREGS    = 0x21\n\tPTRACE_GETXSTATE  = 0x45\n\tPTRACE_IO         = 0xc\n\tPTRACE_KILL       = 0x8\n\tPTRACE_LWPEVENTS  = 0x18\n\tPTRACE_LWPINFO    = 0xd\n\tPTRACE_SETFPREGS  = 0x24\n\tPTRACE_SETREGS    = 0x22\n\tPTRACE_SINGLESTEP = 0x9\n\tPTRACE_TRACEME    = 0x0\n)\n\nconst (\n\tPIOD_READ_D  = 0x1\n\tPIOD_WRITE_D = 0x2\n\tPIOD_READ_I  = 0x3\n\tPIOD_WRITE_I = 0x4\n)\n\nconst (\n\tPL_FLAG_BORN   = 0x100\n\tPL_FLAG_EXITED = 0x200\n\tPL_FLAG_SI     = 0x20\n)\n\nconst (\n\tTRAP_BRKPT = 0x1\n\tTRAP_TRACE = 0x2\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __Siginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno    int32\n\tErrno    int32\n\tCode     int32\n\tPid      int32\n\tUid      uint32\n\tStatus   int32\n\tAddr     *byte\n\tValue    [4]byte\n\tX_reason [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tFs     uint32\n\tEs     uint32\n\tDs     uint32\n\tEdi    uint32\n\tEsi    uint32\n\tEbp    uint32\n\tIsp    uint32\n\tEbx    uint32\n\tEdx    uint32\n\tEcx    uint32\n\tEax    uint32\n\tTrapno uint32\n\tErr    uint32\n\tEip    uint32\n\tCs     uint32\n\tEflags uint32\n\tEsp    uint32\n\tSs     uint32\n\tGs     uint32\n}\n\ntype FpReg struct {\n\tEnv   [7]uint32\n\tAcc   [8][10]uint8\n\tEx_sw uint32\n\tPad   [64]uint8\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs *byte\n\tAddr *byte\n\tLen  uint\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int32\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x60\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x50\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\tEpoch       int32\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x14\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_REMOVEDIR        = 0x800\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype stat_freebsd11_t struct {\n\tDev     uint32\n\tIno     uint32\n\tMode    uint16\n\tNlink   uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBtim    Timespec\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [1024]int8\n\tMntonname   [1024]int8\n}\n\ntype statfs_freebsd11_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [88]int8\n\tMntonname   [88]int8\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype dirent_freebsd11 struct {\n\tFileno uint32\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\t_          [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\t_          [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_ATTACH     = 0xa\n\tPTRACE_CONT       = 0x7\n\tPTRACE_DETACH     = 0xb\n\tPTRACE_GETFPREGS  = 0x23\n\tPTRACE_GETFSBASE  = 0x47\n\tPTRACE_GETLWPLIST = 0xf\n\tPTRACE_GETNUMLWPS = 0xe\n\tPTRACE_GETREGS    = 0x21\n\tPTRACE_GETXSTATE  = 0x45\n\tPTRACE_IO         = 0xc\n\tPTRACE_KILL       = 0x8\n\tPTRACE_LWPEVENTS  = 0x18\n\tPTRACE_LWPINFO    = 0xd\n\tPTRACE_SETFPREGS  = 0x24\n\tPTRACE_SETREGS    = 0x22\n\tPTRACE_SINGLESTEP = 0x9\n\tPTRACE_TRACEME    = 0x0\n)\n\nconst (\n\tPIOD_READ_D  = 0x1\n\tPIOD_WRITE_D = 0x2\n\tPIOD_READ_I  = 0x3\n\tPIOD_WRITE_I = 0x4\n)\n\nconst (\n\tPL_FLAG_BORN   = 0x100\n\tPL_FLAG_EXITED = 0x200\n\tPL_FLAG_SI     = 0x20\n)\n\nconst (\n\tTRAP_BRKPT = 0x1\n\tTRAP_TRACE = 0x2\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __Siginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR15    int64\n\tR14    int64\n\tR13    int64\n\tR12    int64\n\tR11    int64\n\tR10    int64\n\tR9     int64\n\tR8     int64\n\tRdi    int64\n\tRsi    int64\n\tRbp    int64\n\tRbx    int64\n\tRdx    int64\n\tRcx    int64\n\tRax    int64\n\tTrapno uint32\n\tFs     uint16\n\tGs     uint16\n\tErr    uint32\n\tEs     uint16\n\tDs     uint16\n\tRip    int64\n\tCs     int64\n\tRflags int64\n\tRsp    int64\n\tSs     int64\n}\n\ntype FpReg struct {\n\tEnv   [4]uint64\n\tAcc   [8][16]uint8\n\tXacc  [16][16]uint8\n\tSpare [12]uint64\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs *byte\n\tAddr *byte\n\tLen  uint\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_REMOVEDIR        = 0x800\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype stat_freebsd11_t struct {\n\tDev     uint32\n\tIno     uint32\n\tMode    uint16\n\tNlink   uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBtim    Timespec\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [1024]int8\n\tMntonname   [1024]int8\n}\n\ntype statfs_freebsd11_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [88]int8\n\tMntonname   [88]int8\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype dirent_freebsd11 struct {\n\tFileno uint32\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_ATTACH     = 0xa\n\tPTRACE_CONT       = 0x7\n\tPTRACE_DETACH     = 0xb\n\tPTRACE_GETFPREGS  = 0x23\n\tPTRACE_GETFSBASE  = 0x47\n\tPTRACE_GETLWPLIST = 0xf\n\tPTRACE_GETNUMLWPS = 0xe\n\tPTRACE_GETREGS    = 0x21\n\tPTRACE_GETXSTATE  = 0x45\n\tPTRACE_IO         = 0xc\n\tPTRACE_KILL       = 0x8\n\tPTRACE_LWPEVENTS  = 0x18\n\tPTRACE_LWPINFO    = 0xd\n\tPTRACE_SETFPREGS  = 0x24\n\tPTRACE_SETREGS    = 0x22\n\tPTRACE_SINGLESTEP = 0x9\n\tPTRACE_TRACEME    = 0x0\n)\n\nconst (\n\tPIOD_READ_D  = 0x1\n\tPIOD_WRITE_D = 0x2\n\tPIOD_READ_I  = 0x3\n\tPIOD_WRITE_I = 0x4\n)\n\nconst (\n\tPL_FLAG_BORN   = 0x100\n\tPL_FLAG_EXITED = 0x200\n\tPL_FLAG_SI     = 0x20\n)\n\nconst (\n\tTRAP_BRKPT = 0x1\n\tTRAP_TRACE = 0x2\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __Siginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno    int32\n\tErrno    int32\n\tCode     int32\n\tPid      int32\n\tUid      uint32\n\tStatus   int32\n\tAddr     *byte\n\tValue    [4]byte\n\tX_reason [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR      [13]uint32\n\tR_sp   uint32\n\tR_lr   uint32\n\tR_pc   uint32\n\tR_cpsr uint32\n}\n\ntype FpReg struct {\n\tFpr_fpsr uint32\n\tFpr      [8][3]uint32\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs *byte\n\tAddr *byte\n\tLen  uint\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int32\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x70\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x60\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\t_           [4]byte\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_REMOVEDIR        = 0x800\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype stat_freebsd11_t struct {\n\tDev     uint32\n\tIno     uint32\n\tMode    uint16\n\tNlink   uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBtim    Timespec\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [1024]int8\n\tMntonname   [1024]int8\n}\n\ntype statfs_freebsd11_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]int8\n\tMntfromname [88]int8\n\tMntonname   [88]int8\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype dirent_freebsd11 struct {\n\tFileno uint32\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\t_          [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\t_          [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_ATTACH     = 0xa\n\tPTRACE_CONT       = 0x7\n\tPTRACE_DETACH     = 0xb\n\tPTRACE_GETFPREGS  = 0x23\n\tPTRACE_GETFSBASE  = 0x47\n\tPTRACE_GETLWPLIST = 0xf\n\tPTRACE_GETNUMLWPS = 0xe\n\tPTRACE_GETREGS    = 0x21\n\tPTRACE_GETXSTATE  = 0x45\n\tPTRACE_IO         = 0xc\n\tPTRACE_KILL       = 0x8\n\tPTRACE_LWPEVENTS  = 0x18\n\tPTRACE_LWPINFO    = 0xd\n\tPTRACE_SETFPREGS  = 0x24\n\tPTRACE_SETREGS    = 0x22\n\tPTRACE_SINGLESTEP = 0x9\n\tPTRACE_TRACEME    = 0x0\n)\n\nconst (\n\tPIOD_READ_D  = 0x1\n\tPIOD_WRITE_D = 0x2\n\tPIOD_READ_I  = 0x3\n\tPIOD_WRITE_I = 0x4\n)\n\nconst (\n\tPL_FLAG_BORN   = 0x100\n\tPL_FLAG_EXITED = 0x200\n\tPL_FLAG_SI     = 0x20\n)\n\nconst (\n\tTRAP_BRKPT = 0x1\n\tTRAP_TRACE = 0x2\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __Siginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno    int32\n\tErrno    int32\n\tCode     int32\n\tPid      int32\n\tUid      uint32\n\tStatus   int32\n\tAddr     *byte\n\tValue    [8]byte\n\tX_reason [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tX    [30]uint64\n\tLr   uint64\n\tSp   uint64\n\tElr  uint64\n\tSpsr uint32\n}\n\ntype FpReg struct {\n\tFp_q  [32]uint128\n\tFp_sr uint32\n\tFp_cr uint32\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs *byte\n\tAddr *byte\n\tLen  uint\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_REMOVEDIR        = 0x800\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_386.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [1]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x1c\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint32\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x20\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [122]int8\n\t_      uint32\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x18\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n}\n\nconst (\n\tBLKPG                  = 0x1269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [3]int64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]int8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x1269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [4]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x1c\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tUregs [18]uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint32\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x20\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [122]uint8\n\t_      uint32\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x18\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x1269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]int8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x1269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x1c\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint32\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x20\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [122]int8\n\t_      uint32\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x18\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips64,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]int8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mips64le,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]int8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build mipsle,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x1c\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint32\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x20\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [122]int8\n\t_      uint32\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x18\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]uint8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build ppc64le,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]uint8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build riscv64,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tPc  uint64\n\tRa  uint64\n\tSp  uint64\n\tGp  uint64\n\tTp  uint64\n\tT0  uint64\n\tT1  uint64\n\tT2  uint64\n\tS0  uint64\n\tS1  uint64\n\tA0  uint64\n\tA1  uint64\n\tA2  uint64\n\tA3  uint64\n\tA4  uint64\n\tA5  uint64\n\tA6  uint64\n\tA7  uint64\n\tS2  uint64\n\tS3  uint64\n\tS4  uint64\n\tS5  uint64\n\tS6  uint64\n\tS7  uint64\n\tS8  uint64\n\tS9  uint64\n\tS10 uint64\n\tS11 uint64\n\tT3  uint64\n\tT4  uint64\n\tT5  uint64\n\tT6  uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]uint8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x1269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build s390x,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x6\n\tFADV_NOREUSE    = 0x7\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tPsw                      PtracePsw\n\tGprs                     [16]uint64\n\tAcrs                     [16]uint32\n\tOrig_gpr2                uint64\n\tFp_regs                  PtraceFpregs\n\tPer_info                 PtracePer\n\tIeee_instruction_pointer uint64\n}\n\ntype PtracePsw struct {\n\tMask uint64\n\tAddr uint64\n}\n\ntype PtraceFpregs struct {\n\tFpc  uint32\n\tFprs [16]float64\n}\n\ntype PtracePer struct {\n\t_             [0]uint64\n\t_             [32]byte\n\tStarting_addr uint64\n\tEnding_addr   uint64\n\tPerc_atmid    uint16\n\tAddress       uint64\n\tAccess_id     uint8\n\t_             [7]byte\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x2000\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]int8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    uint32\n\tBsize   uint32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen uint32\n\tFrsize  uint32\n\tFlags   uint32\n\tSpare   [4]uint32\n\t_       [4]byte\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x1269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint64\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go",
    "content": "// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build sparc64,linux\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n}\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask            uint32\n\tBlksize         uint32\n\tAttributes      uint64\n\tNlink           uint32\n\tUid             uint32\n\tGid             uint32\n\tMode            uint16\n\t_               [1]uint16\n\tIno             uint64\n\tSize            uint64\n\tBlocks          uint64\n\tAttributes_mask uint64\n\tAtime           StatxTimestamp\n\tBtime           StatxTimestamp\n\tCtime           StatxTimestamp\n\tMtime           StatxTimestamp\n\tRdev_major      uint32\n\tRdev_minor      uint32\n\tDev_major       uint32\n\tDev_minor       uint32\n\t_               [14]uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      int16\n\t_      [2]byte\n}\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [8]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tZero      [4]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x10\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofMsghdr            = 0x38\n\tSizeofCmsghdr           = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0x68\n\tSizeofCanFilter         = 0x8\n)\n\nconst (\n\tNDA_UNSPEC              = 0x0\n\tNDA_DST                 = 0x1\n\tNDA_LLADDR              = 0x2\n\tNDA_CACHEINFO           = 0x3\n\tNDA_PROBES              = 0x4\n\tNDA_VLAN                = 0x5\n\tNDA_PORT                = 0x6\n\tNDA_VNI                 = 0x7\n\tNDA_IFINDEX             = 0x8\n\tNDA_MASTER              = 0x9\n\tNDA_LINK_NETNSID        = 0xa\n\tNDA_SRC_VNI             = 0xb\n\tNTF_USE                 = 0x1\n\tNTF_SELF                = 0x2\n\tNTF_MASTER              = 0x4\n\tNTF_PROXY               = 0x8\n\tNTF_EXT_LEARNED         = 0x10\n\tNTF_OFFLOADED           = 0x20\n\tNTF_ROUTER              = 0x80\n\tNUD_INCOMPLETE          = 0x1\n\tNUD_REACHABLE           = 0x2\n\tNUD_STALE               = 0x4\n\tNUD_DELAY               = 0x8\n\tNUD_PROBE               = 0x10\n\tNUD_FAILED              = 0x20\n\tNUD_NOARP               = 0x40\n\tNUD_PERMANENT           = 0x80\n\tNUD_NONE                = 0x0\n\tIFA_UNSPEC              = 0x0\n\tIFA_ADDRESS             = 0x1\n\tIFA_LOCAL               = 0x2\n\tIFA_LABEL               = 0x3\n\tIFA_BROADCAST           = 0x4\n\tIFA_ANYCAST             = 0x5\n\tIFA_CACHEINFO           = 0x6\n\tIFA_MULTICAST           = 0x7\n\tIFA_FLAGS               = 0x8\n\tIFA_RT_PRIORITY         = 0x9\n\tIFA_TARGET_NETNSID      = 0xa\n\tIFLA_UNSPEC             = 0x0\n\tIFLA_ADDRESS            = 0x1\n\tIFLA_BROADCAST          = 0x2\n\tIFLA_IFNAME             = 0x3\n\tIFLA_MTU                = 0x4\n\tIFLA_LINK               = 0x5\n\tIFLA_QDISC              = 0x6\n\tIFLA_STATS              = 0x7\n\tIFLA_COST               = 0x8\n\tIFLA_PRIORITY           = 0x9\n\tIFLA_MASTER             = 0xa\n\tIFLA_WIRELESS           = 0xb\n\tIFLA_PROTINFO           = 0xc\n\tIFLA_TXQLEN             = 0xd\n\tIFLA_MAP                = 0xe\n\tIFLA_WEIGHT             = 0xf\n\tIFLA_OPERSTATE          = 0x10\n\tIFLA_LINKMODE           = 0x11\n\tIFLA_LINKINFO           = 0x12\n\tIFLA_NET_NS_PID         = 0x13\n\tIFLA_IFALIAS            = 0x14\n\tIFLA_NUM_VF             = 0x15\n\tIFLA_VFINFO_LIST        = 0x16\n\tIFLA_STATS64            = 0x17\n\tIFLA_VF_PORTS           = 0x18\n\tIFLA_PORT_SELF          = 0x19\n\tIFLA_AF_SPEC            = 0x1a\n\tIFLA_GROUP              = 0x1b\n\tIFLA_NET_NS_FD          = 0x1c\n\tIFLA_EXT_MASK           = 0x1d\n\tIFLA_PROMISCUITY        = 0x1e\n\tIFLA_NUM_TX_QUEUES      = 0x1f\n\tIFLA_NUM_RX_QUEUES      = 0x20\n\tIFLA_CARRIER            = 0x21\n\tIFLA_PHYS_PORT_ID       = 0x22\n\tIFLA_CARRIER_CHANGES    = 0x23\n\tIFLA_PHYS_SWITCH_ID     = 0x24\n\tIFLA_LINK_NETNSID       = 0x25\n\tIFLA_PHYS_PORT_NAME     = 0x26\n\tIFLA_PROTO_DOWN         = 0x27\n\tIFLA_GSO_MAX_SEGS       = 0x28\n\tIFLA_GSO_MAX_SIZE       = 0x29\n\tIFLA_PAD                = 0x2a\n\tIFLA_XDP                = 0x2b\n\tIFLA_EVENT              = 0x2c\n\tIFLA_NEW_NETNSID        = 0x2d\n\tIFLA_IF_NETNSID         = 0x2e\n\tIFLA_TARGET_NETNSID     = 0x2e\n\tIFLA_CARRIER_UP_COUNT   = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT = 0x30\n\tIFLA_NEW_IFINDEX        = 0x31\n\tIFLA_MIN_MTU            = 0x32\n\tIFLA_MAX_MTU            = 0x33\n\tIFLA_MAX                = 0x33\n\tIFLA_INFO_KIND          = 0x1\n\tIFLA_INFO_DATA          = 0x2\n\tIFLA_INFO_XSTATS        = 0x3\n\tIFLA_INFO_SLAVE_KIND    = 0x4\n\tIFLA_INFO_SLAVE_DATA    = 0x5\n\tRT_SCOPE_UNIVERSE       = 0x0\n\tRT_SCOPE_SITE           = 0xc8\n\tRT_SCOPE_LINK           = 0xfd\n\tRT_SCOPE_HOST           = 0xfe\n\tRT_SCOPE_NOWHERE        = 0xff\n\tRT_TABLE_UNSPEC         = 0x0\n\tRT_TABLE_COMPAT         = 0xfc\n\tRT_TABLE_DEFAULT        = 0xfd\n\tRT_TABLE_MAIN           = 0xfe\n\tRT_TABLE_LOCAL          = 0xff\n\tRT_TABLE_MAX            = 0xffffffff\n\tRTA_UNSPEC              = 0x0\n\tRTA_DST                 = 0x1\n\tRTA_SRC                 = 0x2\n\tRTA_IIF                 = 0x3\n\tRTA_OIF                 = 0x4\n\tRTA_GATEWAY             = 0x5\n\tRTA_PRIORITY            = 0x6\n\tRTA_PREFSRC             = 0x7\n\tRTA_METRICS             = 0x8\n\tRTA_MULTIPATH           = 0x9\n\tRTA_FLOW                = 0xb\n\tRTA_CACHEINFO           = 0xc\n\tRTA_TABLE               = 0xf\n\tRTA_MARK                = 0x10\n\tRTA_MFC_STATS           = 0x11\n\tRTA_VIA                 = 0x12\n\tRTA_NEWDST              = 0x13\n\tRTA_PREF                = 0x14\n\tRTA_ENCAP_TYPE          = 0x15\n\tRTA_ENCAP               = 0x16\n\tRTA_EXPIRES             = 0x17\n\tRTA_PAD                 = 0x18\n\tRTA_UID                 = 0x19\n\tRTA_TTL_PROPAGATE       = 0x1a\n\tRTA_IP_PROTO            = 0x1b\n\tRTA_SPORT               = 0x1c\n\tRTA_DPORT               = 0x1d\n\tRTN_UNSPEC              = 0x0\n\tRTN_UNICAST             = 0x1\n\tRTN_LOCAL               = 0x2\n\tRTN_BROADCAST           = 0x3\n\tRTN_ANYCAST             = 0x4\n\tRTN_MULTICAST           = 0x5\n\tRTN_BLACKHOLE           = 0x6\n\tRTN_UNREACHABLE         = 0x7\n\tRTN_PROHIBIT            = 0x8\n\tRTN_THROW               = 0x9\n\tRTN_NAT                 = 0xa\n\tRTN_XRESOLVE            = 0xb\n\tRTNLGRP_NONE            = 0x0\n\tRTNLGRP_LINK            = 0x1\n\tRTNLGRP_NOTIFY          = 0x2\n\tRTNLGRP_NEIGH           = 0x3\n\tRTNLGRP_TC              = 0x4\n\tRTNLGRP_IPV4_IFADDR     = 0x5\n\tRTNLGRP_IPV4_MROUTE     = 0x6\n\tRTNLGRP_IPV4_ROUTE      = 0x7\n\tRTNLGRP_IPV4_RULE       = 0x8\n\tRTNLGRP_IPV6_IFADDR     = 0x9\n\tRTNLGRP_IPV6_MROUTE     = 0xa\n\tRTNLGRP_IPV6_ROUTE      = 0xb\n\tRTNLGRP_IPV6_IFINFO     = 0xc\n\tRTNLGRP_IPV6_PREFIX     = 0x12\n\tRTNLGRP_IPV6_RULE       = 0x13\n\tRTNLGRP_ND_USEROPT      = 0x14\n\tSizeofNlMsghdr          = 0x10\n\tSizeofNlMsgerr          = 0x14\n\tSizeofRtGenmsg          = 0x1\n\tSizeofNlAttr            = 0x4\n\tSizeofRtAttr            = 0x4\n\tSizeofIfInfomsg         = 0x10\n\tSizeofIfAddrmsg         = 0x8\n\tSizeofIfaCacheinfo      = 0x10\n\tSizeofRtMsg             = 0xc\n\tSizeofRtNexthop         = 0x8\n\tSizeofNdUseroptmsg      = 0x10\n\tSizeofNdMsg             = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tSizeofSockFilter = 0x8\n\tSizeofSockFprog  = 0x10\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\ntype PtraceRegs struct {\n\tRegs   [16]uint64\n\tTstate uint64\n\tTpc    uint64\n\tTnpc   uint64\n\tY      uint32\n\tMagic  uint32\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN    = 0x1\n\tPOLLPRI   = 0x2\n\tPOLLOUT   = 0x4\n\tPOLLRDHUP = 0x800\n\tPOLLERR   = 0x8\n\tPOLLHUP   = 0x10\n\tPOLLNVAL  = 0x20\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\nconst PERF_IOC_FLAG_GROUP = 0x1\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n)\n\ntype cpuMask uint64\n\nconst (\n\t_CPU_SETSIZE = 0x400\n\t_NCPUBITS    = 0x40\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              [948]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n)\n\nconst (\n\tPERF_TYPE_HARDWARE   = 0x0\n\tPERF_TYPE_SOFTWARE   = 0x1\n\tPERF_TYPE_TRACEPOINT = 0x2\n\tPERF_TYPE_HW_CACHE   = 0x3\n\tPERF_TYPE_RAW        = 0x4\n\tPERF_TYPE_BREAKPOINT = 0x5\n\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\n\tPERF_COUNT_HW_CACHE_L1D  = 0x0\n\tPERF_COUNT_HW_CACHE_L1I  = 0x1\n\tPERF_COUNT_HW_CACHE_LL   = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB = 0x4\n\tPERF_COUNT_HW_CACHE_BPU  = 0x5\n\tPERF_COUNT_HW_CACHE_NODE = 0x6\n\n\tPERF_COUNT_HW_CACHE_OP_READ     = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE    = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2\n\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1\n\n\tPERF_COUNT_SW_CPU_CLOCK        = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK       = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS      = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS   = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS = 0x8\n\tPERF_COUNT_SW_DUMMY            = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT       = 0xa\n\n\tPERF_SAMPLE_IP           = 0x1\n\tPERF_SAMPLE_TID          = 0x2\n\tPERF_SAMPLE_TIME         = 0x4\n\tPERF_SAMPLE_ADDR         = 0x8\n\tPERF_SAMPLE_READ         = 0x10\n\tPERF_SAMPLE_CALLCHAIN    = 0x20\n\tPERF_SAMPLE_ID           = 0x40\n\tPERF_SAMPLE_CPU          = 0x80\n\tPERF_SAMPLE_PERIOD       = 0x100\n\tPERF_SAMPLE_STREAM_ID    = 0x200\n\tPERF_SAMPLE_RAW          = 0x400\n\tPERF_SAMPLE_BRANCH_STACK = 0x800\n\n\tPERF_SAMPLE_BRANCH_USER       = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL     = 0x2\n\tPERF_SAMPLE_BRANCH_HV         = 0x4\n\tPERF_SAMPLE_BRANCH_ANY        = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL   = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL   = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX   = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX      = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX      = 0x200\n\tPERF_SAMPLE_BRANCH_COND       = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL       = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000\n\n\tPERF_FORMAT_TOTAL_TIME_ENABLED = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING = 0x2\n\tPERF_FORMAT_ID                 = 0x4\n\tPERF_FORMAT_GROUP              = 0x8\n\n\tPERF_RECORD_MMAP            = 0x1\n\tPERF_RECORD_LOST            = 0x2\n\tPERF_RECORD_COMM            = 0x3\n\tPERF_RECORD_EXIT            = 0x4\n\tPERF_RECORD_THROTTLE        = 0x5\n\tPERF_RECORD_UNTHROTTLE      = 0x6\n\tPERF_RECORD_FORK            = 0x7\n\tPERF_RECORD_READ            = 0x8\n\tPERF_RECORD_SAMPLE          = 0x9\n\tPERF_RECORD_MMAP2           = 0xa\n\tPERF_RECORD_AUX             = 0xb\n\tPERF_RECORD_ITRACE_START    = 0xc\n\tPERF_RECORD_LOST_SAMPLES    = 0xd\n\tPERF_RECORD_SWITCH          = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE = 0xf\n\tPERF_RECORD_NAMESPACES      = 0x10\n\n\tPERF_CONTEXT_HV     = -0x20\n\tPERF_CONTEXT_KERNEL = -0x80\n\tPERF_CONTEXT_USER   = -0x200\n\n\tPERF_CONTEXT_GUEST        = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL = -0x880\n\tPERF_CONTEXT_GUEST_USER   = -0xa00\n\n\tPERF_FLAG_FD_NO_GROUP = 0x1\n\tPERF_FLAG_FD_OUTPUT   = 0x2\n\tPERF_FLAG_PID_CGROUP  = 0x4\n\tPERF_FLAG_FD_CLOEXEC  = 0x8\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\t_      [118]int8\n\t_      uint64\n}\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\t_         uint32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacketHdr  = 0x20\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_NUMHOOKS = 0x1\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_MAX                       = 0x19\n\tNFTA_LIST_UNPEC                   = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG                  = 0x20001269\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE = 0x0\n\tNETNSA_NSID = 0x1\n\tNETNSA_PID  = 0x2\n\tNETNSA_FD   = 0x3\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr     uint64\n\tLen      uint64\n\tSize     uint32\n\tHeadroom uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped       uint64\n\tRx_invalid_descs uint64\n\tTx_invalid_descs uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\n\tSOF_TIMESTAMPING_LAST = 0x4000\n\tSOF_TIMESTAMPING_MASK = 0x7fff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\nconst (\n\tBPF_REG_0                           = 0x0\n\tBPF_REG_1                           = 0x1\n\tBPF_REG_2                           = 0x2\n\tBPF_REG_3                           = 0x3\n\tBPF_REG_4                           = 0x4\n\tBPF_REG_5                           = 0x5\n\tBPF_REG_6                           = 0x6\n\tBPF_REG_7                           = 0x7\n\tBPF_REG_8                           = 0x8\n\tBPF_REG_9                           = 0x9\n\tBPF_REG_10                          = 0xa\n\tBPF_MAP_CREATE                      = 0x0\n\tBPF_MAP_LOOKUP_ELEM                 = 0x1\n\tBPF_MAP_UPDATE_ELEM                 = 0x2\n\tBPF_MAP_DELETE_ELEM                 = 0x3\n\tBPF_MAP_GET_NEXT_KEY                = 0x4\n\tBPF_PROG_LOAD                       = 0x5\n\tBPF_OBJ_PIN                         = 0x6\n\tBPF_OBJ_GET                         = 0x7\n\tBPF_PROG_ATTACH                     = 0x8\n\tBPF_PROG_DETACH                     = 0x9\n\tBPF_PROG_TEST_RUN                   = 0xa\n\tBPF_PROG_GET_NEXT_ID                = 0xb\n\tBPF_MAP_GET_NEXT_ID                 = 0xc\n\tBPF_PROG_GET_FD_BY_ID               = 0xd\n\tBPF_MAP_GET_FD_BY_ID                = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD              = 0xf\n\tBPF_PROG_QUERY                      = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN             = 0x11\n\tBPF_BTF_LOAD                        = 0x12\n\tBPF_BTF_GET_FD_BY_ID                = 0x13\n\tBPF_TASK_FD_QUERY                   = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM      = 0x15\n\tBPF_MAP_TYPE_UNSPEC                 = 0x0\n\tBPF_MAP_TYPE_HASH                   = 0x1\n\tBPF_MAP_TYPE_ARRAY                  = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY             = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY       = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH            = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY           = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE            = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY           = 0x8\n\tBPF_MAP_TYPE_LRU_HASH               = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH        = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE               = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS          = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS           = 0xd\n\tBPF_MAP_TYPE_DEVMAP                 = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                = 0xf\n\tBPF_MAP_TYPE_CPUMAP                 = 0x10\n\tBPF_MAP_TYPE_XSKMAP                 = 0x11\n\tBPF_MAP_TYPE_SOCKHASH               = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE         = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY    = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE  = 0x15\n\tBPF_MAP_TYPE_QUEUE                  = 0x16\n\tBPF_MAP_TYPE_STACK                  = 0x17\n\tBPF_PROG_TYPE_UNSPEC                = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER         = 0x1\n\tBPF_PROG_TYPE_KPROBE                = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS             = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT             = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT            = 0x5\n\tBPF_PROG_TYPE_XDP                   = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT            = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB            = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK           = 0x9\n\tBPF_PROG_TYPE_LWT_IN                = 0xa\n\tBPF_PROG_TYPE_LWT_OUT               = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT              = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS              = 0xd\n\tBPF_PROG_TYPE_SK_SKB                = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE         = 0xf\n\tBPF_PROG_TYPE_SK_MSG                = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT        = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR      = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL         = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2            = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT          = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR        = 0x16\n\tBPF_CGROUP_INET_INGRESS             = 0x0\n\tBPF_CGROUP_INET_EGRESS              = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE         = 0x2\n\tBPF_CGROUP_SOCK_OPS                 = 0x3\n\tBPF_SK_SKB_STREAM_PARSER            = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT           = 0x5\n\tBPF_CGROUP_DEVICE                   = 0x6\n\tBPF_SK_MSG_VERDICT                  = 0x7\n\tBPF_CGROUP_INET4_BIND               = 0x8\n\tBPF_CGROUP_INET6_BIND               = 0x9\n\tBPF_CGROUP_INET4_CONNECT            = 0xa\n\tBPF_CGROUP_INET6_CONNECT            = 0xb\n\tBPF_CGROUP_INET4_POST_BIND          = 0xc\n\tBPF_CGROUP_INET6_POST_BIND          = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG             = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG             = 0xf\n\tBPF_LIRC_MODE2                      = 0x10\n\tBPF_FLOW_DISSECTOR                  = 0x11\n\tBPF_STACK_BUILD_ID_EMPTY            = 0x0\n\tBPF_STACK_BUILD_ID_VALID            = 0x1\n\tBPF_STACK_BUILD_ID_IP               = 0x2\n\tBPF_ADJ_ROOM_NET                    = 0x0\n\tBPF_HDR_START_MAC                   = 0x0\n\tBPF_HDR_START_NET                   = 0x1\n\tBPF_LWT_ENCAP_SEG6                  = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE           = 0x1\n\tBPF_OK                              = 0x0\n\tBPF_DROP                            = 0x2\n\tBPF_REDIRECT                        = 0x7\n\tBPF_SOCK_OPS_VOID                   = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT           = 0x1\n\tBPF_SOCK_OPS_RWND_INIT              = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB         = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB  = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN              = 0x6\n\tBPF_SOCK_OPS_BASE_RTT               = 0x7\n\tBPF_SOCK_OPS_RTO_CB                 = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB             = 0x9\n\tBPF_SOCK_OPS_STATE_CB               = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB          = 0xb\n\tBPF_TCP_ESTABLISHED                 = 0x1\n\tBPF_TCP_SYN_SENT                    = 0x2\n\tBPF_TCP_SYN_RECV                    = 0x3\n\tBPF_TCP_FIN_WAIT1                   = 0x4\n\tBPF_TCP_FIN_WAIT2                   = 0x5\n\tBPF_TCP_TIME_WAIT                   = 0x6\n\tBPF_TCP_CLOSE                       = 0x7\n\tBPF_TCP_CLOSE_WAIT                  = 0x8\n\tBPF_TCP_LAST_ACK                    = 0x9\n\tBPF_TCP_LISTEN                      = 0xa\n\tBPF_TCP_CLOSING                     = 0xb\n\tBPF_TCP_NEW_SYN_RECV                = 0xc\n\tBPF_TCP_MAX_STATES                  = 0xd\n\tBPF_FIB_LKUP_RET_SUCCESS            = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE          = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE        = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT           = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED          = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED       = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT         = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH           = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED        = 0x8\n\tBPF_FD_TYPE_RAW_TRACEPOINT          = 0x0\n\tBPF_FD_TYPE_TRACEPOINT              = 0x1\n\tBPF_FD_TYPE_KPROBE                  = 0x2\n\tBPF_FD_TYPE_KRETPROBE               = 0x3\n\tBPF_FD_TYPE_UPROBE                  = 0x4\n\tBPF_FD_TYPE_URETPROBE               = 0x5\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n}\n\ntype Statfs_t [0]byte\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter uint32\n\tFlags  uint32\n\tFflags uint32\n\tData   int64\n\tUdata  int32\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x84\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n\tPad_cgo_1 [4]byte\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec       int64\n\tNsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint32\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tData      int64\n\tUdata     int32\n\tPad_cgo_0 [4]byte\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x200\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build 386,openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode           uint32\n\tDev            int32\n\tIno            uint64\n\tNlink          uint32\n\tUid            uint32\n\tGid            uint32\n\tRdev           int32\n\tAtim           Timespec\n\tMtim           Timespec\n\tCtim           Timespec\n\tSize           int64\n\tBlocks         int64\n\tBlksize        uint32\n\tFlags          uint32\n\tGen            uint32\n\tX__st_birthtim Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]int8\n\tF_mntonname   [90]int8\n\tF_mntfromname [90]int8\n\tF_mntfromspec [90]int8\n\tPad_cgo_0     [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno       uint64\n\tOff          int64\n\tReclen       uint16\n\tType         uint8\n\tNamlen       uint8\n\tX__d_padding [4]uint8\n\tName         [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xec\n\tSizeofIfData           = 0xd4\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tPad          uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n\tMclpool      [7]Mclpool\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct {\n\tGrown int32\n\tAlive uint16\n\tHwm   uint16\n\tCwm   uint16\n\tLwm   uint16\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_SYMLINK_NOFOLLOW = 0x2\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tAnonpages          int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tNanonneeded        int32\n\tNfreeanon          int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tObsolete_swapins   int32\n\tObsolete_swapouts  int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tZeroaborts         int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tPdreanon           int32\n\tPdrevnode          int32\n\tPdrevtext          int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       [4]byte\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\t_             [4]byte\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]int8\n\tF_mntonname   [90]int8\n\tF_mntfromname [90]int8\n\tF_mntfromspec [90]int8\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\t_          [4]byte\n\tIov        *Iovec\n\tIovlen     uint32\n\t_          [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\t_            [4]byte\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_SYMLINK_NOFOLLOW = 0x2\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tAnonpages          int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tNanonneeded        int32\n\tNfreeanon          int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tObsolete_swapins   int32\n\tObsolete_swapouts  int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tZeroaborts         int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tPdreanon           int32\n\tPdrevnode          int32\n\tPdrevtext          int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm,openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       [4]byte\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\t_             [4]byte\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]int8\n\tF_mntonname   [90]int8\n\tF_mntfromname [90]int8\n\tF_mntfromspec [90]int8\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\t_            [4]byte\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_SYMLINK_NOFOLLOW = 0x2\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build arm64,openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]int8\n\tF_mntonname   [90]int8\n\tF_mntfromname [90]int8\n\tF_mntfromspec [90]int8\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_SYMLINK_NOFOLLOW = 0x2\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go",
    "content": "// cgo -godefs types_solaris.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n// +build amd64,solaris\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x400\n\tMaxHostNameLen = 0x100\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tFstype  [16]int8\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tSysid  int32\n\tPid    int32\n\tPad    [4]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tName   [1]int8\n\t_      [5]byte\n}\n\ntype _Fsblkcnt_t uint64\n\ntype Statvfs_t struct {\n\tBsize    uint64\n\tFrsize   uint64\n\tBlocks   uint64\n\tBfree    uint64\n\tBavail   uint64\n\tFiles    uint64\n\tFfree    uint64\n\tFavail   uint64\n\tFsid     uint64\n\tBasetype [16]int8\n\tFlag     uint64\n\tNamemax  uint64\n\tFstr     [32]int8\n}\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily         uint16\n\tPort           uint16\n\tFlowinfo       uint32\n\tAddr           [16]byte /* in6_addr */\n\tScope_id       uint32\n\tX__sin6_src_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [236]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *int8\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName         *byte\n\tNamelen      uint32\n\t_            [4]byte\n\tIov          *Iovec\n\tIovlen       int32\n\t_            [4]byte\n\tAccrights    *int8\n\tAccrightslen int32\n\t_            [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tX__icmp6_filt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x20\n\tSizeofSockaddrAny      = 0xfc\n\tSizeofSockaddrUnix     = 0x6e\n\tSizeofSockaddrDatalink = 0xfc\n\tSizeofLinger           = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x24\n\tSizeofICMPv6Filter     = 0x20\n)\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [257]byte\n\tNodename [257]byte\n\tRelease  [257]byte\n\tVersion  [257]byte\n\tMachine  [257]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int64\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\nconst (\n\tAT_FDCWD            = 0xffd19553\n\tAT_SYMLINK_NOFOLLOW = 0x1000\n\tAT_SYMLINK_FOLLOW   = 0x2000\n\tAT_REMOVEDIR        = 0x1\n\tAT_EACCESS          = 0x4\n)\n\nconst (\n\tSizeofIfMsghdr  = 0x54\n\tSizeofIfData    = 0x44\n\tSizeofIfaMsghdr = 0x14\n\tSizeofRtMsghdr  = 0x4c\n\tSizeofRtMetrics = 0x28\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\t_          [1]byte\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n\tMetric  int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       [2]byte\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\t_     [4]byte\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [19]uint8\n\t_     [1]byte\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  int8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/golang.org/x/text/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/golang.org/x/text/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/text/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package bidirule implements the Bidi Rule defined by RFC 5893.\n//\n// This package is under development. The API may change without notice and\n// without preserving backward compatibility.\npackage bidirule\n\nimport (\n\t\"errors\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n\t\"golang.org/x/text/unicode/bidi\"\n)\n\n// This file contains an implementation of RFC 5893: Right-to-Left Scripts for\n// Internationalized Domain Names for Applications (IDNA)\n//\n// A label is an individual component of a domain name.  Labels are usually\n// shown separated by dots; for example, the domain name \"www.example.com\" is\n// composed of three labels: \"www\", \"example\", and \"com\".\n//\n// An RTL label is a label that contains at least one character of class R, AL,\n// or AN. An LTR label is any label that is not an RTL label.\n//\n// A \"Bidi domain name\" is a domain name that contains at least one RTL label.\n//\n//  The following guarantees can be made based on the above:\n//\n//  o  In a domain name consisting of only labels that satisfy the rule,\n//     the requirements of Section 3 are satisfied.  Note that even LTR\n//     labels and pure ASCII labels have to be tested.\n//\n//  o  In a domain name consisting of only LDH labels (as defined in the\n//     Definitions document [RFC5890]) and labels that satisfy the rule,\n//     the requirements of Section 3 are satisfied as long as a label\n//     that starts with an ASCII digit does not come after a\n//     right-to-left label.\n//\n//  No guarantee is given for other combinations.\n\n// ErrInvalid indicates a label is invalid according to the Bidi Rule.\nvar ErrInvalid = errors.New(\"bidirule: failed Bidi Rule\")\n\ntype ruleState uint8\n\nconst (\n\truleInitial ruleState = iota\n\truleLTR\n\truleLTRFinal\n\truleRTL\n\truleRTLFinal\n\truleInvalid\n)\n\ntype ruleTransition struct {\n\tnext ruleState\n\tmask uint16\n}\n\nvar transitions = [...][2]ruleTransition{\n\t// [2.1] The first character must be a character with Bidi property L, R, or\n\t// AL. If it has the R or AL property, it is an RTL label; if it has the L\n\t// property, it is an LTR label.\n\truleInitial: {\n\t\t{ruleLTRFinal, 1 << bidi.L},\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL},\n\t},\n\truleRTL: {\n\t\t// [2.3] In an RTL label, the end of the label must be a character with\n\t\t// Bidi property R, AL, EN, or AN, followed by zero or more characters\n\t\t// with Bidi property NSM.\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN},\n\n\t\t// [2.2] In an RTL label, only characters with the Bidi properties R,\n\t\t// AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.3]\n\t\t{ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},\n\t},\n\truleRTLFinal: {\n\t\t// [2.3] In an RTL label, the end of the label must be a character with\n\t\t// Bidi property R, AL, EN, or AN, followed by zero or more characters\n\t\t// with Bidi property NSM.\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN | 1<<bidi.NSM},\n\n\t\t// [2.2] In an RTL label, only characters with the Bidi properties R,\n\t\t// AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.3] and NSM.\n\t\t{ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},\n\t},\n\truleLTR: {\n\t\t// [2.6] In an LTR label, the end of the label must be a character with\n\t\t// Bidi property L or EN, followed by zero or more characters with Bidi\n\t\t// property NSM.\n\t\t{ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN},\n\n\t\t// [2.5] In an LTR label, only characters with the Bidi properties L,\n\t\t// EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.6].\n\t\t{ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},\n\t},\n\truleLTRFinal: {\n\t\t// [2.6] In an LTR label, the end of the label must be a character with\n\t\t// Bidi property L or EN, followed by zero or more characters with Bidi\n\t\t// property NSM.\n\t\t{ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN | 1<<bidi.NSM},\n\n\t\t// [2.5] In an LTR label, only characters with the Bidi properties L,\n\t\t// EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.6].\n\t\t{ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},\n\t},\n\truleInvalid: {\n\t\t{ruleInvalid, 0},\n\t\t{ruleInvalid, 0},\n\t},\n}\n\n// [2.4] In an RTL label, if an EN is present, no AN may be present, and\n// vice versa.\nconst exclusiveRTL = uint16(1<<bidi.EN | 1<<bidi.AN)\n\n// From RFC 5893\n// An RTL label is a label that contains at least one character of type\n// R, AL, or AN.\n//\n// An LTR label is any label that is not an RTL label.\n\n// Direction reports the direction of the given label as defined by RFC 5893.\n// The Bidi Rule does not have to be applied to labels of the category\n// LeftToRight.\nfunc Direction(b []byte) bidi.Direction {\n\tfor i := 0; i < len(b); {\n\t\te, sz := bidi.Lookup(b[i:])\n\t\tif sz == 0 {\n\t\t\ti++\n\t\t}\n\t\tc := e.Class()\n\t\tif c == bidi.R || c == bidi.AL || c == bidi.AN {\n\t\t\treturn bidi.RightToLeft\n\t\t}\n\t\ti += sz\n\t}\n\treturn bidi.LeftToRight\n}\n\n// DirectionString reports the direction of the given label as defined by RFC\n// 5893. The Bidi Rule does not have to be applied to labels of the category\n// LeftToRight.\nfunc DirectionString(s string) bidi.Direction {\n\tfor i := 0; i < len(s); {\n\t\te, sz := bidi.LookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\tc := e.Class()\n\t\tif c == bidi.R || c == bidi.AL || c == bidi.AN {\n\t\t\treturn bidi.RightToLeft\n\t\t}\n\t\ti += sz\n\t}\n\treturn bidi.LeftToRight\n}\n\n// Valid reports whether b conforms to the BiDi rule.\nfunc Valid(b []byte) bool {\n\tvar t Transformer\n\tif n, ok := t.advance(b); !ok || n < len(b) {\n\t\treturn false\n\t}\n\treturn t.isFinal()\n}\n\n// ValidString reports whether s conforms to the BiDi rule.\nfunc ValidString(s string) bool {\n\tvar t Transformer\n\tif n, ok := t.advanceString(s); !ok || n < len(s) {\n\t\treturn false\n\t}\n\treturn t.isFinal()\n}\n\n// New returns a Transformer that verifies that input adheres to the Bidi Rule.\nfunc New() *Transformer {\n\treturn &Transformer{}\n}\n\n// Transformer implements transform.Transform.\ntype Transformer struct {\n\tstate  ruleState\n\thasRTL bool\n\tseen   uint16\n}\n\n// A rule can only be violated for \"Bidi Domain names\", meaning if one of the\n// following categories has been observed.\nfunc (t *Transformer) isRTL() bool {\n\tconst isRTL = 1<<bidi.R | 1<<bidi.AL | 1<<bidi.AN\n\treturn t.seen&isRTL != 0\n}\n\n// Reset implements transform.Transformer.\nfunc (t *Transformer) Reset() { *t = Transformer{} }\n\n// Transform implements transform.Transformer. This Transformer has state and\n// needs to be reset between uses.\nfunc (t *Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tif len(dst) < len(src) {\n\t\tsrc = src[:len(dst)]\n\t\tatEOF = false\n\t\terr = transform.ErrShortDst\n\t}\n\tn, err1 := t.Span(src, atEOF)\n\tcopy(dst, src[:n])\n\tif err == nil || err1 != nil && err1 != transform.ErrShortSrc {\n\t\terr = err1\n\t}\n\treturn n, n, err\n}\n\n// Span returns the first n bytes of src that conform to the Bidi rule.\nfunc (t *Transformer) Span(src []byte, atEOF bool) (n int, err error) {\n\tif t.state == ruleInvalid && t.isRTL() {\n\t\treturn 0, ErrInvalid\n\t}\n\tn, ok := t.advance(src)\n\tswitch {\n\tcase !ok:\n\t\terr = ErrInvalid\n\tcase n < len(src):\n\t\tif !atEOF {\n\t\t\terr = transform.ErrShortSrc\n\t\t\tbreak\n\t\t}\n\t\terr = ErrInvalid\n\tcase !t.isFinal():\n\t\terr = ErrInvalid\n\t}\n\treturn n, err\n}\n\n// Precomputing the ASCII values decreases running time for the ASCII fast path\n// by about 30%.\nvar asciiTable [128]bidi.Properties\n\nfunc init() {\n\tfor i := range asciiTable {\n\t\tp, _ := bidi.LookupRune(rune(i))\n\t\tasciiTable[i] = p\n\t}\n}\n\nfunc (t *Transformer) advance(s []byte) (n int, ok bool) {\n\tvar e bidi.Properties\n\tvar sz int\n\tfor n < len(s) {\n\t\tif s[n] < utf8.RuneSelf {\n\t\t\te, sz = asciiTable[s[n]], 1\n\t\t} else {\n\t\t\te, sz = bidi.Lookup(s[n:])\n\t\t\tif sz <= 1 {\n\t\t\t\tif sz == 1 {\n\t\t\t\t\t// We always consider invalid UTF-8 to be invalid, even if\n\t\t\t\t\t// the string has not yet been determined to be RTL.\n\t\t\t\t\t// TODO: is this correct?\n\t\t\t\t\treturn n, false\n\t\t\t\t}\n\t\t\t\treturn n, true // incomplete UTF-8 encoding\n\t\t\t}\n\t\t}\n\t\t// TODO: using CompactClass would result in noticeable speedup.\n\t\t// See unicode/bidi/prop.go:Properties.CompactClass.\n\t\tc := uint16(1 << e.Class())\n\t\tt.seen |= c\n\t\tif t.seen&exclusiveRTL == exclusiveRTL {\n\t\t\tt.state = ruleInvalid\n\t\t\treturn n, false\n\t\t}\n\t\tswitch tr := transitions[t.state]; {\n\t\tcase tr[0].mask&c != 0:\n\t\t\tt.state = tr[0].next\n\t\tcase tr[1].mask&c != 0:\n\t\t\tt.state = tr[1].next\n\t\tdefault:\n\t\t\tt.state = ruleInvalid\n\t\t\tif t.isRTL() {\n\t\t\t\treturn n, false\n\t\t\t}\n\t\t}\n\t\tn += sz\n\t}\n\treturn n, true\n}\n\nfunc (t *Transformer) advanceString(s string) (n int, ok bool) {\n\tvar e bidi.Properties\n\tvar sz int\n\tfor n < len(s) {\n\t\tif s[n] < utf8.RuneSelf {\n\t\t\te, sz = asciiTable[s[n]], 1\n\t\t} else {\n\t\t\te, sz = bidi.LookupString(s[n:])\n\t\t\tif sz <= 1 {\n\t\t\t\tif sz == 1 {\n\t\t\t\t\treturn n, false // invalid UTF-8\n\t\t\t\t}\n\t\t\t\treturn n, true // incomplete UTF-8 encoding\n\t\t\t}\n\t\t}\n\t\t// TODO: using CompactClass results in noticeable speedup.\n\t\t// See unicode/bidi/prop.go:Properties.CompactClass.\n\t\tc := uint16(1 << e.Class())\n\t\tt.seen |= c\n\t\tif t.seen&exclusiveRTL == exclusiveRTL {\n\t\t\tt.state = ruleInvalid\n\t\t\treturn n, false\n\t\t}\n\t\tswitch tr := transitions[t.state]; {\n\t\tcase tr[0].mask&c != 0:\n\t\t\tt.state = tr[0].next\n\t\tcase tr[1].mask&c != 0:\n\t\t\tt.state = tr[1].next\n\t\tdefault:\n\t\t\tt.state = ruleInvalid\n\t\t\tif t.isRTL() {\n\t\t\t\treturn n, false\n\t\t\t}\n\t\t}\n\t\tn += sz\n\t}\n\treturn n, true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build go1.10\n\npackage bidirule\n\nfunc (t *Transformer) isFinal() bool {\n\treturn t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !go1.10\n\npackage bidirule\n\nfunc (t *Transformer) isFinal() bool {\n\tif !t.isRTL() {\n\t\treturn true\n\t}\n\treturn t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/transform/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package transform provides reader and writer wrappers that transform the\n// bytes passing through as well as various transformations. Example\n// transformations provided by other packages include normalization and\n// conversion between character sets.\npackage transform // import \"golang.org/x/text/transform\"\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"unicode/utf8\"\n)\n\nvar (\n\t// ErrShortDst means that the destination buffer was too short to\n\t// receive all of the transformed bytes.\n\tErrShortDst = errors.New(\"transform: short destination buffer\")\n\n\t// ErrShortSrc means that the source buffer has insufficient data to\n\t// complete the transformation.\n\tErrShortSrc = errors.New(\"transform: short source buffer\")\n\n\t// ErrEndOfSpan means that the input and output (the transformed input)\n\t// are not identical.\n\tErrEndOfSpan = errors.New(\"transform: input and output are not identical\")\n\n\t// errInconsistentByteCount means that Transform returned success (nil\n\t// error) but also returned nSrc inconsistent with the src argument.\n\terrInconsistentByteCount = errors.New(\"transform: inconsistent byte count returned\")\n\n\t// errShortInternal means that an internal buffer is not large enough\n\t// to make progress and the Transform operation must be aborted.\n\terrShortInternal = errors.New(\"transform: short internal buffer\")\n)\n\n// Transformer transforms bytes.\ntype Transformer interface {\n\t// Transform writes to dst the transformed bytes read from src, and\n\t// returns the number of dst bytes written and src bytes read. The\n\t// atEOF argument tells whether src represents the last bytes of the\n\t// input.\n\t//\n\t// Callers should always process the nDst bytes produced and account\n\t// for the nSrc bytes consumed before considering the error err.\n\t//\n\t// A nil error means that all of the transformed bytes (whether freshly\n\t// transformed from src or left over from previous Transform calls)\n\t// were written to dst. A nil error can be returned regardless of\n\t// whether atEOF is true. If err is nil then nSrc must equal len(src);\n\t// the converse is not necessarily true.\n\t//\n\t// ErrShortDst means that dst was too short to receive all of the\n\t// transformed bytes. ErrShortSrc means that src had insufficient data\n\t// to complete the transformation. If both conditions apply, then\n\t// either error may be returned. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\tTransform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)\n\n\t// Reset resets the state and allows a Transformer to be reused.\n\tReset()\n}\n\n// SpanningTransformer extends the Transformer interface with a Span method\n// that determines how much of the input already conforms to the Transformer.\ntype SpanningTransformer interface {\n\tTransformer\n\n\t// Span returns a position in src such that transforming src[:n] results in\n\t// identical output src[:n] for these bytes. It does not necessarily return\n\t// the largest such n. The atEOF argument tells whether src represents the\n\t// last bytes of the input.\n\t//\n\t// Callers should always account for the n bytes consumed before\n\t// considering the error err.\n\t//\n\t// A nil error means that all input bytes are known to be identical to the\n\t// output produced by the Transformer. A nil error can be returned\n\t// regardless of whether atEOF is true. If err is nil, then n must\n\t// equal len(src); the converse is not necessarily true.\n\t//\n\t// ErrEndOfSpan means that the Transformer output may differ from the\n\t// input after n bytes. Note that n may be len(src), meaning that the output\n\t// would contain additional bytes after otherwise identical output.\n\t// ErrShortSrc means that src had insufficient data to determine whether the\n\t// remaining bytes would change. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\t//\n\t// Calling Span can modify the Transformer state as a side effect. In\n\t// effect, it does the transformation just as calling Transform would, only\n\t// without copying to a destination buffer and only up to a point it can\n\t// determine the input and output bytes are the same. This is obviously more\n\t// limited than calling Transform, but can be more efficient in terms of\n\t// copying and allocating buffers. Calls to Span and Transform may be\n\t// interleaved.\n\tSpan(src []byte, atEOF bool) (n int, err error)\n}\n\n// NopResetter can be embedded by implementations of Transformer to add a nop\n// Reset method.\ntype NopResetter struct{}\n\n// Reset implements the Reset method of the Transformer interface.\nfunc (NopResetter) Reset() {}\n\n// Reader wraps another io.Reader by transforming the bytes read.\ntype Reader struct {\n\tr   io.Reader\n\tt   Transformer\n\terr error\n\n\t// dst[dst0:dst1] contains bytes that have been transformed by t but\n\t// not yet copied out via Read.\n\tdst        []byte\n\tdst0, dst1 int\n\n\t// src[src0:src1] contains bytes that have been read from r but not\n\t// yet transformed through t.\n\tsrc        []byte\n\tsrc0, src1 int\n\n\t// transformComplete is whether the transformation is complete,\n\t// regardless of whether or not it was successful.\n\ttransformComplete bool\n}\n\nconst defaultBufSize = 4096\n\n// NewReader returns a new Reader that wraps r by transforming the bytes read\n// via t. It calls Reset on t.\nfunc NewReader(r io.Reader, t Transformer) *Reader {\n\tt.Reset()\n\treturn &Reader{\n\t\tr:   r,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Read implements the io.Reader interface.\nfunc (r *Reader) Read(p []byte) (int, error) {\n\tn, err := 0, error(nil)\n\tfor {\n\t\t// Copy out any transformed bytes and return the final error if we are done.\n\t\tif r.dst0 != r.dst1 {\n\t\t\tn = copy(p, r.dst[r.dst0:r.dst1])\n\t\t\tr.dst0 += n\n\t\t\tif r.dst0 == r.dst1 && r.transformComplete {\n\t\t\t\treturn n, r.err\n\t\t\t}\n\t\t\treturn n, nil\n\t\t} else if r.transformComplete {\n\t\t\treturn 0, r.err\n\t\t}\n\n\t\t// Try to transform some source bytes, or to flush the transformer if we\n\t\t// are out of source bytes. We do this even if r.r.Read returned an error.\n\t\t// As the io.Reader documentation says, \"process the n > 0 bytes returned\n\t\t// before considering the error\".\n\t\tif r.src0 != r.src1 || r.err != nil {\n\t\t\tr.dst0 = 0\n\t\t\tr.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)\n\t\t\tr.src0 += n\n\n\t\t\tswitch {\n\t\t\tcase err == nil:\n\t\t\t\tif r.src0 != r.src1 {\n\t\t\t\t\tr.err = errInconsistentByteCount\n\t\t\t\t}\n\t\t\t\t// The Transform call was successful; we are complete if we\n\t\t\t\t// cannot read more bytes into src.\n\t\t\t\tr.transformComplete = r.err != nil\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortDst && (r.dst1 != 0 || n != 0):\n\t\t\t\t// Make room in dst by copying out, and try again.\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:\n\t\t\t\t// Read more bytes into src via the code below, and try again.\n\t\t\tdefault:\n\t\t\t\tr.transformComplete = true\n\t\t\t\t// The reader error (r.err) takes precedence over the\n\t\t\t\t// transformer error (err) unless r.err is nil or io.EOF.\n\t\t\t\tif r.err == nil || r.err == io.EOF {\n\t\t\t\t\tr.err = err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Move any untransformed source bytes to the start of the buffer\n\t\t// and read more bytes.\n\t\tif r.src0 != 0 {\n\t\t\tr.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])\n\t\t}\n\t\tn, r.err = r.r.Read(r.src[r.src1:])\n\t\tr.src1 += n\n\t}\n}\n\n// TODO: implement ReadByte (and ReadRune??).\n\n// Writer wraps another io.Writer by transforming the bytes read.\n// The user needs to call Close to flush unwritten bytes that may\n// be buffered.\ntype Writer struct {\n\tw   io.Writer\n\tt   Transformer\n\tdst []byte\n\n\t// src[:n] contains bytes that have not yet passed through t.\n\tsrc []byte\n\tn   int\n}\n\n// NewWriter returns a new Writer that wraps w by transforming the bytes written\n// via t. It calls Reset on t.\nfunc NewWriter(w io.Writer, t Transformer) *Writer {\n\tt.Reset()\n\treturn &Writer{\n\t\tw:   w,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Write implements the io.Writer interface. If there are not enough\n// bytes available to complete a Transform, the bytes will be buffered\n// for the next write. Call Close to convert the remaining bytes.\nfunc (w *Writer) Write(data []byte) (n int, err error) {\n\tsrc := data\n\tif w.n > 0 {\n\t\t// Append bytes from data to the last remainder.\n\t\t// TODO: limit the amount copied on first try.\n\t\tn = copy(w.src[w.n:], data)\n\t\tw.n += n\n\t\tsrc = w.src[:w.n]\n\t}\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, false)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn n, werr\n\t\t}\n\t\tsrc = src[nSrc:]\n\t\tif w.n == 0 {\n\t\t\tn += nSrc\n\t\t} else if len(src) <= n {\n\t\t\t// Enough bytes from w.src have been consumed. We make src point\n\t\t\t// to data instead to reduce the copying.\n\t\t\tw.n = 0\n\t\t\tn -= len(src)\n\t\t\tsrc = data[n:]\n\t\t\tif n < len(data) && (err == nil || err == ErrShortSrc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tswitch err {\n\t\tcase ErrShortDst:\n\t\t\t// This error is okay as long as we are making progress.\n\t\t\tif nDst > 0 || nSrc > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase ErrShortSrc:\n\t\t\tif len(src) < len(w.src) {\n\t\t\t\tm := copy(w.src, src)\n\t\t\t\t// If w.n > 0, bytes from data were already copied to w.src and n\n\t\t\t\t// was already set to the number of bytes consumed.\n\t\t\t\tif w.n == 0 {\n\t\t\t\t\tn += m\n\t\t\t\t}\n\t\t\t\tw.n = m\n\t\t\t\terr = nil\n\t\t\t} else if nDst > 0 || nSrc > 0 {\n\t\t\t\t// Not enough buffer to store the remainder. Keep processing as\n\t\t\t\t// long as there is progress. Without this case, transforms that\n\t\t\t\t// require a lookahead larger than the buffer may result in an\n\t\t\t\t// error. This is not something one may expect to be common in\n\t\t\t\t// practice, but it may occur when buffers are set to small\n\t\t\t\t// sizes during testing.\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase nil:\n\t\t\tif w.n > 0 {\n\t\t\t\terr = errInconsistentByteCount\n\t\t\t}\n\t\t}\n\t\treturn n, err\n\t}\n}\n\n// Close implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tsrc := w.src[:w.n]\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, true)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn werr\n\t\t}\n\t\tif err != ErrShortDst {\n\t\t\treturn err\n\t\t}\n\t\tsrc = src[nSrc:]\n\t}\n}\n\ntype nop struct{ NopResetter }\n\nfunc (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tn := copy(dst, src)\n\tif n < len(src) {\n\t\terr = ErrShortDst\n\t}\n\treturn n, n, err\n}\n\nfunc (nop) Span(src []byte, atEOF bool) (n int, err error) {\n\treturn len(src), nil\n}\n\ntype discard struct{ NopResetter }\n\nfunc (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\treturn 0, len(src), nil\n}\n\nvar (\n\t// Discard is a Transformer for which all Transform calls succeed\n\t// by consuming all bytes and writing nothing.\n\tDiscard Transformer = discard{}\n\n\t// Nop is a SpanningTransformer that copies src to dst.\n\tNop SpanningTransformer = nop{}\n)\n\n// chain is a sequence of links. A chain with N Transformers has N+1 links and\n// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst\n// buffers given to chain.Transform and the middle N-1 buffers are intermediate\n// buffers owned by the chain. The i'th link transforms bytes from the i'th\n// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer\n// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).\ntype chain struct {\n\tlink []link\n\terr  error\n\t// errStart is the index at which the error occurred plus 1. Processing\n\t// errStart at this level at the next call to Transform. As long as\n\t// errStart > 0, chain will not consume any more source bytes.\n\terrStart int\n}\n\nfunc (c *chain) fatalError(errIndex int, err error) {\n\tif i := errIndex + 1; i > c.errStart {\n\t\tc.errStart = i\n\t\tc.err = err\n\t}\n}\n\ntype link struct {\n\tt Transformer\n\t// b[p:n] holds the bytes to be transformed by t.\n\tb []byte\n\tp int\n\tn int\n}\n\nfunc (l *link) src() []byte {\n\treturn l.b[l.p:l.n]\n}\n\nfunc (l *link) dst() []byte {\n\treturn l.b[l.n:]\n}\n\n// Chain returns a Transformer that applies t in sequence.\nfunc Chain(t ...Transformer) Transformer {\n\tif len(t) == 0 {\n\t\treturn nop{}\n\t}\n\tc := &chain{link: make([]link, len(t)+1)}\n\tfor i, tt := range t {\n\t\tc.link[i].t = tt\n\t}\n\t// Allocate intermediate buffers.\n\tb := make([][defaultBufSize]byte, len(t)-1)\n\tfor i := range b {\n\t\tc.link[i+1].b = b[i][:]\n\t}\n\treturn c\n}\n\n// Reset resets the state of Chain. It calls Reset on all the Transformers.\nfunc (c *chain) Reset() {\n\tfor i, l := range c.link {\n\t\tif l.t != nil {\n\t\t\tl.t.Reset()\n\t\t}\n\t\tc.link[i].p, c.link[i].n = 0, 0\n\t}\n}\n\n// TODO: make chain use Span (is going to be fun to implement!)\n\n// Transform applies the transformers of c in sequence.\nfunc (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Set up src and dst in the chain.\n\tsrcL := &c.link[0]\n\tdstL := &c.link[len(c.link)-1]\n\tsrcL.b, srcL.p, srcL.n = src, 0, len(src)\n\tdstL.b, dstL.n = dst, 0\n\tvar lastFull, needProgress bool // for detecting progress\n\n\t// i is the index of the next Transformer to apply, for i in [low, high].\n\t// low is the lowest index for which c.link[low] may still produce bytes.\n\t// high is the highest index for which c.link[high] has a Transformer.\n\t// The error returned by Transform determines whether to increase or\n\t// decrease i. We try to completely fill a buffer before converting it.\n\tfor low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {\n\t\tin, out := &c.link[i], &c.link[i+1]\n\t\tnDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)\n\t\tout.n += nDst\n\t\tin.p += nSrc\n\t\tif i > 0 && in.p == in.n {\n\t\t\tin.p, in.n = 0, 0\n\t\t}\n\t\tneedProgress, lastFull = lastFull, false\n\t\tswitch err0 {\n\t\tcase ErrShortDst:\n\t\t\t// Process the destination buffer next. Return if we are already\n\t\t\t// at the high index.\n\t\t\tif i == high {\n\t\t\t\treturn dstL.n, srcL.p, ErrShortDst\n\t\t\t}\n\t\t\tif out.n != 0 {\n\t\t\t\ti++\n\t\t\t\t// If the Transformer at the next index is not able to process any\n\t\t\t\t// source bytes there is nothing that can be done to make progress\n\t\t\t\t// and the bytes will remain unprocessed. lastFull is used to\n\t\t\t\t// detect this and break out of the loop with a fatal error.\n\t\t\t\tlastFull = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The destination buffer was too small, but is completely empty.\n\t\t\t// Return a fatal error as this transformation can never complete.\n\t\t\tc.fatalError(i, errShortInternal)\n\t\tcase ErrShortSrc:\n\t\t\tif i == 0 {\n\t\t\t\t// Save ErrShortSrc in err. All other errors take precedence.\n\t\t\t\terr = ErrShortSrc\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Source bytes were depleted before filling up the destination buffer.\n\t\t\t// Verify we made some progress, move the remaining bytes to the errStart\n\t\t\t// and try to get more source bytes.\n\t\t\tif needProgress && nSrc == 0 || in.n-in.p == len(in.b) {\n\t\t\t\t// There were not enough source bytes to proceed while the source\n\t\t\t\t// buffer cannot hold any more bytes. Return a fatal error as this\n\t\t\t\t// transformation can never complete.\n\t\t\t\tc.fatalError(i, errShortInternal)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// in.b is an internal buffer and we can make progress.\n\t\t\tin.p, in.n = 0, copy(in.b, in.src())\n\t\t\tfallthrough\n\t\tcase nil:\n\t\t\t// if i == low, we have depleted the bytes at index i or any lower levels.\n\t\t\t// In that case we increase low and i. In all other cases we decrease i to\n\t\t\t// fetch more bytes before proceeding to the next index.\n\t\t\tif i > low {\n\t\t\t\ti--\n\t\t\t\tcontinue\n\t\t\t}\n\t\tdefault:\n\t\t\tc.fatalError(i, err0)\n\t\t}\n\t\t// Exhausted level low or fatal error: increase low and continue\n\t\t// to process the bytes accepted so far.\n\t\ti++\n\t\tlow = i\n\t}\n\n\t// If c.errStart > 0, this means we found a fatal error.  We will clear\n\t// all upstream buffers. At this point, no more progress can be made\n\t// downstream, as Transform would have bailed while handling ErrShortDst.\n\tif c.errStart > 0 {\n\t\tfor i := 1; i < c.errStart; i++ {\n\t\t\tc.link[i].p, c.link[i].n = 0, 0\n\t\t}\n\t\terr, c.errStart, c.err = c.err, 0, nil\n\t}\n\treturn dstL.n, srcL.p, err\n}\n\n// Deprecated: Use runes.Remove instead.\nfunc RemoveFunc(f func(r rune) bool) Transformer {\n\treturn removeF(f)\n}\n\ntype removeF func(r rune) bool\n\nfunc (removeF) Reset() {}\n\n// Transform implements the Transformer interface.\nfunc (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {\n\n\t\tif r = rune(src[0]); r < utf8.RuneSelf {\n\t\t\tsz = 1\n\t\t} else {\n\t\t\tr, sz = utf8.DecodeRune(src)\n\n\t\t\tif sz == 1 {\n\t\t\t\t// Invalid rune.\n\t\t\t\tif !atEOF && !utf8.FullRune(src) {\n\t\t\t\t\terr = ErrShortSrc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// We replace illegal bytes with RuneError. Not doing so might\n\t\t\t\t// otherwise turn a sequence of invalid UTF-8 into valid UTF-8.\n\t\t\t\t// The resulting byte sequence may subsequently contain runes\n\t\t\t\t// for which t(r) is true that were passed unnoticed.\n\t\t\t\tif !t(r) {\n\t\t\t\t\tif nDst+3 > len(dst) {\n\t\t\t\t\t\terr = ErrShortDst\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tnDst += copy(dst[nDst:], \"\\uFFFD\")\n\t\t\t\t}\n\t\t\t\tnSrc++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif !t(r) {\n\t\t\tif nDst+sz > len(dst) {\n\t\t\t\terr = ErrShortDst\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tnDst += copy(dst[nDst:], src[:sz])\n\t\t}\n\t\tnSrc += sz\n\t}\n\treturn\n}\n\n// grow returns a new []byte that is longer than b, and copies the first n bytes\n// of b to the start of the new slice.\nfunc grow(b []byte, n int) []byte {\n\tm := len(b)\n\tif m <= 32 {\n\t\tm = 64\n\t} else if m <= 256 {\n\t\tm *= 2\n\t} else {\n\t\tm += m >> 1\n\t}\n\tbuf := make([]byte, m)\n\tcopy(buf, b[:n])\n\treturn buf\n}\n\nconst initialBufSize = 128\n\n// String returns a string with the result of converting s[:n] using t, where\n// n <= len(s). If err == nil, n will be len(s). It calls Reset on t.\nfunc String(t Transformer, s string) (result string, n int, err error) {\n\tt.Reset()\n\tif s == \"\" {\n\t\t// Fast path for the common case for empty input. Results in about a\n\t\t// 86% reduction of running time for BenchmarkStringLowerEmpty.\n\t\tif _, _, err := t.Transform(nil, nil, true); err == nil {\n\t\t\treturn \"\", 0, nil\n\t\t}\n\t}\n\n\t// Allocate only once. Note that both dst and src escape when passed to\n\t// Transform.\n\tbuf := [2 * initialBufSize]byte{}\n\tdst := buf[:initialBufSize:initialBufSize]\n\tsrc := buf[initialBufSize : 2*initialBufSize]\n\n\t// The input string s is transformed in multiple chunks (starting with a\n\t// chunk size of initialBufSize). nDst and nSrc are per-chunk (or\n\t// per-Transform-call) indexes, pDst and pSrc are overall indexes.\n\tnDst, nSrc := 0, 0\n\tpDst, pSrc := 0, 0\n\n\t// pPrefix is the length of a common prefix: the first pPrefix bytes of the\n\t// result will equal the first pPrefix bytes of s. It is not guaranteed to\n\t// be the largest such value, but if pPrefix, len(result) and len(s) are\n\t// all equal after the final transform (i.e. calling Transform with atEOF\n\t// being true returned nil error) then we don't need to allocate a new\n\t// result string.\n\tpPrefix := 0\n\tfor {\n\t\t// Invariant: pDst == pPrefix && pSrc == pPrefix.\n\n\t\tn := copy(src, s[pSrc:])\n\t\tnDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// TODO:  let transformers implement an optional Spanner interface, akin\n\t\t// to norm's QuickSpan. This would even allow us to avoid any allocation.\n\t\tif !bytes.Equal(dst[:nDst], src[:nSrc]) {\n\t\t\tbreak\n\t\t}\n\t\tpPrefix = pSrc\n\t\tif err == ErrShortDst {\n\t\t\t// A buffer can only be short if a transformer modifies its input.\n\t\t\tbreak\n\t\t} else if err == ErrShortSrc {\n\t\t\tif nSrc == 0 {\n\t\t\t\t// No progress was made.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Equal so far and !atEOF, so continue checking.\n\t\t} else if err != nil || pPrefix == len(s) {\n\t\t\treturn string(s[:pPrefix]), pPrefix, err\n\t\t}\n\t}\n\t// Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.\n\n\t// We have transformed the first pSrc bytes of the input s to become pDst\n\t// transformed bytes. Those transformed bytes are discontiguous: the first\n\t// pPrefix of them equal s[:pPrefix] and the last nDst of them equal\n\t// dst[:nDst]. We copy them around, into a new dst buffer if necessary, so\n\t// that they become one contiguous slice: dst[:pDst].\n\tif pPrefix != 0 {\n\t\tnewDst := dst\n\t\tif pDst > len(newDst) {\n\t\t\tnewDst = make([]byte, len(s)+nDst-nSrc)\n\t\t}\n\t\tcopy(newDst[pPrefix:pDst], dst[:nDst])\n\t\tcopy(newDst[:pPrefix], s[:pPrefix])\n\t\tdst = newDst\n\t}\n\n\t// Prevent duplicate Transform calls with atEOF being true at the end of\n\t// the input. Also return if we have an unrecoverable error.\n\tif (err == nil && pSrc == len(s)) ||\n\t\t(err != nil && err != ErrShortDst && err != ErrShortSrc) {\n\t\treturn string(dst[:pDst]), pSrc, err\n\t}\n\n\t// Transform the remaining input, growing dst and src buffers as necessary.\n\tfor {\n\t\tn := copy(src, s[pSrc:])\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s))\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// If we got ErrShortDst or ErrShortSrc, do not grow as long as we can\n\t\t// make progress. This may avoid excessive allocations.\n\t\tif err == ErrShortDst {\n\t\t\tif nDst == 0 {\n\t\t\t\tdst = grow(dst, pDst)\n\t\t\t}\n\t\t} else if err == ErrShortSrc {\n\t\t\tif nSrc == 0 {\n\t\t\t\tsrc = grow(src, 0)\n\t\t\t}\n\t\t} else if err != nil || pSrc == len(s) {\n\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t}\n\t}\n}\n\n// Bytes returns a new byte slice with the result of converting b[:n] using t,\n// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.\nfunc Bytes(t Transformer, b []byte) (result []byte, n int, err error) {\n\treturn doAppend(t, 0, make([]byte, len(b)), b)\n}\n\n// Append appends the result of converting src[:n] using t to dst, where\n// n <= len(src), If err == nil, n will be len(src). It calls Reset on t.\nfunc Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {\n\tif len(dst) == cap(dst) {\n\t\tn := len(src) + len(dst) // It is okay for this to be 0.\n\t\tb := make([]byte, n)\n\t\tdst = b[:copy(b, dst)]\n\t}\n\treturn doAppend(t, len(dst), dst[:cap(dst)], src)\n}\n\nfunc doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {\n\tt.Reset()\n\tpSrc := 0\n\tfor {\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\t\tif err != ErrShortDst {\n\t\t\treturn dst[:pDst], pSrc, err\n\t\t}\n\n\t\t// Grow the destination buffer, but do not grow as long as we can make\n\t\t// progress. This may avoid excessive allocations.\n\t\tif nDst == 0 {\n\t\t\tdst = grow(dst, pDst)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/bidi.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:generate go run gen.go gen_trieval.go gen_ranges.go\n\n// Package bidi contains functionality for bidirectional text support.\n//\n// See https://www.unicode.org/reports/tr9.\n//\n// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways\n// and without notice.\npackage bidi // import \"golang.org/x/text/unicode/bidi\"\n\n// TODO:\n// The following functionality would not be hard to implement, but hinges on\n// the definition of a Segmenter interface. For now this is up to the user.\n// - Iterate over paragraphs\n// - Segmenter to iterate over runs directly from a given text.\n// Also:\n// - Transformer for reordering?\n// - Transformer (validator, really) for Bidi Rule.\n\n// This API tries to avoid dealing with embedding levels for now. Under the hood\n// these will be computed, but the question is to which extent the user should\n// know they exist. We should at some point allow the user to specify an\n// embedding hierarchy, though.\n\n// A Direction indicates the overall flow of text.\ntype Direction int\n\nconst (\n\t// LeftToRight indicates the text contains no right-to-left characters and\n\t// that either there are some left-to-right characters or the option\n\t// DefaultDirection(LeftToRight) was passed.\n\tLeftToRight Direction = iota\n\n\t// RightToLeft indicates the text contains no left-to-right characters and\n\t// that either there are some right-to-left characters or the option\n\t// DefaultDirection(RightToLeft) was passed.\n\tRightToLeft\n\n\t// Mixed indicates text contains both left-to-right and right-to-left\n\t// characters.\n\tMixed\n\n\t// Neutral means that text contains no left-to-right and right-to-left\n\t// characters and that no default direction has been set.\n\tNeutral\n)\n\ntype options struct{}\n\n// An Option is an option for Bidi processing.\ntype Option func(*options)\n\n// ICU allows the user to define embedding levels. This may be used, for example,\n// to use hierarchical structure of markup languages to define embeddings.\n// The following option may be a way to expose this functionality in this API.\n// // LevelFunc sets a function that associates nesting levels with the given text.\n// // The levels function will be called with monotonically increasing values for p.\n// func LevelFunc(levels func(p int) int) Option {\n// \tpanic(\"unimplemented\")\n// }\n\n// DefaultDirection sets the default direction for a Paragraph. The direction is\n// overridden if the text contains directional characters.\nfunc DefaultDirection(d Direction) Option {\n\tpanic(\"unimplemented\")\n}\n\n// A Paragraph holds a single Paragraph for Bidi processing.\ntype Paragraph struct {\n\t// buffers\n}\n\n// SetBytes configures p for the given paragraph text. It replaces text\n// previously set by SetBytes or SetString. If b contains a paragraph separator\n// it will only process the first paragraph and report the number of bytes\n// consumed from b including this separator. Error may be non-nil if options are\n// given.\nfunc (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) {\n\tpanic(\"unimplemented\")\n}\n\n// SetString configures p for the given paragraph text. It replaces text\n// previously set by SetBytes or SetString. If b contains a paragraph separator\n// it will only process the first paragraph and report the number of bytes\n// consumed from b including this separator. Error may be non-nil if options are\n// given.\nfunc (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) {\n\tpanic(\"unimplemented\")\n}\n\n// IsLeftToRight reports whether the principle direction of rendering for this\n// paragraphs is left-to-right. If this returns false, the principle direction\n// of rendering is right-to-left.\nfunc (p *Paragraph) IsLeftToRight() bool {\n\tpanic(\"unimplemented\")\n}\n\n// Direction returns the direction of the text of this paragraph.\n//\n// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.\nfunc (p *Paragraph) Direction() Direction {\n\tpanic(\"unimplemented\")\n}\n\n// RunAt reports the Run at the given position of the input text.\n//\n// This method can be used for computing line breaks on paragraphs.\nfunc (p *Paragraph) RunAt(pos int) Run {\n\tpanic(\"unimplemented\")\n}\n\n// Order computes the visual ordering of all the runs in a Paragraph.\nfunc (p *Paragraph) Order() (Ordering, error) {\n\tpanic(\"unimplemented\")\n}\n\n// Line computes the visual ordering of runs for a single line starting and\n// ending at the given positions in the original text.\nfunc (p *Paragraph) Line(start, end int) (Ordering, error) {\n\tpanic(\"unimplemented\")\n}\n\n// An Ordering holds the computed visual order of runs of a Paragraph. Calling\n// SetBytes or SetString on the originating Paragraph invalidates an Ordering.\n// The methods of an Ordering should only be called by one goroutine at a time.\ntype Ordering struct{}\n\n// Direction reports the directionality of the runs.\n//\n// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.\nfunc (o *Ordering) Direction() Direction {\n\tpanic(\"unimplemented\")\n}\n\n// NumRuns returns the number of runs.\nfunc (o *Ordering) NumRuns() int {\n\tpanic(\"unimplemented\")\n}\n\n// Run returns the ith run within the ordering.\nfunc (o *Ordering) Run(i int) Run {\n\tpanic(\"unimplemented\")\n}\n\n// TODO: perhaps with options.\n// // Reorder creates a reader that reads the runes in visual order per character.\n// // Modifiers remain after the runes they modify.\n// func (l *Runs) Reorder() io.Reader {\n// \tpanic(\"unimplemented\")\n// }\n\n// A Run is a continuous sequence of characters of a single direction.\ntype Run struct {\n}\n\n// String returns the text of the run in its original order.\nfunc (r *Run) String() string {\n\tpanic(\"unimplemented\")\n}\n\n// Bytes returns the text of the run in its original order.\nfunc (r *Run) Bytes() []byte {\n\tpanic(\"unimplemented\")\n}\n\n// TODO: methods for\n// - Display order\n// - headers and footers\n// - bracket replacement.\n\n// Direction reports the direction of the run.\nfunc (r *Run) Direction() Direction {\n\tpanic(\"unimplemented\")\n}\n\n// Position of the Run within the text passed to SetBytes or SetString of the\n// originating Paragraph value.\nfunc (r *Run) Pos() (start, end int) {\n\tpanic(\"unimplemented\")\n}\n\n// AppendReverse reverses the order of characters of in, appends them to out,\n// and returns the result. Modifiers will still follow the runes they modify.\n// Brackets are replaced with their counterparts.\nfunc AppendReverse(out, in []byte) []byte {\n\tpanic(\"unimplemented\")\n}\n\n// ReverseString reverses the order of characters in s and returns a new string.\n// Modifiers will still follow the runes they modify. Brackets are replaced with\n// their counterparts.\nfunc ReverseString(s string) string {\n\tpanic(\"unimplemented\")\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/bracket.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport (\n\t\"container/list\"\n\t\"fmt\"\n\t\"sort\"\n)\n\n// This file contains a port of the reference implementation of the\n// Bidi Parentheses Algorithm:\n// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java\n//\n// The implementation in this file covers definitions BD14-BD16 and rule N0\n// of UAX#9.\n//\n// Some preprocessing is done for each rune before data is passed to this\n// algorithm:\n//  - opening and closing brackets are identified\n//  - a bracket pair type, like '(' and ')' is assigned a unique identifier that\n//    is identical for the opening and closing bracket. It is left to do these\n//    mappings.\n//  - The BPA algorithm requires that bracket characters that are canonical\n//    equivalents of each other be able to be substituted for each other.\n//    It is the responsibility of the caller to do this canonicalization.\n//\n// In implementing BD16, this implementation departs slightly from the \"logical\"\n// algorithm defined in UAX#9. In particular, the stack referenced there\n// supports operations that go beyond a \"basic\" stack. An equivalent\n// implementation based on a linked list is used here.\n\n// Bidi_Paired_Bracket_Type\n// BD14. An opening paired bracket is a character whose\n// Bidi_Paired_Bracket_Type property value is Open.\n//\n// BD15. A closing paired bracket is a character whose\n// Bidi_Paired_Bracket_Type property value is Close.\ntype bracketType byte\n\nconst (\n\tbpNone bracketType = iota\n\tbpOpen\n\tbpClose\n)\n\n// bracketPair holds a pair of index values for opening and closing bracket\n// location of a bracket pair.\ntype bracketPair struct {\n\topener int\n\tcloser int\n}\n\nfunc (b *bracketPair) String() string {\n\treturn fmt.Sprintf(\"(%v, %v)\", b.opener, b.closer)\n}\n\n// bracketPairs is a slice of bracketPairs with a sort.Interface implementation.\ntype bracketPairs []bracketPair\n\nfunc (b bracketPairs) Len() int           { return len(b) }\nfunc (b bracketPairs) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }\nfunc (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener }\n\n// resolvePairedBrackets runs the paired bracket part of the UBA algorithm.\n//\n// For each rune, it takes the indexes into the original string, the class the\n// bracket type (in pairTypes) and the bracket identifier (pairValues). It also\n// takes the direction type for the start-of-sentence and the embedding level.\n//\n// The identifiers for bracket types are the rune of the canonicalized opening\n// bracket for brackets (open or close) or 0 for runes that are not brackets.\nfunc resolvePairedBrackets(s *isolatingRunSequence) {\n\tp := bracketPairer{\n\t\tsos:              s.sos,\n\t\topeners:          list.New(),\n\t\tcodesIsolatedRun: s.types,\n\t\tindexes:          s.indexes,\n\t}\n\tdirEmbed := L\n\tif s.level&1 != 0 {\n\t\tdirEmbed = R\n\t}\n\tp.locateBrackets(s.p.pairTypes, s.p.pairValues)\n\tp.resolveBrackets(dirEmbed, s.p.initialTypes)\n}\n\ntype bracketPairer struct {\n\tsos Class // direction corresponding to start of sequence\n\n\t// The following is a restatement of BD 16 using non-algorithmic language.\n\t//\n\t// A bracket pair is a pair of characters consisting of an opening\n\t// paired bracket and a closing paired bracket such that the\n\t// Bidi_Paired_Bracket property value of the former equals the latter,\n\t// subject to the following constraints.\n\t// - both characters of a pair occur in the same isolating run sequence\n\t// - the closing character of a pair follows the opening character\n\t// - any bracket character can belong at most to one pair, the earliest possible one\n\t// - any bracket character not part of a pair is treated like an ordinary character\n\t// - pairs may nest properly, but their spans may not overlap otherwise\n\n\t// Bracket characters with canonical decompositions are supposed to be\n\t// treated as if they had been normalized, to allow normalized and non-\n\t// normalized text to give the same result. In this implementation that step\n\t// is pushed out to the caller. The caller has to ensure that the pairValue\n\t// slices contain the rune of the opening bracket after normalization for\n\t// any opening or closing bracket.\n\n\topeners *list.List // list of positions for opening brackets\n\n\t// bracket pair positions sorted by location of opening bracket\n\tpairPositions bracketPairs\n\n\tcodesIsolatedRun []Class // directional bidi codes for an isolated run\n\tindexes          []int   // array of index values into the original string\n\n}\n\n// matchOpener reports whether characters at given positions form a matching\n// bracket pair.\nfunc (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool {\n\treturn pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]]\n}\n\nconst maxPairingDepth = 63\n\n// locateBrackets locates matching bracket pairs according to BD16.\n//\n// This implementation uses a linked list instead of a stack, because, while\n// elements are added at the front (like a push) they are not generally removed\n// in atomic 'pop' operations, reducing the benefit of the stack archetype.\nfunc (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) {\n\t// traverse the run\n\t// do that explicitly (not in a for-each) so we can record position\n\tfor i, index := range p.indexes {\n\n\t\t// look at the bracket type for each character\n\t\tif pairTypes[index] == bpNone || p.codesIsolatedRun[i] != ON {\n\t\t\t// continue scanning\n\t\t\tcontinue\n\t\t}\n\t\tswitch pairTypes[index] {\n\t\tcase bpOpen:\n\t\t\t// check if maximum pairing depth reached\n\t\t\tif p.openers.Len() == maxPairingDepth {\n\t\t\t\tp.openers.Init()\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// remember opener location, most recent first\n\t\t\tp.openers.PushFront(i)\n\n\t\tcase bpClose:\n\t\t\t// see if there is a match\n\t\t\tcount := 0\n\t\t\tfor elem := p.openers.Front(); elem != nil; elem = elem.Next() {\n\t\t\t\tcount++\n\t\t\t\topener := elem.Value.(int)\n\t\t\t\tif p.matchOpener(pairValues, opener, i) {\n\t\t\t\t\t// if the opener matches, add nested pair to the ordered list\n\t\t\t\t\tp.pairPositions = append(p.pairPositions, bracketPair{opener, i})\n\t\t\t\t\t// remove up to and including matched opener\n\t\t\t\t\tfor ; count > 0; count-- {\n\t\t\t\t\t\tp.openers.Remove(p.openers.Front())\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsort.Sort(p.pairPositions)\n\t\t\t// if we get here, the closing bracket matched no openers\n\t\t\t// and gets ignored\n\t\t}\n\t}\n}\n\n// Bracket pairs within an isolating run sequence are processed as units so\n// that both the opening and the closing paired bracket in a pair resolve to\n// the same direction.\n//\n// N0. Process bracket pairs in an isolating run sequence sequentially in\n// the logical order of the text positions of the opening paired brackets\n// using the logic given below. Within this scope, bidirectional types EN\n// and AN are treated as R.\n//\n// Identify the bracket pairs in the current isolating run sequence\n// according to BD16. For each bracket-pair element in the list of pairs of\n// text positions:\n//\n// a Inspect the bidirectional types of the characters enclosed within the\n// bracket pair.\n//\n// b If any strong type (either L or R) matching the embedding direction is\n// found, set the type for both brackets in the pair to match the embedding\n// direction.\n//\n// o [ e ] o -> o e e e o\n//\n// o [ o e ] -> o e o e e\n//\n// o [ NI e ] -> o e NI e e\n//\n// c Otherwise, if a strong type (opposite the embedding direction) is\n// found, test for adjacent strong types as follows: 1 First, check\n// backwards before the opening paired bracket until the first strong type\n// (L, R, or sos) is found. If that first preceding strong type is opposite\n// the embedding direction, then set the type for both brackets in the pair\n// to that type. 2 Otherwise, set the type for both brackets in the pair to\n// the embedding direction.\n//\n// o [ o ] e -> o o o o e\n//\n// o [ o NI ] o -> o o o NI o o\n//\n// e [ o ] o -> e e o e o\n//\n// e [ o ] e -> e e o e e\n//\n// e ( o [ o ] NI ) e -> e e o o o o NI e e\n//\n// d Otherwise, do not set the type for the current bracket pair. Note that\n// if the enclosed text contains no strong types the paired brackets will\n// both resolve to the same level when resolved individually using rules N1\n// and N2.\n//\n// e ( NI ) o -> e ( NI ) o\n\n// getStrongTypeN0 maps character's directional code to strong type as required\n// by rule N0.\n//\n// TODO: have separate type for \"strong\" directionality.\nfunc (p *bracketPairer) getStrongTypeN0(index int) Class {\n\tswitch p.codesIsolatedRun[index] {\n\t// in the scope of N0, number types are treated as R\n\tcase EN, AN, AL, R:\n\t\treturn R\n\tcase L:\n\t\treturn L\n\tdefault:\n\t\treturn ON\n\t}\n}\n\n// classifyPairContent reports the strong types contained inside a Bracket Pair,\n// assuming the given embedding direction.\n//\n// It returns ON if no strong type is found. If a single strong type is found,\n// it returns this type. Otherwise it returns the embedding direction.\n//\n// TODO: use separate type for \"strong\" directionality.\nfunc (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class {\n\tdirOpposite := ON\n\tfor i := loc.opener + 1; i < loc.closer; i++ {\n\t\tdir := p.getStrongTypeN0(i)\n\t\tif dir == ON {\n\t\t\tcontinue\n\t\t}\n\t\tif dir == dirEmbed {\n\t\t\treturn dir // type matching embedding direction found\n\t\t}\n\t\tdirOpposite = dir\n\t}\n\t// return ON if no strong type found, or class opposite to dirEmbed\n\treturn dirOpposite\n}\n\n// classBeforePair determines which strong types are present before a Bracket\n// Pair. Return R or L if strong type found, otherwise ON.\nfunc (p *bracketPairer) classBeforePair(loc bracketPair) Class {\n\tfor i := loc.opener - 1; i >= 0; i-- {\n\t\tif dir := p.getStrongTypeN0(i); dir != ON {\n\t\t\treturn dir\n\t\t}\n\t}\n\t// no strong types found, return sos\n\treturn p.sos\n}\n\n// assignBracketType implements rule N0 for a single bracket pair.\nfunc (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class, initialTypes []Class) {\n\t// rule \"N0, a\", inspect contents of pair\n\tdirPair := p.classifyPairContent(loc, dirEmbed)\n\n\t// dirPair is now L, R, or N (no strong type found)\n\n\t// the following logical tests are performed out of order compared to\n\t// the statement of the rules but yield the same results\n\tif dirPair == ON {\n\t\treturn // case \"d\" - nothing to do\n\t}\n\n\tif dirPair != dirEmbed {\n\t\t// case \"c\": strong type found, opposite - check before (c.1)\n\t\tdirPair = p.classBeforePair(loc)\n\t\tif dirPair == dirEmbed || dirPair == ON {\n\t\t\t// no strong opposite type found before - use embedding (c.2)\n\t\t\tdirPair = dirEmbed\n\t\t}\n\t}\n\t// else: case \"b\", strong type found matching embedding,\n\t// no explicit action needed, as dirPair is already set to embedding\n\t// direction\n\n\t// set the bracket types to the type found\n\tp.setBracketsToType(loc, dirPair, initialTypes)\n}\n\nfunc (p *bracketPairer) setBracketsToType(loc bracketPair, dirPair Class, initialTypes []Class) {\n\tp.codesIsolatedRun[loc.opener] = dirPair\n\tp.codesIsolatedRun[loc.closer] = dirPair\n\n\tfor i := loc.opener + 1; i < loc.closer; i++ {\n\t\tindex := p.indexes[i]\n\t\tif initialTypes[index] != NSM {\n\t\t\tbreak\n\t\t}\n\t\tp.codesIsolatedRun[i] = dirPair\n\t}\n\n\tfor i := loc.closer + 1; i < len(p.indexes); i++ {\n\t\tindex := p.indexes[i]\n\t\tif initialTypes[index] != NSM {\n\t\t\tbreak\n\t\t}\n\t\tp.codesIsolatedRun[i] = dirPair\n\t}\n}\n\n// resolveBrackets implements rule N0 for a list of pairs.\nfunc (p *bracketPairer) resolveBrackets(dirEmbed Class, initialTypes []Class) {\n\tfor _, loc := range p.pairPositions {\n\t\tp.assignBracketType(loc, dirEmbed, initialTypes)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/core.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport \"log\"\n\n// This implementation is a port based on the reference implementation found at:\n// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/\n//\n// described in Unicode Bidirectional Algorithm (UAX #9).\n//\n// Input:\n// There are two levels of input to the algorithm, since clients may prefer to\n// supply some information from out-of-band sources rather than relying on the\n// default behavior.\n//\n// - Bidi class array\n// - Bidi class array, with externally supplied base line direction\n//\n// Output:\n// Output is separated into several stages:\n//\n//  - levels array over entire paragraph\n//  - reordering array over entire paragraph\n//  - levels array over line\n//  - reordering array over line\n//\n// Note that for conformance to the Unicode Bidirectional Algorithm,\n// implementations are only required to generate correct reordering and\n// character directionality (odd or even levels) over a line. Generating\n// identical level arrays over a line is not required. Bidi explicit format\n// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and\n// positions as long as the rest of the input is properly reordered.\n//\n// As the algorithm is defined to operate on a single paragraph at a time, this\n// implementation is written to handle single paragraphs. Thus rule P1 is\n// presumed by this implementation-- the data provided to the implementation is\n// assumed to be a single paragraph, and either contains no 'B' codes, or a\n// single 'B' code at the end of the input. 'B' is allowed as input to\n// illustrate how the algorithm assigns it a level.\n//\n// Also note that rules L3 and L4 depend on the rendering engine that uses the\n// result of the bidi algorithm. This implementation assumes that the rendering\n// engine expects combining marks in visual order (e.g. to the left of their\n// base character in RTL runs) and that it adjusts the glyphs used to render\n// mirrored characters that are in RTL runs so that they render appropriately.\n\n// level is the embedding level of a character. Even embedding levels indicate\n// left-to-right order and odd levels indicate right-to-left order. The special\n// level of -1 is reserved for undefined order.\ntype level int8\n\nconst implicitLevel level = -1\n\n// in returns if x is equal to any of the values in set.\nfunc (c Class) in(set ...Class) bool {\n\tfor _, s := range set {\n\t\tif c == s {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// A paragraph contains the state of a paragraph.\ntype paragraph struct {\n\tinitialTypes []Class\n\n\t// Arrays of properties needed for paired bracket evaluation in N0\n\tpairTypes  []bracketType // paired Bracket types for paragraph\n\tpairValues []rune        // rune for opening bracket or pbOpen and pbClose; 0 for pbNone\n\n\tembeddingLevel level // default: = implicitLevel;\n\n\t// at the paragraph levels\n\tresultTypes  []Class\n\tresultLevels []level\n\n\t// Index of matching PDI for isolate initiator characters. For other\n\t// characters, the value of matchingPDI will be set to -1. For isolate\n\t// initiators with no matching PDI, matchingPDI will be set to the length of\n\t// the input string.\n\tmatchingPDI []int\n\n\t// Index of matching isolate initiator for PDI characters. For other\n\t// characters, and for PDIs with no matching isolate initiator, the value of\n\t// matchingIsolateInitiator will be set to -1.\n\tmatchingIsolateInitiator []int\n}\n\n// newParagraph initializes a paragraph. The user needs to supply a few arrays\n// corresponding to the preprocessed text input. The types correspond to the\n// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for\n// each rune. pairValues provides a unique bracket class identifier for each\n// rune (suggested is the rune of the open bracket for opening and matching\n// close brackets, after normalization). The embedding levels are optional, but\n// may be supplied to encode embedding levels of styled text.\n//\n// TODO: return an error.\nfunc newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) *paragraph {\n\tvalidateTypes(types)\n\tvalidatePbTypes(pairTypes)\n\tvalidatePbValues(pairValues, pairTypes)\n\tvalidateParagraphEmbeddingLevel(levels)\n\n\tp := &paragraph{\n\t\tinitialTypes:   append([]Class(nil), types...),\n\t\tembeddingLevel: levels,\n\n\t\tpairTypes:  pairTypes,\n\t\tpairValues: pairValues,\n\n\t\tresultTypes: append([]Class(nil), types...),\n\t}\n\tp.run()\n\treturn p\n}\n\nfunc (p *paragraph) Len() int { return len(p.initialTypes) }\n\n// The algorithm. Does not include line-based processing (Rules L1, L2).\n// These are applied later in the line-based phase of the algorithm.\nfunc (p *paragraph) run() {\n\tp.determineMatchingIsolates()\n\n\t// 1) determining the paragraph level\n\t// Rule P1 is the requirement for entering this algorithm.\n\t// Rules P2, P3.\n\t// If no externally supplied paragraph embedding level, use default.\n\tif p.embeddingLevel == implicitLevel {\n\t\tp.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len())\n\t}\n\n\t// Initialize result levels to paragraph embedding level.\n\tp.resultLevels = make([]level, p.Len())\n\tsetLevels(p.resultLevels, p.embeddingLevel)\n\n\t// 2) Explicit levels and directions\n\t// Rules X1-X8.\n\tp.determineExplicitEmbeddingLevels()\n\n\t// Rule X9.\n\t// We do not remove the embeddings, the overrides, the PDFs, and the BNs\n\t// from the string explicitly. But they are not copied into isolating run\n\t// sequences when they are created, so they are removed for all\n\t// practical purposes.\n\n\t// Rule X10.\n\t// Run remainder of algorithm one isolating run sequence at a time\n\tfor _, seq := range p.determineIsolatingRunSequences() {\n\t\t// 3) resolving weak types\n\t\t// Rules W1-W7.\n\t\tseq.resolveWeakTypes()\n\n\t\t// 4a) resolving paired brackets\n\t\t// Rule N0\n\t\tresolvePairedBrackets(seq)\n\n\t\t// 4b) resolving neutral types\n\t\t// Rules N1-N3.\n\t\tseq.resolveNeutralTypes()\n\n\t\t// 5) resolving implicit embedding levels\n\t\t// Rules I1, I2.\n\t\tseq.resolveImplicitLevels()\n\n\t\t// Apply the computed levels and types\n\t\tseq.applyLevelsAndTypes()\n\t}\n\n\t// Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and\n\t// BNs. This is for convenience, so the resulting level array will have\n\t// a value for every character.\n\tp.assignLevelsToCharactersRemovedByX9()\n}\n\n// determineMatchingIsolates determines the matching PDI for each isolate\n// initiator and vice versa.\n//\n// Definition BD9.\n//\n// At the end of this function:\n//\n//  - The member variable matchingPDI is set to point to the index of the\n//    matching PDI character for each isolate initiator character. If there is\n//    no matching PDI, it is set to the length of the input text. For other\n//    characters, it is set to -1.\n//  - The member variable matchingIsolateInitiator is set to point to the\n//    index of the matching isolate initiator character for each PDI character.\n//    If there is no matching isolate initiator, or the character is not a PDI,\n//    it is set to -1.\nfunc (p *paragraph) determineMatchingIsolates() {\n\tp.matchingPDI = make([]int, p.Len())\n\tp.matchingIsolateInitiator = make([]int, p.Len())\n\n\tfor i := range p.matchingIsolateInitiator {\n\t\tp.matchingIsolateInitiator[i] = -1\n\t}\n\n\tfor i := range p.matchingPDI {\n\t\tp.matchingPDI[i] = -1\n\n\t\tif t := p.resultTypes[i]; t.in(LRI, RLI, FSI) {\n\t\t\tdepthCounter := 1\n\t\t\tfor j := i + 1; j < p.Len(); j++ {\n\t\t\t\tif u := p.resultTypes[j]; u.in(LRI, RLI, FSI) {\n\t\t\t\t\tdepthCounter++\n\t\t\t\t} else if u == PDI {\n\t\t\t\t\tif depthCounter--; depthCounter == 0 {\n\t\t\t\t\t\tp.matchingPDI[i] = j\n\t\t\t\t\t\tp.matchingIsolateInitiator[j] = i\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif p.matchingPDI[i] == -1 {\n\t\t\t\tp.matchingPDI[i] = p.Len()\n\t\t\t}\n\t\t}\n\t}\n}\n\n// determineParagraphEmbeddingLevel reports the resolved paragraph direction of\n// the substring limited by the given range [start, end).\n//\n// Determines the paragraph level based on rules P2, P3. This is also used\n// in rule X5c to find if an FSI should resolve to LRI or RLI.\nfunc (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level {\n\tvar strongType Class = unknownClass\n\n\t// Rule P2.\n\tfor i := start; i < end; i++ {\n\t\tif t := p.resultTypes[i]; t.in(L, AL, R) {\n\t\t\tstrongType = t\n\t\t\tbreak\n\t\t} else if t.in(FSI, LRI, RLI) {\n\t\t\ti = p.matchingPDI[i] // skip over to the matching PDI\n\t\t\tif i > end {\n\t\t\t\tlog.Panic(\"assert (i <= end)\")\n\t\t\t}\n\t\t}\n\t}\n\t// Rule P3.\n\tswitch strongType {\n\tcase unknownClass: // none found\n\t\t// default embedding level when no strong types found is 0.\n\t\treturn 0\n\tcase L:\n\t\treturn 0\n\tdefault: // AL, R\n\t\treturn 1\n\t}\n}\n\nconst maxDepth = 125\n\n// This stack will store the embedding levels and override and isolated\n// statuses\ntype directionalStatusStack struct {\n\tstackCounter        int\n\tembeddingLevelStack [maxDepth + 1]level\n\toverrideStatusStack [maxDepth + 1]Class\n\tisolateStatusStack  [maxDepth + 1]bool\n}\n\nfunc (s *directionalStatusStack) empty()     { s.stackCounter = 0 }\nfunc (s *directionalStatusStack) pop()       { s.stackCounter-- }\nfunc (s *directionalStatusStack) depth() int { return s.stackCounter }\n\nfunc (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) {\n\ts.embeddingLevelStack[s.stackCounter] = level\n\ts.overrideStatusStack[s.stackCounter] = overrideStatus\n\ts.isolateStatusStack[s.stackCounter] = isolateStatus\n\ts.stackCounter++\n}\n\nfunc (s *directionalStatusStack) lastEmbeddingLevel() level {\n\treturn s.embeddingLevelStack[s.stackCounter-1]\n}\n\nfunc (s *directionalStatusStack) lastDirectionalOverrideStatus() Class {\n\treturn s.overrideStatusStack[s.stackCounter-1]\n}\n\nfunc (s *directionalStatusStack) lastDirectionalIsolateStatus() bool {\n\treturn s.isolateStatusStack[s.stackCounter-1]\n}\n\n// Determine explicit levels using rules X1 - X8\nfunc (p *paragraph) determineExplicitEmbeddingLevels() {\n\tvar stack directionalStatusStack\n\tvar overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int\n\n\t// Rule X1.\n\tstack.push(p.embeddingLevel, ON, false)\n\n\tfor i, t := range p.resultTypes {\n\t\t// Rules X2, X3, X4, X5, X5a, X5b, X5c\n\t\tswitch t {\n\t\tcase RLE, LRE, RLO, LRO, RLI, LRI, FSI:\n\t\t\tisIsolate := t.in(RLI, LRI, FSI)\n\t\t\tisRTL := t.in(RLE, RLO, RLI)\n\n\t\t\t// override if this is an FSI that resolves to RLI\n\t\t\tif t == FSI {\n\t\t\t\tisRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1)\n\t\t\t}\n\t\t\tif isIsolate {\n\t\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\t\t\t\tif stack.lastDirectionalOverrideStatus() != ON {\n\t\t\t\t\tp.resultTypes[i] = stack.lastDirectionalOverrideStatus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar newLevel level\n\t\t\tif isRTL {\n\t\t\t\t// least greater odd\n\t\t\t\tnewLevel = (stack.lastEmbeddingLevel() + 1) | 1\n\t\t\t} else {\n\t\t\t\t// least greater even\n\t\t\t\tnewLevel = (stack.lastEmbeddingLevel() + 2) &^ 1\n\t\t\t}\n\n\t\t\tif newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 {\n\t\t\t\tif isIsolate {\n\t\t\t\t\tvalidIsolateCount++\n\t\t\t\t}\n\t\t\t\t// Push new embedding level, override status, and isolated\n\t\t\t\t// status.\n\t\t\t\t// No check for valid stack counter, since the level check\n\t\t\t\t// suffices.\n\t\t\t\tswitch t {\n\t\t\t\tcase LRO:\n\t\t\t\t\tstack.push(newLevel, L, isIsolate)\n\t\t\t\tcase RLO:\n\t\t\t\t\tstack.push(newLevel, R, isIsolate)\n\t\t\t\tdefault:\n\t\t\t\t\tstack.push(newLevel, ON, isIsolate)\n\t\t\t\t}\n\t\t\t\t// Not really part of the spec\n\t\t\t\tif !isIsolate {\n\t\t\t\t\tp.resultLevels[i] = newLevel\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// This is an invalid explicit formatting character,\n\t\t\t\t// so apply the \"Otherwise\" part of rules X2-X5b.\n\t\t\t\tif isIsolate {\n\t\t\t\t\toverflowIsolateCount++\n\t\t\t\t} else { // !isIsolate\n\t\t\t\t\tif overflowIsolateCount == 0 {\n\t\t\t\t\t\toverflowEmbeddingCount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Rule X6a\n\t\tcase PDI:\n\t\t\tif overflowIsolateCount > 0 {\n\t\t\t\toverflowIsolateCount--\n\t\t\t} else if validIsolateCount == 0 {\n\t\t\t\t// do nothing\n\t\t\t} else {\n\t\t\t\toverflowEmbeddingCount = 0\n\t\t\t\tfor !stack.lastDirectionalIsolateStatus() {\n\t\t\t\t\tstack.pop()\n\t\t\t\t}\n\t\t\t\tstack.pop()\n\t\t\t\tvalidIsolateCount--\n\t\t\t}\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\n\t\t// Rule X7\n\t\tcase PDF:\n\t\t\t// Not really part of the spec\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\n\t\t\tif overflowIsolateCount > 0 {\n\t\t\t\t// do nothing\n\t\t\t} else if overflowEmbeddingCount > 0 {\n\t\t\t\toverflowEmbeddingCount--\n\t\t\t} else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 {\n\t\t\t\tstack.pop()\n\t\t\t}\n\n\t\tcase B: // paragraph separator.\n\t\t\t// Rule X8.\n\n\t\t\t// These values are reset for clarity, in this implementation B\n\t\t\t// can only occur as the last code in the array.\n\t\t\tstack.empty()\n\t\t\toverflowIsolateCount = 0\n\t\t\toverflowEmbeddingCount = 0\n\t\t\tvalidIsolateCount = 0\n\t\t\tp.resultLevels[i] = p.embeddingLevel\n\n\t\tdefault:\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\t\t\tif stack.lastDirectionalOverrideStatus() != ON {\n\t\t\t\tp.resultTypes[i] = stack.lastDirectionalOverrideStatus()\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype isolatingRunSequence struct {\n\tp *paragraph\n\n\tindexes []int // indexes to the original string\n\n\ttypes          []Class // type of each character using the index\n\tresolvedLevels []level // resolved levels after application of rules\n\tlevel          level\n\tsos, eos       Class\n}\n\nfunc (i *isolatingRunSequence) Len() int { return len(i.indexes) }\n\nfunc maxLevel(a, b level) level {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,\n// \t\t\t either L or R, for each isolating run sequence.\nfunc (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {\n\tlength := len(indexes)\n\ttypes := make([]Class, length)\n\tfor i, x := range indexes {\n\t\ttypes[i] = p.resultTypes[x]\n\t}\n\n\t// assign level, sos and eos\n\tprevChar := indexes[0] - 1\n\tfor prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) {\n\t\tprevChar--\n\t}\n\tprevLevel := p.embeddingLevel\n\tif prevChar >= 0 {\n\t\tprevLevel = p.resultLevels[prevChar]\n\t}\n\n\tvar succLevel level\n\tlastType := types[length-1]\n\tif lastType.in(LRI, RLI, FSI) {\n\t\tsuccLevel = p.embeddingLevel\n\t} else {\n\t\t// the first character after the end of run sequence\n\t\tlimit := indexes[length-1] + 1\n\t\tfor ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ {\n\n\t\t}\n\t\tsuccLevel = p.embeddingLevel\n\t\tif limit < p.Len() {\n\t\t\tsuccLevel = p.resultLevels[limit]\n\t\t}\n\t}\n\tlevel := p.resultLevels[indexes[0]]\n\treturn &isolatingRunSequence{\n\t\tp:       p,\n\t\tindexes: indexes,\n\t\ttypes:   types,\n\t\tlevel:   level,\n\t\tsos:     typeForLevel(maxLevel(prevLevel, level)),\n\t\teos:     typeForLevel(maxLevel(succLevel, level)),\n\t}\n}\n\n// Resolving weak types Rules W1-W7.\n//\n// Note that some weak types (EN, AN) remain after this processing is\n// complete.\nfunc (s *isolatingRunSequence) resolveWeakTypes() {\n\n\t// on entry, only these types remain\n\ts.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI)\n\n\t// Rule W1.\n\t// Changes all NSMs.\n\tpreceedingCharacterType := s.sos\n\tfor i, t := range s.types {\n\t\tif t == NSM {\n\t\t\ts.types[i] = preceedingCharacterType\n\t\t} else {\n\t\t\tif t.in(LRI, RLI, FSI, PDI) {\n\t\t\t\tpreceedingCharacterType = ON\n\t\t\t}\n\t\t\tpreceedingCharacterType = t\n\t\t}\n\t}\n\n\t// Rule W2.\n\t// EN does not change at the start of the run, because sos != AL.\n\tfor i, t := range s.types {\n\t\tif t == EN {\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tif t := s.types[j]; t.in(L, R, AL) {\n\t\t\t\t\tif t == AL {\n\t\t\t\t\t\ts.types[i] = AN\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule W3.\n\tfor i, t := range s.types {\n\t\tif t == AL {\n\t\t\ts.types[i] = R\n\t\t}\n\t}\n\n\t// Rule W4.\n\t// Since there must be values on both sides for this rule to have an\n\t// effect, the scan skips the first and last value.\n\t//\n\t// Although the scan proceeds left to right, and changes the type\n\t// values in a way that would appear to affect the computations\n\t// later in the scan, there is actually no problem. A change in the\n\t// current value can only affect the value to its immediate right,\n\t// and only affect it if it is ES or CS. But the current value can\n\t// only change if the value to its right is not ES or CS. Thus\n\t// either the current value will not change, or its change will have\n\t// no effect on the remainder of the analysis.\n\n\tfor i := 1; i < s.Len()-1; i++ {\n\t\tt := s.types[i]\n\t\tif t == ES || t == CS {\n\t\t\tprevSepType := s.types[i-1]\n\t\t\tsuccSepType := s.types[i+1]\n\t\t\tif prevSepType == EN && succSepType == EN {\n\t\t\t\ts.types[i] = EN\n\t\t\t} else if s.types[i] == CS && prevSepType == AN && succSepType == AN {\n\t\t\t\ts.types[i] = AN\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule W5.\n\tfor i, t := range s.types {\n\t\tif t == ET {\n\t\t\t// locate end of sequence\n\t\t\trunStart := i\n\t\t\trunEnd := s.findRunLimit(runStart, ET)\n\n\t\t\t// check values at ends of sequence\n\t\t\tt := s.sos\n\t\t\tif runStart > 0 {\n\t\t\t\tt = s.types[runStart-1]\n\t\t\t}\n\t\t\tif t != EN {\n\t\t\t\tt = s.eos\n\t\t\t\tif runEnd < len(s.types) {\n\t\t\t\t\tt = s.types[runEnd]\n\t\t\t\t}\n\t\t\t}\n\t\t\tif t == EN {\n\t\t\t\tsetTypes(s.types[runStart:runEnd], EN)\n\t\t\t}\n\t\t\t// continue at end of sequence\n\t\t\ti = runEnd\n\t\t}\n\t}\n\n\t// Rule W6.\n\tfor i, t := range s.types {\n\t\tif t.in(ES, ET, CS) {\n\t\t\ts.types[i] = ON\n\t\t}\n\t}\n\n\t// Rule W7.\n\tfor i, t := range s.types {\n\t\tif t == EN {\n\t\t\t// set default if we reach start of run\n\t\t\tprevStrongType := s.sos\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tt = s.types[j]\n\t\t\t\tif t == L || t == R { // AL's have been changed to R\n\t\t\t\t\tprevStrongType = t\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif prevStrongType == L {\n\t\t\t\ts.types[i] = L\n\t\t\t}\n\t\t}\n\t}\n}\n\n// 6) resolving neutral types Rules N1-N2.\nfunc (s *isolatingRunSequence) resolveNeutralTypes() {\n\n\t// on entry, only these types can be in resultTypes\n\ts.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI)\n\n\tfor i, t := range s.types {\n\t\tswitch t {\n\t\tcase WS, ON, B, S, RLI, LRI, FSI, PDI:\n\t\t\t// find bounds of run of neutrals\n\t\t\trunStart := i\n\t\t\trunEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI)\n\n\t\t\t// determine effective types at ends of run\n\t\t\tvar leadType, trailType Class\n\n\t\t\t// Note that the character found can only be L, R, AN, or\n\t\t\t// EN.\n\t\t\tif runStart == 0 {\n\t\t\t\tleadType = s.sos\n\t\t\t} else {\n\t\t\t\tleadType = s.types[runStart-1]\n\t\t\t\tif leadType.in(AN, EN) {\n\t\t\t\t\tleadType = R\n\t\t\t\t}\n\t\t\t}\n\t\t\tif runEnd == len(s.types) {\n\t\t\t\ttrailType = s.eos\n\t\t\t} else {\n\t\t\t\ttrailType = s.types[runEnd]\n\t\t\t\tif trailType.in(AN, EN) {\n\t\t\t\t\ttrailType = R\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar resolvedType Class\n\t\t\tif leadType == trailType {\n\t\t\t\t// Rule N1.\n\t\t\t\tresolvedType = leadType\n\t\t\t} else {\n\t\t\t\t// Rule N2.\n\t\t\t\t// Notice the embedding level of the run is used, not\n\t\t\t\t// the paragraph embedding level.\n\t\t\t\tresolvedType = typeForLevel(s.level)\n\t\t\t}\n\n\t\t\tsetTypes(s.types[runStart:runEnd], resolvedType)\n\n\t\t\t// skip over run of (former) neutrals\n\t\t\ti = runEnd\n\t\t}\n\t}\n}\n\nfunc setLevels(levels []level, newLevel level) {\n\tfor i := range levels {\n\t\tlevels[i] = newLevel\n\t}\n}\n\nfunc setTypes(types []Class, newType Class) {\n\tfor i := range types {\n\t\ttypes[i] = newType\n\t}\n}\n\n// 7) resolving implicit embedding levels Rules I1, I2.\nfunc (s *isolatingRunSequence) resolveImplicitLevels() {\n\n\t// on entry, only these types can be in resultTypes\n\ts.assertOnly(L, R, EN, AN)\n\n\ts.resolvedLevels = make([]level, len(s.types))\n\tsetLevels(s.resolvedLevels, s.level)\n\n\tif (s.level & 1) == 0 { // even level\n\t\tfor i, t := range s.types {\n\t\t\t// Rule I1.\n\t\t\tif t == L {\n\t\t\t\t// no change\n\t\t\t} else if t == R {\n\t\t\t\ts.resolvedLevels[i] += 1\n\t\t\t} else { // t == AN || t == EN\n\t\t\t\ts.resolvedLevels[i] += 2\n\t\t\t}\n\t\t}\n\t} else { // odd level\n\t\tfor i, t := range s.types {\n\t\t\t// Rule I2.\n\t\t\tif t == R {\n\t\t\t\t// no change\n\t\t\t} else { // t == L || t == AN || t == EN\n\t\t\t\ts.resolvedLevels[i] += 1\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Applies the levels and types resolved in rules W1-I2 to the\n// resultLevels array.\nfunc (s *isolatingRunSequence) applyLevelsAndTypes() {\n\tfor i, x := range s.indexes {\n\t\ts.p.resultTypes[x] = s.types[i]\n\t\ts.p.resultLevels[x] = s.resolvedLevels[i]\n\t}\n}\n\n// Return the limit of the run consisting only of the types in validSet\n// starting at index. This checks the value at index, and will return\n// index if that value is not in validSet.\nfunc (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int {\nloop:\n\tfor ; index < len(s.types); index++ {\n\t\tt := s.types[index]\n\t\tfor _, valid := range validSet {\n\t\t\tif t == valid {\n\t\t\t\tcontinue loop\n\t\t\t}\n\t\t}\n\t\treturn index // didn't find a match in validSet\n\t}\n\treturn len(s.types)\n}\n\n// Algorithm validation. Assert that all values in types are in the\n// provided set.\nfunc (s *isolatingRunSequence) assertOnly(codes ...Class) {\nloop:\n\tfor i, t := range s.types {\n\t\tfor _, c := range codes {\n\t\t\tif t == c {\n\t\t\t\tcontinue loop\n\t\t\t}\n\t\t}\n\t\tlog.Panicf(\"invalid bidi code %v present in assertOnly at position %d\", t, s.indexes[i])\n\t}\n}\n\n// determineLevelRuns returns an array of level runs. Each level run is\n// described as an array of indexes into the input string.\n//\n// Determines the level runs. Rule X9 will be applied in determining the\n// runs, in the way that makes sure the characters that are supposed to be\n// removed are not included in the runs.\nfunc (p *paragraph) determineLevelRuns() [][]int {\n\trun := []int{}\n\tallRuns := [][]int{}\n\tcurrentLevel := implicitLevel\n\n\tfor i := range p.initialTypes {\n\t\tif !isRemovedByX9(p.initialTypes[i]) {\n\t\t\tif p.resultLevels[i] != currentLevel {\n\t\t\t\t// we just encountered a new run; wrap up last run\n\t\t\t\tif currentLevel >= 0 { // only wrap it up if there was a run\n\t\t\t\t\tallRuns = append(allRuns, run)\n\t\t\t\t\trun = nil\n\t\t\t\t}\n\t\t\t\t// Start new run\n\t\t\t\tcurrentLevel = p.resultLevels[i]\n\t\t\t}\n\t\t\trun = append(run, i)\n\t\t}\n\t}\n\t// Wrap up the final run, if any\n\tif len(run) > 0 {\n\t\tallRuns = append(allRuns, run)\n\t}\n\treturn allRuns\n}\n\n// Definition BD13. Determine isolating run sequences.\nfunc (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence {\n\tlevelRuns := p.determineLevelRuns()\n\n\t// Compute the run that each character belongs to\n\trunForCharacter := make([]int, p.Len())\n\tfor i, run := range levelRuns {\n\t\tfor _, index := range run {\n\t\t\trunForCharacter[index] = i\n\t\t}\n\t}\n\n\tsequences := []*isolatingRunSequence{}\n\n\tvar currentRunSequence []int\n\n\tfor _, run := range levelRuns {\n\t\tfirst := run[0]\n\t\tif p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 {\n\t\t\tcurrentRunSequence = nil\n\t\t\t// int run = i;\n\t\t\tfor {\n\t\t\t\t// Copy this level run into currentRunSequence\n\t\t\t\tcurrentRunSequence = append(currentRunSequence, run...)\n\n\t\t\t\tlast := currentRunSequence[len(currentRunSequence)-1]\n\t\t\t\tlastT := p.initialTypes[last]\n\t\t\t\tif lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() {\n\t\t\t\t\trun = levelRuns[runForCharacter[p.matchingPDI[last]]]\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsequences = append(sequences, p.isolatingRunSequence(currentRunSequence))\n\t\t}\n\t}\n\treturn sequences\n}\n\n// Assign level information to characters removed by rule X9. This is for\n// ease of relating the level information to the original input data. Note\n// that the levels assigned to these codes are arbitrary, they're chosen so\n// as to avoid breaking level runs.\nfunc (p *paragraph) assignLevelsToCharactersRemovedByX9() {\n\tfor i, t := range p.initialTypes {\n\t\tif t.in(LRE, RLE, LRO, RLO, PDF, BN) {\n\t\t\tp.resultTypes[i] = t\n\t\t\tp.resultLevels[i] = -1\n\t\t}\n\t}\n\t// now propagate forward the levels information (could have\n\t// propagated backward, the main thing is not to introduce a level\n\t// break where one doesn't already exist).\n\n\tif p.resultLevels[0] == -1 {\n\t\tp.resultLevels[0] = p.embeddingLevel\n\t}\n\tfor i := 1; i < len(p.initialTypes); i++ {\n\t\tif p.resultLevels[i] == -1 {\n\t\t\tp.resultLevels[i] = p.resultLevels[i-1]\n\t\t}\n\t}\n\t// Embedding information is for informational purposes only so need not be\n\t// adjusted.\n}\n\n//\n// Output\n//\n\n// getLevels computes levels array breaking lines at offsets in linebreaks.\n// Rule L1.\n//\n// The linebreaks array must include at least one value. The values must be\n// in strictly increasing order (no duplicates) between 1 and the length of\n// the text, inclusive. The last value must be the length of the text.\nfunc (p *paragraph) getLevels(linebreaks []int) []level {\n\t// Note that since the previous processing has removed all\n\t// P, S, and WS values from resultTypes, the values referred to\n\t// in these rules are the initial types, before any processing\n\t// has been applied (including processing of overrides).\n\t//\n\t// This example implementation has reinserted explicit format codes\n\t// and BN, in order that the levels array correspond to the\n\t// initial text. Their final placement is not normative.\n\t// These codes are treated like WS in this implementation,\n\t// so they don't interrupt sequences of WS.\n\n\tvalidateLineBreaks(linebreaks, p.Len())\n\n\tresult := append([]level(nil), p.resultLevels...)\n\n\t// don't worry about linebreaks since if there is a break within\n\t// a series of WS values preceding S, the linebreak itself\n\t// causes the reset.\n\tfor i, t := range p.initialTypes {\n\t\tif t.in(B, S) {\n\t\t\t// Rule L1, clauses one and two.\n\t\t\tresult[i] = p.embeddingLevel\n\n\t\t\t// Rule L1, clause three.\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tif isWhitespace(p.initialTypes[j]) { // including format codes\n\t\t\t\t\tresult[j] = p.embeddingLevel\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule L1, clause four.\n\tstart := 0\n\tfor _, limit := range linebreaks {\n\t\tfor j := limit - 1; j >= start; j-- {\n\t\t\tif isWhitespace(p.initialTypes[j]) { // including format codes\n\t\t\t\tresult[j] = p.embeddingLevel\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tstart = limit\n\t}\n\n\treturn result\n}\n\n// getReordering returns the reordering of lines from a visual index to a\n// logical index for line breaks at the given offsets.\n//\n// Lines are concatenated from left to right. So for example, the fifth\n// character from the left on the third line is\n//\n// \t\tgetReordering(linebreaks)[linebreaks[1] + 4]\n//\n// (linebreaks[1] is the position after the last character of the second\n// line, which is also the index of the first character on the third line,\n// and adding four gets the fifth character from the left).\n//\n// The linebreaks array must include at least one value. The values must be\n// in strictly increasing order (no duplicates) between 1 and the length of\n// the text, inclusive. The last value must be the length of the text.\nfunc (p *paragraph) getReordering(linebreaks []int) []int {\n\tvalidateLineBreaks(linebreaks, p.Len())\n\n\treturn computeMultilineReordering(p.getLevels(linebreaks), linebreaks)\n}\n\n// Return multiline reordering array for a given level array. Reordering\n// does not occur across a line break.\nfunc computeMultilineReordering(levels []level, linebreaks []int) []int {\n\tresult := make([]int, len(levels))\n\n\tstart := 0\n\tfor _, limit := range linebreaks {\n\t\ttempLevels := make([]level, limit-start)\n\t\tcopy(tempLevels, levels[start:])\n\n\t\tfor j, order := range computeReordering(tempLevels) {\n\t\t\tresult[start+j] = order + start\n\t\t}\n\t\tstart = limit\n\t}\n\treturn result\n}\n\n// Return reordering array for a given level array. This reorders a single\n// line. The reordering is a visual to logical map. For example, the\n// leftmost char is string.charAt(order[0]). Rule L2.\nfunc computeReordering(levels []level) []int {\n\tresult := make([]int, len(levels))\n\t// initialize order\n\tfor i := range result {\n\t\tresult[i] = i\n\t}\n\n\t// locate highest level found on line.\n\t// Note the rules say text, but no reordering across line bounds is\n\t// performed, so this is sufficient.\n\thighestLevel := level(0)\n\tlowestOddLevel := level(maxDepth + 2)\n\tfor _, level := range levels {\n\t\tif level > highestLevel {\n\t\t\thighestLevel = level\n\t\t}\n\t\tif level&1 != 0 && level < lowestOddLevel {\n\t\t\tlowestOddLevel = level\n\t\t}\n\t}\n\n\tfor level := highestLevel; level >= lowestOddLevel; level-- {\n\t\tfor i := 0; i < len(levels); i++ {\n\t\t\tif levels[i] >= level {\n\t\t\t\t// find range of text at or above this level\n\t\t\t\tstart := i\n\t\t\t\tlimit := i + 1\n\t\t\t\tfor limit < len(levels) && levels[limit] >= level {\n\t\t\t\t\tlimit++\n\t\t\t\t}\n\n\t\t\t\tfor j, k := start, limit-1; j < k; j, k = j+1, k-1 {\n\t\t\t\t\tresult[j], result[k] = result[k], result[j]\n\t\t\t\t}\n\t\t\t\t// skip to end of level run\n\t\t\t\ti = limit\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\n// isWhitespace reports whether the type is considered a whitespace type for the\n// line break rules.\nfunc isWhitespace(c Class) bool {\n\tswitch c {\n\tcase LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// isRemovedByX9 reports whether the type is one of the types removed in X9.\nfunc isRemovedByX9(c Class) bool {\n\tswitch c {\n\tcase LRE, RLE, LRO, RLO, PDF, BN:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// typeForLevel reports the strong type (L or R) corresponding to the level.\nfunc typeForLevel(level level) Class {\n\tif (level & 0x1) == 0 {\n\t\treturn L\n\t}\n\treturn R\n}\n\n// TODO: change validation to not panic\n\nfunc validateTypes(types []Class) {\n\tif len(types) == 0 {\n\t\tlog.Panic(\"types is null\")\n\t}\n\tfor i, t := range types[:len(types)-1] {\n\t\tif t == B {\n\t\t\tlog.Panicf(\"B type before end of paragraph at index: %d\", i)\n\t\t}\n\t}\n}\n\nfunc validateParagraphEmbeddingLevel(embeddingLevel level) {\n\tif embeddingLevel != implicitLevel &&\n\t\tembeddingLevel != 0 &&\n\t\tembeddingLevel != 1 {\n\t\tlog.Panicf(\"illegal paragraph embedding level: %d\", embeddingLevel)\n\t}\n}\n\nfunc validateLineBreaks(linebreaks []int, textLength int) {\n\tprev := 0\n\tfor i, next := range linebreaks {\n\t\tif next <= prev {\n\t\t\tlog.Panicf(\"bad linebreak: %d at index: %d\", next, i)\n\t\t}\n\t\tprev = next\n\t}\n\tif prev != textLength {\n\t\tlog.Panicf(\"last linebreak was %d, want %d\", prev, textLength)\n\t}\n}\n\nfunc validatePbTypes(pairTypes []bracketType) {\n\tif len(pairTypes) == 0 {\n\t\tlog.Panic(\"pairTypes is null\")\n\t}\n\tfor i, pt := range pairTypes {\n\t\tswitch pt {\n\t\tcase bpNone, bpOpen, bpClose:\n\t\tdefault:\n\t\t\tlog.Panicf(\"illegal pairType value at %d: %v\", i, pairTypes[i])\n\t\t}\n\t}\n}\n\nfunc validatePbValues(pairValues []rune, pairTypes []bracketType) {\n\tif pairValues == nil {\n\t\tlog.Panic(\"pairValues is null\")\n\t}\n\tif len(pairTypes) != len(pairValues) {\n\t\tlog.Panic(\"pairTypes is different length from pairValues\")\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/prop.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport \"unicode/utf8\"\n\n// Properties provides access to BiDi properties of runes.\ntype Properties struct {\n\tentry uint8\n\tlast  uint8\n}\n\nvar trie = newBidiTrie(0)\n\n// TODO: using this for bidirule reduces the running time by about 5%. Consider\n// if this is worth exposing or if we can find a way to speed up the Class\n// method.\n//\n// // CompactClass is like Class, but maps all of the BiDi control classes\n// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control.\n// func (p Properties) CompactClass() Class {\n// \treturn Class(p.entry & 0x0F)\n// }\n\n// Class returns the Bidi class for p.\nfunc (p Properties) Class() Class {\n\tc := Class(p.entry & 0x0F)\n\tif c == Control {\n\t\tc = controlByteToClass[p.last&0xF]\n\t}\n\treturn c\n}\n\n// IsBracket reports whether the rune is a bracket.\nfunc (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 }\n\n// IsOpeningBracket reports whether the rune is an opening bracket.\n// IsBracket must return true.\nfunc (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 }\n\n// TODO: find a better API and expose.\nfunc (p Properties) reverseBracket(r rune) rune {\n\treturn xorMasks[p.entry>>xorMaskShift] ^ r\n}\n\nvar controlByteToClass = [16]Class{\n\t0xD: LRO, // U+202D LeftToRightOverride,\n\t0xE: RLO, // U+202E RightToLeftOverride,\n\t0xA: LRE, // U+202A LeftToRightEmbedding,\n\t0xB: RLE, // U+202B RightToLeftEmbedding,\n\t0xC: PDF, // U+202C PopDirectionalFormat,\n\t0x6: LRI, // U+2066 LeftToRightIsolate,\n\t0x7: RLI, // U+2067 RightToLeftIsolate,\n\t0x8: FSI, // U+2068 FirstStrongIsolate,\n\t0x9: PDI, // U+2069 PopDirectionalIsolate,\n}\n\n// LookupRune returns properties for r.\nfunc LookupRune(r rune) (p Properties, size int) {\n\tvar buf [4]byte\n\tn := utf8.EncodeRune(buf[:], r)\n\treturn Lookup(buf[:n])\n}\n\n// TODO: these lookup methods are based on the generated trie code. The returned\n// sizes have slightly different semantics from the generated code, in that it\n// always returns size==1 for an illegal UTF-8 byte (instead of the length\n// of the maximum invalid subsequence). Most Transformers, like unicode/norm,\n// leave invalid UTF-8 untouched, in which case it has performance benefits to\n// do so (without changing the semantics). Bidi requires the semantics used here\n// for the bidirule implementation to be compatible with the Go semantics.\n//  They ultimately should perhaps be adopted by all trie implementations, for\n// convenience sake.\n// This unrolled code also boosts performance of the secure/bidirule package by\n// about 30%.\n// So, to remove this code:\n//   - add option to trie generator to define return type.\n//   - always return 1 byte size for ill-formed UTF-8 runes.\n\n// Lookup returns properties for the first rune in s and the width in bytes of\n// its encoding. The size will be 0 if s does not hold enough bytes to complete\n// the encoding.\nfunc Lookup(s []byte) (p Properties, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn Properties{entry: bidiValues[c0]}, 1\n\tcase c0 < 0xC2:\n\t\treturn Properties{}, 1\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c1)}, 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c3)}, 4\n\t}\n\t// Illegal rune\n\treturn Properties{}, 1\n}\n\n// LookupString returns properties for the first rune in s and the width in\n// bytes of its encoding. The size will be 0 if s does not hold enough bytes to\n// complete the encoding.\nfunc LookupString(s string) (p Properties, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn Properties{entry: bidiValues[c0]}, 1\n\tcase c0 < 0xC2:\n\t\treturn Properties{}, 1\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c1)}, 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c3)}, 4\n\t}\n\t// Illegal rune\n\treturn Properties{}, 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.10,!go1.13\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 228 blocks, 14592 entries, 14592 bytes\n// The third block is the zero block.\nvar bidiValues = [14592]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a,\n\t0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a,\n\t0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2325: 0x000c, 0x2328: 0x000c,\n\t0x232d: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x235d: 0x0001,\n\t0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,\n\t0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,\n\t0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,\n\t0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,\n\t0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,\n\t0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,\n\t0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,\n\t0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,\n\t0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,\n\t0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,\n\t0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,\n\t0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,\n\t0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,\n\t0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,\n\t0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,\n\t0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x000a,\n\t0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,\n\t0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,\n\t0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,\n\t0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,\n\t0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,\n\t0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,\n\t0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,\n\t0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,\n\t0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,\n\t0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,\n\t0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,\n\t0x24aa: 0x0004, 0x24ab: 0x000a,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,\n\t0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,\n\t0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,\n\t0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,\n\t0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,\n\t0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,\n\t0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,\n\t0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,\n\t// Block 0x94, offset 0x2500\n\t0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,\n\t0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,\n\t0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,\n\t0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,\n\t0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,\n\t0x253b: 0x005a,\n\t0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000a,\n\t0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,\n\t0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,\n\t0x2564: 0x000a, 0x2565: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,\n\t0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,\n\t0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,\n\t0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,\n\t0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,\n\t0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,\n\t// Block 0x97, offset 0x25c0\n\t0x25c1: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,\n\t0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,\n\t0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,\n\t0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,\n\t0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,\n\t0x2620: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x267d: 0x000c,\n\t// Block 0x9a, offset 0x2680\n\t0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,\n\t0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,\n\t0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,\n\t0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,\n\t0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,\n\t// Block 0x9b, offset 0x26c0\n\t0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,\n\t0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,\n\t0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,\n\t0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,\n\t0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,\n\t0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2881: 0x000c,\n\t0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c,\n\t0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c,\n\t0x28c6: 0x000c,\n\t0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a,\n\t0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a,\n\t0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a,\n\t0x28e4: 0x000a, 0x28e5: 0x000a,\n\t0x28ff: 0x000c,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000c, 0x2901: 0x000c,\n\t0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c,\n\t0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c,\n\t0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c,\n\t0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c,\n\t0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x29b3: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c,\n\t0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c,\n\t0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a0a: 0x000c, 0x2a0b: 0x000c,\n\t0x2a0c: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a6f: 0x000c,\n\t0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c,\n\t0x2a76: 0x000c, 0x2a77: 0x000c,\n\t0x2a7e: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a9f: 0x000c, 0x2aa3: 0x000c,\n\t0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c,\n\t0x2aaa: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c,\n\t0x2afc: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c,\n\t0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,\n\t0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c,\n\t0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,\n\t0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c,\n\t0x2b86: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c,\n\t0x2bff: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,\n\t0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x000c,\n\t0x2c9c: 0x000c, 0x2c9d: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,\n\t0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c,\n\t0x2cfd: 0x000c, 0x2cff: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d00: 0x000c,\n\t0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a,\n\t0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a,\n\t0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d6b: 0x000c, 0x2d6d: 0x000c,\n\t0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,\n\t0x2d77: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d9d: 0x000c,\n\t0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c,\n\t0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c,\n\t0x2daa: 0x000c, 0x2dab: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c,\n\t0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c,\n\t0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,\n\t0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c,\n\t0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e07: 0x000c,\n\t0x2e11: 0x000c,\n\t0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c,\n\t0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e4a: 0x000c, 0x2e4b: 0x000c,\n\t0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c,\n\t0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c,\n\t0x2e58: 0x000c, 0x2e59: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c,\n\t0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c,\n\t0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,\n\t0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c,\n\t0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c,\n\t0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c,\n\t0x2ef6: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f36: 0x000c, 0x2f3a: 0x000c,\n\t0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c,\n\t0x2f47: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c,\n\t0x3012: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x305d: 0x000c,\n\t0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b,\n\t// Block 0xc2, offset 0x3080\n\t0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c,\n\t0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b,\n\t0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c,\n\t0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c,\n\t0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c,\n\t0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a,\n\t// Block 0xc5, offset 0x3140\n\t0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a,\n\t0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a,\n\t0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a,\n\t0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a,\n\t// Block 0xc6, offset 0x3180\n\t0x319b: 0x000a,\n\t// Block 0xc7, offset 0x31c0\n\t0x31d5: 0x000a,\n\t// Block 0xc8, offset 0x3200\n\t0x320f: 0x000a,\n\t// Block 0xc9, offset 0x3240\n\t0x3249: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x3283: 0x000a,\n\t0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002,\n\t0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002,\n\t0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002,\n\t0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002,\n\t0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002,\n\t0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002,\n\t0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002,\n\t0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002,\n\t0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c,\n\t0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,\n\t0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c,\n\t0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,\n\t0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,\n\t0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,\n\t0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c,\n\t0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,\n\t0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,\n\t0x32f6: 0x000c, 0x32fb: 0x000c,\n\t0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c,\n\t0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c,\n\t0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c,\n\t0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c,\n\t0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c,\n\t0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c,\n\t0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c,\n\t0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c,\n\t0x3335: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x3344: 0x000c,\n\t0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c,\n\t0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c,\n\t0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c,\n\t0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c,\n\t0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,\n\t0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,\n\t0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c,\n\t0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c,\n\t0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c,\n\t0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c,\n\t0x33aa: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001,\n\t0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001,\n\t0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c,\n\t0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001,\n\t0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001,\n\t0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001,\n\t0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001,\n\t0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001,\n\t0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001,\n\t0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001,\n\t0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001,\n\t// Block 0xd0, offset 0x3400\n\t0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c,\n\t0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001,\n\t0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001,\n\t0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001,\n\t0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001,\n\t0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001,\n\t0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001,\n\t0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001,\n\t0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001,\n\t0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001,\n\t0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d,\n\t0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d,\n\t0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d,\n\t0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d,\n\t0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d,\n\t0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d,\n\t0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d,\n\t0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d,\n\t0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d,\n\t0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d,\n\t0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d,\n\t// Block 0xd2, offset 0x3480\n\t0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a,\n\t0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a,\n\t0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a,\n\t0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,\n\t0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a,\n\t0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,\n\t0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,\n\t0x34aa: 0x000a, 0x34ab: 0x000a,\n\t0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a,\n\t0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a,\n\t0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a, 0x34d3: 0x000a,\n\t0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,\n\t0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,\n\t0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a,\n\t0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,\n\t0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a,\n\t0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,\n\t0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,\n\t0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a,\n\t0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a,\n\t0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a,\n\t0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a,\n\t0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a,\n\t0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a,\n\t0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,\n\t0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a,\n\t0x354c: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x35aa: 0x000a, 0x35ab: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,\n\t0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,\n\t0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a,\n\t0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,\n\t0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a,\n\t0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,\n\t0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,\n\t0x3690: 0x000a, 0x3691: 0x000a,\n\t0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a,\n\t0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a,\n\t0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a,\n\t0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a,\n\t0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a,\n\t0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a,\n\t0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a,\n\t0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,\n\t0x36c6: 0x000a, 0x36c7: 0x000a,\n\t0x36d0: 0x000a, 0x36d1: 0x000a,\n\t0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a,\n\t0x36d8: 0x000a, 0x36d9: 0x000a,\n\t0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a,\n\t0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a,\n\t0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a,\n\t0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a,\n\t0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a,\n\t0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,\n\t0x3706: 0x000a, 0x3707: 0x000a,\n\t0x3710: 0x000a, 0x3711: 0x000a,\n\t0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,\n\t0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,\n\t0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,\n\t0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a,\n\t0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a,\n\t0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,\n\t0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,\n\t0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,\n\t0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,\n\t0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,\n\t0x37aa: 0x000a, 0x37ab: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,\n\t0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,\n\t0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a,\n\t0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000a,\n\t0x3810: 0x000a, 0x3811: 0x000a,\n\t0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,\n\t0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a,\n\t0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,\n\t0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x387e: 0x000b, 0x387f: 0x000b,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b,\n\t0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b,\n\t0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b,\n\t0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b,\n\t0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b,\n\t0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b,\n\t0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b,\n\t0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b,\n\t0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b,\n\t0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b,\n\t0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c,\n\t0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c,\n\t0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c,\n\t0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c,\n\t0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,\n\t0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,\n\t0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,\n\t0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,\n\t0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b,\n\t0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b,\n\t0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,\n\t0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,\n\t0x2cb: 0x98, 0x2cd: 0x99,\n\t0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,\n\t0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,\n\t0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,\n\t0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6,\n\t0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa,\n\t0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0,\n\t0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4,\n\t0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7,\n\t0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xbc, 0x36c: 0xbd,\n\t0x37e: 0xbe,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xbf,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc0, 0x3c6: 0xc1,\n\t0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3,\n\t0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8,\n\t0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xcc,\n\t0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a,\n\t0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,\n\t0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4,\n\t0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7,\n\t0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde,\n\t0x47f: 0xdf,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xdf,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1,\n\t0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0,\n\t0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0,\n\t0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0,\n\t0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0,\n\t0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0,\n\t0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0,\n\t0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16184 bytes (15KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.13\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 234 blocks, 14976 entries, 14976 bytes\n// The third block is the zero block.\nvar bidiValues = [14976]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t0x20ff: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2325: 0x000c, 0x2328: 0x000c,\n\t0x232d: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x235d: 0x0001,\n\t0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,\n\t0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,\n\t0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,\n\t0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,\n\t0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,\n\t0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,\n\t0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,\n\t0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,\n\t0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,\n\t0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,\n\t0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,\n\t0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,\n\t0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,\n\t0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,\n\t0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,\n\t0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x000a,\n\t0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,\n\t0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,\n\t0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,\n\t0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,\n\t0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,\n\t0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,\n\t0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,\n\t0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,\n\t0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,\n\t0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,\n\t0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,\n\t0x24aa: 0x0004, 0x24ab: 0x000a,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,\n\t0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,\n\t0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,\n\t0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,\n\t0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,\n\t0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,\n\t0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,\n\t0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,\n\t// Block 0x94, offset 0x2500\n\t0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,\n\t0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,\n\t0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,\n\t0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,\n\t0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,\n\t0x253b: 0x005a,\n\t0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000a,\n\t0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,\n\t0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,\n\t0x2564: 0x000a, 0x2565: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,\n\t0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,\n\t0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,\n\t0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,\n\t0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,\n\t0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,\n\t// Block 0x97, offset 0x25c0\n\t0x25c1: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,\n\t0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,\n\t0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,\n\t0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,\n\t0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,\n\t0x2620: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x267d: 0x000c,\n\t// Block 0x9a, offset 0x2680\n\t0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,\n\t0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,\n\t0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,\n\t0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,\n\t0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,\n\t// Block 0x9b, offset 0x26c0\n\t0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,\n\t0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,\n\t0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d,\n\t0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d,\n\t0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d,\n\t0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d,\n\t0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d,\n\t0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d,\n\t0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d,\n\t0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d,\n\t0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,\n\t0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,\n\t0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,\n\t0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,\n\t0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,\n\t0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001,\n\t0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001,\n\t0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001,\n\t0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001,\n\t0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001,\n\t0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001,\n\t0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001,\n\t0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,\n\t0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d,\n\t0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d,\n\t0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d,\n\t0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c,\n\t0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d,\n\t0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d,\n\t0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d,\n\t0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d,\n\t0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d,\n\t0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d,\n\t0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001,\n\t0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001,\n\t0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2941: 0x000c,\n\t0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c,\n\t0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c,\n\t0x2986: 0x000c,\n\t0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a,\n\t0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a,\n\t0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a,\n\t0x29a4: 0x000a, 0x29a5: 0x000a,\n\t0x29bf: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c,\n\t0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c,\n\t0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c,\n\t0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c,\n\t0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c,\n\t0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a73: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a80: 0x000c, 0x2a81: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,\n\t0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c,\n\t0x2acc: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b2f: 0x000c,\n\t0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c,\n\t0x2b36: 0x000c, 0x2b37: 0x000c,\n\t0x2b3e: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b5f: 0x000c, 0x2b63: 0x000c,\n\t0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b80: 0x000c,\n\t0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c,\n\t0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c,\n\t0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,\n\t0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c,\n\t0x2c06: 0x000c,\n\t0x2c1e: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,\n\t0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c,\n\t0x2c7f: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,\n\t0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d00: 0x000c,\n\t0x2d1c: 0x000c, 0x2d1d: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,\n\t0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c,\n\t0x2d7d: 0x000c, 0x2d7f: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d80: 0x000c,\n\t0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a,\n\t0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a,\n\t0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2deb: 0x000c, 0x2ded: 0x000c,\n\t0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,\n\t0x2df7: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e1d: 0x000c,\n\t0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c,\n\t0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c,\n\t0x2e2a: 0x000c, 0x2e2b: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e6f: 0x000c,\n\t0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c,\n\t0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,\n\t0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec7: 0x000c,\n\t0x2ed1: 0x000c,\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,\n\t0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0a: 0x000c, 0x2f0b: 0x000c,\n\t0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,\n\t0x2f18: 0x000c, 0x2f19: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,\n\t0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7d: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,\n\t0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,\n\t0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,\n\t0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,\n\t0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c, 0x2ffa: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3007: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3050: 0x000c, 0x3051: 0x000c,\n\t0x3055: 0x000c, 0x3057: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x30b3: 0x000c, 0x30b4: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c,\n\t0x3136: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c,\n\t0x3152: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x319d: 0x000c,\n\t0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b,\n\t// Block 0xc7, offset 0x31c0\n\t0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,\n\t0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b,\n\t0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c,\n\t0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,\n\t0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a,\n\t0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a,\n\t0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a,\n\t0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a,\n\t// Block 0xcb, offset 0x32c0\n\t0x32db: 0x000a,\n\t// Block 0xcc, offset 0x3300\n\t0x3315: 0x000a,\n\t// Block 0xcd, offset 0x3340\n\t0x334f: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x3389: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c3: 0x000a,\n\t0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002,\n\t0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002,\n\t0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002,\n\t0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002,\n\t0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002,\n\t0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002,\n\t0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002,\n\t0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002,\n\t0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002,\n\t// Block 0xd0, offset 0x3400\n\t0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c,\n\t0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c,\n\t0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c,\n\t0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c,\n\t0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c,\n\t0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c,\n\t0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,\n\t0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c,\n\t0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,\n\t0x3436: 0x000c, 0x343b: 0x000c,\n\t0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c,\n\t0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,\n\t0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c,\n\t0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c,\n\t0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c,\n\t0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c,\n\t0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c,\n\t0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c,\n\t0x3475: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x3484: 0x000c,\n\t0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c,\n\t0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c,\n\t0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c,\n\t0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,\n\t0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,\n\t0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,\n\t0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,\n\t0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,\n\t0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c,\n\t0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,\n\t0x34ea: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001,\n\t0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001,\n\t0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c,\n\t0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001,\n\t0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001,\n\t0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001,\n\t0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001,\n\t0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001,\n\t0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001,\n\t0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001,\n\t0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c,\n\t0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001,\n\t0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001,\n\t0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001,\n\t0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001,\n\t0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001,\n\t0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001,\n\t0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001,\n\t0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001,\n\t0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001,\n\t0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d,\n\t0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d,\n\t0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d,\n\t0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d,\n\t0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d,\n\t0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d,\n\t0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d,\n\t0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d,\n\t0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d,\n\t0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d,\n\t0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,\n\t0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a,\n\t0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a,\n\t0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,\n\t0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,\n\t0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,\n\t0x35ea: 0x000a, 0x35eb: 0x000a,\n\t0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a,\n\t0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a,\n\t0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,\n\t0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,\n\t0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a,\n\t0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,\n\t0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a,\n\t0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,\n\t0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,\n\t0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,\n\t0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a,\n\t0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a,\n\t0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a,\n\t0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002,\n\t0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a,\n\t0x368c: 0x000a,\n\t0x36af: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36ea: 0x000a, 0x36eb: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a,\n\t0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a,\n\t0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,\n\t0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,\n\t0x37d0: 0x000a, 0x37d1: 0x000a,\n\t0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,\n\t0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a,\n\t0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a,\n\t0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a,\n\t0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a,\n\t0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a,\n\t0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a,\n\t0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a,\n\t0x3806: 0x000a, 0x3807: 0x000a,\n\t0x3810: 0x000a, 0x3811: 0x000a,\n\t0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,\n\t0x3818: 0x000a, 0x3819: 0x000a,\n\t0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,\n\t0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a,\n\t0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a,\n\t0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a,\n\t0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a,\n\t0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a,\n\t0x3846: 0x000a, 0x3847: 0x000a,\n\t0x3850: 0x000a, 0x3851: 0x000a,\n\t0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a,\n\t0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a,\n\t0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,\n\t0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a,\n\t0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,\n\t0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,\n\t0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,\n\t0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,\n\t0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a,\n\t0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a,\n\t0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,\n\t0x38f6: 0x000a, 0x38fa: 0x000a,\n\t0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a,\n\t0x3950: 0x000a, 0x3951: 0x000a,\n\t0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,\n\t0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a,\n\t0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,\n\t0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,\n\t0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,\n\t0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,\n\t0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,\n\t0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,\n\t0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39fe: 0x000b, 0x39ff: 0x000b,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b,\n\t0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b,\n\t0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b,\n\t0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b,\n\t0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b,\n\t0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b,\n\t0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b,\n\t0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b,\n\t0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b,\n\t0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b,\n\t0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c,\n\t0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c,\n\t0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c,\n\t0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c,\n\t0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c,\n\t0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c,\n\t0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c,\n\t0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c,\n\t0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b,\n\t0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b,\n\t0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,\n\t0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,\n\t0x2cb: 0x98, 0x2cd: 0x99,\n\t0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,\n\t0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,\n\t0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,\n\t0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9,\n\t0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac,\n\t0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2,\n\t0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6,\n\t0x320: 0xb7,\n\t0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,\n\t0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,\n\t0x33b: 0xc0,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc1, 0x36c: 0xc2,\n\t0x37e: 0xc3,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xc4,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc5, 0x3c6: 0xc6,\n\t0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8,\n\t0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd,\n\t0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xd1,\n\t0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a,\n\t0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,\n\t0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9,\n\t0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc,\n\t0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3,\n\t0x469: 0xe4,\n\t0x47f: 0xe5,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xe5,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7,\n\t0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6,\n\t0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6,\n\t0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6,\n\t0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6,\n\t0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6,\n\t0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6,\n\t0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16568 bytes (16KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build !go1.10\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 222 blocks, 14208 entries, 14208 bytes\n// The third block is the zero block.\nvar bidiValues = [14208]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001,\n\t0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001,\n\t0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa01: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,\n\t0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,\n\t0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,\n\t0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,\n\t0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,\n\t0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,\n\t0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,\n\t0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,\n\t0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,\n\t0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,\n\t0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,\n\t0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,\n\t// Block 0x5f, offset 0x17c0\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,\n\t0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,\n\t0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,\n\t0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a,\n\t0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,\n\t0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,\n\t0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,\n\t0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,\n\t0x1a2a: 0x000a, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c,\n\t0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,\n\t0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,\n\t// Block 0x69, offset 0x1a40\n\t0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,\n\t0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,\n\t0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,\n\t0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,\n\t0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,\n\t0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,\n\t0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,\n\t0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,\n\t0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,\n\t0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,\n\t0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,\n\t0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,\n\t0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,\n\t0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,\n\t0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,\n\t0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,\n\t0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,\n\t0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,\n\t0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,\n\t0x1c30: 0x000a,\n\t0x1c36: 0x000a, 0x1c37: 0x000a,\n\t0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,\n\t0x1c60: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1cbb: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,\n\t0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,\n\t0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d1d: 0x000a,\n\t0x1d1e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d50: 0x000a, 0x1d51: 0x000a,\n\t0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,\n\t0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,\n\t0x1d5e: 0x000a, 0x1d5f: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,\n\t0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,\n\t0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a,\n\t0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e90: 0x000a, 0x1e91: 0x000a,\n\t0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,\n\t0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,\n\t0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,\n\t0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,\n\t0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,\n\t0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,\n\t0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,\n\t0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,\n\t0x1ec6: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f6f: 0x000c,\n\t0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,\n\t0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,\n\t0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f9e: 0x000c, 0x1f9f: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1ff0: 0x000c, 0x1ff1: 0x000c,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,\n\t0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,\n\t0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,\n\t0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,\n\t0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,\n\t0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2048: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2082: 0x000c,\n\t0x2086: 0x000c, 0x208b: 0x000c,\n\t0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,\n\t0x20aa: 0x000a, 0x20ab: 0x000a,\n\t0x20b8: 0x0004, 0x20b9: 0x0004,\n\t// Block 0x83, offset 0x20c0\n\t0x20f4: 0x000a, 0x20f5: 0x000a,\n\t0x20f6: 0x000a, 0x20f7: 0x000a,\n\t// Block 0x84, offset 0x2100\n\t0x2104: 0x000c, 0x2105: 0x000c,\n\t0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,\n\t0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,\n\t0x2130: 0x000c, 0x2131: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,\n\t0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,\n\t0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,\n\t0x21f3: 0x000c,\n\t0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,\n\t0x21fc: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2225: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2269: 0x000c,\n\t0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,\n\t0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,\n\t0x2276: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2283: 0x000c,\n\t0x228c: 0x000c,\n\t0x22bc: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,\n\t0x22f7: 0x000c, 0x22f8: 0x000c,\n\t0x22fe: 0x000c, 0x22ff: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2301: 0x000c,\n\t0x232c: 0x000c, 0x232d: 0x000c,\n\t0x2336: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x2365: 0x000c, 0x2368: 0x000c,\n\t0x236d: 0x000c,\n\t// Block 0x8e, offset 0x2380\n\t0x239d: 0x0001,\n\t0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,\n\t0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,\n\t0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,\n\t0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,\n\t0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,\n\t0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,\n\t0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,\n\t0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,\n\t0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,\n\t0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b,\n\t0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b,\n\t0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b,\n\t0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b,\n\t0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b,\n\t0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c,\n\t0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c,\n\t0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a,\n\t0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x000a,\n\t0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c,\n\t0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c,\n\t0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c,\n\t0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a,\n\t0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a,\n\t0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a,\n\t0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,\n\t0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a,\n\t0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a,\n\t0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003,\n\t0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004,\n\t0x24ea: 0x0004, 0x24eb: 0x000a,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d,\n\t0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d,\n\t0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d,\n\t0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d,\n\t0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d,\n\t0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d,\n\t0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d,\n\t0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b,\n\t// Block 0x95, offset 0x2540\n\t0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004,\n\t0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003,\n\t0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002,\n\t0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002,\n\t0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a,\n\t0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a,\n\t0x257b: 0x005a,\n\t0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x2580: 0x000a,\n\t0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a,\n\t0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a,\n\t0x25a4: 0x000a, 0x25a5: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a,\n\t0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a,\n\t0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a,\n\t0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b,\n\t0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a,\n\t0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b,\n\t// Block 0x98, offset 0x2600\n\t0x2601: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a,\n\t0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a,\n\t0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a,\n\t0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a,\n\t0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a,\n\t0x2660: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x26bd: 0x000c,\n\t// Block 0x9b, offset 0x26c0\n\t0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002,\n\t0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002,\n\t0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002,\n\t0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002,\n\t0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002,\n\t// Block 0x9c, offset 0x2700\n\t0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c,\n\t0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a,\n\t0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,\n\t0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,\n\t0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,\n\t0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,\n\t0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,\n\t0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c1: 0x000c,\n\t0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c,\n\t0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c,\n\t0x2906: 0x000c,\n\t0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a,\n\t0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a,\n\t0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a,\n\t0x2924: 0x000a, 0x2925: 0x000a,\n\t0x293f: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c,\n\t0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c,\n\t0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c,\n\t0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c,\n\t0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c,\n\t0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29f3: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000c, 0x2a01: 0x000c,\n\t0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,\n\t0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a4a: 0x000c, 0x2a4b: 0x000c,\n\t0x2a4c: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2aaf: 0x000c,\n\t0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab7: 0x000c,\n\t0x2abe: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2adf: 0x000c, 0x2ae3: 0x000c,\n\t0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,\n\t0x2aea: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c, 0x2b01: 0x000c,\n\t0x2b3c: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c,\n\t0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,\n\t0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,\n\t0x2bc6: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,\n\t0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,\n\t0x2c3f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2cdc: 0x000c, 0x2cdd: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3d: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c,\n\t0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,\n\t0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,\n\t0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,\n\t// Block 0xb6, offset 0x2d80\n\t0x2dab: 0x000c, 0x2dad: 0x000c,\n\t0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db7: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2ddd: 0x000c,\n\t0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,\n\t0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,\n\t0x2dea: 0x000c, 0x2deb: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,\n\t0x2e3c: 0x000c, 0x2e3d: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,\n\t0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c,\n\t0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c,\n\t0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c,\n\t0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c,\n\t0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c,\n\t0x2e76: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c,\n\t0x2ef6: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f5d: 0x000c,\n\t0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b,\n\t// Block 0xbe, offset 0x2f80\n\t0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c,\n\t0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b,\n\t0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c,\n\t0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c,\n\t0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c,\n\t0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a,\n\t// Block 0xc1, offset 0x3040\n\t0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a,\n\t0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a,\n\t0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a,\n\t0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a,\n\t// Block 0xc2, offset 0x3080\n\t0x309b: 0x000a,\n\t// Block 0xc3, offset 0x30c0\n\t0x30d5: 0x000a,\n\t// Block 0xc4, offset 0x3100\n\t0x310f: 0x000a,\n\t// Block 0xc5, offset 0x3140\n\t0x3149: 0x000a,\n\t// Block 0xc6, offset 0x3180\n\t0x3183: 0x000a,\n\t0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002,\n\t0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002,\n\t0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002,\n\t0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002,\n\t0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002,\n\t0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002,\n\t0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002,\n\t0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002,\n\t0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002,\n\t// Block 0xc7, offset 0x31c0\n\t0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c,\n\t0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c,\n\t0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c,\n\t0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c,\n\t0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c,\n\t0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,\n\t0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c,\n\t0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,\n\t0x31f6: 0x000c, 0x31fb: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,\n\t0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,\n\t0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,\n\t0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c,\n\t0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c,\n\t0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c,\n\t0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c,\n\t0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c,\n\t0x3235: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3244: 0x000c,\n\t0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c,\n\t0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,\n\t0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c,\n\t0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c,\n\t0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c,\n\t0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c,\n\t0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c,\n\t0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c,\n\t0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c,\n\t0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,\n\t0x32aa: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001,\n\t0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001,\n\t0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c,\n\t0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001,\n\t0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001,\n\t0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001,\n\t0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001,\n\t0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001,\n\t0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001,\n\t0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001,\n\t0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c,\n\t0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001,\n\t0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001,\n\t0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001,\n\t0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001,\n\t0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001,\n\t0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001,\n\t0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001,\n\t0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001,\n\t0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001,\n\t0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001,\n\t// Block 0xcd, offset 0x3340\n\t0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d,\n\t0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d,\n\t0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d,\n\t0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d,\n\t0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d,\n\t0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d,\n\t0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d,\n\t0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d,\n\t0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d,\n\t0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d,\n\t0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a,\n\t0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a,\n\t0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a,\n\t0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a,\n\t0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a,\n\t0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a,\n\t0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a,\n\t0x33aa: 0x000a, 0x33ab: 0x000a,\n\t0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a,\n\t0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a,\n\t0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a,\n\t0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a,\n\t0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a,\n\t0x33d2: 0x000a, 0x33d3: 0x000a,\n\t0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a,\n\t0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a,\n\t0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a,\n\t0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a,\n\t0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a,\n\t0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a,\n\t// Block 0xd0, offset 0x3400\n\t0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a,\n\t0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a,\n\t0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a,\n\t0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a,\n\t0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a,\n\t0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a,\n\t0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a,\n\t0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a,\n\t0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002,\n\t0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a,\n\t0x344c: 0x000a,\n\t// Block 0xd2, offset 0x3480\n\t0x34aa: 0x000a, 0x34ab: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a,\n\t0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,\n\t0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,\n\t0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a,\n\t0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,\n\t0x34f6: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,\n\t0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,\n\t0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a,\n\t0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a,\n\t0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a,\n\t0x3550: 0x000a, 0x3551: 0x000a,\n\t0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a,\n\t0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a,\n\t0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a,\n\t0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a,\n\t0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a,\n\t0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a,\n\t0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a,\n\t0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a,\n\t0x3586: 0x000a, 0x3587: 0x000a,\n\t0x3590: 0x000a, 0x3591: 0x000a,\n\t0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a,\n\t0x3598: 0x000a, 0x3599: 0x000a,\n\t0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a,\n\t0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a,\n\t0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a,\n\t0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a,\n\t0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a,\n\t0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,\n\t0x35c6: 0x000a, 0x35c7: 0x000a,\n\t0x35d0: 0x000a, 0x35d1: 0x000a,\n\t0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,\n\t0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,\n\t0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,\n\t0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a,\n\t0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a,\n\t0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a,\n\t0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,\n\t0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x3650: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,\n\t0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,\n\t0x365e: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,\n\t0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,\n\t0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36fe: 0x000b, 0x36ff: 0x000b,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b,\n\t0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b,\n\t0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b,\n\t0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b,\n\t0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b,\n\t0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b,\n\t0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b,\n\t0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b,\n\t0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b,\n\t0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b,\n\t0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c,\n\t0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c,\n\t0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c,\n\t0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c,\n\t0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c,\n\t0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c,\n\t0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c,\n\t0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,\n\t0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b,\n\t0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b,\n\t0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59,\n\t0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65,\n\t0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,\n\t0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,\n\t0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x78, 0x253: 0x79,\n\t0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,\n\t0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f,\n\t0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98,\n\t0x2cb: 0x99, 0x2cd: 0x9a,\n\t0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b,\n\t0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b,\n\t0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b,\n\t0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7,\n\t0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab,\n\t0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,\n\t0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,\n\t0x330: 0xb6, 0x332: 0xb7,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xb8, 0x36c: 0xb9,\n\t0x37e: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xbb,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xbc, 0x3c6: 0xbd,\n\t0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf,\n\t0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4,\n\t0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xc8,\n\t0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b,\n\t0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b,\n\t0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0,\n\t0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2,\n\t0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36,\n\t0x47f: 0xd9,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xd9,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb,\n\t0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda,\n\t0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda,\n\t0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda,\n\t0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda,\n\t0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda,\n\t0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda,\n\t0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 15800 bytes (15KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage bidi\n\n// Class is the Unicode BiDi class. Each rune has a single class.\ntype Class uint\n\nconst (\n\tL       Class = iota // LeftToRight\n\tR                    // RightToLeft\n\tEN                   // EuropeanNumber\n\tES                   // EuropeanSeparator\n\tET                   // EuropeanTerminator\n\tAN                   // ArabicNumber\n\tCS                   // CommonSeparator\n\tB                    // ParagraphSeparator\n\tS                    // SegmentSeparator\n\tWS                   // WhiteSpace\n\tON                   // OtherNeutral\n\tBN                   // BoundaryNeutral\n\tNSM                  // NonspacingMark\n\tAL                   // ArabicLetter\n\tControl              // Control LRO - PDI\n\n\tnumClass\n\n\tLRO // LeftToRightOverride\n\tRLO // RightToLeftOverride\n\tLRE // LeftToRightEmbedding\n\tRLE // RightToLeftEmbedding\n\tPDF // PopDirectionalFormat\n\tLRI // LeftToRightIsolate\n\tRLI // RightToLeftIsolate\n\tFSI // FirstStrongIsolate\n\tPDI // PopDirectionalIsolate\n\n\tunknownClass = ^Class(0)\n)\n\nvar controlToClass = map[rune]Class{\n\t0x202D: LRO, // LeftToRightOverride,\n\t0x202E: RLO, // RightToLeftOverride,\n\t0x202A: LRE, // LeftToRightEmbedding,\n\t0x202B: RLE, // RightToLeftEmbedding,\n\t0x202C: PDF, // PopDirectionalFormat,\n\t0x2066: LRI, // LeftToRightIsolate,\n\t0x2067: RLI, // RightToLeftIsolate,\n\t0x2068: FSI, // FirstStrongIsolate,\n\t0x2069: PDI, // PopDirectionalIsolate,\n}\n\n// A trie entry has the following bits:\n// 7..5  XOR mask for brackets\n// 4     1: Bracket open, 0: Bracket close\n// 3..0  Class type\n\nconst (\n\topenMask     = 0x10\n\txorMaskShift = 5\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/composition.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"unicode/utf8\"\n\nconst (\n\tmaxNonStarters = 30\n\t// The maximum number of characters needed for a buffer is\n\t// maxNonStarters + 1 for the starter + 1 for the GCJ\n\tmaxBufferSize    = maxNonStarters + 2\n\tmaxNFCExpansion  = 3  // NFC(0x1D160)\n\tmaxNFKCExpansion = 18 // NFKC(0xFDFA)\n\n\tmaxByteBufferSize = utf8.UTFMax * maxBufferSize // 128\n)\n\n// ssState is used for reporting the segment state after inserting a rune.\n// It is returned by streamSafe.next.\ntype ssState int\n\nconst (\n\t// Indicates a rune was successfully added to the segment.\n\tssSuccess ssState = iota\n\t// Indicates a rune starts a new segment and should not be added.\n\tssStarter\n\t// Indicates a rune caused a segment overflow and a CGJ should be inserted.\n\tssOverflow\n)\n\n// streamSafe implements the policy of when a CGJ should be inserted.\ntype streamSafe uint8\n\n// first inserts the first rune of a segment. It is a faster version of next if\n// it is known p represents the first rune in a segment.\nfunc (ss *streamSafe) first(p Properties) {\n\t*ss = streamSafe(p.nTrailingNonStarters())\n}\n\n// insert returns a ssState value to indicate whether a rune represented by p\n// can be inserted.\nfunc (ss *streamSafe) next(p Properties) ssState {\n\tif *ss > maxNonStarters {\n\t\tpanic(\"streamSafe was not reset\")\n\t}\n\tn := p.nLeadingNonStarters()\n\tif *ss += streamSafe(n); *ss > maxNonStarters {\n\t\t*ss = 0\n\t\treturn ssOverflow\n\t}\n\t// The Stream-Safe Text Processing prescribes that the counting can stop\n\t// as soon as a starter is encountered. However, there are some starters,\n\t// like Jamo V and T, that can combine with other runes, leaving their\n\t// successive non-starters appended to the previous, possibly causing an\n\t// overflow. We will therefore consider any rune with a non-zero nLead to\n\t// be a non-starter. Note that it always hold that if nLead > 0 then\n\t// nLead == nTrail.\n\tif n == 0 {\n\t\t*ss = streamSafe(p.nTrailingNonStarters())\n\t\treturn ssStarter\n\t}\n\treturn ssSuccess\n}\n\n// backwards is used for checking for overflow and segment starts\n// when traversing a string backwards. Users do not need to call first\n// for the first rune. The state of the streamSafe retains the count of\n// the non-starters loaded.\nfunc (ss *streamSafe) backwards(p Properties) ssState {\n\tif *ss > maxNonStarters {\n\t\tpanic(\"streamSafe was not reset\")\n\t}\n\tc := *ss + streamSafe(p.nTrailingNonStarters())\n\tif c > maxNonStarters {\n\t\treturn ssOverflow\n\t}\n\t*ss = c\n\tif p.nLeadingNonStarters() == 0 {\n\t\treturn ssStarter\n\t}\n\treturn ssSuccess\n}\n\nfunc (ss streamSafe) isMax() bool {\n\treturn ss == maxNonStarters\n}\n\n// GraphemeJoiner is inserted after maxNonStarters non-starter runes.\nconst GraphemeJoiner = \"\\u034F\"\n\n// reorderBuffer is used to normalize a single segment.  Characters inserted with\n// insert are decomposed and reordered based on CCC. The compose method can\n// be used to recombine characters.  Note that the byte buffer does not hold\n// the UTF-8 characters in order.  Only the rune array is maintained in sorted\n// order. flush writes the resulting segment to a byte array.\ntype reorderBuffer struct {\n\trune  [maxBufferSize]Properties // Per character info.\n\tbyte  [maxByteBufferSize]byte   // UTF-8 buffer. Referenced by runeInfo.pos.\n\tnbyte uint8                     // Number or bytes.\n\tss    streamSafe                // For limiting length of non-starter sequence.\n\tnrune int                       // Number of runeInfos.\n\tf     formInfo\n\n\tsrc      input\n\tnsrc     int\n\ttmpBytes input\n\n\tout    []byte\n\tflushF func(*reorderBuffer) bool\n}\n\nfunc (rb *reorderBuffer) init(f Form, src []byte) {\n\trb.f = *formTable[f]\n\trb.src.setBytes(src)\n\trb.nsrc = len(src)\n\trb.ss = 0\n}\n\nfunc (rb *reorderBuffer) initString(f Form, src string) {\n\trb.f = *formTable[f]\n\trb.src.setString(src)\n\trb.nsrc = len(src)\n\trb.ss = 0\n}\n\nfunc (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) {\n\trb.out = out\n\trb.flushF = f\n}\n\n// reset discards all characters from the buffer.\nfunc (rb *reorderBuffer) reset() {\n\trb.nrune = 0\n\trb.nbyte = 0\n}\n\nfunc (rb *reorderBuffer) doFlush() bool {\n\tif rb.f.composing {\n\t\trb.compose()\n\t}\n\tres := rb.flushF(rb)\n\trb.reset()\n\treturn res\n}\n\n// appendFlush appends the normalized segment to rb.out.\nfunc appendFlush(rb *reorderBuffer) bool {\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tstart := rb.rune[i].pos\n\t\tend := start + rb.rune[i].size\n\t\trb.out = append(rb.out, rb.byte[start:end]...)\n\t}\n\treturn true\n}\n\n// flush appends the normalized segment to out and resets rb.\nfunc (rb *reorderBuffer) flush(out []byte) []byte {\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tstart := rb.rune[i].pos\n\t\tend := start + rb.rune[i].size\n\t\tout = append(out, rb.byte[start:end]...)\n\t}\n\trb.reset()\n\treturn out\n}\n\n// flushCopy copies the normalized segment to buf and resets rb.\n// It returns the number of bytes written to buf.\nfunc (rb *reorderBuffer) flushCopy(buf []byte) int {\n\tp := 0\n\tfor i := 0; i < rb.nrune; i++ {\n\t\trunep := rb.rune[i]\n\t\tp += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size])\n\t}\n\trb.reset()\n\treturn p\n}\n\n// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class.\n// It returns false if the buffer is not large enough to hold the rune.\n// It is used internally by insert and insertString only.\nfunc (rb *reorderBuffer) insertOrdered(info Properties) {\n\tn := rb.nrune\n\tb := rb.rune[:]\n\tcc := info.ccc\n\tif cc > 0 {\n\t\t// Find insertion position + move elements to make room.\n\t\tfor ; n > 0; n-- {\n\t\t\tif b[n-1].ccc <= cc {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb[n] = b[n-1]\n\t\t}\n\t}\n\trb.nrune += 1\n\tpos := uint8(rb.nbyte)\n\trb.nbyte += utf8.UTFMax\n\tinfo.pos = pos\n\tb[n] = info\n}\n\n// insertErr is an error code returned by insert. Using this type instead\n// of error improves performance up to 20% for many of the benchmarks.\ntype insertErr int\n\nconst (\n\tiSuccess insertErr = -iota\n\tiShortDst\n\tiShortSrc\n)\n\n// insertFlush inserts the given rune in the buffer ordered by CCC.\n// If a decomposition with multiple segments are encountered, they leading\n// ones are flushed.\n// It returns a non-zero error code if the rune was not inserted.\nfunc (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr {\n\tif rune := src.hangul(i); rune != 0 {\n\t\trb.decomposeHangul(rune)\n\t\treturn iSuccess\n\t}\n\tif info.hasDecomposition() {\n\t\treturn rb.insertDecomposed(info.Decomposition())\n\t}\n\trb.insertSingle(src, i, info)\n\treturn iSuccess\n}\n\n// insertUnsafe inserts the given rune in the buffer ordered by CCC.\n// It is assumed there is sufficient space to hold the runes. It is the\n// responsibility of the caller to ensure this. This can be done by checking\n// the state returned by the streamSafe type.\nfunc (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) {\n\tif rune := src.hangul(i); rune != 0 {\n\t\trb.decomposeHangul(rune)\n\t}\n\tif info.hasDecomposition() {\n\t\t// TODO: inline.\n\t\trb.insertDecomposed(info.Decomposition())\n\t} else {\n\t\trb.insertSingle(src, i, info)\n\t}\n}\n\n// insertDecomposed inserts an entry in to the reorderBuffer for each rune\n// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes.\n// It flushes the buffer on each new segment start.\nfunc (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr {\n\trb.tmpBytes.setBytes(dcomp)\n\t// As the streamSafe accounting already handles the counting for modifiers,\n\t// we don't have to call next. However, we do need to keep the accounting\n\t// intact when flushing the buffer.\n\tfor i := 0; i < len(dcomp); {\n\t\tinfo := rb.f.info(rb.tmpBytes, i)\n\t\tif info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() {\n\t\t\treturn iShortDst\n\t\t}\n\t\ti += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)])\n\t\trb.insertOrdered(info)\n\t}\n\treturn iSuccess\n}\n\n// insertSingle inserts an entry in the reorderBuffer for the rune at\n// position i. info is the runeInfo for the rune at position i.\nfunc (rb *reorderBuffer) insertSingle(src input, i int, info Properties) {\n\tsrc.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size))\n\trb.insertOrdered(info)\n}\n\n// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb.\nfunc (rb *reorderBuffer) insertCGJ() {\n\trb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))})\n}\n\n// appendRune inserts a rune at the end of the buffer. It is used for Hangul.\nfunc (rb *reorderBuffer) appendRune(r rune) {\n\tbn := rb.nbyte\n\tsz := utf8.EncodeRune(rb.byte[bn:], rune(r))\n\trb.nbyte += utf8.UTFMax\n\trb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)}\n\trb.nrune++\n}\n\n// assignRune sets a rune at position pos. It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) assignRune(pos int, r rune) {\n\tbn := rb.rune[pos].pos\n\tsz := utf8.EncodeRune(rb.byte[bn:], rune(r))\n\trb.rune[pos] = Properties{pos: bn, size: uint8(sz)}\n}\n\n// runeAt returns the rune at position n. It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) runeAt(n int) rune {\n\tinf := rb.rune[n]\n\tr, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])\n\treturn r\n}\n\n// bytesAt returns the UTF-8 encoding of the rune at position n.\n// It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) bytesAt(n int) []byte {\n\tinf := rb.rune[n]\n\treturn rb.byte[inf.pos : int(inf.pos)+int(inf.size)]\n}\n\n// For Hangul we combine algorithmically, instead of using tables.\nconst (\n\thangulBase  = 0xAC00 // UTF-8(hangulBase) -> EA B0 80\n\thangulBase0 = 0xEA\n\thangulBase1 = 0xB0\n\thangulBase2 = 0x80\n\n\thangulEnd  = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4\n\thangulEnd0 = 0xED\n\thangulEnd1 = 0x9E\n\thangulEnd2 = 0xA4\n\n\tjamoLBase  = 0x1100 // UTF-8(jamoLBase) -> E1 84 00\n\tjamoLBase0 = 0xE1\n\tjamoLBase1 = 0x84\n\tjamoLEnd   = 0x1113\n\tjamoVBase  = 0x1161\n\tjamoVEnd   = 0x1176\n\tjamoTBase  = 0x11A7\n\tjamoTEnd   = 0x11C3\n\n\tjamoTCount   = 28\n\tjamoVCount   = 21\n\tjamoVTCount  = 21 * 28\n\tjamoLVTCount = 19 * 21 * 28\n)\n\nconst hangulUTF8Size = 3\n\nfunc isHangul(b []byte) bool {\n\tif len(b) < hangulUTF8Size {\n\t\treturn false\n\t}\n\tb0 := b[0]\n\tif b0 < hangulBase0 {\n\t\treturn false\n\t}\n\tb1 := b[1]\n\tswitch {\n\tcase b0 == hangulBase0:\n\t\treturn b1 >= hangulBase1\n\tcase b0 < hangulEnd0:\n\t\treturn true\n\tcase b0 > hangulEnd0:\n\t\treturn false\n\tcase b1 < hangulEnd1:\n\t\treturn true\n\t}\n\treturn b1 == hangulEnd1 && b[2] < hangulEnd2\n}\n\nfunc isHangulString(b string) bool {\n\tif len(b) < hangulUTF8Size {\n\t\treturn false\n\t}\n\tb0 := b[0]\n\tif b0 < hangulBase0 {\n\t\treturn false\n\t}\n\tb1 := b[1]\n\tswitch {\n\tcase b0 == hangulBase0:\n\t\treturn b1 >= hangulBase1\n\tcase b0 < hangulEnd0:\n\t\treturn true\n\tcase b0 > hangulEnd0:\n\t\treturn false\n\tcase b1 < hangulEnd1:\n\t\treturn true\n\t}\n\treturn b1 == hangulEnd1 && b[2] < hangulEnd2\n}\n\n// Caller must ensure len(b) >= 2.\nfunc isJamoVT(b []byte) bool {\n\t// True if (rune & 0xff00) == jamoLBase\n\treturn b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1\n}\n\nfunc isHangulWithoutJamoT(b []byte) bool {\n\tc, _ := utf8.DecodeRune(b)\n\tc -= hangulBase\n\treturn c < jamoLVTCount && c%jamoTCount == 0\n}\n\n// decomposeHangul writes the decomposed Hangul to buf and returns the number\n// of bytes written.  len(buf) should be at least 9.\nfunc decomposeHangul(buf []byte, r rune) int {\n\tconst JamoUTF8Len = 3\n\tr -= hangulBase\n\tx := r % jamoTCount\n\tr /= jamoTCount\n\tutf8.EncodeRune(buf, jamoLBase+r/jamoVCount)\n\tutf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount)\n\tif x != 0 {\n\t\tutf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x)\n\t\treturn 3 * JamoUTF8Len\n\t}\n\treturn 2 * JamoUTF8Len\n}\n\n// decomposeHangul algorithmically decomposes a Hangul rune into\n// its Jamo components.\n// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.\nfunc (rb *reorderBuffer) decomposeHangul(r rune) {\n\tr -= hangulBase\n\tx := r % jamoTCount\n\tr /= jamoTCount\n\trb.appendRune(jamoLBase + r/jamoVCount)\n\trb.appendRune(jamoVBase + r%jamoVCount)\n\tif x != 0 {\n\t\trb.appendRune(jamoTBase + x)\n\t}\n}\n\n// combineHangul algorithmically combines Jamo character components into Hangul.\n// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul.\nfunc (rb *reorderBuffer) combineHangul(s, i, k int) {\n\tb := rb.rune[:]\n\tbn := rb.nrune\n\tfor ; i < bn; i++ {\n\t\tcccB := b[k-1].ccc\n\t\tcccC := b[i].ccc\n\t\tif cccB == 0 {\n\t\t\ts = k - 1\n\t\t}\n\t\tif s != k-1 && cccB >= cccC {\n\t\t\t// b[i] is blocked by greater-equal cccX below it\n\t\t\tb[k] = b[i]\n\t\t\tk++\n\t\t} else {\n\t\t\tl := rb.runeAt(s) // also used to compare to hangulBase\n\t\t\tv := rb.runeAt(i) // also used to compare to jamoT\n\t\t\tswitch {\n\t\t\tcase jamoLBase <= l && l < jamoLEnd &&\n\t\t\t\tjamoVBase <= v && v < jamoVEnd:\n\t\t\t\t// 11xx plus 116x to LV\n\t\t\t\trb.assignRune(s, hangulBase+\n\t\t\t\t\t(l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount)\n\t\t\tcase hangulBase <= l && l < hangulEnd &&\n\t\t\t\tjamoTBase < v && v < jamoTEnd &&\n\t\t\t\t((l-hangulBase)%jamoTCount) == 0:\n\t\t\t\t// ACxx plus 11Ax to LVT\n\t\t\t\trb.assignRune(s, l+v-jamoTBase)\n\t\t\tdefault:\n\t\t\t\tb[k] = b[i]\n\t\t\t\tk++\n\t\t\t}\n\t\t}\n\t}\n\trb.nrune = k\n}\n\n// compose recombines the runes in the buffer.\n// It should only be used to recompose a single segment, as it will not\n// handle alternations between Hangul and non-Hangul characters correctly.\nfunc (rb *reorderBuffer) compose() {\n\t// Lazily load the map used by the combine func below, but do\n\t// it outside of the loop.\n\trecompMapOnce.Do(buildRecompMap)\n\n\t// UAX #15, section X5 , including Corrigendum #5\n\t// \"In any character sequence beginning with starter S, a character C is\n\t//  blocked from S if and only if there is some character B between S\n\t//  and C, and either B is a starter or it has the same or higher\n\t//  combining class as C.\"\n\tbn := rb.nrune\n\tif bn == 0 {\n\t\treturn\n\t}\n\tk := 1\n\tb := rb.rune[:]\n\tfor s, i := 0, 1; i < bn; i++ {\n\t\tif isJamoVT(rb.bytesAt(i)) {\n\t\t\t// Redo from start in Hangul mode. Necessary to support\n\t\t\t// U+320E..U+321E in NFKC mode.\n\t\t\trb.combineHangul(s, i, k)\n\t\t\treturn\n\t\t}\n\t\tii := b[i]\n\t\t// We can only use combineForward as a filter if we later\n\t\t// get the info for the combined character. This is more\n\t\t// expensive than using the filter. Using combinesBackward()\n\t\t// is safe.\n\t\tif ii.combinesBackward() {\n\t\t\tcccB := b[k-1].ccc\n\t\t\tcccC := ii.ccc\n\t\t\tblocked := false // b[i] blocked by starter or greater or equal CCC?\n\t\t\tif cccB == 0 {\n\t\t\t\ts = k - 1\n\t\t\t} else {\n\t\t\t\tblocked = s != k-1 && cccB >= cccC\n\t\t\t}\n\t\t\tif !blocked {\n\t\t\t\tcombined := combine(rb.runeAt(s), rb.runeAt(i))\n\t\t\t\tif combined != 0 {\n\t\t\t\t\trb.assignRune(s, combined)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tb[k] = b[i]\n\t\tk++\n\t}\n\trb.nrune = k\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/forminfo.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"encoding/binary\"\n\n// This file contains Form-specific logic and wrappers for data in tables.go.\n\n// Rune info is stored in a separate trie per composing form. A composing form\n// and its corresponding decomposing form share the same trie.  Each trie maps\n// a rune to a uint16. The values take two forms.  For v >= 0x8000:\n//   bits\n//   15:    1 (inverse of NFD_QC bit of qcInfo)\n//   13..7: qcInfo (see below). isYesD is always true (no decompostion).\n//    6..0: ccc (compressed CCC value).\n// For v < 0x8000, the respective rune has a decomposition and v is an index\n// into a byte array of UTF-8 decomposition sequences and additional info and\n// has the form:\n//    <header> <decomp_byte>* [<tccc> [<lccc>]]\n// The header contains the number of bytes in the decomposition (excluding this\n// length byte). The two most significant bits of this length byte correspond\n// to bit 5 and 4 of qcInfo (see below).  The byte sequence itself starts at v+1.\n// The byte sequence is followed by a trailing and leading CCC if the values\n// for these are not zero.  The value of v determines which ccc are appended\n// to the sequences.  For v < firstCCC, there are none, for v >= firstCCC,\n// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC\n// there is an additional leading ccc. The value of tccc itself is the\n// trailing CCC shifted left 2 bits. The two least-significant bits of tccc\n// are the number of trailing non-starters.\n\nconst (\n\tqcInfoMask      = 0x3F // to clear all but the relevant bits in a qcInfo\n\theaderLenMask   = 0x3F // extract the length value from the header byte\n\theaderFlagsMask = 0xC0 // extract the qcInfo bits from the header byte\n)\n\n// Properties provides access to normalization properties of a rune.\ntype Properties struct {\n\tpos   uint8  // start position in reorderBuffer; used in composition.go\n\tsize  uint8  // length of UTF-8 encoding of this rune\n\tccc   uint8  // leading canonical combining class (ccc if not decomposition)\n\ttccc  uint8  // trailing canonical combining class (ccc if not decomposition)\n\tnLead uint8  // number of leading non-starters.\n\tflags qcInfo // quick check flags\n\tindex uint16\n}\n\n// functions dispatchable per form\ntype lookupFunc func(b input, i int) Properties\n\n// formInfo holds Form-specific functions and tables.\ntype formInfo struct {\n\tform                     Form\n\tcomposing, compatibility bool // form type\n\tinfo                     lookupFunc\n\tnextMain                 iterFunc\n}\n\nvar formTable = []*formInfo{{\n\tform:          NFC,\n\tcomposing:     true,\n\tcompatibility: false,\n\tinfo:          lookupInfoNFC,\n\tnextMain:      nextComposed,\n}, {\n\tform:          NFD,\n\tcomposing:     false,\n\tcompatibility: false,\n\tinfo:          lookupInfoNFC,\n\tnextMain:      nextDecomposed,\n}, {\n\tform:          NFKC,\n\tcomposing:     true,\n\tcompatibility: true,\n\tinfo:          lookupInfoNFKC,\n\tnextMain:      nextComposed,\n}, {\n\tform:          NFKD,\n\tcomposing:     false,\n\tcompatibility: true,\n\tinfo:          lookupInfoNFKC,\n\tnextMain:      nextDecomposed,\n}}\n\n// We do not distinguish between boundaries for NFC, NFD, etc. to avoid\n// unexpected behavior for the user.  For example, in NFD, there is a boundary\n// after 'a'.  However, 'a' might combine with modifiers, so from the application's\n// perspective it is not a good boundary. We will therefore always use the\n// boundaries for the combining variants.\n\n// BoundaryBefore returns true if this rune starts a new segment and\n// cannot combine with any rune on the left.\nfunc (p Properties) BoundaryBefore() bool {\n\tif p.ccc == 0 && !p.combinesBackward() {\n\t\treturn true\n\t}\n\t// We assume that the CCC of the first character in a decomposition\n\t// is always non-zero if different from info.ccc and that we can return\n\t// false at this point. This is verified by maketables.\n\treturn false\n}\n\n// BoundaryAfter returns true if runes cannot combine with or otherwise\n// interact with this or previous runes.\nfunc (p Properties) BoundaryAfter() bool {\n\t// TODO: loosen these conditions.\n\treturn p.isInert()\n}\n\n// We pack quick check data in 4 bits:\n//   5:    Combines forward  (0 == false, 1 == true)\n//   4..3: NFC_QC Yes(00), No (10), or Maybe (11)\n//   2:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.\n//   1..0: Number of trailing non-starters.\n//\n// When all 4 bits are zero, the character is inert, meaning it is never\n// influenced by normalization.\ntype qcInfo uint8\n\nfunc (p Properties) isYesC() bool { return p.flags&0x10 == 0 }\nfunc (p Properties) isYesD() bool { return p.flags&0x4 == 0 }\n\nfunc (p Properties) combinesForward() bool  { return p.flags&0x20 != 0 }\nfunc (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe\nfunc (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD\n\nfunc (p Properties) isInert() bool {\n\treturn p.flags&qcInfoMask == 0 && p.ccc == 0\n}\n\nfunc (p Properties) multiSegment() bool {\n\treturn p.index >= firstMulti && p.index < endMulti\n}\n\nfunc (p Properties) nLeadingNonStarters() uint8 {\n\treturn p.nLead\n}\n\nfunc (p Properties) nTrailingNonStarters() uint8 {\n\treturn uint8(p.flags & 0x03)\n}\n\n// Decomposition returns the decomposition for the underlying rune\n// or nil if there is none.\nfunc (p Properties) Decomposition() []byte {\n\t// TODO: create the decomposition for Hangul?\n\tif p.index == 0 {\n\t\treturn nil\n\t}\n\ti := p.index\n\tn := decomps[i] & headerLenMask\n\ti++\n\treturn decomps[i : i+uint16(n)]\n}\n\n// Size returns the length of UTF-8 encoding of the rune.\nfunc (p Properties) Size() int {\n\treturn int(p.size)\n}\n\n// CCC returns the canonical combining class of the underlying rune.\nfunc (p Properties) CCC() uint8 {\n\tif p.index >= firstCCCZeroExcept {\n\t\treturn 0\n\t}\n\treturn ccc[p.ccc]\n}\n\n// LeadCCC returns the CCC of the first rune in the decomposition.\n// If there is no decomposition, LeadCCC equals CCC.\nfunc (p Properties) LeadCCC() uint8 {\n\treturn ccc[p.ccc]\n}\n\n// TrailCCC returns the CCC of the last rune in the decomposition.\n// If there is no decomposition, TrailCCC equals CCC.\nfunc (p Properties) TrailCCC() uint8 {\n\treturn ccc[p.tccc]\n}\n\nfunc buildRecompMap() {\n\trecompMap = make(map[uint32]rune, len(recompMapPacked)/8)\n\tvar buf [8]byte\n\tfor i := 0; i < len(recompMapPacked); i += 8 {\n\t\tcopy(buf[:], recompMapPacked[i:i+8])\n\t\tkey := binary.BigEndian.Uint32(buf[:4])\n\t\tval := binary.BigEndian.Uint32(buf[4:])\n\t\trecompMap[key] = rune(val)\n\t}\n}\n\n// Recomposition\n// We use 32-bit keys instead of 64-bit for the two codepoint keys.\n// This clips off the bits of three entries, but we know this will not\n// result in a collision. In the unlikely event that changes to\n// UnicodeData.txt introduce collisions, the compiler will catch it.\n// Note that the recomposition map for NFC and NFKC are identical.\n\n// combine returns the combined rune or 0 if it doesn't exist.\n//\n// The caller is responsible for calling\n// recompMapOnce.Do(buildRecompMap) sometime before this is called.\nfunc combine(a, b rune) rune {\n\tkey := uint32(uint16(a))<<16 + uint32(uint16(b))\n\tif recompMap == nil {\n\t\tpanic(\"caller error\") // see func comment\n\t}\n\treturn recompMap[key]\n}\n\nfunc lookupInfoNFC(b input, i int) Properties {\n\tv, sz := b.charinfoNFC(i)\n\treturn compInfo(v, sz)\n}\n\nfunc lookupInfoNFKC(b input, i int) Properties {\n\tv, sz := b.charinfoNFKC(i)\n\treturn compInfo(v, sz)\n}\n\n// Properties returns properties for the first rune in s.\nfunc (f Form) Properties(s []byte) Properties {\n\tif f == NFC || f == NFD {\n\t\treturn compInfo(nfcData.lookup(s))\n\t}\n\treturn compInfo(nfkcData.lookup(s))\n}\n\n// PropertiesString returns properties for the first rune in s.\nfunc (f Form) PropertiesString(s string) Properties {\n\tif f == NFC || f == NFD {\n\t\treturn compInfo(nfcData.lookupString(s))\n\t}\n\treturn compInfo(nfkcData.lookupString(s))\n}\n\n// compInfo converts the information contained in v and sz\n// to a Properties.  See the comment at the top of the file\n// for more information on the format.\nfunc compInfo(v uint16, sz int) Properties {\n\tif v == 0 {\n\t\treturn Properties{size: uint8(sz)}\n\t} else if v >= 0x8000 {\n\t\tp := Properties{\n\t\t\tsize:  uint8(sz),\n\t\t\tccc:   uint8(v),\n\t\t\ttccc:  uint8(v),\n\t\t\tflags: qcInfo(v >> 8),\n\t\t}\n\t\tif p.ccc > 0 || p.combinesBackward() {\n\t\t\tp.nLead = uint8(p.flags & 0x3)\n\t\t}\n\t\treturn p\n\t}\n\t// has decomposition\n\th := decomps[v]\n\tf := (qcInfo(h&headerFlagsMask) >> 2) | 0x4\n\tp := Properties{size: uint8(sz), flags: f, index: v}\n\tif v >= firstCCC {\n\t\tv += uint16(h&headerLenMask) + 1\n\t\tc := decomps[v]\n\t\tp.tccc = c >> 2\n\t\tp.flags |= qcInfo(c & 0x3)\n\t\tif v >= firstLeadingCCC {\n\t\t\tp.nLead = c & 0x3\n\t\t\tif v >= firstStarterWithNLead {\n\t\t\t\t// We were tricked. Remove the decomposition.\n\t\t\t\tp.flags &= 0x03\n\t\t\t\tp.index = 0\n\t\t\t\treturn p\n\t\t\t}\n\t\t\tp.ccc = decomps[v+1]\n\t\t}\n\t}\n\treturn p\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/input.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"unicode/utf8\"\n\ntype input struct {\n\tstr   string\n\tbytes []byte\n}\n\nfunc inputBytes(str []byte) input {\n\treturn input{bytes: str}\n}\n\nfunc inputString(str string) input {\n\treturn input{str: str}\n}\n\nfunc (in *input) setBytes(str []byte) {\n\tin.str = \"\"\n\tin.bytes = str\n}\n\nfunc (in *input) setString(str string) {\n\tin.str = str\n\tin.bytes = nil\n}\n\nfunc (in *input) _byte(p int) byte {\n\tif in.bytes == nil {\n\t\treturn in.str[p]\n\t}\n\treturn in.bytes[p]\n}\n\nfunc (in *input) skipASCII(p, max int) int {\n\tif in.bytes == nil {\n\t\tfor ; p < max && in.str[p] < utf8.RuneSelf; p++ {\n\t\t}\n\t} else {\n\t\tfor ; p < max && in.bytes[p] < utf8.RuneSelf; p++ {\n\t\t}\n\t}\n\treturn p\n}\n\nfunc (in *input) skipContinuationBytes(p int) int {\n\tif in.bytes == nil {\n\t\tfor ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ {\n\t\t}\n\t} else {\n\t\tfor ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ {\n\t\t}\n\t}\n\treturn p\n}\n\nfunc (in *input) appendSlice(buf []byte, b, e int) []byte {\n\tif in.bytes != nil {\n\t\treturn append(buf, in.bytes[b:e]...)\n\t}\n\tfor i := b; i < e; i++ {\n\t\tbuf = append(buf, in.str[i])\n\t}\n\treturn buf\n}\n\nfunc (in *input) copySlice(buf []byte, b, e int) int {\n\tif in.bytes == nil {\n\t\treturn copy(buf, in.str[b:e])\n\t}\n\treturn copy(buf, in.bytes[b:e])\n}\n\nfunc (in *input) charinfoNFC(p int) (uint16, int) {\n\tif in.bytes == nil {\n\t\treturn nfcData.lookupString(in.str[p:])\n\t}\n\treturn nfcData.lookup(in.bytes[p:])\n}\n\nfunc (in *input) charinfoNFKC(p int) (uint16, int) {\n\tif in.bytes == nil {\n\t\treturn nfkcData.lookupString(in.str[p:])\n\t}\n\treturn nfkcData.lookup(in.bytes[p:])\n}\n\nfunc (in *input) hangul(p int) (r rune) {\n\tvar size int\n\tif in.bytes == nil {\n\t\tif !isHangulString(in.str[p:]) {\n\t\t\treturn 0\n\t\t}\n\t\tr, size = utf8.DecodeRuneInString(in.str[p:])\n\t} else {\n\t\tif !isHangul(in.bytes[p:]) {\n\t\t\treturn 0\n\t\t}\n\t\tr, size = utf8.DecodeRune(in.bytes[p:])\n\t}\n\tif size != hangulUTF8Size {\n\t\treturn 0\n\t}\n\treturn r\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/iter.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n)\n\n// MaxSegmentSize is the maximum size of a byte buffer needed to consider any\n// sequence of starter and non-starter runes for the purpose of normalization.\nconst MaxSegmentSize = maxByteBufferSize\n\n// An Iter iterates over a string or byte slice, while normalizing it\n// to a given Form.\ntype Iter struct {\n\trb     reorderBuffer\n\tbuf    [maxByteBufferSize]byte\n\tinfo   Properties // first character saved from previous iteration\n\tnext   iterFunc   // implementation of next depends on form\n\tasciiF iterFunc\n\n\tp        int    // current position in input source\n\tmultiSeg []byte // remainder of multi-segment decomposition\n}\n\ntype iterFunc func(*Iter) []byte\n\n// Init initializes i to iterate over src after normalizing it to Form f.\nfunc (i *Iter) Init(f Form, src []byte) {\n\ti.p = 0\n\tif len(src) == 0 {\n\t\ti.setDone()\n\t\ti.rb.nsrc = 0\n\t\treturn\n\t}\n\ti.multiSeg = nil\n\ti.rb.init(f, src)\n\ti.next = i.rb.f.nextMain\n\ti.asciiF = nextASCIIBytes\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n}\n\n// InitString initializes i to iterate over src after normalizing it to Form f.\nfunc (i *Iter) InitString(f Form, src string) {\n\ti.p = 0\n\tif len(src) == 0 {\n\t\ti.setDone()\n\t\ti.rb.nsrc = 0\n\t\treturn\n\t}\n\ti.multiSeg = nil\n\ti.rb.initString(f, src)\n\ti.next = i.rb.f.nextMain\n\ti.asciiF = nextASCIIString\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n}\n\n// Seek sets the segment to be returned by the next call to Next to start\n// at position p.  It is the responsibility of the caller to set p to the\n// start of a segment.\nfunc (i *Iter) Seek(offset int64, whence int) (int64, error) {\n\tvar abs int64\n\tswitch whence {\n\tcase 0:\n\t\tabs = offset\n\tcase 1:\n\t\tabs = int64(i.p) + offset\n\tcase 2:\n\t\tabs = int64(i.rb.nsrc) + offset\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"norm: invalid whence\")\n\t}\n\tif abs < 0 {\n\t\treturn 0, fmt.Errorf(\"norm: negative position\")\n\t}\n\tif int(abs) >= i.rb.nsrc {\n\t\ti.setDone()\n\t\treturn int64(i.p), nil\n\t}\n\ti.p = int(abs)\n\ti.multiSeg = nil\n\ti.next = i.rb.f.nextMain\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n\treturn abs, nil\n}\n\n// returnSlice returns a slice of the underlying input type as a byte slice.\n// If the underlying is of type []byte, it will simply return a slice.\n// If the underlying is of type string, it will copy the slice to the buffer\n// and return that.\nfunc (i *Iter) returnSlice(a, b int) []byte {\n\tif i.rb.src.bytes == nil {\n\t\treturn i.buf[:copy(i.buf[:], i.rb.src.str[a:b])]\n\t}\n\treturn i.rb.src.bytes[a:b]\n}\n\n// Pos returns the byte position at which the next call to Next will commence processing.\nfunc (i *Iter) Pos() int {\n\treturn i.p\n}\n\nfunc (i *Iter) setDone() {\n\ti.next = nextDone\n\ti.p = i.rb.nsrc\n}\n\n// Done returns true if there is no more input to process.\nfunc (i *Iter) Done() bool {\n\treturn i.p >= i.rb.nsrc\n}\n\n// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input.\n// For any input a and b for which f(a) == f(b), subsequent calls\n// to Next will return the same segments.\n// Modifying runes are grouped together with the preceding starter, if such a starter exists.\n// Although not guaranteed, n will typically be the smallest possible n.\nfunc (i *Iter) Next() []byte {\n\treturn i.next(i)\n}\n\nfunc nextASCIIBytes(i *Iter) []byte {\n\tp := i.p + 1\n\tif p >= i.rb.nsrc {\n\t\tp0 := i.p\n\t\ti.setDone()\n\t\treturn i.rb.src.bytes[p0:p]\n\t}\n\tif i.rb.src.bytes[p] < utf8.RuneSelf {\n\t\tp0 := i.p\n\t\ti.p = p\n\t\treturn i.rb.src.bytes[p0:p]\n\t}\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\nfunc nextASCIIString(i *Iter) []byte {\n\tp := i.p + 1\n\tif p >= i.rb.nsrc {\n\t\ti.buf[0] = i.rb.src.str[i.p]\n\t\ti.setDone()\n\t\treturn i.buf[:1]\n\t}\n\tif i.rb.src.str[p] < utf8.RuneSelf {\n\t\ti.buf[0] = i.rb.src.str[i.p]\n\t\ti.p = p\n\t\treturn i.buf[:1]\n\t}\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\nfunc nextHangul(i *Iter) []byte {\n\tp := i.p\n\tnext := p + hangulUTF8Size\n\tif next >= i.rb.nsrc {\n\t\ti.setDone()\n\t} else if i.rb.src.hangul(next) == 0 {\n\t\ti.rb.ss.next(i.info)\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\ti.next = i.rb.f.nextMain\n\t\treturn i.next(i)\n\t}\n\ti.p = next\n\treturn i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))]\n}\n\nfunc nextDone(i *Iter) []byte {\n\treturn nil\n}\n\n// nextMulti is used for iterating over multi-segment decompositions\n// for decomposing normal forms.\nfunc nextMulti(i *Iter) []byte {\n\tj := 0\n\td := i.multiSeg\n\t// skip first rune\n\tfor j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {\n\t}\n\tfor j < len(d) {\n\t\tinfo := i.rb.f.info(input{bytes: d}, j)\n\t\tif info.BoundaryBefore() {\n\t\t\ti.multiSeg = d[j:]\n\t\t\treturn d[:j]\n\t\t}\n\t\tj += int(info.size)\n\t}\n\t// treat last segment as normal decomposition\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\n// nextMultiNorm is used for iterating over multi-segment decompositions\n// for composing normal forms.\nfunc nextMultiNorm(i *Iter) []byte {\n\tj := 0\n\td := i.multiSeg\n\tfor j < len(d) {\n\t\tinfo := i.rb.f.info(input{bytes: d}, j)\n\t\tif info.BoundaryBefore() {\n\t\t\ti.rb.compose()\n\t\t\tseg := i.buf[:i.rb.flushCopy(i.buf[:])]\n\t\t\ti.rb.insertUnsafe(input{bytes: d}, j, info)\n\t\t\ti.multiSeg = d[j+int(info.size):]\n\t\t\treturn seg\n\t\t}\n\t\ti.rb.insertUnsafe(input{bytes: d}, j, info)\n\t\tj += int(info.size)\n\t}\n\ti.multiSeg = nil\n\ti.next = nextComposed\n\treturn doNormComposed(i)\n}\n\n// nextDecomposed is the implementation of Next for forms NFD and NFKD.\nfunc nextDecomposed(i *Iter) (next []byte) {\n\toutp := 0\n\tinCopyStart, outCopyStart := i.p, 0\n\tfor {\n\t\tif sz := int(i.info.size); sz <= 1 {\n\t\t\ti.rb.ss = 0\n\t\t\tp := i.p\n\t\t\ti.p++ // ASCII or illegal byte.  Either way, advance by 1.\n\t\t\tif i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\treturn i.returnSlice(p, i.p)\n\t\t\t} else if i.rb.src._byte(i.p) < utf8.RuneSelf {\n\t\t\t\ti.next = i.asciiF\n\t\t\t\treturn i.returnSlice(p, i.p)\n\t\t\t}\n\t\t\toutp++\n\t\t} else if d := i.info.Decomposition(); d != nil {\n\t\t\t// Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero.\n\t\t\t// Case 1: there is a leftover to copy.  In this case the decomposition\n\t\t\t// must begin with a modifier and should always be appended.\n\t\t\t// Case 2: no leftover. Simply return d if followed by a ccc == 0 value.\n\t\t\tp := outp + len(d)\n\t\t\tif outp > 0 {\n\t\t\t\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\t\t\t\t// TODO: this condition should not be possible, but we leave it\n\t\t\t\t// in for defensive purposes.\n\t\t\t\tif p > len(i.buf) {\n\t\t\t\t\treturn i.buf[:outp]\n\t\t\t\t}\n\t\t\t} else if i.info.multiSegment() {\n\t\t\t\t// outp must be 0 as multi-segment decompositions always\n\t\t\t\t// start a new segment.\n\t\t\t\tif i.multiSeg == nil {\n\t\t\t\t\ti.multiSeg = d\n\t\t\t\t\ti.next = nextMulti\n\t\t\t\t\treturn nextMulti(i)\n\t\t\t\t}\n\t\t\t\t// We are in the last segment.  Treat as normal decomposition.\n\t\t\t\td = i.multiSeg\n\t\t\t\ti.multiSeg = nil\n\t\t\t\tp = len(d)\n\t\t\t}\n\t\t\tprevCC := i.info.tccc\n\t\t\tif i.p += sz; i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\ti.info = Properties{} // Force BoundaryBefore to succeed.\n\t\t\t} else {\n\t\t\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\t\t}\n\t\t\tswitch i.rb.ss.next(i.info) {\n\t\t\tcase ssOverflow:\n\t\t\t\ti.next = nextCGJDecompose\n\t\t\t\tfallthrough\n\t\t\tcase ssStarter:\n\t\t\t\tif outp > 0 {\n\t\t\t\t\tcopy(i.buf[outp:], d)\n\t\t\t\t\treturn i.buf[:p]\n\t\t\t\t}\n\t\t\t\treturn d\n\t\t\t}\n\t\t\tcopy(i.buf[outp:], d)\n\t\t\toutp = p\n\t\t\tinCopyStart, outCopyStart = i.p, outp\n\t\t\tif i.info.ccc < prevCC {\n\t\t\t\tgoto doNorm\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if r := i.rb.src.hangul(i.p); r != 0 {\n\t\t\toutp = decomposeHangul(i.buf[:], r)\n\t\t\ti.p += hangulUTF8Size\n\t\t\tinCopyStart, outCopyStart = i.p, outp\n\t\t\tif i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\tbreak\n\t\t\t} else if i.rb.src.hangul(i.p) != 0 {\n\t\t\t\ti.next = nextHangul\n\t\t\t\treturn i.buf[:outp]\n\t\t\t}\n\t\t} else {\n\t\t\tp := outp + sz\n\t\t\tif p > len(i.buf) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\toutp = p\n\t\t\ti.p += sz\n\t\t}\n\t\tif i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\tprevCC := i.info.tccc\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif v := i.rb.ss.next(i.info); v == ssStarter {\n\t\t\tbreak\n\t\t} else if v == ssOverflow {\n\t\t\ti.next = nextCGJDecompose\n\t\t\tbreak\n\t\t}\n\t\tif i.info.ccc < prevCC {\n\t\t\tgoto doNorm\n\t\t}\n\t}\n\tif outCopyStart == 0 {\n\t\treturn i.returnSlice(inCopyStart, i.p)\n\t} else if inCopyStart < i.p {\n\t\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\t}\n\treturn i.buf[:outp]\ndoNorm:\n\t// Insert what we have decomposed so far in the reorderBuffer.\n\t// As we will only reorder, there will always be enough room.\n\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\ti.rb.insertDecomposed(i.buf[0:outp])\n\treturn doNormDecomposed(i)\n}\n\nfunc doNormDecomposed(i *Iter) []byte {\n\tfor {\n\t\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\t\tif i.p += int(i.info.size); i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif i.info.ccc == 0 {\n\t\t\tbreak\n\t\t}\n\t\tif s := i.rb.ss.next(i.info); s == ssOverflow {\n\t\t\ti.next = nextCGJDecompose\n\t\t\tbreak\n\t\t}\n\t}\n\t// new segment or too many combining characters: exit normalization\n\treturn i.buf[:i.rb.flushCopy(i.buf[:])]\n}\n\nfunc nextCGJDecompose(i *Iter) []byte {\n\ti.rb.ss = 0\n\ti.rb.insertCGJ()\n\ti.next = nextDecomposed\n\ti.rb.ss.first(i.info)\n\tbuf := doNormDecomposed(i)\n\treturn buf\n}\n\n// nextComposed is the implementation of Next for forms NFC and NFKC.\nfunc nextComposed(i *Iter) []byte {\n\toutp, startp := 0, i.p\n\tvar prevCC uint8\n\tfor {\n\t\tif !i.info.isYesC() {\n\t\t\tgoto doNorm\n\t\t}\n\t\tprevCC = i.info.tccc\n\t\tsz := int(i.info.size)\n\t\tif sz == 0 {\n\t\t\tsz = 1 // illegal rune: copy byte-by-byte\n\t\t}\n\t\tp := outp + sz\n\t\tif p > len(i.buf) {\n\t\t\tbreak\n\t\t}\n\t\toutp = p\n\t\ti.p += sz\n\t\tif i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t} else if i.rb.src._byte(i.p) < utf8.RuneSelf {\n\t\t\ti.rb.ss = 0\n\t\t\ti.next = i.asciiF\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif v := i.rb.ss.next(i.info); v == ssStarter {\n\t\t\tbreak\n\t\t} else if v == ssOverflow {\n\t\t\ti.next = nextCGJCompose\n\t\t\tbreak\n\t\t}\n\t\tif i.info.ccc < prevCC {\n\t\t\tgoto doNorm\n\t\t}\n\t}\n\treturn i.returnSlice(startp, i.p)\ndoNorm:\n\t// reset to start position\n\ti.p = startp\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n\tif i.info.multiSegment() {\n\t\td := i.info.Decomposition()\n\t\tinfo := i.rb.f.info(input{bytes: d}, 0)\n\t\ti.rb.insertUnsafe(input{bytes: d}, 0, info)\n\t\ti.multiSeg = d[int(info.size):]\n\t\ti.next = nextMultiNorm\n\t\treturn nextMultiNorm(i)\n\t}\n\ti.rb.ss.first(i.info)\n\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\treturn doNormComposed(i)\n}\n\nfunc doNormComposed(i *Iter) []byte {\n\t// First rune should already be inserted.\n\tfor {\n\t\tif i.p += int(i.info.size); i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif s := i.rb.ss.next(i.info); s == ssStarter {\n\t\t\tbreak\n\t\t} else if s == ssOverflow {\n\t\t\ti.next = nextCGJCompose\n\t\t\tbreak\n\t\t}\n\t\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\t}\n\ti.rb.compose()\n\tseg := i.buf[:i.rb.flushCopy(i.buf[:])]\n\treturn seg\n}\n\nfunc nextCGJCompose(i *Iter) []byte {\n\ti.rb.ss = 0 // instead of first\n\ti.rb.insertCGJ()\n\ti.next = nextComposed\n\t// Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter,\n\t// even if they are not. This is particularly dubious for U+FF9E and UFF9A.\n\t// If we ever change that, insert a check here.\n\ti.rb.ss.first(i.info)\n\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\treturn doNormComposed(i)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/normalize.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Note: the file data_test.go that is generated should not be checked in.\n//go:generate go run maketables.go triegen.go\n//go:generate go test -tags test\n\n// Package norm contains types and functions for normalizing Unicode strings.\npackage norm // import \"golang.org/x/text/unicode/norm\"\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// A Form denotes a canonical representation of Unicode code points.\n// The Unicode-defined normalization and equivalence forms are:\n//\n//   NFC   Unicode Normalization Form C\n//   NFD   Unicode Normalization Form D\n//   NFKC  Unicode Normalization Form KC\n//   NFKD  Unicode Normalization Form KD\n//\n// For a Form f, this documentation uses the notation f(x) to mean\n// the bytes or string x converted to the given form.\n// A position n in x is called a boundary if conversion to the form can\n// proceed independently on both sides:\n//   f(x) == append(f(x[0:n]), f(x[n:])...)\n//\n// References: https://unicode.org/reports/tr15/ and\n// https://unicode.org/notes/tn5/.\ntype Form int\n\nconst (\n\tNFC Form = iota\n\tNFD\n\tNFKC\n\tNFKD\n)\n\n// Bytes returns f(b). May return b if f(b) = b.\nfunc (f Form) Bytes(b []byte) []byte {\n\tsrc := inputBytes(b)\n\tft := formTable[f]\n\tn, ok := ft.quickSpan(src, 0, len(b), true)\n\tif ok {\n\t\treturn b\n\t}\n\tout := make([]byte, n, len(b))\n\tcopy(out, b[0:n])\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush}\n\treturn doAppendInner(&rb, n)\n}\n\n// String returns f(s).\nfunc (f Form) String(s string) string {\n\tsrc := inputString(s)\n\tft := formTable[f]\n\tn, ok := ft.quickSpan(src, 0, len(s), true)\n\tif ok {\n\t\treturn s\n\t}\n\tout := make([]byte, n, len(s))\n\tcopy(out, s[0:n])\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush}\n\treturn string(doAppendInner(&rb, n))\n}\n\n// IsNormal returns true if b == f(b).\nfunc (f Form) IsNormal(b []byte) bool {\n\tsrc := inputBytes(b)\n\tft := formTable[f]\n\tbp, ok := ft.quickSpan(src, 0, len(b), true)\n\tif ok {\n\t\treturn true\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(b)}\n\trb.setFlusher(nil, cmpNormalBytes)\n\tfor bp < len(b) {\n\t\trb.out = b[bp:]\n\t\tif bp = decomposeSegment(&rb, bp, true); bp < 0 {\n\t\t\treturn false\n\t\t}\n\t\tbp, _ = rb.f.quickSpan(rb.src, bp, len(b), true)\n\t}\n\treturn true\n}\n\nfunc cmpNormalBytes(rb *reorderBuffer) bool {\n\tb := rb.out\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tinfo := rb.rune[i]\n\t\tif int(info.size) > len(b) {\n\t\t\treturn false\n\t\t}\n\t\tp := info.pos\n\t\tpe := p + info.size\n\t\tfor ; p < pe; p++ {\n\t\t\tif b[0] != rb.byte[p] {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tb = b[1:]\n\t\t}\n\t}\n\treturn true\n}\n\n// IsNormalString returns true if s == f(s).\nfunc (f Form) IsNormalString(s string) bool {\n\tsrc := inputString(s)\n\tft := formTable[f]\n\tbp, ok := ft.quickSpan(src, 0, len(s), true)\n\tif ok {\n\t\treturn true\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(s)}\n\trb.setFlusher(nil, func(rb *reorderBuffer) bool {\n\t\tfor i := 0; i < rb.nrune; i++ {\n\t\t\tinfo := rb.rune[i]\n\t\t\tif bp+int(info.size) > len(s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tp := info.pos\n\t\t\tpe := p + info.size\n\t\t\tfor ; p < pe; p++ {\n\t\t\t\tif s[bp] != rb.byte[p] {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tbp++\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\tfor bp < len(s) {\n\t\tif bp = decomposeSegment(&rb, bp, true); bp < 0 {\n\t\t\treturn false\n\t\t}\n\t\tbp, _ = rb.f.quickSpan(rb.src, bp, len(s), true)\n\t}\n\treturn true\n}\n\n// patchTail fixes a case where a rune may be incorrectly normalized\n// if it is followed by illegal continuation bytes. It returns the\n// patched buffer and whether the decomposition is still in progress.\nfunc patchTail(rb *reorderBuffer) bool {\n\tinfo, p := lastRuneStart(&rb.f, rb.out)\n\tif p == -1 || info.size == 0 {\n\t\treturn true\n\t}\n\tend := p + int(info.size)\n\textra := len(rb.out) - end\n\tif extra > 0 {\n\t\t// Potentially allocating memory. However, this only\n\t\t// happens with ill-formed UTF-8.\n\t\tx := make([]byte, 0)\n\t\tx = append(x, rb.out[len(rb.out)-extra:]...)\n\t\trb.out = rb.out[:end]\n\t\tdecomposeToLastBoundary(rb)\n\t\trb.doFlush()\n\t\trb.out = append(rb.out, x...)\n\t\treturn false\n\t}\n\tbuf := rb.out[p:]\n\trb.out = rb.out[:p]\n\tdecomposeToLastBoundary(rb)\n\tif s := rb.ss.next(info); s == ssStarter {\n\t\trb.doFlush()\n\t\trb.ss.first(info)\n\t} else if s == ssOverflow {\n\t\trb.doFlush()\n\t\trb.insertCGJ()\n\t\trb.ss = 0\n\t}\n\trb.insertUnsafe(inputBytes(buf), 0, info)\n\treturn true\n}\n\nfunc appendQuick(rb *reorderBuffer, i int) int {\n\tif rb.nsrc == i {\n\t\treturn i\n\t}\n\tend, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true)\n\trb.out = rb.src.appendSlice(rb.out, i, end)\n\treturn end\n}\n\n// Append returns f(append(out, b...)).\n// The buffer out must be nil, empty, or equal to f(out).\nfunc (f Form) Append(out []byte, src ...byte) []byte {\n\treturn f.doAppend(out, inputBytes(src), len(src))\n}\n\nfunc (f Form) doAppend(out []byte, src input, n int) []byte {\n\tif n == 0 {\n\t\treturn out\n\t}\n\tft := formTable[f]\n\t// Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer.\n\tif len(out) == 0 {\n\t\tp, _ := ft.quickSpan(src, 0, n, true)\n\t\tout = src.appendSlice(out, 0, p)\n\t\tif p == n {\n\t\t\treturn out\n\t\t}\n\t\trb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush}\n\t\treturn doAppendInner(&rb, p)\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: n}\n\treturn doAppend(&rb, out, 0)\n}\n\nfunc doAppend(rb *reorderBuffer, out []byte, p int) []byte {\n\trb.setFlusher(out, appendFlush)\n\tsrc, n := rb.src, rb.nsrc\n\tdoMerge := len(out) > 0\n\tif q := src.skipContinuationBytes(p); q > p {\n\t\t// Move leading non-starters to destination.\n\t\trb.out = src.appendSlice(rb.out, p, q)\n\t\tp = q\n\t\tdoMerge = patchTail(rb)\n\t}\n\tfd := &rb.f\n\tif doMerge {\n\t\tvar info Properties\n\t\tif p < n {\n\t\t\tinfo = fd.info(src, p)\n\t\t\tif !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 {\n\t\t\t\tif p == 0 {\n\t\t\t\t\tdecomposeToLastBoundary(rb)\n\t\t\t\t}\n\t\t\t\tp = decomposeSegment(rb, p, true)\n\t\t\t}\n\t\t}\n\t\tif info.size == 0 {\n\t\t\trb.doFlush()\n\t\t\t// Append incomplete UTF-8 encoding.\n\t\t\treturn src.appendSlice(rb.out, p, n)\n\t\t}\n\t\tif rb.nrune > 0 {\n\t\t\treturn doAppendInner(rb, p)\n\t\t}\n\t}\n\tp = appendQuick(rb, p)\n\treturn doAppendInner(rb, p)\n}\n\nfunc doAppendInner(rb *reorderBuffer, p int) []byte {\n\tfor n := rb.nsrc; p < n; {\n\t\tp = decomposeSegment(rb, p, true)\n\t\tp = appendQuick(rb, p)\n\t}\n\treturn rb.out\n}\n\n// AppendString returns f(append(out, []byte(s))).\n// The buffer out must be nil, empty, or equal to f(out).\nfunc (f Form) AppendString(out []byte, src string) []byte {\n\treturn f.doAppend(out, inputString(src), len(src))\n}\n\n// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) QuickSpan(b []byte) int {\n\tn, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true)\n\treturn n\n}\n\n// Span implements transform.SpanningTransformer. It returns a boundary n such\n// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n.\nfunc (f Form) Span(b []byte, atEOF bool) (n int, err error) {\n\tn, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF)\n\tif n < len(b) {\n\t\tif !ok {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t} else {\n\t\t\terr = transform.ErrShortSrc\n\t\t}\n\t}\n\treturn n, err\n}\n\n// SpanString returns a boundary n such that s[0:n] == f(s[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) SpanString(s string, atEOF bool) (n int, err error) {\n\tn, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF)\n\tif n < len(s) {\n\t\tif !ok {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t} else {\n\t\t\terr = transform.ErrShortSrc\n\t\t}\n\t}\n\treturn n, err\n}\n\n// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and\n// whether any non-normalized parts were found. If atEOF is false, n will\n// not point past the last segment if this segment might be become\n// non-normalized by appending other runes.\nfunc (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) {\n\tvar lastCC uint8\n\tss := streamSafe(0)\n\tlastSegStart := i\n\tfor n = end; i < n; {\n\t\tif j := src.skipASCII(i, n); i != j {\n\t\t\ti = j\n\t\t\tlastSegStart = i - 1\n\t\t\tlastCC = 0\n\t\t\tss = 0\n\t\t\tcontinue\n\t\t}\n\t\tinfo := f.info(src, i)\n\t\tif info.size == 0 {\n\t\t\tif atEOF {\n\t\t\t\t// include incomplete runes\n\t\t\t\treturn n, true\n\t\t\t}\n\t\t\treturn lastSegStart, true\n\t\t}\n\t\t// This block needs to be before the next, because it is possible to\n\t\t// have an overflow for runes that are starters (e.g. with U+FF9E).\n\t\tswitch ss.next(info) {\n\t\tcase ssStarter:\n\t\t\tlastSegStart = i\n\t\tcase ssOverflow:\n\t\t\treturn lastSegStart, false\n\t\tcase ssSuccess:\n\t\t\tif lastCC > info.ccc {\n\t\t\t\treturn lastSegStart, false\n\t\t\t}\n\t\t}\n\t\tif f.composing {\n\t\t\tif !info.isYesC() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif !info.isYesD() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tlastCC = info.ccc\n\t\ti += int(info.size)\n\t}\n\tif i == n {\n\t\tif !atEOF {\n\t\t\tn = lastSegStart\n\t\t}\n\t\treturn n, true\n\t}\n\treturn lastSegStart, false\n}\n\n// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) QuickSpanString(s string) int {\n\tn, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true)\n\treturn n\n}\n\n// FirstBoundary returns the position i of the first boundary in b\n// or -1 if b contains no boundary.\nfunc (f Form) FirstBoundary(b []byte) int {\n\treturn f.firstBoundary(inputBytes(b), len(b))\n}\n\nfunc (f Form) firstBoundary(src input, nsrc int) int {\n\ti := src.skipContinuationBytes(0)\n\tif i >= nsrc {\n\t\treturn -1\n\t}\n\tfd := formTable[f]\n\tss := streamSafe(0)\n\t// We should call ss.first here, but we can't as the first rune is\n\t// skipped already. This means FirstBoundary can't really determine\n\t// CGJ insertion points correctly. Luckily it doesn't have to.\n\tfor {\n\t\tinfo := fd.info(src, i)\n\t\tif info.size == 0 {\n\t\t\treturn -1\n\t\t}\n\t\tif s := ss.next(info); s != ssSuccess {\n\t\t\treturn i\n\t\t}\n\t\ti += int(info.size)\n\t\tif i >= nsrc {\n\t\t\tif !info.BoundaryAfter() && !ss.isMax() {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn nsrc\n\t\t}\n\t}\n}\n\n// FirstBoundaryInString returns the position i of the first boundary in s\n// or -1 if s contains no boundary.\nfunc (f Form) FirstBoundaryInString(s string) int {\n\treturn f.firstBoundary(inputString(s), len(s))\n}\n\n// NextBoundary reports the index of the boundary between the first and next\n// segment in b or -1 if atEOF is false and there are not enough bytes to\n// determine this boundary.\nfunc (f Form) NextBoundary(b []byte, atEOF bool) int {\n\treturn f.nextBoundary(inputBytes(b), len(b), atEOF)\n}\n\n// NextBoundaryInString reports the index of the boundary between the first and\n// next segment in b or -1 if atEOF is false and there are not enough bytes to\n// determine this boundary.\nfunc (f Form) NextBoundaryInString(s string, atEOF bool) int {\n\treturn f.nextBoundary(inputString(s), len(s), atEOF)\n}\n\nfunc (f Form) nextBoundary(src input, nsrc int, atEOF bool) int {\n\tif nsrc == 0 {\n\t\tif atEOF {\n\t\t\treturn 0\n\t\t}\n\t\treturn -1\n\t}\n\tfd := formTable[f]\n\tinfo := fd.info(src, 0)\n\tif info.size == 0 {\n\t\tif atEOF {\n\t\t\treturn 1\n\t\t}\n\t\treturn -1\n\t}\n\tss := streamSafe(0)\n\tss.first(info)\n\n\tfor i := int(info.size); i < nsrc; i += int(info.size) {\n\t\tinfo = fd.info(src, i)\n\t\tif info.size == 0 {\n\t\t\tif atEOF {\n\t\t\t\treturn i\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t\t// TODO: Using streamSafe to determine the boundary isn't the same as\n\t\t// using BoundaryBefore. Determine which should be used.\n\t\tif s := ss.next(info); s != ssSuccess {\n\t\t\treturn i\n\t\t}\n\t}\n\tif !atEOF && !info.BoundaryAfter() && !ss.isMax() {\n\t\treturn -1\n\t}\n\treturn nsrc\n}\n\n// LastBoundary returns the position i of the last boundary in b\n// or -1 if b contains no boundary.\nfunc (f Form) LastBoundary(b []byte) int {\n\treturn lastBoundary(formTable[f], b)\n}\n\nfunc lastBoundary(fd *formInfo, b []byte) int {\n\ti := len(b)\n\tinfo, p := lastRuneStart(fd, b)\n\tif p == -1 {\n\t\treturn -1\n\t}\n\tif info.size == 0 { // ends with incomplete rune\n\t\tif p == 0 { // starts with incomplete rune\n\t\t\treturn -1\n\t\t}\n\t\ti = p\n\t\tinfo, p = lastRuneStart(fd, b[:i])\n\t\tif p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter\n\t\t\treturn i\n\t\t}\n\t}\n\tif p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8\n\t\treturn i\n\t}\n\tif info.BoundaryAfter() {\n\t\treturn i\n\t}\n\tss := streamSafe(0)\n\tv := ss.backwards(info)\n\tfor i = p; i >= 0 && v != ssStarter; i = p {\n\t\tinfo, p = lastRuneStart(fd, b[:i])\n\t\tif v = ss.backwards(info); v == ssOverflow {\n\t\t\tbreak\n\t\t}\n\t\tif p+int(info.size) != i {\n\t\t\tif p == -1 { // no boundary found\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn i // boundary after an illegal UTF-8 encoding\n\t\t}\n\t}\n\treturn i\n}\n\n// decomposeSegment scans the first segment in src into rb. It inserts 0x034f\n// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters\n// and returns the number of bytes consumed from src or iShortDst or iShortSrc.\nfunc decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int {\n\t// Force one character to be consumed.\n\tinfo := rb.f.info(rb.src, sp)\n\tif info.size == 0 {\n\t\treturn 0\n\t}\n\tif s := rb.ss.next(info); s == ssStarter {\n\t\t// TODO: this could be removed if we don't support merging.\n\t\tif rb.nrune > 0 {\n\t\t\tgoto end\n\t\t}\n\t} else if s == ssOverflow {\n\t\trb.insertCGJ()\n\t\tgoto end\n\t}\n\tif err := rb.insertFlush(rb.src, sp, info); err != iSuccess {\n\t\treturn int(err)\n\t}\n\tfor {\n\t\tsp += int(info.size)\n\t\tif sp >= rb.nsrc {\n\t\t\tif !atEOF && !info.BoundaryAfter() {\n\t\t\t\treturn int(iShortSrc)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tinfo = rb.f.info(rb.src, sp)\n\t\tif info.size == 0 {\n\t\t\tif !atEOF {\n\t\t\t\treturn int(iShortSrc)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif s := rb.ss.next(info); s == ssStarter {\n\t\t\tbreak\n\t\t} else if s == ssOverflow {\n\t\t\trb.insertCGJ()\n\t\t\tbreak\n\t\t}\n\t\tif err := rb.insertFlush(rb.src, sp, info); err != iSuccess {\n\t\t\treturn int(err)\n\t\t}\n\t}\nend:\n\tif !rb.doFlush() {\n\t\treturn int(iShortDst)\n\t}\n\treturn sp\n}\n\n// lastRuneStart returns the runeInfo and position of the last\n// rune in buf or the zero runeInfo and -1 if no rune was found.\nfunc lastRuneStart(fd *formInfo, buf []byte) (Properties, int) {\n\tp := len(buf) - 1\n\tfor ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {\n\t}\n\tif p < 0 {\n\t\treturn Properties{}, -1\n\t}\n\treturn fd.info(inputBytes(buf), p), p\n}\n\n// decomposeToLastBoundary finds an open segment at the end of the buffer\n// and scans it into rb. Returns the buffer minus the last segment.\nfunc decomposeToLastBoundary(rb *reorderBuffer) {\n\tfd := &rb.f\n\tinfo, i := lastRuneStart(fd, rb.out)\n\tif int(info.size) != len(rb.out)-i {\n\t\t// illegal trailing continuation bytes\n\t\treturn\n\t}\n\tif info.BoundaryAfter() {\n\t\treturn\n\t}\n\tvar add [maxNonStarters + 1]Properties // stores runeInfo in reverse order\n\tpadd := 0\n\tss := streamSafe(0)\n\tp := len(rb.out)\n\tfor {\n\t\tadd[padd] = info\n\t\tv := ss.backwards(info)\n\t\tif v == ssOverflow {\n\t\t\t// Note that if we have an overflow, it the string we are appending to\n\t\t\t// is not correctly normalized. In this case the behavior is undefined.\n\t\t\tbreak\n\t\t}\n\t\tpadd++\n\t\tp -= int(info.size)\n\t\tif v == ssStarter || p < 0 {\n\t\t\tbreak\n\t\t}\n\t\tinfo, i = lastRuneStart(fd, rb.out[:p])\n\t\tif int(info.size) != p-i {\n\t\t\tbreak\n\t\t}\n\t}\n\trb.ss = ss\n\t// Copy bytes for insertion as we may need to overwrite rb.out.\n\tvar buf [maxBufferSize * utf8.UTFMax]byte\n\tcp := buf[:copy(buf[:], rb.out[p:])]\n\trb.out = rb.out[:p]\n\tfor padd--; padd >= 0; padd-- {\n\t\tinfo = add[padd]\n\t\trb.insertUnsafe(inputBytes(cp), 0, info)\n\t\tcp = cp[info.size:]\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/readwriter.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"io\"\n\ntype normWriter struct {\n\trb  reorderBuffer\n\tw   io.Writer\n\tbuf []byte\n}\n\n// Write implements the standard write interface.  If the last characters are\n// not at a normalization boundary, the bytes will be buffered for the next\n// write. The remaining bytes will be written on close.\nfunc (w *normWriter) Write(data []byte) (n int, err error) {\n\t// Process data in pieces to keep w.buf size bounded.\n\tconst chunk = 4000\n\n\tfor len(data) > 0 {\n\t\t// Normalize into w.buf.\n\t\tm := len(data)\n\t\tif m > chunk {\n\t\t\tm = chunk\n\t\t}\n\t\tw.rb.src = inputBytes(data[:m])\n\t\tw.rb.nsrc = m\n\t\tw.buf = doAppend(&w.rb, w.buf, 0)\n\t\tdata = data[m:]\n\t\tn += m\n\n\t\t// Write out complete prefix, save remainder.\n\t\t// Note that lastBoundary looks back at most 31 runes.\n\t\ti := lastBoundary(&w.rb.f, w.buf)\n\t\tif i == -1 {\n\t\t\ti = 0\n\t\t}\n\t\tif i > 0 {\n\t\t\tif _, err = w.w.Write(w.buf[:i]); err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tbn := copy(w.buf, w.buf[i:])\n\t\t\tw.buf = w.buf[:bn]\n\t\t}\n\t}\n\treturn n, err\n}\n\n// Close forces data that remains in the buffer to be written.\nfunc (w *normWriter) Close() error {\n\tif len(w.buf) > 0 {\n\t\t_, err := w.w.Write(w.buf)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Writer returns a new writer that implements Write(b)\n// by writing f(b) to w. The returned writer may use an\n// internal buffer to maintain state across Write calls.\n// Calling its Close method writes any buffered data to w.\nfunc (f Form) Writer(w io.Writer) io.WriteCloser {\n\twr := &normWriter{rb: reorderBuffer{}, w: w}\n\twr.rb.init(f, nil)\n\treturn wr\n}\n\ntype normReader struct {\n\trb           reorderBuffer\n\tr            io.Reader\n\tinbuf        []byte\n\toutbuf       []byte\n\tbufStart     int\n\tlastBoundary int\n\terr          error\n}\n\n// Read implements the standard read interface.\nfunc (r *normReader) Read(p []byte) (int, error) {\n\tfor {\n\t\tif r.lastBoundary-r.bufStart > 0 {\n\t\t\tn := copy(p, r.outbuf[r.bufStart:r.lastBoundary])\n\t\t\tr.bufStart += n\n\t\t\tif r.lastBoundary-r.bufStart > 0 {\n\t\t\t\treturn n, nil\n\t\t\t}\n\t\t\treturn n, r.err\n\t\t}\n\t\tif r.err != nil {\n\t\t\treturn 0, r.err\n\t\t}\n\t\toutn := copy(r.outbuf, r.outbuf[r.lastBoundary:])\n\t\tr.outbuf = r.outbuf[0:outn]\n\t\tr.bufStart = 0\n\n\t\tn, err := r.r.Read(r.inbuf)\n\t\tr.rb.src = inputBytes(r.inbuf[0:n])\n\t\tr.rb.nsrc, r.err = n, err\n\t\tif n > 0 {\n\t\t\tr.outbuf = doAppend(&r.rb, r.outbuf, 0)\n\t\t}\n\t\tif err == io.EOF {\n\t\t\tr.lastBoundary = len(r.outbuf)\n\t\t} else {\n\t\t\tr.lastBoundary = lastBoundary(&r.rb.f, r.outbuf)\n\t\t\tif r.lastBoundary == -1 {\n\t\t\t\tr.lastBoundary = 0\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Reader returns a new reader that implements Read\n// by reading data from r and returning f(data).\nfunc (f Form) Reader(r io.Reader) io.Reader {\n\tconst chunk = 4000\n\tbuf := make([]byte, chunk)\n\trr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf}\n\trr.rb.init(f, buf)\n\treturn rr\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.10,!go1.13\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"10.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 45:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 45\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 47 blocks, 3008 entries, 6016 bytes\n// The third block is the zero block.\nvar nfcValues = [3008]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xa000,\n\t0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,\n\t0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,\n\t0x3d2: 0x2d4e,\n\t0x3f4: 0x8102, 0x3f5: 0x9900,\n\t0x3fa: 0xa000, 0x3fb: 0x2d56,\n\t0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132,\n\t0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132,\n\t0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132,\n\t0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132,\n\t0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2,\n\t0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0,\n\t0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df,\n\t0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85,\n\t0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93,\n\t0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c,\n\t0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370,\n\t0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a,\n\t0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de,\n\t0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7,\n\t0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a,\n\t0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e,\n\t0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9,\n\t0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465,\n\t0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26,\n\t0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791,\n\t0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b,\n\t0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4,\n\t0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f,\n\t0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49,\n\t0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532,\n\t0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541,\n\t0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582,\n\t0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6,\n\t0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1,\n\t0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f,\n\t0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15,\n\t0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23,\n\t0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a,\n\t0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c,\n\t0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70,\n\t0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1,\n\t0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf,\n\t0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6,\n\t0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5,\n\t0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11,\n\t0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73,\n\t0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a,\n\t0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578,\n\t0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e,\n\t0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6,\n\t0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c,\n\t0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0,\n\t0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00,\n\t0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966,\n\t0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8,\n\t0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6,\n\t0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38,\n\t0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30,\n\t0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60,\n\t0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58,\n\t0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a,\n\t0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8,\n\t0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70,\n\t0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996,\n\t0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2,\n\t0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916,\n\t0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a,\n\t0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c,\n\t0x5bc: 0x4870, 0x5bd: 0x4342,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac,\n\t0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee,\n\t0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0,\n\t0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2,\n\t0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134,\n\t0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a,\n\t0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88,\n\t0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a,\n\t0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98,\n\t0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee,\n\t0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0,\n\t0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa,\n\t0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af,\n\t0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10,\n\t0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4,\n\t0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec,\n\t0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b,\n\t0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081,\n\t0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8,\n\t0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318,\n\t0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000,\n\t0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b,\n\t0x64d: 0xa000,\n\t0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29,\n\t0x664: 0xa000, 0x665: 0xa000,\n\t0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a,\n\t0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45,\n\t0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000,\n\t0x67c: 0xa000, 0x67d: 0xa000,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d,\n\t0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b,\n\t0x691: 0xa000,\n\t0x692: 0xa000,\n\t0x6a2: 0xa000,\n\t0x6a8: 0xa000, 0x6a9: 0xa000,\n\t0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5,\n\t0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c6: 0xa000, 0x6cb: 0xa000,\n\t0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000,\n\t0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000,\n\t0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000,\n\t0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60,\n\t0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78,\n\t0x6ef: 0xa000,\n\t0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000,\n\t0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000,\n\t0x6fc: 0x3fc0, 0x6fd: 0x3fc8,\n\t// Block 0x1c, offset 0x700\n\t0x714: 0x3f00,\n\t0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000,\n\t0x71e: 0x3fd0,\n\t0x726: 0xa000,\n\t0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000,\n\t0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000,\n\t0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000,\n\t0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040,\n\t0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050,\n\t0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060,\n\t0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080,\n\t0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0,\n\t0x76f: 0xa000,\n\t0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8,\n\t0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0,\n\t0x77d: 0xa000, 0x77e: 0x40c8,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb,\n\t0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943,\n\t0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3,\n\t0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43,\n\t0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87,\n\t0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283,\n\t0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f,\n\t0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853,\n\t0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b,\n\t0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b,\n\t0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b,\n\t0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f,\n\t0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7,\n\t0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127,\n\t0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357,\n\t0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873,\n\t0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3,\n\t0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b,\n\t0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57,\n\t0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb,\n\t0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f,\n\t0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3,\n\t0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83,\n\t0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193,\n\t0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b,\n\t0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b,\n\t0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f,\n\t0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b,\n\t0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753,\n\t0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777,\n\t0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3,\n\t0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47,\n\t0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af,\n\t0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df,\n\t0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817,\n\t0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3,\n\t0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457,\n\t0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b,\n\t0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27,\n\t0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f,\n\t0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03,\n\t0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27,\n\t0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af,\n\t0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3,\n\t0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb,\n\t0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353,\n\t0x8a5: 0x1407, 0x8a6: 0x1433,\n\t0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7,\n\t0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897,\n\t0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93,\n\t0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b,\n\t0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f,\n\t0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f,\n\t0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f,\n\t0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff,\n\t0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f,\n\t0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f,\n\t0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3,\n\t0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7,\n\t0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963,\n\t0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b,\n\t0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb,\n\t0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf,\n\t0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f,\n\t0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013,\n\t0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f,\n\t0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b,\n\t0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b,\n\t0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb,\n\t0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343,\n\t0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b,\n\t0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b,\n\t0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2,\n\t0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809,\n\t0x958: 0x1617, 0x959: 0x1627,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757,\n\t0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773,\n\t0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3,\n\t0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf,\n\t0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff,\n\t0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f,\n\t0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867,\n\t0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af,\n\t0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93,\n\t0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3,\n\t0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f,\n\t0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983,\n\t0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf,\n\t0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3,\n\t0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef,\n\t0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23,\n\t0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37,\n\t0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63,\n\t0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f,\n\t0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692,\n\t0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb,\n\t0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f,\n\t0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6,\n\t0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9,\n\t0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83,\n\t0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3,\n\t0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf,\n\t0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7,\n\t0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f,\n\t0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b,\n\t0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87,\n\t0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb,\n\t0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7,\n\t0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663,\n\t0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd,\n\t0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7,\n\t0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b,\n\t0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f,\n\t0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7,\n\t0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700,\n\t0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23,\n\t0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53,\n\t0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714,\n\t0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b,\n\t0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719,\n\t0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728,\n\t0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37,\n\t0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57,\n\t0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737,\n\t0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741,\n\t0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff,\n\t0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637,\n\t0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f,\n\t0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093,\n\t0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782,\n\t0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3,\n\t0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7,\n\t0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133,\n\t0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa,\n\t0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4,\n\t0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7,\n\t0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7,\n\t0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b,\n\t0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd,\n\t0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f,\n\t0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f,\n\t0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273,\n\t0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677,\n\t0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7,\n\t0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb,\n\t0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5,\n\t0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa,\n\t0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b,\n\t0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7,\n\t0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665,\n\t0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f,\n\t0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477,\n\t0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693,\n\t0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb,\n\t0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b,\n\t0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567,\n\t0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7,\n\t0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7,\n\t0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef,\n\t0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31,\n\t0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34,\n\t0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0e,\n\t0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f,\n\t0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,\n\t0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7,\n\t0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,\n\t0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,\n\t0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1,\n\t0x3b0: 0x73, 0x3b5: 0xb2,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb3, 0x3ec: 0xb4,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xb5,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8,\n\t0x449: 0xb9,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xba,\n\t0x4a3: 0xbb, 0x4a5: 0xbc,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xbd,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b,\n\t0x528: 0x2c,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 145 entries, 290 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8}\n\n// nfcSparseValues: 682 entries, 2728 bytes\nvar nfcSparseValues = [682]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xd, offset 0x62\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x67\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x69\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x7a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x82\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x89\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x8c\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x14, offset 0x93\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x97\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x9d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x9f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0xa8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xb3\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xb8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xbb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xc8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xcf\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xd7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xda\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xdc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x24, offset 0xde\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xe0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xe5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xf6\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0x104\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x10a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x10c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x116\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x119\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x11c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x11e\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x121\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x124\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x128\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x12d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x136\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x138\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x13b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x13d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x148\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x14c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3e, offset 0x15a\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3f, offset 0x15d\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x40, offset 0x163\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x41, offset 0x169\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x42, offset 0x174\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x43, offset 0x178\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x44, offset 0x17a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x45, offset 0x17c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x46, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x47, offset 0x180\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x48, offset 0x182\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x49, offset 0x188\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x4a, offset 0x18c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4b, offset 0x18e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4c, offset 0x190\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4d, offset 0x198\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4e, offset 0x19c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4f, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x50, offset 0x1a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x51, offset 0x1a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x52, offset 0x1a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x53, offset 0x1a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x54, offset 0x1aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x55, offset 0x1ac\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x56, offset 0x1ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x57, offset 0x1b0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x58, offset 0x1b6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x59, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x5a, offset 0x1bb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5b, offset 0x1c2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5d, offset 0x1ce\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5e, offset 0x1d6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5f, offset 0x1dc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x60, offset 0x1e2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x61, offset 0x1e8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x62, offset 0x1ec\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x63, offset 0x1fa\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x64, offset 0x203\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x65, offset 0x206\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x66, offset 0x209\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x67, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x68, offset 0x20e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x69, offset 0x210\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x6a, offset 0x214\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6b, offset 0x219\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6c, offset 0x21b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6d, offset 0x21d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6e, offset 0x222\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6f, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x70, offset 0x22a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x71, offset 0x22c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x72, offset 0x22e\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x234\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x74, offset 0x237\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x75, offset 0x23a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x76, offset 0x242\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x77, offset 0x249\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x78, offset 0x24c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x79, offset 0x24f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7a, offset 0x251\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7b, offset 0x259\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x7c, offset 0x25c\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x263\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7e, offset 0x266\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x26c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x80, offset 0x26e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x81, offset 0x271\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x82, offset 0x273\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x83, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x84, offset 0x277\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x85, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x86, offset 0x27c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x87, offset 0x27e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x88, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x89, offset 0x282\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8a, offset 0x28f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8b, offset 0x299\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x8c, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8d, offset 0x29d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x8e, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x8f, offset 0x2a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x90, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 91:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 91\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 93 blocks, 5952 entries, 11904 bytes\n// The third block is the zero block.\nvar nfkcValues = [5952]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,\n\t0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,\n\t0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,\n\t0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,\n\t0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,\n\t0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,\n\t0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,\n\t0x46a: 0x01fd,\n\t0x478: 0x020c,\n\t// Block 0x12, offset 0x480\n\t0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,\n\t0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,\n\t0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,\n\t0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,\n\t0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,\n\t0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,\n\t0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132,\n\t0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132,\n\t0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132,\n\t0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132,\n\t0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132,\n\t0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132,\n\t0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132,\n\t0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132,\n\t0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132,\n\t0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132,\n\t0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2,\n\t0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0,\n\t0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df,\n\t0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85,\n\t0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93,\n\t0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c,\n\t0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370,\n\t0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a,\n\t0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de,\n\t0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7,\n\t0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a,\n\t0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e,\n\t0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9,\n\t0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465,\n\t0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26,\n\t0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791,\n\t0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b,\n\t0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4,\n\t0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f,\n\t0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49,\n\t0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532,\n\t0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541,\n\t0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582,\n\t0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6,\n\t0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7,\n\t0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f,\n\t0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15,\n\t0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23,\n\t0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a,\n\t0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c,\n\t0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70,\n\t0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1,\n\t0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf,\n\t0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6,\n\t0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5,\n\t0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11,\n\t0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73,\n\t0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a,\n\t0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578,\n\t0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e,\n\t0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6,\n\t0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c,\n\t0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0,\n\t0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00,\n\t0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966,\n\t0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8,\n\t0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6,\n\t0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38,\n\t0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30,\n\t0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60,\n\t0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58,\n\t0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a,\n\t0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8,\n\t0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70,\n\t0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996,\n\t0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2,\n\t0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916,\n\t0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a,\n\t0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c,\n\t0x67c: 0x4870, 0x67d: 0x4342,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac,\n\t0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee,\n\t0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0,\n\t0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2,\n\t0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134,\n\t0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a,\n\t0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88,\n\t0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a,\n\t0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98,\n\t0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee,\n\t0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0,\n\t0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa,\n\t0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af,\n\t0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10,\n\t0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e,\n\t0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec,\n\t0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b,\n\t0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081,\n\t0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8,\n\t0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318,\n\t0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8,\n\t0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051,\n\t0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053,\n\t0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d,\n\t0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065,\n\t0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8,\n\t0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075,\n\t0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b,\n\t0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215,\n\t0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98,\n\t0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0463, 0x745: 0x0049,\n\t0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095,\n\t0x750: 0x222e, 0x751: 0x223a,\n\t0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8,\n\t0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0,\n\t0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963,\n\t0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071,\n\t0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b,\n\t0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62,\n\t0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50,\n\t0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000,\n\t0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b,\n\t0x78d: 0xa000,\n\t0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29,\n\t0x7a4: 0xa000, 0x7a5: 0xa000,\n\t0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a,\n\t0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45,\n\t0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000,\n\t0x7bc: 0xa000, 0x7bd: 0xa000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d,\n\t0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b,\n\t0x7d1: 0xa000,\n\t0x7d2: 0xa000,\n\t0x7e2: 0xa000,\n\t0x7e8: 0xa000, 0x7e9: 0xa000,\n\t0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5,\n\t0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029,\n\t0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882,\n\t0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894,\n\t0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c,\n\t0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84,\n\t0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8,\n\t0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb,\n\t0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60,\n\t0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78,\n\t0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8,\n\t0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10,\n\t0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28,\n\t0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40,\n\t0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58,\n\t0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d,\n\t0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713,\n\t0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab,\n\t0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803,\n\t0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887,\n\t0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db,\n\t0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb,\n\t0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b,\n\t0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7,\n\t0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33,\n\t0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63,\n\t0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb,\n\t0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b,\n\t0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb,\n\t0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3,\n\t0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f,\n\t0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83,\n\t0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7,\n\t0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f,\n\t0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf,\n\t0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f,\n\t0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3,\n\t0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb,\n\t0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b,\n\t0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b,\n\t0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf,\n\t0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f,\n\t0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f,\n\t0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503,\n\t0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f,\n\t0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f,\n\t0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593,\n\t// Block 0x25, offset 0x940\n\t0x946: 0xa000, 0x94b: 0xa000,\n\t0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000,\n\t0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000,\n\t0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000,\n\t0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60,\n\t0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78,\n\t0x96f: 0xa000,\n\t0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000,\n\t0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000,\n\t0x97c: 0x3fc0, 0x97d: 0x3fc8,\n\t// Block 0x26, offset 0x980\n\t0x994: 0x3f00,\n\t0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000,\n\t0x99e: 0x3fd0, 0x99f: 0x26b4,\n\t0x9a6: 0xa000,\n\t0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000,\n\t0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000,\n\t0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000,\n\t0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040,\n\t0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050,\n\t0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060,\n\t0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080,\n\t0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0,\n\t0x9ef: 0xa000,\n\t0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8,\n\t0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0,\n\t0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337,\n\t0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f,\n\t0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9,\n\t0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed,\n\t0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11,\n\t0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35,\n\t0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef,\n\t0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403,\n\t0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383,\n\t0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b,\n\t0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb,\n\t0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7,\n\t0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3,\n\t0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7,\n\t0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff,\n\t0xa5e: 0x098f, 0xa5f: 0x072f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072,\n\t0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096,\n\t0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741,\n\t0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780,\n\t0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac,\n\t0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108,\n\t0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0,\n\t0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e,\n\t0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144,\n\t0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114,\n\t0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03,\n\t0xac6: 0x0ca7, 0xac7: 0x10c7,\n\t0xad0: 0x1bc4, 0xad1: 0x18a9,\n\t0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb,\n\t0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3,\n\t0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327,\n\t0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b,\n\t0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20,\n\t0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50,\n\t0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88,\n\t0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af,\n\t0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f,\n\t0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b,\n\t0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f,\n\t0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f,\n\t0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b,\n\t0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f,\n\t0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b,\n\t0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee,\n\t0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900,\n\t0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11,\n\t0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0,\n\t0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3,\n\t0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7,\n\t0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f,\n\t0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b,\n\t0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543,\n\t0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b,\n\t0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f,\n\t0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597,\n\t0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a,\n\t0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2,\n\t0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6,\n\t0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c,\n\t0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6,\n\t0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da,\n\t0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8,\n\t0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51,\n\t0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920,\n\t0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06,\n\t0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c,\n\t0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90,\n\t0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6,\n\t0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984,\n\t0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07,\n\t0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4,\n\t0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2,\n\t0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a,\n\t0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47,\n\t0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701,\n\t0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969,\n\t0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35,\n\t0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c,\n\t0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9,\n\t0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0,\n\t0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40,\n\t0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996,\n\t0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad,\n\t0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38,\n\t0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b,\n\t0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd,\n\t0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e,\n\t0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e,\n\t0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990,\n\t0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4,\n\t0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee,\n\t0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186,\n\t0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0,\n\t0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258,\n\t0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e,\n\t0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb,\n\t0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943,\n\t0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3,\n\t0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43,\n\t0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87,\n\t0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283,\n\t0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f,\n\t0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853,\n\t0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b,\n\t0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b,\n\t0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b,\n\t0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f,\n\t0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7,\n\t0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127,\n\t0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357,\n\t0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873,\n\t0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3,\n\t0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b,\n\t0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57,\n\t0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb,\n\t0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f,\n\t0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3,\n\t0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83,\n\t0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193,\n\t0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b,\n\t0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b,\n\t0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f,\n\t0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b,\n\t0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753,\n\t0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777,\n\t0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3,\n\t0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47,\n\t0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af,\n\t0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df,\n\t0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817,\n\t0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3,\n\t0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457,\n\t0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b,\n\t0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27,\n\t0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f,\n\t0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03,\n\t0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27,\n\t0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af,\n\t0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3,\n\t0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb,\n\t0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353,\n\t0xda5: 0x1407, 0xda6: 0x1433,\n\t0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7,\n\t0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897,\n\t0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93,\n\t0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b,\n\t0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f,\n\t0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f,\n\t0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f,\n\t0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff,\n\t0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f,\n\t0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f,\n\t0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3,\n\t0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7,\n\t0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963,\n\t0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b,\n\t0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb,\n\t0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf,\n\t0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f,\n\t0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013,\n\t0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f,\n\t0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b,\n\t0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b,\n\t0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb,\n\t0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343,\n\t0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b,\n\t0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b,\n\t0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2,\n\t0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809,\n\t0xe58: 0x1617, 0xe59: 0x1627,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f,\n\t0xe86: 0x1a5f,\n\t0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70,\n\t0xe9d: 0x4390,\n\t0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221,\n\t0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017,\n\t0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e,\n\t0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e,\n\t0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2,\n\t0xebc: 0x43ae, 0xebe: 0x43b4,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc,\n\t0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378,\n\t0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299,\n\t0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5,\n\t0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab,\n\t0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8,\n\t0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c,\n\t0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2,\n\t0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1,\n\t0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4,\n\t0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd,\n\t0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9,\n\t0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5,\n\t0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1,\n\t0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de,\n\t0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7,\n\t0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed,\n\t0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308,\n\t0xf30: 0x4468, 0xf31: 0x4468,\n\t// Block 0x3d, offset 0xf40\n\t0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6,\n\t0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f,\n\t0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc,\n\t0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d,\n\t0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9,\n\t0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c,\n\t0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0,\n\t0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89,\n\t0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb,\n\t0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded,\n\t0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29,\n\t0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b,\n\t0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9,\n\t0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00,\n\t0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32,\n\t0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50,\n\t0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e,\n\t0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf,\n\t0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd,\n\t0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff,\n\t0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022,\n\t0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c,\n\t0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6,\n\t0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7,\n\t0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6,\n\t0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8,\n\t0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10,\n\t0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96,\n\t0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1,\n\t0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027,\n\t0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1,\n\t0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e,\n\t0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5,\n\t0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29,\n\t0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60,\n\t0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9,\n\t0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05,\n\t0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64,\n\t0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91,\n\t0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe,\n\t0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff,\n\t0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031,\n\t0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4,\n\t0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92,\n\t0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0,\n\t0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1,\n\t0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74,\n\t0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba,\n\t0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88,\n\t0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1,\n\t0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74,\n\t0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f,\n\t0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd,\n\t0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d,\n\t0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88,\n\t0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b,\n\t0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb,\n\t0x10bc: 0x4408, 0x10bd: 0x4408,\n\t// Block 0x43, offset 0x10c0\n\t0x10d0: 0x2311, 0x10d1: 0x2326,\n\t0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357,\n\t0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4,\n\t0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5,\n\t0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc,\n\t0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430,\n\t0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c,\n\t0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f,\n\t0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df,\n\t0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e,\n\t0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c,\n\t0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548,\n\t0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c,\n\t0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365,\n\t0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406,\n\t0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e,\n\t0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca,\n\t0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7,\n\t0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b,\n\t0x1146: 0x23c0, 0x1147: 0x2556,\n\t0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da,\n\t0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc,\n\t0x117c: 0x27d1,\n\t// Block 0x46, offset 0x1180\n\t0x1190: 0x0019, 0x1191: 0x0483,\n\t0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf,\n\t0x1198: 0x04c3, 0x1199: 0x1b5c,\n\t0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132,\n\t0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d,\n\t0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132,\n\t0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011,\n\t0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab,\n\t0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7,\n\t0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269,\n\t0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003,\n\t0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7,\n\t0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b,\n\t0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009,\n\t0x11ea: 0x000b, 0x11eb: 0x0041,\n\t0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4,\n\t0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e,\n\t0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456,\n\t0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462,\n\t0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c,\n\t0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242,\n\t0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248,\n\t0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b,\n\t0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251,\n\t0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a,\n\t0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260,\n\t0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263,\n\t0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c,\n\t0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f,\n\t0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275,\n\t0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278,\n\t0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e,\n\t0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281,\n\t0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287,\n\t0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d,\n\t0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00,\n\t0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82,\n\t0x127c: 0x1f82,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b,\n\t0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097,\n\t0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3,\n\t0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af,\n\t0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb,\n\t0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f,\n\t0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7,\n\t0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f,\n\t0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb,\n\t0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503,\n\t0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f,\n\t0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547,\n\t0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f,\n\t0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583,\n\t0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7,\n\t0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b,\n\t0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327,\n\t0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b,\n\t0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337,\n\t0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f,\n\t0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b,\n\t// Block 0x4c, offset 0x1300\n\t0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf,\n\t0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7,\n\t0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff,\n\t0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23,\n\t0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35,\n\t0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264,\n\t0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b,\n\t0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d,\n\t0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085,\n\t0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091,\n\t0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d,\n\t0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9,\n\t0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5,\n\t0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176,\n\t0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188,\n\t0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a,\n\t0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9,\n\t0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0,\n\t0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209,\n\t0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027,\n\t0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033,\n\t0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b,\n\t0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023,\n\t0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f,\n\t0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027,\n\t0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033,\n\t0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b,\n\t0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a,\n\t0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e,\n\t0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263,\n\t0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e,\n\t0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4,\n\t0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,\n\t0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290,\n\t0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,\n\t0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,\n\t0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272,\n\t// Block 0x50, offset 0x1400\n\t0x1402: 0x0248,\n\t0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e,\n\t0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e,\n\t0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4,\n\t0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,\n\t0x143c: 0x0293, 0x143e: 0x02cc,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a,\n\t0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e,\n\t0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272,\n\t0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251,\n\t0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8,\n\t0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927,\n\t0x1490: 0x1a8c, 0x1491: 0x1a90,\n\t0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8,\n\t0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0,\n\t0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8,\n\t0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0,\n\t0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1,\n\t0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d,\n\t0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059,\n\t0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503,\n\t0x14d0: 0x0c0f, 0x14d1: 0x0a47,\n\t0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff,\n\t0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b,\n\t0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b,\n\t0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf,\n\t0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b,\n\t0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43,\n\t0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757,\n\t0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773,\n\t0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3,\n\t0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf,\n\t0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff,\n\t0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f,\n\t0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867,\n\t0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af,\n\t0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93,\n\t0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3,\n\t0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f,\n\t0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983,\n\t0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf,\n\t0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3,\n\t0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef,\n\t0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23,\n\t0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37,\n\t0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63,\n\t0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f,\n\t0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692,\n\t0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb,\n\t0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f,\n\t0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6,\n\t0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9,\n\t0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83,\n\t0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3,\n\t0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf,\n\t0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7,\n\t0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f,\n\t0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b,\n\t0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87,\n\t0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb,\n\t0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7,\n\t0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663,\n\t0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd,\n\t0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7,\n\t0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b,\n\t0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f,\n\t0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7,\n\t0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700,\n\t0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23,\n\t0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53,\n\t0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714,\n\t0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b,\n\t0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719,\n\t0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728,\n\t0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37,\n\t0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57,\n\t0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737,\n\t0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741,\n\t0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff,\n\t0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637,\n\t0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f,\n\t0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093,\n\t0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782,\n\t0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3,\n\t0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7,\n\t0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133,\n\t0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa,\n\t0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4,\n\t0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7,\n\t0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7,\n\t0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b,\n\t0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd,\n\t0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f,\n\t0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f,\n\t0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273,\n\t0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677,\n\t0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7,\n\t0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb,\n\t0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5,\n\t0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa,\n\t0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b,\n\t0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7,\n\t0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665,\n\t0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f,\n\t0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477,\n\t0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693,\n\t0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb,\n\t0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b,\n\t0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567,\n\t0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7,\n\t0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7,\n\t0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef,\n\t0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61,\n\t0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11,\n\t0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27,\n\t0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33,\n\t0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b,\n\t0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43,\n\t0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,\n\t0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1,\n\t0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,\n\t0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,\n\t0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc,\n\t0x3b0: 0xd7, 0x3b5: 0xdd,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xde, 0x3ec: 0xdf,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe0,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3,\n\t0x449: 0xe4,\n\t0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec,\n\t0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf3,\n\t0x4a3: 0xf4, 0x4a5: 0xf5,\n\t0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7,\n\t0x4c8: 0x51, 0x4c9: 0xf8,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59,\n\t0x528: 0x5a,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 158 entries, 316 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b}\n\n// nfkcSparseValues: 869 entries, 3476 bytes\nvar nfkcSparseValues = [869]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xc, offset 0x6f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x74\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x76\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x8f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x96\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x99\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x13, offset 0xa0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0xa4\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0xa8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xaa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xac\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xb5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xc0\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xc8\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xd2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xd5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xdc\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xe4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xe8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xea\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xf1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xf7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0x108\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x116\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x11c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x11e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x120\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x124\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x126\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x128\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x12a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x12d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x130\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x132\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x135\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x138\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x13c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x141\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x14a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x14c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x14f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x151\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x15c\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x167\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x175\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x183\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x40, offset 0x193\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x41, offset 0x1a1\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x42, offset 0x1a8\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x43, offset 0x1ae\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x44, offset 0x1bd\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x45, offset 0x1c1\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x46, offset 0x1c3\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x47, offset 0x1c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x48, offset 0x1c9\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x49, offset 0x1cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4a, offset 0x1ce\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4b, offset 0x1d1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4c, offset 0x1d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4d, offset 0x1d6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4e, offset 0x1d8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4f, offset 0x1da\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x50, offset 0x1dc\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x51, offset 0x1e8\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x52, offset 0x1f2\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x53, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x54, offset 0x1ff\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x55, offset 0x203\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x56, offset 0x205\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x57, offset 0x207\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x58, offset 0x209\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x59, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5a, offset 0x20e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5b, offset 0x210\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5c, offset 0x212\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5d, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5e, offset 0x216\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5f, offset 0x21c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x60, offset 0x21f\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x61, offset 0x223\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x62, offset 0x225\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x63, offset 0x22c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x64, offset 0x232\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x65, offset 0x238\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x66, offset 0x240\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x67, offset 0x246\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x68, offset 0x24c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x69, offset 0x252\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6a, offset 0x256\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6b, offset 0x258\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6c, offset 0x25a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6d, offset 0x25c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6e, offset 0x25e\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x264\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x70, offset 0x267\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x26a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x72, offset 0x272\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x73, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x74, offset 0x27c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x75, offset 0x27f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x76, offset 0x281\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x77, offset 0x289\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x78, offset 0x28c\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x79, offset 0x293\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7a, offset 0x296\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7b, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7c, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x2a0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x7e, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x7f, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x80, offset 0x2a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x81, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x82, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x83, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x84, offset 0x2b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x85, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x86, offset 0x2b4\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x2c1\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x88, offset 0x2cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x89, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8a, offset 0x2cf\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x8b, offset 0x2d3\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x8c, offset 0x2d8\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x8d, offset 0x2e4\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x8e, offset 0x2e9\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x8f, offset 0x2f2\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x90, offset 0x2f8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x91, offset 0x2fd\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x92, offset 0x301\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x93, offset 0x306\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x30a\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x31a\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x96, offset 0x328\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x336\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x98, offset 0x344\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x99, offset 0x34a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x9a, offset 0x34c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9b, offset 0x34f\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0x9c, offset 0x359\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0x9d, offset 0x35b\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54226 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.13\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"11.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,\n\t0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,\n\t0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,\n\t0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,\n\t0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,\n\t0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,\n\t0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,\n\t0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,\n\t0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,\n\t0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,\n\t0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,\n\t0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,\n\t0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,\n\t0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,\n\t0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,\n\t0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2,\n\t0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0,\n\t0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df,\n\t0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85,\n\t0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93,\n\t0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c,\n\t0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370,\n\t0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a,\n\t0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de,\n\t0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7,\n\t0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a,\n\t0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e,\n\t0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9,\n\t0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465,\n\t0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26,\n\t0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791,\n\t0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b,\n\t0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4,\n\t0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f,\n\t0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49,\n\t0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532,\n\t0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541,\n\t0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582,\n\t0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6,\n\t0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1,\n\t0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f,\n\t0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15,\n\t0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23,\n\t0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a,\n\t0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c,\n\t0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70,\n\t0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1,\n\t0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf,\n\t0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6,\n\t0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5,\n\t0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11,\n\t0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73,\n\t0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a,\n\t0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578,\n\t0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e,\n\t0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6,\n\t0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c,\n\t0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0,\n\t0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00,\n\t0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966,\n\t0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8,\n\t0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6,\n\t0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38,\n\t0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30,\n\t0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60,\n\t0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58,\n\t0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a,\n\t0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8,\n\t0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70,\n\t0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996,\n\t0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2,\n\t0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916,\n\t0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a,\n\t0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c,\n\t0x5fc: 0x4870, 0x5fd: 0x4342,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac,\n\t0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee,\n\t0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0,\n\t0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2,\n\t0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134,\n\t0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a,\n\t0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88,\n\t0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a,\n\t0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98,\n\t0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee,\n\t0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0,\n\t0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa,\n\t0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af,\n\t0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10,\n\t0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4,\n\t0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec,\n\t0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b,\n\t0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081,\n\t0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8,\n\t0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318,\n\t0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000,\n\t0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a,\n\t0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000,\n\t0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000,\n\t0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000,\n\t0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60,\n\t0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78,\n\t0x72f: 0xa000,\n\t0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000,\n\t0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000,\n\t0x73c: 0x3fc0, 0x73d: 0x3fc8,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f00,\n\t0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fd0,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000,\n\t0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000,\n\t0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000,\n\t0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040,\n\t0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050,\n\t0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060,\n\t0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080,\n\t0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8,\n\t0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0,\n\t0x7bd: 0xa000, 0x7be: 0x40c8,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,\n\t0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,\n\t0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,\n\t0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,\n\t0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,\n\t0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,\n\t0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,\n\t0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,\n\t0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,\n\t0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,\n\t0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,\n\t0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,\n\t0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,\n\t0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,\n\t0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,\n\t0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,\n\t0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,\n\t0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,\n\t0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,\n\t0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,\n\t0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,\n\t0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,\n\t0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,\n\t0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,\n\t0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,\n\t0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,\n\t0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,\n\t0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,\n\t0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,\n\t0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,\n\t0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,\n\t0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,\n\t0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,\n\t0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,\n\t0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,\n\t0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,\n\t0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,\n\t0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,\n\t0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,\n\t0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,\n\t0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,\n\t0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,\n\t0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,\n\t0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,\n\t0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,\n\t0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,\n\t0x8e5: 0x1407, 0x8e6: 0x1433,\n\t0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,\n\t0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,\n\t0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,\n\t0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,\n\t0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,\n\t0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,\n\t0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,\n\t0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,\n\t0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,\n\t0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,\n\t0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,\n\t0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,\n\t0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,\n\t0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,\n\t0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,\n\t0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,\n\t0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,\n\t0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,\n\t0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,\n\t0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,\n\t0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,\n\t0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,\n\t0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,\n\t0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,\n\t0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,\n\t0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,\n\t0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,\n\t0x998: 0x1617, 0x999: 0x1627,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,\n\t0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,\n\t0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,\n\t0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,\n\t0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,\n\t0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,\n\t0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,\n\t0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,\n\t0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,\n\t0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,\n\t0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,\n\t0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,\n\t0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,\n\t0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,\n\t0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,\n\t0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,\n\t0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,\n\t0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,\n\t0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,\n\t0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,\n\t0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,\n\t0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,\n\t0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,\n\t0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,\n\t0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,\n\t0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,\n\t0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,\n\t0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,\n\t0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,\n\t0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,\n\t0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,\n\t0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,\n\t0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,\n\t0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,\n\t0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,\n\t0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,\n\t0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,\n\t0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,\n\t0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,\n\t0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,\n\t0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,\n\t0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,\n\t0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,\n\t0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,\n\t0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,\n\t0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,\n\t0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,\n\t0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,\n\t0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,\n\t0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,\n\t0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,\n\t0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,\n\t0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,\n\t0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,\n\t0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,\n\t0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,\n\t0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,\n\t0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,\n\t0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,\n\t0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,\n\t0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,\n\t0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,\n\t0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,\n\t0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,\n\t0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,\n\t0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,\n\t0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,\n\t0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,\n\t0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,\n\t0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,\n\t0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,\n\t0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,\n\t0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,\n\t0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,\n\t0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,\n\t0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,\n\t0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,\n\t0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,\n\t0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,\n\t0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,\n\t0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,\n\t0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,\n\t0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,\n\t0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,\n\t0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t0x374: 0xa1,\n\t0x37d: 0xa2,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,\n\t0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,\n\t0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,\n\t0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,\n\t0x3a0: 0xb2,\n\t0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5,\n\t0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb8, 0x3ec: 0xb9,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd,\n\t0x449: 0xbe,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xbf,\n\t0x4a3: 0xc0, 0x4a5: 0xc1,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc2,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 149 entries, 298 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa}\n\n// nfcSparseValues: 684 entries, 2736 bytes\nvar nfcSparseValues = [684]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xcf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd6\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0xff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x101\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x103\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x105\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x107\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x10f\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x112\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x115\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x119\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x11e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x129\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x12c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x12e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x139\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3c, offset 0x13d\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3d, offset 0x14b\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3e, offset 0x14e\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x3f, offset 0x154\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x40, offset 0x15a\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x41, offset 0x165\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x42, offset 0x169\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x43, offset 0x16b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x44, offset 0x16d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x45, offset 0x16f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x46, offset 0x171\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x47, offset 0x173\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x48, offset 0x179\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x49, offset 0x17d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4a, offset 0x17f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4b, offset 0x181\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4c, offset 0x189\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4d, offset 0x18d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4e, offset 0x190\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x4f, offset 0x192\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x50, offset 0x194\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x51, offset 0x196\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x52, offset 0x199\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x53, offset 0x19b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x54, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x55, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x56, offset 0x1a1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x57, offset 0x1a7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x58, offset 0x1aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x59, offset 0x1ac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5a, offset 0x1b3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5b, offset 0x1b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1bf\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x60, offset 0x1d9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x61, offset 0x1dd\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x62, offset 0x1eb\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x63, offset 0x1f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x64, offset 0x1f7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x65, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x66, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x67, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x68, offset 0x201\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x69, offset 0x205\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6a, offset 0x20a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6b, offset 0x20c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6c, offset 0x20e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6d, offset 0x213\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6e, offset 0x219\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6f, offset 0x21b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x70, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x71, offset 0x21f\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x225\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x73, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x74, offset 0x22a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x230\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x233\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x23b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x242\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x245\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x248\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x24a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7c, offset 0x24d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7d, offset 0x255\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7e, offset 0x259\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7f, offset 0x260\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x80, offset 0x263\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x269\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x82, offset 0x26b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x83, offset 0x26e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x84, offset 0x270\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x85, offset 0x273\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x86, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x87, offset 0x277\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x88, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x89, offset 0x27c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x8a, offset 0x27e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8b, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8c, offset 0x282\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8d, offset 0x284\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8e, offset 0x291\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8f, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x90, offset 0x29d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x91, offset 0x29f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x92, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x93, offset 0x2a7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x94, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,\n\t0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000,\n\t0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000,\n\t0x452: 0x2d4e,\n\t0x474: 0x8102, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d56,\n\t0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,\n\t0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,\n\t0x4aa: 0x01fd,\n\t0x4b8: 0x020c,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,\n\t0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,\n\t0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,\n\t0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,\n\t0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,\n\t0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,\n\t0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,\n\t0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,\n\t0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,\n\t0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,\n\t0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,\n\t0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2,\n\t0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0,\n\t0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df,\n\t0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85,\n\t0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93,\n\t0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c,\n\t0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370,\n\t0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a,\n\t0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de,\n\t0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7,\n\t0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a,\n\t0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e,\n\t0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9,\n\t0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465,\n\t0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26,\n\t0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791,\n\t0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b,\n\t0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4,\n\t0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f,\n\t0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49,\n\t0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532,\n\t0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541,\n\t0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582,\n\t0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6,\n\t0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7,\n\t0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f,\n\t0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15,\n\t0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23,\n\t0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a,\n\t0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c,\n\t0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70,\n\t0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1,\n\t0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf,\n\t0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6,\n\t0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5,\n\t0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11,\n\t0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73,\n\t0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a,\n\t0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578,\n\t0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e,\n\t0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6,\n\t0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c,\n\t0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0,\n\t0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00,\n\t0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966,\n\t0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8,\n\t0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6,\n\t0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38,\n\t0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30,\n\t0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60,\n\t0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58,\n\t0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a,\n\t0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8,\n\t0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70,\n\t0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996,\n\t0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2,\n\t0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916,\n\t0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a,\n\t0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c,\n\t0x6bc: 0x4870, 0x6bd: 0x4342,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac,\n\t0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee,\n\t0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0,\n\t0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2,\n\t0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134,\n\t0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a,\n\t0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88,\n\t0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a,\n\t0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98,\n\t0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee,\n\t0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0,\n\t0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa,\n\t0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af,\n\t0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10,\n\t0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e,\n\t0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec,\n\t0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b,\n\t0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081,\n\t0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8,\n\t0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318,\n\t0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8,\n\t0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8,\n\t0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,\n\t0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98,\n\t0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0463, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x222e, 0x791: 0x223a,\n\t0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8,\n\t0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0,\n\t0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963,\n\t0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071,\n\t0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62,\n\t0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000,\n\t0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a,\n\t0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,\n\t0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,\n\t0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c,\n\t0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84,\n\t0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8,\n\t0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,\n\t0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60,\n\t0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78,\n\t0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8,\n\t0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10,\n\t0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28,\n\t0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40,\n\t0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,\n\t0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,\n\t0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,\n\t0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,\n\t0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,\n\t0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,\n\t0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,\n\t0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,\n\t0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,\n\t0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,\n\t0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,\n\t0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,\n\t0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,\n\t0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,\n\t0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,\n\t0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,\n\t0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,\n\t0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,\n\t0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,\n\t0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,\n\t0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,\n\t0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,\n\t0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,\n\t0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,\n\t0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,\n\t0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,\n\t0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,\n\t0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,\n\t0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,\n\t0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,\n\t0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000,\n\t0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000,\n\t0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000,\n\t0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60,\n\t0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000,\n\t0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000,\n\t0x9bc: 0x3fc0, 0x9bd: 0x3fc8,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f00,\n\t0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000,\n\t0x9de: 0x3fd0, 0x9df: 0x26b4,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000,\n\t0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000,\n\t0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000,\n\t0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040,\n\t0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050,\n\t0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060,\n\t0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080,\n\t0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8,\n\t0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0,\n\t0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,\n\t0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,\n\t0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9,\n\t0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed,\n\t0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11,\n\t0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35,\n\t0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,\n\t0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,\n\t0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,\n\t0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,\n\t0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,\n\t0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,\n\t0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,\n\t0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,\n\t0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,\n\t0xa9e: 0x098f, 0xa9f: 0x072f,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072,\n\t0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096,\n\t0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741,\n\t0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780,\n\t0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac,\n\t0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108,\n\t0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0,\n\t0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e,\n\t0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144,\n\t0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114,\n\t0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03,\n\t0xb06: 0x0ca7, 0xb07: 0x10c7,\n\t0xb10: 0x1bc4, 0xb11: 0x18a9,\n\t0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,\n\t0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,\n\t0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,\n\t0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,\n\t0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20,\n\t0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50,\n\t0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88,\n\t0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,\n\t0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,\n\t0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,\n\t0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,\n\t0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,\n\t0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,\n\t0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,\n\t0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,\n\t0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,\n\t0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,\n\t0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11,\n\t0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0,\n\t0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3,\n\t0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,\n\t0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,\n\t0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,\n\t0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,\n\t0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,\n\t0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,\n\t0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,\n\t0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a,\n\t0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2,\n\t0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6,\n\t0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c,\n\t0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6,\n\t0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da,\n\t0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8,\n\t0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51,\n\t0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920,\n\t0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06,\n\t0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c,\n\t0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90,\n\t0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6,\n\t0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984,\n\t0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07,\n\t0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4,\n\t0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2,\n\t0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a,\n\t0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47,\n\t0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701,\n\t0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969,\n\t0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35,\n\t0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c,\n\t0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9,\n\t0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0,\n\t0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40,\n\t0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996,\n\t0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad,\n\t0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38,\n\t0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b,\n\t0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd,\n\t0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e,\n\t0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e,\n\t0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990,\n\t0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4,\n\t0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee,\n\t0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186,\n\t0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0,\n\t0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258,\n\t0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e,\n\t0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,\n\t0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,\n\t0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,\n\t0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,\n\t0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,\n\t0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,\n\t0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,\n\t0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,\n\t0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,\n\t0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,\n\t0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,\n\t0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,\n\t0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,\n\t0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,\n\t0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,\n\t0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,\n\t0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,\n\t0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,\n\t0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,\n\t0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,\n\t0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,\n\t0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,\n\t0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,\n\t0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,\n\t0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,\n\t0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,\n\t0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,\n\t0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,\n\t0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,\n\t0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,\n\t0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,\n\t0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,\n\t0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,\n\t0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,\n\t0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,\n\t0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,\n\t0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,\n\t0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,\n\t0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,\n\t0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,\n\t0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,\n\t0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,\n\t0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,\n\t0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,\n\t0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,\n\t0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,\n\t0xde5: 0x1407, 0xde6: 0x1433,\n\t0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,\n\t0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,\n\t0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,\n\t0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,\n\t0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,\n\t0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,\n\t0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,\n\t0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,\n\t0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,\n\t0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,\n\t0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,\n\t0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,\n\t0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,\n\t0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,\n\t0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,\n\t0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,\n\t0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,\n\t0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,\n\t0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,\n\t0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,\n\t0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,\n\t0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,\n\t0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,\n\t0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,\n\t0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,\n\t0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,\n\t0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,\n\t0xe98: 0x1617, 0xe99: 0x1627,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f,\n\t0xec6: 0x1a5f,\n\t0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70,\n\t0xedd: 0x4390,\n\t0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,\n\t0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,\n\t0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e,\n\t0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e,\n\t0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2,\n\t0xefc: 0x43ae, 0xefe: 0x43b4,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc,\n\t0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378,\n\t0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299,\n\t0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,\n\t0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,\n\t0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,\n\t0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,\n\t0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,\n\t0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,\n\t0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,\n\t0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,\n\t0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,\n\t0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,\n\t0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,\n\t0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,\n\t0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,\n\t0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,\n\t0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,\n\t0xf70: 0x4468, 0xf71: 0x4468,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,\n\t0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f,\n\t0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,\n\t0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,\n\t0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9,\n\t0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c,\n\t0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0,\n\t0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89,\n\t0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb,\n\t0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded,\n\t0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29,\n\t0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b,\n\t0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9,\n\t0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00,\n\t0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32,\n\t0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50,\n\t0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e,\n\t0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf,\n\t0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd,\n\t0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff,\n\t0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022,\n\t0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c,\n\t0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6,\n\t0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7,\n\t0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6,\n\t0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8,\n\t0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10,\n\t0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96,\n\t0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1,\n\t0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027,\n\t0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1,\n\t0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e,\n\t0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5,\n\t0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29,\n\t0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60,\n\t0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9,\n\t0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05,\n\t0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64,\n\t0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91,\n\t0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe,\n\t0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff,\n\t0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031,\n\t0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4,\n\t0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92,\n\t0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0,\n\t0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1,\n\t0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74,\n\t0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba,\n\t0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88,\n\t0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1,\n\t0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74,\n\t0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f,\n\t0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd,\n\t0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d,\n\t0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88,\n\t0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b,\n\t0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb,\n\t0x10fc: 0x4408, 0x10fd: 0x4408,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2311, 0x1111: 0x2326,\n\t0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357,\n\t0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4,\n\t0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5,\n\t0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc,\n\t0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430,\n\t0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c,\n\t0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f,\n\t0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df,\n\t0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e,\n\t0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c,\n\t0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548,\n\t0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c,\n\t0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365,\n\t0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406,\n\t0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e,\n\t0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca,\n\t0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7,\n\t0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b,\n\t0x1186: 0x23c0, 0x1187: 0x2556,\n\t0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da,\n\t0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc,\n\t0x11bc: 0x27d1,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,\n\t0x11d8: 0x04c3, 0x11d9: 0x1b5c,\n\t0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,\n\t0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,\n\t0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,\n\t0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,\n\t0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269,\n\t0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,\n\t0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4,\n\t0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e,\n\t0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456,\n\t0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462,\n\t0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,\n\t0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,\n\t0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,\n\t0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,\n\t0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,\n\t0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,\n\t0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,\n\t0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,\n\t0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,\n\t0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,\n\t0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,\n\t0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,\n\t0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,\n\t0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,\n\t0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,\n\t0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,\n\t0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00,\n\t0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82,\n\t0x12bc: 0x1f82,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,\n\t0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,\n\t0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,\n\t0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,\n\t0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,\n\t0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,\n\t0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,\n\t0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,\n\t0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,\n\t0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,\n\t0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b,\n\t0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,\n\t0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b,\n\t0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,\n\t0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,\n\t0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf,\n\t0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7,\n\t0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff,\n\t0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23,\n\t0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,\n\t0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,\n\t0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,\n\t0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,\n\t0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,\n\t0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,\n\t0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,\n\t0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x0248,\n\t0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,\n\t0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,\n\t0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,\n\t0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t0x147c: 0x0293, 0x147e: 0x02cc,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,\n\t0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,\n\t0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,\n\t0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,\n\t0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,\n\t0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,\n\t0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,\n\t0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,\n\t0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,\n\t0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,\n\t0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,\n\t0x14d0: 0x1a8c, 0x14d1: 0x1a90,\n\t0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8,\n\t0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0,\n\t0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8,\n\t0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0,\n\t0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503,\n\t0x1510: 0x0c0f, 0x1511: 0x0a47,\n\t0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,\n\t0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,\n\t0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,\n\t0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,\n\t0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,\n\t0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,\n\t0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,\n\t0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,\n\t0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,\n\t0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,\n\t0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,\n\t0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,\n\t0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,\n\t0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,\n\t0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,\n\t0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,\n\t0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,\n\t0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,\n\t0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,\n\t0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,\n\t0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,\n\t0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,\n\t0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,\n\t0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,\n\t0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,\n\t0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,\n\t0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,\n\t0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,\n\t0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,\n\t0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,\n\t0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,\n\t0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,\n\t0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,\n\t0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,\n\t0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,\n\t0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,\n\t0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,\n\t0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,\n\t0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,\n\t0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,\n\t0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,\n\t0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,\n\t0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,\n\t0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,\n\t0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,\n\t0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,\n\t0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,\n\t0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,\n\t0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,\n\t0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,\n\t0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,\n\t0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,\n\t0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,\n\t0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,\n\t0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,\n\t0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,\n\t0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,\n\t0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,\n\t0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,\n\t0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,\n\t0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,\n\t0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,\n\t0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,\n\t0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,\n\t0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,\n\t0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,\n\t0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,\n\t0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,\n\t0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,\n\t0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,\n\t0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,\n\t0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,\n\t0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,\n\t0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,\n\t0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,\n\t0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,\n\t0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,\n\t0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,\n\t0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,\n\t0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,\n\t0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,\n\t0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,\n\t0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,\n\t0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,\n\t0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,\n\t0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,\n\t0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,\n\t0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,\n\t0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,\n\t0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,\n\t0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t0x374: 0xcb,\n\t0x37d: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,\n\t0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,\n\t0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,\n\t0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,\n\t0x3a0: 0xdd,\n\t0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0,\n\t0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe3, 0x3ec: 0xe4,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe5,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8,\n\t0x449: 0xe9,\n\t0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1,\n\t0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf8,\n\t0x4a3: 0xf9, 0x4a5: 0xfa,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc,\n\t0x4c8: 0x52, 0x4c9: 0xfd,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 162 entries, 324 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d}\n\n// nfkcSparseValues: 871 entries, 3484 bytes\nvar nfkcSparseValues = [871]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x22, offset 0xde\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xf9\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x105\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x107\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x10f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x111\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x115\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x117\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x119\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x121\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x123\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x126\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x129\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x132\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x13b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x13d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x140\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x142\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x14d\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x158\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x166\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x174\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x3f, offset 0x184\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x40, offset 0x192\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x199\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x19f\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x1ae\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x1b2\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x1b4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x46, offset 0x1b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x47, offset 0x1ba\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x48, offset 0x1bd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x49, offset 0x1bf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4a, offset 0x1c2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4b, offset 0x1c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4c, offset 0x1c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4d, offset 0x1c9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4e, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x4f, offset 0x1cd\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x50, offset 0x1d9\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x51, offset 0x1e3\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x52, offset 0x1ed\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x53, offset 0x1f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x54, offset 0x1f4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x55, offset 0x1f6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x56, offset 0x1f8\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x57, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x58, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x59, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5a, offset 0x201\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5b, offset 0x203\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5c, offset 0x205\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5d, offset 0x207\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5e, offset 0x20d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5f, offset 0x210\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x60, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x61, offset 0x216\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x62, offset 0x21d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x63, offset 0x223\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x64, offset 0x229\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x65, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x66, offset 0x237\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x67, offset 0x23d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x68, offset 0x243\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x69, offset 0x247\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6a, offset 0x249\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6b, offset 0x24b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6c, offset 0x24d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6d, offset 0x24f\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6e, offset 0x255\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x6f, offset 0x258\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x70, offset 0x25a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x71, offset 0x260\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x263\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x26b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x275\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x278\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x27a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x78, offset 0x27d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x79, offset 0x285\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7a, offset 0x289\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7b, offset 0x290\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7c, offset 0x293\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x299\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7e, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x29d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x80, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x81, offset 0x2a2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x82, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x83, offset 0x2a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x84, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x85, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x86, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x87, offset 0x2b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x88, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x89, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8a, offset 0x2b6\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x2c3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8c, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x8d, offset 0x2cf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8e, offset 0x2d1\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x8f, offset 0x2d5\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x90, offset 0x2da\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x91, offset 0x2e6\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x92, offset 0x2eb\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x93, offset 0x2f4\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x94, offset 0x2fa\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x95, offset 0x2ff\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x96, offset 0x303\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x308\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x30c\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x99, offset 0x31c\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x9a, offset 0x32a\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9b, offset 0x338\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9c, offset 0x346\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9d, offset 0x34c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x9e, offset 0x34e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9f, offset 0x351\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0xa0, offset 0x35b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0xa1, offset 0x35d\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54514 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build !go1.10\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"9.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 44:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 44\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 46 blocks, 2944 entries, 5888 bytes\n// The third block is the zero block.\nvar nfcValues = [2944]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xa000,\n\t0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,\n\t0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,\n\t0x3d2: 0x2d4e,\n\t0x3f4: 0x8102, 0x3f5: 0x9900,\n\t0x3fa: 0xa000, 0x3fb: 0x2d56,\n\t0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2,\n\t0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0,\n\t0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df,\n\t0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85,\n\t0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93,\n\t0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c,\n\t0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370,\n\t0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a,\n\t0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de,\n\t0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7,\n\t0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a,\n\t0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e,\n\t0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9,\n\t0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465,\n\t0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26,\n\t0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791,\n\t0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b,\n\t0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4,\n\t0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f,\n\t0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49,\n\t0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532,\n\t0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541,\n\t0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582,\n\t0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6,\n\t0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1,\n\t0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f,\n\t0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15,\n\t0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23,\n\t0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a,\n\t0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c,\n\t0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70,\n\t0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1,\n\t0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf,\n\t0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6,\n\t0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5,\n\t0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11,\n\t0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73,\n\t0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a,\n\t0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578,\n\t0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e,\n\t0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6,\n\t0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c,\n\t0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0,\n\t0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00,\n\t0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966,\n\t0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8,\n\t0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6,\n\t0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38,\n\t0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30,\n\t0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60,\n\t0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58,\n\t0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a,\n\t0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8,\n\t0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70,\n\t0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996,\n\t0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2,\n\t0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916,\n\t0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a,\n\t0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c,\n\t0x57c: 0x4870, 0x57d: 0x4342,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac,\n\t0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee,\n\t0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0,\n\t0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2,\n\t0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134,\n\t0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a,\n\t0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88,\n\t0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a,\n\t0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98,\n\t0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee,\n\t0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0,\n\t0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa,\n\t0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af,\n\t0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10,\n\t0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4,\n\t0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec,\n\t0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b,\n\t0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081,\n\t0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8,\n\t0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318,\n\t0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100,\n\t// Block 0x18, offset 0x600\n\t0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000,\n\t0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b,\n\t0x60d: 0xa000,\n\t0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29,\n\t0x624: 0xa000, 0x625: 0xa000,\n\t0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a,\n\t0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45,\n\t0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000,\n\t0x63c: 0xa000, 0x63d: 0xa000,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d,\n\t0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b,\n\t0x651: 0xa000,\n\t0x652: 0xa000,\n\t0x662: 0xa000,\n\t0x668: 0xa000, 0x669: 0xa000,\n\t0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5,\n\t0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000,\n\t// Block 0x1a, offset 0x680\n\t0x686: 0xa000, 0x68b: 0xa000,\n\t0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000,\n\t0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000,\n\t0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000,\n\t0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60,\n\t0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78,\n\t0x6af: 0xa000,\n\t0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000,\n\t0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000,\n\t0x6bc: 0x3fc0, 0x6bd: 0x3fc8,\n\t// Block 0x1b, offset 0x6c0\n\t0x6d4: 0x3f00,\n\t0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000,\n\t0x6de: 0x3fd0,\n\t0x6e6: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000,\n\t0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000,\n\t0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000,\n\t0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040,\n\t0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050,\n\t0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060,\n\t0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080,\n\t0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0,\n\t0x72f: 0xa000,\n\t0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8,\n\t0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0,\n\t0x73d: 0xa000, 0x73e: 0x40c8,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb,\n\t0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943,\n\t0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3,\n\t0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43,\n\t0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87,\n\t0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283,\n\t0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f,\n\t0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853,\n\t0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b,\n\t0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b,\n\t0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b,\n\t0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f,\n\t0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7,\n\t0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127,\n\t0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357,\n\t0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873,\n\t0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3,\n\t0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b,\n\t0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57,\n\t0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb,\n\t0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f,\n\t0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3,\n\t0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83,\n\t0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193,\n\t0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b,\n\t0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b,\n\t0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f,\n\t0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b,\n\t0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753,\n\t0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777,\n\t0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3,\n\t0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47,\n\t0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af,\n\t0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df,\n\t0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817,\n\t0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3,\n\t0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457,\n\t0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b,\n\t0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27,\n\t0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f,\n\t0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03,\n\t0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27,\n\t0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af,\n\t0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3,\n\t0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb,\n\t0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353,\n\t0x865: 0x1407, 0x866: 0x1433,\n\t0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7,\n\t0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897,\n\t0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93,\n\t0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b,\n\t0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f,\n\t0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f,\n\t0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f,\n\t0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff,\n\t0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f,\n\t0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f,\n\t0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3,\n\t0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7,\n\t0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963,\n\t0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b,\n\t0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb,\n\t0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf,\n\t0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f,\n\t0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013,\n\t0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f,\n\t0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b,\n\t0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b,\n\t0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb,\n\t0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343,\n\t0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b,\n\t0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b,\n\t0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2,\n\t0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809,\n\t0x918: 0x1617, 0x919: 0x1627,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757,\n\t0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773,\n\t0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3,\n\t0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf,\n\t0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff,\n\t0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f,\n\t0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867,\n\t0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af,\n\t0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93,\n\t0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3,\n\t0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f,\n\t0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983,\n\t0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf,\n\t0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3,\n\t0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef,\n\t0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23,\n\t0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37,\n\t0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63,\n\t0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f,\n\t0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692,\n\t0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb,\n\t0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f,\n\t0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6,\n\t0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9,\n\t0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83,\n\t0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3,\n\t0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf,\n\t0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7,\n\t0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f,\n\t0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b,\n\t0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87,\n\t0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb,\n\t0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7,\n\t0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663,\n\t0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd,\n\t0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7,\n\t0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b,\n\t0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f,\n\t0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7,\n\t0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700,\n\t0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23,\n\t0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53,\n\t0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714,\n\t0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b,\n\t0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719,\n\t0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728,\n\t0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37,\n\t0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57,\n\t0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737,\n\t0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741,\n\t0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff,\n\t0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637,\n\t0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f,\n\t0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093,\n\t0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782,\n\t0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3,\n\t0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7,\n\t0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133,\n\t0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa,\n\t0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4,\n\t0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7,\n\t0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7,\n\t0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b,\n\t0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd,\n\t0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f,\n\t0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f,\n\t0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273,\n\t0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677,\n\t0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7,\n\t0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb,\n\t0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5,\n\t0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa,\n\t0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b,\n\t0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7,\n\t0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665,\n\t0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f,\n\t0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477,\n\t0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693,\n\t0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb,\n\t0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b,\n\t0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567,\n\t0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7,\n\t0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7,\n\t0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef,\n\t0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30,\n\t0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33,\n\t0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f,\n\t0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46,\n\t0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c,\n\t0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a,\n\t0x14d: 0x5b,\n\t0x15c: 0x5c, 0x15f: 0x5d,\n\t0x162: 0x5e, 0x164: 0x5f,\n\t0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65,\n\t0x170: 0x66, 0x173: 0x67, 0x177: 0x68,\n\t0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e,\n\t0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,\n\t0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7,\n\t0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,\n\t0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,\n\t0x3b0: 0x73,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xaf, 0x3ec: 0xb0,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xb1,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4,\n\t0x449: 0xb5,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xb6,\n\t0x4a3: 0xb7, 0x4a5: 0xb8,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xb9,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a,\n\t0x528: 0x2b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 142 entries, 284 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae}\n\n// nfcSparseValues: 688 entries, 2752 bytes\nvar nfcSparseValues = [688]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xd, offset 0x62\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x67\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x69\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x7a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x82\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x89\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x8c\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x14, offset 0x93\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x97\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x9d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x9f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0xa8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xb3\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xb8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xbb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xc5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xc7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xce\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xd6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xdb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x24, offset 0xdd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xdf\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xe4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xf5\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0x101\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0x103\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x109\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x10b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x10f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x111\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x115\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x118\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x11d\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x120\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x123\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x127\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x12c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x135\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x137\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x13a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x13c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x147\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x8132, lo: 0x80, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x82},\n\t{value: 0x8132, lo: 0x83, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8132, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8135, lo: 0x8d, hi: 0x8d},\n\t{value: 0x812a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x812d, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8129, lo: 0x90, hi: 0x90},\n\t{value: 0x8132, lo: 0x91, hi: 0xb5},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8134, lo: 0xbc, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x157\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x15b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3f, offset 0x169\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x40, offset 0x16c\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x172\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x178\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x183\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x187\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x189\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x46, offset 0x18b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x47, offset 0x18d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x48, offset 0x18f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x49, offset 0x191\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x4a, offset 0x197\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x4b, offset 0x19b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4c, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4d, offset 0x19f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4e, offset 0x1a7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4f, offset 0x1ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x50, offset 0x1ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x51, offset 0x1b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x52, offset 0x1b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x53, offset 0x1b4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x54, offset 0x1b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x55, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x56, offset 0x1bb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x57, offset 0x1bd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x58, offset 0x1bf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x59, offset 0x1c5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5a, offset 0x1c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x5b, offset 0x1ca\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1d1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5d, offset 0x1d7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5e, offset 0x1dd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5f, offset 0x1e5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x60, offset 0x1eb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x61, offset 0x1f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x62, offset 0x1f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x63, offset 0x1fb\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x64, offset 0x209\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x65, offset 0x212\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x66, offset 0x215\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x67, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x68, offset 0x21a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x69, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x6a, offset 0x21f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x6b, offset 0x223\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6c, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6d, offset 0x22a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6e, offset 0x22c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6f, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x70, offset 0x237\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x71, offset 0x239\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x72, offset 0x23b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x73, offset 0x23d\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x243\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x75, offset 0x246\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x249\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x251\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x258\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x25b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x25e\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x260\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7c, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x7d, offset 0x26b\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7e, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7f, offset 0x275\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x80, offset 0x27b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x81, offset 0x27d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x82, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x83, offset 0x282\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x84, offset 0x284\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x85, offset 0x286\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x86, offset 0x288\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x295\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x88, offset 0x29f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x89, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8a, offset 0x2a3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x8b, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x8c, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x8d, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 90:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 90\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 92 blocks, 5888 entries, 11776 bytes\n// The third block is the zero block.\nvar nfkcValues = [5888]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,\n\t0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,\n\t0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,\n\t0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,\n\t0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,\n\t0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,\n\t0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,\n\t0x46a: 0x01fd,\n\t0x478: 0x020c,\n\t// Block 0x12, offset 0x480\n\t0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,\n\t0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,\n\t0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,\n\t0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,\n\t0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,\n\t0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,\n\t0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2,\n\t0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0,\n\t0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df,\n\t0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85,\n\t0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93,\n\t0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c,\n\t0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370,\n\t0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a,\n\t0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de,\n\t0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7,\n\t0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a,\n\t0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e,\n\t0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9,\n\t0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465,\n\t0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26,\n\t0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791,\n\t0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b,\n\t0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4,\n\t0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f,\n\t0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49,\n\t0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532,\n\t0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541,\n\t0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582,\n\t0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6,\n\t0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7,\n\t0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f,\n\t0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15,\n\t0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23,\n\t0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a,\n\t0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c,\n\t0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70,\n\t0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1,\n\t0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf,\n\t0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6,\n\t0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5,\n\t0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11,\n\t0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73,\n\t0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a,\n\t0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578,\n\t0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e,\n\t0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6,\n\t0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c,\n\t0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0,\n\t0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00,\n\t0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966,\n\t0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8,\n\t0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6,\n\t0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38,\n\t0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30,\n\t0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60,\n\t0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58,\n\t0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a,\n\t0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8,\n\t0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70,\n\t0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996,\n\t0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2,\n\t0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916,\n\t0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a,\n\t0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c,\n\t0x63c: 0x4870, 0x63d: 0x4342,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac,\n\t0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee,\n\t0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0,\n\t0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2,\n\t0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134,\n\t0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a,\n\t0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88,\n\t0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a,\n\t0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98,\n\t0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee,\n\t0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0,\n\t0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa,\n\t0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af,\n\t0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10,\n\t0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e,\n\t0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec,\n\t0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b,\n\t0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081,\n\t0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8,\n\t0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318,\n\t0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8,\n\t0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051,\n\t0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053,\n\t0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d,\n\t0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065,\n\t0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8,\n\t0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075,\n\t0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b,\n\t0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215,\n\t0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98,\n\t0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0463, 0x705: 0x0049,\n\t0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095,\n\t0x710: 0x222e, 0x711: 0x223a,\n\t0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8,\n\t0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0,\n\t0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963,\n\t0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071,\n\t0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b,\n\t0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62,\n\t0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50,\n\t0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000,\n\t0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b,\n\t0x74d: 0xa000,\n\t0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29,\n\t0x764: 0xa000, 0x765: 0xa000,\n\t0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a,\n\t0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45,\n\t0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000,\n\t0x77c: 0xa000, 0x77d: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d,\n\t0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b,\n\t0x791: 0xa000,\n\t0x792: 0xa000,\n\t0x7a2: 0xa000,\n\t0x7a8: 0xa000, 0x7a9: 0xa000,\n\t0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5,\n\t0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029,\n\t0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882,\n\t0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894,\n\t0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c,\n\t0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84,\n\t0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8,\n\t0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb,\n\t0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60,\n\t0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78,\n\t0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8,\n\t0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10,\n\t0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28,\n\t0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40,\n\t0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58,\n\t0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d,\n\t0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713,\n\t0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab,\n\t0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803,\n\t0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887,\n\t0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db,\n\t0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb,\n\t0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b,\n\t0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7,\n\t0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33,\n\t0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63,\n\t0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb,\n\t0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b,\n\t0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb,\n\t0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3,\n\t0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f,\n\t0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83,\n\t0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7,\n\t0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f,\n\t0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf,\n\t0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f,\n\t0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3,\n\t0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb,\n\t0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b,\n\t0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b,\n\t0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf,\n\t0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f,\n\t0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f,\n\t0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503,\n\t0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f,\n\t0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f,\n\t0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593,\n\t// Block 0x24, offset 0x900\n\t0x906: 0xa000, 0x90b: 0xa000,\n\t0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000,\n\t0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000,\n\t0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000,\n\t0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60,\n\t0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78,\n\t0x92f: 0xa000,\n\t0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000,\n\t0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000,\n\t0x93c: 0x3fc0, 0x93d: 0x3fc8,\n\t// Block 0x25, offset 0x940\n\t0x954: 0x3f00,\n\t0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000,\n\t0x95e: 0x3fd0, 0x95f: 0x26b4,\n\t0x966: 0xa000,\n\t0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000,\n\t0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000,\n\t0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000,\n\t0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040,\n\t0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050,\n\t0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060,\n\t0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080,\n\t0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0,\n\t0x9af: 0xa000,\n\t0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8,\n\t0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0,\n\t0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337,\n\t0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f,\n\t0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9,\n\t0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed,\n\t0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11,\n\t0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35,\n\t0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef,\n\t0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403,\n\t0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383,\n\t0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b,\n\t0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb,\n\t0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7,\n\t0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3,\n\t0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7,\n\t0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff,\n\t0xa1e: 0x098f, 0xa1f: 0x072f,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072,\n\t0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096,\n\t0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741,\n\t0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780,\n\t0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac,\n\t0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108,\n\t0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0,\n\t0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e,\n\t0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144,\n\t0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114,\n\t0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03,\n\t0xa86: 0x0ca7, 0xa87: 0x10c7,\n\t0xa90: 0x1bc4, 0xa91: 0x18a9,\n\t0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb,\n\t0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3,\n\t0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327,\n\t0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b,\n\t0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20,\n\t0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50,\n\t0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88,\n\t0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af,\n\t0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f,\n\t0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b,\n\t0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f,\n\t0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f,\n\t0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b,\n\t0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f,\n\t0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b,\n\t0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee,\n\t0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900,\n\t0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11,\n\t0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0,\n\t0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3,\n\t0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7,\n\t0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f,\n\t0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b,\n\t0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543,\n\t0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b,\n\t0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f,\n\t0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597,\n\t0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a,\n\t0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2,\n\t0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6,\n\t0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c,\n\t0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6,\n\t0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da,\n\t0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8,\n\t0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51,\n\t0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920,\n\t0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06,\n\t0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c,\n\t0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90,\n\t0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6,\n\t0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984,\n\t0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07,\n\t0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4,\n\t0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2,\n\t0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a,\n\t0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47,\n\t0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701,\n\t0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969,\n\t0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35,\n\t0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c,\n\t0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9,\n\t0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0,\n\t0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40,\n\t0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996,\n\t0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad,\n\t0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38,\n\t0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b,\n\t0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd,\n\t0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e,\n\t0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e,\n\t0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990,\n\t0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4,\n\t0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee,\n\t0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186,\n\t0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0,\n\t0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258,\n\t0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e,\n\t0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb,\n\t0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943,\n\t0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3,\n\t0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43,\n\t0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87,\n\t0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283,\n\t0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f,\n\t0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853,\n\t0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b,\n\t0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b,\n\t0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b,\n\t0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f,\n\t0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7,\n\t0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127,\n\t0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357,\n\t0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873,\n\t0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3,\n\t0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b,\n\t0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57,\n\t0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb,\n\t0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f,\n\t0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3,\n\t0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83,\n\t0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193,\n\t0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b,\n\t0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b,\n\t0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f,\n\t0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b,\n\t0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753,\n\t0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777,\n\t0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3,\n\t0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47,\n\t0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af,\n\t0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df,\n\t0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817,\n\t0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3,\n\t0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457,\n\t0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b,\n\t0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27,\n\t0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f,\n\t0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03,\n\t0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27,\n\t0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af,\n\t0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3,\n\t0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb,\n\t0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353,\n\t0xd65: 0x1407, 0xd66: 0x1433,\n\t0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7,\n\t0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897,\n\t0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93,\n\t0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b,\n\t0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f,\n\t0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f,\n\t0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f,\n\t0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff,\n\t0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f,\n\t0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f,\n\t0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3,\n\t0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7,\n\t0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963,\n\t0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b,\n\t0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb,\n\t0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf,\n\t0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f,\n\t0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013,\n\t0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f,\n\t0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b,\n\t0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b,\n\t0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb,\n\t0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343,\n\t0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b,\n\t0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b,\n\t0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2,\n\t0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809,\n\t0xe18: 0x1617, 0xe19: 0x1627,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f,\n\t0xe46: 0x1a5f,\n\t0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70,\n\t0xe5d: 0x4390,\n\t0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221,\n\t0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017,\n\t0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e,\n\t0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e,\n\t0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2,\n\t0xe7c: 0x43ae, 0xe7e: 0x43b4,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc,\n\t0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378,\n\t0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299,\n\t0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5,\n\t0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab,\n\t0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8,\n\t0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c,\n\t0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2,\n\t0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1,\n\t0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4,\n\t0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd,\n\t0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9,\n\t0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5,\n\t0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1,\n\t0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de,\n\t0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7,\n\t0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed,\n\t0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308,\n\t0xef0: 0x4468, 0xef1: 0x4468,\n\t// Block 0x3c, offset 0xf00\n\t0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6,\n\t0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f,\n\t0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc,\n\t0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d,\n\t0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9,\n\t0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c,\n\t0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0,\n\t0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89,\n\t0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb,\n\t0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded,\n\t0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29,\n\t0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b,\n\t0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9,\n\t0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00,\n\t0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32,\n\t0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50,\n\t0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e,\n\t0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf,\n\t0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd,\n\t0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff,\n\t0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022,\n\t0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c,\n\t0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6,\n\t0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7,\n\t0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6,\n\t0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8,\n\t0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10,\n\t0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96,\n\t0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1,\n\t0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027,\n\t0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1,\n\t0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e,\n\t0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5,\n\t0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29,\n\t0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60,\n\t0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9,\n\t0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05,\n\t0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64,\n\t0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91,\n\t0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe,\n\t0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff,\n\t0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031,\n\t0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4,\n\t0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92,\n\t0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0,\n\t0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1,\n\t0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74,\n\t0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba,\n\t0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88,\n\t0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1,\n\t0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74,\n\t0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f,\n\t0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd,\n\t0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d,\n\t0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88,\n\t0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b,\n\t0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb,\n\t0x107c: 0x4408, 0x107d: 0x4408,\n\t// Block 0x42, offset 0x1080\n\t0x1090: 0x2311, 0x1091: 0x2326,\n\t0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357,\n\t0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4,\n\t0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5,\n\t0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc,\n\t0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430,\n\t0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c,\n\t0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f,\n\t0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df,\n\t0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e,\n\t0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c,\n\t0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548,\n\t0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c,\n\t0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365,\n\t0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406,\n\t0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e,\n\t0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca,\n\t0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7,\n\t0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b,\n\t0x1106: 0x23c0, 0x1107: 0x2556,\n\t0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da,\n\t0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc,\n\t0x113c: 0x27d1,\n\t// Block 0x45, offset 0x1140\n\t0x1150: 0x0019, 0x1151: 0x0483,\n\t0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf,\n\t0x1158: 0x04c3, 0x1159: 0x1b5c,\n\t0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132,\n\t0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d,\n\t0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132,\n\t0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011,\n\t0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab,\n\t0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7,\n\t0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269,\n\t0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483,\n\t0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003,\n\t0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7,\n\t0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b,\n\t0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009,\n\t0x11aa: 0x000b, 0x11ab: 0x0041,\n\t0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4,\n\t0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e,\n\t0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456,\n\t0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462,\n\t0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c,\n\t0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242,\n\t0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248,\n\t0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b,\n\t0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251,\n\t0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a,\n\t0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260,\n\t0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263,\n\t0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c,\n\t0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f,\n\t0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275,\n\t0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278,\n\t0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e,\n\t0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281,\n\t0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287,\n\t0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d,\n\t0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00,\n\t0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82,\n\t0x123c: 0x1f82,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b,\n\t0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097,\n\t0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3,\n\t0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af,\n\t0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb,\n\t0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f,\n\t0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7,\n\t0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f,\n\t0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb,\n\t0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503,\n\t0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f,\n\t0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547,\n\t0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f,\n\t0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583,\n\t0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7,\n\t0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b,\n\t0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327,\n\t0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b,\n\t0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337,\n\t0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f,\n\t0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf,\n\t0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7,\n\t0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff,\n\t0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23,\n\t0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35,\n\t0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264,\n\t0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b,\n\t0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d,\n\t0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085,\n\t0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091,\n\t0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d,\n\t0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9,\n\t0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5,\n\t0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176,\n\t0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188,\n\t0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a,\n\t0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9,\n\t0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0,\n\t0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209,\n\t0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027,\n\t0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033,\n\t0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b,\n\t0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023,\n\t0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f,\n\t0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027,\n\t0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033,\n\t0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b,\n\t0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a,\n\t0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e,\n\t0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263,\n\t0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e,\n\t0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4,\n\t0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248,\n\t0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290,\n\t0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f,\n\t0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242,\n\t0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c2: 0x0248,\n\t0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e,\n\t0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263,\n\t0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e,\n\t0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4,\n\t0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,\n\t0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290,\n\t0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,\n\t0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,\n\t0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272,\n\t0x13fc: 0x0293, 0x13fe: 0x02cc,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272,\n\t0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251,\n\t0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,\n\t0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8,\n\t0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927,\n\t0x1450: 0x1a8c, 0x1451: 0x1a90,\n\t0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8,\n\t0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0,\n\t0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8,\n\t0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0,\n\t0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1,\n\t0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d,\n\t0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059,\n\t0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503,\n\t0x1490: 0x0c0f, 0x1491: 0x0a47,\n\t0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff,\n\t0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b,\n\t0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b,\n\t0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf,\n\t0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b,\n\t0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43,\n\t0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757,\n\t0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773,\n\t0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3,\n\t0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf,\n\t0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff,\n\t0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f,\n\t0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867,\n\t0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af,\n\t0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93,\n\t0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3,\n\t0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f,\n\t0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983,\n\t0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf,\n\t0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3,\n\t0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef,\n\t0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23,\n\t0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37,\n\t0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63,\n\t0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f,\n\t0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692,\n\t0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb,\n\t0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f,\n\t0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6,\n\t0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9,\n\t0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83,\n\t0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3,\n\t0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf,\n\t0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7,\n\t0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f,\n\t0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b,\n\t0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87,\n\t0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb,\n\t0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7,\n\t0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663,\n\t0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd,\n\t0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7,\n\t0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b,\n\t0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f,\n\t0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7,\n\t0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700,\n\t0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23,\n\t0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53,\n\t0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714,\n\t0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b,\n\t0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719,\n\t0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728,\n\t0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37,\n\t0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57,\n\t0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737,\n\t0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741,\n\t0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff,\n\t0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637,\n\t0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f,\n\t0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093,\n\t0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782,\n\t0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3,\n\t0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7,\n\t0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133,\n\t0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa,\n\t0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4,\n\t0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7,\n\t0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7,\n\t0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b,\n\t0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd,\n\t0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f,\n\t0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f,\n\t0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273,\n\t0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677,\n\t0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7,\n\t0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb,\n\t0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5,\n\t0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa,\n\t0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b,\n\t0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7,\n\t0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665,\n\t0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f,\n\t0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477,\n\t0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693,\n\t0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb,\n\t0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b,\n\t0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567,\n\t0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7,\n\t0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7,\n\t0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef,\n\t0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60,\n\t0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c,\n\t0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73,\n\t0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79,\n\t0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88,\n\t0x14d: 0x89,\n\t0x15c: 0x8a, 0x15f: 0x8b,\n\t0x162: 0x8c, 0x164: 0x8d,\n\t0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93,\n\t0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97,\n\t0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26,\n\t0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32,\n\t0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a,\n\t0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42,\n\t0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,\n\t0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1,\n\t0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,\n\t0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,\n\t0x3b0: 0xd7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xda, 0x3ec: 0xdb,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xdc,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf,\n\t0x449: 0xe0,\n\t0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8,\n\t0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xef,\n\t0x4a3: 0xf0, 0x4a5: 0xf1,\n\t0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3,\n\t0x4c8: 0x50, 0x4c9: 0xf4,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58,\n\t0x528: 0x59,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 155 entries, 310 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361}\n\n// nfkcSparseValues: 875 entries, 3500 bytes\nvar nfkcSparseValues = [875]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xc, offset 0x6f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x74\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x76\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x8f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x96\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x99\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x13, offset 0xa0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0xa4\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0xa8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xaa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xac\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xb5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xc0\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xc8\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xd2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xd4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xdb\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xe3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xe7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xe9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xec\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xf0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xf6\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0x107\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x115\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x11d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x11f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x121\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x123\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x125\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x129\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x12c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x12f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x131\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x134\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x137\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x13b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x140\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x149\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x14b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x14e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x150\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x15b\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x166\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x8132, lo: 0x80, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x82},\n\t{value: 0x8132, lo: 0x83, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8132, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8135, lo: 0x8d, hi: 0x8d},\n\t{value: 0x812a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x812d, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8129, lo: 0x90, hi: 0x90},\n\t{value: 0x8132, lo: 0x91, hi: 0xb5},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8134, lo: 0xbc, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x176\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3f, offset 0x184\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x40, offset 0x192\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x41, offset 0x1a2\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x42, offset 0x1b0\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x43, offset 0x1b7\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x44, offset 0x1bd\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x45, offset 0x1cc\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x46, offset 0x1d0\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x47, offset 0x1d2\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x48, offset 0x1d6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x49, offset 0x1d8\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x4a, offset 0x1db\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4b, offset 0x1dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4c, offset 0x1e0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4d, offset 0x1e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4e, offset 0x1e5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4f, offset 0x1e7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x50, offset 0x1e9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x51, offset 0x1eb\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x52, offset 0x1f7\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x53, offset 0x201\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x54, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x55, offset 0x20e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x56, offset 0x212\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x57, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x58, offset 0x216\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x59, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x5a, offset 0x21a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5b, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5c, offset 0x21f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5d, offset 0x221\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5e, offset 0x223\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5f, offset 0x225\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x60, offset 0x22b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x61, offset 0x22e\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x62, offset 0x232\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x63, offset 0x234\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x64, offset 0x23b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x65, offset 0x241\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x66, offset 0x247\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x67, offset 0x24f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x68, offset 0x255\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x69, offset 0x25b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x6a, offset 0x261\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6b, offset 0x265\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6c, offset 0x267\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6d, offset 0x269\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6e, offset 0x26b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6f, offset 0x26d\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x273\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x71, offset 0x276\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x279\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x281\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x288\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x28b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x28e\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x290\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x78, offset 0x298\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x79, offset 0x29b\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7a, offset 0x2a2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7b, offset 0x2a5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7c, offset 0x2ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7d, offset 0x2ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7e, offset 0x2af\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x7f, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x80, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x81, offset 0x2b6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x82, offset 0x2b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x83, offset 0x2ba\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x84, offset 0x2c7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x85, offset 0x2d1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x86, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x87, offset 0x2d5\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x88, offset 0x2d9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x89, offset 0x2de\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x8a, offset 0x2ea\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x8b, offset 0x2ef\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x8c, offset 0x2f8\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x8d, offset 0x2fe\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x8e, offset 0x303\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x8f, offset 0x307\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x30c\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x91, offset 0x310\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x92, offset 0x320\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x93, offset 0x32e\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x33c\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x95, offset 0x34a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x96, offset 0x350\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x97, offset 0x352\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x98, offset 0x355\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0x99, offset 0x35f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0x9a, offset 0x361\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54006 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// Reset implements the Reset method of the transform.Transformer interface.\nfunc (Form) Reset() {}\n\n// Transform implements the Transform method of the transform.Transformer\n// interface. It may need to write segments of up to MaxSegmentSize at once.\n// Users should either catch ErrShortDst and allow dst to grow or have dst be at\n// least of size MaxTransformChunkSize to be guaranteed of progress.\nfunc (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Cap the maximum number of src bytes to check.\n\tb := src\n\teof := atEOF\n\tif ns := len(dst); ns < len(b) {\n\t\terr = transform.ErrShortDst\n\t\teof = false\n\t\tb = b[:ns]\n\t}\n\ti, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof)\n\tn := copy(dst, b[:i])\n\tif !ok {\n\t\tnDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF)\n\t\treturn nDst + n, nSrc + n, err\n\t}\n\n\tif err == nil && n < len(src) && !atEOF {\n\t\terr = transform.ErrShortSrc\n\t}\n\treturn n, n, err\n}\n\nfunc flushTransform(rb *reorderBuffer) bool {\n\t// Write out (must fully fit in dst, or else it is an ErrShortDst).\n\tif len(rb.out) < rb.nrune*utf8.UTFMax {\n\t\treturn false\n\t}\n\trb.out = rb.out[rb.flushCopy(rb.out):]\n\treturn true\n}\n\nvar errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc}\n\n// transform implements the transform.Transformer interface. It is only called\n// when quickSpan does not pass for a given string.\nfunc (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// TODO: get rid of reorderBuffer. See CL 23460044.\n\trb := reorderBuffer{}\n\trb.init(f, src)\n\tfor {\n\t\t// Load segment into reorder buffer.\n\t\trb.setFlusher(dst[nDst:], flushTransform)\n\t\tend := decomposeSegment(&rb, nSrc, atEOF)\n\t\tif end < 0 {\n\t\t\treturn nDst, nSrc, errs[-end]\n\t\t}\n\t\tnDst = len(dst) - len(rb.out)\n\t\tnSrc = end\n\n\t\t// Next quickSpan.\n\t\tend = rb.nsrc\n\t\teof := atEOF\n\t\tif n := nSrc + len(dst) - nDst; n < end {\n\t\t\terr = transform.ErrShortDst\n\t\t\tend = n\n\t\t\teof = false\n\t\t}\n\t\tend, ok := rb.f.quickSpan(rb.src, nSrc, end, eof)\n\t\tn := copy(dst[nDst:], rb.src.bytes[nSrc:end])\n\t\tnSrc += n\n\t\tnDst += n\n\t\tif ok {\n\t\t\tif err == nil && n < rb.nsrc && !atEOF {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t}\n\t\t\treturn nDst, nSrc, err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/trie.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\ntype valueRange struct {\n\tvalue  uint16 // header: value:stride\n\tlo, hi byte   // header: lo:n\n}\n\ntype sparseBlocks struct {\n\tvalues []valueRange\n\toffset []uint16\n}\n\nvar nfcSparse = sparseBlocks{\n\tvalues: nfcSparseValues[:],\n\toffset: nfcSparseOffset[:],\n}\n\nvar nfkcSparse = sparseBlocks{\n\tvalues: nfkcSparseValues[:],\n\toffset: nfkcSparseOffset[:],\n}\n\nvar (\n\tnfcData  = newNfcTrie(0)\n\tnfkcData = newNfkcTrie(0)\n)\n\n// lookupValue determines the type of block n and looks up the value for b.\n// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block\n// is a list of ranges with an accompanying value. Given a matching range r,\n// the value for b is by r.value + (b - r.lo) * stride.\nfunc (t *sparseBlocks) lookup(n uint32, b byte) uint16 {\n\toffset := t.offset[n]\n\theader := t.values[offset]\n\tlo := offset + 1\n\thi := lo + uint16(header.lo)\n\tfor lo < hi {\n\t\tm := lo + (hi-lo)/2\n\t\tr := t.values[m]\n\t\tif r.lo <= b && b <= r.hi {\n\t\t\treturn r.value + uint16(b-r.lo)*header.value\n\t\t}\n\t\tif b < r.lo {\n\t\t\thi = m\n\t\t} else {\n\t\t\tlo = m + 1\n\t\t}\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/kind_string.go",
    "content": "// Code generated by \"stringer -type=Kind\"; DO NOT EDIT.\n\npackage width\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[Neutral-0]\n\t_ = x[EastAsianAmbiguous-1]\n\t_ = x[EastAsianWide-2]\n\t_ = x[EastAsianNarrow-3]\n\t_ = x[EastAsianFullwidth-4]\n\t_ = x[EastAsianHalfwidth-5]\n}\n\nconst _Kind_name = \"NeutralEastAsianAmbiguousEastAsianWideEastAsianNarrowEastAsianFullwidthEastAsianHalfwidth\"\n\nvar _Kind_index = [...]uint8{0, 7, 25, 38, 53, 71, 89}\n\nfunc (i Kind) String() string {\n\tif i < 0 || i >= Kind(len(_Kind_index)-1) {\n\t\treturn \"Kind(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _Kind_name[_Kind_index[i]:_Kind_index[i+1]]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.10,!go1.13\n\npackage width\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *widthTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn widthValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = widthIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *widthTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn widthValues[c0]\n\t}\n\ti := widthIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *widthTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn widthValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = widthIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *widthTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn widthValues[c0]\n\t}\n\ti := widthIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// widthTrie. Total size: 14336 bytes (14.00 KiB). Checksum: c59df54630d3dc4a.\ntype widthTrie struct{}\n\nfunc newWidthTrie(i int) *widthTrie {\n\treturn &widthTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *widthTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tdefault:\n\t\treturn uint16(widthValues[n<<6+uint32(b)])\n\t}\n}\n\n// widthValues: 101 blocks, 6464 entries, 12928 bytes\n// The third block is the zero block.\nvar widthValues = [6464]uint16{\n\t// Block 0x0, offset 0x0\n\t0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002,\n\t0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002,\n\t0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002,\n\t0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002,\n\t0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002,\n\t0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003,\n\t0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003,\n\t0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003,\n\t0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003,\n\t0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003,\n\t0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004,\n\t0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004,\n\t0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004,\n\t0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004,\n\t0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004,\n\t0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005,\n\t0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000,\n\t0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008,\n\t0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000,\n\t0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000,\n\t0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000,\n\t// Block 0x4, offset 0x100\n\t0x106: 0x2000,\n\t0x110: 0x2000,\n\t0x117: 0x2000,\n\t0x118: 0x2000,\n\t0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000,\n\t0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000,\n\t0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000,\n\t0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000,\n\t0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000,\n\t0x13c: 0x2000, 0x13e: 0x2000,\n\t// Block 0x5, offset 0x140\n\t0x141: 0x2000,\n\t0x151: 0x2000,\n\t0x153: 0x2000,\n\t0x15b: 0x2000,\n\t0x166: 0x2000, 0x167: 0x2000,\n\t0x16b: 0x2000,\n\t0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000,\n\t0x178: 0x2000,\n\t0x17f: 0x2000,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000,\n\t0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000,\n\t0x18d: 0x2000,\n\t0x192: 0x2000, 0x193: 0x2000,\n\t0x1a6: 0x2000, 0x1a7: 0x2000,\n\t0x1ab: 0x2000,\n\t// Block 0x7, offset 0x1c0\n\t0x1ce: 0x2000, 0x1d0: 0x2000,\n\t0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000,\n\t0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000,\n\t// Block 0x8, offset 0x200\n\t0x211: 0x2000,\n\t0x221: 0x2000,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x2000,\n\t0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000,\n\t0x24d: 0x2000, 0x250: 0x2000,\n\t0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000,\n\t0x25f: 0x2000,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000,\n\t0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000,\n\t0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000,\n\t0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000,\n\t0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000,\n\t0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000,\n\t0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000,\n\t0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000,\n\t0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000,\n\t0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000,\n\t0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000,\n\t0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000,\n\t0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000,\n\t0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000,\n\t0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000,\n\t0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000,\n\t0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000,\n\t0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000,\n\t// Block 0xc, offset 0x300\n\t0x311: 0x2000,\n\t0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000,\n\t0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000,\n\t0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000,\n\t0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000,\n\t0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000,\n\t0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000,\n\t0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000,\n\t0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000,\n\t// Block 0xe, offset 0x380\n\t0x381: 0x2000,\n\t0x390: 0x2000, 0x391: 0x2000,\n\t0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000,\n\t0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000,\n\t0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000,\n\t0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000,\n\t0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000,\n\t0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000,\n\t0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000,\n\t0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000,\n\t0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000,\n\t0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000,\n\t0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000,\n\t0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000,\n\t0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000,\n\t0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000,\n\t0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000,\n\t0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000,\n\t0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000,\n\t0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000,\n\t0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000,\n\t0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000,\n\t0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000,\n\t0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000,\n\t0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000,\n\t0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000,\n\t0x45e: 0x4000, 0x45f: 0x4000,\n\t// Block 0x12, offset 0x480\n\t0x490: 0x2000,\n\t0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000,\n\t0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000,\n\t0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000,\n\t0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000,\n\t0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000,\n\t0x4bb: 0x2000,\n\t0x4be: 0x2000,\n\t// Block 0x13, offset 0x4c0\n\t0x4f4: 0x2000,\n\t0x4ff: 0x2000,\n\t// Block 0x14, offset 0x500\n\t0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000,\n\t0x529: 0xa009,\n\t0x52c: 0x2000,\n\t// Block 0x15, offset 0x540\n\t0x543: 0x2000, 0x545: 0x2000,\n\t0x549: 0x2000,\n\t0x553: 0x2000, 0x556: 0x2000,\n\t0x561: 0x2000, 0x562: 0x2000,\n\t0x566: 0x2000,\n\t0x56b: 0x2000,\n\t// Block 0x16, offset 0x580\n\t0x593: 0x2000, 0x594: 0x2000,\n\t0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000,\n\t0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000,\n\t0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000,\n\t0x5aa: 0x2000, 0x5ab: 0x2000,\n\t0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000,\n\t0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000,\n\t// Block 0x17, offset 0x5c0\n\t0x5c9: 0x2000,\n\t0x5d0: 0x200a, 0x5d1: 0x200b,\n\t0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000,\n\t0x5d8: 0x2000, 0x5d9: 0x2000,\n\t0x5f8: 0x2000, 0x5f9: 0x2000,\n\t// Block 0x18, offset 0x600\n\t0x612: 0x2000, 0x614: 0x2000,\n\t0x627: 0x2000,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000,\n\t0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000,\n\t0x64f: 0x2000, 0x651: 0x2000,\n\t0x655: 0x2000,\n\t0x65a: 0x2000, 0x65d: 0x2000,\n\t0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000,\n\t0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000,\n\t0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000,\n\t0x674: 0x2000, 0x675: 0x2000,\n\t0x676: 0x2000, 0x677: 0x2000,\n\t0x67c: 0x2000, 0x67d: 0x2000,\n\t// Block 0x1a, offset 0x680\n\t0x688: 0x2000,\n\t0x68c: 0x2000,\n\t0x692: 0x2000,\n\t0x6a0: 0x2000, 0x6a1: 0x2000,\n\t0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000,\n\t0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c2: 0x2000, 0x6c3: 0x2000,\n\t0x6c6: 0x2000, 0x6c7: 0x2000,\n\t0x6d5: 0x2000,\n\t0x6d9: 0x2000,\n\t0x6e5: 0x2000,\n\t0x6ff: 0x2000,\n\t// Block 0x1c, offset 0x700\n\t0x712: 0x2000,\n\t0x71a: 0x4000, 0x71b: 0x4000,\n\t0x729: 0x4000,\n\t0x72a: 0x4000,\n\t// Block 0x1d, offset 0x740\n\t0x769: 0x4000,\n\t0x76a: 0x4000, 0x76b: 0x4000, 0x76c: 0x4000,\n\t0x770: 0x4000, 0x773: 0x4000,\n\t// Block 0x1e, offset 0x780\n\t0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000,\n\t0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000,\n\t0x7aa: 0x2000, 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000,\n\t0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000,\n\t0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000,\n\t0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x2000, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000,\n\t0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000,\n\t0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000,\n\t0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000,\n\t0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000,\n\t0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000,\n\t0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000,\n\t0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000,\n\t0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000,\n\t0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000,\n\t0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x2000, 0x801: 0x2000, 0x802: 0x200d, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000,\n\t0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000,\n\t0x80c: 0x2000, 0x80d: 0x2000, 0x80e: 0x2000, 0x80f: 0x2000, 0x810: 0x2000, 0x811: 0x2000,\n\t0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000,\n\t0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000,\n\t0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000,\n\t0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000,\n\t0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000,\n\t0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, 0x834: 0x2000, 0x835: 0x2000,\n\t0x836: 0x2000, 0x837: 0x2000, 0x838: 0x2000, 0x839: 0x2000, 0x83a: 0x2000, 0x83b: 0x2000,\n\t0x83c: 0x2000, 0x83d: 0x2000, 0x83e: 0x2000, 0x83f: 0x2000,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000,\n\t0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000,\n\t0x850: 0x2000, 0x851: 0x2000,\n\t0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, 0x856: 0x2000, 0x857: 0x2000,\n\t0x858: 0x2000, 0x859: 0x2000, 0x85a: 0x2000, 0x85b: 0x2000, 0x85c: 0x2000, 0x85d: 0x2000,\n\t0x85e: 0x2000, 0x85f: 0x2000, 0x860: 0x2000, 0x861: 0x2000, 0x862: 0x2000, 0x863: 0x2000,\n\t0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000,\n\t0x86a: 0x2000, 0x86b: 0x2000, 0x86c: 0x2000, 0x86d: 0x2000, 0x86e: 0x2000, 0x86f: 0x2000,\n\t0x870: 0x2000, 0x871: 0x2000, 0x872: 0x2000, 0x873: 0x2000,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x2000, 0x881: 0x2000, 0x882: 0x2000, 0x883: 0x2000, 0x884: 0x2000, 0x885: 0x2000,\n\t0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x889: 0x2000, 0x88a: 0x2000, 0x88b: 0x2000,\n\t0x88c: 0x2000, 0x88d: 0x2000, 0x88e: 0x2000, 0x88f: 0x2000,\n\t0x892: 0x2000, 0x893: 0x2000, 0x894: 0x2000, 0x895: 0x2000,\n\t0x8a0: 0x200e, 0x8a1: 0x2000, 0x8a3: 0x2000,\n\t0x8a4: 0x2000, 0x8a5: 0x2000, 0x8a6: 0x2000, 0x8a7: 0x2000, 0x8a8: 0x2000, 0x8a9: 0x2000,\n\t0x8b2: 0x2000, 0x8b3: 0x2000,\n\t0x8b6: 0x2000, 0x8b7: 0x2000,\n\t0x8bc: 0x2000, 0x8bd: 0x2000,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x2000, 0x8c1: 0x2000,\n\t0x8c6: 0x2000, 0x8c7: 0x2000, 0x8c8: 0x2000, 0x8cb: 0x200f,\n\t0x8ce: 0x2000, 0x8cf: 0x2000, 0x8d0: 0x2000, 0x8d1: 0x2000,\n\t0x8e2: 0x2000, 0x8e3: 0x2000,\n\t0x8e4: 0x2000, 0x8e5: 0x2000,\n\t0x8ef: 0x2000,\n\t0x8fd: 0x4000, 0x8fe: 0x4000,\n\t// Block 0x24, offset 0x900\n\t0x905: 0x2000,\n\t0x906: 0x2000, 0x909: 0x2000,\n\t0x90e: 0x2000, 0x90f: 0x2000,\n\t0x914: 0x4000, 0x915: 0x4000,\n\t0x91c: 0x2000,\n\t0x91e: 0x2000,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x2000, 0x942: 0x2000,\n\t0x948: 0x4000, 0x949: 0x4000, 0x94a: 0x4000, 0x94b: 0x4000,\n\t0x94c: 0x4000, 0x94d: 0x4000, 0x94e: 0x4000, 0x94f: 0x4000, 0x950: 0x4000, 0x951: 0x4000,\n\t0x952: 0x4000, 0x953: 0x4000,\n\t0x960: 0x2000, 0x961: 0x2000, 0x963: 0x2000,\n\t0x964: 0x2000, 0x965: 0x2000, 0x967: 0x2000, 0x968: 0x2000, 0x969: 0x2000,\n\t0x96a: 0x2000, 0x96c: 0x2000, 0x96d: 0x2000, 0x96f: 0x2000,\n\t0x97f: 0x4000,\n\t// Block 0x26, offset 0x980\n\t0x993: 0x4000,\n\t0x99e: 0x2000, 0x99f: 0x2000, 0x9a1: 0x4000,\n\t0x9aa: 0x4000, 0x9ab: 0x4000,\n\t0x9bd: 0x4000, 0x9be: 0x4000, 0x9bf: 0x2000,\n\t// Block 0x27, offset 0x9c0\n\t0x9c4: 0x4000, 0x9c5: 0x4000,\n\t0x9c6: 0x2000, 0x9c7: 0x2000, 0x9c8: 0x2000, 0x9c9: 0x2000, 0x9ca: 0x2000, 0x9cb: 0x2000,\n\t0x9cc: 0x2000, 0x9cd: 0x2000, 0x9ce: 0x4000, 0x9cf: 0x2000, 0x9d0: 0x2000, 0x9d1: 0x2000,\n\t0x9d2: 0x2000, 0x9d3: 0x2000, 0x9d4: 0x4000, 0x9d5: 0x2000, 0x9d6: 0x2000, 0x9d7: 0x2000,\n\t0x9d8: 0x2000, 0x9d9: 0x2000, 0x9da: 0x2000, 0x9db: 0x2000, 0x9dc: 0x2000, 0x9dd: 0x2000,\n\t0x9de: 0x2000, 0x9df: 0x2000, 0x9e0: 0x2000, 0x9e1: 0x2000, 0x9e3: 0x2000,\n\t0x9e8: 0x2000, 0x9e9: 0x2000,\n\t0x9ea: 0x4000, 0x9eb: 0x2000, 0x9ec: 0x2000, 0x9ed: 0x2000, 0x9ee: 0x2000, 0x9ef: 0x2000,\n\t0x9f0: 0x2000, 0x9f1: 0x2000, 0x9f2: 0x4000, 0x9f3: 0x4000, 0x9f4: 0x2000, 0x9f5: 0x4000,\n\t0x9f6: 0x2000, 0x9f7: 0x2000, 0x9f8: 0x2000, 0x9f9: 0x2000, 0x9fa: 0x4000, 0x9fb: 0x2000,\n\t0x9fc: 0x2000, 0x9fd: 0x4000, 0x9fe: 0x2000, 0x9ff: 0x2000,\n\t// Block 0x28, offset 0xa00\n\t0xa05: 0x4000,\n\t0xa0a: 0x4000, 0xa0b: 0x4000,\n\t0xa28: 0x4000,\n\t0xa3d: 0x2000,\n\t// Block 0x29, offset 0xa40\n\t0xa4c: 0x4000, 0xa4e: 0x4000,\n\t0xa53: 0x4000, 0xa54: 0x4000, 0xa55: 0x4000, 0xa57: 0x4000,\n\t0xa76: 0x2000, 0xa77: 0x2000, 0xa78: 0x2000, 0xa79: 0x2000, 0xa7a: 0x2000, 0xa7b: 0x2000,\n\t0xa7c: 0x2000, 0xa7d: 0x2000, 0xa7e: 0x2000, 0xa7f: 0x2000,\n\t// Block 0x2a, offset 0xa80\n\t0xa95: 0x4000, 0xa96: 0x4000, 0xa97: 0x4000,\n\t0xab0: 0x4000,\n\t0xabf: 0x4000,\n\t// Block 0x2b, offset 0xac0\n\t0xae6: 0x6000, 0xae7: 0x6000, 0xae8: 0x6000, 0xae9: 0x6000,\n\t0xaea: 0x6000, 0xaeb: 0x6000, 0xaec: 0x6000, 0xaed: 0x6000,\n\t// Block 0x2c, offset 0xb00\n\t0xb05: 0x6010,\n\t0xb06: 0x6011,\n\t// Block 0x2d, offset 0xb40\n\t0xb5b: 0x4000, 0xb5c: 0x4000,\n\t// Block 0x2e, offset 0xb80\n\t0xb90: 0x4000,\n\t0xb95: 0x4000, 0xb96: 0x2000, 0xb97: 0x2000,\n\t0xb98: 0x2000, 0xb99: 0x2000,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x4000, 0xbc1: 0x4000, 0xbc2: 0x4000, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000,\n\t0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000,\n\t0xbcc: 0x4000, 0xbcd: 0x4000, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000,\n\t0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000,\n\t0xbd8: 0x4000, 0xbd9: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000,\n\t0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000,\n\t0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000,\n\t0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000,\n\t0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000,\n\t0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000,\n\t0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, 0xbff: 0x4000,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x4000, 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000,\n\t0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000,\n\t0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000,\n\t0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000,\n\t0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000,\n\t0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000,\n\t0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000,\n\t0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000,\n\t0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000,\n\t0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000,\n\t0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000,\n\t0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000,\n\t0xc70: 0x4000, 0xc71: 0x4000, 0xc72: 0x4000, 0xc73: 0x4000, 0xc74: 0x4000, 0xc75: 0x4000,\n\t0xc76: 0x4000, 0xc77: 0x4000, 0xc78: 0x4000, 0xc79: 0x4000, 0xc7a: 0x4000, 0xc7b: 0x4000,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x9012, 0xc81: 0x4013, 0xc82: 0x4014, 0xc83: 0x4000, 0xc84: 0x4000, 0xc85: 0x4000,\n\t0xc86: 0x4000, 0xc87: 0x4000, 0xc88: 0x4000, 0xc89: 0x4000, 0xc8a: 0x4000, 0xc8b: 0x4000,\n\t0xc8c: 0x4015, 0xc8d: 0x4015, 0xc8e: 0x4000, 0xc8f: 0x4000, 0xc90: 0x4000, 0xc91: 0x4000,\n\t0xc92: 0x4000, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4000, 0xc96: 0x4000, 0xc97: 0x4000,\n\t0xc98: 0x4000, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4000, 0xc9c: 0x4000, 0xc9d: 0x4000,\n\t0xc9e: 0x4000, 0xc9f: 0x4000, 0xca0: 0x4000, 0xca1: 0x4000, 0xca2: 0x4000, 0xca3: 0x4000,\n\t0xca4: 0x4000, 0xca5: 0x4000, 0xca6: 0x4000, 0xca7: 0x4000, 0xca8: 0x4000, 0xca9: 0x4000,\n\t0xcaa: 0x4000, 0xcab: 0x4000, 0xcac: 0x4000, 0xcad: 0x4000, 0xcae: 0x4000, 0xcaf: 0x4000,\n\t0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x4000, 0xcb3: 0x4000, 0xcb4: 0x4000, 0xcb5: 0x4000,\n\t0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x4000,\n\t0xcbc: 0x4000, 0xcbd: 0x4000, 0xcbe: 0x4000,\n\t// Block 0x33, offset 0xcc0\n\t0xcc1: 0x4000, 0xcc2: 0x4000, 0xcc3: 0x4000, 0xcc4: 0x4000, 0xcc5: 0x4000,\n\t0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000,\n\t0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000,\n\t0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000,\n\t0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000,\n\t0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000,\n\t0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000,\n\t0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, 0xcee: 0x4000, 0xcef: 0x4000,\n\t0xcf0: 0x4000, 0xcf1: 0x4000, 0xcf2: 0x4000, 0xcf3: 0x4000, 0xcf4: 0x4000, 0xcf5: 0x4000,\n\t0xcf6: 0x4000, 0xcf7: 0x4000, 0xcf8: 0x4000, 0xcf9: 0x4000, 0xcfa: 0x4000, 0xcfb: 0x4000,\n\t0xcfc: 0x4000, 0xcfd: 0x4000, 0xcfe: 0x4000, 0xcff: 0x4000,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x4000, 0xd01: 0x4000, 0xd02: 0x4000, 0xd03: 0x4000, 0xd04: 0x4000, 0xd05: 0x4000,\n\t0xd06: 0x4000, 0xd07: 0x4000, 0xd08: 0x4000, 0xd09: 0x4000, 0xd0a: 0x4000, 0xd0b: 0x4000,\n\t0xd0c: 0x4000, 0xd0d: 0x4000, 0xd0e: 0x4000, 0xd0f: 0x4000, 0xd10: 0x4000, 0xd11: 0x4000,\n\t0xd12: 0x4000, 0xd13: 0x4000, 0xd14: 0x4000, 0xd15: 0x4000, 0xd16: 0x4000,\n\t0xd19: 0x4016, 0xd1a: 0x4017, 0xd1b: 0x4000, 0xd1c: 0x4000, 0xd1d: 0x4000,\n\t0xd1e: 0x4000, 0xd1f: 0x4000, 0xd20: 0x4000, 0xd21: 0x4018, 0xd22: 0x4019, 0xd23: 0x401a,\n\t0xd24: 0x401b, 0xd25: 0x401c, 0xd26: 0x401d, 0xd27: 0x401e, 0xd28: 0x401f, 0xd29: 0x4020,\n\t0xd2a: 0x4021, 0xd2b: 0x4022, 0xd2c: 0x4000, 0xd2d: 0x4010, 0xd2e: 0x4000, 0xd2f: 0x4023,\n\t0xd30: 0x4000, 0xd31: 0x4024, 0xd32: 0x4000, 0xd33: 0x4025, 0xd34: 0x4000, 0xd35: 0x4026,\n\t0xd36: 0x4000, 0xd37: 0x401a, 0xd38: 0x4000, 0xd39: 0x4027, 0xd3a: 0x4000, 0xd3b: 0x4028,\n\t0xd3c: 0x4000, 0xd3d: 0x4020, 0xd3e: 0x4000, 0xd3f: 0x4029,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x4000, 0xd41: 0x402a, 0xd42: 0x4000, 0xd43: 0x402b, 0xd44: 0x402c, 0xd45: 0x4000,\n\t0xd46: 0x4017, 0xd47: 0x4000, 0xd48: 0x402d, 0xd49: 0x4000, 0xd4a: 0x402e, 0xd4b: 0x402f,\n\t0xd4c: 0x4030, 0xd4d: 0x4017, 0xd4e: 0x4016, 0xd4f: 0x4017, 0xd50: 0x4000, 0xd51: 0x4000,\n\t0xd52: 0x4031, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4031, 0xd56: 0x4000, 0xd57: 0x4000,\n\t0xd58: 0x4032, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4032, 0xd5c: 0x4000, 0xd5d: 0x4000,\n\t0xd5e: 0x4033, 0xd5f: 0x402e, 0xd60: 0x4034, 0xd61: 0x4035, 0xd62: 0x4034, 0xd63: 0x4036,\n\t0xd64: 0x4037, 0xd65: 0x4024, 0xd66: 0x4035, 0xd67: 0x4025, 0xd68: 0x4038, 0xd69: 0x4038,\n\t0xd6a: 0x4039, 0xd6b: 0x4039, 0xd6c: 0x403a, 0xd6d: 0x403a, 0xd6e: 0x4000, 0xd6f: 0x4035,\n\t0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x403b, 0xd73: 0x403c, 0xd74: 0x4000, 0xd75: 0x4000,\n\t0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, 0xd7b: 0x403d,\n\t0xd7c: 0x401c, 0xd7d: 0x4000, 0xd7e: 0x4000, 0xd7f: 0x4000,\n\t// Block 0x36, offset 0xd80\n\t0xd85: 0x4000,\n\t0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000,\n\t0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000,\n\t0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000,\n\t0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000,\n\t0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000,\n\t0xda4: 0x4000, 0xda5: 0x4000, 0xda6: 0x4000, 0xda7: 0x4000, 0xda8: 0x4000, 0xda9: 0x4000,\n\t0xdaa: 0x4000, 0xdab: 0x4000, 0xdac: 0x4000, 0xdad: 0x4000, 0xdae: 0x4000,\n\t0xdb1: 0x403e, 0xdb2: 0x403e, 0xdb3: 0x403e, 0xdb4: 0x403e, 0xdb5: 0x403e,\n\t0xdb6: 0x403e, 0xdb7: 0x403e, 0xdb8: 0x403e, 0xdb9: 0x403e, 0xdba: 0x403e, 0xdbb: 0x403e,\n\t0xdbc: 0x403e, 0xdbd: 0x403e, 0xdbe: 0x403e, 0xdbf: 0x403e,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x4037, 0xdc1: 0x4037, 0xdc2: 0x4037, 0xdc3: 0x4037, 0xdc4: 0x4037, 0xdc5: 0x4037,\n\t0xdc6: 0x4037, 0xdc7: 0x4037, 0xdc8: 0x4037, 0xdc9: 0x4037, 0xdca: 0x4037, 0xdcb: 0x4037,\n\t0xdcc: 0x4037, 0xdcd: 0x4037, 0xdce: 0x4037, 0xdcf: 0x400e, 0xdd0: 0x403f, 0xdd1: 0x4040,\n\t0xdd2: 0x4041, 0xdd3: 0x4040, 0xdd4: 0x403f, 0xdd5: 0x4042, 0xdd6: 0x4043, 0xdd7: 0x4044,\n\t0xdd8: 0x4040, 0xdd9: 0x4041, 0xdda: 0x4040, 0xddb: 0x4045, 0xddc: 0x4009, 0xddd: 0x4045,\n\t0xdde: 0x4046, 0xddf: 0x4045, 0xde0: 0x4047, 0xde1: 0x400b, 0xde2: 0x400a, 0xde3: 0x400c,\n\t0xde4: 0x4048, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000,\n\t0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000,\n\t0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000,\n\t0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000,\n\t0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000,\n\t0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x4000, 0xe09: 0x4000, 0xe0a: 0x4000, 0xe0b: 0x4000,\n\t0xe0c: 0x4000, 0xe0d: 0x4000, 0xe0e: 0x4000, 0xe10: 0x4000, 0xe11: 0x4000,\n\t0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000,\n\t0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000,\n\t0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000,\n\t0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000,\n\t0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000,\n\t0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000,\n\t0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000,\n\t0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000,\n\t0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000,\n\t0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000,\n\t0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000,\n\t0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000,\n\t0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000,\n\t0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000,\n\t0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, 0xe7f: 0x4000,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000,\n\t0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000,\n\t0xe8c: 0x4000, 0xe8d: 0x4000, 0xe8e: 0x4000, 0xe8f: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000,\n\t0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000,\n\t0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000,\n\t0xe9e: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000,\n\t0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000,\n\t0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000,\n\t0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000,\n\t0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000,\n\t0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000,\n\t0xec6: 0x4000, 0xec7: 0x4000, 0xec8: 0x2000, 0xec9: 0x2000, 0xeca: 0x2000, 0xecb: 0x2000,\n\t0xecc: 0x2000, 0xecd: 0x2000, 0xece: 0x2000, 0xecf: 0x2000, 0xed0: 0x4000, 0xed1: 0x4000,\n\t0xed2: 0x4000, 0xed3: 0x4000, 0xed4: 0x4000, 0xed5: 0x4000, 0xed6: 0x4000, 0xed7: 0x4000,\n\t0xed8: 0x4000, 0xed9: 0x4000, 0xeda: 0x4000, 0xedb: 0x4000, 0xedc: 0x4000, 0xedd: 0x4000,\n\t0xede: 0x4000, 0xedf: 0x4000, 0xee0: 0x4000, 0xee1: 0x4000, 0xee2: 0x4000, 0xee3: 0x4000,\n\t0xee4: 0x4000, 0xee5: 0x4000, 0xee6: 0x4000, 0xee7: 0x4000, 0xee8: 0x4000, 0xee9: 0x4000,\n\t0xeea: 0x4000, 0xeeb: 0x4000, 0xeec: 0x4000, 0xeed: 0x4000, 0xeee: 0x4000, 0xeef: 0x4000,\n\t0xef0: 0x4000, 0xef1: 0x4000, 0xef2: 0x4000, 0xef3: 0x4000, 0xef4: 0x4000, 0xef5: 0x4000,\n\t0xef6: 0x4000, 0xef7: 0x4000, 0xef8: 0x4000, 0xef9: 0x4000, 0xefa: 0x4000, 0xefb: 0x4000,\n\t0xefc: 0x4000, 0xefd: 0x4000, 0xefe: 0x4000, 0xeff: 0x4000,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x4000, 0xf01: 0x4000, 0xf02: 0x4000, 0xf03: 0x4000, 0xf04: 0x4000, 0xf05: 0x4000,\n\t0xf06: 0x4000, 0xf07: 0x4000, 0xf08: 0x4000, 0xf09: 0x4000, 0xf0a: 0x4000, 0xf0b: 0x4000,\n\t0xf0c: 0x4000, 0xf0d: 0x4000, 0xf0e: 0x4000, 0xf0f: 0x4000, 0xf10: 0x4000, 0xf11: 0x4000,\n\t0xf12: 0x4000, 0xf13: 0x4000, 0xf14: 0x4000, 0xf15: 0x4000, 0xf16: 0x4000, 0xf17: 0x4000,\n\t0xf18: 0x4000, 0xf19: 0x4000, 0xf1a: 0x4000, 0xf1b: 0x4000, 0xf1c: 0x4000, 0xf1d: 0x4000,\n\t0xf1e: 0x4000, 0xf1f: 0x4000, 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000,\n\t0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000,\n\t0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000,\n\t0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000,\n\t0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000,\n\t0xf3c: 0x4000, 0xf3d: 0x4000, 0xf3e: 0x4000,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000,\n\t0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000,\n\t0xf4c: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000,\n\t0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000,\n\t0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000,\n\t0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000,\n\t0xf64: 0x4000, 0xf65: 0x4000, 0xf66: 0x4000, 0xf67: 0x4000, 0xf68: 0x4000, 0xf69: 0x4000,\n\t0xf6a: 0x4000, 0xf6b: 0x4000, 0xf6c: 0x4000, 0xf6d: 0x4000, 0xf6e: 0x4000, 0xf6f: 0x4000,\n\t0xf70: 0x4000, 0xf71: 0x4000, 0xf72: 0x4000, 0xf73: 0x4000, 0xf74: 0x4000, 0xf75: 0x4000,\n\t0xf76: 0x4000, 0xf77: 0x4000, 0xf78: 0x4000, 0xf79: 0x4000, 0xf7a: 0x4000, 0xf7b: 0x4000,\n\t0xf7c: 0x4000, 0xf7d: 0x4000, 0xf7e: 0x4000, 0xf7f: 0x4000,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x4000, 0xf81: 0x4000, 0xf82: 0x4000, 0xf83: 0x4000, 0xf84: 0x4000, 0xf85: 0x4000,\n\t0xf86: 0x4000,\n\t// Block 0x3f, offset 0xfc0\n\t0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000,\n\t0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe7: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000,\n\t0xfea: 0x4000, 0xfeb: 0x4000, 0xfec: 0x4000, 0xfed: 0x4000, 0xfee: 0x4000, 0xfef: 0x4000,\n\t0xff0: 0x4000, 0xff1: 0x4000, 0xff2: 0x4000, 0xff3: 0x4000, 0xff4: 0x4000, 0xff5: 0x4000,\n\t0xff6: 0x4000, 0xff7: 0x4000, 0xff8: 0x4000, 0xff9: 0x4000, 0xffa: 0x4000, 0xffb: 0x4000,\n\t0xffc: 0x4000,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x4000, 0x1001: 0x4000, 0x1002: 0x4000, 0x1003: 0x4000, 0x1004: 0x4000, 0x1005: 0x4000,\n\t0x1006: 0x4000, 0x1007: 0x4000, 0x1008: 0x4000, 0x1009: 0x4000, 0x100a: 0x4000, 0x100b: 0x4000,\n\t0x100c: 0x4000, 0x100d: 0x4000, 0x100e: 0x4000, 0x100f: 0x4000, 0x1010: 0x4000, 0x1011: 0x4000,\n\t0x1012: 0x4000, 0x1013: 0x4000, 0x1014: 0x4000, 0x1015: 0x4000, 0x1016: 0x4000, 0x1017: 0x4000,\n\t0x1018: 0x4000, 0x1019: 0x4000, 0x101a: 0x4000, 0x101b: 0x4000, 0x101c: 0x4000, 0x101d: 0x4000,\n\t0x101e: 0x4000, 0x101f: 0x4000, 0x1020: 0x4000, 0x1021: 0x4000, 0x1022: 0x4000, 0x1023: 0x4000,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x2000, 0x1041: 0x2000, 0x1042: 0x2000, 0x1043: 0x2000, 0x1044: 0x2000, 0x1045: 0x2000,\n\t0x1046: 0x2000, 0x1047: 0x2000, 0x1048: 0x2000, 0x1049: 0x2000, 0x104a: 0x2000, 0x104b: 0x2000,\n\t0x104c: 0x2000, 0x104d: 0x2000, 0x104e: 0x2000, 0x104f: 0x2000, 0x1050: 0x4000, 0x1051: 0x4000,\n\t0x1052: 0x4000, 0x1053: 0x4000, 0x1054: 0x4000, 0x1055: 0x4000, 0x1056: 0x4000, 0x1057: 0x4000,\n\t0x1058: 0x4000, 0x1059: 0x4000,\n\t0x1070: 0x4000, 0x1071: 0x4000, 0x1072: 0x4000, 0x1073: 0x4000, 0x1074: 0x4000, 0x1075: 0x4000,\n\t0x1076: 0x4000, 0x1077: 0x4000, 0x1078: 0x4000, 0x1079: 0x4000, 0x107a: 0x4000, 0x107b: 0x4000,\n\t0x107c: 0x4000, 0x107d: 0x4000, 0x107e: 0x4000, 0x107f: 0x4000,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x4000, 0x1081: 0x4000, 0x1082: 0x4000, 0x1083: 0x4000, 0x1084: 0x4000, 0x1085: 0x4000,\n\t0x1086: 0x4000, 0x1087: 0x4000, 0x1088: 0x4000, 0x1089: 0x4000, 0x108a: 0x4000, 0x108b: 0x4000,\n\t0x108c: 0x4000, 0x108d: 0x4000, 0x108e: 0x4000, 0x108f: 0x4000, 0x1090: 0x4000, 0x1091: 0x4000,\n\t0x1092: 0x4000, 0x1094: 0x4000, 0x1095: 0x4000, 0x1096: 0x4000, 0x1097: 0x4000,\n\t0x1098: 0x4000, 0x1099: 0x4000, 0x109a: 0x4000, 0x109b: 0x4000, 0x109c: 0x4000, 0x109d: 0x4000,\n\t0x109e: 0x4000, 0x109f: 0x4000, 0x10a0: 0x4000, 0x10a1: 0x4000, 0x10a2: 0x4000, 0x10a3: 0x4000,\n\t0x10a4: 0x4000, 0x10a5: 0x4000, 0x10a6: 0x4000, 0x10a8: 0x4000, 0x10a9: 0x4000,\n\t0x10aa: 0x4000, 0x10ab: 0x4000,\n\t// Block 0x43, offset 0x10c0\n\t0x10c1: 0x9012, 0x10c2: 0x9012, 0x10c3: 0x9012, 0x10c4: 0x9012, 0x10c5: 0x9012,\n\t0x10c6: 0x9012, 0x10c7: 0x9012, 0x10c8: 0x9012, 0x10c9: 0x9012, 0x10ca: 0x9012, 0x10cb: 0x9012,\n\t0x10cc: 0x9012, 0x10cd: 0x9012, 0x10ce: 0x9012, 0x10cf: 0x9012, 0x10d0: 0x9012, 0x10d1: 0x9012,\n\t0x10d2: 0x9012, 0x10d3: 0x9012, 0x10d4: 0x9012, 0x10d5: 0x9012, 0x10d6: 0x9012, 0x10d7: 0x9012,\n\t0x10d8: 0x9012, 0x10d9: 0x9012, 0x10da: 0x9012, 0x10db: 0x9012, 0x10dc: 0x9012, 0x10dd: 0x9012,\n\t0x10de: 0x9012, 0x10df: 0x9012, 0x10e0: 0x9049, 0x10e1: 0x9049, 0x10e2: 0x9049, 0x10e3: 0x9049,\n\t0x10e4: 0x9049, 0x10e5: 0x9049, 0x10e6: 0x9049, 0x10e7: 0x9049, 0x10e8: 0x9049, 0x10e9: 0x9049,\n\t0x10ea: 0x9049, 0x10eb: 0x9049, 0x10ec: 0x9049, 0x10ed: 0x9049, 0x10ee: 0x9049, 0x10ef: 0x9049,\n\t0x10f0: 0x9049, 0x10f1: 0x9049, 0x10f2: 0x9049, 0x10f3: 0x9049, 0x10f4: 0x9049, 0x10f5: 0x9049,\n\t0x10f6: 0x9049, 0x10f7: 0x9049, 0x10f8: 0x9049, 0x10f9: 0x9049, 0x10fa: 0x9049, 0x10fb: 0x9049,\n\t0x10fc: 0x9049, 0x10fd: 0x9049, 0x10fe: 0x9049, 0x10ff: 0x9049,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x9049, 0x1101: 0x9049, 0x1102: 0x9049, 0x1103: 0x9049, 0x1104: 0x9049, 0x1105: 0x9049,\n\t0x1106: 0x9049, 0x1107: 0x9049, 0x1108: 0x9049, 0x1109: 0x9049, 0x110a: 0x9049, 0x110b: 0x9049,\n\t0x110c: 0x9049, 0x110d: 0x9049, 0x110e: 0x9049, 0x110f: 0x9049, 0x1110: 0x9049, 0x1111: 0x9049,\n\t0x1112: 0x9049, 0x1113: 0x9049, 0x1114: 0x9049, 0x1115: 0x9049, 0x1116: 0x9049, 0x1117: 0x9049,\n\t0x1118: 0x9049, 0x1119: 0x9049, 0x111a: 0x9049, 0x111b: 0x9049, 0x111c: 0x9049, 0x111d: 0x9049,\n\t0x111e: 0x9049, 0x111f: 0x904a, 0x1120: 0x904b, 0x1121: 0xb04c, 0x1122: 0xb04d, 0x1123: 0xb04d,\n\t0x1124: 0xb04e, 0x1125: 0xb04f, 0x1126: 0xb050, 0x1127: 0xb051, 0x1128: 0xb052, 0x1129: 0xb053,\n\t0x112a: 0xb054, 0x112b: 0xb055, 0x112c: 0xb056, 0x112d: 0xb057, 0x112e: 0xb058, 0x112f: 0xb059,\n\t0x1130: 0xb05a, 0x1131: 0xb05b, 0x1132: 0xb05c, 0x1133: 0xb05d, 0x1134: 0xb05e, 0x1135: 0xb05f,\n\t0x1136: 0xb060, 0x1137: 0xb061, 0x1138: 0xb062, 0x1139: 0xb063, 0x113a: 0xb064, 0x113b: 0xb065,\n\t0x113c: 0xb052, 0x113d: 0xb066, 0x113e: 0xb067, 0x113f: 0xb055,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xb068, 0x1141: 0xb069, 0x1142: 0xb06a, 0x1143: 0xb06b, 0x1144: 0xb05a, 0x1145: 0xb056,\n\t0x1146: 0xb06c, 0x1147: 0xb06d, 0x1148: 0xb06b, 0x1149: 0xb06e, 0x114a: 0xb06b, 0x114b: 0xb06f,\n\t0x114c: 0xb06f, 0x114d: 0xb070, 0x114e: 0xb070, 0x114f: 0xb071, 0x1150: 0xb056, 0x1151: 0xb072,\n\t0x1152: 0xb073, 0x1153: 0xb072, 0x1154: 0xb074, 0x1155: 0xb073, 0x1156: 0xb075, 0x1157: 0xb075,\n\t0x1158: 0xb076, 0x1159: 0xb076, 0x115a: 0xb077, 0x115b: 0xb077, 0x115c: 0xb073, 0x115d: 0xb078,\n\t0x115e: 0xb079, 0x115f: 0xb067, 0x1160: 0xb07a, 0x1161: 0xb07b, 0x1162: 0xb07b, 0x1163: 0xb07b,\n\t0x1164: 0xb07b, 0x1165: 0xb07b, 0x1166: 0xb07b, 0x1167: 0xb07b, 0x1168: 0xb07b, 0x1169: 0xb07b,\n\t0x116a: 0xb07b, 0x116b: 0xb07b, 0x116c: 0xb07b, 0x116d: 0xb07b, 0x116e: 0xb07b, 0x116f: 0xb07b,\n\t0x1170: 0xb07c, 0x1171: 0xb07c, 0x1172: 0xb07c, 0x1173: 0xb07c, 0x1174: 0xb07c, 0x1175: 0xb07c,\n\t0x1176: 0xb07c, 0x1177: 0xb07c, 0x1178: 0xb07c, 0x1179: 0xb07c, 0x117a: 0xb07c, 0x117b: 0xb07c,\n\t0x117c: 0xb07c, 0x117d: 0xb07c, 0x117e: 0xb07c,\n\t// Block 0x46, offset 0x1180\n\t0x1182: 0xb07d, 0x1183: 0xb07e, 0x1184: 0xb07f, 0x1185: 0xb080,\n\t0x1186: 0xb07f, 0x1187: 0xb07e, 0x118a: 0xb081, 0x118b: 0xb082,\n\t0x118c: 0xb083, 0x118d: 0xb07f, 0x118e: 0xb080, 0x118f: 0xb07f,\n\t0x1192: 0xb084, 0x1193: 0xb085, 0x1194: 0xb084, 0x1195: 0xb086, 0x1196: 0xb084, 0x1197: 0xb087,\n\t0x119a: 0xb088, 0x119b: 0xb089, 0x119c: 0xb08a,\n\t0x11a0: 0x908b, 0x11a1: 0x908b, 0x11a2: 0x908c, 0x11a3: 0x908d,\n\t0x11a4: 0x908b, 0x11a5: 0x908e, 0x11a6: 0x908f, 0x11a8: 0xb090, 0x11a9: 0xb091,\n\t0x11aa: 0xb092, 0x11ab: 0xb091, 0x11ac: 0xb093, 0x11ad: 0xb094, 0x11ae: 0xb095,\n\t0x11bd: 0x2000,\n\t// Block 0x47, offset 0x11c0\n\t0x11e0: 0x4000, 0x11e1: 0x4000,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, 0x1203: 0x4000, 0x1204: 0x4000, 0x1205: 0x4000,\n\t0x1206: 0x4000, 0x1207: 0x4000, 0x1208: 0x4000, 0x1209: 0x4000, 0x120a: 0x4000, 0x120b: 0x4000,\n\t0x120c: 0x4000, 0x120d: 0x4000, 0x120e: 0x4000, 0x120f: 0x4000, 0x1210: 0x4000, 0x1211: 0x4000,\n\t0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000,\n\t0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000,\n\t0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000,\n\t0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000,\n\t0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000,\n\t0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, 0x1249: 0x4000, 0x124a: 0x4000, 0x124b: 0x4000,\n\t0x124c: 0x4000, 0x124d: 0x4000, 0x124e: 0x4000, 0x124f: 0x4000, 0x1250: 0x4000, 0x1251: 0x4000,\n\t0x1252: 0x4000, 0x1253: 0x4000, 0x1254: 0x4000, 0x1255: 0x4000, 0x1256: 0x4000, 0x1257: 0x4000,\n\t0x1258: 0x4000, 0x1259: 0x4000, 0x125a: 0x4000, 0x125b: 0x4000, 0x125c: 0x4000, 0x125d: 0x4000,\n\t0x125e: 0x4000, 0x125f: 0x4000, 0x1260: 0x4000, 0x1261: 0x4000, 0x1262: 0x4000, 0x1263: 0x4000,\n\t0x1264: 0x4000, 0x1265: 0x4000, 0x1266: 0x4000, 0x1267: 0x4000, 0x1268: 0x4000, 0x1269: 0x4000,\n\t0x126a: 0x4000, 0x126b: 0x4000, 0x126c: 0x4000, 0x126d: 0x4000, 0x126e: 0x4000, 0x126f: 0x4000,\n\t0x1270: 0x4000, 0x1271: 0x4000, 0x1272: 0x4000,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x4000, 0x1281: 0x4000, 0x1282: 0x4000, 0x1283: 0x4000, 0x1284: 0x4000, 0x1285: 0x4000,\n\t0x1286: 0x4000, 0x1287: 0x4000, 0x1288: 0x4000, 0x1289: 0x4000, 0x128a: 0x4000, 0x128b: 0x4000,\n\t0x128c: 0x4000, 0x128d: 0x4000, 0x128e: 0x4000, 0x128f: 0x4000, 0x1290: 0x4000, 0x1291: 0x4000,\n\t0x1292: 0x4000, 0x1293: 0x4000, 0x1294: 0x4000, 0x1295: 0x4000, 0x1296: 0x4000, 0x1297: 0x4000,\n\t0x1298: 0x4000, 0x1299: 0x4000, 0x129a: 0x4000, 0x129b: 0x4000, 0x129c: 0x4000, 0x129d: 0x4000,\n\t0x129e: 0x4000,\n\t// Block 0x4b, offset 0x12c0\n\t0x12f0: 0x4000, 0x12f1: 0x4000, 0x12f2: 0x4000, 0x12f3: 0x4000, 0x12f4: 0x4000, 0x12f5: 0x4000,\n\t0x12f6: 0x4000, 0x12f7: 0x4000, 0x12f8: 0x4000, 0x12f9: 0x4000, 0x12fa: 0x4000, 0x12fb: 0x4000,\n\t0x12fc: 0x4000, 0x12fd: 0x4000, 0x12fe: 0x4000, 0x12ff: 0x4000,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x4000, 0x1301: 0x4000, 0x1302: 0x4000, 0x1303: 0x4000, 0x1304: 0x4000, 0x1305: 0x4000,\n\t0x1306: 0x4000, 0x1307: 0x4000, 0x1308: 0x4000, 0x1309: 0x4000, 0x130a: 0x4000, 0x130b: 0x4000,\n\t0x130c: 0x4000, 0x130d: 0x4000, 0x130e: 0x4000, 0x130f: 0x4000, 0x1310: 0x4000, 0x1311: 0x4000,\n\t0x1312: 0x4000, 0x1313: 0x4000, 0x1314: 0x4000, 0x1315: 0x4000, 0x1316: 0x4000, 0x1317: 0x4000,\n\t0x1318: 0x4000, 0x1319: 0x4000, 0x131a: 0x4000, 0x131b: 0x4000, 0x131c: 0x4000, 0x131d: 0x4000,\n\t0x131e: 0x4000, 0x131f: 0x4000, 0x1320: 0x4000, 0x1321: 0x4000, 0x1322: 0x4000, 0x1323: 0x4000,\n\t0x1324: 0x4000, 0x1325: 0x4000, 0x1326: 0x4000, 0x1327: 0x4000, 0x1328: 0x4000, 0x1329: 0x4000,\n\t0x132a: 0x4000, 0x132b: 0x4000, 0x132c: 0x4000, 0x132d: 0x4000, 0x132e: 0x4000, 0x132f: 0x4000,\n\t0x1330: 0x4000, 0x1331: 0x4000, 0x1332: 0x4000, 0x1333: 0x4000, 0x1334: 0x4000, 0x1335: 0x4000,\n\t0x1336: 0x4000, 0x1337: 0x4000, 0x1338: 0x4000, 0x1339: 0x4000, 0x133a: 0x4000, 0x133b: 0x4000,\n\t// Block 0x4d, offset 0x1340\n\t0x1344: 0x4000,\n\t// Block 0x4e, offset 0x1380\n\t0x138f: 0x4000,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x2000, 0x13c1: 0x2000, 0x13c2: 0x2000, 0x13c3: 0x2000, 0x13c4: 0x2000, 0x13c5: 0x2000,\n\t0x13c6: 0x2000, 0x13c7: 0x2000, 0x13c8: 0x2000, 0x13c9: 0x2000, 0x13ca: 0x2000,\n\t0x13d0: 0x2000, 0x13d1: 0x2000,\n\t0x13d2: 0x2000, 0x13d3: 0x2000, 0x13d4: 0x2000, 0x13d5: 0x2000, 0x13d6: 0x2000, 0x13d7: 0x2000,\n\t0x13d8: 0x2000, 0x13d9: 0x2000, 0x13da: 0x2000, 0x13db: 0x2000, 0x13dc: 0x2000, 0x13dd: 0x2000,\n\t0x13de: 0x2000, 0x13df: 0x2000, 0x13e0: 0x2000, 0x13e1: 0x2000, 0x13e2: 0x2000, 0x13e3: 0x2000,\n\t0x13e4: 0x2000, 0x13e5: 0x2000, 0x13e6: 0x2000, 0x13e7: 0x2000, 0x13e8: 0x2000, 0x13e9: 0x2000,\n\t0x13ea: 0x2000, 0x13eb: 0x2000, 0x13ec: 0x2000, 0x13ed: 0x2000,\n\t0x13f0: 0x2000, 0x13f1: 0x2000, 0x13f2: 0x2000, 0x13f3: 0x2000, 0x13f4: 0x2000, 0x13f5: 0x2000,\n\t0x13f6: 0x2000, 0x13f7: 0x2000, 0x13f8: 0x2000, 0x13f9: 0x2000, 0x13fa: 0x2000, 0x13fb: 0x2000,\n\t0x13fc: 0x2000, 0x13fd: 0x2000, 0x13fe: 0x2000, 0x13ff: 0x2000,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x2000, 0x1401: 0x2000, 0x1402: 0x2000, 0x1403: 0x2000, 0x1404: 0x2000, 0x1405: 0x2000,\n\t0x1406: 0x2000, 0x1407: 0x2000, 0x1408: 0x2000, 0x1409: 0x2000, 0x140a: 0x2000, 0x140b: 0x2000,\n\t0x140c: 0x2000, 0x140d: 0x2000, 0x140e: 0x2000, 0x140f: 0x2000, 0x1410: 0x2000, 0x1411: 0x2000,\n\t0x1412: 0x2000, 0x1413: 0x2000, 0x1414: 0x2000, 0x1415: 0x2000, 0x1416: 0x2000, 0x1417: 0x2000,\n\t0x1418: 0x2000, 0x1419: 0x2000, 0x141a: 0x2000, 0x141b: 0x2000, 0x141c: 0x2000, 0x141d: 0x2000,\n\t0x141e: 0x2000, 0x141f: 0x2000, 0x1420: 0x2000, 0x1421: 0x2000, 0x1422: 0x2000, 0x1423: 0x2000,\n\t0x1424: 0x2000, 0x1425: 0x2000, 0x1426: 0x2000, 0x1427: 0x2000, 0x1428: 0x2000, 0x1429: 0x2000,\n\t0x1430: 0x2000, 0x1431: 0x2000, 0x1432: 0x2000, 0x1433: 0x2000, 0x1434: 0x2000, 0x1435: 0x2000,\n\t0x1436: 0x2000, 0x1437: 0x2000, 0x1438: 0x2000, 0x1439: 0x2000, 0x143a: 0x2000, 0x143b: 0x2000,\n\t0x143c: 0x2000, 0x143d: 0x2000, 0x143e: 0x2000, 0x143f: 0x2000,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x2000, 0x1441: 0x2000, 0x1442: 0x2000, 0x1443: 0x2000, 0x1444: 0x2000, 0x1445: 0x2000,\n\t0x1446: 0x2000, 0x1447: 0x2000, 0x1448: 0x2000, 0x1449: 0x2000, 0x144a: 0x2000, 0x144b: 0x2000,\n\t0x144c: 0x2000, 0x144d: 0x2000, 0x144e: 0x4000, 0x144f: 0x2000, 0x1450: 0x2000, 0x1451: 0x4000,\n\t0x1452: 0x4000, 0x1453: 0x4000, 0x1454: 0x4000, 0x1455: 0x4000, 0x1456: 0x4000, 0x1457: 0x4000,\n\t0x1458: 0x4000, 0x1459: 0x4000, 0x145a: 0x4000, 0x145b: 0x2000, 0x145c: 0x2000, 0x145d: 0x2000,\n\t0x145e: 0x2000, 0x145f: 0x2000, 0x1460: 0x2000, 0x1461: 0x2000, 0x1462: 0x2000, 0x1463: 0x2000,\n\t0x1464: 0x2000, 0x1465: 0x2000, 0x1466: 0x2000, 0x1467: 0x2000, 0x1468: 0x2000, 0x1469: 0x2000,\n\t0x146a: 0x2000, 0x146b: 0x2000, 0x146c: 0x2000,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x4000, 0x1481: 0x4000, 0x1482: 0x4000,\n\t0x1490: 0x4000, 0x1491: 0x4000,\n\t0x1492: 0x4000, 0x1493: 0x4000, 0x1494: 0x4000, 0x1495: 0x4000, 0x1496: 0x4000, 0x1497: 0x4000,\n\t0x1498: 0x4000, 0x1499: 0x4000, 0x149a: 0x4000, 0x149b: 0x4000, 0x149c: 0x4000, 0x149d: 0x4000,\n\t0x149e: 0x4000, 0x149f: 0x4000, 0x14a0: 0x4000, 0x14a1: 0x4000, 0x14a2: 0x4000, 0x14a3: 0x4000,\n\t0x14a4: 0x4000, 0x14a5: 0x4000, 0x14a6: 0x4000, 0x14a7: 0x4000, 0x14a8: 0x4000, 0x14a9: 0x4000,\n\t0x14aa: 0x4000, 0x14ab: 0x4000, 0x14ac: 0x4000, 0x14ad: 0x4000, 0x14ae: 0x4000, 0x14af: 0x4000,\n\t0x14b0: 0x4000, 0x14b1: 0x4000, 0x14b2: 0x4000, 0x14b3: 0x4000, 0x14b4: 0x4000, 0x14b5: 0x4000,\n\t0x14b6: 0x4000, 0x14b7: 0x4000, 0x14b8: 0x4000, 0x14b9: 0x4000, 0x14ba: 0x4000, 0x14bb: 0x4000,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x4000, 0x14c1: 0x4000, 0x14c2: 0x4000, 0x14c3: 0x4000, 0x14c4: 0x4000, 0x14c5: 0x4000,\n\t0x14c6: 0x4000, 0x14c7: 0x4000, 0x14c8: 0x4000,\n\t0x14d0: 0x4000, 0x14d1: 0x4000,\n\t0x14e0: 0x4000, 0x14e1: 0x4000, 0x14e2: 0x4000, 0x14e3: 0x4000,\n\t0x14e4: 0x4000, 0x14e5: 0x4000,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x4000, 0x1501: 0x4000, 0x1502: 0x4000, 0x1503: 0x4000, 0x1504: 0x4000, 0x1505: 0x4000,\n\t0x1506: 0x4000, 0x1507: 0x4000, 0x1508: 0x4000, 0x1509: 0x4000, 0x150a: 0x4000, 0x150b: 0x4000,\n\t0x150c: 0x4000, 0x150d: 0x4000, 0x150e: 0x4000, 0x150f: 0x4000, 0x1510: 0x4000, 0x1511: 0x4000,\n\t0x1512: 0x4000, 0x1513: 0x4000, 0x1514: 0x4000, 0x1515: 0x4000, 0x1516: 0x4000, 0x1517: 0x4000,\n\t0x1518: 0x4000, 0x1519: 0x4000, 0x151a: 0x4000, 0x151b: 0x4000, 0x151c: 0x4000, 0x151d: 0x4000,\n\t0x151e: 0x4000, 0x151f: 0x4000, 0x1520: 0x4000,\n\t0x152d: 0x4000, 0x152e: 0x4000, 0x152f: 0x4000,\n\t0x1530: 0x4000, 0x1531: 0x4000, 0x1532: 0x4000, 0x1533: 0x4000, 0x1534: 0x4000, 0x1535: 0x4000,\n\t0x1537: 0x4000, 0x1538: 0x4000, 0x1539: 0x4000, 0x153a: 0x4000, 0x153b: 0x4000,\n\t0x153c: 0x4000, 0x153d: 0x4000, 0x153e: 0x4000, 0x153f: 0x4000,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x4000, 0x1541: 0x4000, 0x1542: 0x4000, 0x1543: 0x4000, 0x1544: 0x4000, 0x1545: 0x4000,\n\t0x1546: 0x4000, 0x1547: 0x4000, 0x1548: 0x4000, 0x1549: 0x4000, 0x154a: 0x4000, 0x154b: 0x4000,\n\t0x154c: 0x4000, 0x154d: 0x4000, 0x154e: 0x4000, 0x154f: 0x4000, 0x1550: 0x4000, 0x1551: 0x4000,\n\t0x1552: 0x4000, 0x1553: 0x4000, 0x1554: 0x4000, 0x1555: 0x4000, 0x1556: 0x4000, 0x1557: 0x4000,\n\t0x1558: 0x4000, 0x1559: 0x4000, 0x155a: 0x4000, 0x155b: 0x4000, 0x155c: 0x4000, 0x155d: 0x4000,\n\t0x155e: 0x4000, 0x155f: 0x4000, 0x1560: 0x4000, 0x1561: 0x4000, 0x1562: 0x4000, 0x1563: 0x4000,\n\t0x1564: 0x4000, 0x1565: 0x4000, 0x1566: 0x4000, 0x1567: 0x4000, 0x1568: 0x4000, 0x1569: 0x4000,\n\t0x156a: 0x4000, 0x156b: 0x4000, 0x156c: 0x4000, 0x156d: 0x4000, 0x156e: 0x4000, 0x156f: 0x4000,\n\t0x1570: 0x4000, 0x1571: 0x4000, 0x1572: 0x4000, 0x1573: 0x4000, 0x1574: 0x4000, 0x1575: 0x4000,\n\t0x1576: 0x4000, 0x1577: 0x4000, 0x1578: 0x4000, 0x1579: 0x4000, 0x157a: 0x4000, 0x157b: 0x4000,\n\t0x157c: 0x4000, 0x157e: 0x4000, 0x157f: 0x4000,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x4000, 0x1581: 0x4000, 0x1582: 0x4000, 0x1583: 0x4000, 0x1584: 0x4000, 0x1585: 0x4000,\n\t0x1586: 0x4000, 0x1587: 0x4000, 0x1588: 0x4000, 0x1589: 0x4000, 0x158a: 0x4000, 0x158b: 0x4000,\n\t0x158c: 0x4000, 0x158d: 0x4000, 0x158e: 0x4000, 0x158f: 0x4000, 0x1590: 0x4000, 0x1591: 0x4000,\n\t0x1592: 0x4000, 0x1593: 0x4000,\n\t0x15a0: 0x4000, 0x15a1: 0x4000, 0x15a2: 0x4000, 0x15a3: 0x4000,\n\t0x15a4: 0x4000, 0x15a5: 0x4000, 0x15a6: 0x4000, 0x15a7: 0x4000, 0x15a8: 0x4000, 0x15a9: 0x4000,\n\t0x15aa: 0x4000, 0x15ab: 0x4000, 0x15ac: 0x4000, 0x15ad: 0x4000, 0x15ae: 0x4000, 0x15af: 0x4000,\n\t0x15b0: 0x4000, 0x15b1: 0x4000, 0x15b2: 0x4000, 0x15b3: 0x4000, 0x15b4: 0x4000, 0x15b5: 0x4000,\n\t0x15b6: 0x4000, 0x15b7: 0x4000, 0x15b8: 0x4000, 0x15b9: 0x4000, 0x15ba: 0x4000, 0x15bb: 0x4000,\n\t0x15bc: 0x4000, 0x15bd: 0x4000, 0x15be: 0x4000, 0x15bf: 0x4000,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x4000, 0x15c1: 0x4000, 0x15c2: 0x4000, 0x15c3: 0x4000, 0x15c4: 0x4000, 0x15c5: 0x4000,\n\t0x15c6: 0x4000, 0x15c7: 0x4000, 0x15c8: 0x4000, 0x15c9: 0x4000, 0x15ca: 0x4000,\n\t0x15cf: 0x4000, 0x15d0: 0x4000, 0x15d1: 0x4000,\n\t0x15d2: 0x4000, 0x15d3: 0x4000,\n\t0x15e0: 0x4000, 0x15e1: 0x4000, 0x15e2: 0x4000, 0x15e3: 0x4000,\n\t0x15e4: 0x4000, 0x15e5: 0x4000, 0x15e6: 0x4000, 0x15e7: 0x4000, 0x15e8: 0x4000, 0x15e9: 0x4000,\n\t0x15ea: 0x4000, 0x15eb: 0x4000, 0x15ec: 0x4000, 0x15ed: 0x4000, 0x15ee: 0x4000, 0x15ef: 0x4000,\n\t0x15f0: 0x4000, 0x15f4: 0x4000,\n\t0x15f8: 0x4000, 0x15f9: 0x4000, 0x15fa: 0x4000, 0x15fb: 0x4000,\n\t0x15fc: 0x4000, 0x15fd: 0x4000, 0x15fe: 0x4000, 0x15ff: 0x4000,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x4000, 0x1602: 0x4000, 0x1603: 0x4000, 0x1604: 0x4000, 0x1605: 0x4000,\n\t0x1606: 0x4000, 0x1607: 0x4000, 0x1608: 0x4000, 0x1609: 0x4000, 0x160a: 0x4000, 0x160b: 0x4000,\n\t0x160c: 0x4000, 0x160d: 0x4000, 0x160e: 0x4000, 0x160f: 0x4000, 0x1610: 0x4000, 0x1611: 0x4000,\n\t0x1612: 0x4000, 0x1613: 0x4000, 0x1614: 0x4000, 0x1615: 0x4000, 0x1616: 0x4000, 0x1617: 0x4000,\n\t0x1618: 0x4000, 0x1619: 0x4000, 0x161a: 0x4000, 0x161b: 0x4000, 0x161c: 0x4000, 0x161d: 0x4000,\n\t0x161e: 0x4000, 0x161f: 0x4000, 0x1620: 0x4000, 0x1621: 0x4000, 0x1622: 0x4000, 0x1623: 0x4000,\n\t0x1624: 0x4000, 0x1625: 0x4000, 0x1626: 0x4000, 0x1627: 0x4000, 0x1628: 0x4000, 0x1629: 0x4000,\n\t0x162a: 0x4000, 0x162b: 0x4000, 0x162c: 0x4000, 0x162d: 0x4000, 0x162e: 0x4000, 0x162f: 0x4000,\n\t0x1630: 0x4000, 0x1631: 0x4000, 0x1632: 0x4000, 0x1633: 0x4000, 0x1634: 0x4000, 0x1635: 0x4000,\n\t0x1636: 0x4000, 0x1637: 0x4000, 0x1638: 0x4000, 0x1639: 0x4000, 0x163a: 0x4000, 0x163b: 0x4000,\n\t0x163c: 0x4000, 0x163d: 0x4000, 0x163e: 0x4000, 0x163f: 0x4000,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x4000, 0x1641: 0x4000, 0x1642: 0x4000, 0x1643: 0x4000, 0x1644: 0x4000, 0x1645: 0x4000,\n\t0x1646: 0x4000, 0x1647: 0x4000, 0x1648: 0x4000, 0x1649: 0x4000, 0x164a: 0x4000, 0x164b: 0x4000,\n\t0x164c: 0x4000, 0x164d: 0x4000, 0x164e: 0x4000, 0x164f: 0x4000, 0x1650: 0x4000, 0x1651: 0x4000,\n\t0x1652: 0x4000, 0x1653: 0x4000, 0x1654: 0x4000, 0x1655: 0x4000, 0x1656: 0x4000, 0x1657: 0x4000,\n\t0x1658: 0x4000, 0x1659: 0x4000, 0x165a: 0x4000, 0x165b: 0x4000, 0x165c: 0x4000, 0x165d: 0x4000,\n\t0x165e: 0x4000, 0x165f: 0x4000, 0x1660: 0x4000, 0x1661: 0x4000, 0x1662: 0x4000, 0x1663: 0x4000,\n\t0x1664: 0x4000, 0x1665: 0x4000, 0x1666: 0x4000, 0x1667: 0x4000, 0x1668: 0x4000, 0x1669: 0x4000,\n\t0x166a: 0x4000, 0x166b: 0x4000, 0x166c: 0x4000, 0x166d: 0x4000, 0x166e: 0x4000, 0x166f: 0x4000,\n\t0x1670: 0x4000, 0x1671: 0x4000, 0x1672: 0x4000, 0x1673: 0x4000, 0x1674: 0x4000, 0x1675: 0x4000,\n\t0x1676: 0x4000, 0x1677: 0x4000, 0x1678: 0x4000, 0x1679: 0x4000, 0x167a: 0x4000, 0x167b: 0x4000,\n\t0x167c: 0x4000, 0x167f: 0x4000,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x4000, 0x1681: 0x4000, 0x1682: 0x4000, 0x1683: 0x4000, 0x1684: 0x4000, 0x1685: 0x4000,\n\t0x1686: 0x4000, 0x1687: 0x4000, 0x1688: 0x4000, 0x1689: 0x4000, 0x168a: 0x4000, 0x168b: 0x4000,\n\t0x168c: 0x4000, 0x168d: 0x4000, 0x168e: 0x4000, 0x168f: 0x4000, 0x1690: 0x4000, 0x1691: 0x4000,\n\t0x1692: 0x4000, 0x1693: 0x4000, 0x1694: 0x4000, 0x1695: 0x4000, 0x1696: 0x4000, 0x1697: 0x4000,\n\t0x1698: 0x4000, 0x1699: 0x4000, 0x169a: 0x4000, 0x169b: 0x4000, 0x169c: 0x4000, 0x169d: 0x4000,\n\t0x169e: 0x4000, 0x169f: 0x4000, 0x16a0: 0x4000, 0x16a1: 0x4000, 0x16a2: 0x4000, 0x16a3: 0x4000,\n\t0x16a4: 0x4000, 0x16a5: 0x4000, 0x16a6: 0x4000, 0x16a7: 0x4000, 0x16a8: 0x4000, 0x16a9: 0x4000,\n\t0x16aa: 0x4000, 0x16ab: 0x4000, 0x16ac: 0x4000, 0x16ad: 0x4000, 0x16ae: 0x4000, 0x16af: 0x4000,\n\t0x16b0: 0x4000, 0x16b1: 0x4000, 0x16b2: 0x4000, 0x16b3: 0x4000, 0x16b4: 0x4000, 0x16b5: 0x4000,\n\t0x16b6: 0x4000, 0x16b7: 0x4000, 0x16b8: 0x4000, 0x16b9: 0x4000, 0x16ba: 0x4000, 0x16bb: 0x4000,\n\t0x16bc: 0x4000, 0x16bd: 0x4000,\n\t// Block 0x5b, offset 0x16c0\n\t0x16cb: 0x4000,\n\t0x16cc: 0x4000, 0x16cd: 0x4000, 0x16ce: 0x4000, 0x16d0: 0x4000, 0x16d1: 0x4000,\n\t0x16d2: 0x4000, 0x16d3: 0x4000, 0x16d4: 0x4000, 0x16d5: 0x4000, 0x16d6: 0x4000, 0x16d7: 0x4000,\n\t0x16d8: 0x4000, 0x16d9: 0x4000, 0x16da: 0x4000, 0x16db: 0x4000, 0x16dc: 0x4000, 0x16dd: 0x4000,\n\t0x16de: 0x4000, 0x16df: 0x4000, 0x16e0: 0x4000, 0x16e1: 0x4000, 0x16e2: 0x4000, 0x16e3: 0x4000,\n\t0x16e4: 0x4000, 0x16e5: 0x4000, 0x16e6: 0x4000, 0x16e7: 0x4000,\n\t0x16fa: 0x4000,\n\t// Block 0x5c, offset 0x1700\n\t0x1715: 0x4000, 0x1716: 0x4000,\n\t0x1724: 0x4000,\n\t// Block 0x5d, offset 0x1740\n\t0x177b: 0x4000,\n\t0x177c: 0x4000, 0x177d: 0x4000, 0x177e: 0x4000, 0x177f: 0x4000,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x4000, 0x1781: 0x4000, 0x1782: 0x4000, 0x1783: 0x4000, 0x1784: 0x4000, 0x1785: 0x4000,\n\t0x1786: 0x4000, 0x1787: 0x4000, 0x1788: 0x4000, 0x1789: 0x4000, 0x178a: 0x4000, 0x178b: 0x4000,\n\t0x178c: 0x4000, 0x178d: 0x4000, 0x178e: 0x4000, 0x178f: 0x4000,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x4000, 0x17c1: 0x4000, 0x17c2: 0x4000, 0x17c3: 0x4000, 0x17c4: 0x4000, 0x17c5: 0x4000,\n\t0x17cc: 0x4000, 0x17d0: 0x4000, 0x17d1: 0x4000,\n\t0x17d2: 0x4000,\n\t0x17eb: 0x4000, 0x17ec: 0x4000,\n\t0x17f4: 0x4000, 0x17f5: 0x4000,\n\t0x17f6: 0x4000, 0x17f7: 0x4000, 0x17f8: 0x4000,\n\t// Block 0x60, offset 0x1800\n\t0x1810: 0x4000, 0x1811: 0x4000,\n\t0x1812: 0x4000, 0x1813: 0x4000, 0x1814: 0x4000, 0x1815: 0x4000, 0x1816: 0x4000, 0x1817: 0x4000,\n\t0x1818: 0x4000, 0x1819: 0x4000, 0x181a: 0x4000, 0x181b: 0x4000, 0x181c: 0x4000, 0x181d: 0x4000,\n\t0x181e: 0x4000, 0x181f: 0x4000, 0x1820: 0x4000, 0x1821: 0x4000, 0x1822: 0x4000, 0x1823: 0x4000,\n\t0x1824: 0x4000, 0x1825: 0x4000, 0x1826: 0x4000, 0x1827: 0x4000, 0x1828: 0x4000, 0x1829: 0x4000,\n\t0x182a: 0x4000, 0x182b: 0x4000, 0x182c: 0x4000, 0x182d: 0x4000, 0x182e: 0x4000, 0x182f: 0x4000,\n\t0x1830: 0x4000, 0x1831: 0x4000, 0x1832: 0x4000, 0x1833: 0x4000, 0x1834: 0x4000, 0x1835: 0x4000,\n\t0x1836: 0x4000, 0x1837: 0x4000, 0x1838: 0x4000, 0x1839: 0x4000, 0x183a: 0x4000, 0x183b: 0x4000,\n\t0x183c: 0x4000, 0x183d: 0x4000, 0x183e: 0x4000,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x4000, 0x1841: 0x4000, 0x1842: 0x4000, 0x1843: 0x4000, 0x1844: 0x4000, 0x1845: 0x4000,\n\t0x1846: 0x4000, 0x1847: 0x4000, 0x1848: 0x4000, 0x1849: 0x4000, 0x184a: 0x4000, 0x184b: 0x4000,\n\t0x184c: 0x4000, 0x1850: 0x4000, 0x1851: 0x4000,\n\t0x1852: 0x4000, 0x1853: 0x4000, 0x1854: 0x4000, 0x1855: 0x4000, 0x1856: 0x4000, 0x1857: 0x4000,\n\t0x1858: 0x4000, 0x1859: 0x4000, 0x185a: 0x4000, 0x185b: 0x4000, 0x185c: 0x4000, 0x185d: 0x4000,\n\t0x185e: 0x4000, 0x185f: 0x4000, 0x1860: 0x4000, 0x1861: 0x4000, 0x1862: 0x4000, 0x1863: 0x4000,\n\t0x1864: 0x4000, 0x1865: 0x4000, 0x1866: 0x4000, 0x1867: 0x4000, 0x1868: 0x4000, 0x1869: 0x4000,\n\t0x186a: 0x4000, 0x186b: 0x4000,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x4000, 0x1881: 0x4000, 0x1882: 0x4000, 0x1883: 0x4000, 0x1884: 0x4000, 0x1885: 0x4000,\n\t0x1886: 0x4000, 0x1887: 0x4000, 0x1888: 0x4000, 0x1889: 0x4000, 0x188a: 0x4000, 0x188b: 0x4000,\n\t0x188c: 0x4000, 0x188d: 0x4000, 0x188e: 0x4000, 0x188f: 0x4000, 0x1890: 0x4000, 0x1891: 0x4000,\n\t0x1892: 0x4000, 0x1893: 0x4000, 0x1894: 0x4000, 0x1895: 0x4000, 0x1896: 0x4000, 0x1897: 0x4000,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x4000,\n\t0x18d0: 0x4000, 0x18d1: 0x4000,\n\t0x18d2: 0x4000, 0x18d3: 0x4000, 0x18d4: 0x4000, 0x18d5: 0x4000, 0x18d6: 0x4000, 0x18d7: 0x4000,\n\t0x18d8: 0x4000, 0x18d9: 0x4000, 0x18da: 0x4000, 0x18db: 0x4000, 0x18dc: 0x4000, 0x18dd: 0x4000,\n\t0x18de: 0x4000, 0x18df: 0x4000, 0x18e0: 0x4000, 0x18e1: 0x4000, 0x18e2: 0x4000, 0x18e3: 0x4000,\n\t0x18e4: 0x4000, 0x18e5: 0x4000, 0x18e6: 0x4000,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x2000, 0x1901: 0x2000, 0x1902: 0x2000, 0x1903: 0x2000, 0x1904: 0x2000, 0x1905: 0x2000,\n\t0x1906: 0x2000, 0x1907: 0x2000, 0x1908: 0x2000, 0x1909: 0x2000, 0x190a: 0x2000, 0x190b: 0x2000,\n\t0x190c: 0x2000, 0x190d: 0x2000, 0x190e: 0x2000, 0x190f: 0x2000, 0x1910: 0x2000, 0x1911: 0x2000,\n\t0x1912: 0x2000, 0x1913: 0x2000, 0x1914: 0x2000, 0x1915: 0x2000, 0x1916: 0x2000, 0x1917: 0x2000,\n\t0x1918: 0x2000, 0x1919: 0x2000, 0x191a: 0x2000, 0x191b: 0x2000, 0x191c: 0x2000, 0x191d: 0x2000,\n\t0x191e: 0x2000, 0x191f: 0x2000, 0x1920: 0x2000, 0x1921: 0x2000, 0x1922: 0x2000, 0x1923: 0x2000,\n\t0x1924: 0x2000, 0x1925: 0x2000, 0x1926: 0x2000, 0x1927: 0x2000, 0x1928: 0x2000, 0x1929: 0x2000,\n\t0x192a: 0x2000, 0x192b: 0x2000, 0x192c: 0x2000, 0x192d: 0x2000, 0x192e: 0x2000, 0x192f: 0x2000,\n\t0x1930: 0x2000, 0x1931: 0x2000, 0x1932: 0x2000, 0x1933: 0x2000, 0x1934: 0x2000, 0x1935: 0x2000,\n\t0x1936: 0x2000, 0x1937: 0x2000, 0x1938: 0x2000, 0x1939: 0x2000, 0x193a: 0x2000, 0x193b: 0x2000,\n\t0x193c: 0x2000, 0x193d: 0x2000,\n}\n\n// widthIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar widthIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05,\n\t0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b,\n\t0xd0: 0x0c, 0xd1: 0x0d,\n\t0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06,\n\t0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a,\n\t0xf0: 0x0f, 0xf3: 0x12, 0xf4: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x104: 0x0e, 0x105: 0x0f,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16,\n\t0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, 0x14f: 0x1b,\n\t0x151: 0x1c, 0x152: 0x08, 0x153: 0x1d, 0x154: 0x1e, 0x155: 0x1f, 0x156: 0x20, 0x157: 0x21,\n\t0x158: 0x22, 0x159: 0x23, 0x15a: 0x24, 0x15b: 0x25, 0x15c: 0x26, 0x15d: 0x27, 0x15e: 0x28, 0x15f: 0x29,\n\t0x166: 0x2a,\n\t0x16c: 0x2b, 0x16d: 0x2c,\n\t0x17a: 0x2d, 0x17b: 0x2e, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2f,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x30, 0x181: 0x31, 0x182: 0x32, 0x183: 0x33, 0x184: 0x34, 0x185: 0x35, 0x186: 0x36, 0x187: 0x37,\n\t0x188: 0x38, 0x189: 0x39, 0x18a: 0x0e, 0x18b: 0x3a, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e,\n\t0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e,\n\t0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e,\n\t0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e,\n\t0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e,\n\t0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e,\n\t0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e,\n\t0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e,\n\t0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e,\n\t0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e,\n\t0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e,\n\t0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e,\n\t0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e,\n\t0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e,\n\t0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e,\n\t0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e,\n\t0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e,\n\t0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e,\n\t0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e,\n\t0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e,\n\t0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e,\n\t0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e,\n\t0x250: 0x0e, 0x251: 0x0e, 0x252: 0x3b, 0x253: 0x3c,\n\t0x265: 0x3d,\n\t0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e,\n\t0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e,\n\t0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e,\n\t0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e,\n\t0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3e,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08,\n\t0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08,\n\t0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08,\n\t0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08,\n\t0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08,\n\t0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08,\n\t0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08,\n\t0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08,\n\t0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08,\n\t0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08,\n\t0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08,\n\t0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e,\n\t0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e,\n\t0x338: 0x3f, 0x339: 0x40, 0x33c: 0x41, 0x33d: 0x42, 0x33e: 0x43, 0x33f: 0x44,\n\t// Block 0xd, offset 0x340\n\t0x37f: 0x45,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0e, 0x381: 0x0e, 0x382: 0x0e, 0x383: 0x0e, 0x384: 0x0e, 0x385: 0x0e, 0x386: 0x0e, 0x387: 0x0e,\n\t0x388: 0x0e, 0x389: 0x0e, 0x38a: 0x0e, 0x38b: 0x0e, 0x38c: 0x0e, 0x38d: 0x0e, 0x38e: 0x0e, 0x38f: 0x0e,\n\t0x390: 0x0e, 0x391: 0x0e, 0x392: 0x0e, 0x393: 0x0e, 0x394: 0x0e, 0x395: 0x0e, 0x396: 0x0e, 0x397: 0x0e,\n\t0x398: 0x0e, 0x399: 0x0e, 0x39a: 0x0e, 0x39b: 0x0e, 0x39c: 0x0e, 0x39d: 0x0e, 0x39e: 0x0e, 0x39f: 0x46,\n\t0x3a0: 0x0e, 0x3a1: 0x0e, 0x3a2: 0x0e, 0x3a3: 0x0e, 0x3a4: 0x0e, 0x3a5: 0x0e, 0x3a6: 0x0e, 0x3a7: 0x0e,\n\t0x3a8: 0x0e, 0x3a9: 0x0e, 0x3aa: 0x0e, 0x3ab: 0x47,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0e, 0x3c1: 0x0e, 0x3c2: 0x0e, 0x3c3: 0x0e, 0x3c4: 0x48, 0x3c5: 0x49, 0x3c6: 0x0e, 0x3c7: 0x0e,\n\t0x3c8: 0x0e, 0x3c9: 0x0e, 0x3ca: 0x0e, 0x3cb: 0x4a,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x4b, 0x403: 0x4c, 0x404: 0x4d, 0x405: 0x4e, 0x406: 0x4f,\n\t0x408: 0x50, 0x409: 0x51, 0x40c: 0x52, 0x40d: 0x53, 0x40e: 0x54, 0x40f: 0x55,\n\t0x410: 0x3a, 0x411: 0x56, 0x412: 0x0e, 0x413: 0x57, 0x414: 0x58, 0x415: 0x59, 0x416: 0x5a, 0x417: 0x5b,\n\t0x418: 0x0e, 0x419: 0x5c, 0x41a: 0x0e, 0x41b: 0x5d,\n\t0x424: 0x5e, 0x425: 0x5f, 0x426: 0x60, 0x427: 0x61,\n\t// Block 0x11, offset 0x440\n\t0x456: 0x0b, 0x457: 0x06,\n\t0x458: 0x0c, 0x45b: 0x0d, 0x45f: 0x0e,\n\t0x460: 0x06, 0x461: 0x06, 0x462: 0x06, 0x463: 0x06, 0x464: 0x06, 0x465: 0x06, 0x466: 0x06, 0x467: 0x06,\n\t0x468: 0x06, 0x469: 0x06, 0x46a: 0x06, 0x46b: 0x06, 0x46c: 0x06, 0x46d: 0x06, 0x46e: 0x06, 0x46f: 0x06,\n\t0x470: 0x06, 0x471: 0x06, 0x472: 0x06, 0x473: 0x06, 0x474: 0x06, 0x475: 0x06, 0x476: 0x06, 0x477: 0x06,\n\t0x478: 0x06, 0x479: 0x06, 0x47a: 0x06, 0x47b: 0x06, 0x47c: 0x06, 0x47d: 0x06, 0x47e: 0x06, 0x47f: 0x06,\n\t// Block 0x12, offset 0x480\n\t0x484: 0x08, 0x485: 0x08, 0x486: 0x08, 0x487: 0x09,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x08, 0x4c1: 0x08, 0x4c2: 0x08, 0x4c3: 0x08, 0x4c4: 0x08, 0x4c5: 0x08, 0x4c6: 0x08, 0x4c7: 0x08,\n\t0x4c8: 0x08, 0x4c9: 0x08, 0x4ca: 0x08, 0x4cb: 0x08, 0x4cc: 0x08, 0x4cd: 0x08, 0x4ce: 0x08, 0x4cf: 0x08,\n\t0x4d0: 0x08, 0x4d1: 0x08, 0x4d2: 0x08, 0x4d3: 0x08, 0x4d4: 0x08, 0x4d5: 0x08, 0x4d6: 0x08, 0x4d7: 0x08,\n\t0x4d8: 0x08, 0x4d9: 0x08, 0x4da: 0x08, 0x4db: 0x08, 0x4dc: 0x08, 0x4dd: 0x08, 0x4de: 0x08, 0x4df: 0x08,\n\t0x4e0: 0x08, 0x4e1: 0x08, 0x4e2: 0x08, 0x4e3: 0x08, 0x4e4: 0x08, 0x4e5: 0x08, 0x4e6: 0x08, 0x4e7: 0x08,\n\t0x4e8: 0x08, 0x4e9: 0x08, 0x4ea: 0x08, 0x4eb: 0x08, 0x4ec: 0x08, 0x4ed: 0x08, 0x4ee: 0x08, 0x4ef: 0x08,\n\t0x4f0: 0x08, 0x4f1: 0x08, 0x4f2: 0x08, 0x4f3: 0x08, 0x4f4: 0x08, 0x4f5: 0x08, 0x4f6: 0x08, 0x4f7: 0x08,\n\t0x4f8: 0x08, 0x4f9: 0x08, 0x4fa: 0x08, 0x4fb: 0x08, 0x4fc: 0x08, 0x4fd: 0x08, 0x4fe: 0x08, 0x4ff: 0x62,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x10,\n\t0x530: 0x09, 0x531: 0x09, 0x532: 0x09, 0x533: 0x09, 0x534: 0x09, 0x535: 0x09, 0x536: 0x09, 0x537: 0x09,\n\t0x538: 0x09, 0x539: 0x09, 0x53a: 0x09, 0x53b: 0x09, 0x53c: 0x09, 0x53d: 0x09, 0x53e: 0x09, 0x53f: 0x11,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x09, 0x541: 0x09, 0x542: 0x09, 0x543: 0x09, 0x544: 0x09, 0x545: 0x09, 0x546: 0x09, 0x547: 0x09,\n\t0x548: 0x09, 0x549: 0x09, 0x54a: 0x09, 0x54b: 0x09, 0x54c: 0x09, 0x54d: 0x09, 0x54e: 0x09, 0x54f: 0x11,\n}\n\n// inverseData contains 4-byte entries of the following format:\n//   <length> <modified UTF-8-encoded rune> <0 padding>\n// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the\n// UTF-8 encoding of the original rune. Mappings often have the following\n// pattern:\n//   Ａ -> A  (U+FF21 -> U+0041)\n//   Ｂ -> B  (U+FF22 -> U+0042)\n//   ...\n// By xor-ing the last byte the same entry can be shared by many mappings. This\n// reduces the total number of distinct entries by about two thirds.\n// The resulting entry for the aforementioned mappings is\n//   { 0x01, 0xE0, 0x00, 0x00 }\n// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get\n//   E0 ^ A1 = 41.\n// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get\n//   E0 ^ A2 = 42.\n// Note that because of the xor-ing, the byte sequence stored in the entry is\n// not valid UTF-8.\nvar inverseData = [150][4]byte{\n\t{0x00, 0x00, 0x00, 0x00},\n\t{0x03, 0xe3, 0x80, 0xa0},\n\t{0x03, 0xef, 0xbc, 0xa0},\n\t{0x03, 0xef, 0xbc, 0xe0},\n\t{0x03, 0xef, 0xbd, 0xe0},\n\t{0x03, 0xef, 0xbf, 0x02},\n\t{0x03, 0xef, 0xbf, 0x00},\n\t{0x03, 0xef, 0xbf, 0x0e},\n\t{0x03, 0xef, 0xbf, 0x0c},\n\t{0x03, 0xef, 0xbf, 0x0f},\n\t{0x03, 0xef, 0xbf, 0x39},\n\t{0x03, 0xef, 0xbf, 0x3b},\n\t{0x03, 0xef, 0xbf, 0x3f},\n\t{0x03, 0xef, 0xbf, 0x2a},\n\t{0x03, 0xef, 0xbf, 0x0d},\n\t{0x03, 0xef, 0xbf, 0x25},\n\t{0x03, 0xef, 0xbd, 0x1a},\n\t{0x03, 0xef, 0xbd, 0x26},\n\t{0x01, 0xa0, 0x00, 0x00},\n\t{0x03, 0xef, 0xbd, 0x25},\n\t{0x03, 0xef, 0xbd, 0x23},\n\t{0x03, 0xef, 0xbd, 0x2e},\n\t{0x03, 0xef, 0xbe, 0x07},\n\t{0x03, 0xef, 0xbe, 0x05},\n\t{0x03, 0xef, 0xbd, 0x06},\n\t{0x03, 0xef, 0xbd, 0x13},\n\t{0x03, 0xef, 0xbd, 0x0b},\n\t{0x03, 0xef, 0xbd, 0x16},\n\t{0x03, 0xef, 0xbd, 0x0c},\n\t{0x03, 0xef, 0xbd, 0x15},\n\t{0x03, 0xef, 0xbd, 0x0d},\n\t{0x03, 0xef, 0xbd, 0x1c},\n\t{0x03, 0xef, 0xbd, 0x02},\n\t{0x03, 0xef, 0xbd, 0x1f},\n\t{0x03, 0xef, 0xbd, 0x1d},\n\t{0x03, 0xef, 0xbd, 0x17},\n\t{0x03, 0xef, 0xbd, 0x08},\n\t{0x03, 0xef, 0xbd, 0x09},\n\t{0x03, 0xef, 0xbd, 0x0e},\n\t{0x03, 0xef, 0xbd, 0x04},\n\t{0x03, 0xef, 0xbd, 0x05},\n\t{0x03, 0xef, 0xbe, 0x3f},\n\t{0x03, 0xef, 0xbe, 0x00},\n\t{0x03, 0xef, 0xbd, 0x2c},\n\t{0x03, 0xef, 0xbe, 0x06},\n\t{0x03, 0xef, 0xbe, 0x0c},\n\t{0x03, 0xef, 0xbe, 0x0f},\n\t{0x03, 0xef, 0xbe, 0x0d},\n\t{0x03, 0xef, 0xbe, 0x0b},\n\t{0x03, 0xef, 0xbe, 0x19},\n\t{0x03, 0xef, 0xbe, 0x15},\n\t{0x03, 0xef, 0xbe, 0x11},\n\t{0x03, 0xef, 0xbe, 0x31},\n\t{0x03, 0xef, 0xbe, 0x33},\n\t{0x03, 0xef, 0xbd, 0x0f},\n\t{0x03, 0xef, 0xbe, 0x30},\n\t{0x03, 0xef, 0xbe, 0x3e},\n\t{0x03, 0xef, 0xbe, 0x32},\n\t{0x03, 0xef, 0xbe, 0x36},\n\t{0x03, 0xef, 0xbd, 0x14},\n\t{0x03, 0xef, 0xbe, 0x2e},\n\t{0x03, 0xef, 0xbd, 0x1e},\n\t{0x03, 0xef, 0xbe, 0x10},\n\t{0x03, 0xef, 0xbf, 0x13},\n\t{0x03, 0xef, 0xbf, 0x15},\n\t{0x03, 0xef, 0xbf, 0x17},\n\t{0x03, 0xef, 0xbf, 0x1f},\n\t{0x03, 0xef, 0xbf, 0x1d},\n\t{0x03, 0xef, 0xbf, 0x1b},\n\t{0x03, 0xef, 0xbf, 0x09},\n\t{0x03, 0xef, 0xbf, 0x0b},\n\t{0x03, 0xef, 0xbf, 0x37},\n\t{0x03, 0xef, 0xbe, 0x04},\n\t{0x01, 0xe0, 0x00, 0x00},\n\t{0x03, 0xe2, 0xa6, 0x1a},\n\t{0x03, 0xe2, 0xa6, 0x26},\n\t{0x03, 0xe3, 0x80, 0x23},\n\t{0x03, 0xe3, 0x80, 0x2e},\n\t{0x03, 0xe3, 0x80, 0x25},\n\t{0x03, 0xe3, 0x83, 0x1e},\n\t{0x03, 0xe3, 0x83, 0x14},\n\t{0x03, 0xe3, 0x82, 0x06},\n\t{0x03, 0xe3, 0x82, 0x0b},\n\t{0x03, 0xe3, 0x82, 0x0c},\n\t{0x03, 0xe3, 0x82, 0x0d},\n\t{0x03, 0xe3, 0x82, 0x02},\n\t{0x03, 0xe3, 0x83, 0x0f},\n\t{0x03, 0xe3, 0x83, 0x08},\n\t{0x03, 0xe3, 0x83, 0x09},\n\t{0x03, 0xe3, 0x83, 0x2c},\n\t{0x03, 0xe3, 0x83, 0x0c},\n\t{0x03, 0xe3, 0x82, 0x13},\n\t{0x03, 0xe3, 0x82, 0x16},\n\t{0x03, 0xe3, 0x82, 0x15},\n\t{0x03, 0xe3, 0x82, 0x1c},\n\t{0x03, 0xe3, 0x82, 0x1f},\n\t{0x03, 0xe3, 0x82, 0x1d},\n\t{0x03, 0xe3, 0x82, 0x1a},\n\t{0x03, 0xe3, 0x82, 0x17},\n\t{0x03, 0xe3, 0x82, 0x08},\n\t{0x03, 0xe3, 0x82, 0x09},\n\t{0x03, 0xe3, 0x82, 0x0e},\n\t{0x03, 0xe3, 0x82, 0x04},\n\t{0x03, 0xe3, 0x82, 0x05},\n\t{0x03, 0xe3, 0x82, 0x3f},\n\t{0x03, 0xe3, 0x83, 0x00},\n\t{0x03, 0xe3, 0x83, 0x06},\n\t{0x03, 0xe3, 0x83, 0x05},\n\t{0x03, 0xe3, 0x83, 0x0d},\n\t{0x03, 0xe3, 0x83, 0x0b},\n\t{0x03, 0xe3, 0x83, 0x07},\n\t{0x03, 0xe3, 0x83, 0x19},\n\t{0x03, 0xe3, 0x83, 0x15},\n\t{0x03, 0xe3, 0x83, 0x11},\n\t{0x03, 0xe3, 0x83, 0x31},\n\t{0x03, 0xe3, 0x83, 0x33},\n\t{0x03, 0xe3, 0x83, 0x30},\n\t{0x03, 0xe3, 0x83, 0x3e},\n\t{0x03, 0xe3, 0x83, 0x32},\n\t{0x03, 0xe3, 0x83, 0x36},\n\t{0x03, 0xe3, 0x83, 0x2e},\n\t{0x03, 0xe3, 0x82, 0x07},\n\t{0x03, 0xe3, 0x85, 0x04},\n\t{0x03, 0xe3, 0x84, 0x10},\n\t{0x03, 0xe3, 0x85, 0x30},\n\t{0x03, 0xe3, 0x85, 0x0d},\n\t{0x03, 0xe3, 0x85, 0x13},\n\t{0x03, 0xe3, 0x85, 0x15},\n\t{0x03, 0xe3, 0x85, 0x17},\n\t{0x03, 0xe3, 0x85, 0x1f},\n\t{0x03, 0xe3, 0x85, 0x1d},\n\t{0x03, 0xe3, 0x85, 0x1b},\n\t{0x03, 0xe3, 0x85, 0x09},\n\t{0x03, 0xe3, 0x85, 0x0f},\n\t{0x03, 0xe3, 0x85, 0x0b},\n\t{0x03, 0xe3, 0x85, 0x37},\n\t{0x03, 0xe3, 0x85, 0x3b},\n\t{0x03, 0xe3, 0x85, 0x39},\n\t{0x03, 0xe3, 0x85, 0x3f},\n\t{0x02, 0xc2, 0x02, 0x00},\n\t{0x02, 0xc2, 0x0e, 0x00},\n\t{0x02, 0xc2, 0x0c, 0x00},\n\t{0x02, 0xc2, 0x00, 0x00},\n\t{0x03, 0xe2, 0x82, 0x0f},\n\t{0x03, 0xe2, 0x94, 0x2a},\n\t{0x03, 0xe2, 0x86, 0x39},\n\t{0x03, 0xe2, 0x86, 0x3b},\n\t{0x03, 0xe2, 0x86, 0x3f},\n\t{0x03, 0xe2, 0x96, 0x0d},\n\t{0x03, 0xe2, 0x97, 0x25},\n}\n\n// Total table size 14936 bytes (14KiB)\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build go1.13\n\npackage width\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *widthTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn widthValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = widthIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *widthTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn widthValues[c0]\n\t}\n\ti := widthIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *widthTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn widthValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = widthIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *widthTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn widthValues[c0]\n\t}\n\ti := widthIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// widthTrie. Total size: 14336 bytes (14.00 KiB). Checksum: c0f7712776e71cd4.\ntype widthTrie struct{}\n\nfunc newWidthTrie(i int) *widthTrie {\n\treturn &widthTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *widthTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tdefault:\n\t\treturn uint16(widthValues[n<<6+uint32(b)])\n\t}\n}\n\n// widthValues: 101 blocks, 6464 entries, 12928 bytes\n// The third block is the zero block.\nvar widthValues = [6464]uint16{\n\t// Block 0x0, offset 0x0\n\t0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002,\n\t0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002,\n\t0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002,\n\t0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002,\n\t0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002,\n\t0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003,\n\t0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003,\n\t0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003,\n\t0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003,\n\t0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003,\n\t0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004,\n\t0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004,\n\t0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004,\n\t0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004,\n\t0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004,\n\t0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005,\n\t0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000,\n\t0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008,\n\t0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000,\n\t0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000,\n\t0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000,\n\t// Block 0x4, offset 0x100\n\t0x106: 0x2000,\n\t0x110: 0x2000,\n\t0x117: 0x2000,\n\t0x118: 0x2000,\n\t0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000,\n\t0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000,\n\t0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000,\n\t0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000,\n\t0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000,\n\t0x13c: 0x2000, 0x13e: 0x2000,\n\t// Block 0x5, offset 0x140\n\t0x141: 0x2000,\n\t0x151: 0x2000,\n\t0x153: 0x2000,\n\t0x15b: 0x2000,\n\t0x166: 0x2000, 0x167: 0x2000,\n\t0x16b: 0x2000,\n\t0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000,\n\t0x178: 0x2000,\n\t0x17f: 0x2000,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000,\n\t0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000,\n\t0x18d: 0x2000,\n\t0x192: 0x2000, 0x193: 0x2000,\n\t0x1a6: 0x2000, 0x1a7: 0x2000,\n\t0x1ab: 0x2000,\n\t// Block 0x7, offset 0x1c0\n\t0x1ce: 0x2000, 0x1d0: 0x2000,\n\t0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000,\n\t0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000,\n\t// Block 0x8, offset 0x200\n\t0x211: 0x2000,\n\t0x221: 0x2000,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x2000,\n\t0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000,\n\t0x24d: 0x2000, 0x250: 0x2000,\n\t0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000,\n\t0x25f: 0x2000,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000,\n\t0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000,\n\t0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000,\n\t0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000,\n\t0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000,\n\t0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000,\n\t0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000,\n\t0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000,\n\t0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000,\n\t0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000,\n\t0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000,\n\t0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000,\n\t0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000,\n\t0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000,\n\t0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000,\n\t0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000,\n\t0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000,\n\t0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000,\n\t// Block 0xc, offset 0x300\n\t0x311: 0x2000,\n\t0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000,\n\t0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000,\n\t0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000,\n\t0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000,\n\t0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000,\n\t0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000,\n\t0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000,\n\t0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000,\n\t// Block 0xe, offset 0x380\n\t0x381: 0x2000,\n\t0x390: 0x2000, 0x391: 0x2000,\n\t0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000,\n\t0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000,\n\t0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000,\n\t0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000,\n\t0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000,\n\t0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000,\n\t0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000,\n\t0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000,\n\t0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000,\n\t0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000,\n\t0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000,\n\t0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000,\n\t0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000,\n\t0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000,\n\t0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000,\n\t0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000,\n\t0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000,\n\t0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000,\n\t0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000,\n\t0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000,\n\t0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000,\n\t0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000,\n\t0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000,\n\t0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000,\n\t0x45e: 0x4000, 0x45f: 0x4000,\n\t// Block 0x12, offset 0x480\n\t0x490: 0x2000,\n\t0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000,\n\t0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000,\n\t0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000,\n\t0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000,\n\t0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000,\n\t0x4bb: 0x2000,\n\t0x4be: 0x2000,\n\t// Block 0x13, offset 0x4c0\n\t0x4f4: 0x2000,\n\t0x4ff: 0x2000,\n\t// Block 0x14, offset 0x500\n\t0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000,\n\t0x529: 0xa009,\n\t0x52c: 0x2000,\n\t// Block 0x15, offset 0x540\n\t0x543: 0x2000, 0x545: 0x2000,\n\t0x549: 0x2000,\n\t0x553: 0x2000, 0x556: 0x2000,\n\t0x561: 0x2000, 0x562: 0x2000,\n\t0x566: 0x2000,\n\t0x56b: 0x2000,\n\t// Block 0x16, offset 0x580\n\t0x593: 0x2000, 0x594: 0x2000,\n\t0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000,\n\t0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000,\n\t0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000,\n\t0x5aa: 0x2000, 0x5ab: 0x2000,\n\t0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000,\n\t0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000,\n\t// Block 0x17, offset 0x5c0\n\t0x5c9: 0x2000,\n\t0x5d0: 0x200a, 0x5d1: 0x200b,\n\t0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000,\n\t0x5d8: 0x2000, 0x5d9: 0x2000,\n\t0x5f8: 0x2000, 0x5f9: 0x2000,\n\t// Block 0x18, offset 0x600\n\t0x612: 0x2000, 0x614: 0x2000,\n\t0x627: 0x2000,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000,\n\t0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000,\n\t0x64f: 0x2000, 0x651: 0x2000,\n\t0x655: 0x2000,\n\t0x65a: 0x2000, 0x65d: 0x2000,\n\t0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000,\n\t0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000,\n\t0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000,\n\t0x674: 0x2000, 0x675: 0x2000,\n\t0x676: 0x2000, 0x677: 0x2000,\n\t0x67c: 0x2000, 0x67d: 0x2000,\n\t// Block 0x1a, offset 0x680\n\t0x688: 0x2000,\n\t0x68c: 0x2000,\n\t0x692: 0x2000,\n\t0x6a0: 0x2000, 0x6a1: 0x2000,\n\t0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000,\n\t0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c2: 0x2000, 0x6c3: 0x2000,\n\t0x6c6: 0x2000, 0x6c7: 0x2000,\n\t0x6d5: 0x2000,\n\t0x6d9: 0x2000,\n\t0x6e5: 0x2000,\n\t0x6ff: 0x2000,\n\t// Block 0x1c, offset 0x700\n\t0x712: 0x2000,\n\t0x71a: 0x4000, 0x71b: 0x4000,\n\t0x729: 0x4000,\n\t0x72a: 0x4000,\n\t// Block 0x1d, offset 0x740\n\t0x769: 0x4000,\n\t0x76a: 0x4000, 0x76b: 0x4000, 0x76c: 0x4000,\n\t0x770: 0x4000, 0x773: 0x4000,\n\t// Block 0x1e, offset 0x780\n\t0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000,\n\t0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000,\n\t0x7aa: 0x2000, 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000,\n\t0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000,\n\t0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000,\n\t0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x2000, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000,\n\t0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000,\n\t0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000,\n\t0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000,\n\t0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000,\n\t0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000,\n\t0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000,\n\t0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000,\n\t0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000,\n\t0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000,\n\t0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x2000, 0x801: 0x2000, 0x802: 0x200d, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000,\n\t0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000,\n\t0x80c: 0x2000, 0x80d: 0x2000, 0x80e: 0x2000, 0x80f: 0x2000, 0x810: 0x2000, 0x811: 0x2000,\n\t0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000,\n\t0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000,\n\t0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000,\n\t0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000,\n\t0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000,\n\t0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, 0x834: 0x2000, 0x835: 0x2000,\n\t0x836: 0x2000, 0x837: 0x2000, 0x838: 0x2000, 0x839: 0x2000, 0x83a: 0x2000, 0x83b: 0x2000,\n\t0x83c: 0x2000, 0x83d: 0x2000, 0x83e: 0x2000, 0x83f: 0x2000,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000,\n\t0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000,\n\t0x850: 0x2000, 0x851: 0x2000,\n\t0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, 0x856: 0x2000, 0x857: 0x2000,\n\t0x858: 0x2000, 0x859: 0x2000, 0x85a: 0x2000, 0x85b: 0x2000, 0x85c: 0x2000, 0x85d: 0x2000,\n\t0x85e: 0x2000, 0x85f: 0x2000, 0x860: 0x2000, 0x861: 0x2000, 0x862: 0x2000, 0x863: 0x2000,\n\t0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000,\n\t0x86a: 0x2000, 0x86b: 0x2000, 0x86c: 0x2000, 0x86d: 0x2000, 0x86e: 0x2000, 0x86f: 0x2000,\n\t0x870: 0x2000, 0x871: 0x2000, 0x872: 0x2000, 0x873: 0x2000,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x2000, 0x881: 0x2000, 0x882: 0x2000, 0x883: 0x2000, 0x884: 0x2000, 0x885: 0x2000,\n\t0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x889: 0x2000, 0x88a: 0x2000, 0x88b: 0x2000,\n\t0x88c: 0x2000, 0x88d: 0x2000, 0x88e: 0x2000, 0x88f: 0x2000,\n\t0x892: 0x2000, 0x893: 0x2000, 0x894: 0x2000, 0x895: 0x2000,\n\t0x8a0: 0x200e, 0x8a1: 0x2000, 0x8a3: 0x2000,\n\t0x8a4: 0x2000, 0x8a5: 0x2000, 0x8a6: 0x2000, 0x8a7: 0x2000, 0x8a8: 0x2000, 0x8a9: 0x2000,\n\t0x8b2: 0x2000, 0x8b3: 0x2000,\n\t0x8b6: 0x2000, 0x8b7: 0x2000,\n\t0x8bc: 0x2000, 0x8bd: 0x2000,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x2000, 0x8c1: 0x2000,\n\t0x8c6: 0x2000, 0x8c7: 0x2000, 0x8c8: 0x2000, 0x8cb: 0x200f,\n\t0x8ce: 0x2000, 0x8cf: 0x2000, 0x8d0: 0x2000, 0x8d1: 0x2000,\n\t0x8e2: 0x2000, 0x8e3: 0x2000,\n\t0x8e4: 0x2000, 0x8e5: 0x2000,\n\t0x8ef: 0x2000,\n\t0x8fd: 0x4000, 0x8fe: 0x4000,\n\t// Block 0x24, offset 0x900\n\t0x905: 0x2000,\n\t0x906: 0x2000, 0x909: 0x2000,\n\t0x90e: 0x2000, 0x90f: 0x2000,\n\t0x914: 0x4000, 0x915: 0x4000,\n\t0x91c: 0x2000,\n\t0x91e: 0x2000,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x2000, 0x942: 0x2000,\n\t0x948: 0x4000, 0x949: 0x4000, 0x94a: 0x4000, 0x94b: 0x4000,\n\t0x94c: 0x4000, 0x94d: 0x4000, 0x94e: 0x4000, 0x94f: 0x4000, 0x950: 0x4000, 0x951: 0x4000,\n\t0x952: 0x4000, 0x953: 0x4000,\n\t0x960: 0x2000, 0x961: 0x2000, 0x963: 0x2000,\n\t0x964: 0x2000, 0x965: 0x2000, 0x967: 0x2000, 0x968: 0x2000, 0x969: 0x2000,\n\t0x96a: 0x2000, 0x96c: 0x2000, 0x96d: 0x2000, 0x96f: 0x2000,\n\t0x97f: 0x4000,\n\t// Block 0x26, offset 0x980\n\t0x993: 0x4000,\n\t0x99e: 0x2000, 0x99f: 0x2000, 0x9a1: 0x4000,\n\t0x9aa: 0x4000, 0x9ab: 0x4000,\n\t0x9bd: 0x4000, 0x9be: 0x4000, 0x9bf: 0x2000,\n\t// Block 0x27, offset 0x9c0\n\t0x9c4: 0x4000, 0x9c5: 0x4000,\n\t0x9c6: 0x2000, 0x9c7: 0x2000, 0x9c8: 0x2000, 0x9c9: 0x2000, 0x9ca: 0x2000, 0x9cb: 0x2000,\n\t0x9cc: 0x2000, 0x9cd: 0x2000, 0x9ce: 0x4000, 0x9cf: 0x2000, 0x9d0: 0x2000, 0x9d1: 0x2000,\n\t0x9d2: 0x2000, 0x9d3: 0x2000, 0x9d4: 0x4000, 0x9d5: 0x2000, 0x9d6: 0x2000, 0x9d7: 0x2000,\n\t0x9d8: 0x2000, 0x9d9: 0x2000, 0x9da: 0x2000, 0x9db: 0x2000, 0x9dc: 0x2000, 0x9dd: 0x2000,\n\t0x9de: 0x2000, 0x9df: 0x2000, 0x9e0: 0x2000, 0x9e1: 0x2000, 0x9e3: 0x2000,\n\t0x9e8: 0x2000, 0x9e9: 0x2000,\n\t0x9ea: 0x4000, 0x9eb: 0x2000, 0x9ec: 0x2000, 0x9ed: 0x2000, 0x9ee: 0x2000, 0x9ef: 0x2000,\n\t0x9f0: 0x2000, 0x9f1: 0x2000, 0x9f2: 0x4000, 0x9f3: 0x4000, 0x9f4: 0x2000, 0x9f5: 0x4000,\n\t0x9f6: 0x2000, 0x9f7: 0x2000, 0x9f8: 0x2000, 0x9f9: 0x2000, 0x9fa: 0x4000, 0x9fb: 0x2000,\n\t0x9fc: 0x2000, 0x9fd: 0x4000, 0x9fe: 0x2000, 0x9ff: 0x2000,\n\t// Block 0x28, offset 0xa00\n\t0xa05: 0x4000,\n\t0xa0a: 0x4000, 0xa0b: 0x4000,\n\t0xa28: 0x4000,\n\t0xa3d: 0x2000,\n\t// Block 0x29, offset 0xa40\n\t0xa4c: 0x4000, 0xa4e: 0x4000,\n\t0xa53: 0x4000, 0xa54: 0x4000, 0xa55: 0x4000, 0xa57: 0x4000,\n\t0xa76: 0x2000, 0xa77: 0x2000, 0xa78: 0x2000, 0xa79: 0x2000, 0xa7a: 0x2000, 0xa7b: 0x2000,\n\t0xa7c: 0x2000, 0xa7d: 0x2000, 0xa7e: 0x2000, 0xa7f: 0x2000,\n\t// Block 0x2a, offset 0xa80\n\t0xa95: 0x4000, 0xa96: 0x4000, 0xa97: 0x4000,\n\t0xab0: 0x4000,\n\t0xabf: 0x4000,\n\t// Block 0x2b, offset 0xac0\n\t0xae6: 0x6000, 0xae7: 0x6000, 0xae8: 0x6000, 0xae9: 0x6000,\n\t0xaea: 0x6000, 0xaeb: 0x6000, 0xaec: 0x6000, 0xaed: 0x6000,\n\t// Block 0x2c, offset 0xb00\n\t0xb05: 0x6010,\n\t0xb06: 0x6011,\n\t// Block 0x2d, offset 0xb40\n\t0xb5b: 0x4000, 0xb5c: 0x4000,\n\t// Block 0x2e, offset 0xb80\n\t0xb90: 0x4000,\n\t0xb95: 0x4000, 0xb96: 0x2000, 0xb97: 0x2000,\n\t0xb98: 0x2000, 0xb99: 0x2000,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x4000, 0xbc1: 0x4000, 0xbc2: 0x4000, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000,\n\t0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000,\n\t0xbcc: 0x4000, 0xbcd: 0x4000, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000,\n\t0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000,\n\t0xbd8: 0x4000, 0xbd9: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000,\n\t0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000,\n\t0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000,\n\t0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000,\n\t0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000,\n\t0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000,\n\t0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, 0xbff: 0x4000,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x4000, 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000,\n\t0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000,\n\t0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000,\n\t0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000,\n\t0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000,\n\t0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000,\n\t0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000,\n\t0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000,\n\t0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000,\n\t0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000,\n\t0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000,\n\t0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000,\n\t0xc70: 0x4000, 0xc71: 0x4000, 0xc72: 0x4000, 0xc73: 0x4000, 0xc74: 0x4000, 0xc75: 0x4000,\n\t0xc76: 0x4000, 0xc77: 0x4000, 0xc78: 0x4000, 0xc79: 0x4000, 0xc7a: 0x4000, 0xc7b: 0x4000,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x9012, 0xc81: 0x4013, 0xc82: 0x4014, 0xc83: 0x4000, 0xc84: 0x4000, 0xc85: 0x4000,\n\t0xc86: 0x4000, 0xc87: 0x4000, 0xc88: 0x4000, 0xc89: 0x4000, 0xc8a: 0x4000, 0xc8b: 0x4000,\n\t0xc8c: 0x4015, 0xc8d: 0x4015, 0xc8e: 0x4000, 0xc8f: 0x4000, 0xc90: 0x4000, 0xc91: 0x4000,\n\t0xc92: 0x4000, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4000, 0xc96: 0x4000, 0xc97: 0x4000,\n\t0xc98: 0x4000, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4000, 0xc9c: 0x4000, 0xc9d: 0x4000,\n\t0xc9e: 0x4000, 0xc9f: 0x4000, 0xca0: 0x4000, 0xca1: 0x4000, 0xca2: 0x4000, 0xca3: 0x4000,\n\t0xca4: 0x4000, 0xca5: 0x4000, 0xca6: 0x4000, 0xca7: 0x4000, 0xca8: 0x4000, 0xca9: 0x4000,\n\t0xcaa: 0x4000, 0xcab: 0x4000, 0xcac: 0x4000, 0xcad: 0x4000, 0xcae: 0x4000, 0xcaf: 0x4000,\n\t0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x4000, 0xcb3: 0x4000, 0xcb4: 0x4000, 0xcb5: 0x4000,\n\t0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x4000,\n\t0xcbc: 0x4000, 0xcbd: 0x4000, 0xcbe: 0x4000,\n\t// Block 0x33, offset 0xcc0\n\t0xcc1: 0x4000, 0xcc2: 0x4000, 0xcc3: 0x4000, 0xcc4: 0x4000, 0xcc5: 0x4000,\n\t0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000,\n\t0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000,\n\t0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000,\n\t0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000,\n\t0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000,\n\t0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000,\n\t0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, 0xcee: 0x4000, 0xcef: 0x4000,\n\t0xcf0: 0x4000, 0xcf1: 0x4000, 0xcf2: 0x4000, 0xcf3: 0x4000, 0xcf4: 0x4000, 0xcf5: 0x4000,\n\t0xcf6: 0x4000, 0xcf7: 0x4000, 0xcf8: 0x4000, 0xcf9: 0x4000, 0xcfa: 0x4000, 0xcfb: 0x4000,\n\t0xcfc: 0x4000, 0xcfd: 0x4000, 0xcfe: 0x4000, 0xcff: 0x4000,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x4000, 0xd01: 0x4000, 0xd02: 0x4000, 0xd03: 0x4000, 0xd04: 0x4000, 0xd05: 0x4000,\n\t0xd06: 0x4000, 0xd07: 0x4000, 0xd08: 0x4000, 0xd09: 0x4000, 0xd0a: 0x4000, 0xd0b: 0x4000,\n\t0xd0c: 0x4000, 0xd0d: 0x4000, 0xd0e: 0x4000, 0xd0f: 0x4000, 0xd10: 0x4000, 0xd11: 0x4000,\n\t0xd12: 0x4000, 0xd13: 0x4000, 0xd14: 0x4000, 0xd15: 0x4000, 0xd16: 0x4000,\n\t0xd19: 0x4016, 0xd1a: 0x4017, 0xd1b: 0x4000, 0xd1c: 0x4000, 0xd1d: 0x4000,\n\t0xd1e: 0x4000, 0xd1f: 0x4000, 0xd20: 0x4000, 0xd21: 0x4018, 0xd22: 0x4019, 0xd23: 0x401a,\n\t0xd24: 0x401b, 0xd25: 0x401c, 0xd26: 0x401d, 0xd27: 0x401e, 0xd28: 0x401f, 0xd29: 0x4020,\n\t0xd2a: 0x4021, 0xd2b: 0x4022, 0xd2c: 0x4000, 0xd2d: 0x4010, 0xd2e: 0x4000, 0xd2f: 0x4023,\n\t0xd30: 0x4000, 0xd31: 0x4024, 0xd32: 0x4000, 0xd33: 0x4025, 0xd34: 0x4000, 0xd35: 0x4026,\n\t0xd36: 0x4000, 0xd37: 0x401a, 0xd38: 0x4000, 0xd39: 0x4027, 0xd3a: 0x4000, 0xd3b: 0x4028,\n\t0xd3c: 0x4000, 0xd3d: 0x4020, 0xd3e: 0x4000, 0xd3f: 0x4029,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x4000, 0xd41: 0x402a, 0xd42: 0x4000, 0xd43: 0x402b, 0xd44: 0x402c, 0xd45: 0x4000,\n\t0xd46: 0x4017, 0xd47: 0x4000, 0xd48: 0x402d, 0xd49: 0x4000, 0xd4a: 0x402e, 0xd4b: 0x402f,\n\t0xd4c: 0x4030, 0xd4d: 0x4017, 0xd4e: 0x4016, 0xd4f: 0x4017, 0xd50: 0x4000, 0xd51: 0x4000,\n\t0xd52: 0x4031, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4031, 0xd56: 0x4000, 0xd57: 0x4000,\n\t0xd58: 0x4032, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4032, 0xd5c: 0x4000, 0xd5d: 0x4000,\n\t0xd5e: 0x4033, 0xd5f: 0x402e, 0xd60: 0x4034, 0xd61: 0x4035, 0xd62: 0x4034, 0xd63: 0x4036,\n\t0xd64: 0x4037, 0xd65: 0x4024, 0xd66: 0x4035, 0xd67: 0x4025, 0xd68: 0x4038, 0xd69: 0x4038,\n\t0xd6a: 0x4039, 0xd6b: 0x4039, 0xd6c: 0x403a, 0xd6d: 0x403a, 0xd6e: 0x4000, 0xd6f: 0x4035,\n\t0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x403b, 0xd73: 0x403c, 0xd74: 0x4000, 0xd75: 0x4000,\n\t0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, 0xd7b: 0x403d,\n\t0xd7c: 0x401c, 0xd7d: 0x4000, 0xd7e: 0x4000, 0xd7f: 0x4000,\n\t// Block 0x36, offset 0xd80\n\t0xd85: 0x4000,\n\t0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000,\n\t0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000,\n\t0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000,\n\t0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000,\n\t0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000,\n\t0xda4: 0x4000, 0xda5: 0x4000, 0xda6: 0x4000, 0xda7: 0x4000, 0xda8: 0x4000, 0xda9: 0x4000,\n\t0xdaa: 0x4000, 0xdab: 0x4000, 0xdac: 0x4000, 0xdad: 0x4000, 0xdae: 0x4000, 0xdaf: 0x4000,\n\t0xdb1: 0x403e, 0xdb2: 0x403e, 0xdb3: 0x403e, 0xdb4: 0x403e, 0xdb5: 0x403e,\n\t0xdb6: 0x403e, 0xdb7: 0x403e, 0xdb8: 0x403e, 0xdb9: 0x403e, 0xdba: 0x403e, 0xdbb: 0x403e,\n\t0xdbc: 0x403e, 0xdbd: 0x403e, 0xdbe: 0x403e, 0xdbf: 0x403e,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x4037, 0xdc1: 0x4037, 0xdc2: 0x4037, 0xdc3: 0x4037, 0xdc4: 0x4037, 0xdc5: 0x4037,\n\t0xdc6: 0x4037, 0xdc7: 0x4037, 0xdc8: 0x4037, 0xdc9: 0x4037, 0xdca: 0x4037, 0xdcb: 0x4037,\n\t0xdcc: 0x4037, 0xdcd: 0x4037, 0xdce: 0x4037, 0xdcf: 0x400e, 0xdd0: 0x403f, 0xdd1: 0x4040,\n\t0xdd2: 0x4041, 0xdd3: 0x4040, 0xdd4: 0x403f, 0xdd5: 0x4042, 0xdd6: 0x4043, 0xdd7: 0x4044,\n\t0xdd8: 0x4040, 0xdd9: 0x4041, 0xdda: 0x4040, 0xddb: 0x4045, 0xddc: 0x4009, 0xddd: 0x4045,\n\t0xdde: 0x4046, 0xddf: 0x4045, 0xde0: 0x4047, 0xde1: 0x400b, 0xde2: 0x400a, 0xde3: 0x400c,\n\t0xde4: 0x4048, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000,\n\t0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000,\n\t0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000,\n\t0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000,\n\t0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000,\n\t0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x4000, 0xe09: 0x4000, 0xe0a: 0x4000, 0xe0b: 0x4000,\n\t0xe0c: 0x4000, 0xe0d: 0x4000, 0xe0e: 0x4000, 0xe10: 0x4000, 0xe11: 0x4000,\n\t0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000,\n\t0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000,\n\t0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000,\n\t0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000,\n\t0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000,\n\t0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000,\n\t0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000,\n\t0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000,\n\t0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000,\n\t0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000,\n\t0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000,\n\t0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000,\n\t0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000,\n\t0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000,\n\t0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, 0xe7f: 0x4000,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000,\n\t0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000,\n\t0xe8c: 0x4000, 0xe8d: 0x4000, 0xe8e: 0x4000, 0xe8f: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000,\n\t0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000,\n\t0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000,\n\t0xe9e: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000,\n\t0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000,\n\t0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000,\n\t0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000,\n\t0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000,\n\t0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000,\n\t0xec6: 0x4000, 0xec7: 0x4000, 0xec8: 0x2000, 0xec9: 0x2000, 0xeca: 0x2000, 0xecb: 0x2000,\n\t0xecc: 0x2000, 0xecd: 0x2000, 0xece: 0x2000, 0xecf: 0x2000, 0xed0: 0x4000, 0xed1: 0x4000,\n\t0xed2: 0x4000, 0xed3: 0x4000, 0xed4: 0x4000, 0xed5: 0x4000, 0xed6: 0x4000, 0xed7: 0x4000,\n\t0xed8: 0x4000, 0xed9: 0x4000, 0xeda: 0x4000, 0xedb: 0x4000, 0xedc: 0x4000, 0xedd: 0x4000,\n\t0xede: 0x4000, 0xedf: 0x4000, 0xee0: 0x4000, 0xee1: 0x4000, 0xee2: 0x4000, 0xee3: 0x4000,\n\t0xee4: 0x4000, 0xee5: 0x4000, 0xee6: 0x4000, 0xee7: 0x4000, 0xee8: 0x4000, 0xee9: 0x4000,\n\t0xeea: 0x4000, 0xeeb: 0x4000, 0xeec: 0x4000, 0xeed: 0x4000, 0xeee: 0x4000, 0xeef: 0x4000,\n\t0xef0: 0x4000, 0xef1: 0x4000, 0xef2: 0x4000, 0xef3: 0x4000, 0xef4: 0x4000, 0xef5: 0x4000,\n\t0xef6: 0x4000, 0xef7: 0x4000, 0xef8: 0x4000, 0xef9: 0x4000, 0xefa: 0x4000, 0xefb: 0x4000,\n\t0xefc: 0x4000, 0xefd: 0x4000, 0xefe: 0x4000, 0xeff: 0x4000,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x4000, 0xf01: 0x4000, 0xf02: 0x4000, 0xf03: 0x4000, 0xf04: 0x4000, 0xf05: 0x4000,\n\t0xf06: 0x4000, 0xf07: 0x4000, 0xf08: 0x4000, 0xf09: 0x4000, 0xf0a: 0x4000, 0xf0b: 0x4000,\n\t0xf0c: 0x4000, 0xf0d: 0x4000, 0xf0e: 0x4000, 0xf0f: 0x4000, 0xf10: 0x4000, 0xf11: 0x4000,\n\t0xf12: 0x4000, 0xf13: 0x4000, 0xf14: 0x4000, 0xf15: 0x4000, 0xf16: 0x4000, 0xf17: 0x4000,\n\t0xf18: 0x4000, 0xf19: 0x4000, 0xf1a: 0x4000, 0xf1b: 0x4000, 0xf1c: 0x4000, 0xf1d: 0x4000,\n\t0xf1e: 0x4000, 0xf1f: 0x4000, 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000,\n\t0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000,\n\t0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000,\n\t0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000,\n\t0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000,\n\t0xf3c: 0x4000, 0xf3d: 0x4000, 0xf3e: 0x4000,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000,\n\t0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000,\n\t0xf4c: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000,\n\t0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000,\n\t0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000,\n\t0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000,\n\t0xf64: 0x4000, 0xf65: 0x4000, 0xf66: 0x4000, 0xf67: 0x4000, 0xf68: 0x4000, 0xf69: 0x4000,\n\t0xf6a: 0x4000, 0xf6b: 0x4000, 0xf6c: 0x4000, 0xf6d: 0x4000, 0xf6e: 0x4000, 0xf6f: 0x4000,\n\t0xf70: 0x4000, 0xf71: 0x4000, 0xf72: 0x4000, 0xf73: 0x4000, 0xf74: 0x4000, 0xf75: 0x4000,\n\t0xf76: 0x4000, 0xf77: 0x4000, 0xf78: 0x4000, 0xf79: 0x4000, 0xf7a: 0x4000, 0xf7b: 0x4000,\n\t0xf7c: 0x4000, 0xf7d: 0x4000, 0xf7e: 0x4000, 0xf7f: 0x4000,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x4000, 0xf81: 0x4000, 0xf82: 0x4000, 0xf83: 0x4000, 0xf84: 0x4000, 0xf85: 0x4000,\n\t0xf86: 0x4000,\n\t// Block 0x3f, offset 0xfc0\n\t0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000,\n\t0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe7: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000,\n\t0xfea: 0x4000, 0xfeb: 0x4000, 0xfec: 0x4000, 0xfed: 0x4000, 0xfee: 0x4000, 0xfef: 0x4000,\n\t0xff0: 0x4000, 0xff1: 0x4000, 0xff2: 0x4000, 0xff3: 0x4000, 0xff4: 0x4000, 0xff5: 0x4000,\n\t0xff6: 0x4000, 0xff7: 0x4000, 0xff8: 0x4000, 0xff9: 0x4000, 0xffa: 0x4000, 0xffb: 0x4000,\n\t0xffc: 0x4000,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x4000, 0x1001: 0x4000, 0x1002: 0x4000, 0x1003: 0x4000, 0x1004: 0x4000, 0x1005: 0x4000,\n\t0x1006: 0x4000, 0x1007: 0x4000, 0x1008: 0x4000, 0x1009: 0x4000, 0x100a: 0x4000, 0x100b: 0x4000,\n\t0x100c: 0x4000, 0x100d: 0x4000, 0x100e: 0x4000, 0x100f: 0x4000, 0x1010: 0x4000, 0x1011: 0x4000,\n\t0x1012: 0x4000, 0x1013: 0x4000, 0x1014: 0x4000, 0x1015: 0x4000, 0x1016: 0x4000, 0x1017: 0x4000,\n\t0x1018: 0x4000, 0x1019: 0x4000, 0x101a: 0x4000, 0x101b: 0x4000, 0x101c: 0x4000, 0x101d: 0x4000,\n\t0x101e: 0x4000, 0x101f: 0x4000, 0x1020: 0x4000, 0x1021: 0x4000, 0x1022: 0x4000, 0x1023: 0x4000,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x2000, 0x1041: 0x2000, 0x1042: 0x2000, 0x1043: 0x2000, 0x1044: 0x2000, 0x1045: 0x2000,\n\t0x1046: 0x2000, 0x1047: 0x2000, 0x1048: 0x2000, 0x1049: 0x2000, 0x104a: 0x2000, 0x104b: 0x2000,\n\t0x104c: 0x2000, 0x104d: 0x2000, 0x104e: 0x2000, 0x104f: 0x2000, 0x1050: 0x4000, 0x1051: 0x4000,\n\t0x1052: 0x4000, 0x1053: 0x4000, 0x1054: 0x4000, 0x1055: 0x4000, 0x1056: 0x4000, 0x1057: 0x4000,\n\t0x1058: 0x4000, 0x1059: 0x4000,\n\t0x1070: 0x4000, 0x1071: 0x4000, 0x1072: 0x4000, 0x1073: 0x4000, 0x1074: 0x4000, 0x1075: 0x4000,\n\t0x1076: 0x4000, 0x1077: 0x4000, 0x1078: 0x4000, 0x1079: 0x4000, 0x107a: 0x4000, 0x107b: 0x4000,\n\t0x107c: 0x4000, 0x107d: 0x4000, 0x107e: 0x4000, 0x107f: 0x4000,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x4000, 0x1081: 0x4000, 0x1082: 0x4000, 0x1083: 0x4000, 0x1084: 0x4000, 0x1085: 0x4000,\n\t0x1086: 0x4000, 0x1087: 0x4000, 0x1088: 0x4000, 0x1089: 0x4000, 0x108a: 0x4000, 0x108b: 0x4000,\n\t0x108c: 0x4000, 0x108d: 0x4000, 0x108e: 0x4000, 0x108f: 0x4000, 0x1090: 0x4000, 0x1091: 0x4000,\n\t0x1092: 0x4000, 0x1094: 0x4000, 0x1095: 0x4000, 0x1096: 0x4000, 0x1097: 0x4000,\n\t0x1098: 0x4000, 0x1099: 0x4000, 0x109a: 0x4000, 0x109b: 0x4000, 0x109c: 0x4000, 0x109d: 0x4000,\n\t0x109e: 0x4000, 0x109f: 0x4000, 0x10a0: 0x4000, 0x10a1: 0x4000, 0x10a2: 0x4000, 0x10a3: 0x4000,\n\t0x10a4: 0x4000, 0x10a5: 0x4000, 0x10a6: 0x4000, 0x10a8: 0x4000, 0x10a9: 0x4000,\n\t0x10aa: 0x4000, 0x10ab: 0x4000,\n\t// Block 0x43, offset 0x10c0\n\t0x10c1: 0x9012, 0x10c2: 0x9012, 0x10c3: 0x9012, 0x10c4: 0x9012, 0x10c5: 0x9012,\n\t0x10c6: 0x9012, 0x10c7: 0x9012, 0x10c8: 0x9012, 0x10c9: 0x9012, 0x10ca: 0x9012, 0x10cb: 0x9012,\n\t0x10cc: 0x9012, 0x10cd: 0x9012, 0x10ce: 0x9012, 0x10cf: 0x9012, 0x10d0: 0x9012, 0x10d1: 0x9012,\n\t0x10d2: 0x9012, 0x10d3: 0x9012, 0x10d4: 0x9012, 0x10d5: 0x9012, 0x10d6: 0x9012, 0x10d7: 0x9012,\n\t0x10d8: 0x9012, 0x10d9: 0x9012, 0x10da: 0x9012, 0x10db: 0x9012, 0x10dc: 0x9012, 0x10dd: 0x9012,\n\t0x10de: 0x9012, 0x10df: 0x9012, 0x10e0: 0x9049, 0x10e1: 0x9049, 0x10e2: 0x9049, 0x10e3: 0x9049,\n\t0x10e4: 0x9049, 0x10e5: 0x9049, 0x10e6: 0x9049, 0x10e7: 0x9049, 0x10e8: 0x9049, 0x10e9: 0x9049,\n\t0x10ea: 0x9049, 0x10eb: 0x9049, 0x10ec: 0x9049, 0x10ed: 0x9049, 0x10ee: 0x9049, 0x10ef: 0x9049,\n\t0x10f0: 0x9049, 0x10f1: 0x9049, 0x10f2: 0x9049, 0x10f3: 0x9049, 0x10f4: 0x9049, 0x10f5: 0x9049,\n\t0x10f6: 0x9049, 0x10f7: 0x9049, 0x10f8: 0x9049, 0x10f9: 0x9049, 0x10fa: 0x9049, 0x10fb: 0x9049,\n\t0x10fc: 0x9049, 0x10fd: 0x9049, 0x10fe: 0x9049, 0x10ff: 0x9049,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x9049, 0x1101: 0x9049, 0x1102: 0x9049, 0x1103: 0x9049, 0x1104: 0x9049, 0x1105: 0x9049,\n\t0x1106: 0x9049, 0x1107: 0x9049, 0x1108: 0x9049, 0x1109: 0x9049, 0x110a: 0x9049, 0x110b: 0x9049,\n\t0x110c: 0x9049, 0x110d: 0x9049, 0x110e: 0x9049, 0x110f: 0x9049, 0x1110: 0x9049, 0x1111: 0x9049,\n\t0x1112: 0x9049, 0x1113: 0x9049, 0x1114: 0x9049, 0x1115: 0x9049, 0x1116: 0x9049, 0x1117: 0x9049,\n\t0x1118: 0x9049, 0x1119: 0x9049, 0x111a: 0x9049, 0x111b: 0x9049, 0x111c: 0x9049, 0x111d: 0x9049,\n\t0x111e: 0x9049, 0x111f: 0x904a, 0x1120: 0x904b, 0x1121: 0xb04c, 0x1122: 0xb04d, 0x1123: 0xb04d,\n\t0x1124: 0xb04e, 0x1125: 0xb04f, 0x1126: 0xb050, 0x1127: 0xb051, 0x1128: 0xb052, 0x1129: 0xb053,\n\t0x112a: 0xb054, 0x112b: 0xb055, 0x112c: 0xb056, 0x112d: 0xb057, 0x112e: 0xb058, 0x112f: 0xb059,\n\t0x1130: 0xb05a, 0x1131: 0xb05b, 0x1132: 0xb05c, 0x1133: 0xb05d, 0x1134: 0xb05e, 0x1135: 0xb05f,\n\t0x1136: 0xb060, 0x1137: 0xb061, 0x1138: 0xb062, 0x1139: 0xb063, 0x113a: 0xb064, 0x113b: 0xb065,\n\t0x113c: 0xb052, 0x113d: 0xb066, 0x113e: 0xb067, 0x113f: 0xb055,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xb068, 0x1141: 0xb069, 0x1142: 0xb06a, 0x1143: 0xb06b, 0x1144: 0xb05a, 0x1145: 0xb056,\n\t0x1146: 0xb06c, 0x1147: 0xb06d, 0x1148: 0xb06b, 0x1149: 0xb06e, 0x114a: 0xb06b, 0x114b: 0xb06f,\n\t0x114c: 0xb06f, 0x114d: 0xb070, 0x114e: 0xb070, 0x114f: 0xb071, 0x1150: 0xb056, 0x1151: 0xb072,\n\t0x1152: 0xb073, 0x1153: 0xb072, 0x1154: 0xb074, 0x1155: 0xb073, 0x1156: 0xb075, 0x1157: 0xb075,\n\t0x1158: 0xb076, 0x1159: 0xb076, 0x115a: 0xb077, 0x115b: 0xb077, 0x115c: 0xb073, 0x115d: 0xb078,\n\t0x115e: 0xb079, 0x115f: 0xb067, 0x1160: 0xb07a, 0x1161: 0xb07b, 0x1162: 0xb07b, 0x1163: 0xb07b,\n\t0x1164: 0xb07b, 0x1165: 0xb07b, 0x1166: 0xb07b, 0x1167: 0xb07b, 0x1168: 0xb07b, 0x1169: 0xb07b,\n\t0x116a: 0xb07b, 0x116b: 0xb07b, 0x116c: 0xb07b, 0x116d: 0xb07b, 0x116e: 0xb07b, 0x116f: 0xb07b,\n\t0x1170: 0xb07c, 0x1171: 0xb07c, 0x1172: 0xb07c, 0x1173: 0xb07c, 0x1174: 0xb07c, 0x1175: 0xb07c,\n\t0x1176: 0xb07c, 0x1177: 0xb07c, 0x1178: 0xb07c, 0x1179: 0xb07c, 0x117a: 0xb07c, 0x117b: 0xb07c,\n\t0x117c: 0xb07c, 0x117d: 0xb07c, 0x117e: 0xb07c,\n\t// Block 0x46, offset 0x1180\n\t0x1182: 0xb07d, 0x1183: 0xb07e, 0x1184: 0xb07f, 0x1185: 0xb080,\n\t0x1186: 0xb07f, 0x1187: 0xb07e, 0x118a: 0xb081, 0x118b: 0xb082,\n\t0x118c: 0xb083, 0x118d: 0xb07f, 0x118e: 0xb080, 0x118f: 0xb07f,\n\t0x1192: 0xb084, 0x1193: 0xb085, 0x1194: 0xb084, 0x1195: 0xb086, 0x1196: 0xb084, 0x1197: 0xb087,\n\t0x119a: 0xb088, 0x119b: 0xb089, 0x119c: 0xb08a,\n\t0x11a0: 0x908b, 0x11a1: 0x908b, 0x11a2: 0x908c, 0x11a3: 0x908d,\n\t0x11a4: 0x908b, 0x11a5: 0x908e, 0x11a6: 0x908f, 0x11a8: 0xb090, 0x11a9: 0xb091,\n\t0x11aa: 0xb092, 0x11ab: 0xb091, 0x11ac: 0xb093, 0x11ad: 0xb094, 0x11ae: 0xb095,\n\t0x11bd: 0x2000,\n\t// Block 0x47, offset 0x11c0\n\t0x11e0: 0x4000, 0x11e1: 0x4000,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, 0x1203: 0x4000, 0x1204: 0x4000, 0x1205: 0x4000,\n\t0x1206: 0x4000, 0x1207: 0x4000, 0x1208: 0x4000, 0x1209: 0x4000, 0x120a: 0x4000, 0x120b: 0x4000,\n\t0x120c: 0x4000, 0x120d: 0x4000, 0x120e: 0x4000, 0x120f: 0x4000, 0x1210: 0x4000, 0x1211: 0x4000,\n\t0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000,\n\t0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000,\n\t0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000,\n\t0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000,\n\t0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000, 0x122d: 0x4000, 0x122e: 0x4000, 0x122f: 0x4000,\n\t0x1230: 0x4000, 0x1231: 0x4000,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000,\n\t0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, 0x1249: 0x4000, 0x124a: 0x4000, 0x124b: 0x4000,\n\t0x124c: 0x4000, 0x124d: 0x4000, 0x124e: 0x4000, 0x124f: 0x4000, 0x1250: 0x4000, 0x1251: 0x4000,\n\t0x1252: 0x4000, 0x1253: 0x4000, 0x1254: 0x4000, 0x1255: 0x4000, 0x1256: 0x4000, 0x1257: 0x4000,\n\t0x1258: 0x4000, 0x1259: 0x4000, 0x125a: 0x4000, 0x125b: 0x4000, 0x125c: 0x4000, 0x125d: 0x4000,\n\t0x125e: 0x4000, 0x125f: 0x4000, 0x1260: 0x4000, 0x1261: 0x4000, 0x1262: 0x4000, 0x1263: 0x4000,\n\t0x1264: 0x4000, 0x1265: 0x4000, 0x1266: 0x4000, 0x1267: 0x4000, 0x1268: 0x4000, 0x1269: 0x4000,\n\t0x126a: 0x4000, 0x126b: 0x4000, 0x126c: 0x4000, 0x126d: 0x4000, 0x126e: 0x4000, 0x126f: 0x4000,\n\t0x1270: 0x4000, 0x1271: 0x4000, 0x1272: 0x4000,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x4000, 0x1281: 0x4000, 0x1282: 0x4000, 0x1283: 0x4000, 0x1284: 0x4000, 0x1285: 0x4000,\n\t0x1286: 0x4000, 0x1287: 0x4000, 0x1288: 0x4000, 0x1289: 0x4000, 0x128a: 0x4000, 0x128b: 0x4000,\n\t0x128c: 0x4000, 0x128d: 0x4000, 0x128e: 0x4000, 0x128f: 0x4000, 0x1290: 0x4000, 0x1291: 0x4000,\n\t0x1292: 0x4000, 0x1293: 0x4000, 0x1294: 0x4000, 0x1295: 0x4000, 0x1296: 0x4000, 0x1297: 0x4000,\n\t0x1298: 0x4000, 0x1299: 0x4000, 0x129a: 0x4000, 0x129b: 0x4000, 0x129c: 0x4000, 0x129d: 0x4000,\n\t0x129e: 0x4000,\n\t// Block 0x4b, offset 0x12c0\n\t0x12f0: 0x4000, 0x12f1: 0x4000, 0x12f2: 0x4000, 0x12f3: 0x4000, 0x12f4: 0x4000, 0x12f5: 0x4000,\n\t0x12f6: 0x4000, 0x12f7: 0x4000, 0x12f8: 0x4000, 0x12f9: 0x4000, 0x12fa: 0x4000, 0x12fb: 0x4000,\n\t0x12fc: 0x4000, 0x12fd: 0x4000, 0x12fe: 0x4000, 0x12ff: 0x4000,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x4000, 0x1301: 0x4000, 0x1302: 0x4000, 0x1303: 0x4000, 0x1304: 0x4000, 0x1305: 0x4000,\n\t0x1306: 0x4000, 0x1307: 0x4000, 0x1308: 0x4000, 0x1309: 0x4000, 0x130a: 0x4000, 0x130b: 0x4000,\n\t0x130c: 0x4000, 0x130d: 0x4000, 0x130e: 0x4000, 0x130f: 0x4000, 0x1310: 0x4000, 0x1311: 0x4000,\n\t0x1312: 0x4000, 0x1313: 0x4000, 0x1314: 0x4000, 0x1315: 0x4000, 0x1316: 0x4000, 0x1317: 0x4000,\n\t0x1318: 0x4000, 0x1319: 0x4000, 0x131a: 0x4000, 0x131b: 0x4000, 0x131c: 0x4000, 0x131d: 0x4000,\n\t0x131e: 0x4000, 0x131f: 0x4000, 0x1320: 0x4000, 0x1321: 0x4000, 0x1322: 0x4000, 0x1323: 0x4000,\n\t0x1324: 0x4000, 0x1325: 0x4000, 0x1326: 0x4000, 0x1327: 0x4000, 0x1328: 0x4000, 0x1329: 0x4000,\n\t0x132a: 0x4000, 0x132b: 0x4000, 0x132c: 0x4000, 0x132d: 0x4000, 0x132e: 0x4000, 0x132f: 0x4000,\n\t0x1330: 0x4000, 0x1331: 0x4000, 0x1332: 0x4000, 0x1333: 0x4000, 0x1334: 0x4000, 0x1335: 0x4000,\n\t0x1336: 0x4000, 0x1337: 0x4000, 0x1338: 0x4000, 0x1339: 0x4000, 0x133a: 0x4000, 0x133b: 0x4000,\n\t// Block 0x4d, offset 0x1340\n\t0x1344: 0x4000,\n\t// Block 0x4e, offset 0x1380\n\t0x138f: 0x4000,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x2000, 0x13c1: 0x2000, 0x13c2: 0x2000, 0x13c3: 0x2000, 0x13c4: 0x2000, 0x13c5: 0x2000,\n\t0x13c6: 0x2000, 0x13c7: 0x2000, 0x13c8: 0x2000, 0x13c9: 0x2000, 0x13ca: 0x2000,\n\t0x13d0: 0x2000, 0x13d1: 0x2000,\n\t0x13d2: 0x2000, 0x13d3: 0x2000, 0x13d4: 0x2000, 0x13d5: 0x2000, 0x13d6: 0x2000, 0x13d7: 0x2000,\n\t0x13d8: 0x2000, 0x13d9: 0x2000, 0x13da: 0x2000, 0x13db: 0x2000, 0x13dc: 0x2000, 0x13dd: 0x2000,\n\t0x13de: 0x2000, 0x13df: 0x2000, 0x13e0: 0x2000, 0x13e1: 0x2000, 0x13e2: 0x2000, 0x13e3: 0x2000,\n\t0x13e4: 0x2000, 0x13e5: 0x2000, 0x13e6: 0x2000, 0x13e7: 0x2000, 0x13e8: 0x2000, 0x13e9: 0x2000,\n\t0x13ea: 0x2000, 0x13eb: 0x2000, 0x13ec: 0x2000, 0x13ed: 0x2000,\n\t0x13f0: 0x2000, 0x13f1: 0x2000, 0x13f2: 0x2000, 0x13f3: 0x2000, 0x13f4: 0x2000, 0x13f5: 0x2000,\n\t0x13f6: 0x2000, 0x13f7: 0x2000, 0x13f8: 0x2000, 0x13f9: 0x2000, 0x13fa: 0x2000, 0x13fb: 0x2000,\n\t0x13fc: 0x2000, 0x13fd: 0x2000, 0x13fe: 0x2000, 0x13ff: 0x2000,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x2000, 0x1401: 0x2000, 0x1402: 0x2000, 0x1403: 0x2000, 0x1404: 0x2000, 0x1405: 0x2000,\n\t0x1406: 0x2000, 0x1407: 0x2000, 0x1408: 0x2000, 0x1409: 0x2000, 0x140a: 0x2000, 0x140b: 0x2000,\n\t0x140c: 0x2000, 0x140d: 0x2000, 0x140e: 0x2000, 0x140f: 0x2000, 0x1410: 0x2000, 0x1411: 0x2000,\n\t0x1412: 0x2000, 0x1413: 0x2000, 0x1414: 0x2000, 0x1415: 0x2000, 0x1416: 0x2000, 0x1417: 0x2000,\n\t0x1418: 0x2000, 0x1419: 0x2000, 0x141a: 0x2000, 0x141b: 0x2000, 0x141c: 0x2000, 0x141d: 0x2000,\n\t0x141e: 0x2000, 0x141f: 0x2000, 0x1420: 0x2000, 0x1421: 0x2000, 0x1422: 0x2000, 0x1423: 0x2000,\n\t0x1424: 0x2000, 0x1425: 0x2000, 0x1426: 0x2000, 0x1427: 0x2000, 0x1428: 0x2000, 0x1429: 0x2000,\n\t0x1430: 0x2000, 0x1431: 0x2000, 0x1432: 0x2000, 0x1433: 0x2000, 0x1434: 0x2000, 0x1435: 0x2000,\n\t0x1436: 0x2000, 0x1437: 0x2000, 0x1438: 0x2000, 0x1439: 0x2000, 0x143a: 0x2000, 0x143b: 0x2000,\n\t0x143c: 0x2000, 0x143d: 0x2000, 0x143e: 0x2000, 0x143f: 0x2000,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x2000, 0x1441: 0x2000, 0x1442: 0x2000, 0x1443: 0x2000, 0x1444: 0x2000, 0x1445: 0x2000,\n\t0x1446: 0x2000, 0x1447: 0x2000, 0x1448: 0x2000, 0x1449: 0x2000, 0x144a: 0x2000, 0x144b: 0x2000,\n\t0x144c: 0x2000, 0x144d: 0x2000, 0x144e: 0x4000, 0x144f: 0x2000, 0x1450: 0x2000, 0x1451: 0x4000,\n\t0x1452: 0x4000, 0x1453: 0x4000, 0x1454: 0x4000, 0x1455: 0x4000, 0x1456: 0x4000, 0x1457: 0x4000,\n\t0x1458: 0x4000, 0x1459: 0x4000, 0x145a: 0x4000, 0x145b: 0x2000, 0x145c: 0x2000, 0x145d: 0x2000,\n\t0x145e: 0x2000, 0x145f: 0x2000, 0x1460: 0x2000, 0x1461: 0x2000, 0x1462: 0x2000, 0x1463: 0x2000,\n\t0x1464: 0x2000, 0x1465: 0x2000, 0x1466: 0x2000, 0x1467: 0x2000, 0x1468: 0x2000, 0x1469: 0x2000,\n\t0x146a: 0x2000, 0x146b: 0x2000, 0x146c: 0x2000,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x4000, 0x1481: 0x4000, 0x1482: 0x4000,\n\t0x1490: 0x4000, 0x1491: 0x4000,\n\t0x1492: 0x4000, 0x1493: 0x4000, 0x1494: 0x4000, 0x1495: 0x4000, 0x1496: 0x4000, 0x1497: 0x4000,\n\t0x1498: 0x4000, 0x1499: 0x4000, 0x149a: 0x4000, 0x149b: 0x4000, 0x149c: 0x4000, 0x149d: 0x4000,\n\t0x149e: 0x4000, 0x149f: 0x4000, 0x14a0: 0x4000, 0x14a1: 0x4000, 0x14a2: 0x4000, 0x14a3: 0x4000,\n\t0x14a4: 0x4000, 0x14a5: 0x4000, 0x14a6: 0x4000, 0x14a7: 0x4000, 0x14a8: 0x4000, 0x14a9: 0x4000,\n\t0x14aa: 0x4000, 0x14ab: 0x4000, 0x14ac: 0x4000, 0x14ad: 0x4000, 0x14ae: 0x4000, 0x14af: 0x4000,\n\t0x14b0: 0x4000, 0x14b1: 0x4000, 0x14b2: 0x4000, 0x14b3: 0x4000, 0x14b4: 0x4000, 0x14b5: 0x4000,\n\t0x14b6: 0x4000, 0x14b7: 0x4000, 0x14b8: 0x4000, 0x14b9: 0x4000, 0x14ba: 0x4000, 0x14bb: 0x4000,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x4000, 0x14c1: 0x4000, 0x14c2: 0x4000, 0x14c3: 0x4000, 0x14c4: 0x4000, 0x14c5: 0x4000,\n\t0x14c6: 0x4000, 0x14c7: 0x4000, 0x14c8: 0x4000,\n\t0x14d0: 0x4000, 0x14d1: 0x4000,\n\t0x14e0: 0x4000, 0x14e1: 0x4000, 0x14e2: 0x4000, 0x14e3: 0x4000,\n\t0x14e4: 0x4000, 0x14e5: 0x4000,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x4000, 0x1501: 0x4000, 0x1502: 0x4000, 0x1503: 0x4000, 0x1504: 0x4000, 0x1505: 0x4000,\n\t0x1506: 0x4000, 0x1507: 0x4000, 0x1508: 0x4000, 0x1509: 0x4000, 0x150a: 0x4000, 0x150b: 0x4000,\n\t0x150c: 0x4000, 0x150d: 0x4000, 0x150e: 0x4000, 0x150f: 0x4000, 0x1510: 0x4000, 0x1511: 0x4000,\n\t0x1512: 0x4000, 0x1513: 0x4000, 0x1514: 0x4000, 0x1515: 0x4000, 0x1516: 0x4000, 0x1517: 0x4000,\n\t0x1518: 0x4000, 0x1519: 0x4000, 0x151a: 0x4000, 0x151b: 0x4000, 0x151c: 0x4000, 0x151d: 0x4000,\n\t0x151e: 0x4000, 0x151f: 0x4000, 0x1520: 0x4000,\n\t0x152d: 0x4000, 0x152e: 0x4000, 0x152f: 0x4000,\n\t0x1530: 0x4000, 0x1531: 0x4000, 0x1532: 0x4000, 0x1533: 0x4000, 0x1534: 0x4000, 0x1535: 0x4000,\n\t0x1537: 0x4000, 0x1538: 0x4000, 0x1539: 0x4000, 0x153a: 0x4000, 0x153b: 0x4000,\n\t0x153c: 0x4000, 0x153d: 0x4000, 0x153e: 0x4000, 0x153f: 0x4000,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x4000, 0x1541: 0x4000, 0x1542: 0x4000, 0x1543: 0x4000, 0x1544: 0x4000, 0x1545: 0x4000,\n\t0x1546: 0x4000, 0x1547: 0x4000, 0x1548: 0x4000, 0x1549: 0x4000, 0x154a: 0x4000, 0x154b: 0x4000,\n\t0x154c: 0x4000, 0x154d: 0x4000, 0x154e: 0x4000, 0x154f: 0x4000, 0x1550: 0x4000, 0x1551: 0x4000,\n\t0x1552: 0x4000, 0x1553: 0x4000, 0x1554: 0x4000, 0x1555: 0x4000, 0x1556: 0x4000, 0x1557: 0x4000,\n\t0x1558: 0x4000, 0x1559: 0x4000, 0x155a: 0x4000, 0x155b: 0x4000, 0x155c: 0x4000, 0x155d: 0x4000,\n\t0x155e: 0x4000, 0x155f: 0x4000, 0x1560: 0x4000, 0x1561: 0x4000, 0x1562: 0x4000, 0x1563: 0x4000,\n\t0x1564: 0x4000, 0x1565: 0x4000, 0x1566: 0x4000, 0x1567: 0x4000, 0x1568: 0x4000, 0x1569: 0x4000,\n\t0x156a: 0x4000, 0x156b: 0x4000, 0x156c: 0x4000, 0x156d: 0x4000, 0x156e: 0x4000, 0x156f: 0x4000,\n\t0x1570: 0x4000, 0x1571: 0x4000, 0x1572: 0x4000, 0x1573: 0x4000, 0x1574: 0x4000, 0x1575: 0x4000,\n\t0x1576: 0x4000, 0x1577: 0x4000, 0x1578: 0x4000, 0x1579: 0x4000, 0x157a: 0x4000, 0x157b: 0x4000,\n\t0x157c: 0x4000, 0x157e: 0x4000, 0x157f: 0x4000,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x4000, 0x1581: 0x4000, 0x1582: 0x4000, 0x1583: 0x4000, 0x1584: 0x4000, 0x1585: 0x4000,\n\t0x1586: 0x4000, 0x1587: 0x4000, 0x1588: 0x4000, 0x1589: 0x4000, 0x158a: 0x4000, 0x158b: 0x4000,\n\t0x158c: 0x4000, 0x158d: 0x4000, 0x158e: 0x4000, 0x158f: 0x4000, 0x1590: 0x4000, 0x1591: 0x4000,\n\t0x1592: 0x4000, 0x1593: 0x4000,\n\t0x15a0: 0x4000, 0x15a1: 0x4000, 0x15a2: 0x4000, 0x15a3: 0x4000,\n\t0x15a4: 0x4000, 0x15a5: 0x4000, 0x15a6: 0x4000, 0x15a7: 0x4000, 0x15a8: 0x4000, 0x15a9: 0x4000,\n\t0x15aa: 0x4000, 0x15ab: 0x4000, 0x15ac: 0x4000, 0x15ad: 0x4000, 0x15ae: 0x4000, 0x15af: 0x4000,\n\t0x15b0: 0x4000, 0x15b1: 0x4000, 0x15b2: 0x4000, 0x15b3: 0x4000, 0x15b4: 0x4000, 0x15b5: 0x4000,\n\t0x15b6: 0x4000, 0x15b7: 0x4000, 0x15b8: 0x4000, 0x15b9: 0x4000, 0x15ba: 0x4000, 0x15bb: 0x4000,\n\t0x15bc: 0x4000, 0x15bd: 0x4000, 0x15be: 0x4000, 0x15bf: 0x4000,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x4000, 0x15c1: 0x4000, 0x15c2: 0x4000, 0x15c3: 0x4000, 0x15c4: 0x4000, 0x15c5: 0x4000,\n\t0x15c6: 0x4000, 0x15c7: 0x4000, 0x15c8: 0x4000, 0x15c9: 0x4000, 0x15ca: 0x4000,\n\t0x15cf: 0x4000, 0x15d0: 0x4000, 0x15d1: 0x4000,\n\t0x15d2: 0x4000, 0x15d3: 0x4000,\n\t0x15e0: 0x4000, 0x15e1: 0x4000, 0x15e2: 0x4000, 0x15e3: 0x4000,\n\t0x15e4: 0x4000, 0x15e5: 0x4000, 0x15e6: 0x4000, 0x15e7: 0x4000, 0x15e8: 0x4000, 0x15e9: 0x4000,\n\t0x15ea: 0x4000, 0x15eb: 0x4000, 0x15ec: 0x4000, 0x15ed: 0x4000, 0x15ee: 0x4000, 0x15ef: 0x4000,\n\t0x15f0: 0x4000, 0x15f4: 0x4000,\n\t0x15f8: 0x4000, 0x15f9: 0x4000, 0x15fa: 0x4000, 0x15fb: 0x4000,\n\t0x15fc: 0x4000, 0x15fd: 0x4000, 0x15fe: 0x4000, 0x15ff: 0x4000,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x4000, 0x1602: 0x4000, 0x1603: 0x4000, 0x1604: 0x4000, 0x1605: 0x4000,\n\t0x1606: 0x4000, 0x1607: 0x4000, 0x1608: 0x4000, 0x1609: 0x4000, 0x160a: 0x4000, 0x160b: 0x4000,\n\t0x160c: 0x4000, 0x160d: 0x4000, 0x160e: 0x4000, 0x160f: 0x4000, 0x1610: 0x4000, 0x1611: 0x4000,\n\t0x1612: 0x4000, 0x1613: 0x4000, 0x1614: 0x4000, 0x1615: 0x4000, 0x1616: 0x4000, 0x1617: 0x4000,\n\t0x1618: 0x4000, 0x1619: 0x4000, 0x161a: 0x4000, 0x161b: 0x4000, 0x161c: 0x4000, 0x161d: 0x4000,\n\t0x161e: 0x4000, 0x161f: 0x4000, 0x1620: 0x4000, 0x1621: 0x4000, 0x1622: 0x4000, 0x1623: 0x4000,\n\t0x1624: 0x4000, 0x1625: 0x4000, 0x1626: 0x4000, 0x1627: 0x4000, 0x1628: 0x4000, 0x1629: 0x4000,\n\t0x162a: 0x4000, 0x162b: 0x4000, 0x162c: 0x4000, 0x162d: 0x4000, 0x162e: 0x4000, 0x162f: 0x4000,\n\t0x1630: 0x4000, 0x1631: 0x4000, 0x1632: 0x4000, 0x1633: 0x4000, 0x1634: 0x4000, 0x1635: 0x4000,\n\t0x1636: 0x4000, 0x1637: 0x4000, 0x1638: 0x4000, 0x1639: 0x4000, 0x163a: 0x4000, 0x163b: 0x4000,\n\t0x163c: 0x4000, 0x163d: 0x4000, 0x163e: 0x4000, 0x163f: 0x4000,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x4000, 0x1641: 0x4000, 0x1642: 0x4000, 0x1643: 0x4000, 0x1644: 0x4000, 0x1645: 0x4000,\n\t0x1646: 0x4000, 0x1647: 0x4000, 0x1648: 0x4000, 0x1649: 0x4000, 0x164a: 0x4000, 0x164b: 0x4000,\n\t0x164c: 0x4000, 0x164d: 0x4000, 0x164e: 0x4000, 0x164f: 0x4000, 0x1650: 0x4000, 0x1651: 0x4000,\n\t0x1652: 0x4000, 0x1653: 0x4000, 0x1654: 0x4000, 0x1655: 0x4000, 0x1656: 0x4000, 0x1657: 0x4000,\n\t0x1658: 0x4000, 0x1659: 0x4000, 0x165a: 0x4000, 0x165b: 0x4000, 0x165c: 0x4000, 0x165d: 0x4000,\n\t0x165e: 0x4000, 0x165f: 0x4000, 0x1660: 0x4000, 0x1661: 0x4000, 0x1662: 0x4000, 0x1663: 0x4000,\n\t0x1664: 0x4000, 0x1665: 0x4000, 0x1666: 0x4000, 0x1667: 0x4000, 0x1668: 0x4000, 0x1669: 0x4000,\n\t0x166a: 0x4000, 0x166b: 0x4000, 0x166c: 0x4000, 0x166d: 0x4000, 0x166e: 0x4000, 0x166f: 0x4000,\n\t0x1670: 0x4000, 0x1671: 0x4000, 0x1672: 0x4000, 0x1673: 0x4000, 0x1674: 0x4000, 0x1675: 0x4000,\n\t0x1676: 0x4000, 0x1677: 0x4000, 0x1678: 0x4000, 0x1679: 0x4000, 0x167a: 0x4000, 0x167b: 0x4000,\n\t0x167c: 0x4000, 0x167f: 0x4000,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x4000, 0x1681: 0x4000, 0x1682: 0x4000, 0x1683: 0x4000, 0x1684: 0x4000, 0x1685: 0x4000,\n\t0x1686: 0x4000, 0x1687: 0x4000, 0x1688: 0x4000, 0x1689: 0x4000, 0x168a: 0x4000, 0x168b: 0x4000,\n\t0x168c: 0x4000, 0x168d: 0x4000, 0x168e: 0x4000, 0x168f: 0x4000, 0x1690: 0x4000, 0x1691: 0x4000,\n\t0x1692: 0x4000, 0x1693: 0x4000, 0x1694: 0x4000, 0x1695: 0x4000, 0x1696: 0x4000, 0x1697: 0x4000,\n\t0x1698: 0x4000, 0x1699: 0x4000, 0x169a: 0x4000, 0x169b: 0x4000, 0x169c: 0x4000, 0x169d: 0x4000,\n\t0x169e: 0x4000, 0x169f: 0x4000, 0x16a0: 0x4000, 0x16a1: 0x4000, 0x16a2: 0x4000, 0x16a3: 0x4000,\n\t0x16a4: 0x4000, 0x16a5: 0x4000, 0x16a6: 0x4000, 0x16a7: 0x4000, 0x16a8: 0x4000, 0x16a9: 0x4000,\n\t0x16aa: 0x4000, 0x16ab: 0x4000, 0x16ac: 0x4000, 0x16ad: 0x4000, 0x16ae: 0x4000, 0x16af: 0x4000,\n\t0x16b0: 0x4000, 0x16b1: 0x4000, 0x16b2: 0x4000, 0x16b3: 0x4000, 0x16b4: 0x4000, 0x16b5: 0x4000,\n\t0x16b6: 0x4000, 0x16b7: 0x4000, 0x16b8: 0x4000, 0x16b9: 0x4000, 0x16ba: 0x4000, 0x16bb: 0x4000,\n\t0x16bc: 0x4000, 0x16bd: 0x4000,\n\t// Block 0x5b, offset 0x16c0\n\t0x16cb: 0x4000,\n\t0x16cc: 0x4000, 0x16cd: 0x4000, 0x16ce: 0x4000, 0x16d0: 0x4000, 0x16d1: 0x4000,\n\t0x16d2: 0x4000, 0x16d3: 0x4000, 0x16d4: 0x4000, 0x16d5: 0x4000, 0x16d6: 0x4000, 0x16d7: 0x4000,\n\t0x16d8: 0x4000, 0x16d9: 0x4000, 0x16da: 0x4000, 0x16db: 0x4000, 0x16dc: 0x4000, 0x16dd: 0x4000,\n\t0x16de: 0x4000, 0x16df: 0x4000, 0x16e0: 0x4000, 0x16e1: 0x4000, 0x16e2: 0x4000, 0x16e3: 0x4000,\n\t0x16e4: 0x4000, 0x16e5: 0x4000, 0x16e6: 0x4000, 0x16e7: 0x4000,\n\t0x16fa: 0x4000,\n\t// Block 0x5c, offset 0x1700\n\t0x1715: 0x4000, 0x1716: 0x4000,\n\t0x1724: 0x4000,\n\t// Block 0x5d, offset 0x1740\n\t0x177b: 0x4000,\n\t0x177c: 0x4000, 0x177d: 0x4000, 0x177e: 0x4000, 0x177f: 0x4000,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x4000, 0x1781: 0x4000, 0x1782: 0x4000, 0x1783: 0x4000, 0x1784: 0x4000, 0x1785: 0x4000,\n\t0x1786: 0x4000, 0x1787: 0x4000, 0x1788: 0x4000, 0x1789: 0x4000, 0x178a: 0x4000, 0x178b: 0x4000,\n\t0x178c: 0x4000, 0x178d: 0x4000, 0x178e: 0x4000, 0x178f: 0x4000,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x4000, 0x17c1: 0x4000, 0x17c2: 0x4000, 0x17c3: 0x4000, 0x17c4: 0x4000, 0x17c5: 0x4000,\n\t0x17cc: 0x4000, 0x17d0: 0x4000, 0x17d1: 0x4000,\n\t0x17d2: 0x4000,\n\t0x17eb: 0x4000, 0x17ec: 0x4000,\n\t0x17f4: 0x4000, 0x17f5: 0x4000,\n\t0x17f6: 0x4000, 0x17f7: 0x4000, 0x17f8: 0x4000, 0x17f9: 0x4000,\n\t// Block 0x60, offset 0x1800\n\t0x1810: 0x4000, 0x1811: 0x4000,\n\t0x1812: 0x4000, 0x1813: 0x4000, 0x1814: 0x4000, 0x1815: 0x4000, 0x1816: 0x4000, 0x1817: 0x4000,\n\t0x1818: 0x4000, 0x1819: 0x4000, 0x181a: 0x4000, 0x181b: 0x4000, 0x181c: 0x4000, 0x181d: 0x4000,\n\t0x181e: 0x4000, 0x181f: 0x4000, 0x1820: 0x4000, 0x1821: 0x4000, 0x1822: 0x4000, 0x1823: 0x4000,\n\t0x1824: 0x4000, 0x1825: 0x4000, 0x1826: 0x4000, 0x1827: 0x4000, 0x1828: 0x4000, 0x1829: 0x4000,\n\t0x182a: 0x4000, 0x182b: 0x4000, 0x182c: 0x4000, 0x182d: 0x4000, 0x182e: 0x4000, 0x182f: 0x4000,\n\t0x1830: 0x4000, 0x1831: 0x4000, 0x1832: 0x4000, 0x1833: 0x4000, 0x1834: 0x4000, 0x1835: 0x4000,\n\t0x1836: 0x4000, 0x1837: 0x4000, 0x1838: 0x4000, 0x1839: 0x4000, 0x183a: 0x4000, 0x183b: 0x4000,\n\t0x183c: 0x4000, 0x183d: 0x4000, 0x183e: 0x4000,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x4000, 0x1841: 0x4000, 0x1842: 0x4000, 0x1843: 0x4000, 0x1844: 0x4000, 0x1845: 0x4000,\n\t0x1846: 0x4000, 0x1847: 0x4000, 0x1848: 0x4000, 0x1849: 0x4000, 0x184a: 0x4000, 0x184b: 0x4000,\n\t0x184c: 0x4000, 0x184d: 0x4000, 0x184e: 0x4000, 0x184f: 0x4000, 0x1850: 0x4000, 0x1851: 0x4000,\n\t0x1852: 0x4000, 0x1853: 0x4000, 0x1854: 0x4000, 0x1855: 0x4000, 0x1856: 0x4000, 0x1857: 0x4000,\n\t0x1858: 0x4000, 0x1859: 0x4000, 0x185a: 0x4000, 0x185b: 0x4000, 0x185c: 0x4000, 0x185d: 0x4000,\n\t0x185e: 0x4000, 0x185f: 0x4000, 0x1860: 0x4000, 0x1861: 0x4000, 0x1862: 0x4000, 0x1863: 0x4000,\n\t0x1864: 0x4000, 0x1865: 0x4000, 0x1866: 0x4000, 0x1867: 0x4000, 0x1868: 0x4000, 0x1869: 0x4000,\n\t0x186a: 0x4000, 0x186b: 0x4000, 0x186c: 0x4000, 0x186d: 0x4000, 0x186e: 0x4000, 0x186f: 0x4000,\n\t0x1870: 0x4000, 0x1873: 0x4000, 0x1874: 0x4000, 0x1875: 0x4000,\n\t0x1876: 0x4000, 0x187a: 0x4000,\n\t0x187c: 0x4000, 0x187d: 0x4000, 0x187e: 0x4000, 0x187f: 0x4000,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x4000, 0x1881: 0x4000, 0x1882: 0x4000, 0x1883: 0x4000, 0x1884: 0x4000, 0x1885: 0x4000,\n\t0x1886: 0x4000, 0x1887: 0x4000, 0x1888: 0x4000, 0x1889: 0x4000, 0x188a: 0x4000, 0x188b: 0x4000,\n\t0x188c: 0x4000, 0x188d: 0x4000, 0x188e: 0x4000, 0x188f: 0x4000, 0x1890: 0x4000, 0x1891: 0x4000,\n\t0x1892: 0x4000, 0x1893: 0x4000, 0x1894: 0x4000, 0x1895: 0x4000, 0x1896: 0x4000, 0x1897: 0x4000,\n\t0x1898: 0x4000, 0x1899: 0x4000, 0x189a: 0x4000, 0x189b: 0x4000, 0x189c: 0x4000, 0x189d: 0x4000,\n\t0x189e: 0x4000, 0x189f: 0x4000, 0x18a0: 0x4000, 0x18a1: 0x4000, 0x18a2: 0x4000,\n\t0x18b0: 0x4000, 0x18b1: 0x4000, 0x18b2: 0x4000, 0x18b3: 0x4000, 0x18b4: 0x4000, 0x18b5: 0x4000,\n\t0x18b6: 0x4000, 0x18b7: 0x4000, 0x18b8: 0x4000, 0x18b9: 0x4000,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x4000, 0x18c1: 0x4000, 0x18c2: 0x4000,\n\t0x18d0: 0x4000, 0x18d1: 0x4000,\n\t0x18d2: 0x4000, 0x18d3: 0x4000, 0x18d4: 0x4000, 0x18d5: 0x4000, 0x18d6: 0x4000, 0x18d7: 0x4000,\n\t0x18d8: 0x4000, 0x18d9: 0x4000, 0x18da: 0x4000, 0x18db: 0x4000, 0x18dc: 0x4000, 0x18dd: 0x4000,\n\t0x18de: 0x4000, 0x18df: 0x4000, 0x18e0: 0x4000, 0x18e1: 0x4000, 0x18e2: 0x4000, 0x18e3: 0x4000,\n\t0x18e4: 0x4000, 0x18e5: 0x4000, 0x18e6: 0x4000, 0x18e7: 0x4000, 0x18e8: 0x4000, 0x18e9: 0x4000,\n\t0x18ea: 0x4000, 0x18eb: 0x4000, 0x18ec: 0x4000, 0x18ed: 0x4000, 0x18ee: 0x4000, 0x18ef: 0x4000,\n\t0x18f0: 0x4000, 0x18f1: 0x4000, 0x18f2: 0x4000, 0x18f3: 0x4000, 0x18f4: 0x4000, 0x18f5: 0x4000,\n\t0x18f6: 0x4000, 0x18f7: 0x4000, 0x18f8: 0x4000, 0x18f9: 0x4000, 0x18fa: 0x4000, 0x18fb: 0x4000,\n\t0x18fc: 0x4000, 0x18fd: 0x4000, 0x18fe: 0x4000, 0x18ff: 0x4000,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x2000, 0x1901: 0x2000, 0x1902: 0x2000, 0x1903: 0x2000, 0x1904: 0x2000, 0x1905: 0x2000,\n\t0x1906: 0x2000, 0x1907: 0x2000, 0x1908: 0x2000, 0x1909: 0x2000, 0x190a: 0x2000, 0x190b: 0x2000,\n\t0x190c: 0x2000, 0x190d: 0x2000, 0x190e: 0x2000, 0x190f: 0x2000, 0x1910: 0x2000, 0x1911: 0x2000,\n\t0x1912: 0x2000, 0x1913: 0x2000, 0x1914: 0x2000, 0x1915: 0x2000, 0x1916: 0x2000, 0x1917: 0x2000,\n\t0x1918: 0x2000, 0x1919: 0x2000, 0x191a: 0x2000, 0x191b: 0x2000, 0x191c: 0x2000, 0x191d: 0x2000,\n\t0x191e: 0x2000, 0x191f: 0x2000, 0x1920: 0x2000, 0x1921: 0x2000, 0x1922: 0x2000, 0x1923: 0x2000,\n\t0x1924: 0x2000, 0x1925: 0x2000, 0x1926: 0x2000, 0x1927: 0x2000, 0x1928: 0x2000, 0x1929: 0x2000,\n\t0x192a: 0x2000, 0x192b: 0x2000, 0x192c: 0x2000, 0x192d: 0x2000, 0x192e: 0x2000, 0x192f: 0x2000,\n\t0x1930: 0x2000, 0x1931: 0x2000, 0x1932: 0x2000, 0x1933: 0x2000, 0x1934: 0x2000, 0x1935: 0x2000,\n\t0x1936: 0x2000, 0x1937: 0x2000, 0x1938: 0x2000, 0x1939: 0x2000, 0x193a: 0x2000, 0x193b: 0x2000,\n\t0x193c: 0x2000, 0x193d: 0x2000,\n}\n\n// widthIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar widthIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05,\n\t0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b,\n\t0xd0: 0x0c, 0xd1: 0x0d,\n\t0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06,\n\t0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a,\n\t0xf0: 0x0f, 0xf3: 0x12, 0xf4: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x104: 0x0e, 0x105: 0x0f,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16,\n\t0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, 0x14f: 0x1b,\n\t0x151: 0x1c, 0x152: 0x08, 0x153: 0x1d, 0x154: 0x1e, 0x155: 0x1f, 0x156: 0x20, 0x157: 0x21,\n\t0x158: 0x22, 0x159: 0x23, 0x15a: 0x24, 0x15b: 0x25, 0x15c: 0x26, 0x15d: 0x27, 0x15e: 0x28, 0x15f: 0x29,\n\t0x166: 0x2a,\n\t0x16c: 0x2b, 0x16d: 0x2c,\n\t0x17a: 0x2d, 0x17b: 0x2e, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2f,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x30, 0x181: 0x31, 0x182: 0x32, 0x183: 0x33, 0x184: 0x34, 0x185: 0x35, 0x186: 0x36, 0x187: 0x37,\n\t0x188: 0x38, 0x189: 0x39, 0x18a: 0x0e, 0x18b: 0x3a, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e,\n\t0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e,\n\t0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e,\n\t0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e,\n\t0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e,\n\t0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e,\n\t0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e,\n\t0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e,\n\t0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e,\n\t0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e,\n\t0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e,\n\t0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e,\n\t0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e,\n\t0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e,\n\t0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e,\n\t0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e,\n\t0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e,\n\t0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e,\n\t0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e,\n\t0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e,\n\t0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e,\n\t0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e,\n\t0x250: 0x0e, 0x251: 0x0e, 0x252: 0x3b, 0x253: 0x3c,\n\t0x265: 0x3d,\n\t0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e,\n\t0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e,\n\t0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e,\n\t0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e,\n\t0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3e,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08,\n\t0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08,\n\t0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08,\n\t0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08,\n\t0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08,\n\t0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08,\n\t0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08,\n\t0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08,\n\t0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08,\n\t0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08,\n\t0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08,\n\t0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e,\n\t0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e,\n\t0x338: 0x3f, 0x339: 0x40, 0x33c: 0x41, 0x33d: 0x42, 0x33e: 0x43, 0x33f: 0x44,\n\t// Block 0xd, offset 0x340\n\t0x37f: 0x45,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0e, 0x381: 0x0e, 0x382: 0x0e, 0x383: 0x0e, 0x384: 0x0e, 0x385: 0x0e, 0x386: 0x0e, 0x387: 0x0e,\n\t0x388: 0x0e, 0x389: 0x0e, 0x38a: 0x0e, 0x38b: 0x0e, 0x38c: 0x0e, 0x38d: 0x0e, 0x38e: 0x0e, 0x38f: 0x0e,\n\t0x390: 0x0e, 0x391: 0x0e, 0x392: 0x0e, 0x393: 0x0e, 0x394: 0x0e, 0x395: 0x0e, 0x396: 0x0e, 0x397: 0x0e,\n\t0x398: 0x0e, 0x399: 0x0e, 0x39a: 0x0e, 0x39b: 0x0e, 0x39c: 0x0e, 0x39d: 0x0e, 0x39e: 0x0e, 0x39f: 0x46,\n\t0x3a0: 0x0e, 0x3a1: 0x0e, 0x3a2: 0x0e, 0x3a3: 0x0e, 0x3a4: 0x0e, 0x3a5: 0x0e, 0x3a6: 0x0e, 0x3a7: 0x0e,\n\t0x3a8: 0x0e, 0x3a9: 0x0e, 0x3aa: 0x0e, 0x3ab: 0x47,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0e, 0x3c1: 0x0e, 0x3c2: 0x0e, 0x3c3: 0x0e, 0x3c4: 0x48, 0x3c5: 0x49, 0x3c6: 0x0e, 0x3c7: 0x0e,\n\t0x3c8: 0x0e, 0x3c9: 0x0e, 0x3ca: 0x0e, 0x3cb: 0x4a,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x4b, 0x403: 0x4c, 0x404: 0x4d, 0x405: 0x4e, 0x406: 0x4f,\n\t0x408: 0x50, 0x409: 0x51, 0x40c: 0x52, 0x40d: 0x53, 0x40e: 0x54, 0x40f: 0x55,\n\t0x410: 0x3a, 0x411: 0x56, 0x412: 0x0e, 0x413: 0x57, 0x414: 0x58, 0x415: 0x59, 0x416: 0x5a, 0x417: 0x5b,\n\t0x418: 0x0e, 0x419: 0x5c, 0x41a: 0x0e, 0x41b: 0x5d,\n\t0x424: 0x5e, 0x425: 0x5f, 0x426: 0x60, 0x427: 0x61,\n\t// Block 0x11, offset 0x440\n\t0x456: 0x0b, 0x457: 0x06,\n\t0x458: 0x0c, 0x45b: 0x0d, 0x45f: 0x0e,\n\t0x460: 0x06, 0x461: 0x06, 0x462: 0x06, 0x463: 0x06, 0x464: 0x06, 0x465: 0x06, 0x466: 0x06, 0x467: 0x06,\n\t0x468: 0x06, 0x469: 0x06, 0x46a: 0x06, 0x46b: 0x06, 0x46c: 0x06, 0x46d: 0x06, 0x46e: 0x06, 0x46f: 0x06,\n\t0x470: 0x06, 0x471: 0x06, 0x472: 0x06, 0x473: 0x06, 0x474: 0x06, 0x475: 0x06, 0x476: 0x06, 0x477: 0x06,\n\t0x478: 0x06, 0x479: 0x06, 0x47a: 0x06, 0x47b: 0x06, 0x47c: 0x06, 0x47d: 0x06, 0x47e: 0x06, 0x47f: 0x06,\n\t// Block 0x12, offset 0x480\n\t0x484: 0x08, 0x485: 0x08, 0x486: 0x08, 0x487: 0x09,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x08, 0x4c1: 0x08, 0x4c2: 0x08, 0x4c3: 0x08, 0x4c4: 0x08, 0x4c5: 0x08, 0x4c6: 0x08, 0x4c7: 0x08,\n\t0x4c8: 0x08, 0x4c9: 0x08, 0x4ca: 0x08, 0x4cb: 0x08, 0x4cc: 0x08, 0x4cd: 0x08, 0x4ce: 0x08, 0x4cf: 0x08,\n\t0x4d0: 0x08, 0x4d1: 0x08, 0x4d2: 0x08, 0x4d3: 0x08, 0x4d4: 0x08, 0x4d5: 0x08, 0x4d6: 0x08, 0x4d7: 0x08,\n\t0x4d8: 0x08, 0x4d9: 0x08, 0x4da: 0x08, 0x4db: 0x08, 0x4dc: 0x08, 0x4dd: 0x08, 0x4de: 0x08, 0x4df: 0x08,\n\t0x4e0: 0x08, 0x4e1: 0x08, 0x4e2: 0x08, 0x4e3: 0x08, 0x4e4: 0x08, 0x4e5: 0x08, 0x4e6: 0x08, 0x4e7: 0x08,\n\t0x4e8: 0x08, 0x4e9: 0x08, 0x4ea: 0x08, 0x4eb: 0x08, 0x4ec: 0x08, 0x4ed: 0x08, 0x4ee: 0x08, 0x4ef: 0x08,\n\t0x4f0: 0x08, 0x4f1: 0x08, 0x4f2: 0x08, 0x4f3: 0x08, 0x4f4: 0x08, 0x4f5: 0x08, 0x4f6: 0x08, 0x4f7: 0x08,\n\t0x4f8: 0x08, 0x4f9: 0x08, 0x4fa: 0x08, 0x4fb: 0x08, 0x4fc: 0x08, 0x4fd: 0x08, 0x4fe: 0x08, 0x4ff: 0x62,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x10,\n\t0x530: 0x09, 0x531: 0x09, 0x532: 0x09, 0x533: 0x09, 0x534: 0x09, 0x535: 0x09, 0x536: 0x09, 0x537: 0x09,\n\t0x538: 0x09, 0x539: 0x09, 0x53a: 0x09, 0x53b: 0x09, 0x53c: 0x09, 0x53d: 0x09, 0x53e: 0x09, 0x53f: 0x11,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x09, 0x541: 0x09, 0x542: 0x09, 0x543: 0x09, 0x544: 0x09, 0x545: 0x09, 0x546: 0x09, 0x547: 0x09,\n\t0x548: 0x09, 0x549: 0x09, 0x54a: 0x09, 0x54b: 0x09, 0x54c: 0x09, 0x54d: 0x09, 0x54e: 0x09, 0x54f: 0x11,\n}\n\n// inverseData contains 4-byte entries of the following format:\n//   <length> <modified UTF-8-encoded rune> <0 padding>\n// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the\n// UTF-8 encoding of the original rune. Mappings often have the following\n// pattern:\n//   Ａ -> A  (U+FF21 -> U+0041)\n//   Ｂ -> B  (U+FF22 -> U+0042)\n//   ...\n// By xor-ing the last byte the same entry can be shared by many mappings. This\n// reduces the total number of distinct entries by about two thirds.\n// The resulting entry for the aforementioned mappings is\n//   { 0x01, 0xE0, 0x00, 0x00 }\n// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get\n//   E0 ^ A1 = 41.\n// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get\n//   E0 ^ A2 = 42.\n// Note that because of the xor-ing, the byte sequence stored in the entry is\n// not valid UTF-8.\nvar inverseData = [150][4]byte{\n\t{0x00, 0x00, 0x00, 0x00},\n\t{0x03, 0xe3, 0x80, 0xa0},\n\t{0x03, 0xef, 0xbc, 0xa0},\n\t{0x03, 0xef, 0xbc, 0xe0},\n\t{0x03, 0xef, 0xbd, 0xe0},\n\t{0x03, 0xef, 0xbf, 0x02},\n\t{0x03, 0xef, 0xbf, 0x00},\n\t{0x03, 0xef, 0xbf, 0x0e},\n\t{0x03, 0xef, 0xbf, 0x0c},\n\t{0x03, 0xef, 0xbf, 0x0f},\n\t{0x03, 0xef, 0xbf, 0x39},\n\t{0x03, 0xef, 0xbf, 0x3b},\n\t{0x03, 0xef, 0xbf, 0x3f},\n\t{0x03, 0xef, 0xbf, 0x2a},\n\t{0x03, 0xef, 0xbf, 0x0d},\n\t{0x03, 0xef, 0xbf, 0x25},\n\t{0x03, 0xef, 0xbd, 0x1a},\n\t{0x03, 0xef, 0xbd, 0x26},\n\t{0x01, 0xa0, 0x00, 0x00},\n\t{0x03, 0xef, 0xbd, 0x25},\n\t{0x03, 0xef, 0xbd, 0x23},\n\t{0x03, 0xef, 0xbd, 0x2e},\n\t{0x03, 0xef, 0xbe, 0x07},\n\t{0x03, 0xef, 0xbe, 0x05},\n\t{0x03, 0xef, 0xbd, 0x06},\n\t{0x03, 0xef, 0xbd, 0x13},\n\t{0x03, 0xef, 0xbd, 0x0b},\n\t{0x03, 0xef, 0xbd, 0x16},\n\t{0x03, 0xef, 0xbd, 0x0c},\n\t{0x03, 0xef, 0xbd, 0x15},\n\t{0x03, 0xef, 0xbd, 0x0d},\n\t{0x03, 0xef, 0xbd, 0x1c},\n\t{0x03, 0xef, 0xbd, 0x02},\n\t{0x03, 0xef, 0xbd, 0x1f},\n\t{0x03, 0xef, 0xbd, 0x1d},\n\t{0x03, 0xef, 0xbd, 0x17},\n\t{0x03, 0xef, 0xbd, 0x08},\n\t{0x03, 0xef, 0xbd, 0x09},\n\t{0x03, 0xef, 0xbd, 0x0e},\n\t{0x03, 0xef, 0xbd, 0x04},\n\t{0x03, 0xef, 0xbd, 0x05},\n\t{0x03, 0xef, 0xbe, 0x3f},\n\t{0x03, 0xef, 0xbe, 0x00},\n\t{0x03, 0xef, 0xbd, 0x2c},\n\t{0x03, 0xef, 0xbe, 0x06},\n\t{0x03, 0xef, 0xbe, 0x0c},\n\t{0x03, 0xef, 0xbe, 0x0f},\n\t{0x03, 0xef, 0xbe, 0x0d},\n\t{0x03, 0xef, 0xbe, 0x0b},\n\t{0x03, 0xef, 0xbe, 0x19},\n\t{0x03, 0xef, 0xbe, 0x15},\n\t{0x03, 0xef, 0xbe, 0x11},\n\t{0x03, 0xef, 0xbe, 0x31},\n\t{0x03, 0xef, 0xbe, 0x33},\n\t{0x03, 0xef, 0xbd, 0x0f},\n\t{0x03, 0xef, 0xbe, 0x30},\n\t{0x03, 0xef, 0xbe, 0x3e},\n\t{0x03, 0xef, 0xbe, 0x32},\n\t{0x03, 0xef, 0xbe, 0x36},\n\t{0x03, 0xef, 0xbd, 0x14},\n\t{0x03, 0xef, 0xbe, 0x2e},\n\t{0x03, 0xef, 0xbd, 0x1e},\n\t{0x03, 0xef, 0xbe, 0x10},\n\t{0x03, 0xef, 0xbf, 0x13},\n\t{0x03, 0xef, 0xbf, 0x15},\n\t{0x03, 0xef, 0xbf, 0x17},\n\t{0x03, 0xef, 0xbf, 0x1f},\n\t{0x03, 0xef, 0xbf, 0x1d},\n\t{0x03, 0xef, 0xbf, 0x1b},\n\t{0x03, 0xef, 0xbf, 0x09},\n\t{0x03, 0xef, 0xbf, 0x0b},\n\t{0x03, 0xef, 0xbf, 0x37},\n\t{0x03, 0xef, 0xbe, 0x04},\n\t{0x01, 0xe0, 0x00, 0x00},\n\t{0x03, 0xe2, 0xa6, 0x1a},\n\t{0x03, 0xe2, 0xa6, 0x26},\n\t{0x03, 0xe3, 0x80, 0x23},\n\t{0x03, 0xe3, 0x80, 0x2e},\n\t{0x03, 0xe3, 0x80, 0x25},\n\t{0x03, 0xe3, 0x83, 0x1e},\n\t{0x03, 0xe3, 0x83, 0x14},\n\t{0x03, 0xe3, 0x82, 0x06},\n\t{0x03, 0xe3, 0x82, 0x0b},\n\t{0x03, 0xe3, 0x82, 0x0c},\n\t{0x03, 0xe3, 0x82, 0x0d},\n\t{0x03, 0xe3, 0x82, 0x02},\n\t{0x03, 0xe3, 0x83, 0x0f},\n\t{0x03, 0xe3, 0x83, 0x08},\n\t{0x03, 0xe3, 0x83, 0x09},\n\t{0x03, 0xe3, 0x83, 0x2c},\n\t{0x03, 0xe3, 0x83, 0x0c},\n\t{0x03, 0xe3, 0x82, 0x13},\n\t{0x03, 0xe3, 0x82, 0x16},\n\t{0x03, 0xe3, 0x82, 0x15},\n\t{0x03, 0xe3, 0x82, 0x1c},\n\t{0x03, 0xe3, 0x82, 0x1f},\n\t{0x03, 0xe3, 0x82, 0x1d},\n\t{0x03, 0xe3, 0x82, 0x1a},\n\t{0x03, 0xe3, 0x82, 0x17},\n\t{0x03, 0xe3, 0x82, 0x08},\n\t{0x03, 0xe3, 0x82, 0x09},\n\t{0x03, 0xe3, 0x82, 0x0e},\n\t{0x03, 0xe3, 0x82, 0x04},\n\t{0x03, 0xe3, 0x82, 0x05},\n\t{0x03, 0xe3, 0x82, 0x3f},\n\t{0x03, 0xe3, 0x83, 0x00},\n\t{0x03, 0xe3, 0x83, 0x06},\n\t{0x03, 0xe3, 0x83, 0x05},\n\t{0x03, 0xe3, 0x83, 0x0d},\n\t{0x03, 0xe3, 0x83, 0x0b},\n\t{0x03, 0xe3, 0x83, 0x07},\n\t{0x03, 0xe3, 0x83, 0x19},\n\t{0x03, 0xe3, 0x83, 0x15},\n\t{0x03, 0xe3, 0x83, 0x11},\n\t{0x03, 0xe3, 0x83, 0x31},\n\t{0x03, 0xe3, 0x83, 0x33},\n\t{0x03, 0xe3, 0x83, 0x30},\n\t{0x03, 0xe3, 0x83, 0x3e},\n\t{0x03, 0xe3, 0x83, 0x32},\n\t{0x03, 0xe3, 0x83, 0x36},\n\t{0x03, 0xe3, 0x83, 0x2e},\n\t{0x03, 0xe3, 0x82, 0x07},\n\t{0x03, 0xe3, 0x85, 0x04},\n\t{0x03, 0xe3, 0x84, 0x10},\n\t{0x03, 0xe3, 0x85, 0x30},\n\t{0x03, 0xe3, 0x85, 0x0d},\n\t{0x03, 0xe3, 0x85, 0x13},\n\t{0x03, 0xe3, 0x85, 0x15},\n\t{0x03, 0xe3, 0x85, 0x17},\n\t{0x03, 0xe3, 0x85, 0x1f},\n\t{0x03, 0xe3, 0x85, 0x1d},\n\t{0x03, 0xe3, 0x85, 0x1b},\n\t{0x03, 0xe3, 0x85, 0x09},\n\t{0x03, 0xe3, 0x85, 0x0f},\n\t{0x03, 0xe3, 0x85, 0x0b},\n\t{0x03, 0xe3, 0x85, 0x37},\n\t{0x03, 0xe3, 0x85, 0x3b},\n\t{0x03, 0xe3, 0x85, 0x39},\n\t{0x03, 0xe3, 0x85, 0x3f},\n\t{0x02, 0xc2, 0x02, 0x00},\n\t{0x02, 0xc2, 0x0e, 0x00},\n\t{0x02, 0xc2, 0x0c, 0x00},\n\t{0x02, 0xc2, 0x00, 0x00},\n\t{0x03, 0xe2, 0x82, 0x0f},\n\t{0x03, 0xe2, 0x94, 0x2a},\n\t{0x03, 0xe2, 0x86, 0x39},\n\t{0x03, 0xe2, 0x86, 0x3b},\n\t{0x03, 0xe2, 0x86, 0x3f},\n\t{0x03, 0xe2, 0x96, 0x0d},\n\t{0x03, 0xe2, 0x97, 0x25},\n}\n\n// Total table size 14936 bytes (14KiB)\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// +build !go1.10\n\npackage width\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *widthTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn widthValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = widthIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *widthTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn widthValues[c0]\n\t}\n\ti := widthIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *widthTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn widthValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := widthIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = widthIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = widthIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *widthTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn widthValues[c0]\n\t}\n\ti := widthIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = widthIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// widthTrie. Total size: 14080 bytes (13.75 KiB). Checksum: 3b8aeb3dc03667a3.\ntype widthTrie struct{}\n\nfunc newWidthTrie(i int) *widthTrie {\n\treturn &widthTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *widthTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tdefault:\n\t\treturn uint16(widthValues[n<<6+uint32(b)])\n\t}\n}\n\n// widthValues: 99 blocks, 6336 entries, 12672 bytes\n// The third block is the zero block.\nvar widthValues = [6336]uint16{\n\t// Block 0x0, offset 0x0\n\t0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002,\n\t0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002,\n\t0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002,\n\t0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002,\n\t0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002,\n\t0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003,\n\t0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003,\n\t0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003,\n\t0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003,\n\t0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003,\n\t0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004,\n\t0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004,\n\t0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004,\n\t0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004,\n\t0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004,\n\t0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005,\n\t0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000,\n\t0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008,\n\t0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000,\n\t0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000,\n\t0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000,\n\t// Block 0x4, offset 0x100\n\t0x106: 0x2000,\n\t0x110: 0x2000,\n\t0x117: 0x2000,\n\t0x118: 0x2000,\n\t0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000,\n\t0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000,\n\t0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000,\n\t0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000,\n\t0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000,\n\t0x13c: 0x2000, 0x13e: 0x2000,\n\t// Block 0x5, offset 0x140\n\t0x141: 0x2000,\n\t0x151: 0x2000,\n\t0x153: 0x2000,\n\t0x15b: 0x2000,\n\t0x166: 0x2000, 0x167: 0x2000,\n\t0x16b: 0x2000,\n\t0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000,\n\t0x178: 0x2000,\n\t0x17f: 0x2000,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000,\n\t0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000,\n\t0x18d: 0x2000,\n\t0x192: 0x2000, 0x193: 0x2000,\n\t0x1a6: 0x2000, 0x1a7: 0x2000,\n\t0x1ab: 0x2000,\n\t// Block 0x7, offset 0x1c0\n\t0x1ce: 0x2000, 0x1d0: 0x2000,\n\t0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000,\n\t0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000,\n\t// Block 0x8, offset 0x200\n\t0x211: 0x2000,\n\t0x221: 0x2000,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x2000,\n\t0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000,\n\t0x24d: 0x2000, 0x250: 0x2000,\n\t0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000,\n\t0x25f: 0x2000,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000,\n\t0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000,\n\t0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000,\n\t0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000,\n\t0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000,\n\t0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000,\n\t0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000,\n\t0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000,\n\t0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000,\n\t0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000,\n\t0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000,\n\t0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000,\n\t0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000,\n\t0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000,\n\t0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000,\n\t0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000,\n\t0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000,\n\t0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000,\n\t// Block 0xc, offset 0x300\n\t0x311: 0x2000,\n\t0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000,\n\t0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000,\n\t0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000,\n\t0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000,\n\t0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000,\n\t0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000,\n\t0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000,\n\t0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000,\n\t// Block 0xe, offset 0x380\n\t0x381: 0x2000,\n\t0x390: 0x2000, 0x391: 0x2000,\n\t0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000,\n\t0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000,\n\t0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000,\n\t0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000,\n\t0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000,\n\t0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000,\n\t0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000,\n\t0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000,\n\t0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000,\n\t0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000,\n\t0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000,\n\t0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000,\n\t0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000,\n\t0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000,\n\t0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000,\n\t0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000,\n\t0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000,\n\t0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000,\n\t0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000,\n\t0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000,\n\t0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000,\n\t0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000,\n\t0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000,\n\t0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000,\n\t0x45e: 0x4000, 0x45f: 0x4000,\n\t// Block 0x12, offset 0x480\n\t0x490: 0x2000,\n\t0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000,\n\t0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000,\n\t0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000,\n\t0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000,\n\t0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000,\n\t0x4bb: 0x2000,\n\t0x4be: 0x2000,\n\t// Block 0x13, offset 0x4c0\n\t0x4f4: 0x2000,\n\t0x4ff: 0x2000,\n\t// Block 0x14, offset 0x500\n\t0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000,\n\t0x529: 0xa009,\n\t0x52c: 0x2000,\n\t// Block 0x15, offset 0x540\n\t0x543: 0x2000, 0x545: 0x2000,\n\t0x549: 0x2000,\n\t0x553: 0x2000, 0x556: 0x2000,\n\t0x561: 0x2000, 0x562: 0x2000,\n\t0x566: 0x2000,\n\t0x56b: 0x2000,\n\t// Block 0x16, offset 0x580\n\t0x593: 0x2000, 0x594: 0x2000,\n\t0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000,\n\t0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000,\n\t0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000,\n\t0x5aa: 0x2000, 0x5ab: 0x2000,\n\t0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000,\n\t0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000,\n\t// Block 0x17, offset 0x5c0\n\t0x5c9: 0x2000,\n\t0x5d0: 0x200a, 0x5d1: 0x200b,\n\t0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000,\n\t0x5d8: 0x2000, 0x5d9: 0x2000,\n\t0x5f8: 0x2000, 0x5f9: 0x2000,\n\t// Block 0x18, offset 0x600\n\t0x612: 0x2000, 0x614: 0x2000,\n\t0x627: 0x2000,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000,\n\t0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000,\n\t0x64f: 0x2000, 0x651: 0x2000,\n\t0x655: 0x2000,\n\t0x65a: 0x2000, 0x65d: 0x2000,\n\t0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000,\n\t0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000,\n\t0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000,\n\t0x674: 0x2000, 0x675: 0x2000,\n\t0x676: 0x2000, 0x677: 0x2000,\n\t0x67c: 0x2000, 0x67d: 0x2000,\n\t// Block 0x1a, offset 0x680\n\t0x688: 0x2000,\n\t0x68c: 0x2000,\n\t0x692: 0x2000,\n\t0x6a0: 0x2000, 0x6a1: 0x2000,\n\t0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000,\n\t0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c2: 0x2000, 0x6c3: 0x2000,\n\t0x6c6: 0x2000, 0x6c7: 0x2000,\n\t0x6d5: 0x2000,\n\t0x6d9: 0x2000,\n\t0x6e5: 0x2000,\n\t0x6ff: 0x2000,\n\t// Block 0x1c, offset 0x700\n\t0x712: 0x2000,\n\t0x71a: 0x4000, 0x71b: 0x4000,\n\t0x729: 0x4000,\n\t0x72a: 0x4000,\n\t// Block 0x1d, offset 0x740\n\t0x769: 0x4000,\n\t0x76a: 0x4000, 0x76b: 0x4000, 0x76c: 0x4000,\n\t0x770: 0x4000, 0x773: 0x4000,\n\t// Block 0x1e, offset 0x780\n\t0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000,\n\t0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000,\n\t0x7aa: 0x2000, 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000,\n\t0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000,\n\t0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000,\n\t0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x2000, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000,\n\t0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000,\n\t0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000,\n\t0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000,\n\t0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000,\n\t0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000,\n\t0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000,\n\t0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000,\n\t0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000,\n\t0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000,\n\t0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x2000, 0x801: 0x2000, 0x802: 0x200d, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000,\n\t0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000,\n\t0x80c: 0x2000, 0x80d: 0x2000, 0x80e: 0x2000, 0x80f: 0x2000, 0x810: 0x2000, 0x811: 0x2000,\n\t0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000,\n\t0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000,\n\t0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000,\n\t0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000,\n\t0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000,\n\t0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, 0x834: 0x2000, 0x835: 0x2000,\n\t0x836: 0x2000, 0x837: 0x2000, 0x838: 0x2000, 0x839: 0x2000, 0x83a: 0x2000, 0x83b: 0x2000,\n\t0x83c: 0x2000, 0x83d: 0x2000, 0x83e: 0x2000, 0x83f: 0x2000,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000,\n\t0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000,\n\t0x850: 0x2000, 0x851: 0x2000,\n\t0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, 0x856: 0x2000, 0x857: 0x2000,\n\t0x858: 0x2000, 0x859: 0x2000, 0x85a: 0x2000, 0x85b: 0x2000, 0x85c: 0x2000, 0x85d: 0x2000,\n\t0x85e: 0x2000, 0x85f: 0x2000, 0x860: 0x2000, 0x861: 0x2000, 0x862: 0x2000, 0x863: 0x2000,\n\t0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000,\n\t0x86a: 0x2000, 0x86b: 0x2000, 0x86c: 0x2000, 0x86d: 0x2000, 0x86e: 0x2000, 0x86f: 0x2000,\n\t0x870: 0x2000, 0x871: 0x2000, 0x872: 0x2000, 0x873: 0x2000,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x2000, 0x881: 0x2000, 0x882: 0x2000, 0x883: 0x2000, 0x884: 0x2000, 0x885: 0x2000,\n\t0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x889: 0x2000, 0x88a: 0x2000, 0x88b: 0x2000,\n\t0x88c: 0x2000, 0x88d: 0x2000, 0x88e: 0x2000, 0x88f: 0x2000,\n\t0x892: 0x2000, 0x893: 0x2000, 0x894: 0x2000, 0x895: 0x2000,\n\t0x8a0: 0x200e, 0x8a1: 0x2000, 0x8a3: 0x2000,\n\t0x8a4: 0x2000, 0x8a5: 0x2000, 0x8a6: 0x2000, 0x8a7: 0x2000, 0x8a8: 0x2000, 0x8a9: 0x2000,\n\t0x8b2: 0x2000, 0x8b3: 0x2000,\n\t0x8b6: 0x2000, 0x8b7: 0x2000,\n\t0x8bc: 0x2000, 0x8bd: 0x2000,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x2000, 0x8c1: 0x2000,\n\t0x8c6: 0x2000, 0x8c7: 0x2000, 0x8c8: 0x2000, 0x8cb: 0x200f,\n\t0x8ce: 0x2000, 0x8cf: 0x2000, 0x8d0: 0x2000, 0x8d1: 0x2000,\n\t0x8e2: 0x2000, 0x8e3: 0x2000,\n\t0x8e4: 0x2000, 0x8e5: 0x2000,\n\t0x8ef: 0x2000,\n\t0x8fd: 0x4000, 0x8fe: 0x4000,\n\t// Block 0x24, offset 0x900\n\t0x905: 0x2000,\n\t0x906: 0x2000, 0x909: 0x2000,\n\t0x90e: 0x2000, 0x90f: 0x2000,\n\t0x914: 0x4000, 0x915: 0x4000,\n\t0x91c: 0x2000,\n\t0x91e: 0x2000,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x2000, 0x942: 0x2000,\n\t0x948: 0x4000, 0x949: 0x4000, 0x94a: 0x4000, 0x94b: 0x4000,\n\t0x94c: 0x4000, 0x94d: 0x4000, 0x94e: 0x4000, 0x94f: 0x4000, 0x950: 0x4000, 0x951: 0x4000,\n\t0x952: 0x4000, 0x953: 0x4000,\n\t0x960: 0x2000, 0x961: 0x2000, 0x963: 0x2000,\n\t0x964: 0x2000, 0x965: 0x2000, 0x967: 0x2000, 0x968: 0x2000, 0x969: 0x2000,\n\t0x96a: 0x2000, 0x96c: 0x2000, 0x96d: 0x2000, 0x96f: 0x2000,\n\t0x97f: 0x4000,\n\t// Block 0x26, offset 0x980\n\t0x993: 0x4000,\n\t0x99e: 0x2000, 0x99f: 0x2000, 0x9a1: 0x4000,\n\t0x9aa: 0x4000, 0x9ab: 0x4000,\n\t0x9bd: 0x4000, 0x9be: 0x4000, 0x9bf: 0x2000,\n\t// Block 0x27, offset 0x9c0\n\t0x9c4: 0x4000, 0x9c5: 0x4000,\n\t0x9c6: 0x2000, 0x9c7: 0x2000, 0x9c8: 0x2000, 0x9c9: 0x2000, 0x9ca: 0x2000, 0x9cb: 0x2000,\n\t0x9cc: 0x2000, 0x9cd: 0x2000, 0x9ce: 0x4000, 0x9cf: 0x2000, 0x9d0: 0x2000, 0x9d1: 0x2000,\n\t0x9d2: 0x2000, 0x9d3: 0x2000, 0x9d4: 0x4000, 0x9d5: 0x2000, 0x9d6: 0x2000, 0x9d7: 0x2000,\n\t0x9d8: 0x2000, 0x9d9: 0x2000, 0x9da: 0x2000, 0x9db: 0x2000, 0x9dc: 0x2000, 0x9dd: 0x2000,\n\t0x9de: 0x2000, 0x9df: 0x2000, 0x9e0: 0x2000, 0x9e1: 0x2000, 0x9e3: 0x2000,\n\t0x9e8: 0x2000, 0x9e9: 0x2000,\n\t0x9ea: 0x4000, 0x9eb: 0x2000, 0x9ec: 0x2000, 0x9ed: 0x2000, 0x9ee: 0x2000, 0x9ef: 0x2000,\n\t0x9f0: 0x2000, 0x9f1: 0x2000, 0x9f2: 0x4000, 0x9f3: 0x4000, 0x9f4: 0x2000, 0x9f5: 0x4000,\n\t0x9f6: 0x2000, 0x9f7: 0x2000, 0x9f8: 0x2000, 0x9f9: 0x2000, 0x9fa: 0x4000, 0x9fb: 0x2000,\n\t0x9fc: 0x2000, 0x9fd: 0x4000, 0x9fe: 0x2000, 0x9ff: 0x2000,\n\t// Block 0x28, offset 0xa00\n\t0xa05: 0x4000,\n\t0xa0a: 0x4000, 0xa0b: 0x4000,\n\t0xa28: 0x4000,\n\t0xa3d: 0x2000,\n\t// Block 0x29, offset 0xa40\n\t0xa4c: 0x4000, 0xa4e: 0x4000,\n\t0xa53: 0x4000, 0xa54: 0x4000, 0xa55: 0x4000, 0xa57: 0x4000,\n\t0xa76: 0x2000, 0xa77: 0x2000, 0xa78: 0x2000, 0xa79: 0x2000, 0xa7a: 0x2000, 0xa7b: 0x2000,\n\t0xa7c: 0x2000, 0xa7d: 0x2000, 0xa7e: 0x2000, 0xa7f: 0x2000,\n\t// Block 0x2a, offset 0xa80\n\t0xa95: 0x4000, 0xa96: 0x4000, 0xa97: 0x4000,\n\t0xab0: 0x4000,\n\t0xabf: 0x4000,\n\t// Block 0x2b, offset 0xac0\n\t0xae6: 0x6000, 0xae7: 0x6000, 0xae8: 0x6000, 0xae9: 0x6000,\n\t0xaea: 0x6000, 0xaeb: 0x6000, 0xaec: 0x6000, 0xaed: 0x6000,\n\t// Block 0x2c, offset 0xb00\n\t0xb05: 0x6010,\n\t0xb06: 0x6011,\n\t// Block 0x2d, offset 0xb40\n\t0xb5b: 0x4000, 0xb5c: 0x4000,\n\t// Block 0x2e, offset 0xb80\n\t0xb90: 0x4000,\n\t0xb95: 0x4000, 0xb96: 0x2000, 0xb97: 0x2000,\n\t0xb98: 0x2000, 0xb99: 0x2000,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x4000, 0xbc1: 0x4000, 0xbc2: 0x4000, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000,\n\t0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000,\n\t0xbcc: 0x4000, 0xbcd: 0x4000, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000,\n\t0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000,\n\t0xbd8: 0x4000, 0xbd9: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000,\n\t0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000,\n\t0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000,\n\t0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000,\n\t0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000,\n\t0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000,\n\t0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, 0xbff: 0x4000,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x4000, 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000,\n\t0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000,\n\t0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000,\n\t0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000,\n\t0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000,\n\t0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000,\n\t0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000,\n\t0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000,\n\t0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000,\n\t0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000,\n\t0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000,\n\t0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000,\n\t0xc70: 0x4000, 0xc71: 0x4000, 0xc72: 0x4000, 0xc73: 0x4000, 0xc74: 0x4000, 0xc75: 0x4000,\n\t0xc76: 0x4000, 0xc77: 0x4000, 0xc78: 0x4000, 0xc79: 0x4000, 0xc7a: 0x4000, 0xc7b: 0x4000,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x9012, 0xc81: 0x4013, 0xc82: 0x4014, 0xc83: 0x4000, 0xc84: 0x4000, 0xc85: 0x4000,\n\t0xc86: 0x4000, 0xc87: 0x4000, 0xc88: 0x4000, 0xc89: 0x4000, 0xc8a: 0x4000, 0xc8b: 0x4000,\n\t0xc8c: 0x4015, 0xc8d: 0x4015, 0xc8e: 0x4000, 0xc8f: 0x4000, 0xc90: 0x4000, 0xc91: 0x4000,\n\t0xc92: 0x4000, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4000, 0xc96: 0x4000, 0xc97: 0x4000,\n\t0xc98: 0x4000, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4000, 0xc9c: 0x4000, 0xc9d: 0x4000,\n\t0xc9e: 0x4000, 0xc9f: 0x4000, 0xca0: 0x4000, 0xca1: 0x4000, 0xca2: 0x4000, 0xca3: 0x4000,\n\t0xca4: 0x4000, 0xca5: 0x4000, 0xca6: 0x4000, 0xca7: 0x4000, 0xca8: 0x4000, 0xca9: 0x4000,\n\t0xcaa: 0x4000, 0xcab: 0x4000, 0xcac: 0x4000, 0xcad: 0x4000, 0xcae: 0x4000, 0xcaf: 0x4000,\n\t0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x4000, 0xcb3: 0x4000, 0xcb4: 0x4000, 0xcb5: 0x4000,\n\t0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x4000,\n\t0xcbc: 0x4000, 0xcbd: 0x4000, 0xcbe: 0x4000,\n\t// Block 0x33, offset 0xcc0\n\t0xcc1: 0x4000, 0xcc2: 0x4000, 0xcc3: 0x4000, 0xcc4: 0x4000, 0xcc5: 0x4000,\n\t0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000,\n\t0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000,\n\t0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000,\n\t0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000,\n\t0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000,\n\t0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000,\n\t0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, 0xcee: 0x4000, 0xcef: 0x4000,\n\t0xcf0: 0x4000, 0xcf1: 0x4000, 0xcf2: 0x4000, 0xcf3: 0x4000, 0xcf4: 0x4000, 0xcf5: 0x4000,\n\t0xcf6: 0x4000, 0xcf7: 0x4000, 0xcf8: 0x4000, 0xcf9: 0x4000, 0xcfa: 0x4000, 0xcfb: 0x4000,\n\t0xcfc: 0x4000, 0xcfd: 0x4000, 0xcfe: 0x4000, 0xcff: 0x4000,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x4000, 0xd01: 0x4000, 0xd02: 0x4000, 0xd03: 0x4000, 0xd04: 0x4000, 0xd05: 0x4000,\n\t0xd06: 0x4000, 0xd07: 0x4000, 0xd08: 0x4000, 0xd09: 0x4000, 0xd0a: 0x4000, 0xd0b: 0x4000,\n\t0xd0c: 0x4000, 0xd0d: 0x4000, 0xd0e: 0x4000, 0xd0f: 0x4000, 0xd10: 0x4000, 0xd11: 0x4000,\n\t0xd12: 0x4000, 0xd13: 0x4000, 0xd14: 0x4000, 0xd15: 0x4000, 0xd16: 0x4000,\n\t0xd19: 0x4016, 0xd1a: 0x4017, 0xd1b: 0x4000, 0xd1c: 0x4000, 0xd1d: 0x4000,\n\t0xd1e: 0x4000, 0xd1f: 0x4000, 0xd20: 0x4000, 0xd21: 0x4018, 0xd22: 0x4019, 0xd23: 0x401a,\n\t0xd24: 0x401b, 0xd25: 0x401c, 0xd26: 0x401d, 0xd27: 0x401e, 0xd28: 0x401f, 0xd29: 0x4020,\n\t0xd2a: 0x4021, 0xd2b: 0x4022, 0xd2c: 0x4000, 0xd2d: 0x4010, 0xd2e: 0x4000, 0xd2f: 0x4023,\n\t0xd30: 0x4000, 0xd31: 0x4024, 0xd32: 0x4000, 0xd33: 0x4025, 0xd34: 0x4000, 0xd35: 0x4026,\n\t0xd36: 0x4000, 0xd37: 0x401a, 0xd38: 0x4000, 0xd39: 0x4027, 0xd3a: 0x4000, 0xd3b: 0x4028,\n\t0xd3c: 0x4000, 0xd3d: 0x4020, 0xd3e: 0x4000, 0xd3f: 0x4029,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x4000, 0xd41: 0x402a, 0xd42: 0x4000, 0xd43: 0x402b, 0xd44: 0x402c, 0xd45: 0x4000,\n\t0xd46: 0x4017, 0xd47: 0x4000, 0xd48: 0x402d, 0xd49: 0x4000, 0xd4a: 0x402e, 0xd4b: 0x402f,\n\t0xd4c: 0x4030, 0xd4d: 0x4017, 0xd4e: 0x4016, 0xd4f: 0x4017, 0xd50: 0x4000, 0xd51: 0x4000,\n\t0xd52: 0x4031, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4031, 0xd56: 0x4000, 0xd57: 0x4000,\n\t0xd58: 0x4032, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4032, 0xd5c: 0x4000, 0xd5d: 0x4000,\n\t0xd5e: 0x4033, 0xd5f: 0x402e, 0xd60: 0x4034, 0xd61: 0x4035, 0xd62: 0x4034, 0xd63: 0x4036,\n\t0xd64: 0x4037, 0xd65: 0x4024, 0xd66: 0x4035, 0xd67: 0x4025, 0xd68: 0x4038, 0xd69: 0x4038,\n\t0xd6a: 0x4039, 0xd6b: 0x4039, 0xd6c: 0x403a, 0xd6d: 0x403a, 0xd6e: 0x4000, 0xd6f: 0x4035,\n\t0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x403b, 0xd73: 0x403c, 0xd74: 0x4000, 0xd75: 0x4000,\n\t0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, 0xd7b: 0x403d,\n\t0xd7c: 0x401c, 0xd7d: 0x4000, 0xd7e: 0x4000, 0xd7f: 0x4000,\n\t// Block 0x36, offset 0xd80\n\t0xd85: 0x4000,\n\t0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000,\n\t0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000,\n\t0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000,\n\t0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000,\n\t0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000,\n\t0xda4: 0x4000, 0xda5: 0x4000, 0xda6: 0x4000, 0xda7: 0x4000, 0xda8: 0x4000, 0xda9: 0x4000,\n\t0xdaa: 0x4000, 0xdab: 0x4000, 0xdac: 0x4000, 0xdad: 0x4000,\n\t0xdb1: 0x403e, 0xdb2: 0x403e, 0xdb3: 0x403e, 0xdb4: 0x403e, 0xdb5: 0x403e,\n\t0xdb6: 0x403e, 0xdb7: 0x403e, 0xdb8: 0x403e, 0xdb9: 0x403e, 0xdba: 0x403e, 0xdbb: 0x403e,\n\t0xdbc: 0x403e, 0xdbd: 0x403e, 0xdbe: 0x403e, 0xdbf: 0x403e,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x4037, 0xdc1: 0x4037, 0xdc2: 0x4037, 0xdc3: 0x4037, 0xdc4: 0x4037, 0xdc5: 0x4037,\n\t0xdc6: 0x4037, 0xdc7: 0x4037, 0xdc8: 0x4037, 0xdc9: 0x4037, 0xdca: 0x4037, 0xdcb: 0x4037,\n\t0xdcc: 0x4037, 0xdcd: 0x4037, 0xdce: 0x4037, 0xdcf: 0x400e, 0xdd0: 0x403f, 0xdd1: 0x4040,\n\t0xdd2: 0x4041, 0xdd3: 0x4040, 0xdd4: 0x403f, 0xdd5: 0x4042, 0xdd6: 0x4043, 0xdd7: 0x4044,\n\t0xdd8: 0x4040, 0xdd9: 0x4041, 0xdda: 0x4040, 0xddb: 0x4045, 0xddc: 0x4009, 0xddd: 0x4045,\n\t0xdde: 0x4046, 0xddf: 0x4045, 0xde0: 0x4047, 0xde1: 0x400b, 0xde2: 0x400a, 0xde3: 0x400c,\n\t0xde4: 0x4048, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000,\n\t0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000,\n\t0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000,\n\t0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000,\n\t0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000,\n\t0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x4000, 0xe09: 0x4000, 0xe0a: 0x4000, 0xe0b: 0x4000,\n\t0xe0c: 0x4000, 0xe0d: 0x4000, 0xe0e: 0x4000, 0xe10: 0x4000, 0xe11: 0x4000,\n\t0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000,\n\t0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000,\n\t0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000,\n\t0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000,\n\t0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000,\n\t0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000,\n\t0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000,\n\t0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000,\n\t0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000,\n\t0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000,\n\t0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000,\n\t0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000,\n\t0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000,\n\t0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000,\n\t0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, 0xe7f: 0x4000,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000,\n\t0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000,\n\t0xe8c: 0x4000, 0xe8d: 0x4000, 0xe8e: 0x4000, 0xe8f: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000,\n\t0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000,\n\t0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000,\n\t0xe9e: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000,\n\t0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000,\n\t0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000,\n\t0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000,\n\t0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000,\n\t0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000,\n\t0xec6: 0x4000, 0xec7: 0x4000, 0xec8: 0x2000, 0xec9: 0x2000, 0xeca: 0x2000, 0xecb: 0x2000,\n\t0xecc: 0x2000, 0xecd: 0x2000, 0xece: 0x2000, 0xecf: 0x2000, 0xed0: 0x4000, 0xed1: 0x4000,\n\t0xed2: 0x4000, 0xed3: 0x4000, 0xed4: 0x4000, 0xed5: 0x4000, 0xed6: 0x4000, 0xed7: 0x4000,\n\t0xed8: 0x4000, 0xed9: 0x4000, 0xeda: 0x4000, 0xedb: 0x4000, 0xedc: 0x4000, 0xedd: 0x4000,\n\t0xede: 0x4000, 0xedf: 0x4000, 0xee0: 0x4000, 0xee1: 0x4000, 0xee2: 0x4000, 0xee3: 0x4000,\n\t0xee4: 0x4000, 0xee5: 0x4000, 0xee6: 0x4000, 0xee7: 0x4000, 0xee8: 0x4000, 0xee9: 0x4000,\n\t0xeea: 0x4000, 0xeeb: 0x4000, 0xeec: 0x4000, 0xeed: 0x4000, 0xeee: 0x4000, 0xeef: 0x4000,\n\t0xef0: 0x4000, 0xef1: 0x4000, 0xef2: 0x4000, 0xef3: 0x4000, 0xef4: 0x4000, 0xef5: 0x4000,\n\t0xef6: 0x4000, 0xef7: 0x4000, 0xef8: 0x4000, 0xef9: 0x4000, 0xefa: 0x4000, 0xefb: 0x4000,\n\t0xefc: 0x4000, 0xefd: 0x4000, 0xefe: 0x4000, 0xeff: 0x4000,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x4000, 0xf01: 0x4000, 0xf02: 0x4000, 0xf03: 0x4000, 0xf04: 0x4000, 0xf05: 0x4000,\n\t0xf06: 0x4000, 0xf07: 0x4000, 0xf08: 0x4000, 0xf09: 0x4000, 0xf0a: 0x4000, 0xf0b: 0x4000,\n\t0xf0c: 0x4000, 0xf0d: 0x4000, 0xf0e: 0x4000, 0xf0f: 0x4000, 0xf10: 0x4000, 0xf11: 0x4000,\n\t0xf12: 0x4000, 0xf13: 0x4000, 0xf14: 0x4000, 0xf15: 0x4000, 0xf16: 0x4000, 0xf17: 0x4000,\n\t0xf18: 0x4000, 0xf19: 0x4000, 0xf1a: 0x4000, 0xf1b: 0x4000, 0xf1c: 0x4000, 0xf1d: 0x4000,\n\t0xf1e: 0x4000, 0xf1f: 0x4000, 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000,\n\t0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000,\n\t0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000,\n\t0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000,\n\t0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000,\n\t0xf3c: 0x4000, 0xf3d: 0x4000, 0xf3e: 0x4000,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000,\n\t0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000,\n\t0xf4c: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000,\n\t0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000,\n\t0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000,\n\t0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000,\n\t0xf64: 0x4000, 0xf65: 0x4000, 0xf66: 0x4000, 0xf67: 0x4000, 0xf68: 0x4000, 0xf69: 0x4000,\n\t0xf6a: 0x4000, 0xf6b: 0x4000, 0xf6c: 0x4000, 0xf6d: 0x4000, 0xf6e: 0x4000, 0xf6f: 0x4000,\n\t0xf70: 0x4000, 0xf71: 0x4000, 0xf72: 0x4000, 0xf73: 0x4000, 0xf74: 0x4000, 0xf75: 0x4000,\n\t0xf76: 0x4000, 0xf77: 0x4000, 0xf78: 0x4000, 0xf79: 0x4000, 0xf7a: 0x4000, 0xf7b: 0x4000,\n\t0xf7c: 0x4000, 0xf7d: 0x4000, 0xf7e: 0x4000, 0xf7f: 0x4000,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x4000, 0xf81: 0x4000, 0xf82: 0x4000, 0xf83: 0x4000, 0xf84: 0x4000, 0xf85: 0x4000,\n\t0xf86: 0x4000,\n\t// Block 0x3f, offset 0xfc0\n\t0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000,\n\t0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe7: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000,\n\t0xfea: 0x4000, 0xfeb: 0x4000, 0xfec: 0x4000, 0xfed: 0x4000, 0xfee: 0x4000, 0xfef: 0x4000,\n\t0xff0: 0x4000, 0xff1: 0x4000, 0xff2: 0x4000, 0xff3: 0x4000, 0xff4: 0x4000, 0xff5: 0x4000,\n\t0xff6: 0x4000, 0xff7: 0x4000, 0xff8: 0x4000, 0xff9: 0x4000, 0xffa: 0x4000, 0xffb: 0x4000,\n\t0xffc: 0x4000,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x4000, 0x1001: 0x4000, 0x1002: 0x4000, 0x1003: 0x4000, 0x1004: 0x4000, 0x1005: 0x4000,\n\t0x1006: 0x4000, 0x1007: 0x4000, 0x1008: 0x4000, 0x1009: 0x4000, 0x100a: 0x4000, 0x100b: 0x4000,\n\t0x100c: 0x4000, 0x100d: 0x4000, 0x100e: 0x4000, 0x100f: 0x4000, 0x1010: 0x4000, 0x1011: 0x4000,\n\t0x1012: 0x4000, 0x1013: 0x4000, 0x1014: 0x4000, 0x1015: 0x4000, 0x1016: 0x4000, 0x1017: 0x4000,\n\t0x1018: 0x4000, 0x1019: 0x4000, 0x101a: 0x4000, 0x101b: 0x4000, 0x101c: 0x4000, 0x101d: 0x4000,\n\t0x101e: 0x4000, 0x101f: 0x4000, 0x1020: 0x4000, 0x1021: 0x4000, 0x1022: 0x4000, 0x1023: 0x4000,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x2000, 0x1041: 0x2000, 0x1042: 0x2000, 0x1043: 0x2000, 0x1044: 0x2000, 0x1045: 0x2000,\n\t0x1046: 0x2000, 0x1047: 0x2000, 0x1048: 0x2000, 0x1049: 0x2000, 0x104a: 0x2000, 0x104b: 0x2000,\n\t0x104c: 0x2000, 0x104d: 0x2000, 0x104e: 0x2000, 0x104f: 0x2000, 0x1050: 0x4000, 0x1051: 0x4000,\n\t0x1052: 0x4000, 0x1053: 0x4000, 0x1054: 0x4000, 0x1055: 0x4000, 0x1056: 0x4000, 0x1057: 0x4000,\n\t0x1058: 0x4000, 0x1059: 0x4000,\n\t0x1070: 0x4000, 0x1071: 0x4000, 0x1072: 0x4000, 0x1073: 0x4000, 0x1074: 0x4000, 0x1075: 0x4000,\n\t0x1076: 0x4000, 0x1077: 0x4000, 0x1078: 0x4000, 0x1079: 0x4000, 0x107a: 0x4000, 0x107b: 0x4000,\n\t0x107c: 0x4000, 0x107d: 0x4000, 0x107e: 0x4000, 0x107f: 0x4000,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x4000, 0x1081: 0x4000, 0x1082: 0x4000, 0x1083: 0x4000, 0x1084: 0x4000, 0x1085: 0x4000,\n\t0x1086: 0x4000, 0x1087: 0x4000, 0x1088: 0x4000, 0x1089: 0x4000, 0x108a: 0x4000, 0x108b: 0x4000,\n\t0x108c: 0x4000, 0x108d: 0x4000, 0x108e: 0x4000, 0x108f: 0x4000, 0x1090: 0x4000, 0x1091: 0x4000,\n\t0x1092: 0x4000, 0x1094: 0x4000, 0x1095: 0x4000, 0x1096: 0x4000, 0x1097: 0x4000,\n\t0x1098: 0x4000, 0x1099: 0x4000, 0x109a: 0x4000, 0x109b: 0x4000, 0x109c: 0x4000, 0x109d: 0x4000,\n\t0x109e: 0x4000, 0x109f: 0x4000, 0x10a0: 0x4000, 0x10a1: 0x4000, 0x10a2: 0x4000, 0x10a3: 0x4000,\n\t0x10a4: 0x4000, 0x10a5: 0x4000, 0x10a6: 0x4000, 0x10a8: 0x4000, 0x10a9: 0x4000,\n\t0x10aa: 0x4000, 0x10ab: 0x4000,\n\t// Block 0x43, offset 0x10c0\n\t0x10c1: 0x9012, 0x10c2: 0x9012, 0x10c3: 0x9012, 0x10c4: 0x9012, 0x10c5: 0x9012,\n\t0x10c6: 0x9012, 0x10c7: 0x9012, 0x10c8: 0x9012, 0x10c9: 0x9012, 0x10ca: 0x9012, 0x10cb: 0x9012,\n\t0x10cc: 0x9012, 0x10cd: 0x9012, 0x10ce: 0x9012, 0x10cf: 0x9012, 0x10d0: 0x9012, 0x10d1: 0x9012,\n\t0x10d2: 0x9012, 0x10d3: 0x9012, 0x10d4: 0x9012, 0x10d5: 0x9012, 0x10d6: 0x9012, 0x10d7: 0x9012,\n\t0x10d8: 0x9012, 0x10d9: 0x9012, 0x10da: 0x9012, 0x10db: 0x9012, 0x10dc: 0x9012, 0x10dd: 0x9012,\n\t0x10de: 0x9012, 0x10df: 0x9012, 0x10e0: 0x9049, 0x10e1: 0x9049, 0x10e2: 0x9049, 0x10e3: 0x9049,\n\t0x10e4: 0x9049, 0x10e5: 0x9049, 0x10e6: 0x9049, 0x10e7: 0x9049, 0x10e8: 0x9049, 0x10e9: 0x9049,\n\t0x10ea: 0x9049, 0x10eb: 0x9049, 0x10ec: 0x9049, 0x10ed: 0x9049, 0x10ee: 0x9049, 0x10ef: 0x9049,\n\t0x10f0: 0x9049, 0x10f1: 0x9049, 0x10f2: 0x9049, 0x10f3: 0x9049, 0x10f4: 0x9049, 0x10f5: 0x9049,\n\t0x10f6: 0x9049, 0x10f7: 0x9049, 0x10f8: 0x9049, 0x10f9: 0x9049, 0x10fa: 0x9049, 0x10fb: 0x9049,\n\t0x10fc: 0x9049, 0x10fd: 0x9049, 0x10fe: 0x9049, 0x10ff: 0x9049,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x9049, 0x1101: 0x9049, 0x1102: 0x9049, 0x1103: 0x9049, 0x1104: 0x9049, 0x1105: 0x9049,\n\t0x1106: 0x9049, 0x1107: 0x9049, 0x1108: 0x9049, 0x1109: 0x9049, 0x110a: 0x9049, 0x110b: 0x9049,\n\t0x110c: 0x9049, 0x110d: 0x9049, 0x110e: 0x9049, 0x110f: 0x9049, 0x1110: 0x9049, 0x1111: 0x9049,\n\t0x1112: 0x9049, 0x1113: 0x9049, 0x1114: 0x9049, 0x1115: 0x9049, 0x1116: 0x9049, 0x1117: 0x9049,\n\t0x1118: 0x9049, 0x1119: 0x9049, 0x111a: 0x9049, 0x111b: 0x9049, 0x111c: 0x9049, 0x111d: 0x9049,\n\t0x111e: 0x9049, 0x111f: 0x904a, 0x1120: 0x904b, 0x1121: 0xb04c, 0x1122: 0xb04d, 0x1123: 0xb04d,\n\t0x1124: 0xb04e, 0x1125: 0xb04f, 0x1126: 0xb050, 0x1127: 0xb051, 0x1128: 0xb052, 0x1129: 0xb053,\n\t0x112a: 0xb054, 0x112b: 0xb055, 0x112c: 0xb056, 0x112d: 0xb057, 0x112e: 0xb058, 0x112f: 0xb059,\n\t0x1130: 0xb05a, 0x1131: 0xb05b, 0x1132: 0xb05c, 0x1133: 0xb05d, 0x1134: 0xb05e, 0x1135: 0xb05f,\n\t0x1136: 0xb060, 0x1137: 0xb061, 0x1138: 0xb062, 0x1139: 0xb063, 0x113a: 0xb064, 0x113b: 0xb065,\n\t0x113c: 0xb052, 0x113d: 0xb066, 0x113e: 0xb067, 0x113f: 0xb055,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xb068, 0x1141: 0xb069, 0x1142: 0xb06a, 0x1143: 0xb06b, 0x1144: 0xb05a, 0x1145: 0xb056,\n\t0x1146: 0xb06c, 0x1147: 0xb06d, 0x1148: 0xb06b, 0x1149: 0xb06e, 0x114a: 0xb06b, 0x114b: 0xb06f,\n\t0x114c: 0xb06f, 0x114d: 0xb070, 0x114e: 0xb070, 0x114f: 0xb071, 0x1150: 0xb056, 0x1151: 0xb072,\n\t0x1152: 0xb073, 0x1153: 0xb072, 0x1154: 0xb074, 0x1155: 0xb073, 0x1156: 0xb075, 0x1157: 0xb075,\n\t0x1158: 0xb076, 0x1159: 0xb076, 0x115a: 0xb077, 0x115b: 0xb077, 0x115c: 0xb073, 0x115d: 0xb078,\n\t0x115e: 0xb079, 0x115f: 0xb067, 0x1160: 0xb07a, 0x1161: 0xb07b, 0x1162: 0xb07b, 0x1163: 0xb07b,\n\t0x1164: 0xb07b, 0x1165: 0xb07b, 0x1166: 0xb07b, 0x1167: 0xb07b, 0x1168: 0xb07b, 0x1169: 0xb07b,\n\t0x116a: 0xb07b, 0x116b: 0xb07b, 0x116c: 0xb07b, 0x116d: 0xb07b, 0x116e: 0xb07b, 0x116f: 0xb07b,\n\t0x1170: 0xb07c, 0x1171: 0xb07c, 0x1172: 0xb07c, 0x1173: 0xb07c, 0x1174: 0xb07c, 0x1175: 0xb07c,\n\t0x1176: 0xb07c, 0x1177: 0xb07c, 0x1178: 0xb07c, 0x1179: 0xb07c, 0x117a: 0xb07c, 0x117b: 0xb07c,\n\t0x117c: 0xb07c, 0x117d: 0xb07c, 0x117e: 0xb07c,\n\t// Block 0x46, offset 0x1180\n\t0x1182: 0xb07d, 0x1183: 0xb07e, 0x1184: 0xb07f, 0x1185: 0xb080,\n\t0x1186: 0xb07f, 0x1187: 0xb07e, 0x118a: 0xb081, 0x118b: 0xb082,\n\t0x118c: 0xb083, 0x118d: 0xb07f, 0x118e: 0xb080, 0x118f: 0xb07f,\n\t0x1192: 0xb084, 0x1193: 0xb085, 0x1194: 0xb084, 0x1195: 0xb086, 0x1196: 0xb084, 0x1197: 0xb087,\n\t0x119a: 0xb088, 0x119b: 0xb089, 0x119c: 0xb08a,\n\t0x11a0: 0x908b, 0x11a1: 0x908b, 0x11a2: 0x908c, 0x11a3: 0x908d,\n\t0x11a4: 0x908b, 0x11a5: 0x908e, 0x11a6: 0x908f, 0x11a8: 0xb090, 0x11a9: 0xb091,\n\t0x11aa: 0xb092, 0x11ab: 0xb091, 0x11ac: 0xb093, 0x11ad: 0xb094, 0x11ae: 0xb095,\n\t0x11bd: 0x2000,\n\t// Block 0x47, offset 0x11c0\n\t0x11e0: 0x4000,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, 0x1203: 0x4000, 0x1204: 0x4000, 0x1205: 0x4000,\n\t0x1206: 0x4000, 0x1207: 0x4000, 0x1208: 0x4000, 0x1209: 0x4000, 0x120a: 0x4000, 0x120b: 0x4000,\n\t0x120c: 0x4000, 0x120d: 0x4000, 0x120e: 0x4000, 0x120f: 0x4000, 0x1210: 0x4000, 0x1211: 0x4000,\n\t0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000,\n\t0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000,\n\t0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000,\n\t0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000,\n\t0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000,\n\t0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, 0x1249: 0x4000, 0x124a: 0x4000, 0x124b: 0x4000,\n\t0x124c: 0x4000, 0x124d: 0x4000, 0x124e: 0x4000, 0x124f: 0x4000, 0x1250: 0x4000, 0x1251: 0x4000,\n\t0x1252: 0x4000, 0x1253: 0x4000, 0x1254: 0x4000, 0x1255: 0x4000, 0x1256: 0x4000, 0x1257: 0x4000,\n\t0x1258: 0x4000, 0x1259: 0x4000, 0x125a: 0x4000, 0x125b: 0x4000, 0x125c: 0x4000, 0x125d: 0x4000,\n\t0x125e: 0x4000, 0x125f: 0x4000, 0x1260: 0x4000, 0x1261: 0x4000, 0x1262: 0x4000, 0x1263: 0x4000,\n\t0x1264: 0x4000, 0x1265: 0x4000, 0x1266: 0x4000, 0x1267: 0x4000, 0x1268: 0x4000, 0x1269: 0x4000,\n\t0x126a: 0x4000, 0x126b: 0x4000, 0x126c: 0x4000, 0x126d: 0x4000, 0x126e: 0x4000, 0x126f: 0x4000,\n\t0x1270: 0x4000, 0x1271: 0x4000, 0x1272: 0x4000,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x4000, 0x1281: 0x4000,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c4: 0x4000,\n\t// Block 0x4c, offset 0x1300\n\t0x130f: 0x4000,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x2000, 0x1341: 0x2000, 0x1342: 0x2000, 0x1343: 0x2000, 0x1344: 0x2000, 0x1345: 0x2000,\n\t0x1346: 0x2000, 0x1347: 0x2000, 0x1348: 0x2000, 0x1349: 0x2000, 0x134a: 0x2000,\n\t0x1350: 0x2000, 0x1351: 0x2000,\n\t0x1352: 0x2000, 0x1353: 0x2000, 0x1354: 0x2000, 0x1355: 0x2000, 0x1356: 0x2000, 0x1357: 0x2000,\n\t0x1358: 0x2000, 0x1359: 0x2000, 0x135a: 0x2000, 0x135b: 0x2000, 0x135c: 0x2000, 0x135d: 0x2000,\n\t0x135e: 0x2000, 0x135f: 0x2000, 0x1360: 0x2000, 0x1361: 0x2000, 0x1362: 0x2000, 0x1363: 0x2000,\n\t0x1364: 0x2000, 0x1365: 0x2000, 0x1366: 0x2000, 0x1367: 0x2000, 0x1368: 0x2000, 0x1369: 0x2000,\n\t0x136a: 0x2000, 0x136b: 0x2000, 0x136c: 0x2000, 0x136d: 0x2000,\n\t0x1370: 0x2000, 0x1371: 0x2000, 0x1372: 0x2000, 0x1373: 0x2000, 0x1374: 0x2000, 0x1375: 0x2000,\n\t0x1376: 0x2000, 0x1377: 0x2000, 0x1378: 0x2000, 0x1379: 0x2000, 0x137a: 0x2000, 0x137b: 0x2000,\n\t0x137c: 0x2000, 0x137d: 0x2000, 0x137e: 0x2000, 0x137f: 0x2000,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x2000, 0x1381: 0x2000, 0x1382: 0x2000, 0x1383: 0x2000, 0x1384: 0x2000, 0x1385: 0x2000,\n\t0x1386: 0x2000, 0x1387: 0x2000, 0x1388: 0x2000, 0x1389: 0x2000, 0x138a: 0x2000, 0x138b: 0x2000,\n\t0x138c: 0x2000, 0x138d: 0x2000, 0x138e: 0x2000, 0x138f: 0x2000, 0x1390: 0x2000, 0x1391: 0x2000,\n\t0x1392: 0x2000, 0x1393: 0x2000, 0x1394: 0x2000, 0x1395: 0x2000, 0x1396: 0x2000, 0x1397: 0x2000,\n\t0x1398: 0x2000, 0x1399: 0x2000, 0x139a: 0x2000, 0x139b: 0x2000, 0x139c: 0x2000, 0x139d: 0x2000,\n\t0x139e: 0x2000, 0x139f: 0x2000, 0x13a0: 0x2000, 0x13a1: 0x2000, 0x13a2: 0x2000, 0x13a3: 0x2000,\n\t0x13a4: 0x2000, 0x13a5: 0x2000, 0x13a6: 0x2000, 0x13a7: 0x2000, 0x13a8: 0x2000, 0x13a9: 0x2000,\n\t0x13b0: 0x2000, 0x13b1: 0x2000, 0x13b2: 0x2000, 0x13b3: 0x2000, 0x13b4: 0x2000, 0x13b5: 0x2000,\n\t0x13b6: 0x2000, 0x13b7: 0x2000, 0x13b8: 0x2000, 0x13b9: 0x2000, 0x13ba: 0x2000, 0x13bb: 0x2000,\n\t0x13bc: 0x2000, 0x13bd: 0x2000, 0x13be: 0x2000, 0x13bf: 0x2000,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x2000, 0x13c1: 0x2000, 0x13c2: 0x2000, 0x13c3: 0x2000, 0x13c4: 0x2000, 0x13c5: 0x2000,\n\t0x13c6: 0x2000, 0x13c7: 0x2000, 0x13c8: 0x2000, 0x13c9: 0x2000, 0x13ca: 0x2000, 0x13cb: 0x2000,\n\t0x13cc: 0x2000, 0x13cd: 0x2000, 0x13ce: 0x4000, 0x13cf: 0x2000, 0x13d0: 0x2000, 0x13d1: 0x4000,\n\t0x13d2: 0x4000, 0x13d3: 0x4000, 0x13d4: 0x4000, 0x13d5: 0x4000, 0x13d6: 0x4000, 0x13d7: 0x4000,\n\t0x13d8: 0x4000, 0x13d9: 0x4000, 0x13da: 0x4000, 0x13db: 0x2000, 0x13dc: 0x2000, 0x13dd: 0x2000,\n\t0x13de: 0x2000, 0x13df: 0x2000, 0x13e0: 0x2000, 0x13e1: 0x2000, 0x13e2: 0x2000, 0x13e3: 0x2000,\n\t0x13e4: 0x2000, 0x13e5: 0x2000, 0x13e6: 0x2000, 0x13e7: 0x2000, 0x13e8: 0x2000, 0x13e9: 0x2000,\n\t0x13ea: 0x2000, 0x13eb: 0x2000, 0x13ec: 0x2000,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x4000, 0x1401: 0x4000, 0x1402: 0x4000,\n\t0x1410: 0x4000, 0x1411: 0x4000,\n\t0x1412: 0x4000, 0x1413: 0x4000, 0x1414: 0x4000, 0x1415: 0x4000, 0x1416: 0x4000, 0x1417: 0x4000,\n\t0x1418: 0x4000, 0x1419: 0x4000, 0x141a: 0x4000, 0x141b: 0x4000, 0x141c: 0x4000, 0x141d: 0x4000,\n\t0x141e: 0x4000, 0x141f: 0x4000, 0x1420: 0x4000, 0x1421: 0x4000, 0x1422: 0x4000, 0x1423: 0x4000,\n\t0x1424: 0x4000, 0x1425: 0x4000, 0x1426: 0x4000, 0x1427: 0x4000, 0x1428: 0x4000, 0x1429: 0x4000,\n\t0x142a: 0x4000, 0x142b: 0x4000, 0x142c: 0x4000, 0x142d: 0x4000, 0x142e: 0x4000, 0x142f: 0x4000,\n\t0x1430: 0x4000, 0x1431: 0x4000, 0x1432: 0x4000, 0x1433: 0x4000, 0x1434: 0x4000, 0x1435: 0x4000,\n\t0x1436: 0x4000, 0x1437: 0x4000, 0x1438: 0x4000, 0x1439: 0x4000, 0x143a: 0x4000, 0x143b: 0x4000,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x4000, 0x1441: 0x4000, 0x1442: 0x4000, 0x1443: 0x4000, 0x1444: 0x4000, 0x1445: 0x4000,\n\t0x1446: 0x4000, 0x1447: 0x4000, 0x1448: 0x4000,\n\t0x1450: 0x4000, 0x1451: 0x4000,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x4000, 0x1481: 0x4000, 0x1482: 0x4000, 0x1483: 0x4000, 0x1484: 0x4000, 0x1485: 0x4000,\n\t0x1486: 0x4000, 0x1487: 0x4000, 0x1488: 0x4000, 0x1489: 0x4000, 0x148a: 0x4000, 0x148b: 0x4000,\n\t0x148c: 0x4000, 0x148d: 0x4000, 0x148e: 0x4000, 0x148f: 0x4000, 0x1490: 0x4000, 0x1491: 0x4000,\n\t0x1492: 0x4000, 0x1493: 0x4000, 0x1494: 0x4000, 0x1495: 0x4000, 0x1496: 0x4000, 0x1497: 0x4000,\n\t0x1498: 0x4000, 0x1499: 0x4000, 0x149a: 0x4000, 0x149b: 0x4000, 0x149c: 0x4000, 0x149d: 0x4000,\n\t0x149e: 0x4000, 0x149f: 0x4000, 0x14a0: 0x4000,\n\t0x14ad: 0x4000, 0x14ae: 0x4000, 0x14af: 0x4000,\n\t0x14b0: 0x4000, 0x14b1: 0x4000, 0x14b2: 0x4000, 0x14b3: 0x4000, 0x14b4: 0x4000, 0x14b5: 0x4000,\n\t0x14b7: 0x4000, 0x14b8: 0x4000, 0x14b9: 0x4000, 0x14ba: 0x4000, 0x14bb: 0x4000,\n\t0x14bc: 0x4000, 0x14bd: 0x4000, 0x14be: 0x4000, 0x14bf: 0x4000,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x4000, 0x14c1: 0x4000, 0x14c2: 0x4000, 0x14c3: 0x4000, 0x14c4: 0x4000, 0x14c5: 0x4000,\n\t0x14c6: 0x4000, 0x14c7: 0x4000, 0x14c8: 0x4000, 0x14c9: 0x4000, 0x14ca: 0x4000, 0x14cb: 0x4000,\n\t0x14cc: 0x4000, 0x14cd: 0x4000, 0x14ce: 0x4000, 0x14cf: 0x4000, 0x14d0: 0x4000, 0x14d1: 0x4000,\n\t0x14d2: 0x4000, 0x14d3: 0x4000, 0x14d4: 0x4000, 0x14d5: 0x4000, 0x14d6: 0x4000, 0x14d7: 0x4000,\n\t0x14d8: 0x4000, 0x14d9: 0x4000, 0x14da: 0x4000, 0x14db: 0x4000, 0x14dc: 0x4000, 0x14dd: 0x4000,\n\t0x14de: 0x4000, 0x14df: 0x4000, 0x14e0: 0x4000, 0x14e1: 0x4000, 0x14e2: 0x4000, 0x14e3: 0x4000,\n\t0x14e4: 0x4000, 0x14e5: 0x4000, 0x14e6: 0x4000, 0x14e7: 0x4000, 0x14e8: 0x4000, 0x14e9: 0x4000,\n\t0x14ea: 0x4000, 0x14eb: 0x4000, 0x14ec: 0x4000, 0x14ed: 0x4000, 0x14ee: 0x4000, 0x14ef: 0x4000,\n\t0x14f0: 0x4000, 0x14f1: 0x4000, 0x14f2: 0x4000, 0x14f3: 0x4000, 0x14f4: 0x4000, 0x14f5: 0x4000,\n\t0x14f6: 0x4000, 0x14f7: 0x4000, 0x14f8: 0x4000, 0x14f9: 0x4000, 0x14fa: 0x4000, 0x14fb: 0x4000,\n\t0x14fc: 0x4000, 0x14fe: 0x4000, 0x14ff: 0x4000,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x4000, 0x1501: 0x4000, 0x1502: 0x4000, 0x1503: 0x4000, 0x1504: 0x4000, 0x1505: 0x4000,\n\t0x1506: 0x4000, 0x1507: 0x4000, 0x1508: 0x4000, 0x1509: 0x4000, 0x150a: 0x4000, 0x150b: 0x4000,\n\t0x150c: 0x4000, 0x150d: 0x4000, 0x150e: 0x4000, 0x150f: 0x4000, 0x1510: 0x4000, 0x1511: 0x4000,\n\t0x1512: 0x4000, 0x1513: 0x4000,\n\t0x1520: 0x4000, 0x1521: 0x4000, 0x1522: 0x4000, 0x1523: 0x4000,\n\t0x1524: 0x4000, 0x1525: 0x4000, 0x1526: 0x4000, 0x1527: 0x4000, 0x1528: 0x4000, 0x1529: 0x4000,\n\t0x152a: 0x4000, 0x152b: 0x4000, 0x152c: 0x4000, 0x152d: 0x4000, 0x152e: 0x4000, 0x152f: 0x4000,\n\t0x1530: 0x4000, 0x1531: 0x4000, 0x1532: 0x4000, 0x1533: 0x4000, 0x1534: 0x4000, 0x1535: 0x4000,\n\t0x1536: 0x4000, 0x1537: 0x4000, 0x1538: 0x4000, 0x1539: 0x4000, 0x153a: 0x4000, 0x153b: 0x4000,\n\t0x153c: 0x4000, 0x153d: 0x4000, 0x153e: 0x4000, 0x153f: 0x4000,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x4000, 0x1541: 0x4000, 0x1542: 0x4000, 0x1543: 0x4000, 0x1544: 0x4000, 0x1545: 0x4000,\n\t0x1546: 0x4000, 0x1547: 0x4000, 0x1548: 0x4000, 0x1549: 0x4000, 0x154a: 0x4000,\n\t0x154f: 0x4000, 0x1550: 0x4000, 0x1551: 0x4000,\n\t0x1552: 0x4000, 0x1553: 0x4000,\n\t0x1560: 0x4000, 0x1561: 0x4000, 0x1562: 0x4000, 0x1563: 0x4000,\n\t0x1564: 0x4000, 0x1565: 0x4000, 0x1566: 0x4000, 0x1567: 0x4000, 0x1568: 0x4000, 0x1569: 0x4000,\n\t0x156a: 0x4000, 0x156b: 0x4000, 0x156c: 0x4000, 0x156d: 0x4000, 0x156e: 0x4000, 0x156f: 0x4000,\n\t0x1570: 0x4000, 0x1574: 0x4000,\n\t0x1578: 0x4000, 0x1579: 0x4000, 0x157a: 0x4000, 0x157b: 0x4000,\n\t0x157c: 0x4000, 0x157d: 0x4000, 0x157e: 0x4000, 0x157f: 0x4000,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x4000, 0x1582: 0x4000, 0x1583: 0x4000, 0x1584: 0x4000, 0x1585: 0x4000,\n\t0x1586: 0x4000, 0x1587: 0x4000, 0x1588: 0x4000, 0x1589: 0x4000, 0x158a: 0x4000, 0x158b: 0x4000,\n\t0x158c: 0x4000, 0x158d: 0x4000, 0x158e: 0x4000, 0x158f: 0x4000, 0x1590: 0x4000, 0x1591: 0x4000,\n\t0x1592: 0x4000, 0x1593: 0x4000, 0x1594: 0x4000, 0x1595: 0x4000, 0x1596: 0x4000, 0x1597: 0x4000,\n\t0x1598: 0x4000, 0x1599: 0x4000, 0x159a: 0x4000, 0x159b: 0x4000, 0x159c: 0x4000, 0x159d: 0x4000,\n\t0x159e: 0x4000, 0x159f: 0x4000, 0x15a0: 0x4000, 0x15a1: 0x4000, 0x15a2: 0x4000, 0x15a3: 0x4000,\n\t0x15a4: 0x4000, 0x15a5: 0x4000, 0x15a6: 0x4000, 0x15a7: 0x4000, 0x15a8: 0x4000, 0x15a9: 0x4000,\n\t0x15aa: 0x4000, 0x15ab: 0x4000, 0x15ac: 0x4000, 0x15ad: 0x4000, 0x15ae: 0x4000, 0x15af: 0x4000,\n\t0x15b0: 0x4000, 0x15b1: 0x4000, 0x15b2: 0x4000, 0x15b3: 0x4000, 0x15b4: 0x4000, 0x15b5: 0x4000,\n\t0x15b6: 0x4000, 0x15b7: 0x4000, 0x15b8: 0x4000, 0x15b9: 0x4000, 0x15ba: 0x4000, 0x15bb: 0x4000,\n\t0x15bc: 0x4000, 0x15bd: 0x4000, 0x15be: 0x4000, 0x15bf: 0x4000,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x4000, 0x15c1: 0x4000, 0x15c2: 0x4000, 0x15c3: 0x4000, 0x15c4: 0x4000, 0x15c5: 0x4000,\n\t0x15c6: 0x4000, 0x15c7: 0x4000, 0x15c8: 0x4000, 0x15c9: 0x4000, 0x15ca: 0x4000, 0x15cb: 0x4000,\n\t0x15cc: 0x4000, 0x15cd: 0x4000, 0x15ce: 0x4000, 0x15cf: 0x4000, 0x15d0: 0x4000, 0x15d1: 0x4000,\n\t0x15d2: 0x4000, 0x15d3: 0x4000, 0x15d4: 0x4000, 0x15d5: 0x4000, 0x15d6: 0x4000, 0x15d7: 0x4000,\n\t0x15d8: 0x4000, 0x15d9: 0x4000, 0x15da: 0x4000, 0x15db: 0x4000, 0x15dc: 0x4000, 0x15dd: 0x4000,\n\t0x15de: 0x4000, 0x15df: 0x4000, 0x15e0: 0x4000, 0x15e1: 0x4000, 0x15e2: 0x4000, 0x15e3: 0x4000,\n\t0x15e4: 0x4000, 0x15e5: 0x4000, 0x15e6: 0x4000, 0x15e7: 0x4000, 0x15e8: 0x4000, 0x15e9: 0x4000,\n\t0x15ea: 0x4000, 0x15eb: 0x4000, 0x15ec: 0x4000, 0x15ed: 0x4000, 0x15ee: 0x4000, 0x15ef: 0x4000,\n\t0x15f0: 0x4000, 0x15f1: 0x4000, 0x15f2: 0x4000, 0x15f3: 0x4000, 0x15f4: 0x4000, 0x15f5: 0x4000,\n\t0x15f6: 0x4000, 0x15f7: 0x4000, 0x15f8: 0x4000, 0x15f9: 0x4000, 0x15fa: 0x4000, 0x15fb: 0x4000,\n\t0x15fc: 0x4000, 0x15ff: 0x4000,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x4000, 0x1601: 0x4000, 0x1602: 0x4000, 0x1603: 0x4000, 0x1604: 0x4000, 0x1605: 0x4000,\n\t0x1606: 0x4000, 0x1607: 0x4000, 0x1608: 0x4000, 0x1609: 0x4000, 0x160a: 0x4000, 0x160b: 0x4000,\n\t0x160c: 0x4000, 0x160d: 0x4000, 0x160e: 0x4000, 0x160f: 0x4000, 0x1610: 0x4000, 0x1611: 0x4000,\n\t0x1612: 0x4000, 0x1613: 0x4000, 0x1614: 0x4000, 0x1615: 0x4000, 0x1616: 0x4000, 0x1617: 0x4000,\n\t0x1618: 0x4000, 0x1619: 0x4000, 0x161a: 0x4000, 0x161b: 0x4000, 0x161c: 0x4000, 0x161d: 0x4000,\n\t0x161e: 0x4000, 0x161f: 0x4000, 0x1620: 0x4000, 0x1621: 0x4000, 0x1622: 0x4000, 0x1623: 0x4000,\n\t0x1624: 0x4000, 0x1625: 0x4000, 0x1626: 0x4000, 0x1627: 0x4000, 0x1628: 0x4000, 0x1629: 0x4000,\n\t0x162a: 0x4000, 0x162b: 0x4000, 0x162c: 0x4000, 0x162d: 0x4000, 0x162e: 0x4000, 0x162f: 0x4000,\n\t0x1630: 0x4000, 0x1631: 0x4000, 0x1632: 0x4000, 0x1633: 0x4000, 0x1634: 0x4000, 0x1635: 0x4000,\n\t0x1636: 0x4000, 0x1637: 0x4000, 0x1638: 0x4000, 0x1639: 0x4000, 0x163a: 0x4000, 0x163b: 0x4000,\n\t0x163c: 0x4000, 0x163d: 0x4000,\n\t// Block 0x59, offset 0x1640\n\t0x164b: 0x4000,\n\t0x164c: 0x4000, 0x164d: 0x4000, 0x164e: 0x4000, 0x1650: 0x4000, 0x1651: 0x4000,\n\t0x1652: 0x4000, 0x1653: 0x4000, 0x1654: 0x4000, 0x1655: 0x4000, 0x1656: 0x4000, 0x1657: 0x4000,\n\t0x1658: 0x4000, 0x1659: 0x4000, 0x165a: 0x4000, 0x165b: 0x4000, 0x165c: 0x4000, 0x165d: 0x4000,\n\t0x165e: 0x4000, 0x165f: 0x4000, 0x1660: 0x4000, 0x1661: 0x4000, 0x1662: 0x4000, 0x1663: 0x4000,\n\t0x1664: 0x4000, 0x1665: 0x4000, 0x1666: 0x4000, 0x1667: 0x4000,\n\t0x167a: 0x4000,\n\t// Block 0x5a, offset 0x1680\n\t0x1695: 0x4000, 0x1696: 0x4000,\n\t0x16a4: 0x4000,\n\t// Block 0x5b, offset 0x16c0\n\t0x16fb: 0x4000,\n\t0x16fc: 0x4000, 0x16fd: 0x4000, 0x16fe: 0x4000, 0x16ff: 0x4000,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x4000, 0x1701: 0x4000, 0x1702: 0x4000, 0x1703: 0x4000, 0x1704: 0x4000, 0x1705: 0x4000,\n\t0x1706: 0x4000, 0x1707: 0x4000, 0x1708: 0x4000, 0x1709: 0x4000, 0x170a: 0x4000, 0x170b: 0x4000,\n\t0x170c: 0x4000, 0x170d: 0x4000, 0x170e: 0x4000, 0x170f: 0x4000,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x4000, 0x1741: 0x4000, 0x1742: 0x4000, 0x1743: 0x4000, 0x1744: 0x4000, 0x1745: 0x4000,\n\t0x174c: 0x4000, 0x1750: 0x4000, 0x1751: 0x4000,\n\t0x1752: 0x4000,\n\t0x176b: 0x4000, 0x176c: 0x4000,\n\t0x1774: 0x4000, 0x1775: 0x4000,\n\t0x1776: 0x4000,\n\t// Block 0x5e, offset 0x1780\n\t0x1790: 0x4000, 0x1791: 0x4000,\n\t0x1792: 0x4000, 0x1793: 0x4000, 0x1794: 0x4000, 0x1795: 0x4000, 0x1796: 0x4000, 0x1797: 0x4000,\n\t0x1798: 0x4000, 0x1799: 0x4000, 0x179a: 0x4000, 0x179b: 0x4000, 0x179c: 0x4000, 0x179d: 0x4000,\n\t0x179e: 0x4000, 0x17a0: 0x4000, 0x17a1: 0x4000, 0x17a2: 0x4000, 0x17a3: 0x4000,\n\t0x17a4: 0x4000, 0x17a5: 0x4000, 0x17a6: 0x4000, 0x17a7: 0x4000,\n\t0x17b0: 0x4000, 0x17b3: 0x4000, 0x17b4: 0x4000, 0x17b5: 0x4000,\n\t0x17b6: 0x4000, 0x17b7: 0x4000, 0x17b8: 0x4000, 0x17b9: 0x4000, 0x17ba: 0x4000, 0x17bb: 0x4000,\n\t0x17bc: 0x4000, 0x17bd: 0x4000, 0x17be: 0x4000,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x4000, 0x17c1: 0x4000, 0x17c2: 0x4000, 0x17c3: 0x4000, 0x17c4: 0x4000, 0x17c5: 0x4000,\n\t0x17c6: 0x4000, 0x17c7: 0x4000, 0x17c8: 0x4000, 0x17c9: 0x4000, 0x17ca: 0x4000, 0x17cb: 0x4000,\n\t0x17d0: 0x4000, 0x17d1: 0x4000,\n\t0x17d2: 0x4000, 0x17d3: 0x4000, 0x17d4: 0x4000, 0x17d5: 0x4000, 0x17d6: 0x4000, 0x17d7: 0x4000,\n\t0x17d8: 0x4000, 0x17d9: 0x4000, 0x17da: 0x4000, 0x17db: 0x4000, 0x17dc: 0x4000, 0x17dd: 0x4000,\n\t0x17de: 0x4000,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x4000, 0x1801: 0x4000, 0x1802: 0x4000, 0x1803: 0x4000, 0x1804: 0x4000, 0x1805: 0x4000,\n\t0x1806: 0x4000, 0x1807: 0x4000, 0x1808: 0x4000, 0x1809: 0x4000, 0x180a: 0x4000, 0x180b: 0x4000,\n\t0x180c: 0x4000, 0x180d: 0x4000, 0x180e: 0x4000, 0x180f: 0x4000, 0x1810: 0x4000, 0x1811: 0x4000,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x4000,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x2000, 0x1881: 0x2000, 0x1882: 0x2000, 0x1883: 0x2000, 0x1884: 0x2000, 0x1885: 0x2000,\n\t0x1886: 0x2000, 0x1887: 0x2000, 0x1888: 0x2000, 0x1889: 0x2000, 0x188a: 0x2000, 0x188b: 0x2000,\n\t0x188c: 0x2000, 0x188d: 0x2000, 0x188e: 0x2000, 0x188f: 0x2000, 0x1890: 0x2000, 0x1891: 0x2000,\n\t0x1892: 0x2000, 0x1893: 0x2000, 0x1894: 0x2000, 0x1895: 0x2000, 0x1896: 0x2000, 0x1897: 0x2000,\n\t0x1898: 0x2000, 0x1899: 0x2000, 0x189a: 0x2000, 0x189b: 0x2000, 0x189c: 0x2000, 0x189d: 0x2000,\n\t0x189e: 0x2000, 0x189f: 0x2000, 0x18a0: 0x2000, 0x18a1: 0x2000, 0x18a2: 0x2000, 0x18a3: 0x2000,\n\t0x18a4: 0x2000, 0x18a5: 0x2000, 0x18a6: 0x2000, 0x18a7: 0x2000, 0x18a8: 0x2000, 0x18a9: 0x2000,\n\t0x18aa: 0x2000, 0x18ab: 0x2000, 0x18ac: 0x2000, 0x18ad: 0x2000, 0x18ae: 0x2000, 0x18af: 0x2000,\n\t0x18b0: 0x2000, 0x18b1: 0x2000, 0x18b2: 0x2000, 0x18b3: 0x2000, 0x18b4: 0x2000, 0x18b5: 0x2000,\n\t0x18b6: 0x2000, 0x18b7: 0x2000, 0x18b8: 0x2000, 0x18b9: 0x2000, 0x18ba: 0x2000, 0x18bb: 0x2000,\n\t0x18bc: 0x2000, 0x18bd: 0x2000,\n}\n\n// widthIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar widthIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05,\n\t0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b,\n\t0xd0: 0x0c, 0xd1: 0x0d,\n\t0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06,\n\t0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a,\n\t0xf0: 0x0f, 0xf3: 0x12, 0xf4: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x104: 0x0e, 0x105: 0x0f,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16,\n\t0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, 0x14f: 0x1b,\n\t0x151: 0x1c, 0x152: 0x08, 0x153: 0x1d, 0x154: 0x1e, 0x155: 0x1f, 0x156: 0x20, 0x157: 0x21,\n\t0x158: 0x22, 0x159: 0x23, 0x15a: 0x24, 0x15b: 0x25, 0x15c: 0x26, 0x15d: 0x27, 0x15e: 0x28, 0x15f: 0x29,\n\t0x166: 0x2a,\n\t0x16c: 0x2b, 0x16d: 0x2c,\n\t0x17a: 0x2d, 0x17b: 0x2e, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2f,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x30, 0x181: 0x31, 0x182: 0x32, 0x183: 0x33, 0x184: 0x34, 0x185: 0x35, 0x186: 0x36, 0x187: 0x37,\n\t0x188: 0x38, 0x189: 0x39, 0x18a: 0x0e, 0x18b: 0x3a, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e,\n\t0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e,\n\t0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e,\n\t0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e,\n\t0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e,\n\t0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e,\n\t0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e,\n\t0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e,\n\t0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e,\n\t0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e,\n\t0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e,\n\t0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e,\n\t0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e,\n\t0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e,\n\t0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e,\n\t0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e,\n\t0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e,\n\t0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e,\n\t0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e,\n\t0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e,\n\t0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e,\n\t0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e,\n\t0x250: 0x0e, 0x251: 0x0e, 0x252: 0x3b, 0x253: 0x3c,\n\t0x265: 0x3d,\n\t0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e,\n\t0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e,\n\t0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e,\n\t0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e,\n\t0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3e,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08,\n\t0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08,\n\t0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08,\n\t0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08,\n\t0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08,\n\t0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08,\n\t0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08,\n\t0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08,\n\t0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08,\n\t0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08,\n\t0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08,\n\t0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e,\n\t0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e,\n\t0x338: 0x3f, 0x339: 0x40, 0x33c: 0x41, 0x33d: 0x42, 0x33e: 0x43, 0x33f: 0x44,\n\t// Block 0xd, offset 0x340\n\t0x37f: 0x45,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0e, 0x381: 0x0e, 0x382: 0x0e, 0x383: 0x0e, 0x384: 0x0e, 0x385: 0x0e, 0x386: 0x0e, 0x387: 0x0e,\n\t0x388: 0x0e, 0x389: 0x0e, 0x38a: 0x0e, 0x38b: 0x0e, 0x38c: 0x0e, 0x38d: 0x0e, 0x38e: 0x0e, 0x38f: 0x0e,\n\t0x390: 0x0e, 0x391: 0x0e, 0x392: 0x0e, 0x393: 0x0e, 0x394: 0x0e, 0x395: 0x0e, 0x396: 0x0e, 0x397: 0x0e,\n\t0x398: 0x0e, 0x399: 0x0e, 0x39a: 0x0e, 0x39b: 0x0e, 0x39c: 0x0e, 0x39d: 0x0e, 0x39e: 0x0e, 0x39f: 0x46,\n\t0x3a0: 0x0e, 0x3a1: 0x0e, 0x3a2: 0x0e, 0x3a3: 0x0e, 0x3a4: 0x0e, 0x3a5: 0x0e, 0x3a6: 0x0e, 0x3a7: 0x0e,\n\t0x3a8: 0x0e, 0x3a9: 0x0e, 0x3aa: 0x0e, 0x3ab: 0x47,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x48,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x49, 0x403: 0x4a, 0x404: 0x4b, 0x405: 0x4c, 0x406: 0x4d,\n\t0x408: 0x4e, 0x409: 0x4f, 0x40c: 0x50, 0x40d: 0x51, 0x40e: 0x52, 0x40f: 0x53,\n\t0x410: 0x3a, 0x411: 0x54, 0x412: 0x0e, 0x413: 0x55, 0x414: 0x56, 0x415: 0x57, 0x416: 0x58, 0x417: 0x59,\n\t0x418: 0x0e, 0x419: 0x5a, 0x41a: 0x0e, 0x41b: 0x5b,\n\t0x424: 0x5c, 0x425: 0x5d, 0x426: 0x5e, 0x427: 0x5f,\n\t// Block 0x11, offset 0x440\n\t0x456: 0x0b, 0x457: 0x06,\n\t0x458: 0x0c, 0x45b: 0x0d, 0x45f: 0x0e,\n\t0x460: 0x06, 0x461: 0x06, 0x462: 0x06, 0x463: 0x06, 0x464: 0x06, 0x465: 0x06, 0x466: 0x06, 0x467: 0x06,\n\t0x468: 0x06, 0x469: 0x06, 0x46a: 0x06, 0x46b: 0x06, 0x46c: 0x06, 0x46d: 0x06, 0x46e: 0x06, 0x46f: 0x06,\n\t0x470: 0x06, 0x471: 0x06, 0x472: 0x06, 0x473: 0x06, 0x474: 0x06, 0x475: 0x06, 0x476: 0x06, 0x477: 0x06,\n\t0x478: 0x06, 0x479: 0x06, 0x47a: 0x06, 0x47b: 0x06, 0x47c: 0x06, 0x47d: 0x06, 0x47e: 0x06, 0x47f: 0x06,\n\t// Block 0x12, offset 0x480\n\t0x484: 0x08, 0x485: 0x08, 0x486: 0x08, 0x487: 0x09,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x08, 0x4c1: 0x08, 0x4c2: 0x08, 0x4c3: 0x08, 0x4c4: 0x08, 0x4c5: 0x08, 0x4c6: 0x08, 0x4c7: 0x08,\n\t0x4c8: 0x08, 0x4c9: 0x08, 0x4ca: 0x08, 0x4cb: 0x08, 0x4cc: 0x08, 0x4cd: 0x08, 0x4ce: 0x08, 0x4cf: 0x08,\n\t0x4d0: 0x08, 0x4d1: 0x08, 0x4d2: 0x08, 0x4d3: 0x08, 0x4d4: 0x08, 0x4d5: 0x08, 0x4d6: 0x08, 0x4d7: 0x08,\n\t0x4d8: 0x08, 0x4d9: 0x08, 0x4da: 0x08, 0x4db: 0x08, 0x4dc: 0x08, 0x4dd: 0x08, 0x4de: 0x08, 0x4df: 0x08,\n\t0x4e0: 0x08, 0x4e1: 0x08, 0x4e2: 0x08, 0x4e3: 0x08, 0x4e4: 0x08, 0x4e5: 0x08, 0x4e6: 0x08, 0x4e7: 0x08,\n\t0x4e8: 0x08, 0x4e9: 0x08, 0x4ea: 0x08, 0x4eb: 0x08, 0x4ec: 0x08, 0x4ed: 0x08, 0x4ee: 0x08, 0x4ef: 0x08,\n\t0x4f0: 0x08, 0x4f1: 0x08, 0x4f2: 0x08, 0x4f3: 0x08, 0x4f4: 0x08, 0x4f5: 0x08, 0x4f6: 0x08, 0x4f7: 0x08,\n\t0x4f8: 0x08, 0x4f9: 0x08, 0x4fa: 0x08, 0x4fb: 0x08, 0x4fc: 0x08, 0x4fd: 0x08, 0x4fe: 0x08, 0x4ff: 0x60,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x10,\n\t0x530: 0x09, 0x531: 0x09, 0x532: 0x09, 0x533: 0x09, 0x534: 0x09, 0x535: 0x09, 0x536: 0x09, 0x537: 0x09,\n\t0x538: 0x09, 0x539: 0x09, 0x53a: 0x09, 0x53b: 0x09, 0x53c: 0x09, 0x53d: 0x09, 0x53e: 0x09, 0x53f: 0x11,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x09, 0x541: 0x09, 0x542: 0x09, 0x543: 0x09, 0x544: 0x09, 0x545: 0x09, 0x546: 0x09, 0x547: 0x09,\n\t0x548: 0x09, 0x549: 0x09, 0x54a: 0x09, 0x54b: 0x09, 0x54c: 0x09, 0x54d: 0x09, 0x54e: 0x09, 0x54f: 0x11,\n}\n\n// inverseData contains 4-byte entries of the following format:\n//   <length> <modified UTF-8-encoded rune> <0 padding>\n// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the\n// UTF-8 encoding of the original rune. Mappings often have the following\n// pattern:\n//   Ａ -> A  (U+FF21 -> U+0041)\n//   Ｂ -> B  (U+FF22 -> U+0042)\n//   ...\n// By xor-ing the last byte the same entry can be shared by many mappings. This\n// reduces the total number of distinct entries by about two thirds.\n// The resulting entry for the aforementioned mappings is\n//   { 0x01, 0xE0, 0x00, 0x00 }\n// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get\n//   E0 ^ A1 = 41.\n// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get\n//   E0 ^ A2 = 42.\n// Note that because of the xor-ing, the byte sequence stored in the entry is\n// not valid UTF-8.\nvar inverseData = [150][4]byte{\n\t{0x00, 0x00, 0x00, 0x00},\n\t{0x03, 0xe3, 0x80, 0xa0},\n\t{0x03, 0xef, 0xbc, 0xa0},\n\t{0x03, 0xef, 0xbc, 0xe0},\n\t{0x03, 0xef, 0xbd, 0xe0},\n\t{0x03, 0xef, 0xbf, 0x02},\n\t{0x03, 0xef, 0xbf, 0x00},\n\t{0x03, 0xef, 0xbf, 0x0e},\n\t{0x03, 0xef, 0xbf, 0x0c},\n\t{0x03, 0xef, 0xbf, 0x0f},\n\t{0x03, 0xef, 0xbf, 0x39},\n\t{0x03, 0xef, 0xbf, 0x3b},\n\t{0x03, 0xef, 0xbf, 0x3f},\n\t{0x03, 0xef, 0xbf, 0x2a},\n\t{0x03, 0xef, 0xbf, 0x0d},\n\t{0x03, 0xef, 0xbf, 0x25},\n\t{0x03, 0xef, 0xbd, 0x1a},\n\t{0x03, 0xef, 0xbd, 0x26},\n\t{0x01, 0xa0, 0x00, 0x00},\n\t{0x03, 0xef, 0xbd, 0x25},\n\t{0x03, 0xef, 0xbd, 0x23},\n\t{0x03, 0xef, 0xbd, 0x2e},\n\t{0x03, 0xef, 0xbe, 0x07},\n\t{0x03, 0xef, 0xbe, 0x05},\n\t{0x03, 0xef, 0xbd, 0x06},\n\t{0x03, 0xef, 0xbd, 0x13},\n\t{0x03, 0xef, 0xbd, 0x0b},\n\t{0x03, 0xef, 0xbd, 0x16},\n\t{0x03, 0xef, 0xbd, 0x0c},\n\t{0x03, 0xef, 0xbd, 0x15},\n\t{0x03, 0xef, 0xbd, 0x0d},\n\t{0x03, 0xef, 0xbd, 0x1c},\n\t{0x03, 0xef, 0xbd, 0x02},\n\t{0x03, 0xef, 0xbd, 0x1f},\n\t{0x03, 0xef, 0xbd, 0x1d},\n\t{0x03, 0xef, 0xbd, 0x17},\n\t{0x03, 0xef, 0xbd, 0x08},\n\t{0x03, 0xef, 0xbd, 0x09},\n\t{0x03, 0xef, 0xbd, 0x0e},\n\t{0x03, 0xef, 0xbd, 0x04},\n\t{0x03, 0xef, 0xbd, 0x05},\n\t{0x03, 0xef, 0xbe, 0x3f},\n\t{0x03, 0xef, 0xbe, 0x00},\n\t{0x03, 0xef, 0xbd, 0x2c},\n\t{0x03, 0xef, 0xbe, 0x06},\n\t{0x03, 0xef, 0xbe, 0x0c},\n\t{0x03, 0xef, 0xbe, 0x0f},\n\t{0x03, 0xef, 0xbe, 0x0d},\n\t{0x03, 0xef, 0xbe, 0x0b},\n\t{0x03, 0xef, 0xbe, 0x19},\n\t{0x03, 0xef, 0xbe, 0x15},\n\t{0x03, 0xef, 0xbe, 0x11},\n\t{0x03, 0xef, 0xbe, 0x31},\n\t{0x03, 0xef, 0xbe, 0x33},\n\t{0x03, 0xef, 0xbd, 0x0f},\n\t{0x03, 0xef, 0xbe, 0x30},\n\t{0x03, 0xef, 0xbe, 0x3e},\n\t{0x03, 0xef, 0xbe, 0x32},\n\t{0x03, 0xef, 0xbe, 0x36},\n\t{0x03, 0xef, 0xbd, 0x14},\n\t{0x03, 0xef, 0xbe, 0x2e},\n\t{0x03, 0xef, 0xbd, 0x1e},\n\t{0x03, 0xef, 0xbe, 0x10},\n\t{0x03, 0xef, 0xbf, 0x13},\n\t{0x03, 0xef, 0xbf, 0x15},\n\t{0x03, 0xef, 0xbf, 0x17},\n\t{0x03, 0xef, 0xbf, 0x1f},\n\t{0x03, 0xef, 0xbf, 0x1d},\n\t{0x03, 0xef, 0xbf, 0x1b},\n\t{0x03, 0xef, 0xbf, 0x09},\n\t{0x03, 0xef, 0xbf, 0x0b},\n\t{0x03, 0xef, 0xbf, 0x37},\n\t{0x03, 0xef, 0xbe, 0x04},\n\t{0x01, 0xe0, 0x00, 0x00},\n\t{0x03, 0xe2, 0xa6, 0x1a},\n\t{0x03, 0xe2, 0xa6, 0x26},\n\t{0x03, 0xe3, 0x80, 0x23},\n\t{0x03, 0xe3, 0x80, 0x2e},\n\t{0x03, 0xe3, 0x80, 0x25},\n\t{0x03, 0xe3, 0x83, 0x1e},\n\t{0x03, 0xe3, 0x83, 0x14},\n\t{0x03, 0xe3, 0x82, 0x06},\n\t{0x03, 0xe3, 0x82, 0x0b},\n\t{0x03, 0xe3, 0x82, 0x0c},\n\t{0x03, 0xe3, 0x82, 0x0d},\n\t{0x03, 0xe3, 0x82, 0x02},\n\t{0x03, 0xe3, 0x83, 0x0f},\n\t{0x03, 0xe3, 0x83, 0x08},\n\t{0x03, 0xe3, 0x83, 0x09},\n\t{0x03, 0xe3, 0x83, 0x2c},\n\t{0x03, 0xe3, 0x83, 0x0c},\n\t{0x03, 0xe3, 0x82, 0x13},\n\t{0x03, 0xe3, 0x82, 0x16},\n\t{0x03, 0xe3, 0x82, 0x15},\n\t{0x03, 0xe3, 0x82, 0x1c},\n\t{0x03, 0xe3, 0x82, 0x1f},\n\t{0x03, 0xe3, 0x82, 0x1d},\n\t{0x03, 0xe3, 0x82, 0x1a},\n\t{0x03, 0xe3, 0x82, 0x17},\n\t{0x03, 0xe3, 0x82, 0x08},\n\t{0x03, 0xe3, 0x82, 0x09},\n\t{0x03, 0xe3, 0x82, 0x0e},\n\t{0x03, 0xe3, 0x82, 0x04},\n\t{0x03, 0xe3, 0x82, 0x05},\n\t{0x03, 0xe3, 0x82, 0x3f},\n\t{0x03, 0xe3, 0x83, 0x00},\n\t{0x03, 0xe3, 0x83, 0x06},\n\t{0x03, 0xe3, 0x83, 0x05},\n\t{0x03, 0xe3, 0x83, 0x0d},\n\t{0x03, 0xe3, 0x83, 0x0b},\n\t{0x03, 0xe3, 0x83, 0x07},\n\t{0x03, 0xe3, 0x83, 0x19},\n\t{0x03, 0xe3, 0x83, 0x15},\n\t{0x03, 0xe3, 0x83, 0x11},\n\t{0x03, 0xe3, 0x83, 0x31},\n\t{0x03, 0xe3, 0x83, 0x33},\n\t{0x03, 0xe3, 0x83, 0x30},\n\t{0x03, 0xe3, 0x83, 0x3e},\n\t{0x03, 0xe3, 0x83, 0x32},\n\t{0x03, 0xe3, 0x83, 0x36},\n\t{0x03, 0xe3, 0x83, 0x2e},\n\t{0x03, 0xe3, 0x82, 0x07},\n\t{0x03, 0xe3, 0x85, 0x04},\n\t{0x03, 0xe3, 0x84, 0x10},\n\t{0x03, 0xe3, 0x85, 0x30},\n\t{0x03, 0xe3, 0x85, 0x0d},\n\t{0x03, 0xe3, 0x85, 0x13},\n\t{0x03, 0xe3, 0x85, 0x15},\n\t{0x03, 0xe3, 0x85, 0x17},\n\t{0x03, 0xe3, 0x85, 0x1f},\n\t{0x03, 0xe3, 0x85, 0x1d},\n\t{0x03, 0xe3, 0x85, 0x1b},\n\t{0x03, 0xe3, 0x85, 0x09},\n\t{0x03, 0xe3, 0x85, 0x0f},\n\t{0x03, 0xe3, 0x85, 0x0b},\n\t{0x03, 0xe3, 0x85, 0x37},\n\t{0x03, 0xe3, 0x85, 0x3b},\n\t{0x03, 0xe3, 0x85, 0x39},\n\t{0x03, 0xe3, 0x85, 0x3f},\n\t{0x02, 0xc2, 0x02, 0x00},\n\t{0x02, 0xc2, 0x0e, 0x00},\n\t{0x02, 0xc2, 0x0c, 0x00},\n\t{0x02, 0xc2, 0x00, 0x00},\n\t{0x03, 0xe2, 0x82, 0x0f},\n\t{0x03, 0xe2, 0x94, 0x2a},\n\t{0x03, 0xe2, 0x86, 0x39},\n\t{0x03, 0xe2, 0x86, 0x3b},\n\t{0x03, 0xe2, 0x86, 0x3f},\n\t{0x03, 0xe2, 0x96, 0x0d},\n\t{0x03, 0xe2, 0x97, 0x25},\n}\n\n// Total table size 14680 bytes (14KiB)\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/transform.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage width\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\ntype foldTransform struct {\n\ttransform.NopResetter\n}\n\nfunc (foldTransform) Span(src []byte, atEOF bool) (n int, err error) {\n\tfor n < len(src) {\n\t\tif src[n] < utf8.RuneSelf {\n\t\t\t// ASCII fast path.\n\t\t\tfor n++; n < len(src) && src[n] < utf8.RuneSelf; n++ {\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tv, size := trie.lookup(src[n:])\n\t\tif size == 0 { // incomplete UTF-8 encoding\n\t\t\tif !atEOF {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t} else {\n\t\t\t\tn = len(src)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif elem(v)&tagNeedsFold != 0 {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t\tbreak\n\t\t}\n\t\tn += size\n\t}\n\treturn n, err\n}\n\nfunc (foldTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor nSrc < len(src) {\n\t\tif src[nSrc] < utf8.RuneSelf {\n\t\t\t// ASCII fast path.\n\t\t\tstart, end := nSrc, len(src)\n\t\t\tif d := len(dst) - nDst; d < end-start {\n\t\t\t\tend = nSrc + d\n\t\t\t}\n\t\t\tfor nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ {\n\t\t\t}\n\t\t\tn := copy(dst[nDst:], src[start:nSrc])\n\t\t\tif nDst += n; nDst == len(dst) {\n\t\t\t\tnSrc = start + n\n\t\t\t\tif nSrc == len(src) {\n\t\t\t\t\treturn nDst, nSrc, nil\n\t\t\t\t}\n\t\t\t\tif src[nSrc] < utf8.RuneSelf {\n\t\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tv, size := trie.lookup(src[nSrc:])\n\t\tif size == 0 { // incomplete UTF-8 encoding\n\t\t\tif !atEOF {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortSrc\n\t\t\t}\n\t\t\tsize = 1 // gobble 1 byte\n\t\t}\n\t\tif elem(v)&tagNeedsFold == 0 {\n\t\t\tif size != copy(dst[nDst:], src[nSrc:nSrc+size]) {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t}\n\t\t\tnDst += size\n\t\t} else {\n\t\t\tdata := inverseData[byte(v)]\n\t\t\tif len(dst)-nDst < int(data[0]) {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t}\n\t\t\ti := 1\n\t\t\tfor end := int(data[0]); i < end; i++ {\n\t\t\t\tdst[nDst] = data[i]\n\t\t\t\tnDst++\n\t\t\t}\n\t\t\tdst[nDst] = data[i] ^ src[nSrc+size-1]\n\t\t\tnDst++\n\t\t}\n\t\tnSrc += size\n\t}\n\treturn nDst, nSrc, nil\n}\n\ntype narrowTransform struct {\n\ttransform.NopResetter\n}\n\nfunc (narrowTransform) Span(src []byte, atEOF bool) (n int, err error) {\n\tfor n < len(src) {\n\t\tif src[n] < utf8.RuneSelf {\n\t\t\t// ASCII fast path.\n\t\t\tfor n++; n < len(src) && src[n] < utf8.RuneSelf; n++ {\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tv, size := trie.lookup(src[n:])\n\t\tif size == 0 { // incomplete UTF-8 encoding\n\t\t\tif !atEOF {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t} else {\n\t\t\t\tn = len(src)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif k := elem(v).kind(); byte(v) == 0 || k != EastAsianFullwidth && k != EastAsianWide && k != EastAsianAmbiguous {\n\t\t} else {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t\tbreak\n\t\t}\n\t\tn += size\n\t}\n\treturn n, err\n}\n\nfunc (narrowTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor nSrc < len(src) {\n\t\tif src[nSrc] < utf8.RuneSelf {\n\t\t\t// ASCII fast path.\n\t\t\tstart, end := nSrc, len(src)\n\t\t\tif d := len(dst) - nDst; d < end-start {\n\t\t\t\tend = nSrc + d\n\t\t\t}\n\t\t\tfor nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ {\n\t\t\t}\n\t\t\tn := copy(dst[nDst:], src[start:nSrc])\n\t\t\tif nDst += n; nDst == len(dst) {\n\t\t\t\tnSrc = start + n\n\t\t\t\tif nSrc == len(src) {\n\t\t\t\t\treturn nDst, nSrc, nil\n\t\t\t\t}\n\t\t\t\tif src[nSrc] < utf8.RuneSelf {\n\t\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tv, size := trie.lookup(src[nSrc:])\n\t\tif size == 0 { // incomplete UTF-8 encoding\n\t\t\tif !atEOF {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortSrc\n\t\t\t}\n\t\t\tsize = 1 // gobble 1 byte\n\t\t}\n\t\tif k := elem(v).kind(); byte(v) == 0 || k != EastAsianFullwidth && k != EastAsianWide && k != EastAsianAmbiguous {\n\t\t\tif size != copy(dst[nDst:], src[nSrc:nSrc+size]) {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t}\n\t\t\tnDst += size\n\t\t} else {\n\t\t\tdata := inverseData[byte(v)]\n\t\t\tif len(dst)-nDst < int(data[0]) {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t}\n\t\t\ti := 1\n\t\t\tfor end := int(data[0]); i < end; i++ {\n\t\t\t\tdst[nDst] = data[i]\n\t\t\t\tnDst++\n\t\t\t}\n\t\t\tdst[nDst] = data[i] ^ src[nSrc+size-1]\n\t\t\tnDst++\n\t\t}\n\t\tnSrc += size\n\t}\n\treturn nDst, nSrc, nil\n}\n\ntype wideTransform struct {\n\ttransform.NopResetter\n}\n\nfunc (wideTransform) Span(src []byte, atEOF bool) (n int, err error) {\n\tfor n < len(src) {\n\t\t// TODO: Consider ASCII fast path. Special-casing ASCII handling can\n\t\t// reduce the ns/op of BenchmarkWideASCII by about 30%. This is probably\n\t\t// not enough to warrant the extra code and complexity.\n\t\tv, size := trie.lookup(src[n:])\n\t\tif size == 0 { // incomplete UTF-8 encoding\n\t\t\tif !atEOF {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t} else {\n\t\t\t\tn = len(src)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif k := elem(v).kind(); byte(v) == 0 || k != EastAsianHalfwidth && k != EastAsianNarrow {\n\t\t} else {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t\tbreak\n\t\t}\n\t\tn += size\n\t}\n\treturn n, err\n}\n\nfunc (wideTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor nSrc < len(src) {\n\t\t// TODO: Consider ASCII fast path. Special-casing ASCII handling can\n\t\t// reduce the ns/op of BenchmarkWideASCII by about 30%. This is probably\n\t\t// not enough to warrant the extra code and complexity.\n\t\tv, size := trie.lookup(src[nSrc:])\n\t\tif size == 0 { // incomplete UTF-8 encoding\n\t\t\tif !atEOF {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortSrc\n\t\t\t}\n\t\t\tsize = 1 // gobble 1 byte\n\t\t}\n\t\tif k := elem(v).kind(); byte(v) == 0 || k != EastAsianHalfwidth && k != EastAsianNarrow {\n\t\t\tif size != copy(dst[nDst:], src[nSrc:nSrc+size]) {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t}\n\t\t\tnDst += size\n\t\t} else {\n\t\t\tdata := inverseData[byte(v)]\n\t\t\tif len(dst)-nDst < int(data[0]) {\n\t\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t\t}\n\t\t\ti := 1\n\t\t\tfor end := int(data[0]); i < end; i++ {\n\t\t\t\tdst[nDst] = data[i]\n\t\t\t\tnDst++\n\t\t\t}\n\t\t\tdst[nDst] = data[i] ^ src[nSrc+size-1]\n\t\t\tnDst++\n\t\t}\n\t\tnSrc += size\n\t}\n\treturn nDst, nSrc, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage width\n\n// elem is an entry of the width trie. The high byte is used to encode the type\n// of the rune. The low byte is used to store the index to a mapping entry in\n// the inverseData array.\ntype elem uint16\n\nconst (\n\ttagNeutral elem = iota << typeShift\n\ttagAmbiguous\n\ttagWide\n\ttagNarrow\n\ttagFullwidth\n\ttagHalfwidth\n)\n\nconst (\n\tnumTypeBits = 3\n\ttypeShift   = 16 - numTypeBits\n\n\t// tagNeedsFold is true for all fullwidth and halfwidth runes except for\n\t// the Won sign U+20A9.\n\ttagNeedsFold = 0x1000\n\n\t// The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide\n\t// variant.\n\twonSign rune = 0x20A9\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/width/width.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:generate stringer -type=Kind\n//go:generate go run gen.go gen_common.go gen_trieval.go\n\n// Package width provides functionality for handling different widths in text.\n//\n// Wide characters behave like ideographs; they tend to allow line breaks after\n// each character and remain upright in vertical text layout. Narrow characters\n// are kept together in words or runs that are rotated sideways in vertical text\n// layout.\n//\n// For more information, see https://unicode.org/reports/tr11/.\npackage width // import \"golang.org/x/text/width\"\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// TODO\n// 1) Reduce table size by compressing blocks.\n// 2) API proposition for computing display length\n//    (approximation, fixed pitch only).\n// 3) Implement display length.\n\n// Kind indicates the type of width property as defined in https://unicode.org/reports/tr11/.\ntype Kind int\n\nconst (\n\t// Neutral characters do not occur in legacy East Asian character sets.\n\tNeutral Kind = iota\n\n\t// EastAsianAmbiguous characters that can be sometimes wide and sometimes\n\t// narrow and require additional information not contained in the character\n\t// code to further resolve their width.\n\tEastAsianAmbiguous\n\n\t// EastAsianWide characters are wide in its usual form. They occur only in\n\t// the context of East Asian typography. These runes may have explicit\n\t// halfwidth counterparts.\n\tEastAsianWide\n\n\t// EastAsianNarrow characters are narrow in its usual form. They often have\n\t// fullwidth counterparts.\n\tEastAsianNarrow\n\n\t// Note: there exist Narrow runes that do not have fullwidth or wide\n\t// counterparts, despite what the definition says (e.g. U+27E6).\n\n\t// EastAsianFullwidth characters have a compatibility decompositions of type\n\t// wide that map to a narrow counterpart.\n\tEastAsianFullwidth\n\n\t// EastAsianHalfwidth characters have a compatibility decomposition of type\n\t// narrow that map to a wide or ambiguous counterpart, plus U+20A9 ₩ WON\n\t// SIGN.\n\tEastAsianHalfwidth\n\n\t// Note: there exist runes that have a halfwidth counterparts but that are\n\t// classified as Ambiguous, rather than wide (e.g. U+2190).\n)\n\n// TODO: the generated tries need to return size 1 for invalid runes for the\n// width to be computed correctly (each byte should render width 1)\n\nvar trie = newWidthTrie(0)\n\n// Lookup reports the Properties of the first rune in b and the number of bytes\n// of its UTF-8 encoding.\nfunc Lookup(b []byte) (p Properties, size int) {\n\tv, sz := trie.lookup(b)\n\treturn Properties{elem(v), b[sz-1]}, sz\n}\n\n// LookupString reports the Properties of the first rune in s and the number of\n// bytes of its UTF-8 encoding.\nfunc LookupString(s string) (p Properties, size int) {\n\tv, sz := trie.lookupString(s)\n\treturn Properties{elem(v), s[sz-1]}, sz\n}\n\n// LookupRune reports the Properties of rune r.\nfunc LookupRune(r rune) Properties {\n\tvar buf [4]byte\n\tn := utf8.EncodeRune(buf[:], r)\n\tv, _ := trie.lookup(buf[:n])\n\tlast := byte(r)\n\tif r >= utf8.RuneSelf {\n\t\tlast = 0x80 + byte(r&0x3f)\n\t}\n\treturn Properties{elem(v), last}\n}\n\n// Properties provides access to width properties of a rune.\ntype Properties struct {\n\telem elem\n\tlast byte\n}\n\nfunc (e elem) kind() Kind {\n\treturn Kind(e >> typeShift)\n}\n\n// Kind returns the Kind of a rune as defined in Unicode TR #11.\n// See https://unicode.org/reports/tr11/ for more details.\nfunc (p Properties) Kind() Kind {\n\treturn p.elem.kind()\n}\n\n// Folded returns the folded variant of a rune or 0 if the rune is canonical.\nfunc (p Properties) Folded() rune {\n\tif p.elem&tagNeedsFold != 0 {\n\t\tbuf := inverseData[byte(p.elem)]\n\t\tbuf[buf[0]] ^= p.last\n\t\tr, _ := utf8.DecodeRune(buf[1 : 1+buf[0]])\n\t\treturn r\n\t}\n\treturn 0\n}\n\n// Narrow returns the narrow variant of a rune or 0 if the rune is already\n// narrow or doesn't have a narrow variant.\nfunc (p Properties) Narrow() rune {\n\tif k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianFullwidth || k == EastAsianWide || k == EastAsianAmbiguous) {\n\t\tbuf := inverseData[byte(p.elem)]\n\t\tbuf[buf[0]] ^= p.last\n\t\tr, _ := utf8.DecodeRune(buf[1 : 1+buf[0]])\n\t\treturn r\n\t}\n\treturn 0\n}\n\n// Wide returns the wide variant of a rune or 0 if the rune is already\n// wide or doesn't have a wide variant.\nfunc (p Properties) Wide() rune {\n\tif k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianHalfwidth || k == EastAsianNarrow) {\n\t\tbuf := inverseData[byte(p.elem)]\n\t\tbuf[buf[0]] ^= p.last\n\t\tr, _ := utf8.DecodeRune(buf[1 : 1+buf[0]])\n\t\treturn r\n\t}\n\treturn 0\n}\n\n// TODO for Properties:\n// - Add Fullwidth/Halfwidth or Inverted methods for computing variants\n// mapping.\n// - Add width information (including information on non-spacing runes).\n\n// Transformer implements the transform.Transformer interface.\ntype Transformer struct {\n\tt transform.SpanningTransformer\n}\n\n// Reset implements the transform.Transformer interface.\nfunc (t Transformer) Reset() { t.t.Reset() }\n\n// Transform implements the transform.Transformer interface.\nfunc (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\treturn t.t.Transform(dst, src, atEOF)\n}\n\n// Span implements the transform.SpanningTransformer interface.\nfunc (t Transformer) Span(src []byte, atEOF bool) (n int, err error) {\n\treturn t.t.Span(src, atEOF)\n}\n\n// Bytes returns a new byte slice with the result of applying t to b.\nfunc (t Transformer) Bytes(b []byte) []byte {\n\tb, _, _ = transform.Bytes(t, b)\n\treturn b\n}\n\n// String returns a string with the result of applying t to s.\nfunc (t Transformer) String(s string) string {\n\ts, _, _ = transform.String(t, s)\n\treturn s\n}\n\nvar (\n\t// Fold is a transform that maps all runes to their canonical width.\n\t//\n\t// Note that the NFKC and NFKD transforms in golang.org/x/text/unicode/norm\n\t// provide a more generic folding mechanism.\n\tFold Transformer = Transformer{foldTransform{}}\n\n\t// Widen is a transform that maps runes to their wide variant, if\n\t// available.\n\tWiden Transformer = Transformer{wideTransform{}}\n\n\t// Narrow is a transform that maps runes to their narrow variant, if\n\t// available.\n\tNarrow Transformer = Transformer{narrowTransform{}}\n)\n\n// TODO: Consider the following options:\n// - Treat Ambiguous runes that have a halfwidth counterpart as wide, or some\n//   generalized variant of this.\n// - Consider a wide Won character to be the default width (or some generalized\n//   variant of this).\n// - Filter the set of characters that gets converted (the preferred approach is\n//   to allow applying filters to transforms).\n"
  },
  {
    "path": "vendor/golang.org/x/tools/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/golang.org/x/tools/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/golang.org/x/tools/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/tools/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/ast/astutil/enclosing.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage astutil\n\n// This file defines utilities for working with source positions.\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/token\"\n\t\"sort\"\n)\n\n// PathEnclosingInterval returns the node that encloses the source\n// interval [start, end), and all its ancestors up to the AST root.\n//\n// The definition of \"enclosing\" used by this function considers\n// additional whitespace abutting a node to be enclosed by it.\n// In this example:\n//\n//              z := x + y // add them\n//                   <-A->\n//                  <----B----->\n//\n// the ast.BinaryExpr(+) node is considered to enclose interval B\n// even though its [Pos()..End()) is actually only interval A.\n// This behaviour makes user interfaces more tolerant of imperfect\n// input.\n//\n// This function treats tokens as nodes, though they are not included\n// in the result. e.g. PathEnclosingInterval(\"+\") returns the\n// enclosing ast.BinaryExpr(\"x + y\").\n//\n// If start==end, the 1-char interval following start is used instead.\n//\n// The 'exact' result is true if the interval contains only path[0]\n// and perhaps some adjacent whitespace.  It is false if the interval\n// overlaps multiple children of path[0], or if it contains only\n// interior whitespace of path[0].\n// In this example:\n//\n//              z := x + y // add them\n//                <--C-->     <---E-->\n//                  ^\n//                  D\n//\n// intervals C, D and E are inexact.  C is contained by the\n// z-assignment statement, because it spans three of its children (:=,\n// x, +).  So too is the 1-char interval D, because it contains only\n// interior whitespace of the assignment.  E is considered interior\n// whitespace of the BlockStmt containing the assignment.\n//\n// Precondition: [start, end) both lie within the same file as root.\n// TODO(adonovan): return (nil, false) in this case and remove precond.\n// Requires FileSet; see loader.tokenFileContainsPos.\n//\n// Postcondition: path is never nil; it always contains at least 'root'.\n//\nfunc PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) {\n\t// fmt.Printf(\"EnclosingInterval %d %d\\n\", start, end) // debugging\n\n\t// Precondition: node.[Pos..End) and adjoining whitespace contain [start, end).\n\tvar visit func(node ast.Node) bool\n\tvisit = func(node ast.Node) bool {\n\t\tpath = append(path, node)\n\n\t\tnodePos := node.Pos()\n\t\tnodeEnd := node.End()\n\n\t\t// fmt.Printf(\"visit(%T, %d, %d)\\n\", node, nodePos, nodeEnd) // debugging\n\n\t\t// Intersect [start, end) with interval of node.\n\t\tif start < nodePos {\n\t\t\tstart = nodePos\n\t\t}\n\t\tif end > nodeEnd {\n\t\t\tend = nodeEnd\n\t\t}\n\n\t\t// Find sole child that contains [start, end).\n\t\tchildren := childrenOf(node)\n\t\tl := len(children)\n\t\tfor i, child := range children {\n\t\t\t// [childPos, childEnd) is unaugmented interval of child.\n\t\t\tchildPos := child.Pos()\n\t\t\tchildEnd := child.End()\n\n\t\t\t// [augPos, augEnd) is whitespace-augmented interval of child.\n\t\t\taugPos := childPos\n\t\t\taugEnd := childEnd\n\t\t\tif i > 0 {\n\t\t\t\taugPos = children[i-1].End() // start of preceding whitespace\n\t\t\t}\n\t\t\tif i < l-1 {\n\t\t\t\tnextChildPos := children[i+1].Pos()\n\t\t\t\t// Does [start, end) lie between child and next child?\n\t\t\t\tif start >= augEnd && end <= nextChildPos {\n\t\t\t\t\treturn false // inexact match\n\t\t\t\t}\n\t\t\t\taugEnd = nextChildPos // end of following whitespace\n\t\t\t}\n\n\t\t\t// fmt.Printf(\"\\tchild %d: [%d..%d)\\tcontains interval [%d..%d)?\\n\",\n\t\t\t// \ti, augPos, augEnd, start, end) // debugging\n\n\t\t\t// Does augmented child strictly contain [start, end)?\n\t\t\tif augPos <= start && end <= augEnd {\n\t\t\t\t_, isToken := child.(tokenNode)\n\t\t\t\treturn isToken || visit(child)\n\t\t\t}\n\n\t\t\t// Does [start, end) overlap multiple children?\n\t\t\t// i.e. left-augmented child contains start\n\t\t\t// but LR-augmented child does not contain end.\n\t\t\tif start < childEnd && end > augEnd {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// No single child contained [start, end),\n\t\t// so node is the result.  Is it exact?\n\n\t\t// (It's tempting to put this condition before the\n\t\t// child loop, but it gives the wrong result in the\n\t\t// case where a node (e.g. ExprStmt) and its sole\n\t\t// child have equal intervals.)\n\t\tif start == nodePos && end == nodeEnd {\n\t\t\treturn true // exact match\n\t\t}\n\n\t\treturn false // inexact: overlaps multiple children\n\t}\n\n\tif start > end {\n\t\tstart, end = end, start\n\t}\n\n\tif start < root.End() && end > root.Pos() {\n\t\tif start == end {\n\t\t\tend = start + 1 // empty interval => interval of size 1\n\t\t}\n\t\texact = visit(root)\n\n\t\t// Reverse the path:\n\t\tfor i, l := 0, len(path); i < l/2; i++ {\n\t\t\tpath[i], path[l-1-i] = path[l-1-i], path[i]\n\t\t}\n\t} else {\n\t\t// Selection lies within whitespace preceding the\n\t\t// first (or following the last) declaration in the file.\n\t\t// The result nonetheless always includes the ast.File.\n\t\tpath = append(path, root)\n\t}\n\n\treturn\n}\n\n// tokenNode is a dummy implementation of ast.Node for a single token.\n// They are used transiently by PathEnclosingInterval but never escape\n// this package.\n//\ntype tokenNode struct {\n\tpos token.Pos\n\tend token.Pos\n}\n\nfunc (n tokenNode) Pos() token.Pos {\n\treturn n.pos\n}\n\nfunc (n tokenNode) End() token.Pos {\n\treturn n.end\n}\n\nfunc tok(pos token.Pos, len int) ast.Node {\n\treturn tokenNode{pos, pos + token.Pos(len)}\n}\n\n// childrenOf returns the direct non-nil children of ast.Node n.\n// It may include fake ast.Node implementations for bare tokens.\n// it is not safe to call (e.g.) ast.Walk on such nodes.\n//\nfunc childrenOf(n ast.Node) []ast.Node {\n\tvar children []ast.Node\n\n\t// First add nodes for all true subtrees.\n\tast.Inspect(n, func(node ast.Node) bool {\n\t\tif node == n { // push n\n\t\t\treturn true // recur\n\t\t}\n\t\tif node != nil { // push child\n\t\t\tchildren = append(children, node)\n\t\t}\n\t\treturn false // no recursion\n\t})\n\n\t// Then add fake Nodes for bare tokens.\n\tswitch n := n.(type) {\n\tcase *ast.ArrayType:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lbrack, len(\"[\")),\n\t\t\ttok(n.Elt.End(), len(\"]\")))\n\n\tcase *ast.AssignStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.TokPos, len(n.Tok.String())))\n\n\tcase *ast.BasicLit:\n\t\tchildren = append(children,\n\t\t\ttok(n.ValuePos, len(n.Value)))\n\n\tcase *ast.BinaryExpr:\n\t\tchildren = append(children, tok(n.OpPos, len(n.Op.String())))\n\n\tcase *ast.BlockStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lbrace, len(\"{\")),\n\t\t\ttok(n.Rbrace, len(\"}\")))\n\n\tcase *ast.BranchStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.TokPos, len(n.Tok.String())))\n\n\tcase *ast.CallExpr:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lparen, len(\"(\")),\n\t\t\ttok(n.Rparen, len(\")\")))\n\t\tif n.Ellipsis != 0 {\n\t\t\tchildren = append(children, tok(n.Ellipsis, len(\"...\")))\n\t\t}\n\n\tcase *ast.CaseClause:\n\t\tif n.List == nil {\n\t\t\tchildren = append(children,\n\t\t\t\ttok(n.Case, len(\"default\")))\n\t\t} else {\n\t\t\tchildren = append(children,\n\t\t\t\ttok(n.Case, len(\"case\")))\n\t\t}\n\t\tchildren = append(children, tok(n.Colon, len(\":\")))\n\n\tcase *ast.ChanType:\n\t\tswitch n.Dir {\n\t\tcase ast.RECV:\n\t\t\tchildren = append(children, tok(n.Begin, len(\"<-chan\")))\n\t\tcase ast.SEND:\n\t\t\tchildren = append(children, tok(n.Begin, len(\"chan<-\")))\n\t\tcase ast.RECV | ast.SEND:\n\t\t\tchildren = append(children, tok(n.Begin, len(\"chan\")))\n\t\t}\n\n\tcase *ast.CommClause:\n\t\tif n.Comm == nil {\n\t\t\tchildren = append(children,\n\t\t\t\ttok(n.Case, len(\"default\")))\n\t\t} else {\n\t\t\tchildren = append(children,\n\t\t\t\ttok(n.Case, len(\"case\")))\n\t\t}\n\t\tchildren = append(children, tok(n.Colon, len(\":\")))\n\n\tcase *ast.Comment:\n\t\t// nop\n\n\tcase *ast.CommentGroup:\n\t\t// nop\n\n\tcase *ast.CompositeLit:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lbrace, len(\"{\")),\n\t\t\ttok(n.Rbrace, len(\"{\")))\n\n\tcase *ast.DeclStmt:\n\t\t// nop\n\n\tcase *ast.DeferStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Defer, len(\"defer\")))\n\n\tcase *ast.Ellipsis:\n\t\tchildren = append(children,\n\t\t\ttok(n.Ellipsis, len(\"...\")))\n\n\tcase *ast.EmptyStmt:\n\t\t// nop\n\n\tcase *ast.ExprStmt:\n\t\t// nop\n\n\tcase *ast.Field:\n\t\t// TODO(adonovan): Field.{Doc,Comment,Tag}?\n\n\tcase *ast.FieldList:\n\t\tchildren = append(children,\n\t\t\ttok(n.Opening, len(\"(\")),\n\t\t\ttok(n.Closing, len(\")\")))\n\n\tcase *ast.File:\n\t\t// TODO test: Doc\n\t\tchildren = append(children,\n\t\t\ttok(n.Package, len(\"package\")))\n\n\tcase *ast.ForStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.For, len(\"for\")))\n\n\tcase *ast.FuncDecl:\n\t\t// TODO(adonovan): FuncDecl.Comment?\n\n\t\t// Uniquely, FuncDecl breaks the invariant that\n\t\t// preorder traversal yields tokens in lexical order:\n\t\t// in fact, FuncDecl.Recv precedes FuncDecl.Type.Func.\n\t\t//\n\t\t// As a workaround, we inline the case for FuncType\n\t\t// here and order things correctly.\n\t\t//\n\t\tchildren = nil // discard ast.Walk(FuncDecl) info subtrees\n\t\tchildren = append(children, tok(n.Type.Func, len(\"func\")))\n\t\tif n.Recv != nil {\n\t\t\tchildren = append(children, n.Recv)\n\t\t}\n\t\tchildren = append(children, n.Name)\n\t\tif n.Type.Params != nil {\n\t\t\tchildren = append(children, n.Type.Params)\n\t\t}\n\t\tif n.Type.Results != nil {\n\t\t\tchildren = append(children, n.Type.Results)\n\t\t}\n\t\tif n.Body != nil {\n\t\t\tchildren = append(children, n.Body)\n\t\t}\n\n\tcase *ast.FuncLit:\n\t\t// nop\n\n\tcase *ast.FuncType:\n\t\tif n.Func != 0 {\n\t\t\tchildren = append(children,\n\t\t\t\ttok(n.Func, len(\"func\")))\n\t\t}\n\n\tcase *ast.GenDecl:\n\t\tchildren = append(children,\n\t\t\ttok(n.TokPos, len(n.Tok.String())))\n\t\tif n.Lparen != 0 {\n\t\t\tchildren = append(children,\n\t\t\t\ttok(n.Lparen, len(\"(\")),\n\t\t\t\ttok(n.Rparen, len(\")\")))\n\t\t}\n\n\tcase *ast.GoStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Go, len(\"go\")))\n\n\tcase *ast.Ident:\n\t\tchildren = append(children,\n\t\t\ttok(n.NamePos, len(n.Name)))\n\n\tcase *ast.IfStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.If, len(\"if\")))\n\n\tcase *ast.ImportSpec:\n\t\t// TODO(adonovan): ImportSpec.{Doc,EndPos}?\n\n\tcase *ast.IncDecStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.TokPos, len(n.Tok.String())))\n\n\tcase *ast.IndexExpr:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lbrack, len(\"{\")),\n\t\t\ttok(n.Rbrack, len(\"}\")))\n\n\tcase *ast.InterfaceType:\n\t\tchildren = append(children,\n\t\t\ttok(n.Interface, len(\"interface\")))\n\n\tcase *ast.KeyValueExpr:\n\t\tchildren = append(children,\n\t\t\ttok(n.Colon, len(\":\")))\n\n\tcase *ast.LabeledStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Colon, len(\":\")))\n\n\tcase *ast.MapType:\n\t\tchildren = append(children,\n\t\t\ttok(n.Map, len(\"map\")))\n\n\tcase *ast.ParenExpr:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lparen, len(\"(\")),\n\t\t\ttok(n.Rparen, len(\")\")))\n\n\tcase *ast.RangeStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.For, len(\"for\")),\n\t\t\ttok(n.TokPos, len(n.Tok.String())))\n\n\tcase *ast.ReturnStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Return, len(\"return\")))\n\n\tcase *ast.SelectStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Select, len(\"select\")))\n\n\tcase *ast.SelectorExpr:\n\t\t// nop\n\n\tcase *ast.SendStmt:\n\t\tchildren = append(children,\n\t\t\ttok(n.Arrow, len(\"<-\")))\n\n\tcase *ast.SliceExpr:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lbrack, len(\"[\")),\n\t\t\ttok(n.Rbrack, len(\"]\")))\n\n\tcase *ast.StarExpr:\n\t\tchildren = append(children, tok(n.Star, len(\"*\")))\n\n\tcase *ast.StructType:\n\t\tchildren = append(children, tok(n.Struct, len(\"struct\")))\n\n\tcase *ast.SwitchStmt:\n\t\tchildren = append(children, tok(n.Switch, len(\"switch\")))\n\n\tcase *ast.TypeAssertExpr:\n\t\tchildren = append(children,\n\t\t\ttok(n.Lparen-1, len(\".\")),\n\t\t\ttok(n.Lparen, len(\"(\")),\n\t\t\ttok(n.Rparen, len(\")\")))\n\n\tcase *ast.TypeSpec:\n\t\t// TODO(adonovan): TypeSpec.{Doc,Comment}?\n\n\tcase *ast.TypeSwitchStmt:\n\t\tchildren = append(children, tok(n.Switch, len(\"switch\")))\n\n\tcase *ast.UnaryExpr:\n\t\tchildren = append(children, tok(n.OpPos, len(n.Op.String())))\n\n\tcase *ast.ValueSpec:\n\t\t// TODO(adonovan): ValueSpec.{Doc,Comment}?\n\n\tcase *ast.BadDecl, *ast.BadExpr, *ast.BadStmt:\n\t\t// nop\n\t}\n\n\t// TODO(adonovan): opt: merge the logic of ast.Inspect() into\n\t// the switch above so we can make interleaved callbacks for\n\t// both Nodes and Tokens in the right order and avoid the need\n\t// to sort.\n\tsort.Sort(byPos(children))\n\n\treturn children\n}\n\ntype byPos []ast.Node\n\nfunc (sl byPos) Len() int {\n\treturn len(sl)\n}\nfunc (sl byPos) Less(i, j int) bool {\n\treturn sl[i].Pos() < sl[j].Pos()\n}\nfunc (sl byPos) Swap(i, j int) {\n\tsl[i], sl[j] = sl[j], sl[i]\n}\n\n// NodeDescription returns a description of the concrete type of n suitable\n// for a user interface.\n//\n// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident,\n// StarExpr) we could be much more specific given the path to the AST\n// root.  Perhaps we should do that.\n//\nfunc NodeDescription(n ast.Node) string {\n\tswitch n := n.(type) {\n\tcase *ast.ArrayType:\n\t\treturn \"array type\"\n\tcase *ast.AssignStmt:\n\t\treturn \"assignment\"\n\tcase *ast.BadDecl:\n\t\treturn \"bad declaration\"\n\tcase *ast.BadExpr:\n\t\treturn \"bad expression\"\n\tcase *ast.BadStmt:\n\t\treturn \"bad statement\"\n\tcase *ast.BasicLit:\n\t\treturn \"basic literal\"\n\tcase *ast.BinaryExpr:\n\t\treturn fmt.Sprintf(\"binary %s operation\", n.Op)\n\tcase *ast.BlockStmt:\n\t\treturn \"block\"\n\tcase *ast.BranchStmt:\n\t\tswitch n.Tok {\n\t\tcase token.BREAK:\n\t\t\treturn \"break statement\"\n\t\tcase token.CONTINUE:\n\t\t\treturn \"continue statement\"\n\t\tcase token.GOTO:\n\t\t\treturn \"goto statement\"\n\t\tcase token.FALLTHROUGH:\n\t\t\treturn \"fall-through statement\"\n\t\t}\n\tcase *ast.CallExpr:\n\t\tif len(n.Args) == 1 && !n.Ellipsis.IsValid() {\n\t\t\treturn \"function call (or conversion)\"\n\t\t}\n\t\treturn \"function call\"\n\tcase *ast.CaseClause:\n\t\treturn \"case clause\"\n\tcase *ast.ChanType:\n\t\treturn \"channel type\"\n\tcase *ast.CommClause:\n\t\treturn \"communication clause\"\n\tcase *ast.Comment:\n\t\treturn \"comment\"\n\tcase *ast.CommentGroup:\n\t\treturn \"comment group\"\n\tcase *ast.CompositeLit:\n\t\treturn \"composite literal\"\n\tcase *ast.DeclStmt:\n\t\treturn NodeDescription(n.Decl) + \" statement\"\n\tcase *ast.DeferStmt:\n\t\treturn \"defer statement\"\n\tcase *ast.Ellipsis:\n\t\treturn \"ellipsis\"\n\tcase *ast.EmptyStmt:\n\t\treturn \"empty statement\"\n\tcase *ast.ExprStmt:\n\t\treturn \"expression statement\"\n\tcase *ast.Field:\n\t\t// Can be any of these:\n\t\t// struct {x, y int}  -- struct field(s)\n\t\t// struct {T}         -- anon struct field\n\t\t// interface {I}      -- interface embedding\n\t\t// interface {f()}    -- interface method\n\t\t// func (A) func(B) C -- receiver, param(s), result(s)\n\t\treturn \"field/method/parameter\"\n\tcase *ast.FieldList:\n\t\treturn \"field/method/parameter list\"\n\tcase *ast.File:\n\t\treturn \"source file\"\n\tcase *ast.ForStmt:\n\t\treturn \"for loop\"\n\tcase *ast.FuncDecl:\n\t\treturn \"function declaration\"\n\tcase *ast.FuncLit:\n\t\treturn \"function literal\"\n\tcase *ast.FuncType:\n\t\treturn \"function type\"\n\tcase *ast.GenDecl:\n\t\tswitch n.Tok {\n\t\tcase token.IMPORT:\n\t\t\treturn \"import declaration\"\n\t\tcase token.CONST:\n\t\t\treturn \"constant declaration\"\n\t\tcase token.TYPE:\n\t\t\treturn \"type declaration\"\n\t\tcase token.VAR:\n\t\t\treturn \"variable declaration\"\n\t\t}\n\tcase *ast.GoStmt:\n\t\treturn \"go statement\"\n\tcase *ast.Ident:\n\t\treturn \"identifier\"\n\tcase *ast.IfStmt:\n\t\treturn \"if statement\"\n\tcase *ast.ImportSpec:\n\t\treturn \"import specification\"\n\tcase *ast.IncDecStmt:\n\t\tif n.Tok == token.INC {\n\t\t\treturn \"increment statement\"\n\t\t}\n\t\treturn \"decrement statement\"\n\tcase *ast.IndexExpr:\n\t\treturn \"index expression\"\n\tcase *ast.InterfaceType:\n\t\treturn \"interface type\"\n\tcase *ast.KeyValueExpr:\n\t\treturn \"key/value association\"\n\tcase *ast.LabeledStmt:\n\t\treturn \"statement label\"\n\tcase *ast.MapType:\n\t\treturn \"map type\"\n\tcase *ast.Package:\n\t\treturn \"package\"\n\tcase *ast.ParenExpr:\n\t\treturn \"parenthesized \" + NodeDescription(n.X)\n\tcase *ast.RangeStmt:\n\t\treturn \"range loop\"\n\tcase *ast.ReturnStmt:\n\t\treturn \"return statement\"\n\tcase *ast.SelectStmt:\n\t\treturn \"select statement\"\n\tcase *ast.SelectorExpr:\n\t\treturn \"selector\"\n\tcase *ast.SendStmt:\n\t\treturn \"channel send\"\n\tcase *ast.SliceExpr:\n\t\treturn \"slice expression\"\n\tcase *ast.StarExpr:\n\t\treturn \"*-operation\" // load/store expr or pointer type\n\tcase *ast.StructType:\n\t\treturn \"struct type\"\n\tcase *ast.SwitchStmt:\n\t\treturn \"switch statement\"\n\tcase *ast.TypeAssertExpr:\n\t\treturn \"type assertion\"\n\tcase *ast.TypeSpec:\n\t\treturn \"type specification\"\n\tcase *ast.TypeSwitchStmt:\n\t\treturn \"type switch\"\n\tcase *ast.UnaryExpr:\n\t\treturn fmt.Sprintf(\"unary %s operation\", n.Op)\n\tcase *ast.ValueSpec:\n\t\treturn \"value specification\"\n\n\t}\n\tpanic(fmt.Sprintf(\"unexpected node type: %T\", n))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/ast/astutil/imports.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package astutil contains common utilities for working with the Go AST.\npackage astutil // import \"golang.org/x/tools/go/ast/astutil\"\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/token\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// AddImport adds the import path to the file f, if absent.\nfunc AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) {\n\treturn AddNamedImport(fset, f, \"\", path)\n}\n\n// AddNamedImport adds the import with the given name and path to the file f, if absent.\n// If name is not empty, it is used to rename the import.\n//\n// For example, calling\n//\tAddNamedImport(fset, f, \"pathpkg\", \"path\")\n// adds\n//\timport pathpkg \"path\"\nfunc AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) {\n\tif imports(f, name, path) {\n\t\treturn false\n\t}\n\n\tnewImport := &ast.ImportSpec{\n\t\tPath: &ast.BasicLit{\n\t\t\tKind:  token.STRING,\n\t\t\tValue: strconv.Quote(path),\n\t\t},\n\t}\n\tif name != \"\" {\n\t\tnewImport.Name = &ast.Ident{Name: name}\n\t}\n\n\t// Find an import decl to add to.\n\t// The goal is to find an existing import\n\t// whose import path has the longest shared\n\t// prefix with path.\n\tvar (\n\t\tbestMatch  = -1         // length of longest shared prefix\n\t\tlastImport = -1         // index in f.Decls of the file's final import decl\n\t\timpDecl    *ast.GenDecl // import decl containing the best match\n\t\timpIndex   = -1         // spec index in impDecl containing the best match\n\n\t\tisThirdPartyPath = isThirdParty(path)\n\t)\n\tfor i, decl := range f.Decls {\n\t\tgen, ok := decl.(*ast.GenDecl)\n\t\tif ok && gen.Tok == token.IMPORT {\n\t\t\tlastImport = i\n\t\t\t// Do not add to import \"C\", to avoid disrupting the\n\t\t\t// association with its doc comment, breaking cgo.\n\t\t\tif declImports(gen, \"C\") {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Match an empty import decl if that's all that is available.\n\t\t\tif len(gen.Specs) == 0 && bestMatch == -1 {\n\t\t\t\timpDecl = gen\n\t\t\t}\n\n\t\t\t// Compute longest shared prefix with imports in this group and find best\n\t\t\t// matched import spec.\n\t\t\t// 1. Always prefer import spec with longest shared prefix.\n\t\t\t// 2. While match length is 0,\n\t\t\t// - for stdlib package: prefer first import spec.\n\t\t\t// - for third party package: prefer first third party import spec.\n\t\t\t// We cannot use last import spec as best match for third party package\n\t\t\t// because grouped imports are usually placed last by goimports -local\n\t\t\t// flag.\n\t\t\t// See issue #19190.\n\t\t\tseenAnyThirdParty := false\n\t\t\tfor j, spec := range gen.Specs {\n\t\t\t\timpspec := spec.(*ast.ImportSpec)\n\t\t\t\tp := importPath(impspec)\n\t\t\t\tn := matchLen(p, path)\n\t\t\t\tif n > bestMatch || (bestMatch == 0 && !seenAnyThirdParty && isThirdPartyPath) {\n\t\t\t\t\tbestMatch = n\n\t\t\t\t\timpDecl = gen\n\t\t\t\t\timpIndex = j\n\t\t\t\t}\n\t\t\t\tseenAnyThirdParty = seenAnyThirdParty || isThirdParty(p)\n\t\t\t}\n\t\t}\n\t}\n\n\t// If no import decl found, add one after the last import.\n\tif impDecl == nil {\n\t\timpDecl = &ast.GenDecl{\n\t\t\tTok: token.IMPORT,\n\t\t}\n\t\tif lastImport >= 0 {\n\t\t\timpDecl.TokPos = f.Decls[lastImport].End()\n\t\t} else {\n\t\t\t// There are no existing imports.\n\t\t\t// Our new import, preceded by a blank line,  goes after the package declaration\n\t\t\t// and after the comment, if any, that starts on the same line as the\n\t\t\t// package declaration.\n\t\t\timpDecl.TokPos = f.Package\n\n\t\t\tfile := fset.File(f.Package)\n\t\t\tpkgLine := file.Line(f.Package)\n\t\t\tfor _, c := range f.Comments {\n\t\t\t\tif file.Line(c.Pos()) > pkgLine {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// +2 for a blank line\n\t\t\t\timpDecl.TokPos = c.End() + 2\n\t\t\t}\n\t\t}\n\t\tf.Decls = append(f.Decls, nil)\n\t\tcopy(f.Decls[lastImport+2:], f.Decls[lastImport+1:])\n\t\tf.Decls[lastImport+1] = impDecl\n\t}\n\n\t// Insert new import at insertAt.\n\tinsertAt := 0\n\tif impIndex >= 0 {\n\t\t// insert after the found import\n\t\tinsertAt = impIndex + 1\n\t}\n\timpDecl.Specs = append(impDecl.Specs, nil)\n\tcopy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:])\n\timpDecl.Specs[insertAt] = newImport\n\tpos := impDecl.Pos()\n\tif insertAt > 0 {\n\t\t// If there is a comment after an existing import, preserve the comment\n\t\t// position by adding the new import after the comment.\n\t\tif spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil {\n\t\t\tpos = spec.Comment.End()\n\t\t} else {\n\t\t\t// Assign same position as the previous import,\n\t\t\t// so that the sorter sees it as being in the same block.\n\t\t\tpos = impDecl.Specs[insertAt-1].Pos()\n\t\t}\n\t}\n\tif newImport.Name != nil {\n\t\tnewImport.Name.NamePos = pos\n\t}\n\tnewImport.Path.ValuePos = pos\n\tnewImport.EndPos = pos\n\n\t// Clean up parens. impDecl contains at least one spec.\n\tif len(impDecl.Specs) == 1 {\n\t\t// Remove unneeded parens.\n\t\timpDecl.Lparen = token.NoPos\n\t} else if !impDecl.Lparen.IsValid() {\n\t\t// impDecl needs parens added.\n\t\timpDecl.Lparen = impDecl.Specs[0].Pos()\n\t}\n\n\tf.Imports = append(f.Imports, newImport)\n\n\tif len(f.Decls) <= 1 {\n\t\treturn true\n\t}\n\n\t// Merge all the import declarations into the first one.\n\tvar first *ast.GenDecl\n\tfor i := 0; i < len(f.Decls); i++ {\n\t\tdecl := f.Decls[i]\n\t\tgen, ok := decl.(*ast.GenDecl)\n\t\tif !ok || gen.Tok != token.IMPORT || declImports(gen, \"C\") {\n\t\t\tcontinue\n\t\t}\n\t\tif first == nil {\n\t\t\tfirst = gen\n\t\t\tcontinue // Don't touch the first one.\n\t\t}\n\t\t// We now know there is more than one package in this import\n\t\t// declaration. Ensure that it ends up parenthesized.\n\t\tfirst.Lparen = first.Pos()\n\t\t// Move the imports of the other import declaration to the first one.\n\t\tfor _, spec := range gen.Specs {\n\t\t\tspec.(*ast.ImportSpec).Path.ValuePos = first.Pos()\n\t\t\tfirst.Specs = append(first.Specs, spec)\n\t\t}\n\t\tf.Decls = append(f.Decls[:i], f.Decls[i+1:]...)\n\t\ti--\n\t}\n\n\treturn true\n}\n\nfunc isThirdParty(importPath string) bool {\n\t// Third party package import path usually contains \".\" (\".com\", \".org\", ...)\n\t// This logic is taken from golang.org/x/tools/imports package.\n\treturn strings.Contains(importPath, \".\")\n}\n\n// DeleteImport deletes the import path from the file f, if present.\n// If there are duplicate import declarations, all matching ones are deleted.\nfunc DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) {\n\treturn DeleteNamedImport(fset, f, \"\", path)\n}\n\n// DeleteNamedImport deletes the import with the given name and path from the file f, if present.\n// If there are duplicate import declarations, all matching ones are deleted.\nfunc DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) {\n\tvar delspecs []*ast.ImportSpec\n\tvar delcomments []*ast.CommentGroup\n\n\t// Find the import nodes that import path, if any.\n\tfor i := 0; i < len(f.Decls); i++ {\n\t\tdecl := f.Decls[i]\n\t\tgen, ok := decl.(*ast.GenDecl)\n\t\tif !ok || gen.Tok != token.IMPORT {\n\t\t\tcontinue\n\t\t}\n\t\tfor j := 0; j < len(gen.Specs); j++ {\n\t\t\tspec := gen.Specs[j]\n\t\t\timpspec := spec.(*ast.ImportSpec)\n\t\t\tif importName(impspec) != name || importPath(impspec) != path {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We found an import spec that imports path.\n\t\t\t// Delete it.\n\t\t\tdelspecs = append(delspecs, impspec)\n\t\t\tdeleted = true\n\t\t\tcopy(gen.Specs[j:], gen.Specs[j+1:])\n\t\t\tgen.Specs = gen.Specs[:len(gen.Specs)-1]\n\n\t\t\t// If this was the last import spec in this decl,\n\t\t\t// delete the decl, too.\n\t\t\tif len(gen.Specs) == 0 {\n\t\t\t\tcopy(f.Decls[i:], f.Decls[i+1:])\n\t\t\t\tf.Decls = f.Decls[:len(f.Decls)-1]\n\t\t\t\ti--\n\t\t\t\tbreak\n\t\t\t} else if len(gen.Specs) == 1 {\n\t\t\t\tif impspec.Doc != nil {\n\t\t\t\t\tdelcomments = append(delcomments, impspec.Doc)\n\t\t\t\t}\n\t\t\t\tif impspec.Comment != nil {\n\t\t\t\t\tdelcomments = append(delcomments, impspec.Comment)\n\t\t\t\t}\n\t\t\t\tfor _, cg := range f.Comments {\n\t\t\t\t\t// Found comment on the same line as the import spec.\n\t\t\t\t\tif cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line {\n\t\t\t\t\t\tdelcomments = append(delcomments, cg)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tspec := gen.Specs[0].(*ast.ImportSpec)\n\n\t\t\t\t// Move the documentation right after the import decl.\n\t\t\t\tif spec.Doc != nil {\n\t\t\t\t\tfor fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Doc.Pos()).Line {\n\t\t\t\t\t\tfset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor _, cg := range f.Comments {\n\t\t\t\t\tif cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line {\n\t\t\t\t\t\tfor fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Pos()).Line {\n\t\t\t\t\t\t\tfset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif j > 0 {\n\t\t\t\tlastImpspec := gen.Specs[j-1].(*ast.ImportSpec)\n\t\t\t\tlastLine := fset.Position(lastImpspec.Path.ValuePos).Line\n\t\t\t\tline := fset.Position(impspec.Path.ValuePos).Line\n\n\t\t\t\t// We deleted an entry but now there may be\n\t\t\t\t// a blank line-sized hole where the import was.\n\t\t\t\tif line-lastLine > 1 {\n\t\t\t\t\t// There was a blank line immediately preceding the deleted import,\n\t\t\t\t\t// so there's no need to close the hole.\n\t\t\t\t\t// Do nothing.\n\t\t\t\t} else if line != fset.File(gen.Rparen).LineCount() {\n\t\t\t\t\t// There was no blank line. Close the hole.\n\t\t\t\t\tfset.File(gen.Rparen).MergeLine(line)\n\t\t\t\t}\n\t\t\t}\n\t\t\tj--\n\t\t}\n\t}\n\n\t// Delete imports from f.Imports.\n\tfor i := 0; i < len(f.Imports); i++ {\n\t\timp := f.Imports[i]\n\t\tfor j, del := range delspecs {\n\t\t\tif imp == del {\n\t\t\t\tcopy(f.Imports[i:], f.Imports[i+1:])\n\t\t\t\tf.Imports = f.Imports[:len(f.Imports)-1]\n\t\t\t\tcopy(delspecs[j:], delspecs[j+1:])\n\t\t\t\tdelspecs = delspecs[:len(delspecs)-1]\n\t\t\t\ti--\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// Delete comments from f.Comments.\n\tfor i := 0; i < len(f.Comments); i++ {\n\t\tcg := f.Comments[i]\n\t\tfor j, del := range delcomments {\n\t\t\tif cg == del {\n\t\t\t\tcopy(f.Comments[i:], f.Comments[i+1:])\n\t\t\t\tf.Comments = f.Comments[:len(f.Comments)-1]\n\t\t\t\tcopy(delcomments[j:], delcomments[j+1:])\n\t\t\t\tdelcomments = delcomments[:len(delcomments)-1]\n\t\t\t\ti--\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(delspecs) > 0 {\n\t\tpanic(fmt.Sprintf(\"deleted specs from Decls but not Imports: %v\", delspecs))\n\t}\n\n\treturn\n}\n\n// RewriteImport rewrites any import of path oldPath to path newPath.\nfunc RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) {\n\tfor _, imp := range f.Imports {\n\t\tif importPath(imp) == oldPath {\n\t\t\trewrote = true\n\t\t\t// record old End, because the default is to compute\n\t\t\t// it using the length of imp.Path.Value.\n\t\t\timp.EndPos = imp.End()\n\t\t\timp.Path.Value = strconv.Quote(newPath)\n\t\t}\n\t}\n\treturn\n}\n\n// UsesImport reports whether a given import is used.\nfunc UsesImport(f *ast.File, path string) (used bool) {\n\tspec := importSpec(f, path)\n\tif spec == nil {\n\t\treturn\n\t}\n\n\tname := spec.Name.String()\n\tswitch name {\n\tcase \"<nil>\":\n\t\t// If the package name is not explicitly specified,\n\t\t// make an educated guess. This is not guaranteed to be correct.\n\t\tlastSlash := strings.LastIndex(path, \"/\")\n\t\tif lastSlash == -1 {\n\t\t\tname = path\n\t\t} else {\n\t\t\tname = path[lastSlash+1:]\n\t\t}\n\tcase \"_\", \".\":\n\t\t// Not sure if this import is used - err on the side of caution.\n\t\treturn true\n\t}\n\n\tast.Walk(visitFn(func(n ast.Node) {\n\t\tsel, ok := n.(*ast.SelectorExpr)\n\t\tif ok && isTopName(sel.X, name) {\n\t\t\tused = true\n\t\t}\n\t}), f)\n\n\treturn\n}\n\ntype visitFn func(node ast.Node)\n\nfunc (fn visitFn) Visit(node ast.Node) ast.Visitor {\n\tfn(node)\n\treturn fn\n}\n\n// imports reports whether f has an import with the specified name and path.\nfunc imports(f *ast.File, name, path string) bool {\n\tfor _, s := range f.Imports {\n\t\tif importName(s) == name && importPath(s) == path {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// importSpec returns the import spec if f imports path,\n// or nil otherwise.\nfunc importSpec(f *ast.File, path string) *ast.ImportSpec {\n\tfor _, s := range f.Imports {\n\t\tif importPath(s) == path {\n\t\t\treturn s\n\t\t}\n\t}\n\treturn nil\n}\n\n// importName returns the name of s,\n// or \"\" if the import is not named.\nfunc importName(s *ast.ImportSpec) string {\n\tif s.Name == nil {\n\t\treturn \"\"\n\t}\n\treturn s.Name.Name\n}\n\n// importPath returns the unquoted import path of s,\n// or \"\" if the path is not properly quoted.\nfunc importPath(s *ast.ImportSpec) string {\n\tt, err := strconv.Unquote(s.Path.Value)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\treturn t\n}\n\n// declImports reports whether gen contains an import of path.\nfunc declImports(gen *ast.GenDecl, path string) bool {\n\tif gen.Tok != token.IMPORT {\n\t\treturn false\n\t}\n\tfor _, spec := range gen.Specs {\n\t\timpspec := spec.(*ast.ImportSpec)\n\t\tif importPath(impspec) == path {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// matchLen returns the length of the longest path segment prefix shared by x and y.\nfunc matchLen(x, y string) int {\n\tn := 0\n\tfor i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ {\n\t\tif x[i] == '/' {\n\t\t\tn++\n\t\t}\n\t}\n\treturn n\n}\n\n// isTopName returns true if n is a top-level unresolved identifier with the given name.\nfunc isTopName(n ast.Expr, name string) bool {\n\tid, ok := n.(*ast.Ident)\n\treturn ok && id.Name == name && id.Obj == nil\n}\n\n// Imports returns the file imports grouped by paragraph.\nfunc Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec {\n\tvar groups [][]*ast.ImportSpec\n\n\tfor _, decl := range f.Decls {\n\t\tgenDecl, ok := decl.(*ast.GenDecl)\n\t\tif !ok || genDecl.Tok != token.IMPORT {\n\t\t\tbreak\n\t\t}\n\n\t\tgroup := []*ast.ImportSpec{}\n\n\t\tvar lastLine int\n\t\tfor _, spec := range genDecl.Specs {\n\t\t\timportSpec := spec.(*ast.ImportSpec)\n\t\t\tpos := importSpec.Path.ValuePos\n\t\t\tline := fset.Position(pos).Line\n\t\t\tif lastLine > 0 && pos > 0 && line-lastLine > 1 {\n\t\t\t\tgroups = append(groups, group)\n\t\t\t\tgroup = []*ast.ImportSpec{}\n\t\t\t}\n\t\t\tgroup = append(group, importSpec)\n\t\t\tlastLine = line\n\t\t}\n\t\tgroups = append(groups, group)\n\t}\n\n\treturn groups\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/ast/astutil/rewrite.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage astutil\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\t\"reflect\"\n\t\"sort\"\n)\n\n// An ApplyFunc is invoked by Apply for each node n, even if n is nil,\n// before and/or after the node's children, using a Cursor describing\n// the current node and providing operations on it.\n//\n// The return value of ApplyFunc controls the syntax tree traversal.\n// See Apply for details.\ntype ApplyFunc func(*Cursor) bool\n\n// Apply traverses a syntax tree recursively, starting with root,\n// and calling pre and post for each node as described below.\n// Apply returns the syntax tree, possibly modified.\n//\n// If pre is not nil, it is called for each node before the node's\n// children are traversed (pre-order). If pre returns false, no\n// children are traversed, and post is not called for that node.\n//\n// If post is not nil, and a prior call of pre didn't return false,\n// post is called for each node after its children are traversed\n// (post-order). If post returns false, traversal is terminated and\n// Apply returns immediately.\n//\n// Only fields that refer to AST nodes are considered children;\n// i.e., token.Pos, Scopes, Objects, and fields of basic types\n// (strings, etc.) are ignored.\n//\n// Children are traversed in the order in which they appear in the\n// respective node's struct definition. A package's files are\n// traversed in the filenames' alphabetical order.\n//\nfunc Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) {\n\tparent := &struct{ ast.Node }{root}\n\tdefer func() {\n\t\tif r := recover(); r != nil && r != abort {\n\t\t\tpanic(r)\n\t\t}\n\t\tresult = parent.Node\n\t}()\n\ta := &application{pre: pre, post: post}\n\ta.apply(parent, \"Node\", nil, root)\n\treturn\n}\n\nvar abort = new(int) // singleton, to signal termination of Apply\n\n// A Cursor describes a node encountered during Apply.\n// Information about the node and its parent is available\n// from the Node, Parent, Name, and Index methods.\n//\n// If p is a variable of type and value of the current parent node\n// c.Parent(), and f is the field identifier with name c.Name(),\n// the following invariants hold:\n//\n//   p.f            == c.Node()  if c.Index() <  0\n//   p.f[c.Index()] == c.Node()  if c.Index() >= 0\n//\n// The methods Replace, Delete, InsertBefore, and InsertAfter\n// can be used to change the AST without disrupting Apply.\ntype Cursor struct {\n\tparent ast.Node\n\tname   string\n\titer   *iterator // valid if non-nil\n\tnode   ast.Node\n}\n\n// Node returns the current Node.\nfunc (c *Cursor) Node() ast.Node { return c.node }\n\n// Parent returns the parent of the current Node.\nfunc (c *Cursor) Parent() ast.Node { return c.parent }\n\n// Name returns the name of the parent Node field that contains the current Node.\n// If the parent is a *ast.Package and the current Node is a *ast.File, Name returns\n// the filename for the current Node.\nfunc (c *Cursor) Name() string { return c.name }\n\n// Index reports the index >= 0 of the current Node in the slice of Nodes that\n// contains it, or a value < 0 if the current Node is not part of a slice.\n// The index of the current node changes if InsertBefore is called while\n// processing the current node.\nfunc (c *Cursor) Index() int {\n\tif c.iter != nil {\n\t\treturn c.iter.index\n\t}\n\treturn -1\n}\n\n// field returns the current node's parent field value.\nfunc (c *Cursor) field() reflect.Value {\n\treturn reflect.Indirect(reflect.ValueOf(c.parent)).FieldByName(c.name)\n}\n\n// Replace replaces the current Node with n.\n// The replacement node is not walked by Apply.\nfunc (c *Cursor) Replace(n ast.Node) {\n\tif _, ok := c.node.(*ast.File); ok {\n\t\tfile, ok := n.(*ast.File)\n\t\tif !ok {\n\t\t\tpanic(\"attempt to replace *ast.File with non-*ast.File\")\n\t\t}\n\t\tc.parent.(*ast.Package).Files[c.name] = file\n\t\treturn\n\t}\n\n\tv := c.field()\n\tif i := c.Index(); i >= 0 {\n\t\tv = v.Index(i)\n\t}\n\tv.Set(reflect.ValueOf(n))\n}\n\n// Delete deletes the current Node from its containing slice.\n// If the current Node is not part of a slice, Delete panics.\n// As a special case, if the current node is a package file,\n// Delete removes it from the package's Files map.\nfunc (c *Cursor) Delete() {\n\tif _, ok := c.node.(*ast.File); ok {\n\t\tdelete(c.parent.(*ast.Package).Files, c.name)\n\t\treturn\n\t}\n\n\ti := c.Index()\n\tif i < 0 {\n\t\tpanic(\"Delete node not contained in slice\")\n\t}\n\tv := c.field()\n\tl := v.Len()\n\treflect.Copy(v.Slice(i, l), v.Slice(i+1, l))\n\tv.Index(l - 1).Set(reflect.Zero(v.Type().Elem()))\n\tv.SetLen(l - 1)\n\tc.iter.step--\n}\n\n// InsertAfter inserts n after the current Node in its containing slice.\n// If the current Node is not part of a slice, InsertAfter panics.\n// Apply does not walk n.\nfunc (c *Cursor) InsertAfter(n ast.Node) {\n\ti := c.Index()\n\tif i < 0 {\n\t\tpanic(\"InsertAfter node not contained in slice\")\n\t}\n\tv := c.field()\n\tv.Set(reflect.Append(v, reflect.Zero(v.Type().Elem())))\n\tl := v.Len()\n\treflect.Copy(v.Slice(i+2, l), v.Slice(i+1, l))\n\tv.Index(i + 1).Set(reflect.ValueOf(n))\n\tc.iter.step++\n}\n\n// InsertBefore inserts n before the current Node in its containing slice.\n// If the current Node is not part of a slice, InsertBefore panics.\n// Apply will not walk n.\nfunc (c *Cursor) InsertBefore(n ast.Node) {\n\ti := c.Index()\n\tif i < 0 {\n\t\tpanic(\"InsertBefore node not contained in slice\")\n\t}\n\tv := c.field()\n\tv.Set(reflect.Append(v, reflect.Zero(v.Type().Elem())))\n\tl := v.Len()\n\treflect.Copy(v.Slice(i+1, l), v.Slice(i, l))\n\tv.Index(i).Set(reflect.ValueOf(n))\n\tc.iter.index++\n}\n\n// application carries all the shared data so we can pass it around cheaply.\ntype application struct {\n\tpre, post ApplyFunc\n\tcursor    Cursor\n\titer      iterator\n}\n\nfunc (a *application) apply(parent ast.Node, name string, iter *iterator, n ast.Node) {\n\t// convert typed nil into untyped nil\n\tif v := reflect.ValueOf(n); v.Kind() == reflect.Ptr && v.IsNil() {\n\t\tn = nil\n\t}\n\n\t// avoid heap-allocating a new cursor for each apply call; reuse a.cursor instead\n\tsaved := a.cursor\n\ta.cursor.parent = parent\n\ta.cursor.name = name\n\ta.cursor.iter = iter\n\ta.cursor.node = n\n\n\tif a.pre != nil && !a.pre(&a.cursor) {\n\t\ta.cursor = saved\n\t\treturn\n\t}\n\n\t// walk children\n\t// (the order of the cases matches the order of the corresponding node types in go/ast)\n\tswitch n := n.(type) {\n\tcase nil:\n\t\t// nothing to do\n\n\t// Comments and fields\n\tcase *ast.Comment:\n\t\t// nothing to do\n\n\tcase *ast.CommentGroup:\n\t\tif n != nil {\n\t\t\ta.applyList(n, \"List\")\n\t\t}\n\n\tcase *ast.Field:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.applyList(n, \"Names\")\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\t\ta.apply(n, \"Tag\", nil, n.Tag)\n\t\ta.apply(n, \"Comment\", nil, n.Comment)\n\n\tcase *ast.FieldList:\n\t\ta.applyList(n, \"List\")\n\n\t// Expressions\n\tcase *ast.BadExpr, *ast.Ident, *ast.BasicLit:\n\t\t// nothing to do\n\n\tcase *ast.Ellipsis:\n\t\ta.apply(n, \"Elt\", nil, n.Elt)\n\n\tcase *ast.FuncLit:\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\tcase *ast.CompositeLit:\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\t\ta.applyList(n, \"Elts\")\n\n\tcase *ast.ParenExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\n\tcase *ast.SelectorExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\t\ta.apply(n, \"Sel\", nil, n.Sel)\n\n\tcase *ast.IndexExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\t\ta.apply(n, \"Index\", nil, n.Index)\n\n\tcase *ast.SliceExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\t\ta.apply(n, \"Low\", nil, n.Low)\n\t\ta.apply(n, \"High\", nil, n.High)\n\t\ta.apply(n, \"Max\", nil, n.Max)\n\n\tcase *ast.TypeAssertExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\n\tcase *ast.CallExpr:\n\t\ta.apply(n, \"Fun\", nil, n.Fun)\n\t\ta.applyList(n, \"Args\")\n\n\tcase *ast.StarExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\n\tcase *ast.UnaryExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\n\tcase *ast.BinaryExpr:\n\t\ta.apply(n, \"X\", nil, n.X)\n\t\ta.apply(n, \"Y\", nil, n.Y)\n\n\tcase *ast.KeyValueExpr:\n\t\ta.apply(n, \"Key\", nil, n.Key)\n\t\ta.apply(n, \"Value\", nil, n.Value)\n\n\t// Types\n\tcase *ast.ArrayType:\n\t\ta.apply(n, \"Len\", nil, n.Len)\n\t\ta.apply(n, \"Elt\", nil, n.Elt)\n\n\tcase *ast.StructType:\n\t\ta.apply(n, \"Fields\", nil, n.Fields)\n\n\tcase *ast.FuncType:\n\t\ta.apply(n, \"Params\", nil, n.Params)\n\t\ta.apply(n, \"Results\", nil, n.Results)\n\n\tcase *ast.InterfaceType:\n\t\ta.apply(n, \"Methods\", nil, n.Methods)\n\n\tcase *ast.MapType:\n\t\ta.apply(n, \"Key\", nil, n.Key)\n\t\ta.apply(n, \"Value\", nil, n.Value)\n\n\tcase *ast.ChanType:\n\t\ta.apply(n, \"Value\", nil, n.Value)\n\n\t// Statements\n\tcase *ast.BadStmt:\n\t\t// nothing to do\n\n\tcase *ast.DeclStmt:\n\t\ta.apply(n, \"Decl\", nil, n.Decl)\n\n\tcase *ast.EmptyStmt:\n\t\t// nothing to do\n\n\tcase *ast.LabeledStmt:\n\t\ta.apply(n, \"Label\", nil, n.Label)\n\t\ta.apply(n, \"Stmt\", nil, n.Stmt)\n\n\tcase *ast.ExprStmt:\n\t\ta.apply(n, \"X\", nil, n.X)\n\n\tcase *ast.SendStmt:\n\t\ta.apply(n, \"Chan\", nil, n.Chan)\n\t\ta.apply(n, \"Value\", nil, n.Value)\n\n\tcase *ast.IncDecStmt:\n\t\ta.apply(n, \"X\", nil, n.X)\n\n\tcase *ast.AssignStmt:\n\t\ta.applyList(n, \"Lhs\")\n\t\ta.applyList(n, \"Rhs\")\n\n\tcase *ast.GoStmt:\n\t\ta.apply(n, \"Call\", nil, n.Call)\n\n\tcase *ast.DeferStmt:\n\t\ta.apply(n, \"Call\", nil, n.Call)\n\n\tcase *ast.ReturnStmt:\n\t\ta.applyList(n, \"Results\")\n\n\tcase *ast.BranchStmt:\n\t\ta.apply(n, \"Label\", nil, n.Label)\n\n\tcase *ast.BlockStmt:\n\t\ta.applyList(n, \"List\")\n\n\tcase *ast.IfStmt:\n\t\ta.apply(n, \"Init\", nil, n.Init)\n\t\ta.apply(n, \"Cond\", nil, n.Cond)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\t\ta.apply(n, \"Else\", nil, n.Else)\n\n\tcase *ast.CaseClause:\n\t\ta.applyList(n, \"List\")\n\t\ta.applyList(n, \"Body\")\n\n\tcase *ast.SwitchStmt:\n\t\ta.apply(n, \"Init\", nil, n.Init)\n\t\ta.apply(n, \"Tag\", nil, n.Tag)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\tcase *ast.TypeSwitchStmt:\n\t\ta.apply(n, \"Init\", nil, n.Init)\n\t\ta.apply(n, \"Assign\", nil, n.Assign)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\tcase *ast.CommClause:\n\t\ta.apply(n, \"Comm\", nil, n.Comm)\n\t\ta.applyList(n, \"Body\")\n\n\tcase *ast.SelectStmt:\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\tcase *ast.ForStmt:\n\t\ta.apply(n, \"Init\", nil, n.Init)\n\t\ta.apply(n, \"Cond\", nil, n.Cond)\n\t\ta.apply(n, \"Post\", nil, n.Post)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\tcase *ast.RangeStmt:\n\t\ta.apply(n, \"Key\", nil, n.Key)\n\t\ta.apply(n, \"Value\", nil, n.Value)\n\t\ta.apply(n, \"X\", nil, n.X)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\t// Declarations\n\tcase *ast.ImportSpec:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.apply(n, \"Name\", nil, n.Name)\n\t\ta.apply(n, \"Path\", nil, n.Path)\n\t\ta.apply(n, \"Comment\", nil, n.Comment)\n\n\tcase *ast.ValueSpec:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.applyList(n, \"Names\")\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\t\ta.applyList(n, \"Values\")\n\t\ta.apply(n, \"Comment\", nil, n.Comment)\n\n\tcase *ast.TypeSpec:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.apply(n, \"Name\", nil, n.Name)\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\t\ta.apply(n, \"Comment\", nil, n.Comment)\n\n\tcase *ast.BadDecl:\n\t\t// nothing to do\n\n\tcase *ast.GenDecl:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.applyList(n, \"Specs\")\n\n\tcase *ast.FuncDecl:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.apply(n, \"Recv\", nil, n.Recv)\n\t\ta.apply(n, \"Name\", nil, n.Name)\n\t\ta.apply(n, \"Type\", nil, n.Type)\n\t\ta.apply(n, \"Body\", nil, n.Body)\n\n\t// Files and packages\n\tcase *ast.File:\n\t\ta.apply(n, \"Doc\", nil, n.Doc)\n\t\ta.apply(n, \"Name\", nil, n.Name)\n\t\ta.applyList(n, \"Decls\")\n\t\t// Don't walk n.Comments; they have either been walked already if\n\t\t// they are Doc comments, or they can be easily walked explicitly.\n\n\tcase *ast.Package:\n\t\t// collect and sort names for reproducible behavior\n\t\tvar names []string\n\t\tfor name := range n.Files {\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tsort.Strings(names)\n\t\tfor _, name := range names {\n\t\t\ta.apply(n, name, nil, n.Files[name])\n\t\t}\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"Apply: unexpected node type %T\", n))\n\t}\n\n\tif a.post != nil && !a.post(&a.cursor) {\n\t\tpanic(abort)\n\t}\n\n\ta.cursor = saved\n}\n\n// An iterator controls iteration over a slice of nodes.\ntype iterator struct {\n\tindex, step int\n}\n\nfunc (a *application) applyList(parent ast.Node, name string) {\n\t// avoid heap-allocating a new iterator for each applyList call; reuse a.iter instead\n\tsaved := a.iter\n\ta.iter.index = 0\n\tfor {\n\t\t// must reload parent.name each time, since cursor modifications might change it\n\t\tv := reflect.Indirect(reflect.ValueOf(parent)).FieldByName(name)\n\t\tif a.iter.index >= v.Len() {\n\t\t\tbreak\n\t\t}\n\n\t\t// element x may be nil in a bad AST - be cautious\n\t\tvar x ast.Node\n\t\tif e := v.Index(a.iter.index); e.IsValid() {\n\t\t\tx = e.Interface().(ast.Node)\n\t\t}\n\n\t\ta.iter.step = 1\n\t\ta.apply(parent, name, &a.iter, x)\n\t\ta.iter.index += a.iter.step\n\t}\n\ta.iter = saved\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/ast/astutil/util.go",
    "content": "package astutil\n\nimport \"go/ast\"\n\n// Unparen returns e with any enclosing parentheses stripped.\nfunc Unparen(e ast.Expr) ast.Expr {\n\tfor {\n\t\tp, ok := e.(*ast.ParenExpr)\n\t\tif !ok {\n\t\t\treturn e\n\t\t}\n\t\te = p.X\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/buildutil/allpackages.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package buildutil provides utilities related to the go/build\n// package in the standard library.\n//\n// All I/O is done via the build.Context file system interface, which must\n// be concurrency-safe.\npackage buildutil // import \"golang.org/x/tools/go/buildutil\"\n\nimport (\n\t\"go/build\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// AllPackages returns the package path of each Go package in any source\n// directory of the specified build context (e.g. $GOROOT or an element\n// of $GOPATH).  Errors are ignored.  The results are sorted.\n// All package paths are canonical, and thus may contain \"/vendor/\".\n//\n// The result may include import paths for directories that contain no\n// *.go files, such as \"archive\" (in $GOROOT/src).\n//\n// All I/O is done via the build.Context file system interface,\n// which must be concurrency-safe.\n//\nfunc AllPackages(ctxt *build.Context) []string {\n\tvar list []string\n\tForEachPackage(ctxt, func(pkg string, _ error) {\n\t\tlist = append(list, pkg)\n\t})\n\tsort.Strings(list)\n\treturn list\n}\n\n// ForEachPackage calls the found function with the package path of\n// each Go package it finds in any source directory of the specified\n// build context (e.g. $GOROOT or an element of $GOPATH).\n// All package paths are canonical, and thus may contain \"/vendor/\".\n//\n// If the package directory exists but could not be read, the second\n// argument to the found function provides the error.\n//\n// All I/O is done via the build.Context file system interface,\n// which must be concurrency-safe.\n//\nfunc ForEachPackage(ctxt *build.Context, found func(importPath string, err error)) {\n\tch := make(chan item)\n\n\tvar wg sync.WaitGroup\n\tfor _, root := range ctxt.SrcDirs() {\n\t\troot := root\n\t\twg.Add(1)\n\t\tgo func() {\n\t\t\tallPackages(ctxt, root, ch)\n\t\t\twg.Done()\n\t\t}()\n\t}\n\tgo func() {\n\t\twg.Wait()\n\t\tclose(ch)\n\t}()\n\n\t// All calls to found occur in the caller's goroutine.\n\tfor i := range ch {\n\t\tfound(i.importPath, i.err)\n\t}\n}\n\ntype item struct {\n\timportPath string\n\terr        error // (optional)\n}\n\n// We use a process-wide counting semaphore to limit\n// the number of parallel calls to ReadDir.\nvar ioLimit = make(chan bool, 20)\n\nfunc allPackages(ctxt *build.Context, root string, ch chan<- item) {\n\troot = filepath.Clean(root) + string(os.PathSeparator)\n\n\tvar wg sync.WaitGroup\n\n\tvar walkDir func(dir string)\n\twalkDir = func(dir string) {\n\t\t// Avoid .foo, _foo, and testdata directory trees.\n\t\tbase := filepath.Base(dir)\n\t\tif base == \"\" || base[0] == '.' || base[0] == '_' || base == \"testdata\" {\n\t\t\treturn\n\t\t}\n\n\t\tpkg := filepath.ToSlash(strings.TrimPrefix(dir, root))\n\n\t\t// Prune search if we encounter any of these import paths.\n\t\tswitch pkg {\n\t\tcase \"builtin\":\n\t\t\treturn\n\t\t}\n\n\t\tioLimit <- true\n\t\tfiles, err := ReadDir(ctxt, dir)\n\t\t<-ioLimit\n\t\tif pkg != \"\" || err != nil {\n\t\t\tch <- item{pkg, err}\n\t\t}\n\t\tfor _, fi := range files {\n\t\t\tfi := fi\n\t\t\tif fi.IsDir() {\n\t\t\t\twg.Add(1)\n\t\t\t\tgo func() {\n\t\t\t\t\twalkDir(filepath.Join(dir, fi.Name()))\n\t\t\t\t\twg.Done()\n\t\t\t\t}()\n\t\t\t}\n\t\t}\n\t}\n\n\twalkDir(root)\n\twg.Wait()\n}\n\n// ExpandPatterns returns the set of packages matched by patterns,\n// which may have the following forms:\n//\n//\t\tgolang.org/x/tools/cmd/guru     # a single package\n//\t\tgolang.org/x/tools/...          # all packages beneath dir\n//\t\t...                             # the entire workspace.\n//\n// Order is significant: a pattern preceded by '-' removes matching\n// packages from the set.  For example, these patterns match all encoding\n// packages except encoding/xml:\n//\n// \tencoding/... -encoding/xml\n//\n// A trailing slash in a pattern is ignored.  (Path components of Go\n// package names are separated by slash, not the platform's path separator.)\n//\nfunc ExpandPatterns(ctxt *build.Context, patterns []string) map[string]bool {\n\t// TODO(adonovan): support other features of 'go list':\n\t// - \"std\"/\"cmd\"/\"all\" meta-packages\n\t// - \"...\" not at the end of a pattern\n\t// - relative patterns using \"./\" or \"../\" prefix\n\n\tpkgs := make(map[string]bool)\n\tdoPkg := func(pkg string, neg bool) {\n\t\tif neg {\n\t\t\tdelete(pkgs, pkg)\n\t\t} else {\n\t\t\tpkgs[pkg] = true\n\t\t}\n\t}\n\n\t// Scan entire workspace if wildcards are present.\n\t// TODO(adonovan): opt: scan only the necessary subtrees of the workspace.\n\tvar all []string\n\tfor _, arg := range patterns {\n\t\tif strings.HasSuffix(arg, \"...\") {\n\t\t\tall = AllPackages(ctxt)\n\t\t\tbreak\n\t\t}\n\t}\n\n\tfor _, arg := range patterns {\n\t\tif arg == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tneg := arg[0] == '-'\n\t\tif neg {\n\t\t\targ = arg[1:]\n\t\t}\n\n\t\tif arg == \"...\" {\n\t\t\t// ... matches all packages\n\t\t\tfor _, pkg := range all {\n\t\t\t\tdoPkg(pkg, neg)\n\t\t\t}\n\t\t} else if dir := strings.TrimSuffix(arg, \"/...\"); dir != arg {\n\t\t\t// dir/... matches all packages beneath dir\n\t\t\tfor _, pkg := range all {\n\t\t\t\tif strings.HasPrefix(pkg, dir) &&\n\t\t\t\t\t(len(pkg) == len(dir) || pkg[len(dir)] == '/') {\n\t\t\t\t\tdoPkg(pkg, neg)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// single package\n\t\t\tdoPkg(strings.TrimSuffix(arg, \"/\"), neg)\n\t\t}\n\t}\n\n\treturn pkgs\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/buildutil/fakecontext.go",
    "content": "package buildutil\n\nimport (\n\t\"fmt\"\n\t\"go/build\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n)\n\n// FakeContext returns a build.Context for the fake file tree specified\n// by pkgs, which maps package import paths to a mapping from file base\n// names to contents.\n//\n// The fake Context has a GOROOT of \"/go\" and no GOPATH, and overrides\n// the necessary file access methods to read from memory instead of the\n// real file system.\n//\n// Unlike a real file tree, the fake one has only two levels---packages\n// and files---so ReadDir(\"/go/src/\") returns all packages under\n// /go/src/ including, for instance, \"math\" and \"math/big\".\n// ReadDir(\"/go/src/math/big\") would return all the files in the\n// \"math/big\" package.\n//\nfunc FakeContext(pkgs map[string]map[string]string) *build.Context {\n\tclean := func(filename string) string {\n\t\tf := path.Clean(filepath.ToSlash(filename))\n\t\t// Removing \"/go/src\" while respecting segment\n\t\t// boundaries has this unfortunate corner case:\n\t\tif f == \"/go/src\" {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn strings.TrimPrefix(f, \"/go/src/\")\n\t}\n\n\tctxt := build.Default // copy\n\tctxt.GOROOT = \"/go\"\n\tctxt.GOPATH = \"\"\n\tctxt.Compiler = \"gc\"\n\tctxt.IsDir = func(dir string) bool {\n\t\tdir = clean(dir)\n\t\tif dir == \"\" {\n\t\t\treturn true // needed by (*build.Context).SrcDirs\n\t\t}\n\t\treturn pkgs[dir] != nil\n\t}\n\tctxt.ReadDir = func(dir string) ([]os.FileInfo, error) {\n\t\tdir = clean(dir)\n\t\tvar fis []os.FileInfo\n\t\tif dir == \"\" {\n\t\t\t// enumerate packages\n\t\t\tfor importPath := range pkgs {\n\t\t\t\tfis = append(fis, fakeDirInfo(importPath))\n\t\t\t}\n\t\t} else {\n\t\t\t// enumerate files of package\n\t\t\tfor basename := range pkgs[dir] {\n\t\t\t\tfis = append(fis, fakeFileInfo(basename))\n\t\t\t}\n\t\t}\n\t\tsort.Sort(byName(fis))\n\t\treturn fis, nil\n\t}\n\tctxt.OpenFile = func(filename string) (io.ReadCloser, error) {\n\t\tfilename = clean(filename)\n\t\tdir, base := path.Split(filename)\n\t\tcontent, ok := pkgs[path.Clean(dir)][base]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"file not found: %s\", filename)\n\t\t}\n\t\treturn ioutil.NopCloser(strings.NewReader(content)), nil\n\t}\n\tctxt.IsAbsPath = func(path string) bool {\n\t\tpath = filepath.ToSlash(path)\n\t\t// Don't rely on the default (filepath.Path) since on\n\t\t// Windows, it reports virtual paths as non-absolute.\n\t\treturn strings.HasPrefix(path, \"/\")\n\t}\n\treturn &ctxt\n}\n\ntype byName []os.FileInfo\n\nfunc (s byName) Len() int           { return len(s) }\nfunc (s byName) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\nfunc (s byName) Less(i, j int) bool { return s[i].Name() < s[j].Name() }\n\ntype fakeFileInfo string\n\nfunc (fi fakeFileInfo) Name() string    { return string(fi) }\nfunc (fakeFileInfo) Sys() interface{}   { return nil }\nfunc (fakeFileInfo) ModTime() time.Time { return time.Time{} }\nfunc (fakeFileInfo) IsDir() bool        { return false }\nfunc (fakeFileInfo) Size() int64        { return 0 }\nfunc (fakeFileInfo) Mode() os.FileMode  { return 0644 }\n\ntype fakeDirInfo string\n\nfunc (fd fakeDirInfo) Name() string    { return string(fd) }\nfunc (fakeDirInfo) Sys() interface{}   { return nil }\nfunc (fakeDirInfo) ModTime() time.Time { return time.Time{} }\nfunc (fakeDirInfo) IsDir() bool        { return true }\nfunc (fakeDirInfo) Size() int64        { return 0 }\nfunc (fakeDirInfo) Mode() os.FileMode  { return 0755 }\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/buildutil/overlay.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage buildutil\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"go/build\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// OverlayContext overlays a build.Context with additional files from\n// a map. Files in the map take precedence over other files.\n//\n// In addition to plain string comparison, two file names are\n// considered equal if their base names match and their directory\n// components point at the same directory on the file system. That is,\n// symbolic links are followed for directories, but not files.\n//\n// A common use case for OverlayContext is to allow editors to pass in\n// a set of unsaved, modified files.\n//\n// Currently, only the Context.OpenFile function will respect the\n// overlay. This may change in the future.\nfunc OverlayContext(orig *build.Context, overlay map[string][]byte) *build.Context {\n\t// TODO(dominikh): Implement IsDir, HasSubdir and ReadDir\n\n\trc := func(data []byte) (io.ReadCloser, error) {\n\t\treturn ioutil.NopCloser(bytes.NewBuffer(data)), nil\n\t}\n\n\tcopy := *orig // make a copy\n\tctxt := &copy\n\tctxt.OpenFile = func(path string) (io.ReadCloser, error) {\n\t\t// Fast path: names match exactly.\n\t\tif content, ok := overlay[path]; ok {\n\t\t\treturn rc(content)\n\t\t}\n\n\t\t// Slow path: check for same file under a different\n\t\t// alias, perhaps due to a symbolic link.\n\t\tfor filename, content := range overlay {\n\t\t\tif sameFile(path, filename) {\n\t\t\t\treturn rc(content)\n\t\t\t}\n\t\t}\n\n\t\treturn OpenFile(orig, path)\n\t}\n\treturn ctxt\n}\n\n// ParseOverlayArchive parses an archive containing Go files and their\n// contents. The result is intended to be used with OverlayContext.\n//\n//\n// Archive format\n//\n// The archive consists of a series of files. Each file consists of a\n// name, a decimal file size and the file contents, separated by\n// newlinews. No newline follows after the file contents.\nfunc ParseOverlayArchive(archive io.Reader) (map[string][]byte, error) {\n\toverlay := make(map[string][]byte)\n\tr := bufio.NewReader(archive)\n\tfor {\n\t\t// Read file name.\n\t\tfilename, err := r.ReadString('\\n')\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tbreak // OK\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"reading archive file name: %v\", err)\n\t\t}\n\t\tfilename = filepath.Clean(strings.TrimSpace(filename))\n\n\t\t// Read file size.\n\t\tsz, err := r.ReadString('\\n')\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"reading size of archive file %s: %v\", filename, err)\n\t\t}\n\t\tsz = strings.TrimSpace(sz)\n\t\tsize, err := strconv.ParseUint(sz, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"parsing size of archive file %s: %v\", filename, err)\n\t\t}\n\n\t\t// Read file content.\n\t\tcontent := make([]byte, size)\n\t\tif _, err := io.ReadFull(r, content); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"reading archive file %s: %v\", filename, err)\n\t\t}\n\t\toverlay[filename] = content\n\t}\n\n\treturn overlay, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/buildutil/tags.go",
    "content": "package buildutil\n\n// This logic was copied from stringsFlag from $GOROOT/src/cmd/go/build.go.\n\nimport \"fmt\"\n\nconst TagsFlagDoc = \"a list of `build tags` to consider satisfied during the build. \" +\n\t\"For more information about build tags, see the description of \" +\n\t\"build constraints in the documentation for the go/build package\"\n\n// TagsFlag is an implementation of the flag.Value and flag.Getter interfaces that parses\n// a flag value in the same manner as go build's -tags flag and\n// populates a []string slice.\n//\n// See $GOROOT/src/go/build/doc.go for description of build tags.\n// See $GOROOT/src/cmd/go/doc.go for description of 'go build -tags' flag.\n//\n// Example:\n// \tflag.Var((*buildutil.TagsFlag)(&build.Default.BuildTags), \"tags\", buildutil.TagsFlagDoc)\ntype TagsFlag []string\n\nfunc (v *TagsFlag) Set(s string) error {\n\tvar err error\n\t*v, err = splitQuotedFields(s)\n\tif *v == nil {\n\t\t*v = []string{}\n\t}\n\treturn err\n}\n\nfunc (v *TagsFlag) Get() interface{} { return *v }\n\nfunc splitQuotedFields(s string) ([]string, error) {\n\t// Split fields allowing '' or \"\" around elements.\n\t// Quotes further inside the string do not count.\n\tvar f []string\n\tfor len(s) > 0 {\n\t\tfor len(s) > 0 && isSpaceByte(s[0]) {\n\t\t\ts = s[1:]\n\t\t}\n\t\tif len(s) == 0 {\n\t\t\tbreak\n\t\t}\n\t\t// Accepted quoted string. No unescaping inside.\n\t\tif s[0] == '\"' || s[0] == '\\'' {\n\t\t\tquote := s[0]\n\t\t\ts = s[1:]\n\t\t\ti := 0\n\t\t\tfor i < len(s) && s[i] != quote {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i >= len(s) {\n\t\t\t\treturn nil, fmt.Errorf(\"unterminated %c string\", quote)\n\t\t\t}\n\t\t\tf = append(f, s[:i])\n\t\t\ts = s[i+1:]\n\t\t\tcontinue\n\t\t}\n\t\ti := 0\n\t\tfor i < len(s) && !isSpaceByte(s[i]) {\n\t\t\ti++\n\t\t}\n\t\tf = append(f, s[:i])\n\t\ts = s[i:]\n\t}\n\treturn f, nil\n}\n\nfunc (v *TagsFlag) String() string {\n\treturn \"<tagsFlag>\"\n}\n\nfunc isSpaceByte(c byte) bool {\n\treturn c == ' ' || c == '\\t' || c == '\\n' || c == '\\r'\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/buildutil/util.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage buildutil\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/build\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\n// ParseFile behaves like parser.ParseFile,\n// but uses the build context's file system interface, if any.\n//\n// If file is not absolute (as defined by IsAbsPath), the (dir, file)\n// components are joined using JoinPath; dir must be absolute.\n//\n// The displayPath function, if provided, is used to transform the\n// filename that will be attached to the ASTs.\n//\n// TODO(adonovan): call this from go/loader.parseFiles when the tree thaws.\n//\nfunc ParseFile(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, file string, mode parser.Mode) (*ast.File, error) {\n\tif !IsAbsPath(ctxt, file) {\n\t\tfile = JoinPath(ctxt, dir, file)\n\t}\n\trd, err := OpenFile(ctxt, file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer rd.Close() // ignore error\n\tif displayPath != nil {\n\t\tfile = displayPath(file)\n\t}\n\treturn parser.ParseFile(fset, file, rd, mode)\n}\n\n// ContainingPackage returns the package containing filename.\n//\n// If filename is not absolute, it is interpreted relative to working directory dir.\n// All I/O is via the build context's file system interface, if any.\n//\n// The '...Files []string' fields of the resulting build.Package are not\n// populated (build.FindOnly mode).\n//\nfunc ContainingPackage(ctxt *build.Context, dir, filename string) (*build.Package, error) {\n\tif !IsAbsPath(ctxt, filename) {\n\t\tfilename = JoinPath(ctxt, dir, filename)\n\t}\n\n\t// We must not assume the file tree uses\n\t// \"/\" always,\n\t// `\\` always,\n\t// or os.PathSeparator (which varies by platform),\n\t// but to make any progress, we are forced to assume that\n\t// paths will not use `\\` unless the PathSeparator\n\t// is also `\\`, thus we can rely on filepath.ToSlash for some sanity.\n\n\tdirSlash := path.Dir(filepath.ToSlash(filename)) + \"/\"\n\n\t// We assume that no source root (GOPATH[i] or GOROOT) contains any other.\n\tfor _, srcdir := range ctxt.SrcDirs() {\n\t\tsrcdirSlash := filepath.ToSlash(srcdir) + \"/\"\n\t\tif importPath, ok := HasSubdir(ctxt, srcdirSlash, dirSlash); ok {\n\t\t\treturn ctxt.Import(importPath, dir, build.FindOnly)\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"can't find package containing %s\", filename)\n}\n\n// -- Effective methods of file system interface -------------------------\n\n// (go/build.Context defines these as methods, but does not export them.)\n\n// hasSubdir calls ctxt.HasSubdir (if not nil) or else uses\n// the local file system to answer the question.\nfunc HasSubdir(ctxt *build.Context, root, dir string) (rel string, ok bool) {\n\tif f := ctxt.HasSubdir; f != nil {\n\t\treturn f(root, dir)\n\t}\n\n\t// Try using paths we received.\n\tif rel, ok = hasSubdir(root, dir); ok {\n\t\treturn\n\t}\n\n\t// Try expanding symlinks and comparing\n\t// expanded against unexpanded and\n\t// expanded against expanded.\n\trootSym, _ := filepath.EvalSymlinks(root)\n\tdirSym, _ := filepath.EvalSymlinks(dir)\n\n\tif rel, ok = hasSubdir(rootSym, dir); ok {\n\t\treturn\n\t}\n\tif rel, ok = hasSubdir(root, dirSym); ok {\n\t\treturn\n\t}\n\treturn hasSubdir(rootSym, dirSym)\n}\n\nfunc hasSubdir(root, dir string) (rel string, ok bool) {\n\tconst sep = string(filepath.Separator)\n\troot = filepath.Clean(root)\n\tif !strings.HasSuffix(root, sep) {\n\t\troot += sep\n\t}\n\n\tdir = filepath.Clean(dir)\n\tif !strings.HasPrefix(dir, root) {\n\t\treturn \"\", false\n\t}\n\n\treturn filepath.ToSlash(dir[len(root):]), true\n}\n\n// FileExists returns true if the specified file exists,\n// using the build context's file system interface.\nfunc FileExists(ctxt *build.Context, path string) bool {\n\tif ctxt.OpenFile != nil {\n\t\tr, err := ctxt.OpenFile(path)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\tr.Close() // ignore error\n\t\treturn true\n\t}\n\t_, err := os.Stat(path)\n\treturn err == nil\n}\n\n// OpenFile behaves like os.Open,\n// but uses the build context's file system interface, if any.\nfunc OpenFile(ctxt *build.Context, path string) (io.ReadCloser, error) {\n\tif ctxt.OpenFile != nil {\n\t\treturn ctxt.OpenFile(path)\n\t}\n\treturn os.Open(path)\n}\n\n// IsAbsPath behaves like filepath.IsAbs,\n// but uses the build context's file system interface, if any.\nfunc IsAbsPath(ctxt *build.Context, path string) bool {\n\tif ctxt.IsAbsPath != nil {\n\t\treturn ctxt.IsAbsPath(path)\n\t}\n\treturn filepath.IsAbs(path)\n}\n\n// JoinPath behaves like filepath.Join,\n// but uses the build context's file system interface, if any.\nfunc JoinPath(ctxt *build.Context, path ...string) string {\n\tif ctxt.JoinPath != nil {\n\t\treturn ctxt.JoinPath(path...)\n\t}\n\treturn filepath.Join(path...)\n}\n\n// IsDir behaves like os.Stat plus IsDir,\n// but uses the build context's file system interface, if any.\nfunc IsDir(ctxt *build.Context, path string) bool {\n\tif ctxt.IsDir != nil {\n\t\treturn ctxt.IsDir(path)\n\t}\n\tfi, err := os.Stat(path)\n\treturn err == nil && fi.IsDir()\n}\n\n// ReadDir behaves like ioutil.ReadDir,\n// but uses the build context's file system interface, if any.\nfunc ReadDir(ctxt *build.Context, path string) ([]os.FileInfo, error) {\n\tif ctxt.ReadDir != nil {\n\t\treturn ctxt.ReadDir(path)\n\t}\n\treturn ioutil.ReadDir(path)\n}\n\n// SplitPathList behaves like filepath.SplitList,\n// but uses the build context's file system interface, if any.\nfunc SplitPathList(ctxt *build.Context, s string) []string {\n\tif ctxt.SplitPathList != nil {\n\t\treturn ctxt.SplitPathList(s)\n\t}\n\treturn filepath.SplitList(s)\n}\n\n// sameFile returns true if x and y have the same basename and denote\n// the same file.\n//\nfunc sameFile(x, y string) bool {\n\tif path.Clean(x) == path.Clean(y) {\n\t\treturn true\n\t}\n\tif filepath.Base(x) == filepath.Base(y) { // (optimisation)\n\t\tif xi, err := os.Stat(x); err == nil {\n\t\t\tif yi, err := os.Stat(y); err == nil {\n\t\t\t\treturn os.SameFile(xi, yi)\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/internal/cgo/cgo.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cgo\n\n// This file handles cgo preprocessing of files containing `import \"C\"`.\n//\n// DESIGN\n//\n// The approach taken is to run the cgo processor on the package's\n// CgoFiles and parse the output, faking the filenames of the\n// resulting ASTs so that the synthetic file containing the C types is\n// called \"C\" (e.g. \"~/go/src/net/C\") and the preprocessed files\n// have their original names (e.g. \"~/go/src/net/cgo_unix.go\"),\n// not the names of the actual temporary files.\n//\n// The advantage of this approach is its fidelity to 'go build'.  The\n// downside is that the token.Position.Offset for each AST node is\n// incorrect, being an offset within the temporary file.  Line numbers\n// should still be correct because of the //line comments.\n//\n// The logic of this file is mostly plundered from the 'go build'\n// tool, which also invokes the cgo preprocessor.\n//\n//\n// REJECTED ALTERNATIVE\n//\n// An alternative approach that we explored is to extend go/types'\n// Importer mechanism to provide the identity of the importing package\n// so that each time `import \"C\"` appears it resolves to a different\n// synthetic package containing just the objects needed in that case.\n// The loader would invoke cgo but parse only the cgo_types.go file\n// defining the package-level objects, discarding the other files\n// resulting from preprocessing.\n//\n// The benefit of this approach would have been that source-level\n// syntax information would correspond exactly to the original cgo\n// file, with no preprocessing involved, making source tools like\n// godoc, guru, and eg happy.  However, the approach was rejected\n// due to the additional complexity it would impose on go/types.  (It\n// made for a beautiful demo, though.)\n//\n// cgo files, despite their *.go extension, are not legal Go source\n// files per the specification since they may refer to unexported\n// members of package \"C\" such as C.int.  Also, a function such as\n// C.getpwent has in effect two types, one matching its C type and one\n// which additionally returns (errno C.int).  The cgo preprocessor\n// uses name mangling to distinguish these two functions in the\n// processed code, but go/types would need to duplicate this logic in\n// its handling of function calls, analogous to the treatment of map\n// lookups in which y=m[k] and y,ok=m[k] are both legal.\n\nimport (\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/build\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// ProcessFiles invokes the cgo preprocessor on bp.CgoFiles, parses\n// the output and returns the resulting ASTs.\n//\nfunc ProcessFiles(bp *build.Package, fset *token.FileSet, DisplayPath func(path string) string, mode parser.Mode) ([]*ast.File, error) {\n\ttmpdir, err := ioutil.TempDir(\"\", strings.Replace(bp.ImportPath, \"/\", \"_\", -1)+\"_C\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer os.RemoveAll(tmpdir)\n\n\tpkgdir := bp.Dir\n\tif DisplayPath != nil {\n\t\tpkgdir = DisplayPath(pkgdir)\n\t}\n\n\tcgoFiles, cgoDisplayFiles, err := Run(bp, pkgdir, tmpdir, false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar files []*ast.File\n\tfor i := range cgoFiles {\n\t\trd, err := os.Open(cgoFiles[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdisplay := filepath.Join(bp.Dir, cgoDisplayFiles[i])\n\t\tf, err := parser.ParseFile(fset, display, rd, mode)\n\t\trd.Close()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfiles = append(files, f)\n\t}\n\treturn files, nil\n}\n\nvar cgoRe = regexp.MustCompile(`[/\\\\:]`)\n\n// Run invokes the cgo preprocessor on bp.CgoFiles and returns two\n// lists of files: the resulting processed files (in temporary\n// directory tmpdir) and the corresponding names of the unprocessed files.\n//\n// Run is adapted from (*builder).cgo in\n// $GOROOT/src/cmd/go/build.go, but these features are unsupported:\n// Objective C, CGOPKGPATH, CGO_FLAGS.\n//\n// If useabs is set to true, absolute paths of the bp.CgoFiles will be passed in\n// to the cgo preprocessor. This in turn will set the // line comments\n// referring to those files to use absolute paths. This is needed for\n// go/packages using the legacy go list support so it is able to find\n// the original files.\nfunc Run(bp *build.Package, pkgdir, tmpdir string, useabs bool) (files, displayFiles []string, err error) {\n\tcgoCPPFLAGS, _, _, _ := cflags(bp, true)\n\t_, cgoexeCFLAGS, _, _ := cflags(bp, false)\n\n\tif len(bp.CgoPkgConfig) > 0 {\n\t\tpcCFLAGS, err := pkgConfigFlags(bp)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tcgoCPPFLAGS = append(cgoCPPFLAGS, pcCFLAGS...)\n\t}\n\n\t// Allows including _cgo_export.h from .[ch] files in the package.\n\tcgoCPPFLAGS = append(cgoCPPFLAGS, \"-I\", tmpdir)\n\n\t// _cgo_gotypes.go (displayed \"C\") contains the type definitions.\n\tfiles = append(files, filepath.Join(tmpdir, \"_cgo_gotypes.go\"))\n\tdisplayFiles = append(displayFiles, \"C\")\n\tfor _, fn := range bp.CgoFiles {\n\t\t// \"foo.cgo1.go\" (displayed \"foo.go\") is the processed Go source.\n\t\tf := cgoRe.ReplaceAllString(fn[:len(fn)-len(\"go\")], \"_\")\n\t\tfiles = append(files, filepath.Join(tmpdir, f+\"cgo1.go\"))\n\t\tdisplayFiles = append(displayFiles, fn)\n\t}\n\n\tvar cgoflags []string\n\tif bp.Goroot && bp.ImportPath == \"runtime/cgo\" {\n\t\tcgoflags = append(cgoflags, \"-import_runtime_cgo=false\")\n\t}\n\tif bp.Goroot && bp.ImportPath == \"runtime/race\" || bp.ImportPath == \"runtime/cgo\" {\n\t\tcgoflags = append(cgoflags, \"-import_syscall=false\")\n\t}\n\n\tvar cgoFiles []string = bp.CgoFiles\n\tif useabs {\n\t\tcgoFiles = make([]string, len(bp.CgoFiles))\n\t\tfor i := range cgoFiles {\n\t\t\tcgoFiles[i] = filepath.Join(pkgdir, bp.CgoFiles[i])\n\t\t}\n\t}\n\n\targs := stringList(\n\t\t\"go\", \"tool\", \"cgo\", \"-objdir\", tmpdir, cgoflags, \"--\",\n\t\tcgoCPPFLAGS, cgoexeCFLAGS, cgoFiles,\n\t)\n\tif false {\n\t\tlog.Printf(\"Running cgo for package %q: %s (dir=%s)\", bp.ImportPath, args, pkgdir)\n\t}\n\tcmd := exec.Command(args[0], args[1:]...)\n\tcmd.Dir = pkgdir\n\tcmd.Stdout = os.Stderr\n\tcmd.Stderr = os.Stderr\n\tif err := cmd.Run(); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"cgo failed: %s: %s\", args, err)\n\t}\n\n\treturn files, displayFiles, nil\n}\n\n// -- unmodified from 'go build' ---------------------------------------\n\n// Return the flags to use when invoking the C or C++ compilers, or cgo.\nfunc cflags(p *build.Package, def bool) (cppflags, cflags, cxxflags, ldflags []string) {\n\tvar defaults string\n\tif def {\n\t\tdefaults = \"-g -O2\"\n\t}\n\n\tcppflags = stringList(envList(\"CGO_CPPFLAGS\", \"\"), p.CgoCPPFLAGS)\n\tcflags = stringList(envList(\"CGO_CFLAGS\", defaults), p.CgoCFLAGS)\n\tcxxflags = stringList(envList(\"CGO_CXXFLAGS\", defaults), p.CgoCXXFLAGS)\n\tldflags = stringList(envList(\"CGO_LDFLAGS\", defaults), p.CgoLDFLAGS)\n\treturn\n}\n\n// envList returns the value of the given environment variable broken\n// into fields, using the default value when the variable is empty.\nfunc envList(key, def string) []string {\n\tv := os.Getenv(key)\n\tif v == \"\" {\n\t\tv = def\n\t}\n\treturn strings.Fields(v)\n}\n\n// stringList's arguments should be a sequence of string or []string values.\n// stringList flattens them into a single []string.\nfunc stringList(args ...interface{}) []string {\n\tvar x []string\n\tfor _, arg := range args {\n\t\tswitch arg := arg.(type) {\n\t\tcase []string:\n\t\t\tx = append(x, arg...)\n\t\tcase string:\n\t\t\tx = append(x, arg)\n\t\tdefault:\n\t\t\tpanic(\"stringList: invalid argument\")\n\t\t}\n\t}\n\treturn x\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/internal/cgo/cgo_pkgconfig.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cgo\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/build\"\n\t\"os/exec\"\n\t\"strings\"\n)\n\n// pkgConfig runs pkg-config with the specified arguments and returns the flags it prints.\nfunc pkgConfig(mode string, pkgs []string) (flags []string, err error) {\n\tcmd := exec.Command(\"pkg-config\", append([]string{mode}, pkgs...)...)\n\tout, err := cmd.CombinedOutput()\n\tif err != nil {\n\t\ts := fmt.Sprintf(\"%s failed: %v\", strings.Join(cmd.Args, \" \"), err)\n\t\tif len(out) > 0 {\n\t\t\ts = fmt.Sprintf(\"%s: %s\", s, out)\n\t\t}\n\t\treturn nil, errors.New(s)\n\t}\n\tif len(out) > 0 {\n\t\tflags = strings.Fields(string(out))\n\t}\n\treturn\n}\n\n// pkgConfigFlags calls pkg-config if needed and returns the cflags\n// needed to build the package.\nfunc pkgConfigFlags(p *build.Package) (cflags []string, err error) {\n\tif len(p.CgoPkgConfig) == 0 {\n\t\treturn nil, nil\n\t}\n\treturn pkgConfig(\"--cflags\", p.CgoPkgConfig)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/loader/doc.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package loader loads a complete Go program from source code, parsing\n// and type-checking the initial packages plus their transitive closure\n// of dependencies.  The ASTs and the derived facts are retained for\n// later use.\n//\n// THIS INTERFACE IS EXPERIMENTAL AND IS LIKELY TO CHANGE.\n//\n// The package defines two primary types: Config, which specifies a\n// set of initial packages to load and various other options; and\n// Program, which is the result of successfully loading the packages\n// specified by a configuration.\n//\n// The configuration can be set directly, but *Config provides various\n// convenience methods to simplify the common cases, each of which can\n// be called any number of times.  Finally, these are followed by a\n// call to Load() to actually load and type-check the program.\n//\n//      var conf loader.Config\n//\n//      // Use the command-line arguments to specify\n//      // a set of initial packages to load from source.\n//      // See FromArgsUsage for help.\n//      rest, err := conf.FromArgs(os.Args[1:], wantTests)\n//\n//      // Parse the specified files and create an ad hoc package with path \"foo\".\n//      // All files must have the same 'package' declaration.\n//      conf.CreateFromFilenames(\"foo\", \"foo.go\", \"bar.go\")\n//\n//      // Create an ad hoc package with path \"foo\" from\n//      // the specified already-parsed files.\n//      // All ASTs must have the same 'package' declaration.\n//      conf.CreateFromFiles(\"foo\", parsedFiles)\n//\n//      // Add \"runtime\" to the set of packages to be loaded.\n//      conf.Import(\"runtime\")\n//\n//      // Adds \"fmt\" and \"fmt_test\" to the set of packages\n//      // to be loaded.  \"fmt\" will include *_test.go files.\n//      conf.ImportWithTests(\"fmt\")\n//\n//      // Finally, load all the packages specified by the configuration.\n//      prog, err := conf.Load()\n//\n// See examples_test.go for examples of API usage.\n//\n//\n// CONCEPTS AND TERMINOLOGY\n//\n// The WORKSPACE is the set of packages accessible to the loader.  The\n// workspace is defined by Config.Build, a *build.Context.  The\n// default context treats subdirectories of $GOROOT and $GOPATH as\n// packages, but this behavior may be overridden.\n//\n// An AD HOC package is one specified as a set of source files on the\n// command line.  In the simplest case, it may consist of a single file\n// such as $GOROOT/src/net/http/triv.go.\n//\n// EXTERNAL TEST packages are those comprised of a set of *_test.go\n// files all with the same 'package foo_test' declaration, all in the\n// same directory.  (go/build.Package calls these files XTestFiles.)\n//\n// An IMPORTABLE package is one that can be referred to by some import\n// spec.  Every importable package is uniquely identified by its\n// PACKAGE PATH or just PATH, a string such as \"fmt\", \"encoding/json\",\n// or \"cmd/vendor/golang.org/x/arch/x86/x86asm\".  A package path\n// typically denotes a subdirectory of the workspace.\n//\n// An import declaration uses an IMPORT PATH to refer to a package.\n// Most import declarations use the package path as the import path.\n//\n// Due to VENDORING (https://golang.org/s/go15vendor), the\n// interpretation of an import path may depend on the directory in which\n// it appears.  To resolve an import path to a package path, go/build\n// must search the enclosing directories for a subdirectory named\n// \"vendor\".\n//\n// ad hoc packages and external test packages are NON-IMPORTABLE.  The\n// path of an ad hoc package is inferred from the package\n// declarations of its files and is therefore not a unique package key.\n// For example, Config.CreatePkgs may specify two initial ad hoc\n// packages, both with path \"main\".\n//\n// An AUGMENTED package is an importable package P plus all the\n// *_test.go files with same 'package foo' declaration as P.\n// (go/build.Package calls these files TestFiles.)\n//\n// The INITIAL packages are those specified in the configuration.  A\n// DEPENDENCY is a package loaded to satisfy an import in an initial\n// package or another dependency.\n//\npackage loader\n\n// IMPLEMENTATION NOTES\n//\n// 'go test', in-package test files, and import cycles\n// ---------------------------------------------------\n//\n// An external test package may depend upon members of the augmented\n// package that are not in the unaugmented package, such as functions\n// that expose internals.  (See bufio/export_test.go for an example.)\n// So, the loader must ensure that for each external test package\n// it loads, it also augments the corresponding non-test package.\n//\n// The import graph over n unaugmented packages must be acyclic; the\n// import graph over n-1 unaugmented packages plus one augmented\n// package must also be acyclic.  ('go test' relies on this.)  But the\n// import graph over n augmented packages may contain cycles.\n//\n// First, all the (unaugmented) non-test packages and their\n// dependencies are imported in the usual way; the loader reports an\n// error if it detects an import cycle.\n//\n// Then, each package P for which testing is desired is augmented by\n// the list P' of its in-package test files, by calling\n// (*types.Checker).Files.  This arrangement ensures that P' may\n// reference definitions within P, but P may not reference definitions\n// within P'.  Furthermore, P' may import any other package, including\n// ones that depend upon P, without an import cycle error.\n//\n// Consider two packages A and B, both of which have lists of\n// in-package test files we'll call A' and B', and which have the\n// following import graph edges:\n//    B  imports A\n//    B' imports A\n//    A' imports B\n// This last edge would be expected to create an error were it not\n// for the special type-checking discipline above.\n// Cycles of size greater than two are possible.  For example:\n//   compress/bzip2/bzip2_test.go (package bzip2)  imports \"io/ioutil\"\n//   io/ioutil/tempfile_test.go   (package ioutil) imports \"regexp\"\n//   regexp/exec_test.go          (package regexp) imports \"compress/bzip2\"\n//\n//\n// Concurrency\n// -----------\n//\n// Let us define the import dependency graph as follows.  Each node is a\n// list of files passed to (Checker).Files at once.  Many of these lists\n// are the production code of an importable Go package, so those nodes\n// are labelled by the package's path.  The remaining nodes are\n// ad hoc packages and lists of in-package *_test.go files that augment\n// an importable package; those nodes have no label.\n//\n// The edges of the graph represent import statements appearing within a\n// file.  An edge connects a node (a list of files) to the node it\n// imports, which is importable and thus always labelled.\n//\n// Loading is controlled by this dependency graph.\n//\n// To reduce I/O latency, we start loading a package's dependencies\n// asynchronously as soon as we've parsed its files and enumerated its\n// imports (scanImports).  This performs a preorder traversal of the\n// import dependency graph.\n//\n// To exploit hardware parallelism, we type-check unrelated packages in\n// parallel, where \"unrelated\" means not ordered by the partial order of\n// the import dependency graph.\n//\n// We use a concurrency-safe non-blocking cache (importer.imported) to\n// record the results of type-checking, whether success or failure.  An\n// entry is created in this cache by startLoad the first time the\n// package is imported.  The first goroutine to request an entry becomes\n// responsible for completing the task and broadcasting completion to\n// subsequent requestors, which block until then.\n//\n// Type checking occurs in (parallel) postorder: we cannot type-check a\n// set of files until we have loaded and type-checked all of their\n// immediate dependencies (and thus all of their transitive\n// dependencies). If the input were guaranteed free of import cycles,\n// this would be trivial: we could simply wait for completion of the\n// dependencies and then invoke the typechecker.\n//\n// But as we saw in the 'go test' section above, some cycles in the\n// import graph over packages are actually legal, so long as the\n// cycle-forming edge originates in the in-package test files that\n// augment the package.  This explains why the nodes of the import\n// dependency graph are not packages, but lists of files: the unlabelled\n// nodes avoid the cycles.  Consider packages A and B where B imports A\n// and A's in-package tests AT import B.  The naively constructed import\n// graph over packages would contain a cycle (A+AT) --> B --> (A+AT) but\n// the graph over lists of files is AT --> B --> A, where AT is an\n// unlabelled node.\n//\n// Awaiting completion of the dependencies in a cyclic graph would\n// deadlock, so we must materialize the import dependency graph (as\n// importer.graph) and check whether each import edge forms a cycle.  If\n// x imports y, and the graph already contains a path from y to x, then\n// there is an import cycle, in which case the processing of x must not\n// wait for the completion of processing of y.\n//\n// When the type-checker makes a callback (doImport) to the loader for a\n// given import edge, there are two possible cases.  In the normal case,\n// the dependency has already been completely type-checked; doImport\n// does a cache lookup and returns it.  In the cyclic case, the entry in\n// the cache is still necessarily incomplete, indicating a cycle.  We\n// perform the cycle check again to obtain the error message, and return\n// the error.\n//\n// The result of using concurrency is about a 2.5x speedup for stdlib_test.\n\n// TODO(adonovan): overhaul the package documentation.\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/loader/loader.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage loader\n\n// See doc.go for package documentation and implementation notes.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/build\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"go/types\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/tools/go/ast/astutil\"\n\t\"golang.org/x/tools/go/internal/cgo\"\n)\n\nvar ignoreVendor build.ImportMode\n\nconst trace = false // show timing info for type-checking\n\n// Config specifies the configuration for loading a whole program from\n// Go source code.\n// The zero value for Config is a ready-to-use default configuration.\ntype Config struct {\n\t// Fset is the file set for the parser to use when loading the\n\t// program.  If nil, it may be lazily initialized by any\n\t// method of Config.\n\tFset *token.FileSet\n\n\t// ParserMode specifies the mode to be used by the parser when\n\t// loading source packages.\n\tParserMode parser.Mode\n\n\t// TypeChecker contains options relating to the type checker.\n\t//\n\t// The supplied IgnoreFuncBodies is not used; the effective\n\t// value comes from the TypeCheckFuncBodies func below.\n\t// The supplied Import function is not used either.\n\tTypeChecker types.Config\n\n\t// TypeCheckFuncBodies is a predicate over package paths.\n\t// A package for which the predicate is false will\n\t// have its package-level declarations type checked, but not\n\t// its function bodies; this can be used to quickly load\n\t// dependencies from source.  If nil, all func bodies are type\n\t// checked.\n\tTypeCheckFuncBodies func(path string) bool\n\n\t// If Build is non-nil, it is used to locate source packages.\n\t// Otherwise &build.Default is used.\n\t//\n\t// By default, cgo is invoked to preprocess Go files that\n\t// import the fake package \"C\".  This behaviour can be\n\t// disabled by setting CGO_ENABLED=0 in the environment prior\n\t// to startup, or by setting Build.CgoEnabled=false.\n\tBuild *build.Context\n\n\t// The current directory, used for resolving relative package\n\t// references such as \"./go/loader\".  If empty, os.Getwd will be\n\t// used instead.\n\tCwd string\n\n\t// If DisplayPath is non-nil, it is used to transform each\n\t// file name obtained from Build.Import().  This can be used\n\t// to prevent a virtualized build.Config's file names from\n\t// leaking into the user interface.\n\tDisplayPath func(path string) string\n\n\t// If AllowErrors is true, Load will return a Program even\n\t// if some of the its packages contained I/O, parser or type\n\t// errors; such errors are accessible via PackageInfo.Errors.  If\n\t// false, Load will fail if any package had an error.\n\tAllowErrors bool\n\n\t// CreatePkgs specifies a list of non-importable initial\n\t// packages to create.  The resulting packages will appear in\n\t// the corresponding elements of the Program.Created slice.\n\tCreatePkgs []PkgSpec\n\n\t// ImportPkgs specifies a set of initial packages to load.\n\t// The map keys are package paths.\n\t//\n\t// The map value indicates whether to load tests.  If true, Load\n\t// will add and type-check two lists of files to the package:\n\t// non-test files followed by in-package *_test.go files.  In\n\t// addition, it will append the external test package (if any)\n\t// to Program.Created.\n\tImportPkgs map[string]bool\n\n\t// FindPackage is called during Load to create the build.Package\n\t// for a given import path from a given directory.\n\t// If FindPackage is nil, (*build.Context).Import is used.\n\t// A client may use this hook to adapt to a proprietary build\n\t// system that does not follow the \"go build\" layout\n\t// conventions, for example.\n\t//\n\t// It must be safe to call concurrently from multiple goroutines.\n\tFindPackage func(ctxt *build.Context, importPath, fromDir string, mode build.ImportMode) (*build.Package, error)\n\n\t// AfterTypeCheck is called immediately after a list of files\n\t// has been type-checked and appended to info.Files.\n\t//\n\t// This optional hook function is the earliest opportunity for\n\t// the client to observe the output of the type checker,\n\t// which may be useful to reduce analysis latency when loading\n\t// a large program.\n\t//\n\t// The function is permitted to modify info.Info, for instance\n\t// to clear data structures that are no longer needed, which can\n\t// dramatically reduce peak memory consumption.\n\t//\n\t// The function may be called twice for the same PackageInfo:\n\t// once for the files of the package and again for the\n\t// in-package test files.\n\t//\n\t// It must be safe to call concurrently from multiple goroutines.\n\tAfterTypeCheck func(info *PackageInfo, files []*ast.File)\n}\n\n// A PkgSpec specifies a non-importable package to be created by Load.\n// Files are processed first, but typically only one of Files and\n// Filenames is provided.  The path needn't be globally unique.\n//\n// For vendoring purposes, the package's directory is the one that\n// contains the first file.\ntype PkgSpec struct {\n\tPath      string      // package path (\"\" => use package declaration)\n\tFiles     []*ast.File // ASTs of already-parsed files\n\tFilenames []string    // names of files to be parsed\n}\n\n// A Program is a Go program loaded from source as specified by a Config.\ntype Program struct {\n\tFset *token.FileSet // the file set for this program\n\n\t// Created[i] contains the initial package whose ASTs or\n\t// filenames were supplied by Config.CreatePkgs[i], followed by\n\t// the external test package, if any, of each package in\n\t// Config.ImportPkgs ordered by ImportPath.\n\t//\n\t// NOTE: these files must not import \"C\".  Cgo preprocessing is\n\t// only performed on imported packages, not ad hoc packages.\n\t//\n\t// TODO(adonovan): we need to copy and adapt the logic of\n\t// goFilesPackage (from $GOROOT/src/cmd/go/build.go) and make\n\t// Config.Import and Config.Create methods return the same kind\n\t// of entity, essentially a build.Package.\n\t// Perhaps we can even reuse that type directly.\n\tCreated []*PackageInfo\n\n\t// Imported contains the initially imported packages,\n\t// as specified by Config.ImportPkgs.\n\tImported map[string]*PackageInfo\n\n\t// AllPackages contains the PackageInfo of every package\n\t// encountered by Load: all initial packages and all\n\t// dependencies, including incomplete ones.\n\tAllPackages map[*types.Package]*PackageInfo\n\n\t// importMap is the canonical mapping of package paths to\n\t// packages.  It contains all Imported initial packages, but not\n\t// Created ones, and all imported dependencies.\n\timportMap map[string]*types.Package\n}\n\n// PackageInfo holds the ASTs and facts derived by the type-checker\n// for a single package.\n//\n// Not mutated once exposed via the API.\n//\ntype PackageInfo struct {\n\tPkg                   *types.Package\n\tImportable            bool        // true if 'import \"Pkg.Path()\"' would resolve to this\n\tTransitivelyErrorFree bool        // true if Pkg and all its dependencies are free of errors\n\tFiles                 []*ast.File // syntax trees for the package's files\n\tErrors                []error     // non-nil if the package had errors\n\ttypes.Info                        // type-checker deductions.\n\tdir                   string      // package directory\n\n\tchecker   *types.Checker // transient type-checker state\n\terrorFunc func(error)\n}\n\nfunc (info *PackageInfo) String() string { return info.Pkg.Path() }\n\nfunc (info *PackageInfo) appendError(err error) {\n\tif info.errorFunc != nil {\n\t\tinfo.errorFunc(err)\n\t} else {\n\t\tfmt.Fprintln(os.Stderr, err)\n\t}\n\tinfo.Errors = append(info.Errors, err)\n}\n\nfunc (conf *Config) fset() *token.FileSet {\n\tif conf.Fset == nil {\n\t\tconf.Fset = token.NewFileSet()\n\t}\n\treturn conf.Fset\n}\n\n// ParseFile is a convenience function (intended for testing) that invokes\n// the parser using the Config's FileSet, which is initialized if nil.\n//\n// src specifies the parser input as a string, []byte, or io.Reader, and\n// filename is its apparent name.  If src is nil, the contents of\n// filename are read from the file system.\n//\nfunc (conf *Config) ParseFile(filename string, src interface{}) (*ast.File, error) {\n\t// TODO(adonovan): use conf.build() etc like parseFiles does.\n\treturn parser.ParseFile(conf.fset(), filename, src, conf.ParserMode)\n}\n\n// FromArgsUsage is a partial usage message that applications calling\n// FromArgs may wish to include in their -help output.\nconst FromArgsUsage = `\n<args> is a list of arguments denoting a set of initial packages.\nIt may take one of two forms:\n\n1. A list of *.go source files.\n\n   All of the specified files are loaded, parsed and type-checked\n   as a single package.  All the files must belong to the same directory.\n\n2. A list of import paths, each denoting a package.\n\n   The package's directory is found relative to the $GOROOT and\n   $GOPATH using similar logic to 'go build', and the *.go files in\n   that directory are loaded, parsed and type-checked as a single\n   package.\n\n   In addition, all *_test.go files in the directory are then loaded\n   and parsed.  Those files whose package declaration equals that of\n   the non-*_test.go files are included in the primary package.  Test\n   files whose package declaration ends with \"_test\" are type-checked\n   as another package, the 'external' test package, so that a single\n   import path may denote two packages.  (Whether this behaviour is\n   enabled is tool-specific, and may depend on additional flags.)\n\nA '--' argument terminates the list of packages.\n`\n\n// FromArgs interprets args as a set of initial packages to load from\n// source and updates the configuration.  It returns the list of\n// unconsumed arguments.\n//\n// It is intended for use in command-line interfaces that require a\n// set of initial packages to be specified; see FromArgsUsage message\n// for details.\n//\n// Only superficial errors are reported at this stage; errors dependent\n// on I/O are detected during Load.\n//\nfunc (conf *Config) FromArgs(args []string, xtest bool) ([]string, error) {\n\tvar rest []string\n\tfor i, arg := range args {\n\t\tif arg == \"--\" {\n\t\t\trest = args[i+1:]\n\t\t\targs = args[:i]\n\t\t\tbreak // consume \"--\" and return the remaining args\n\t\t}\n\t}\n\n\tif len(args) > 0 && strings.HasSuffix(args[0], \".go\") {\n\t\t// Assume args is a list of a *.go files\n\t\t// denoting a single ad hoc package.\n\t\tfor _, arg := range args {\n\t\t\tif !strings.HasSuffix(arg, \".go\") {\n\t\t\t\treturn nil, fmt.Errorf(\"named files must be .go files: %s\", arg)\n\t\t\t}\n\t\t}\n\t\tconf.CreateFromFilenames(\"\", args...)\n\t} else {\n\t\t// Assume args are directories each denoting a\n\t\t// package and (perhaps) an external test, iff xtest.\n\t\tfor _, arg := range args {\n\t\t\tif xtest {\n\t\t\t\tconf.ImportWithTests(arg)\n\t\t\t} else {\n\t\t\t\tconf.Import(arg)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn rest, nil\n}\n\n// CreateFromFilenames is a convenience function that adds\n// a conf.CreatePkgs entry to create a package of the specified *.go\n// files.\n//\nfunc (conf *Config) CreateFromFilenames(path string, filenames ...string) {\n\tconf.CreatePkgs = append(conf.CreatePkgs, PkgSpec{Path: path, Filenames: filenames})\n}\n\n// CreateFromFiles is a convenience function that adds a conf.CreatePkgs\n// entry to create package of the specified path and parsed files.\n//\nfunc (conf *Config) CreateFromFiles(path string, files ...*ast.File) {\n\tconf.CreatePkgs = append(conf.CreatePkgs, PkgSpec{Path: path, Files: files})\n}\n\n// ImportWithTests is a convenience function that adds path to\n// ImportPkgs, the set of initial source packages located relative to\n// $GOPATH.  The package will be augmented by any *_test.go files in\n// its directory that contain a \"package x\" (not \"package x_test\")\n// declaration.\n//\n// In addition, if any *_test.go files contain a \"package x_test\"\n// declaration, an additional package comprising just those files will\n// be added to CreatePkgs.\n//\nfunc (conf *Config) ImportWithTests(path string) { conf.addImport(path, true) }\n\n// Import is a convenience function that adds path to ImportPkgs, the\n// set of initial packages that will be imported from source.\n//\nfunc (conf *Config) Import(path string) { conf.addImport(path, false) }\n\nfunc (conf *Config) addImport(path string, tests bool) {\n\tif path == \"C\" {\n\t\treturn // ignore; not a real package\n\t}\n\tif conf.ImportPkgs == nil {\n\t\tconf.ImportPkgs = make(map[string]bool)\n\t}\n\tconf.ImportPkgs[path] = conf.ImportPkgs[path] || tests\n}\n\n// PathEnclosingInterval returns the PackageInfo and ast.Node that\n// contain source interval [start, end), and all the node's ancestors\n// up to the AST root.  It searches all ast.Files of all packages in prog.\n// exact is defined as for astutil.PathEnclosingInterval.\n//\n// The zero value is returned if not found.\n//\nfunc (prog *Program) PathEnclosingInterval(start, end token.Pos) (pkg *PackageInfo, path []ast.Node, exact bool) {\n\tfor _, info := range prog.AllPackages {\n\t\tfor _, f := range info.Files {\n\t\t\tif f.Pos() == token.NoPos {\n\t\t\t\t// This can happen if the parser saw\n\t\t\t\t// too many errors and bailed out.\n\t\t\t\t// (Use parser.AllErrors to prevent that.)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !tokenFileContainsPos(prog.Fset.File(f.Pos()), start) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif path, exact := astutil.PathEnclosingInterval(f, start, end); path != nil {\n\t\t\t\treturn info, path, exact\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, nil, false\n}\n\n// InitialPackages returns a new slice containing the set of initial\n// packages (Created + Imported) in unspecified order.\n//\nfunc (prog *Program) InitialPackages() []*PackageInfo {\n\tinfos := make([]*PackageInfo, 0, len(prog.Created)+len(prog.Imported))\n\tinfos = append(infos, prog.Created...)\n\tfor _, info := range prog.Imported {\n\t\tinfos = append(infos, info)\n\t}\n\treturn infos\n}\n\n// Package returns the ASTs and results of type checking for the\n// specified package.\nfunc (prog *Program) Package(path string) *PackageInfo {\n\tif info, ok := prog.AllPackages[prog.importMap[path]]; ok {\n\t\treturn info\n\t}\n\tfor _, info := range prog.Created {\n\t\tif path == info.Pkg.Path() {\n\t\t\treturn info\n\t\t}\n\t}\n\treturn nil\n}\n\n// ---------- Implementation ----------\n\n// importer holds the working state of the algorithm.\ntype importer struct {\n\tconf  *Config   // the client configuration\n\tstart time.Time // for logging\n\n\tprogMu sync.Mutex // guards prog\n\tprog   *Program   // the resulting program\n\n\t// findpkg is a memoization of FindPackage.\n\tfindpkgMu sync.Mutex // guards findpkg\n\tfindpkg   map[findpkgKey]*findpkgValue\n\n\timportedMu sync.Mutex             // guards imported\n\timported   map[string]*importInfo // all imported packages (incl. failures) by import path\n\n\t// import dependency graph: graph[x][y] => x imports y\n\t//\n\t// Since non-importable packages cannot be cyclic, we ignore\n\t// their imports, thus we only need the subgraph over importable\n\t// packages.  Nodes are identified by their import paths.\n\tgraphMu sync.Mutex\n\tgraph   map[string]map[string]bool\n}\n\ntype findpkgKey struct {\n\timportPath string\n\tfromDir    string\n\tmode       build.ImportMode\n}\n\ntype findpkgValue struct {\n\tready chan struct{} // closed to broadcast readiness\n\tbp    *build.Package\n\terr   error\n}\n\n// importInfo tracks the success or failure of a single import.\n//\n// Upon completion, exactly one of info and err is non-nil:\n// info on successful creation of a package, err otherwise.\n// A successful package may still contain type errors.\n//\ntype importInfo struct {\n\tpath     string        // import path\n\tinfo     *PackageInfo  // results of typechecking (including errors)\n\tcomplete chan struct{} // closed to broadcast that info is set.\n}\n\n// awaitCompletion blocks until ii is complete,\n// i.e. the info field is safe to inspect.\nfunc (ii *importInfo) awaitCompletion() {\n\t<-ii.complete // wait for close\n}\n\n// Complete marks ii as complete.\n// Its info and err fields will not be subsequently updated.\nfunc (ii *importInfo) Complete(info *PackageInfo) {\n\tif info == nil {\n\t\tpanic(\"info == nil\")\n\t}\n\tii.info = info\n\tclose(ii.complete)\n}\n\ntype importError struct {\n\tpath string // import path\n\terr  error  // reason for failure to create a package\n}\n\n// Load creates the initial packages specified by conf.{Create,Import}Pkgs,\n// loading their dependencies packages as needed.\n//\n// On success, Load returns a Program containing a PackageInfo for\n// each package.  On failure, it returns an error.\n//\n// If AllowErrors is true, Load will return a Program even if some\n// packages contained I/O, parser or type errors, or if dependencies\n// were missing.  (Such errors are accessible via PackageInfo.Errors.  If\n// false, Load will fail if any package had an error.\n//\n// It is an error if no packages were loaded.\n//\nfunc (conf *Config) Load() (*Program, error) {\n\t// Create a simple default error handler for parse/type errors.\n\tif conf.TypeChecker.Error == nil {\n\t\tconf.TypeChecker.Error = func(e error) { fmt.Fprintln(os.Stderr, e) }\n\t}\n\n\t// Set default working directory for relative package references.\n\tif conf.Cwd == \"\" {\n\t\tvar err error\n\t\tconf.Cwd, err = os.Getwd()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Install default FindPackage hook using go/build logic.\n\tif conf.FindPackage == nil {\n\t\tconf.FindPackage = (*build.Context).Import\n\t}\n\n\tprog := &Program{\n\t\tFset:        conf.fset(),\n\t\tImported:    make(map[string]*PackageInfo),\n\t\timportMap:   make(map[string]*types.Package),\n\t\tAllPackages: make(map[*types.Package]*PackageInfo),\n\t}\n\n\timp := importer{\n\t\tconf:     conf,\n\t\tprog:     prog,\n\t\tfindpkg:  make(map[findpkgKey]*findpkgValue),\n\t\timported: make(map[string]*importInfo),\n\t\tstart:    time.Now(),\n\t\tgraph:    make(map[string]map[string]bool),\n\t}\n\n\t// -- loading proper (concurrent phase) --------------------------------\n\n\tvar errpkgs []string // packages that contained errors\n\n\t// Load the initially imported packages and their dependencies,\n\t// in parallel.\n\t// No vendor check on packages imported from the command line.\n\tinfos, importErrors := imp.importAll(\"\", conf.Cwd, conf.ImportPkgs, ignoreVendor)\n\tfor _, ie := range importErrors {\n\t\tconf.TypeChecker.Error(ie.err) // failed to create package\n\t\terrpkgs = append(errpkgs, ie.path)\n\t}\n\tfor _, info := range infos {\n\t\tprog.Imported[info.Pkg.Path()] = info\n\t}\n\n\t// Augment the designated initial packages by their tests.\n\t// Dependencies are loaded in parallel.\n\tvar xtestPkgs []*build.Package\n\tfor importPath, augment := range conf.ImportPkgs {\n\t\tif !augment {\n\t\t\tcontinue\n\t\t}\n\n\t\t// No vendor check on packages imported from command line.\n\t\tbp, err := imp.findPackage(importPath, conf.Cwd, ignoreVendor)\n\t\tif err != nil {\n\t\t\t// Package not found, or can't even parse package declaration.\n\t\t\t// Already reported by previous loop; ignore it.\n\t\t\tcontinue\n\t\t}\n\n\t\t// Needs external test package?\n\t\tif len(bp.XTestGoFiles) > 0 {\n\t\t\txtestPkgs = append(xtestPkgs, bp)\n\t\t}\n\n\t\t// Consult the cache using the canonical package path.\n\t\tpath := bp.ImportPath\n\t\timp.importedMu.Lock() // (unnecessary, we're sequential here)\n\t\tii, ok := imp.imported[path]\n\t\t// Paranoid checks added due to issue #11012.\n\t\tif !ok {\n\t\t\t// Unreachable.\n\t\t\t// The previous loop called importAll and thus\n\t\t\t// startLoad for each path in ImportPkgs, which\n\t\t\t// populates imp.imported[path] with a non-zero value.\n\t\t\tpanic(fmt.Sprintf(\"imported[%q] not found\", path))\n\t\t}\n\t\tif ii == nil {\n\t\t\t// Unreachable.\n\t\t\t// The ii values in this loop are the same as in\n\t\t\t// the previous loop, which enforced the invariant\n\t\t\t// that at least one of ii.err and ii.info is non-nil.\n\t\t\tpanic(fmt.Sprintf(\"imported[%q] == nil\", path))\n\t\t}\n\t\tif ii.info == nil {\n\t\t\t// Unreachable.\n\t\t\t// awaitCompletion has the postcondition\n\t\t\t// ii.info != nil.\n\t\t\tpanic(fmt.Sprintf(\"imported[%q].info = nil\", path))\n\t\t}\n\t\tinfo := ii.info\n\t\timp.importedMu.Unlock()\n\n\t\t// Parse the in-package test files.\n\t\tfiles, errs := imp.conf.parsePackageFiles(bp, 't')\n\t\tfor _, err := range errs {\n\t\t\tinfo.appendError(err)\n\t\t}\n\n\t\t// The test files augmenting package P cannot be imported,\n\t\t// but may import packages that import P,\n\t\t// so we must disable the cycle check.\n\t\timp.addFiles(info, files, false)\n\t}\n\n\tcreatePkg := func(path, dir string, files []*ast.File, errs []error) {\n\t\tinfo := imp.newPackageInfo(path, dir)\n\t\tfor _, err := range errs {\n\t\t\tinfo.appendError(err)\n\t\t}\n\n\t\t// Ad hoc packages are non-importable,\n\t\t// so no cycle check is needed.\n\t\t// addFiles loads dependencies in parallel.\n\t\timp.addFiles(info, files, false)\n\t\tprog.Created = append(prog.Created, info)\n\t}\n\n\t// Create packages specified by conf.CreatePkgs.\n\tfor _, cp := range conf.CreatePkgs {\n\t\tfiles, errs := parseFiles(conf.fset(), conf.build(), nil, conf.Cwd, cp.Filenames, conf.ParserMode)\n\t\tfiles = append(files, cp.Files...)\n\n\t\tpath := cp.Path\n\t\tif path == \"\" {\n\t\t\tif len(files) > 0 {\n\t\t\t\tpath = files[0].Name.Name\n\t\t\t} else {\n\t\t\t\tpath = \"(unnamed)\"\n\t\t\t}\n\t\t}\n\n\t\tdir := conf.Cwd\n\t\tif len(files) > 0 && files[0].Pos().IsValid() {\n\t\t\tdir = filepath.Dir(conf.fset().File(files[0].Pos()).Name())\n\t\t}\n\t\tcreatePkg(path, dir, files, errs)\n\t}\n\n\t// Create external test packages.\n\tsort.Sort(byImportPath(xtestPkgs))\n\tfor _, bp := range xtestPkgs {\n\t\tfiles, errs := imp.conf.parsePackageFiles(bp, 'x')\n\t\tcreatePkg(bp.ImportPath+\"_test\", bp.Dir, files, errs)\n\t}\n\n\t// -- finishing up (sequential) ----------------------------------------\n\n\tif len(prog.Imported)+len(prog.Created) == 0 {\n\t\treturn nil, errors.New(\"no initial packages were loaded\")\n\t}\n\n\t// Create infos for indirectly imported packages.\n\t// e.g. incomplete packages without syntax, loaded from export data.\n\tfor _, obj := range prog.importMap {\n\t\tinfo := prog.AllPackages[obj]\n\t\tif info == nil {\n\t\t\tprog.AllPackages[obj] = &PackageInfo{Pkg: obj, Importable: true}\n\t\t} else {\n\t\t\t// finished\n\t\t\tinfo.checker = nil\n\t\t\tinfo.errorFunc = nil\n\t\t}\n\t}\n\n\tif !conf.AllowErrors {\n\t\t// Report errors in indirectly imported packages.\n\t\tfor _, info := range prog.AllPackages {\n\t\t\tif len(info.Errors) > 0 {\n\t\t\t\terrpkgs = append(errpkgs, info.Pkg.Path())\n\t\t\t}\n\t\t}\n\t\tif errpkgs != nil {\n\t\t\tvar more string\n\t\t\tif len(errpkgs) > 3 {\n\t\t\t\tmore = fmt.Sprintf(\" and %d more\", len(errpkgs)-3)\n\t\t\t\terrpkgs = errpkgs[:3]\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"couldn't load packages due to errors: %s%s\",\n\t\t\t\tstrings.Join(errpkgs, \", \"), more)\n\t\t}\n\t}\n\n\tmarkErrorFreePackages(prog.AllPackages)\n\n\treturn prog, nil\n}\n\ntype byImportPath []*build.Package\n\nfunc (b byImportPath) Len() int           { return len(b) }\nfunc (b byImportPath) Less(i, j int) bool { return b[i].ImportPath < b[j].ImportPath }\nfunc (b byImportPath) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }\n\n// markErrorFreePackages sets the TransitivelyErrorFree flag on all\n// applicable packages.\nfunc markErrorFreePackages(allPackages map[*types.Package]*PackageInfo) {\n\t// Build the transpose of the import graph.\n\timportedBy := make(map[*types.Package]map[*types.Package]bool)\n\tfor P := range allPackages {\n\t\tfor _, Q := range P.Imports() {\n\t\t\tclients, ok := importedBy[Q]\n\t\t\tif !ok {\n\t\t\t\tclients = make(map[*types.Package]bool)\n\t\t\t\timportedBy[Q] = clients\n\t\t\t}\n\t\t\tclients[P] = true\n\t\t}\n\t}\n\n\t// Find all packages reachable from some error package.\n\treachable := make(map[*types.Package]bool)\n\tvar visit func(*types.Package)\n\tvisit = func(p *types.Package) {\n\t\tif !reachable[p] {\n\t\t\treachable[p] = true\n\t\t\tfor q := range importedBy[p] {\n\t\t\t\tvisit(q)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, info := range allPackages {\n\t\tif len(info.Errors) > 0 {\n\t\t\tvisit(info.Pkg)\n\t\t}\n\t}\n\n\t// Mark the others as \"transitively error-free\".\n\tfor _, info := range allPackages {\n\t\tif !reachable[info.Pkg] {\n\t\t\tinfo.TransitivelyErrorFree = true\n\t\t}\n\t}\n}\n\n// build returns the effective build context.\nfunc (conf *Config) build() *build.Context {\n\tif conf.Build != nil {\n\t\treturn conf.Build\n\t}\n\treturn &build.Default\n}\n\n// parsePackageFiles enumerates the files belonging to package path,\n// then loads, parses and returns them, plus a list of I/O or parse\n// errors that were encountered.\n//\n// 'which' indicates which files to include:\n//    'g': include non-test *.go source files (GoFiles + processed CgoFiles)\n//    't': include in-package *_test.go source files (TestGoFiles)\n//    'x': include external *_test.go source files. (XTestGoFiles)\n//\nfunc (conf *Config) parsePackageFiles(bp *build.Package, which rune) ([]*ast.File, []error) {\n\tif bp.ImportPath == \"unsafe\" {\n\t\treturn nil, nil\n\t}\n\tvar filenames []string\n\tswitch which {\n\tcase 'g':\n\t\tfilenames = bp.GoFiles\n\tcase 't':\n\t\tfilenames = bp.TestGoFiles\n\tcase 'x':\n\t\tfilenames = bp.XTestGoFiles\n\tdefault:\n\t\tpanic(which)\n\t}\n\n\tfiles, errs := parseFiles(conf.fset(), conf.build(), conf.DisplayPath, bp.Dir, filenames, conf.ParserMode)\n\n\t// Preprocess CgoFiles and parse the outputs (sequentially).\n\tif which == 'g' && bp.CgoFiles != nil {\n\t\tcgofiles, err := cgo.ProcessFiles(bp, conf.fset(), conf.DisplayPath, conf.ParserMode)\n\t\tif err != nil {\n\t\t\terrs = append(errs, err)\n\t\t} else {\n\t\t\tfiles = append(files, cgofiles...)\n\t\t}\n\t}\n\n\treturn files, errs\n}\n\n// doImport imports the package denoted by path.\n// It implements the types.Importer signature.\n//\n// It returns an error if a package could not be created\n// (e.g. go/build or parse error), but type errors are reported via\n// the types.Config.Error callback (the first of which is also saved\n// in the package's PackageInfo).\n//\n// Idempotent.\n//\nfunc (imp *importer) doImport(from *PackageInfo, to string) (*types.Package, error) {\n\tif to == \"C\" {\n\t\t// This should be unreachable, but ad hoc packages are\n\t\t// not currently subject to cgo preprocessing.\n\t\t// See https://golang.org/issue/11627.\n\t\treturn nil, fmt.Errorf(`the loader doesn't cgo-process ad hoc packages like %q; see Go issue 11627`,\n\t\t\tfrom.Pkg.Path())\n\t}\n\n\tbp, err := imp.findPackage(to, from.dir, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// The standard unsafe package is handled specially,\n\t// and has no PackageInfo.\n\tif bp.ImportPath == \"unsafe\" {\n\t\treturn types.Unsafe, nil\n\t}\n\n\t// Look for the package in the cache using its canonical path.\n\tpath := bp.ImportPath\n\timp.importedMu.Lock()\n\tii := imp.imported[path]\n\timp.importedMu.Unlock()\n\tif ii == nil {\n\t\tpanic(\"internal error: unexpected import: \" + path)\n\t}\n\tif ii.info != nil {\n\t\treturn ii.info.Pkg, nil\n\t}\n\n\t// Import of incomplete package: this indicates a cycle.\n\tfromPath := from.Pkg.Path()\n\tif cycle := imp.findPath(path, fromPath); cycle != nil {\n\t\tcycle = append([]string{fromPath}, cycle...)\n\t\treturn nil, fmt.Errorf(\"import cycle: %s\", strings.Join(cycle, \" -> \"))\n\t}\n\n\tpanic(\"internal error: import of incomplete (yet acyclic) package: \" + fromPath)\n}\n\n// findPackage locates the package denoted by the importPath in the\n// specified directory.\nfunc (imp *importer) findPackage(importPath, fromDir string, mode build.ImportMode) (*build.Package, error) {\n\t// We use a non-blocking duplicate-suppressing cache (gopl.io §9.7)\n\t// to avoid holding the lock around FindPackage.\n\tkey := findpkgKey{importPath, fromDir, mode}\n\timp.findpkgMu.Lock()\n\tv, ok := imp.findpkg[key]\n\tif ok {\n\t\t// cache hit\n\t\timp.findpkgMu.Unlock()\n\n\t\t<-v.ready // wait for entry to become ready\n\t} else {\n\t\t// Cache miss: this goroutine becomes responsible for\n\t\t// populating the map entry and broadcasting its readiness.\n\t\tv = &findpkgValue{ready: make(chan struct{})}\n\t\timp.findpkg[key] = v\n\t\timp.findpkgMu.Unlock()\n\n\t\tioLimit <- true\n\t\tv.bp, v.err = imp.conf.FindPackage(imp.conf.build(), importPath, fromDir, mode)\n\t\t<-ioLimit\n\n\t\tif _, ok := v.err.(*build.NoGoError); ok {\n\t\t\tv.err = nil // empty directory is not an error\n\t\t}\n\n\t\tclose(v.ready) // broadcast ready condition\n\t}\n\treturn v.bp, v.err\n}\n\n// importAll loads, parses, and type-checks the specified packages in\n// parallel and returns their completed importInfos in unspecified order.\n//\n// fromPath is the package path of the importing package, if it is\n// importable, \"\" otherwise.  It is used for cycle detection.\n//\n// fromDir is the directory containing the import declaration that\n// caused these imports.\n//\nfunc (imp *importer) importAll(fromPath, fromDir string, imports map[string]bool, mode build.ImportMode) (infos []*PackageInfo, errors []importError) {\n\t// TODO(adonovan): opt: do the loop in parallel once\n\t// findPackage is non-blocking.\n\tvar pending []*importInfo\n\tfor importPath := range imports {\n\t\tbp, err := imp.findPackage(importPath, fromDir, mode)\n\t\tif err != nil {\n\t\t\terrors = append(errors, importError{\n\t\t\t\tpath: importPath,\n\t\t\t\terr:  err,\n\t\t\t})\n\t\t\tcontinue\n\t\t}\n\t\tpending = append(pending, imp.startLoad(bp))\n\t}\n\n\tif fromPath != \"\" {\n\t\t// We're loading a set of imports.\n\t\t//\n\t\t// We must record graph edges from the importing package\n\t\t// to its dependencies, and check for cycles.\n\t\timp.graphMu.Lock()\n\t\tdeps, ok := imp.graph[fromPath]\n\t\tif !ok {\n\t\t\tdeps = make(map[string]bool)\n\t\t\timp.graph[fromPath] = deps\n\t\t}\n\t\tfor _, ii := range pending {\n\t\t\tdeps[ii.path] = true\n\t\t}\n\t\timp.graphMu.Unlock()\n\t}\n\n\tfor _, ii := range pending {\n\t\tif fromPath != \"\" {\n\t\t\tif cycle := imp.findPath(ii.path, fromPath); cycle != nil {\n\t\t\t\t// Cycle-forming import: we must not await its\n\t\t\t\t// completion since it would deadlock.\n\t\t\t\t//\n\t\t\t\t// We don't record the error in ii since\n\t\t\t\t// the error is really associated with the\n\t\t\t\t// cycle-forming edge, not the package itself.\n\t\t\t\t// (Also it would complicate the\n\t\t\t\t// invariants of importPath completion.)\n\t\t\t\tif trace {\n\t\t\t\t\tfmt.Fprintf(os.Stderr, \"import cycle: %q\\n\", cycle)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tii.awaitCompletion()\n\t\tinfos = append(infos, ii.info)\n\t}\n\n\treturn infos, errors\n}\n\n// findPath returns an arbitrary path from 'from' to 'to' in the import\n// graph, or nil if there was none.\nfunc (imp *importer) findPath(from, to string) []string {\n\timp.graphMu.Lock()\n\tdefer imp.graphMu.Unlock()\n\n\tseen := make(map[string]bool)\n\tvar search func(stack []string, importPath string) []string\n\tsearch = func(stack []string, importPath string) []string {\n\t\tif !seen[importPath] {\n\t\t\tseen[importPath] = true\n\t\t\tstack = append(stack, importPath)\n\t\t\tif importPath == to {\n\t\t\t\treturn stack\n\t\t\t}\n\t\t\tfor x := range imp.graph[importPath] {\n\t\t\t\tif p := search(stack, x); p != nil {\n\t\t\t\t\treturn p\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\treturn search(make([]string, 0, 20), from)\n}\n\n// startLoad initiates the loading, parsing and type-checking of the\n// specified package and its dependencies, if it has not already begun.\n//\n// It returns an importInfo, not necessarily in a completed state.  The\n// caller must call awaitCompletion() before accessing its info field.\n//\n// startLoad is concurrency-safe and idempotent.\n//\nfunc (imp *importer) startLoad(bp *build.Package) *importInfo {\n\tpath := bp.ImportPath\n\timp.importedMu.Lock()\n\tii, ok := imp.imported[path]\n\tif !ok {\n\t\tii = &importInfo{path: path, complete: make(chan struct{})}\n\t\timp.imported[path] = ii\n\t\tgo func() {\n\t\t\tinfo := imp.load(bp)\n\t\t\tii.Complete(info)\n\t\t}()\n\t}\n\timp.importedMu.Unlock()\n\n\treturn ii\n}\n\n// load implements package loading by parsing Go source files\n// located by go/build.\nfunc (imp *importer) load(bp *build.Package) *PackageInfo {\n\tinfo := imp.newPackageInfo(bp.ImportPath, bp.Dir)\n\tinfo.Importable = true\n\tfiles, errs := imp.conf.parsePackageFiles(bp, 'g')\n\tfor _, err := range errs {\n\t\tinfo.appendError(err)\n\t}\n\n\timp.addFiles(info, files, true)\n\n\timp.progMu.Lock()\n\timp.prog.importMap[bp.ImportPath] = info.Pkg\n\timp.progMu.Unlock()\n\n\treturn info\n}\n\n// addFiles adds and type-checks the specified files to info, loading\n// their dependencies if needed.  The order of files determines the\n// package initialization order.  It may be called multiple times on the\n// same package.  Errors are appended to the info.Errors field.\n//\n// cycleCheck determines whether the imports within files create\n// dependency edges that should be checked for potential cycles.\n//\nfunc (imp *importer) addFiles(info *PackageInfo, files []*ast.File, cycleCheck bool) {\n\t// Ensure the dependencies are loaded, in parallel.\n\tvar fromPath string\n\tif cycleCheck {\n\t\tfromPath = info.Pkg.Path()\n\t}\n\t// TODO(adonovan): opt: make the caller do scanImports.\n\t// Callers with a build.Package can skip it.\n\timp.importAll(fromPath, info.dir, scanImports(files), 0)\n\n\tif trace {\n\t\tfmt.Fprintf(os.Stderr, \"%s: start %q (%d)\\n\",\n\t\t\ttime.Since(imp.start), info.Pkg.Path(), len(files))\n\t}\n\n\t// Don't call checker.Files on Unsafe, even with zero files,\n\t// because it would mutate the package, which is a global.\n\tif info.Pkg == types.Unsafe {\n\t\tif len(files) > 0 {\n\t\t\tpanic(`\"unsafe\" package contains unexpected files`)\n\t\t}\n\t} else {\n\t\t// Ignore the returned (first) error since we\n\t\t// already collect them all in the PackageInfo.\n\t\tinfo.checker.Files(files)\n\t\tinfo.Files = append(info.Files, files...)\n\t}\n\n\tif imp.conf.AfterTypeCheck != nil {\n\t\timp.conf.AfterTypeCheck(info, files)\n\t}\n\n\tif trace {\n\t\tfmt.Fprintf(os.Stderr, \"%s: stop %q\\n\",\n\t\t\ttime.Since(imp.start), info.Pkg.Path())\n\t}\n}\n\nfunc (imp *importer) newPackageInfo(path, dir string) *PackageInfo {\n\tvar pkg *types.Package\n\tif path == \"unsafe\" {\n\t\tpkg = types.Unsafe\n\t} else {\n\t\tpkg = types.NewPackage(path, \"\")\n\t}\n\tinfo := &PackageInfo{\n\t\tPkg: pkg,\n\t\tInfo: types.Info{\n\t\t\tTypes:      make(map[ast.Expr]types.TypeAndValue),\n\t\t\tDefs:       make(map[*ast.Ident]types.Object),\n\t\t\tUses:       make(map[*ast.Ident]types.Object),\n\t\t\tImplicits:  make(map[ast.Node]types.Object),\n\t\t\tScopes:     make(map[ast.Node]*types.Scope),\n\t\t\tSelections: make(map[*ast.SelectorExpr]*types.Selection),\n\t\t},\n\t\terrorFunc: imp.conf.TypeChecker.Error,\n\t\tdir:       dir,\n\t}\n\n\t// Copy the types.Config so we can vary it across PackageInfos.\n\ttc := imp.conf.TypeChecker\n\ttc.IgnoreFuncBodies = false\n\tif f := imp.conf.TypeCheckFuncBodies; f != nil {\n\t\ttc.IgnoreFuncBodies = !f(path)\n\t}\n\ttc.Importer = closure{imp, info}\n\ttc.Error = info.appendError // appendError wraps the user's Error function\n\n\tinfo.checker = types.NewChecker(&tc, imp.conf.fset(), pkg, &info.Info)\n\timp.progMu.Lock()\n\timp.prog.AllPackages[pkg] = info\n\timp.progMu.Unlock()\n\treturn info\n}\n\ntype closure struct {\n\timp  *importer\n\tinfo *PackageInfo\n}\n\nfunc (c closure) Import(to string) (*types.Package, error) { return c.imp.doImport(c.info, to) }\n"
  },
  {
    "path": "vendor/golang.org/x/tools/go/loader/util.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage loader\n\nimport (\n\t\"go/ast\"\n\t\"go/build\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"sync\"\n\n\t\"golang.org/x/tools/go/buildutil\"\n)\n\n// We use a counting semaphore to limit\n// the number of parallel I/O calls per process.\nvar ioLimit = make(chan bool, 10)\n\n// parseFiles parses the Go source files within directory dir and\n// returns the ASTs of the ones that could be at least partially parsed,\n// along with a list of I/O and parse errors encountered.\n//\n// I/O is done via ctxt, which may specify a virtual file system.\n// displayPath is used to transform the filenames attached to the ASTs.\n//\nfunc parseFiles(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, files []string, mode parser.Mode) ([]*ast.File, []error) {\n\tif displayPath == nil {\n\t\tdisplayPath = func(path string) string { return path }\n\t}\n\tvar wg sync.WaitGroup\n\tn := len(files)\n\tparsed := make([]*ast.File, n)\n\terrors := make([]error, n)\n\tfor i, file := range files {\n\t\tif !buildutil.IsAbsPath(ctxt, file) {\n\t\t\tfile = buildutil.JoinPath(ctxt, dir, file)\n\t\t}\n\t\twg.Add(1)\n\t\tgo func(i int, file string) {\n\t\t\tioLimit <- true // wait\n\t\t\tdefer func() {\n\t\t\t\twg.Done()\n\t\t\t\t<-ioLimit // signal\n\t\t\t}()\n\t\t\tvar rd io.ReadCloser\n\t\t\tvar err error\n\t\t\tif ctxt.OpenFile != nil {\n\t\t\t\trd, err = ctxt.OpenFile(file)\n\t\t\t} else {\n\t\t\t\trd, err = os.Open(file)\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terrors[i] = err // open failed\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// ParseFile may return both an AST and an error.\n\t\t\tparsed[i], errors[i] = parser.ParseFile(fset, displayPath(file), rd, mode)\n\t\t\trd.Close()\n\t\t}(i, file)\n\t}\n\twg.Wait()\n\n\t// Eliminate nils, preserving order.\n\tvar o int\n\tfor _, f := range parsed {\n\t\tif f != nil {\n\t\t\tparsed[o] = f\n\t\t\to++\n\t\t}\n\t}\n\tparsed = parsed[:o]\n\n\to = 0\n\tfor _, err := range errors {\n\t\tif err != nil {\n\t\t\terrors[o] = err\n\t\t\to++\n\t\t}\n\t}\n\terrors = errors[:o]\n\n\treturn parsed, errors\n}\n\n// scanImports returns the set of all import paths from all\n// import specs in the specified files.\nfunc scanImports(files []*ast.File) map[string]bool {\n\timports := make(map[string]bool)\n\tfor _, f := range files {\n\t\tfor _, decl := range f.Decls {\n\t\t\tif decl, ok := decl.(*ast.GenDecl); ok && decl.Tok == token.IMPORT {\n\t\t\t\tfor _, spec := range decl.Specs {\n\t\t\t\t\tspec := spec.(*ast.ImportSpec)\n\n\t\t\t\t\t// NB: do not assume the program is well-formed!\n\t\t\t\t\tpath, err := strconv.Unquote(spec.Path.Value)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue // quietly ignore the error\n\t\t\t\t\t}\n\t\t\t\t\tif path == \"C\" {\n\t\t\t\t\t\tcontinue // skip pseudopackage\n\t\t\t\t\t}\n\t\t\t\t\timports[path] = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn imports\n}\n\n// ---------- Internal helpers ----------\n\n// TODO(adonovan): make this a method: func (*token.File) Contains(token.Pos)\nfunc tokenFileContainsPos(f *token.File, pos token.Pos) bool {\n\tp := int(pos)\n\tbase := f.Base()\n\treturn base <= p && p < base+f.Size()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/appengine/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/google.golang.org/appengine/cloudsql/cloudsql.go",
    "content": "// Copyright 2013 Google Inc. All rights reserved.\n// Use of this source code is governed by the Apache 2.0\n// license that can be found in the LICENSE file.\n\n/*\nPackage cloudsql exposes access to Google Cloud SQL databases.\n\nThis package does not work in App Engine \"flexible environment\".\n\nThis package is intended for MySQL drivers to make App Engine-specific\nconnections. Applications should use this package through database/sql:\nSelect a pure Go MySQL driver that supports this package, and use sql.Open\nwith protocol \"cloudsql\" and an address of the Cloud SQL instance.\n\nA Go MySQL driver that has been tested to work well with Cloud SQL\nis the go-sql-driver:\n\timport \"database/sql\"\n\timport _ \"github.com/go-sql-driver/mysql\"\n\n\tdb, err := sql.Open(\"mysql\", \"user@cloudsql(project-id:instance-name)/dbname\")\n\n\nAnother driver that works well with Cloud SQL is the mymysql driver:\n\timport \"database/sql\"\n\timport _ \"github.com/ziutek/mymysql/godrv\"\n\n\tdb, err := sql.Open(\"mymysql\", \"cloudsql:instance-name*dbname/user/password\")\n\n\nUsing either of these drivers, you can perform a standard SQL query.\nThis example assumes there is a table named 'users' with\ncolumns 'first_name' and 'last_name':\n\n\trows, err := db.Query(\"SELECT first_name, last_name FROM users\")\n\tif err != nil {\n\t\tlog.Errorf(ctx, \"db.Query: %v\", err)\n\t}\n\tdefer rows.Close()\n\n\tfor rows.Next() {\n\t\tvar firstName string\n\t\tvar lastName string\n\t\tif err := rows.Scan(&firstName, &lastName); err != nil {\n\t\t\tlog.Errorf(ctx, \"rows.Scan: %v\", err)\n\t\t\tcontinue\n\t\t}\n\t\tlog.Infof(ctx, \"First: %v - Last: %v\", firstName, lastName)\n\t}\n\tif err := rows.Err(); err != nil {\n\t\tlog.Errorf(ctx, \"Row error: %v\", err)\n\t}\n*/\npackage cloudsql\n\nimport (\n\t\"net\"\n)\n\n// Dial connects to the named Cloud SQL instance.\nfunc Dial(instance string) (net.Conn, error) {\n\treturn connect(instance)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/appengine/cloudsql/cloudsql_classic.go",
    "content": "// Copyright 2013 Google Inc. All rights reserved.\n// Use of this source code is governed by the Apache 2.0\n// license that can be found in the LICENSE file.\n\n// +build appengine\n\npackage cloudsql\n\nimport (\n\t\"net\"\n\n\t\"appengine/cloudsql\"\n)\n\nfunc connect(instance string) (net.Conn, error) {\n\treturn cloudsql.Dial(instance)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/appengine/cloudsql/cloudsql_vm.go",
    "content": "// Copyright 2013 Google Inc. All rights reserved.\n// Use of this source code is governed by the Apache 2.0\n// license that can be found in the LICENSE file.\n\n// +build !appengine\n\npackage cloudsql\n\nimport (\n\t\"errors\"\n\t\"net\"\n)\n\nfunc connect(instance string) (net.Conn, error) {\n\treturn nil, errors.New(`cloudsql: not supported in App Engine \"flexible environment\"`)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n*.test\n*.out\n*.txt\ncover.html\nREADME.html"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 Dean Karn\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/README.md",
    "content": "Package validator\n================\n<img align=\"right\" src=\"https://raw.githubusercontent.com/go-playground/validator/v8/logo.png\">[![Join the chat at https://gitter.im/bluesuncorp/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n![Project status](https://img.shields.io/badge/version-8.18.2-green.svg)\n[![Build Status](https://semaphoreci.com/api/v1/projects/ec20115f-ef1b-4c7d-9393-cc76aba74eb4/530054/badge.svg)](https://semaphoreci.com/joeybloggs/validator)\n[![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=v8&service=github)](https://coveralls.io/github/go-playground/validator?branch=v8)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator)\n[![GoDoc](https://godoc.org/gopkg.in/go-playground/validator.v8?status.svg)](https://godoc.org/gopkg.in/go-playground/validator.v8)\n![License](https://img.shields.io/dub/l/vibe-d.svg)\n\nPackage validator implements value validations for structs and individual fields based on tags.\n\nIt has the following **unique** features:\n\n-   Cross Field and Cross Struct validations by using validation tags or custom validators.  \n-   Slice, Array and Map diving, which allows any or all levels of a multidimensional field to be validated.  \n-   Handles type interface by determining it's underlying type prior to validation.\n-   Handles custom field types such as sql driver Valuer see [Valuer](https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29)\n-   Alias validation tags, which allows for mapping of several validations to a single tag for easier defining of validations on structs\n-   Extraction of custom defined Field Name e.g. can specify to extract the JSON name while validating and have it available in the resulting FieldError\n\nInstallation\n------------\n\nUse go get.\n\n\tgo get gopkg.in/go-playground/validator.v8\n\nor to update\n\n\tgo get -u gopkg.in/go-playground/validator.v8\n\nThen import the validator package into your own code.\n\n\timport \"gopkg.in/go-playground/validator.v8\"\n\nError Return Value\n-------\n\nValidation functions return type error\n\nThey return type error to avoid the issue discussed in the following, where err is always != nil:\n\n* http://stackoverflow.com/a/29138676/3158232\n* https://github.com/go-playground/validator/issues/134\n\nvalidator only returns nil or ValidationErrors as type error; so in you code all you need to do\nis check if the error returned is not nil, and if it's not type cast it to type ValidationErrors\nlike so:\n\n```go\nerr := validate.Struct(mystruct)\nvalidationErrors := err.(validator.ValidationErrors)\n ```\n\nUsage and documentation\n------\n\nPlease see http://godoc.org/gopkg.in/go-playground/validator.v8 for detailed usage docs.\n\n##### Examples:\n\nStruct & Field validation\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"gopkg.in/go-playground/validator.v8\"\n)\n\n// User contains user information\ntype User struct {\n\tFirstName      string     `validate:\"required\"`\n\tLastName       string     `validate:\"required\"`\n\tAge            uint8      `validate:\"gte=0,lte=130\"`\n\tEmail          string     `validate:\"required,email\"`\n\tFavouriteColor string     `validate:\"hexcolor|rgb|rgba\"`\n\tAddresses      []*Address `validate:\"required,dive,required\"` // a person can have a home and cottage...\n}\n\n// Address houses a users address information\ntype Address struct {\n\tStreet string `validate:\"required\"`\n\tCity   string `validate:\"required\"`\n\tPlanet string `validate:\"required\"`\n\tPhone  string `validate:\"required\"`\n}\n\nvar validate *validator.Validate\n\nfunc main() {\n\n\tconfig := &validator.Config{TagName: \"validate\"}\n\n\tvalidate = validator.New(config)\n\n\tvalidateStruct()\n\tvalidateField()\n}\n\nfunc validateStruct() {\n\n\taddress := &Address{\n\t\tStreet: \"Eavesdown Docks\",\n\t\tPlanet: \"Persphone\",\n\t\tPhone:  \"none\",\n\t}\n\n\tuser := &User{\n\t\tFirstName:      \"Badger\",\n\t\tLastName:       \"Smith\",\n\t\tAge:            135,\n\t\tEmail:          \"Badger.Smith@gmail.com\",\n\t\tFavouriteColor: \"#000\",\n\t\tAddresses:      []*Address{address},\n\t}\n\n\t// returns nil or ValidationErrors ( map[string]*FieldError )\n\terrs := validate.Struct(user)\n\n\tif errs != nil {\n\n\t\tfmt.Println(errs) // output: Key: \"User.Age\" Error:Field validation for \"Age\" failed on the \"lte\" tag\n\t\t//\t                         Key: \"User.Addresses[0].City\" Error:Field validation for \"City\" failed on the \"required\" tag\n\t\terr := errs.(validator.ValidationErrors)[\"User.Addresses[0].City\"]\n\t\tfmt.Println(err.Field) // output: City\n\t\tfmt.Println(err.Tag)   // output: required\n\t\tfmt.Println(err.Kind)  // output: string\n\t\tfmt.Println(err.Type)  // output: string\n\t\tfmt.Println(err.Param) // output:\n\t\tfmt.Println(err.Value) // output:\n\n\t\t// from here you can create your own error messages in whatever language you wish\n\t\treturn\n\t}\n\n\t// save user to database\n}\n\nfunc validateField() {\n\tmyEmail := \"joeybloggs.gmail.com\"\n\n\terrs := validate.Field(myEmail, \"required,email\")\n\n\tif errs != nil {\n\t\tfmt.Println(errs) // output: Key: \"\" Error:Field validation for \"\" failed on the \"email\" tag\n\t\treturn\n\t}\n\n\t// email ok, move on\n}\n```\n\nCustom Field Type\n```go\npackage main\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"gopkg.in/go-playground/validator.v8\"\n)\n\n// DbBackedUser User struct\ntype DbBackedUser struct {\n\tName sql.NullString `validate:\"required\"`\n\tAge  sql.NullInt64  `validate:\"required\"`\n}\n\nfunc main() {\n\n\tconfig := &validator.Config{TagName: \"validate\"}\n\n\tvalidate := validator.New(config)\n\n\t// register all sql.Null* types to use the ValidateValuer CustomTypeFunc\n\tvalidate.RegisterCustomTypeFunc(ValidateValuer, sql.NullString{}, sql.NullInt64{}, sql.NullBool{}, sql.NullFloat64{})\n\n\tx := DbBackedUser{Name: sql.NullString{String: \"\", Valid: true}, Age: sql.NullInt64{Int64: 0, Valid: false}}\n\terrs := validate.Struct(x)\n\n\tif len(errs.(validator.ValidationErrors)) > 0 {\n\t\tfmt.Printf(\"Errs:\\n%+v\\n\", errs)\n\t}\n}\n\n// ValidateValuer implements validator.CustomTypeFunc\nfunc ValidateValuer(field reflect.Value) interface{} {\n\tif valuer, ok := field.Interface().(driver.Valuer); ok {\n\t\tval, err := valuer.Value()\n\t\tif err == nil {\n\t\t\treturn val\n\t\t}\n\t\t// handle the error how you want\n\t}\n\treturn nil\n}\n```\n\nStruct Level Validation\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"gopkg.in/go-playground/validator.v8\"\n)\n\n// User contains user information\ntype User struct {\n\tFirstName      string     `json:\"fname\"`\n\tLastName       string     `json:\"lname\"`\n\tAge            uint8      `validate:\"gte=0,lte=130\"`\n\tEmail          string     `validate:\"required,email\"`\n\tFavouriteColor string     `validate:\"hexcolor|rgb|rgba\"`\n\tAddresses      []*Address `validate:\"required,dive,required\"` // a person can have a home and cottage...\n}\n\n// Address houses a users address information\ntype Address struct {\n\tStreet string `validate:\"required\"`\n\tCity   string `validate:\"required\"`\n\tPlanet string `validate:\"required\"`\n\tPhone  string `validate:\"required\"`\n}\n\nvar validate *validator.Validate\n\nfunc main() {\n\n\tconfig := &validator.Config{TagName: \"validate\"}\n\n\tvalidate = validator.New(config)\n\tvalidate.RegisterStructValidation(UserStructLevelValidation, User{})\n\n\tvalidateStruct()\n}\n\n// UserStructLevelValidation contains custom struct level validations that don't always\n// make sense at the field validation level. For Example this function validates that either\n// FirstName or LastName exist; could have done that with a custom field validation but then\n// would have had to add it to both fields duplicating the logic + overhead, this way it's\n// only validated once.\n//\n// NOTE: you may ask why wouldn't I just do this outside of validator, because doing this way\n// hooks right into validator and you can combine with validation tags and still have a\n// common error output format.\nfunc UserStructLevelValidation(v *validator.Validate, structLevel *validator.StructLevel) {\n\n\tuser := structLevel.CurrentStruct.Interface().(User)\n\n\tif len(user.FirstName) == 0 && len(user.LastName) == 0 {\n\t\tstructLevel.ReportError(reflect.ValueOf(user.FirstName), \"FirstName\", \"fname\", \"fnameorlname\")\n\t\tstructLevel.ReportError(reflect.ValueOf(user.LastName), \"LastName\", \"lname\", \"fnameorlname\")\n\t}\n\n\t// plus can to more, even with different tag than \"fnameorlname\"\n}\n\nfunc validateStruct() {\n\n\taddress := &Address{\n\t\tStreet: \"Eavesdown Docks\",\n\t\tPlanet: \"Persphone\",\n\t\tPhone:  \"none\",\n\t\tCity:   \"Unknown\",\n\t}\n\n\tuser := &User{\n\t\tFirstName:      \"\",\n\t\tLastName:       \"\",\n\t\tAge:            45,\n\t\tEmail:          \"Badger.Smith@gmail.com\",\n\t\tFavouriteColor: \"#000\",\n\t\tAddresses:      []*Address{address},\n\t}\n\n\t// returns nil or ValidationErrors ( map[string]*FieldError )\n\terrs := validate.Struct(user)\n\n\tif errs != nil {\n\n\t\tfmt.Println(errs) // output: Key: 'User.LastName' Error:Field validation for 'LastName' failed on the 'fnameorlname' tag\n\t\t//\t                         Key: 'User.FirstName' Error:Field validation for 'FirstName' failed on the 'fnameorlname' tag\n\t\terr := errs.(validator.ValidationErrors)[\"User.FirstName\"]\n\t\tfmt.Println(err.Field) // output: FirstName\n\t\tfmt.Println(err.Tag)   // output: fnameorlname\n\t\tfmt.Println(err.Kind)  // output: string\n\t\tfmt.Println(err.Type)  // output: string\n\t\tfmt.Println(err.Param) // output:\n\t\tfmt.Println(err.Value) // output:\n\n\t\t// from here you can create your own error messages in whatever language you wish\n\t\treturn\n\t}\n\n\t// save user to database\n}\n```\n\nBenchmarks\n------\n###### Run on MacBook Pro (Retina, 15-inch, Late 2013) 2.6 GHz Intel Core i7 16 GB 1600 MHz DDR3 using Go version go1.5.3 darwin/amd64\n```go\nPASS\nBenchmarkFieldSuccess-8                            \t20000000\t       118 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkFieldFailure-8                            \t 2000000\t       758 ns/op\t     432 B/op\t       4 allocs/op\nBenchmarkFieldDiveSuccess-8                        \t  500000\t      2471 ns/op\t     464 B/op\t      28 allocs/op\nBenchmarkFieldDiveFailure-8                        \t  500000\t      3172 ns/op\t     896 B/op\t      32 allocs/op\nBenchmarkFieldCustomTypeSuccess-8                  \t 5000000\t       300 ns/op\t      32 B/op\t       2 allocs/op\nBenchmarkFieldCustomTypeFailure-8                  \t 2000000\t       775 ns/op\t     432 B/op\t       4 allocs/op\nBenchmarkFieldOrTagSuccess-8                       \t 1000000\t      1122 ns/op\t       4 B/op\t       1 allocs/op\nBenchmarkFieldOrTagFailure-8                       \t 1000000\t      1167 ns/op\t     448 B/op\t       6 allocs/op\nBenchmarkStructLevelValidationSuccess-8            \t 3000000\t       548 ns/op\t     160 B/op\t       5 allocs/op\nBenchmarkStructLevelValidationFailure-8            \t 3000000\t       558 ns/op\t     160 B/op\t       5 allocs/op\nBenchmarkStructSimpleCustomTypeSuccess-8           \t 2000000\t       623 ns/op\t      36 B/op\t       3 allocs/op\nBenchmarkStructSimpleCustomTypeFailure-8           \t 1000000\t      1381 ns/op\t     640 B/op\t       9 allocs/op\nBenchmarkStructPartialSuccess-8                    \t 1000000\t      1036 ns/op\t     272 B/op\t       9 allocs/op\nBenchmarkStructPartialFailure-8                    \t 1000000\t      1734 ns/op\t     730 B/op\t      14 allocs/op\nBenchmarkStructExceptSuccess-8                     \t 2000000\t       888 ns/op\t     250 B/op\t       7 allocs/op\nBenchmarkStructExceptFailure-8                     \t 1000000\t      1036 ns/op\t     272 B/op\t       9 allocs/op\nBenchmarkStructSimpleCrossFieldSuccess-8           \t 2000000\t       773 ns/op\t      80 B/op\t       4 allocs/op\nBenchmarkStructSimpleCrossFieldFailure-8           \t 1000000\t      1487 ns/op\t     536 B/op\t       9 allocs/op\nBenchmarkStructSimpleCrossStructCrossFieldSuccess-8\t 1000000\t      1261 ns/op\t     112 B/op\t       7 allocs/op\nBenchmarkStructSimpleCrossStructCrossFieldFailure-8\t 1000000\t      2055 ns/op\t     576 B/op\t      12 allocs/op\nBenchmarkStructSimpleSuccess-8                     \t 3000000\t       519 ns/op\t       4 B/op\t       1 allocs/op\nBenchmarkStructSimpleFailure-8                     \t 1000000\t      1429 ns/op\t     640 B/op\t       9 allocs/op\nBenchmarkStructSimpleSuccessParallel-8             \t10000000\t       146 ns/op\t       4 B/op\t       1 allocs/op\nBenchmarkStructSimpleFailureParallel-8             \t 2000000\t       551 ns/op\t     640 B/op\t       9 allocs/op\nBenchmarkStructComplexSuccess-8                    \t  500000\t      3269 ns/op\t     244 B/op\t      15 allocs/op\nBenchmarkStructComplexFailure-8                    \t  200000\t      8436 ns/op\t    3609 B/op\t      60 allocs/op\nBenchmarkStructComplexSuccessParallel-8            \t 1000000\t      1024 ns/op\t     244 B/op\t      15 allocs/op\nBenchmarkStructComplexFailureParallel-8            \t  500000\t      3536 ns/op\t    3609 B/op\t      60 allocs/op\n```\n\nComplimentary Software\n----------------------\n\nHere is a list of software that compliments using this library either pre or post validation.\n\n* [form](https://github.com/go-playground/form) - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support.\n* [Conform](https://github.com/leebenson/conform) - Trims, sanitizes & scrubs data based on struct tags.\n\nHow to Contribute\n------\n\nThere will always be a development branch for each version i.e. `v1-development`. In order to contribute, \nplease make your pull requests against those branches.\n\nIf the changes being proposed or requested are breaking changes, please create an issue, for discussion\nor create a pull request against the highest development branch for example this package has a\nv1 and v1-development branch however, there will also be a v2-development branch even though v2 doesn't exist yet.\n\nI strongly encourage everyone whom creates a custom validation function to contribute them and\nhelp make this package even better.\n\nLicense\n------\nDistributed under MIT License, please see license file in code for more details.\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/baked_in.go",
    "content": "package validator\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// BakedInAliasValidators is a default mapping of a single validationstag that\n// defines a common or complex set of validation(s) to simplify\n// adding validation to structs. i.e. set key \"_ageok\" and the tags\n// are \"gt=0,lte=130\" or key \"_preferredname\" and tags \"omitempty,gt=0,lte=60\"\nvar bakedInAliasValidators = map[string]string{\n\t\"iscolor\": \"hexcolor|rgb|rgba|hsl|hsla\",\n}\n\n// BakedInValidators is the default map of ValidationFunc\n// you can add, remove or even replace items to suite your needs,\n// or even disregard and use your own map if so desired.\nvar bakedInValidators = map[string]Func{\n\t\"required\":     HasValue,\n\t\"len\":          HasLengthOf,\n\t\"min\":          HasMinOf,\n\t\"max\":          HasMaxOf,\n\t\"eq\":           IsEq,\n\t\"ne\":           IsNe,\n\t\"lt\":           IsLt,\n\t\"lte\":          IsLte,\n\t\"gt\":           IsGt,\n\t\"gte\":          IsGte,\n\t\"eqfield\":      IsEqField,\n\t\"eqcsfield\":    IsEqCrossStructField,\n\t\"necsfield\":    IsNeCrossStructField,\n\t\"gtcsfield\":    IsGtCrossStructField,\n\t\"gtecsfield\":   IsGteCrossStructField,\n\t\"ltcsfield\":    IsLtCrossStructField,\n\t\"ltecsfield\":   IsLteCrossStructField,\n\t\"nefield\":      IsNeField,\n\t\"gtefield\":     IsGteField,\n\t\"gtfield\":      IsGtField,\n\t\"ltefield\":     IsLteField,\n\t\"ltfield\":      IsLtField,\n\t\"alpha\":        IsAlpha,\n\t\"alphanum\":     IsAlphanum,\n\t\"numeric\":      IsNumeric,\n\t\"number\":       IsNumber,\n\t\"hexadecimal\":  IsHexadecimal,\n\t\"hexcolor\":     IsHEXColor,\n\t\"rgb\":          IsRGB,\n\t\"rgba\":         IsRGBA,\n\t\"hsl\":          IsHSL,\n\t\"hsla\":         IsHSLA,\n\t\"email\":        IsEmail,\n\t\"url\":          IsURL,\n\t\"uri\":          IsURI,\n\t\"base64\":       IsBase64,\n\t\"contains\":     Contains,\n\t\"containsany\":  ContainsAny,\n\t\"containsrune\": ContainsRune,\n\t\"excludes\":     Excludes,\n\t\"excludesall\":  ExcludesAll,\n\t\"excludesrune\": ExcludesRune,\n\t\"isbn\":         IsISBN,\n\t\"isbn10\":       IsISBN10,\n\t\"isbn13\":       IsISBN13,\n\t\"uuid\":         IsUUID,\n\t\"uuid3\":        IsUUID3,\n\t\"uuid4\":        IsUUID4,\n\t\"uuid5\":        IsUUID5,\n\t\"ascii\":        IsASCII,\n\t\"printascii\":   IsPrintableASCII,\n\t\"multibyte\":    HasMultiByteCharacter,\n\t\"datauri\":      IsDataURI,\n\t\"latitude\":     IsLatitude,\n\t\"longitude\":    IsLongitude,\n\t\"ssn\":          IsSSN,\n\t\"ipv4\":         IsIPv4,\n\t\"ipv6\":         IsIPv6,\n\t\"ip\":           IsIP,\n\t\"cidrv4\":       IsCIDRv4,\n\t\"cidrv6\":       IsCIDRv6,\n\t\"cidr\":         IsCIDR,\n\t\"tcp4_addr\":    IsTCP4AddrResolvable,\n\t\"tcp6_addr\":    IsTCP6AddrResolvable,\n\t\"tcp_addr\":     IsTCPAddrResolvable,\n\t\"udp4_addr\":    IsUDP4AddrResolvable,\n\t\"udp6_addr\":    IsUDP6AddrResolvable,\n\t\"udp_addr\":     IsUDPAddrResolvable,\n\t\"ip4_addr\":     IsIP4AddrResolvable,\n\t\"ip6_addr\":     IsIP6AddrResolvable,\n\t\"ip_addr\":      IsIPAddrResolvable,\n\t\"unix_addr\":    IsUnixAddrResolvable,\n\t\"mac\":          IsMAC,\n}\n\n// IsMAC is the validation function for validating if the field's value is a valid MAC address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsMAC(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\t_, err := net.ParseMAC(field.String())\n\treturn err == nil\n}\n\n// IsCIDRv4 is the validation function for validating if the field's value is a valid v4 CIDR address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsCIDRv4(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tip, _, err := net.ParseCIDR(field.String())\n\n\treturn err == nil && ip.To4() != nil\n}\n\n// IsCIDRv6 is the validation function for validating if the field's value is a valid v6 CIDR address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsCIDRv6(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tip, _, err := net.ParseCIDR(field.String())\n\n\treturn err == nil && ip.To4() == nil\n}\n\n// IsCIDR is the validation function for validating if the field's value is a valid v4 or v6 CIDR address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsCIDR(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\t_, _, err := net.ParseCIDR(field.String())\n\n\treturn err == nil\n}\n\n// IsIPv4 is the validation function for validating if a value is a valid v4 IP address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsIPv4(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tip := net.ParseIP(field.String())\n\n\treturn ip != nil && ip.To4() != nil\n}\n\n// IsIPv6 is the validation function for validating if the field's value is a valid v6 IP address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsIPv6(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\tip := net.ParseIP(field.String())\n\n\treturn ip != nil && ip.To4() == nil\n}\n\n// IsIP is the validation function for validating if the field's value is a valid v4 or v6 IP address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsIP(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tip := net.ParseIP(field.String())\n\n\treturn ip != nil\n}\n\n// IsSSN is the validation function for validating if the field's value is a valid SSN.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsSSN(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif field.Len() != 11 {\n\t\treturn false\n\t}\n\n\treturn sSNRegex.MatchString(field.String())\n}\n\n// IsLongitude is the validation function for validating if the field's value is a valid longitude coordinate.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLongitude(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn longitudeRegex.MatchString(field.String())\n}\n\n// IsLatitude is the validation function for validating if the field's value is a valid latitude coordinate.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLatitude(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn latitudeRegex.MatchString(field.String())\n}\n\n// IsDataURI is the validation function for validating if the field's value is a valid data URI.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsDataURI(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\turi := strings.SplitN(field.String(), \",\", 2)\n\n\tif len(uri) != 2 {\n\t\treturn false\n\t}\n\n\tif !dataURIRegex.MatchString(uri[0]) {\n\t\treturn false\n\t}\n\n\tfld := reflect.ValueOf(uri[1])\n\n\treturn IsBase64(v, topStruct, currentStructOrField, fld, fld.Type(), fld.Kind(), param)\n}\n\n// HasMultiByteCharacter is the validation function for validating if the field's value has a multi byte character.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc HasMultiByteCharacter(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif field.Len() == 0 {\n\t\treturn true\n\t}\n\n\treturn multibyteRegex.MatchString(field.String())\n}\n\n// IsPrintableASCII is the validation function for validating if the field's value is a valid printable ASCII character.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsPrintableASCII(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn printableASCIIRegex.MatchString(field.String())\n}\n\n// IsASCII is the validation function for validating if the field's value is a valid ASCII character.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsASCII(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn aSCIIRegex.MatchString(field.String())\n}\n\n// IsUUID5 is the validation function for validating if the field's value is a valid v5 UUID.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUUID5(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn uUID5Regex.MatchString(field.String())\n}\n\n// IsUUID4 is the validation function for validating if the field's value is a valid v4 UUID.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUUID4(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn uUID4Regex.MatchString(field.String())\n}\n\n// IsUUID3 is the validation function for validating if the field's value is a valid v3 UUID.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUUID3(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn uUID3Regex.MatchString(field.String())\n}\n\n// IsUUID is the validation function for validating if the field's value is a valid UUID of any version.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUUID(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn uUIDRegex.MatchString(field.String())\n}\n\n// IsISBN is the validation function for validating if the field's value is a valid v10 or v13 ISBN.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsISBN(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn IsISBN10(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) || IsISBN13(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// IsISBN13 is the validation function for validating if the field's value is a valid v13 ISBN.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsISBN13(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ts := strings.Replace(strings.Replace(field.String(), \"-\", \"\", 4), \" \", \"\", 4)\n\n\tif !iSBN13Regex.MatchString(s) {\n\t\treturn false\n\t}\n\n\tvar checksum int32\n\tvar i int32\n\n\tfactor := []int32{1, 3}\n\n\tfor i = 0; i < 12; i++ {\n\t\tchecksum += factor[i%2] * int32(s[i]-'0')\n\t}\n\n\treturn (int32(s[12]-'0'))-((10-(checksum%10))%10) == 0\n}\n\n// IsISBN10 is the validation function for validating if the field's value is a valid v10 ISBN.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsISBN10(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ts := strings.Replace(strings.Replace(field.String(), \"-\", \"\", 3), \" \", \"\", 3)\n\n\tif !iSBN10Regex.MatchString(s) {\n\t\treturn false\n\t}\n\n\tvar checksum int32\n\tvar i int32\n\n\tfor i = 0; i < 9; i++ {\n\t\tchecksum += (i + 1) * int32(s[i]-'0')\n\t}\n\n\tif s[9] == 'X' {\n\t\tchecksum += 10 * 10\n\t} else {\n\t\tchecksum += 10 * int32(s[9]-'0')\n\t}\n\n\treturn checksum%11 == 0\n}\n\n// ExcludesRune is the validation function for validating that the field's value does not contain the rune specified within the param.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc ExcludesRune(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn !ContainsRune(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// ExcludesAll is the validation function for validating that the field's value does not contain any of the characters specified within the param.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc ExcludesAll(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn !ContainsAny(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// Excludes is the validation function for validating that the field's value does not contain the text specified within the param.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc Excludes(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn !Contains(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// ContainsRune is the validation function for validating that the field's value contains the rune specified within the param.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc ContainsRune(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\tr, _ := utf8.DecodeRuneInString(param)\n\n\treturn strings.ContainsRune(field.String(), r)\n}\n\n// ContainsAny is the validation function for validating that the field's value contains any of the characters specified within the param.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc ContainsAny(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn strings.ContainsAny(field.String(), param)\n}\n\n// Contains is the validation function for validating that the field's value contains the text specified within the param.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc Contains(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn strings.Contains(field.String(), param)\n}\n\n// IsNeField is the validation function for validating if the current field's value is not equal to the field specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsNeField(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tcurrentField, currentKind, ok := v.GetStructFieldOK(currentStructOrField, param)\n\n\tif !ok || currentKind != fieldKind {\n\t\treturn true\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn field.Int() != currentField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn field.Uint() != currentField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn field.Float() != currentField.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(field.Len()) != int64(currentField.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != currentField.Type() {\n\t\t\treturn true\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := currentField.Interface().(time.Time)\n\t\t\tfieldTime := field.Interface().(time.Time)\n\n\t\t\treturn !fieldTime.Equal(t)\n\t\t}\n\n\t}\n\n\t// default reflect.String:\n\treturn field.String() != currentField.String()\n}\n\n// IsNe is the validation function for validating that the field's value does not equal the provided param value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsNe(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn !IsEq(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// IsLteCrossStructField is the validation function for validating if the current field's value is less than or equal to the field, within a separate struct, specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLteCrossStructField(v *Validate, topStruct reflect.Value, current reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ttopField, topKind, ok := v.GetStructFieldOK(topStruct, param)\n\tif !ok || topKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn field.Int() <= topField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn field.Uint() <= topField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn field.Float() <= topField.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(field.Len()) <= int64(topField.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != topField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tfieldTime := field.Interface().(time.Time)\n\t\t\ttopTime := topField.Interface().(time.Time)\n\n\t\t\treturn fieldTime.Before(topTime) || fieldTime.Equal(topTime)\n\t\t}\n\t}\n\n\t// default reflect.String:\n\treturn field.String() <= topField.String()\n}\n\n// IsLtCrossStructField is the validation function for validating if the current field's value is less than the field, within a separate struct, specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLtCrossStructField(v *Validate, topStruct reflect.Value, current reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ttopField, topKind, ok := v.GetStructFieldOK(topStruct, param)\n\tif !ok || topKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn field.Int() < topField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn field.Uint() < topField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn field.Float() < topField.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(field.Len()) < int64(topField.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != topField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tfieldTime := field.Interface().(time.Time)\n\t\t\ttopTime := topField.Interface().(time.Time)\n\n\t\t\treturn fieldTime.Before(topTime)\n\t\t}\n\t}\n\n\t// default reflect.String:\n\treturn field.String() < topField.String()\n}\n\n// IsGteCrossStructField is the validation function for validating if the current field's value is greater than or equal to the field, within a separate struct, specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsGteCrossStructField(v *Validate, topStruct reflect.Value, current reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ttopField, topKind, ok := v.GetStructFieldOK(topStruct, param)\n\tif !ok || topKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn field.Int() >= topField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn field.Uint() >= topField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn field.Float() >= topField.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(field.Len()) >= int64(topField.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != topField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tfieldTime := field.Interface().(time.Time)\n\t\t\ttopTime := topField.Interface().(time.Time)\n\n\t\t\treturn fieldTime.After(topTime) || fieldTime.Equal(topTime)\n\t\t}\n\t}\n\n\t// default reflect.String:\n\treturn field.String() >= topField.String()\n}\n\n// IsGtCrossStructField is the validation function for validating if the current field's value is greater than the field, within a separate struct, specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsGtCrossStructField(v *Validate, topStruct reflect.Value, current reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ttopField, topKind, ok := v.GetStructFieldOK(topStruct, param)\n\tif !ok || topKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn field.Int() > topField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn field.Uint() > topField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn field.Float() > topField.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(field.Len()) > int64(topField.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != topField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tfieldTime := field.Interface().(time.Time)\n\t\t\ttopTime := topField.Interface().(time.Time)\n\n\t\t\treturn fieldTime.After(topTime)\n\t\t}\n\t}\n\n\t// default reflect.String:\n\treturn field.String() > topField.String()\n}\n\n// IsNeCrossStructField is the validation function for validating that the current field's value is not equal to the field, within a separate struct, specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsNeCrossStructField(v *Validate, topStruct reflect.Value, current reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ttopField, currentKind, ok := v.GetStructFieldOK(topStruct, param)\n\tif !ok || currentKind != fieldKind {\n\t\treturn true\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn topField.Int() != field.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn topField.Uint() != field.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn topField.Float() != field.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(topField.Len()) != int64(field.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != topField.Type() {\n\t\t\treturn true\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := field.Interface().(time.Time)\n\t\t\tfieldTime := topField.Interface().(time.Time)\n\n\t\t\treturn !fieldTime.Equal(t)\n\t\t}\n\t}\n\n\t// default reflect.String:\n\treturn topField.String() != field.String()\n}\n\n// IsEqCrossStructField is the validation function for validating that the current field's value is equal to the field, within a separate struct, specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsEqCrossStructField(v *Validate, topStruct reflect.Value, current reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\ttopField, topKind, ok := v.GetStructFieldOK(topStruct, param)\n\tif !ok || topKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn topField.Int() == field.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn topField.Uint() == field.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn topField.Float() == field.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(topField.Len()) == int64(field.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != topField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := field.Interface().(time.Time)\n\t\t\tfieldTime := topField.Interface().(time.Time)\n\n\t\t\treturn fieldTime.Equal(t)\n\t\t}\n\t}\n\n\t// default reflect.String:\n\treturn topField.String() == field.String()\n}\n\n// IsEqField is the validation function for validating if the current field's value is equal to the field specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsEqField(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tcurrentField, currentKind, ok := v.GetStructFieldOK(currentStructOrField, param)\n\tif !ok || currentKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn field.Int() == currentField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn field.Uint() == currentField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn field.Float() == currentField.Float()\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\treturn int64(field.Len()) == int64(currentField.Len())\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != currentField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := currentField.Interface().(time.Time)\n\t\t\tfieldTime := field.Interface().(time.Time)\n\n\t\t\treturn fieldTime.Equal(t)\n\t\t}\n\n\t}\n\n\t// default reflect.String:\n\treturn field.String() == currentField.String()\n}\n\n// IsEq is the validation function for validating if the current field's value is equal to the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsEq(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\t\treturn field.String() == param\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\tp := asInt(param)\n\n\t\treturn int64(field.Len()) == p\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp := asInt(param)\n\n\t\treturn field.Int() == p\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp := asUint(param)\n\n\t\treturn field.Uint() == p\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tp := asFloat(param)\n\n\t\treturn field.Float() == p\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// IsBase64 is the validation function for validating if the current field's value is a valid base 64.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsBase64(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn base64Regex.MatchString(field.String())\n}\n\n// IsURI is the validation function for validating if the current field's value is a valid URI.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsURI(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\n\t\ts := field.String()\n\n\t\t// checks needed as of Go 1.6 because of change https://github.com/golang/go/commit/617c93ce740c3c3cc28cdd1a0d712be183d0b328#diff-6c2d018290e298803c0c9419d8739885L195\n\t\t// emulate browser and strip the '#' suffix prior to validation. see issue-#237\n\t\tif i := strings.Index(s, \"#\"); i > -1 {\n\t\t\ts = s[:i]\n\t\t}\n\n\t\tif s == blank {\n\t\t\treturn false\n\t\t}\n\n\t\t_, err := url.ParseRequestURI(s)\n\n\t\treturn err == nil\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// IsURL is the validation function for validating if the current field's value is a valid URL.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsURL(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\n\t\tvar i int\n\t\ts := field.String()\n\n\t\t// checks needed as of Go 1.6 because of change https://github.com/golang/go/commit/617c93ce740c3c3cc28cdd1a0d712be183d0b328#diff-6c2d018290e298803c0c9419d8739885L195\n\t\t// emulate browser and strip the '#' suffix prior to validation. see issue-#237\n\t\tif i = strings.Index(s, \"#\"); i > -1 {\n\t\t\ts = s[:i]\n\t\t}\n\n\t\tif s == blank {\n\t\t\treturn false\n\t\t}\n\n\t\turl, err := url.ParseRequestURI(s)\n\n\t\tif err != nil || url.Scheme == blank {\n\t\t\treturn false\n\t\t}\n\n\t\treturn err == nil\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// IsEmail is the validation function for validating if the current field's value is a valid email address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsEmail(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn emailRegex.MatchString(field.String())\n}\n\n// IsHSLA is the validation function for validating if the current field's value is a valid HSLA color.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsHSLA(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn hslaRegex.MatchString(field.String())\n}\n\n// IsHSL is the validation function for validating if the current field's value is a valid HSL color.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsHSL(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn hslRegex.MatchString(field.String())\n}\n\n// IsRGBA is the validation function for validating if the current field's value is a valid RGBA color.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsRGBA(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn rgbaRegex.MatchString(field.String())\n}\n\n// IsRGB is the validation function for validating if the current field's value is a valid RGB color.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsRGB(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn rgbRegex.MatchString(field.String())\n}\n\n// IsHEXColor is the validation function for validating if the current field's value is a valid HEX color.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsHEXColor(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn hexcolorRegex.MatchString(field.String())\n}\n\n// IsHexadecimal is the validation function for validating if the current field's value is a valid hexadecimal.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsHexadecimal(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn hexadecimalRegex.MatchString(field.String())\n}\n\n// IsNumber is the validation function for validating if the current field's value is a valid number.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsNumber(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn numberRegex.MatchString(field.String())\n}\n\n// IsNumeric is the validation function for validating if the current field's value is a valid numeric value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsNumeric(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn numericRegex.MatchString(field.String())\n}\n\n// IsAlphanum is the validation function for validating if the current field's value is a valid alphanumeric value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsAlphanum(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn alphaNumericRegex.MatchString(field.String())\n}\n\n// IsAlpha is the validation function for validating if the current field's value is a valid alpha value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsAlpha(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn alphaRegex.MatchString(field.String())\n}\n\n// HasValue is the validation function for validating if the current field's value is not the default static value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc HasValue(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\tcase reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func:\n\t\treturn !field.IsNil()\n\tdefault:\n\t\treturn field.IsValid() && field.Interface() != reflect.Zero(fieldType).Interface()\n\t}\n}\n\n// IsGteField is the validation function for validating if the current field's value is greater than or equal to the field specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsGteField(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tcurrentField, currentKind, ok := v.GetStructFieldOK(currentStructOrField, param)\n\tif !ok || currentKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\n\t\treturn field.Int() >= currentField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\n\t\treturn field.Uint() >= currentField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\n\t\treturn field.Float() >= currentField.Float()\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != currentField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := currentField.Interface().(time.Time)\n\t\t\tfieldTime := field.Interface().(time.Time)\n\n\t\t\treturn fieldTime.After(t) || fieldTime.Equal(t)\n\t\t}\n\t}\n\n\t// default reflect.String\n\treturn len(field.String()) >= len(currentField.String())\n}\n\n// IsGtField is the validation function for validating if the current field's value is greater than the field specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsGtField(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tcurrentField, currentKind, ok := v.GetStructFieldOK(currentStructOrField, param)\n\tif !ok || currentKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\n\t\treturn field.Int() > currentField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\n\t\treturn field.Uint() > currentField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\n\t\treturn field.Float() > currentField.Float()\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != currentField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := currentField.Interface().(time.Time)\n\t\t\tfieldTime := field.Interface().(time.Time)\n\n\t\t\treturn fieldTime.After(t)\n\t\t}\n\t}\n\n\t// default reflect.String\n\treturn len(field.String()) > len(currentField.String())\n}\n\n// IsGte is the validation function for validating if the current field's value is greater than or equal to the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsGte(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\t\tp := asInt(param)\n\n\t\treturn int64(utf8.RuneCountInString(field.String())) >= p\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\tp := asInt(param)\n\n\t\treturn int64(field.Len()) >= p\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp := asInt(param)\n\n\t\treturn field.Int() >= p\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp := asUint(param)\n\n\t\treturn field.Uint() >= p\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tp := asFloat(param)\n\n\t\treturn field.Float() >= p\n\n\tcase reflect.Struct:\n\n\t\tif fieldType == timeType || fieldType == timePtrType {\n\n\t\t\tnow := time.Now().UTC()\n\t\t\tt := field.Interface().(time.Time)\n\n\t\t\treturn t.After(now) || t.Equal(now)\n\t\t}\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// IsGt is the validation function for validating if the current field's value is greater than the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsGt(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\t\tp := asInt(param)\n\n\t\treturn int64(utf8.RuneCountInString(field.String())) > p\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\tp := asInt(param)\n\n\t\treturn int64(field.Len()) > p\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp := asInt(param)\n\n\t\treturn field.Int() > p\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp := asUint(param)\n\n\t\treturn field.Uint() > p\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tp := asFloat(param)\n\n\t\treturn field.Float() > p\n\tcase reflect.Struct:\n\n\t\tif fieldType == timeType || fieldType == timePtrType {\n\n\t\t\treturn field.Interface().(time.Time).After(time.Now().UTC())\n\t\t}\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// HasLengthOf is the validation function for validating if the current field's value is equal to the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc HasLengthOf(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\t\tp := asInt(param)\n\n\t\treturn int64(utf8.RuneCountInString(field.String())) == p\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\tp := asInt(param)\n\n\t\treturn int64(field.Len()) == p\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp := asInt(param)\n\n\t\treturn field.Int() == p\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp := asUint(param)\n\n\t\treturn field.Uint() == p\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tp := asFloat(param)\n\n\t\treturn field.Float() == p\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// HasMinOf is the validation function for validating if the current field's value is greater than or equal to the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc HasMinOf(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\treturn IsGte(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// IsLteField is the validation function for validating if the current field's value is less than or equal to the field specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLteField(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tcurrentField, currentKind, ok := v.GetStructFieldOK(currentStructOrField, param)\n\tif !ok || currentKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\n\t\treturn field.Int() <= currentField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\n\t\treturn field.Uint() <= currentField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\n\t\treturn field.Float() <= currentField.Float()\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != currentField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := currentField.Interface().(time.Time)\n\t\t\tfieldTime := field.Interface().(time.Time)\n\n\t\t\treturn fieldTime.Before(t) || fieldTime.Equal(t)\n\t\t}\n\t}\n\n\t// default reflect.String\n\treturn len(field.String()) <= len(currentField.String())\n}\n\n// IsLtField is the validation function for validating if the current field's value is less than the field specified by the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLtField(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tcurrentField, currentKind, ok := v.GetStructFieldOK(currentStructOrField, param)\n\tif !ok || currentKind != fieldKind {\n\t\treturn false\n\t}\n\n\tswitch fieldKind {\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\n\t\treturn field.Int() < currentField.Int()\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\n\t\treturn field.Uint() < currentField.Uint()\n\n\tcase reflect.Float32, reflect.Float64:\n\n\t\treturn field.Float() < currentField.Float()\n\n\tcase reflect.Struct:\n\n\t\t// Not Same underlying type i.e. struct and time\n\t\tif fieldType != currentField.Type() {\n\t\t\treturn false\n\t\t}\n\n\t\tif fieldType == timeType {\n\n\t\t\tt := currentField.Interface().(time.Time)\n\t\t\tfieldTime := field.Interface().(time.Time)\n\n\t\t\treturn fieldTime.Before(t)\n\t\t}\n\t}\n\n\t// default reflect.String\n\treturn len(field.String()) < len(currentField.String())\n}\n\n// IsLte is the validation function for validating if the current field's value is less than or equal to the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLte(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\t\tp := asInt(param)\n\n\t\treturn int64(utf8.RuneCountInString(field.String())) <= p\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\tp := asInt(param)\n\n\t\treturn int64(field.Len()) <= p\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp := asInt(param)\n\n\t\treturn field.Int() <= p\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp := asUint(param)\n\n\t\treturn field.Uint() <= p\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tp := asFloat(param)\n\n\t\treturn field.Float() <= p\n\n\tcase reflect.Struct:\n\n\t\tif fieldType == timeType || fieldType == timePtrType {\n\n\t\t\tnow := time.Now().UTC()\n\t\t\tt := field.Interface().(time.Time)\n\n\t\t\treturn t.Before(now) || t.Equal(now)\n\t\t}\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// IsLt is the validation function for validating if the current field's value is less than the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsLt(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tswitch fieldKind {\n\n\tcase reflect.String:\n\t\tp := asInt(param)\n\n\t\treturn int64(utf8.RuneCountInString(field.String())) < p\n\n\tcase reflect.Slice, reflect.Map, reflect.Array:\n\t\tp := asInt(param)\n\n\t\treturn int64(field.Len()) < p\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp := asInt(param)\n\n\t\treturn field.Int() < p\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp := asUint(param)\n\n\t\treturn field.Uint() < p\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tp := asFloat(param)\n\n\t\treturn field.Float() < p\n\n\tcase reflect.Struct:\n\n\t\tif fieldType == timeType || fieldType == timePtrType {\n\n\t\t\treturn field.Interface().(time.Time).Before(time.Now().UTC())\n\t\t}\n\t}\n\n\tpanic(fmt.Sprintf(\"Bad field type %T\", field.Interface()))\n}\n\n// HasMaxOf is the validation function for validating if the current field's value is less than or equal to the param's value.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc HasMaxOf(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\treturn IsLte(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param)\n}\n\n// IsTCP4AddrResolvable is the validation function for validating if the field's value is a resolvable tcp4 address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsTCP4AddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !isIP4Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveTCPAddr(\"tcp4\", field.String())\n\treturn err == nil\n}\n\n// IsTCP6AddrResolvable is the validation function for validating if the field's value is a resolvable tcp6 address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsTCP6AddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !isIP6Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveTCPAddr(\"tcp6\", field.String())\n\treturn err == nil\n}\n\n// IsTCPAddrResolvable is the validation function for validating if the field's value is a resolvable tcp address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsTCPAddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !isIP4Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) &&\n\t\t!isIP6Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveTCPAddr(\"tcp\", field.String())\n\treturn err == nil\n}\n\n// IsUDP4AddrResolvable is the validation function for validating if the field's value is a resolvable udp4 address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUDP4AddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !isIP4Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveUDPAddr(\"udp4\", field.String())\n\treturn err == nil\n}\n\n// IsUDP6AddrResolvable is the validation function for validating if the field's value is a resolvable udp6 address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUDP6AddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !isIP6Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveUDPAddr(\"udp6\", field.String())\n\treturn err == nil\n}\n\n// IsUDPAddrResolvable is the validation function for validating if the field's value is a resolvable udp address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUDPAddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !isIP4Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) &&\n\t\t!isIP6Addr(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveUDPAddr(\"udp\", field.String())\n\treturn err == nil\n}\n\n// IsIP4AddrResolvable is the validation function for validating if the field's value is a resolvable ip4 address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsIP4AddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !IsIPv4(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveIPAddr(\"ip4\", field.String())\n\treturn err == nil\n}\n\n// IsIP6AddrResolvable is the validation function for validating if the field's value is a resolvable ip6 address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsIP6AddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !IsIPv6(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveIPAddr(\"ip6\", field.String())\n\treturn err == nil\n}\n\n// IsIPAddrResolvable is the validation function for validating if the field's value is a resolvable ip address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsIPAddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\tif !IsIP(v, topStruct, currentStructOrField, field, fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\t_, err := net.ResolveIPAddr(\"ip\", field.String())\n\treturn err == nil\n}\n\n// IsUnixAddrResolvable is the validation function for validating if the field's value is a resolvable unix address.\n// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.\nfunc IsUnixAddrResolvable(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\t_, err := net.ResolveUnixAddr(\"unix\", field.String())\n\treturn err == nil\n}\n\nfunc isIP4Addr(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\tval := field.String()\n\n\tif idx := strings.LastIndex(val, \":\"); idx != -1 {\n\t\tval = val[0:idx]\n\t}\n\n\tif !IsIPv4(v, topStruct, currentStructOrField, reflect.ValueOf(val), fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc isIP6Addr(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\tval := field.String()\n\n\tif idx := strings.LastIndex(val, \":\"); idx != -1 {\n\t\tif idx != 0 && val[idx-1:idx] == \"]\" {\n\t\t\tval = val[1 : idx-1]\n\t\t}\n\t}\n\n\tif !IsIPv6(v, topStruct, currentStructOrField, reflect.ValueOf(val), fieldType, fieldKind, param) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/cache.go",
    "content": "package validator\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\ntype tagType uint8\n\nconst (\n\ttypeDefault tagType = iota\n\ttypeOmitEmpty\n\ttypeNoStructLevel\n\ttypeStructOnly\n\ttypeDive\n\ttypeOr\n\ttypeExists\n)\n\ntype structCache struct {\n\tlock sync.Mutex\n\tm    atomic.Value // map[reflect.Type]*cStruct\n}\n\nfunc (sc *structCache) Get(key reflect.Type) (c *cStruct, found bool) {\n\tc, found = sc.m.Load().(map[reflect.Type]*cStruct)[key]\n\treturn\n}\n\nfunc (sc *structCache) Set(key reflect.Type, value *cStruct) {\n\n\tm := sc.m.Load().(map[reflect.Type]*cStruct)\n\n\tnm := make(map[reflect.Type]*cStruct, len(m)+1)\n\tfor k, v := range m {\n\t\tnm[k] = v\n\t}\n\tnm[key] = value\n\tsc.m.Store(nm)\n}\n\ntype tagCache struct {\n\tlock sync.Mutex\n\tm    atomic.Value // map[string]*cTag\n}\n\nfunc (tc *tagCache) Get(key string) (c *cTag, found bool) {\n\tc, found = tc.m.Load().(map[string]*cTag)[key]\n\treturn\n}\n\nfunc (tc *tagCache) Set(key string, value *cTag) {\n\n\tm := tc.m.Load().(map[string]*cTag)\n\n\tnm := make(map[string]*cTag, len(m)+1)\n\tfor k, v := range m {\n\t\tnm[k] = v\n\t}\n\tnm[key] = value\n\ttc.m.Store(nm)\n}\n\ntype cStruct struct {\n\tName   string\n\tfields map[int]*cField\n\tfn     StructLevelFunc\n}\n\ntype cField struct {\n\tIdx     int\n\tName    string\n\tAltName string\n\tcTags   *cTag\n}\n\ntype cTag struct {\n\ttag            string\n\taliasTag       string\n\tactualAliasTag string\n\tparam          string\n\thasAlias       bool\n\ttypeof         tagType\n\thasTag         bool\n\tfn             Func\n\tnext           *cTag\n}\n\nfunc (v *Validate) extractStructCache(current reflect.Value, sName string) *cStruct {\n\n\tv.structCache.lock.Lock()\n\tdefer v.structCache.lock.Unlock() // leave as defer! because if inner panics, it will never get unlocked otherwise!\n\n\ttyp := current.Type()\n\n\t// could have been multiple trying to access, but once first is done this ensures struct\n\t// isn't parsed again.\n\tcs, ok := v.structCache.Get(typ)\n\tif ok {\n\t\treturn cs\n\t}\n\n\tcs = &cStruct{Name: sName, fields: make(map[int]*cField), fn: v.structLevelFuncs[typ]}\n\n\tnumFields := current.NumField()\n\n\tvar ctag *cTag\n\tvar fld reflect.StructField\n\tvar tag string\n\tvar customName string\n\n\tfor i := 0; i < numFields; i++ {\n\n\t\tfld = typ.Field(i)\n\n\t\tif !fld.Anonymous && fld.PkgPath != blank {\n\t\t\tcontinue\n\t\t}\n\n\t\ttag = fld.Tag.Get(v.tagName)\n\n\t\tif tag == skipValidationTag {\n\t\t\tcontinue\n\t\t}\n\n\t\tcustomName = fld.Name\n\n\t\tif v.fieldNameTag != blank {\n\n\t\t\tname := strings.SplitN(fld.Tag.Get(v.fieldNameTag), \",\", 2)[0]\n\n\t\t\t// dash check is for json \"-\" (aka skipValidationTag) means don't output in json\n\t\t\tif name != \"\" && name != skipValidationTag {\n\t\t\t\tcustomName = name\n\t\t\t}\n\t\t}\n\n\t\t// NOTE: cannot use shared tag cache, because tags may be equal, but things like alias may be different\n\t\t// and so only struct level caching can be used instead of combined with Field tag caching\n\n\t\tif len(tag) > 0 {\n\t\t\tctag, _ = v.parseFieldTagsRecursive(tag, fld.Name, blank, false)\n\t\t} else {\n\t\t\t// even if field doesn't have validations need cTag for traversing to potential inner/nested\n\t\t\t// elements of the field.\n\t\t\tctag = new(cTag)\n\t\t}\n\n\t\tcs.fields[i] = &cField{Idx: i, Name: fld.Name, AltName: customName, cTags: ctag}\n\t}\n\n\tv.structCache.Set(typ, cs)\n\n\treturn cs\n}\n\nfunc (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias string, hasAlias bool) (firstCtag *cTag, current *cTag) {\n\n\tvar t string\n\tvar ok bool\n\tnoAlias := len(alias) == 0\n\ttags := strings.Split(tag, tagSeparator)\n\n\tfor i := 0; i < len(tags); i++ {\n\n\t\tt = tags[i]\n\n\t\tif noAlias {\n\t\t\talias = t\n\t\t}\n\n\t\tif v.hasAliasValidators {\n\t\t\t// check map for alias and process new tags, otherwise process as usual\n\t\t\tif tagsVal, found := v.aliasValidators[t]; found {\n\n\t\t\t\tif i == 0 {\n\t\t\t\t\tfirstCtag, current = v.parseFieldTagsRecursive(tagsVal, fieldName, t, true)\n\t\t\t\t} else {\n\t\t\t\t\tnext, curr := v.parseFieldTagsRecursive(tagsVal, fieldName, t, true)\n\t\t\t\t\tcurrent.next, current = next, curr\n\n\t\t\t\t}\n\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif i == 0 {\n\t\t\tcurrent = &cTag{aliasTag: alias, hasAlias: hasAlias, hasTag: true}\n\t\t\tfirstCtag = current\n\t\t} else {\n\t\t\tcurrent.next = &cTag{aliasTag: alias, hasAlias: hasAlias, hasTag: true}\n\t\t\tcurrent = current.next\n\t\t}\n\n\t\tswitch t {\n\n\t\tcase diveTag:\n\t\t\tcurrent.typeof = typeDive\n\t\t\tcontinue\n\n\t\tcase omitempty:\n\t\t\tcurrent.typeof = typeOmitEmpty\n\t\t\tcontinue\n\n\t\tcase structOnlyTag:\n\t\t\tcurrent.typeof = typeStructOnly\n\t\t\tcontinue\n\n\t\tcase noStructLevelTag:\n\t\t\tcurrent.typeof = typeNoStructLevel\n\t\t\tcontinue\n\n\t\tcase existsTag:\n\t\t\tcurrent.typeof = typeExists\n\t\t\tcontinue\n\n\t\tdefault:\n\n\t\t\t// if a pipe character is needed within the param you must use the utf8Pipe representation \"0x7C\"\n\t\t\torVals := strings.Split(t, orSeparator)\n\n\t\t\tfor j := 0; j < len(orVals); j++ {\n\n\t\t\t\tvals := strings.SplitN(orVals[j], tagKeySeparator, 2)\n\n\t\t\t\tif noAlias {\n\t\t\t\t\talias = vals[0]\n\t\t\t\t\tcurrent.aliasTag = alias\n\t\t\t\t} else {\n\t\t\t\t\tcurrent.actualAliasTag = t\n\t\t\t\t}\n\n\t\t\t\tif j > 0 {\n\t\t\t\t\tcurrent.next = &cTag{aliasTag: alias, actualAliasTag: current.actualAliasTag, hasAlias: hasAlias, hasTag: true}\n\t\t\t\t\tcurrent = current.next\n\t\t\t\t}\n\n\t\t\t\tcurrent.tag = vals[0]\n\t\t\t\tif len(current.tag) == 0 {\n\t\t\t\t\tpanic(strings.TrimSpace(fmt.Sprintf(invalidValidation, fieldName)))\n\t\t\t\t}\n\n\t\t\t\tif current.fn, ok = v.validationFuncs[current.tag]; !ok {\n\t\t\t\t\tpanic(strings.TrimSpace(fmt.Sprintf(undefinedValidation, fieldName)))\n\t\t\t\t}\n\n\t\t\t\tif len(orVals) > 1 {\n\t\t\t\t\tcurrent.typeof = typeOr\n\t\t\t\t}\n\n\t\t\t\tif len(vals) > 1 {\n\t\t\t\t\tcurrent.param = strings.Replace(strings.Replace(vals[1], utf8HexComma, \",\", -1), utf8Pipe, \"|\", -1)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/doc.go",
    "content": "/*\nPackage validator implements value validations for structs and individual fields\nbased on tags.\n\nIt can also handle Cross-Field and Cross-Struct validation for nested structs\nand has the ability to dive into arrays and maps of any type.\n\nWhy not a better error message?\nBecause this library intends for you to handle your own error messages.\n\nWhy should I handle my own errors?\nMany reasons. We built an internationalized application and needed to know the\nfield, and what validation failed so we could provide a localized error.\n\n\tif fieldErr.Field == \"Name\" {\n\t\tswitch fieldErr.ErrorTag\n\t\tcase \"required\":\n\t\t\treturn \"Translated string based on field + error\"\n\t\tdefault:\n\t\treturn \"Translated string based on field\"\n\t}\n\n\nValidation Functions Return Type error\n\nDoing things this way is actually the way the standard library does, see the\nfile.Open method here:\n\n\thttps://golang.org/pkg/os/#Open.\n\nThe authors return type \"error\" to avoid the issue discussed in the following,\nwhere err is always != nil:\n\n\thttp://stackoverflow.com/a/29138676/3158232\n\thttps://github.com/go-playground/validator/issues/134\n\nValidator only returns nil or ValidationErrors as type error; so, in your code\nall you need to do is check if the error returned is not nil, and if it's not\ntype cast it to type ValidationErrors like so err.(validator.ValidationErrors).\n\nCustom Functions\n\nCustom functions can be added. Example:\n\n\t// Structure\n\tfunc customFunc(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string) bool {\n\n\t\tif whatever {\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n\n\tvalidate.RegisterValidation(\"custom tag name\", customFunc)\n\t// NOTES: using the same tag name as an existing function\n\t//        will overwrite the existing one\n\nCross-Field Validation\n\nCross-Field Validation can be done via the following tags:\n\t- eqfield\n\t- nefield\n\t- gtfield\n\t- gtefield\n\t- ltfield\n\t- ltefield\n\t- eqcsfield\n\t- necsfield\n\t- gtcsfield\n\t- ftecsfield\n\t- ltcsfield\n\t- ltecsfield\n\nIf, however, some custom cross-field validation is required, it can be done\nusing a custom validation.\n\nWhy not just have cross-fields validation tags (i.e. only eqcsfield and not\neqfield)?\n\nThe reason is efficiency. If you want to check a field within the same struct\n\"eqfield\" only has to find the field on the same struct (1 level). But, if we\nused \"eqcsfield\" it could be multiple levels down. Example:\n\n\ttype Inner struct {\n\t\tStartDate time.Time\n\t}\n\n\ttype Outer struct {\n\t\tInnerStructField *Inner\n\t\tCreatedAt time.Time      `validate:\"ltecsfield=InnerStructField.StartDate\"`\n\t}\n\n\tnow := time.Now()\n\n\tinner := &Inner{\n\t\tStartDate: now,\n\t}\n\n\touter := &Outer{\n\t\tInnerStructField: inner,\n\t\tCreatedAt: now,\n\t}\n\n\terrs := validate.Struct(outer)\n\n\t// NOTE: when calling validate.Struct(val) topStruct will be the top level struct passed\n\t//       into the function\n\t//       when calling validate.FieldWithValue(val, field, tag) val will be\n\t//       whatever you pass, struct, field...\n\t//       when calling validate.Field(field, tag) val will be nil\n\nMultiple Validators\n\nMultiple validators on a field will process in the order defined. Example:\n\n\ttype Test struct {\n\t\tField `validate:\"max=10,min=1\"`\n\t}\n\n\t// max will be checked then min\n\nBad Validator definitions are not handled by the library. Example:\n\n\ttype Test struct {\n\t\tField `validate:\"min=10,max=0\"`\n\t}\n\n\t// this definition of min max will never succeed\n\nUsing Validator Tags\n\nBaked In Cross-Field validation only compares fields on the same struct.\nIf Cross-Field + Cross-Struct validation is needed you should implement your\nown custom validator.\n\nComma (\",\") is the default separator of validation tags. If you wish to\nhave a comma included within the parameter (i.e. excludesall=,) you will need to\nuse the UTF-8 hex representation 0x2C, which is replaced in the code as a comma,\nso the above will become excludesall=0x2C.\n\n\ttype Test struct {\n\t\tField `validate:\"excludesall=,\"`    // BAD! Do not include a comma.\n\t\tField `validate:\"excludesall=0x2C\"` // GOOD! Use the UTF-8 hex representation.\n\t}\n\nPipe (\"|\") is the default separator of validation tags. If you wish to\nhave a pipe included within the parameter i.e. excludesall=| you will need to\nuse the UTF-8 hex representation 0x7C, which is replaced in the code as a pipe,\nso the above will become excludesall=0x7C\n\n\ttype Test struct {\n\t\tField `validate:\"excludesall=|\"`    // BAD! Do not include a a pipe!\n\t\tField `validate:\"excludesall=0x7C\"` // GOOD! Use the UTF-8 hex representation.\n\t}\n\n\nBaked In Validators and Tags\n\nHere is a list of the current built in validators:\n\n\nSkip Field\n\nTells the validation to skip this struct field; this is particularly\nhandy in ignoring embedded structs from being validated. (Usage: -)\n\tUsage: -\n\n\nOr Operator\n\nThis is the 'or' operator allowing multiple validators to be used and\naccepted. (Usage: rbg|rgba) <-- this would allow either rgb or rgba\ncolors to be accepted. This can also be combined with 'and' for example\n( Usage: omitempty,rgb|rgba)\n\n\tUsage: |\n\nStructOnly\n\nWhen a field that is a nested struct is encountered, and contains this flag\nany validation on the nested struct will be run, but none of the nested\nstruct fields will be validated. This is usefull if inside of you program\nyou know the struct will be valid, but need to verify it has been assigned.\nNOTE: only \"required\" and \"omitempty\" can be used on a struct itself.\n\n\tUsage: structonly\n\nNoStructLevel\n\nSame as structonly tag except that any struct level validations will not run.\n\n\tUsage: nostructlevel\n\nExists\n\nIs a special tag without a validation function attached. It is used when a field\nis a Pointer, Interface or Invalid and you wish to validate that it exists.\nExample: want to ensure a bool exists if you define the bool as a pointer and\nuse exists it will ensure there is a value; couldn't use required as it would\nfail when the bool was false. exists will fail is the value is a Pointer, Interface\nor Invalid and is nil.\n\n\tUsage: exists\n\nOmit Empty\n\nAllows conditional validation, for example if a field is not set with\na value (Determined by the \"required\" validator) then other validation\nsuch as min or max won't run, but if a value is set validation will run.\n\n\tUsage: omitempty\n\nDive\n\nThis tells the validator to dive into a slice, array or map and validate that\nlevel of the slice, array or map with the validation tags that follow.\nMultidimensional nesting is also supported, each level you wish to dive will\nrequire another dive tag.\n\n\tUsage: dive\n\nExample #1\n\n\t[][]string with validation tag \"gt=0,dive,len=1,dive,required\"\n\t// gt=0 will be applied to []\n\t// len=1 will be applied to []string\n\t// required will be applied to string\n\nExample #2\n\n\t[][]string with validation tag \"gt=0,dive,dive,required\"\n\t// gt=0 will be applied to []\n\t// []string will be spared validation\n\t// required will be applied to string\n\nRequired\n\nThis validates that the value is not the data types default zero value.\nFor numbers ensures value is not zero. For strings ensures value is\nnot \"\". For slices, maps, pointers, interfaces, channels and functions\nensures the value is not nil.\n\n\tUsage: required\n\nLength\n\nFor numbers, max will ensure that the value is\nequal to the parameter given. For strings, it checks that\nthe string length is exactly that number of characters. For slices,\narrays, and maps, validates the number of items.\n\n\tUsage: len=10\n\nMaximum\n\nFor numbers, max will ensure that the value is\nless than or equal to the parameter given. For strings, it checks\nthat the string length is at most that number of characters. For\nslices, arrays, and maps, validates the number of items.\n\n\tUsage: max=10\n\nMininum\n\nFor numbers, min will ensure that the value is\ngreater or equal to the parameter given. For strings, it checks that\nthe string length is at least that number of characters. For slices,\narrays, and maps, validates the number of items.\n\n\tUsage: min=10\n\nEquals\n\nFor strings & numbers, eq will ensure that the value is\nequal to the parameter given. For slices, arrays, and maps,\nvalidates the number of items.\n\n\tUsage: eq=10\n\nNot Equal\n\nFor strings & numbers, ne will ensure that the value is not\nequal to the parameter given. For slices, arrays, and maps,\nvalidates the number of items.\n\n\tUsage: ne=10\n\nGreater Than\n\nFor numbers, this will ensure that the value is greater than the\nparameter given. For strings, it checks that the string length\nis greater than that number of characters. For slices, arrays\nand maps it validates the number of items.\n\nExample #1\n\n\tUsage: gt=10\n\nExample #2 (time.Time)\n\nFor time.Time ensures the time value is greater than time.Now.UTC().\n\n\tUsage: gt\n\nGreater Than or Equal\n\nSame as 'min' above. Kept both to make terminology with 'len' easier.\n\n\nExample #1\n\n\tUsage: gte=10\n\nExample #2 (time.Time)\n\nFor time.Time ensures the time value is greater than or equal to time.Now.UTC().\n\n\tUsage: gte\n\nLess Than\n\nFor numbers, this will ensure that the value is less than the parameter given.\nFor strings, it checks that the string length is less than that number of\ncharacters. For slices, arrays, and maps it validates the number of items.\n\nExample #1\n\n\tUsage: lt=10\n\nExample #2 (time.Time)\nFor time.Time ensures the time value is less than time.Now.UTC().\n\n\tUsage: lt\n\nLess Than or Equal\n\nSame as 'max' above. Kept both to make terminology with 'len' easier.\n\nExample #1\n\n\tUsage: lte=10\n\nExample #2 (time.Time)\n\nFor time.Time ensures the time value is less than or equal to time.Now.UTC().\n\n\tUsage: lte\n\nField Equals Another Field\n\nThis will validate the field value against another fields value either within\na struct or passed in field.\n\nExample #1:\n\n\t// Validation on Password field using:\n\tUsage: eqfield=ConfirmPassword\n\nExample #2:\n\n\t// Validating by field:\n\tvalidate.FieldWithValue(password, confirmpassword, \"eqfield\")\n\nField Equals Another Field (relative)\n\nThis does the same as eqfield except that it validates the field provided relative\nto the top level struct.\n\n\tUsage: eqcsfield=InnerStructField.Field)\n\nField Does Not Equal Another Field\n\nThis will validate the field value against another fields value either within\na struct or passed in field.\n\nExamples:\n\n\t// Confirm two colors are not the same:\n\t//\n\t// Validation on Color field:\n\tUsage: nefield=Color2\n\n\t// Validating by field:\n\tvalidate.FieldWithValue(color1, color2, \"nefield\")\n\nField Does Not Equal Another Field (relative)\n\nThis does the same as nefield except that it validates the field provided\nrelative to the top level struct.\n\n\tUsage: necsfield=InnerStructField.Field\n\nField Greater Than Another Field\n\nOnly valid for Numbers and time.Time types, this will validate the field value\nagainst another fields value either within a struct or passed in field.\nusage examples are for validation of a Start and End date:\n\nExample #1:\n\n\t// Validation on End field using:\n\tvalidate.Struct Usage(gtfield=Start)\n\nExample #2:\n\n\t// Validating by field:\n\tvalidate.FieldWithValue(start, end, \"gtfield\")\n\n\nField Greater Than Another Relative Field\n\nThis does the same as gtfield except that it validates the field provided\nrelative to the top level struct.\n\n\tUsage: gtcsfield=InnerStructField.Field\n\nField Greater Than or Equal To Another Field\n\nOnly valid for Numbers and time.Time types, this will validate the field value\nagainst another fields value either within a struct or passed in field.\nusage examples are for validation of a Start and End date:\n\nExample #1:\n\n\t// Validation on End field using:\n\tvalidate.Struct Usage(gtefield=Start)\n\nExample #2:\n\n\t// Validating by field:\n\tvalidate.FieldWithValue(start, end, \"gtefield\")\n\nField Greater Than or Equal To Another Relative Field\n\nThis does the same as gtefield except that it validates the field provided relative\nto the top level struct.\n\n\tUsage: gtecsfield=InnerStructField.Field\n\nLess Than Another Field\n\nOnly valid for Numbers and time.Time types, this will validate the field value\nagainst another fields value either within a struct or passed in field.\nusage examples are for validation of a Start and End date:\n\nExample #1:\n\n\t// Validation on End field using:\n\tvalidate.Struct Usage(ltfield=Start)\n\nExample #2:\n\n\t// Validating by field:\n\tvalidate.FieldWithValue(start, end, \"ltfield\")\n\nLess Than Another Relative Field\n\nThis does the same as ltfield except that it validates the field provided relative\nto the top level struct.\n\n\tUsage: ltcsfield=InnerStructField.Field\n\nLess Than or Equal To Another Field\n\nOnly valid for Numbers and time.Time types, this will validate the field value\nagainst another fields value either within a struct or passed in field.\nusage examples are for validation of a Start and End date:\n\nExample #1:\n\n\t// Validation on End field using:\n\tvalidate.Struct Usage(ltefield=Start)\n\nExample #2:\n\n\t// Validating by field:\n\tvalidate.FieldWithValue(start, end, \"ltefield\")\n\nLess Than or Equal To Another Relative Field\n\nThis does the same as ltefield except that it validates the field provided relative\nto the top level struct.\n\n\tUsage: ltecsfield=InnerStructField.Field\n\nAlpha Only\n\nThis validates that a string value contains alpha characters only\n\n\tUsage: alpha\n\nAlphanumeric\n\nThis validates that a string value contains alphanumeric characters only\n\n\tUsage: alphanum\n\nNumeric\n\nThis validates that a string value contains a basic numeric value.\nbasic excludes exponents etc...\n\n\tUsage: numeric\n\nHexadecimal String\n\nThis validates that a string value contains a valid hexadecimal.\n\n\tUsage: hexadecimal\n\nHexcolor String\n\nThis validates that a string value contains a valid hex color including\nhashtag (#)\n\n\t\tUsage: hexcolor\n\nRGB String\n\nThis validates that a string value contains a valid rgb color\n\n\tUsage: rgb\n\nRGBA String\n\nThis validates that a string value contains a valid rgba color\n\n\tUsage: rgba\n\nHSL String\n\nThis validates that a string value contains a valid hsl color\n\n\tUsage: hsl\n\nHSLA String\n\nThis validates that a string value contains a valid hsla color\n\n\tUsage: hsla\n\nE-mail String\n\nThis validates that a string value contains a valid email\nThis may not conform to all possibilities of any rfc standard, but neither\ndoes any email provider accept all posibilities.\n\n\tUsage: email\n\nURL String\n\nThis validates that a string value contains a valid url\nThis will accept any url the golang request uri accepts but must contain\na schema for example http:// or rtmp://\n\n\tUsage: url\n\nURI String\n\nThis validates that a string value contains a valid uri\nThis will accept any uri the golang request uri accepts\n\n\tUsage: uri\n\nBase64 String\n\nThis validates that a string value contains a valid base64 value.\nAlthough an empty string is valid base64 this will report an empty string\nas an error, if you wish to accept an empty string as valid you can use\nthis with the omitempty tag.\n\n\tUsage: base64\n\nContains\n\nThis validates that a string value contains the substring value.\n\n\tUsage: contains=@\n\nContains Any\n\nThis validates that a string value contains any Unicode code points\nin the substring value.\n\n\tUsage: containsany=!@#?\n\nContains Rune\n\nThis validates that a string value contains the supplied rune value.\n\n\tUsage: containsrune=@\n\nExcludes\n\nThis validates that a string value does not contain the substring value.\n\n\tUsage: excludes=@\n\nExcludes All\n\nThis validates that a string value does not contain any Unicode code\npoints in the substring value.\n\n\tUsage: excludesall=!@#?\n\nExcludes Rune\n\nThis validates that a string value does not contain the supplied rune value.\n\n\tUsage: excludesrune=@\n\nInternational Standard Book Number\n\nThis validates that a string value contains a valid isbn10 or isbn13 value.\n\n\tUsage: isbn\n\nInternational Standard Book Number 10\n\nThis validates that a string value contains a valid isbn10 value.\n\n\tUsage: isbn10\n\nInternational Standard Book Number 13\n\nThis validates that a string value contains a valid isbn13 value.\n\n\tUsage: isbn13\n\n\nUniversally Unique Identifier UUID\n\nThis validates that a string value contains a valid UUID.\n\n\tUsage: uuid\n\nUniversally Unique Identifier UUID v3\n\nThis validates that a string value contains a valid version 3 UUID.\n\n\tUsage: uuid3\n\nUniversally Unique Identifier UUID v4\n\nThis validates that a string value contains a valid version 4 UUID.\n\n\tUsage: uuid4\n\nUniversally Unique Identifier UUID v5\n\nThis validates that a string value contains a valid version 5 UUID.\n\n\tUsage: uuid5\n\nASCII\n\nThis validates that a string value contains only ASCII characters.\nNOTE: if the string is blank, this validates as true.\n\n\tUsage: ascii\n\nPrintable ASCII\n\nThis validates that a string value contains only printable ASCII characters.\nNOTE: if the string is blank, this validates as true.\n\n\tUsage: asciiprint\n\nMulti-Byte Characters\n\nThis validates that a string value contains one or more multibyte characters.\nNOTE: if the string is blank, this validates as true.\n\n\tUsage: multibyte\n\nData URL\n\nThis validates that a string value contains a valid DataURI.\nNOTE: this will also validate that the data portion is valid base64\n\n\tUsage: datauri\n\nLatitude\n\nThis validates that a string value contains a valid latitude.\n\n\tUsage: latitude\n\nLongitude\n\nThis validates that a string value contains a valid longitude.\n\n\tUsage: longitude\n\nSocial Security Number SSN\n\nThis validates that a string value contains a valid U.S. Social Security Number.\n\n\tUsage: ssn\n\nInternet Protocol Address IP\n\nThis validates that a string value contains a valid IP Adress.\n\n\tUsage: ip\n\nInternet Protocol Address IPv4\n\nThis validates that a string value contains a valid v4 IP Adress.\n\n\tUsage: ipv4\n\nInternet Protocol Address IPv6\n\nThis validates that a string value contains a valid v6 IP Adress.\n\n\tUsage: ipv6\n\nClassless Inter-Domain Routing CIDR\n\nThis validates that a string value contains a valid CIDR Adress.\n\n\tUsage: cidr\n\nClassless Inter-Domain Routing CIDRv4\n\nThis validates that a string value contains a valid v4 CIDR Adress.\n\n\tUsage: cidrv4\n\nClassless Inter-Domain Routing CIDRv6\n\nThis validates that a string value contains a valid v6 CIDR Adress.\n\n\tUsage: cidrv6\n\nTransmission Control Protocol Address TCP\n\nThis validates that a string value contains a valid resolvable TCP Adress.\n\n\tUsage: tcp_addr\n\nTransmission Control Protocol Address TCPv4\n\nThis validates that a string value contains a valid resolvable v4 TCP Adress.\n\n\tUsage: tcp4_addr\n\nTransmission Control Protocol Address TCPv6\n\nThis validates that a string value contains a valid resolvable v6 TCP Adress.\n\n\tUsage: tcp6_addr\n\nUser Datagram Protocol Address UDP\n\nThis validates that a string value contains a valid resolvable UDP Adress.\n\n\tUsage: udp_addr\n\nUser Datagram Protocol Address UDPv4\n\nThis validates that a string value contains a valid resolvable v4 UDP Adress.\n\n\tUsage: udp4_addr\n\nUser Datagram Protocol Address UDPv6\n\nThis validates that a string value contains a valid resolvable v6 UDP Adress.\n\n\tUsage: udp6_addr\n\nInternet Protocol Address IP\n\nThis validates that a string value contains a valid resolvable IP Adress.\n\n\tUsage: ip_addr\n\nInternet Protocol Address IPv4\n\nThis validates that a string value contains a valid resolvable v4 IP Adress.\n\n\tUsage: ip4_addr\n\nInternet Protocol Address IPv6\n\nThis validates that a string value contains a valid resolvable v6 IP Adress.\n\n\tUsage: ip6_addr\n\nUnix domain socket end point Address\n\nThis validates that a string value contains a valid Unix Adress.\n\n\tUsage: unix_addr\n\nMedia Access Control Address MAC\n\nThis validates that a string value contains a valid MAC Adress.\n\n\tUsage: mac\n\nNote: See Go's ParseMAC for accepted formats and types:\n\n\thttp://golang.org/src/net/mac.go?s=866:918#L29\n\nAlias Validators and Tags\n\nNOTE: When returning an error, the tag returned in \"FieldError\" will be\nthe alias tag unless the dive tag is part of the alias. Everything after the\ndive tag is not reported as the alias tag. Also, the \"ActualTag\" in the before\ncase will be the actual tag within the alias that failed.\n\nHere is a list of the current built in alias tags:\n\n\t\"iscolor\"\n\t\talias is \"hexcolor|rgb|rgba|hsl|hsla\" (Usage: iscolor)\n\nValidator notes:\n\n\tregex\n\t\ta regex validator won't be added because commas and = signs can be part\n\t\tof a regex which conflict with the validation definitions. Although\n\t\tworkarounds can be made, they take away from using pure regex's.\n\t\tFurthermore it's quick and dirty but the regex's become harder to\n\t\tmaintain and are not reusable, so it's as much a programming philosiphy\n\t\tas anything.\n\n\t\tIn place of this new validator functions should be created; a regex can\n\t\tbe used within the validator function and even be precompiled for better\n\t\tefficiency within regexes.go.\n\n\t\tAnd the best reason, you can submit a pull request and we can keep on\n\t\tadding to the validation library of this package!\n\nPanics\n\nThis package panics when bad input is provided, this is by design, bad code like\nthat should not make it to production.\n\n\ttype Test struct {\n\t\tTestField string `validate:\"nonexistantfunction=1\"`\n\t}\n\n\tt := &Test{\n\t\tTestField: \"Test\"\n\t}\n\n\tvalidate.Struct(t) // this will panic\n*/\npackage validator\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/regexes.go",
    "content": "package validator\n\nimport \"regexp\"\n\nconst (\n\talphaRegexString          = \"^[a-zA-Z]+$\"\n\talphaNumericRegexString   = \"^[a-zA-Z0-9]+$\"\n\tnumericRegexString        = \"^[-+]?[0-9]+(?:\\\\.[0-9]+)?$\"\n\tnumberRegexString         = \"^[0-9]+$\"\n\thexadecimalRegexString    = \"^[0-9a-fA-F]+$\"\n\thexcolorRegexString       = \"^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$\"\n\trgbRegexString            = \"^rgb\\\\(\\\\s*(?:(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])|(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])%\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])%\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])%)\\\\s*\\\\)$\"\n\trgbaRegexString           = \"^rgba\\\\(\\\\s*(?:(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])|(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])%\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])%\\\\s*,\\\\s*(?:0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])%)\\\\s*,\\\\s*(?:(?:0.[1-9]*)|[01])\\\\s*\\\\)$\"\n\thslRegexString            = \"^hsl\\\\(\\\\s*(?:0|[1-9]\\\\d?|[12]\\\\d\\\\d|3[0-5]\\\\d|360)\\\\s*,\\\\s*(?:(?:0|[1-9]\\\\d?|100)%)\\\\s*,\\\\s*(?:(?:0|[1-9]\\\\d?|100)%)\\\\s*\\\\)$\"\n\thslaRegexString           = \"^hsla\\\\(\\\\s*(?:0|[1-9]\\\\d?|[12]\\\\d\\\\d|3[0-5]\\\\d|360)\\\\s*,\\\\s*(?:(?:0|[1-9]\\\\d?|100)%)\\\\s*,\\\\s*(?:(?:0|[1-9]\\\\d?|100)%)\\\\s*,\\\\s*(?:(?:0.[1-9]*)|[01])\\\\s*\\\\)$\"\n\temailRegexString          = \"^(?:(?:(?:(?:[a-zA-Z]|\\\\d|[!#\\\\$%&'\\\\*\\\\+\\\\-\\\\/=\\\\?\\\\^_`{\\\\|}~]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])+(?:\\\\.([a-zA-Z]|\\\\d|[!#\\\\$%&'\\\\*\\\\+\\\\-\\\\/=\\\\?\\\\^_`{\\\\|}~]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])+)*)|(?:(?:\\\\x22)(?:(?:(?:(?:\\\\x20|\\\\x09)*(?:\\\\x0d\\\\x0a))?(?:\\\\x20|\\\\x09)+)?(?:(?:[\\\\x01-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f\\\\x7f]|\\\\x21|[\\\\x23-\\\\x5b]|[\\\\x5d-\\\\x7e]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])|(?:\\\\(?:[\\\\x01-\\\\x09\\\\x0b\\\\x0c\\\\x0d-\\\\x7f]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}]))))*(?:(?:(?:\\\\x20|\\\\x09)*(?:\\\\x0d\\\\x0a))?(\\\\x20|\\\\x09)+)?(?:\\\\x22)))@(?:(?:(?:[a-zA-Z]|\\\\d|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])|(?:(?:[a-zA-Z]|\\\\d|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])(?:[a-zA-Z]|\\\\d|-|\\\\.|_|~|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])*(?:[a-zA-Z]|\\\\d|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])))\\\\.)+(?:(?:[a-zA-Z]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])|(?:(?:[a-zA-Z]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])(?:[a-zA-Z]|\\\\d|-|\\\\.|_|~|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])*(?:[a-zA-Z]|[\\\\x{00A0}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFEF}])))\\\\.?$\"\n\tbase64RegexString         = \"^(?:[A-Za-z0-9+\\\\/]{4})*(?:[A-Za-z0-9+\\\\/]{2}==|[A-Za-z0-9+\\\\/]{3}=|[A-Za-z0-9+\\\\/]{4})$\"\n\tiSBN10RegexString         = \"^(?:[0-9]{9}X|[0-9]{10})$\"\n\tiSBN13RegexString         = \"^(?:(?:97(?:8|9))[0-9]{10})$\"\n\tuUID3RegexString          = \"^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$\"\n\tuUID4RegexString          = \"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$\"\n\tuUID5RegexString          = \"^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$\"\n\tuUIDRegexString           = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\"\n\taSCIIRegexString          = \"^[\\x00-\\x7F]*$\"\n\tprintableASCIIRegexString = \"^[\\x20-\\x7E]*$\"\n\tmultibyteRegexString      = \"[^\\x00-\\x7F]\"\n\tdataURIRegexString        = \"^data:.+\\\\/(.+);base64$\"\n\tlatitudeRegexString       = \"^[-+]?([1-8]?\\\\d(\\\\.\\\\d+)?|90(\\\\.0+)?)$\"\n\tlongitudeRegexString      = \"^[-+]?(180(\\\\.0+)?|((1[0-7]\\\\d)|([1-9]?\\\\d))(\\\\.\\\\d+)?)$\"\n\tsSNRegexString            = `^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$`\n)\n\nvar (\n\talphaRegex          = regexp.MustCompile(alphaRegexString)\n\talphaNumericRegex   = regexp.MustCompile(alphaNumericRegexString)\n\tnumericRegex        = regexp.MustCompile(numericRegexString)\n\tnumberRegex         = regexp.MustCompile(numberRegexString)\n\thexadecimalRegex    = regexp.MustCompile(hexadecimalRegexString)\n\thexcolorRegex       = regexp.MustCompile(hexcolorRegexString)\n\trgbRegex            = regexp.MustCompile(rgbRegexString)\n\trgbaRegex           = regexp.MustCompile(rgbaRegexString)\n\thslRegex            = regexp.MustCompile(hslRegexString)\n\thslaRegex           = regexp.MustCompile(hslaRegexString)\n\temailRegex          = regexp.MustCompile(emailRegexString)\n\tbase64Regex         = regexp.MustCompile(base64RegexString)\n\tiSBN10Regex         = regexp.MustCompile(iSBN10RegexString)\n\tiSBN13Regex         = regexp.MustCompile(iSBN13RegexString)\n\tuUID3Regex          = regexp.MustCompile(uUID3RegexString)\n\tuUID4Regex          = regexp.MustCompile(uUID4RegexString)\n\tuUID5Regex          = regexp.MustCompile(uUID5RegexString)\n\tuUIDRegex           = regexp.MustCompile(uUIDRegexString)\n\taSCIIRegex          = regexp.MustCompile(aSCIIRegexString)\n\tprintableASCIIRegex = regexp.MustCompile(printableASCIIRegexString)\n\tmultibyteRegex      = regexp.MustCompile(multibyteRegexString)\n\tdataURIRegex        = regexp.MustCompile(dataURIRegexString)\n\tlatitudeRegex       = regexp.MustCompile(latitudeRegexString)\n\tlongitudeRegex      = regexp.MustCompile(longitudeRegexString)\n\tsSNRegex            = regexp.MustCompile(sSNRegexString)\n)\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/util.go",
    "content": "package validator\n\nimport (\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tblank              = \"\"\n\tnamespaceSeparator = \".\"\n\tleftBracket        = \"[\"\n\trightBracket       = \"]\"\n\trestrictedTagChars = \".[],|=+()`~!@#$%^&*\\\\\\\"/?<>{}\"\n\trestrictedAliasErr = \"Alias '%s' either contains restricted characters or is the same as a restricted tag needed for normal operation\"\n\trestrictedTagErr   = \"Tag '%s' either contains restricted characters or is the same as a restricted tag needed for normal operation\"\n)\n\nvar (\n\trestrictedTags = map[string]struct{}{\n\t\tdiveTag:           {},\n\t\texistsTag:         {},\n\t\tstructOnlyTag:     {},\n\t\tomitempty:         {},\n\t\tskipValidationTag: {},\n\t\tutf8HexComma:      {},\n\t\tutf8Pipe:          {},\n\t\tnoStructLevelTag:  {},\n\t}\n)\n\n// ExtractType gets the actual underlying type of field value.\n// It will dive into pointers, customTypes and return you the\n// underlying value and it's kind.\n// it is exposed for use within you Custom Functions\nfunc (v *Validate) ExtractType(current reflect.Value) (reflect.Value, reflect.Kind) {\n\n\tval, k, _ := v.extractTypeInternal(current, false)\n\treturn val, k\n}\n\n// only exists to not break backward compatibility, needed to return the third param for a bug fix internally\nfunc (v *Validate) extractTypeInternal(current reflect.Value, nullable bool) (reflect.Value, reflect.Kind, bool) {\n\n\tswitch current.Kind() {\n\tcase reflect.Ptr:\n\n\t\tnullable = true\n\n\t\tif current.IsNil() {\n\t\t\treturn current, reflect.Ptr, nullable\n\t\t}\n\n\t\treturn v.extractTypeInternal(current.Elem(), nullable)\n\n\tcase reflect.Interface:\n\n\t\tnullable = true\n\n\t\tif current.IsNil() {\n\t\t\treturn current, reflect.Interface, nullable\n\t\t}\n\n\t\treturn v.extractTypeInternal(current.Elem(), nullable)\n\n\tcase reflect.Invalid:\n\t\treturn current, reflect.Invalid, nullable\n\n\tdefault:\n\n\t\tif v.hasCustomFuncs {\n\n\t\t\tif fn, ok := v.customTypeFuncs[current.Type()]; ok {\n\t\t\t\treturn v.extractTypeInternal(reflect.ValueOf(fn(current)), nullable)\n\t\t\t}\n\t\t}\n\n\t\treturn current, current.Kind(), nullable\n\t}\n}\n\n// GetStructFieldOK traverses a struct to retrieve a specific field denoted by the provided namespace and\n// returns the field, field kind and whether is was successful in retrieving the field at all.\n// NOTE: when not successful ok will be false, this can happen when a nested struct is nil and so the field\n// could not be retrieved because it didn't exist.\nfunc (v *Validate) GetStructFieldOK(current reflect.Value, namespace string) (reflect.Value, reflect.Kind, bool) {\n\n\tcurrent, kind := v.ExtractType(current)\n\n\tif kind == reflect.Invalid {\n\t\treturn current, kind, false\n\t}\n\n\tif namespace == blank {\n\t\treturn current, kind, true\n\t}\n\n\tswitch kind {\n\n\tcase reflect.Ptr, reflect.Interface:\n\n\t\treturn current, kind, false\n\n\tcase reflect.Struct:\n\n\t\ttyp := current.Type()\n\t\tfld := namespace\n\t\tns := namespace\n\n\t\tif typ != timeType && typ != timePtrType {\n\n\t\t\tidx := strings.Index(namespace, namespaceSeparator)\n\n\t\t\tif idx != -1 {\n\t\t\t\tfld = namespace[:idx]\n\t\t\t\tns = namespace[idx+1:]\n\t\t\t} else {\n\t\t\t\tns = blank\n\t\t\t}\n\n\t\t\tbracketIdx := strings.Index(fld, leftBracket)\n\t\t\tif bracketIdx != -1 {\n\t\t\t\tfld = fld[:bracketIdx]\n\n\t\t\t\tns = namespace[bracketIdx:]\n\t\t\t}\n\n\t\t\tcurrent = current.FieldByName(fld)\n\n\t\t\treturn v.GetStructFieldOK(current, ns)\n\t\t}\n\n\tcase reflect.Array, reflect.Slice:\n\t\tidx := strings.Index(namespace, leftBracket)\n\t\tidx2 := strings.Index(namespace, rightBracket)\n\n\t\tarrIdx, _ := strconv.Atoi(namespace[idx+1 : idx2])\n\n\t\tif arrIdx >= current.Len() {\n\t\t\treturn current, kind, false\n\t\t}\n\n\t\tstartIdx := idx2 + 1\n\n\t\tif startIdx < len(namespace) {\n\t\t\tif namespace[startIdx:startIdx+1] == namespaceSeparator {\n\t\t\t\tstartIdx++\n\t\t\t}\n\t\t}\n\n\t\treturn v.GetStructFieldOK(current.Index(arrIdx), namespace[startIdx:])\n\n\tcase reflect.Map:\n\t\tidx := strings.Index(namespace, leftBracket) + 1\n\t\tidx2 := strings.Index(namespace, rightBracket)\n\n\t\tendIdx := idx2\n\n\t\tif endIdx+1 < len(namespace) {\n\t\t\tif namespace[endIdx+1:endIdx+2] == namespaceSeparator {\n\t\t\t\tendIdx++\n\t\t\t}\n\t\t}\n\n\t\tkey := namespace[idx:idx2]\n\n\t\tswitch current.Type().Key().Kind() {\n\t\tcase reflect.Int:\n\t\t\ti, _ := strconv.Atoi(key)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(i)), namespace[endIdx+1:])\n\t\tcase reflect.Int8:\n\t\t\ti, _ := strconv.ParseInt(key, 10, 8)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(int8(i))), namespace[endIdx+1:])\n\t\tcase reflect.Int16:\n\t\t\ti, _ := strconv.ParseInt(key, 10, 16)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(int16(i))), namespace[endIdx+1:])\n\t\tcase reflect.Int32:\n\t\t\ti, _ := strconv.ParseInt(key, 10, 32)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(int32(i))), namespace[endIdx+1:])\n\t\tcase reflect.Int64:\n\t\t\ti, _ := strconv.ParseInt(key, 10, 64)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(i)), namespace[endIdx+1:])\n\t\tcase reflect.Uint:\n\t\t\ti, _ := strconv.ParseUint(key, 10, 0)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(uint(i))), namespace[endIdx+1:])\n\t\tcase reflect.Uint8:\n\t\t\ti, _ := strconv.ParseUint(key, 10, 8)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(uint8(i))), namespace[endIdx+1:])\n\t\tcase reflect.Uint16:\n\t\t\ti, _ := strconv.ParseUint(key, 10, 16)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(uint16(i))), namespace[endIdx+1:])\n\t\tcase reflect.Uint32:\n\t\t\ti, _ := strconv.ParseUint(key, 10, 32)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(uint32(i))), namespace[endIdx+1:])\n\t\tcase reflect.Uint64:\n\t\t\ti, _ := strconv.ParseUint(key, 10, 64)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(i)), namespace[endIdx+1:])\n\t\tcase reflect.Float32:\n\t\t\tf, _ := strconv.ParseFloat(key, 32)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(float32(f))), namespace[endIdx+1:])\n\t\tcase reflect.Float64:\n\t\t\tf, _ := strconv.ParseFloat(key, 64)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(f)), namespace[endIdx+1:])\n\t\tcase reflect.Bool:\n\t\t\tb, _ := strconv.ParseBool(key)\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(b)), namespace[endIdx+1:])\n\n\t\t// reflect.Type = string\n\t\tdefault:\n\t\t\treturn v.GetStructFieldOK(current.MapIndex(reflect.ValueOf(key)), namespace[endIdx+1:])\n\t\t}\n\t}\n\n\t// if got here there was more namespace, cannot go any deeper\n\tpanic(\"Invalid field namespace\")\n}\n\n// asInt returns the parameter as a int64\n// or panics if it can't convert\nfunc asInt(param string) int64 {\n\n\ti, err := strconv.ParseInt(param, 0, 64)\n\tpanicIf(err)\n\n\treturn i\n}\n\n// asUint returns the parameter as a uint64\n// or panics if it can't convert\nfunc asUint(param string) uint64 {\n\n\ti, err := strconv.ParseUint(param, 0, 64)\n\tpanicIf(err)\n\n\treturn i\n}\n\n// asFloat returns the parameter as a float64\n// or panics if it can't convert\nfunc asFloat(param string) float64 {\n\n\ti, err := strconv.ParseFloat(param, 64)\n\tpanicIf(err)\n\n\treturn i\n}\n\nfunc panicIf(err error) {\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/go-playground/validator.v8/validator.go",
    "content": "/**\n * Package validator\n *\n * MISC:\n * - anonymous structs - they don't have names so expect the Struct name within StructErrors to be blank\n *\n */\n\npackage validator\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nconst (\n\tutf8HexComma            = \"0x2C\"\n\tutf8Pipe                = \"0x7C\"\n\ttagSeparator            = \",\"\n\torSeparator             = \"|\"\n\ttagKeySeparator         = \"=\"\n\tstructOnlyTag           = \"structonly\"\n\tnoStructLevelTag        = \"nostructlevel\"\n\tomitempty               = \"omitempty\"\n\tskipValidationTag       = \"-\"\n\tdiveTag                 = \"dive\"\n\texistsTag               = \"exists\"\n\tfieldErrMsg             = \"Key: '%s' Error:Field validation for '%s' failed on the '%s' tag\"\n\tarrayIndexFieldName     = \"%s\" + leftBracket + \"%d\" + rightBracket\n\tmapIndexFieldName       = \"%s\" + leftBracket + \"%v\" + rightBracket\n\tinvalidValidation       = \"Invalid validation tag on field %s\"\n\tundefinedValidation     = \"Undefined validation function on field %s\"\n\tvalidatorNotInitialized = \"Validator instance not initialized\"\n\tfieldNameRequired       = \"Field Name Required\"\n\ttagRequired             = \"Tag Required\"\n)\n\nvar (\n\ttimeType      = reflect.TypeOf(time.Time{})\n\ttimePtrType   = reflect.TypeOf(&time.Time{})\n\tdefaultCField = new(cField)\n)\n\n// StructLevel contains all of the information and helper methods\n// for reporting errors during struct level validation\ntype StructLevel struct {\n\tTopStruct     reflect.Value\n\tCurrentStruct reflect.Value\n\terrPrefix     string\n\tnsPrefix      string\n\terrs          ValidationErrors\n\tv             *Validate\n}\n\n// ReportValidationErrors accepts the key relative to the top level struct and validatin errors.\n// Example: had a triple nested struct User, ContactInfo, Country and ran errs := validate.Struct(country)\n// from within a User struct level validation would call this method like so:\n// ReportValidationErrors(\"ContactInfo.\", errs)\n// NOTE: relativeKey can contain both the Field Relative and Custom name relative paths\n// i.e. ReportValidationErrors(\"ContactInfo.|cInfo\", errs) where cInfo represents say the JSON name of\n// the relative path; this will be split into 2 variables in the next valiator version.\nfunc (sl *StructLevel) ReportValidationErrors(relativeKey string, errs ValidationErrors) {\n\tfor _, e := range errs {\n\n\t\tidx := strings.Index(relativeKey, \"|\")\n\t\tvar rel string\n\t\tvar cRel string\n\n\t\tif idx != -1 {\n\t\t\trel = relativeKey[:idx]\n\t\t\tcRel = relativeKey[idx+1:]\n\t\t} else {\n\t\t\trel = relativeKey\n\t\t}\n\n\t\tkey := sl.errPrefix + rel + e.Field\n\n\t\te.FieldNamespace = key\n\t\te.NameNamespace = sl.nsPrefix + cRel + e.Name\n\n\t\tsl.errs[key] = e\n\t}\n}\n\n// ReportError reports an error just by passing the field and tag information\n// NOTE: tag can be an existing validation tag or just something you make up\n// and precess on the flip side it's up to you.\nfunc (sl *StructLevel) ReportError(field reflect.Value, fieldName string, customName string, tag string) {\n\n\tfield, kind := sl.v.ExtractType(field)\n\n\tif fieldName == blank {\n\t\tpanic(fieldNameRequired)\n\t}\n\n\tif customName == blank {\n\t\tcustomName = fieldName\n\t}\n\n\tif tag == blank {\n\t\tpanic(tagRequired)\n\t}\n\n\tns := sl.errPrefix + fieldName\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\tsl.errs[ns] = &FieldError{\n\t\t\tFieldNamespace: ns,\n\t\t\tNameNamespace:  sl.nsPrefix + customName,\n\t\t\tName:           customName,\n\t\t\tField:          fieldName,\n\t\t\tTag:            tag,\n\t\t\tActualTag:      tag,\n\t\t\tParam:          blank,\n\t\t\tKind:           kind,\n\t\t}\n\tdefault:\n\t\tsl.errs[ns] = &FieldError{\n\t\t\tFieldNamespace: ns,\n\t\t\tNameNamespace:  sl.nsPrefix + customName,\n\t\t\tName:           customName,\n\t\t\tField:          fieldName,\n\t\t\tTag:            tag,\n\t\t\tActualTag:      tag,\n\t\t\tParam:          blank,\n\t\t\tValue:          field.Interface(),\n\t\t\tKind:           kind,\n\t\t\tType:           field.Type(),\n\t\t}\n\t}\n}\n\n// Validate contains the validator settings passed in using the Config struct\ntype Validate struct {\n\ttagName             string\n\tfieldNameTag        string\n\tvalidationFuncs     map[string]Func\n\tstructLevelFuncs    map[reflect.Type]StructLevelFunc\n\tcustomTypeFuncs     map[reflect.Type]CustomTypeFunc\n\taliasValidators     map[string]string\n\thasCustomFuncs      bool\n\thasAliasValidators  bool\n\thasStructLevelFuncs bool\n\ttagCache            *tagCache\n\tstructCache         *structCache\n\terrsPool            *sync.Pool\n}\n\nfunc (v *Validate) initCheck() {\n\tif v == nil {\n\t\tpanic(validatorNotInitialized)\n\t}\n}\n\n// Config contains the options that a Validator instance will use.\n// It is passed to the New() function\ntype Config struct {\n\tTagName      string\n\tFieldNameTag string\n}\n\n// CustomTypeFunc allows for overriding or adding custom field type handler functions\n// field = field value of the type to return a value to be validated\n// example Valuer from sql drive see https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29\ntype CustomTypeFunc func(field reflect.Value) interface{}\n\n// Func accepts all values needed for file and cross field validation\n// v             = validator instance, needed but some built in functions for it's custom types\n// topStruct     = top level struct when validating by struct otherwise nil\n// currentStruct = current level struct when validating by struct otherwise optional comparison value\n// field         = field value for validation\n// param         = parameter used in validation i.e. gt=0 param would be 0\ntype Func func(v *Validate, topStruct reflect.Value, currentStruct reflect.Value, field reflect.Value, fieldtype reflect.Type, fieldKind reflect.Kind, param string) bool\n\n// StructLevelFunc accepts all values needed for struct level validation\ntype StructLevelFunc func(v *Validate, structLevel *StructLevel)\n\n// ValidationErrors is a type of map[string]*FieldError\n// it exists to allow for multiple errors to be passed from this library\n// and yet still subscribe to the error interface\ntype ValidationErrors map[string]*FieldError\n\n// Error is intended for use in development + debugging and not intended to be a production error message.\n// It allows ValidationErrors to subscribe to the Error interface.\n// All information to create an error message specific to your application is contained within\n// the FieldError found within the ValidationErrors map\nfunc (ve ValidationErrors) Error() string {\n\n\tbuff := bytes.NewBufferString(blank)\n\n\tfor key, err := range ve {\n\t\tbuff.WriteString(fmt.Sprintf(fieldErrMsg, key, err.Field, err.Tag))\n\t\tbuff.WriteString(\"\\n\")\n\t}\n\n\treturn strings.TrimSpace(buff.String())\n}\n\n// FieldError contains a single field's validation error along\n// with other properties that may be needed for error message creation\ntype FieldError struct {\n\tFieldNamespace string\n\tNameNamespace  string\n\tField          string\n\tName           string\n\tTag            string\n\tActualTag      string\n\tKind           reflect.Kind\n\tType           reflect.Type\n\tParam          string\n\tValue          interface{}\n}\n\n// New creates a new Validate instance for use.\nfunc New(config *Config) *Validate {\n\n\ttc := new(tagCache)\n\ttc.m.Store(make(map[string]*cTag))\n\n\tsc := new(structCache)\n\tsc.m.Store(make(map[reflect.Type]*cStruct))\n\n\tv := &Validate{\n\t\ttagName:      config.TagName,\n\t\tfieldNameTag: config.FieldNameTag,\n\t\ttagCache:     tc,\n\t\tstructCache:  sc,\n\t\terrsPool: &sync.Pool{New: func() interface{} {\n\t\t\treturn ValidationErrors{}\n\t\t}}}\n\n\tif len(v.aliasValidators) == 0 {\n\t\t// must copy alias validators for separate validations to be used in each validator instance\n\t\tv.aliasValidators = map[string]string{}\n\t\tfor k, val := range bakedInAliasValidators {\n\t\t\tv.RegisterAliasValidation(k, val)\n\t\t}\n\t}\n\n\tif len(v.validationFuncs) == 0 {\n\t\t// must copy validators for separate validations to be used in each instance\n\t\tv.validationFuncs = map[string]Func{}\n\t\tfor k, val := range bakedInValidators {\n\t\t\tv.RegisterValidation(k, val)\n\t\t}\n\t}\n\n\treturn v\n}\n\n// RegisterStructValidation registers a StructLevelFunc against a number of types\n// NOTE: this method is not thread-safe it is intended that these all be registered prior to any validation\nfunc (v *Validate) RegisterStructValidation(fn StructLevelFunc, types ...interface{}) {\n\tv.initCheck()\n\n\tif v.structLevelFuncs == nil {\n\t\tv.structLevelFuncs = map[reflect.Type]StructLevelFunc{}\n\t}\n\n\tfor _, t := range types {\n\t\tv.structLevelFuncs[reflect.TypeOf(t)] = fn\n\t}\n\n\tv.hasStructLevelFuncs = true\n}\n\n// RegisterValidation adds a validation Func to a Validate's map of validators denoted by the key\n// NOTE: if the key already exists, the previous validation function will be replaced.\n// NOTE: this method is not thread-safe it is intended that these all be registered prior to any validation\nfunc (v *Validate) RegisterValidation(key string, fn Func) error {\n\tv.initCheck()\n\n\tif key == blank {\n\t\treturn errors.New(\"Function Key cannot be empty\")\n\t}\n\n\tif fn == nil {\n\t\treturn errors.New(\"Function cannot be empty\")\n\t}\n\n\t_, ok := restrictedTags[key]\n\n\tif ok || strings.ContainsAny(key, restrictedTagChars) {\n\t\tpanic(fmt.Sprintf(restrictedTagErr, key))\n\t}\n\n\tv.validationFuncs[key] = fn\n\n\treturn nil\n}\n\n// RegisterCustomTypeFunc registers a CustomTypeFunc against a number of types\n// NOTE: this method is not thread-safe it is intended that these all be registered prior to any validation\nfunc (v *Validate) RegisterCustomTypeFunc(fn CustomTypeFunc, types ...interface{}) {\n\tv.initCheck()\n\n\tif v.customTypeFuncs == nil {\n\t\tv.customTypeFuncs = map[reflect.Type]CustomTypeFunc{}\n\t}\n\n\tfor _, t := range types {\n\t\tv.customTypeFuncs[reflect.TypeOf(t)] = fn\n\t}\n\n\tv.hasCustomFuncs = true\n}\n\n// RegisterAliasValidation registers a mapping of a single validationstag that\n// defines a common or complex set of validation(s) to simplify adding validation\n// to structs. NOTE: when returning an error the tag returned in FieldError will be\n// the alias tag unless the dive tag is part of the alias; everything after the\n// dive tag is not reported as the alias tag. Also the ActualTag in the before case\n// will be the actual tag within the alias that failed.\n// NOTE: this method is not thread-safe it is intended that these all be registered prior to any validation\nfunc (v *Validate) RegisterAliasValidation(alias, tags string) {\n\tv.initCheck()\n\n\t_, ok := restrictedTags[alias]\n\n\tif ok || strings.ContainsAny(alias, restrictedTagChars) {\n\t\tpanic(fmt.Sprintf(restrictedAliasErr, alias))\n\t}\n\n\tv.aliasValidators[alias] = tags\n\tv.hasAliasValidators = true\n}\n\n// Field validates a single field using tag style validation and returns nil or ValidationErrors as type error.\n// You will need to assert the error if it's not nil i.e. err.(validator.ValidationErrors) to access the map of errors.\n// NOTE: it returns ValidationErrors instead of a single FieldError because this can also\n// validate Array, Slice and maps fields which may contain more than one error\nfunc (v *Validate) Field(field interface{}, tag string) error {\n\tv.initCheck()\n\n\tif len(tag) == 0 || tag == skipValidationTag {\n\t\treturn nil\n\t}\n\n\terrs := v.errsPool.Get().(ValidationErrors)\n\tfieldVal := reflect.ValueOf(field)\n\n\tctag, ok := v.tagCache.Get(tag)\n\tif !ok {\n\t\tv.tagCache.lock.Lock()\n\t\tdefer v.tagCache.lock.Unlock()\n\n\t\t// could have been multiple trying to access, but once first is done this ensures tag\n\t\t// isn't parsed again.\n\t\tctag, ok = v.tagCache.Get(tag)\n\t\tif !ok {\n\t\t\tctag, _ = v.parseFieldTagsRecursive(tag, blank, blank, false)\n\t\t\tv.tagCache.Set(tag, ctag)\n\t\t}\n\t}\n\n\tv.traverseField(fieldVal, fieldVal, fieldVal, blank, blank, errs, false, false, nil, nil, defaultCField, ctag)\n\n\tif len(errs) == 0 {\n\t\tv.errsPool.Put(errs)\n\t\treturn nil\n\t}\n\n\treturn errs\n}\n\n// FieldWithValue validates a single field, against another fields value using tag style validation and returns nil or ValidationErrors.\n// You will need to assert the error if it's not nil i.e. err.(validator.ValidationErrors) to access the map of errors.\n// NOTE: it returns ValidationErrors instead of a single FieldError because this can also\n// validate Array, Slice and maps fields which may contain more than one error\nfunc (v *Validate) FieldWithValue(val interface{}, field interface{}, tag string) error {\n\tv.initCheck()\n\n\tif len(tag) == 0 || tag == skipValidationTag {\n\t\treturn nil\n\t}\n\n\terrs := v.errsPool.Get().(ValidationErrors)\n\ttopVal := reflect.ValueOf(val)\n\n\tctag, ok := v.tagCache.Get(tag)\n\tif !ok {\n\t\tv.tagCache.lock.Lock()\n\t\tdefer v.tagCache.lock.Unlock()\n\n\t\t// could have been multiple trying to access, but once first is done this ensures tag\n\t\t// isn't parsed again.\n\t\tctag, ok = v.tagCache.Get(tag)\n\t\tif !ok {\n\t\t\tctag, _ = v.parseFieldTagsRecursive(tag, blank, blank, false)\n\t\t\tv.tagCache.Set(tag, ctag)\n\t\t}\n\t}\n\n\tv.traverseField(topVal, topVal, reflect.ValueOf(field), blank, blank, errs, false, false, nil, nil, defaultCField, ctag)\n\n\tif len(errs) == 0 {\n\t\tv.errsPool.Put(errs)\n\t\treturn nil\n\t}\n\n\treturn errs\n}\n\n// StructPartial validates the fields passed in only, ignoring all others.\n// Fields may be provided in a namespaced fashion relative to the  struct provided\n// i.e. NestedStruct.Field or NestedArrayField[0].Struct.Name and returns nil or ValidationErrors as error\n// You will need to assert the error if it's not nil i.e. err.(validator.ValidationErrors) to access the map of errors.\nfunc (v *Validate) StructPartial(current interface{}, fields ...string) error {\n\tv.initCheck()\n\n\tsv, _ := v.ExtractType(reflect.ValueOf(current))\n\tname := sv.Type().Name()\n\tm := map[string]struct{}{}\n\n\tif fields != nil {\n\t\tfor _, k := range fields {\n\n\t\t\tflds := strings.Split(k, namespaceSeparator)\n\t\t\tif len(flds) > 0 {\n\n\t\t\t\tkey := name + namespaceSeparator\n\t\t\t\tfor _, s := range flds {\n\n\t\t\t\t\tidx := strings.Index(s, leftBracket)\n\n\t\t\t\t\tif idx != -1 {\n\t\t\t\t\t\tfor idx != -1 {\n\t\t\t\t\t\t\tkey += s[:idx]\n\t\t\t\t\t\t\tm[key] = struct{}{}\n\n\t\t\t\t\t\t\tidx2 := strings.Index(s, rightBracket)\n\t\t\t\t\t\t\tidx2++\n\t\t\t\t\t\t\tkey += s[idx:idx2]\n\t\t\t\t\t\t\tm[key] = struct{}{}\n\t\t\t\t\t\t\ts = s[idx2:]\n\t\t\t\t\t\t\tidx = strings.Index(s, leftBracket)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tkey += s\n\t\t\t\t\t\tm[key] = struct{}{}\n\t\t\t\t\t}\n\n\t\t\t\t\tkey += namespaceSeparator\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\terrs := v.errsPool.Get().(ValidationErrors)\n\n\tv.ensureValidStruct(sv, sv, sv, blank, blank, errs, true, len(m) != 0, false, m, false)\n\n\tif len(errs) == 0 {\n\t\tv.errsPool.Put(errs)\n\t\treturn nil\n\t}\n\n\treturn errs\n}\n\n// StructExcept validates all fields except the ones passed in.\n// Fields may be provided in a namespaced fashion relative to the  struct provided\n// i.e. NestedStruct.Field or NestedArrayField[0].Struct.Name and returns nil or ValidationErrors as error\n// You will need to assert the error if it's not nil i.e. err.(validator.ValidationErrors) to access the map of errors.\nfunc (v *Validate) StructExcept(current interface{}, fields ...string) error {\n\tv.initCheck()\n\n\tsv, _ := v.ExtractType(reflect.ValueOf(current))\n\tname := sv.Type().Name()\n\tm := map[string]struct{}{}\n\n\tfor _, key := range fields {\n\t\tm[name+namespaceSeparator+key] = struct{}{}\n\t}\n\n\terrs := v.errsPool.Get().(ValidationErrors)\n\n\tv.ensureValidStruct(sv, sv, sv, blank, blank, errs, true, len(m) != 0, true, m, false)\n\n\tif len(errs) == 0 {\n\t\tv.errsPool.Put(errs)\n\t\treturn nil\n\t}\n\n\treturn errs\n}\n\n// Struct validates a structs exposed fields, and automatically validates nested structs, unless otherwise specified.\n// it returns nil or ValidationErrors as error.\n// You will need to assert the error if it's not nil i.e. err.(validator.ValidationErrors) to access the map of errors.\nfunc (v *Validate) Struct(current interface{}) error {\n\tv.initCheck()\n\n\terrs := v.errsPool.Get().(ValidationErrors)\n\tsv := reflect.ValueOf(current)\n\n\tv.ensureValidStruct(sv, sv, sv, blank, blank, errs, true, false, false, nil, false)\n\n\tif len(errs) == 0 {\n\t\tv.errsPool.Put(errs)\n\t\treturn nil\n\t}\n\n\treturn errs\n}\n\nfunc (v *Validate) ensureValidStruct(topStruct reflect.Value, currentStruct reflect.Value, current reflect.Value, errPrefix string, nsPrefix string, errs ValidationErrors, useStructName bool, partial bool, exclude bool, includeExclude map[string]struct{}, isStructOnly bool) {\n\n\tif current.Kind() == reflect.Ptr && !current.IsNil() {\n\t\tcurrent = current.Elem()\n\t}\n\n\tif current.Kind() != reflect.Struct && current.Kind() != reflect.Interface {\n\t\tpanic(\"value passed for validation is not a struct\")\n\t}\n\n\tv.tranverseStruct(topStruct, currentStruct, current, errPrefix, nsPrefix, errs, useStructName, partial, exclude, includeExclude, nil, nil)\n}\n\n// tranverseStruct traverses a structs fields and then passes them to be validated by traverseField\nfunc (v *Validate) tranverseStruct(topStruct reflect.Value, currentStruct reflect.Value, current reflect.Value, errPrefix string, nsPrefix string, errs ValidationErrors, useStructName bool, partial bool, exclude bool, includeExclude map[string]struct{}, cs *cStruct, ct *cTag) {\n\n\tvar ok bool\n\tfirst := len(nsPrefix) == 0\n\ttyp := current.Type()\n\n\tcs, ok = v.structCache.Get(typ)\n\tif !ok {\n\t\tcs = v.extractStructCache(current, typ.Name())\n\t}\n\n\tif useStructName {\n\t\terrPrefix += cs.Name + namespaceSeparator\n\n\t\tif len(v.fieldNameTag) != 0 {\n\t\t\tnsPrefix += cs.Name + namespaceSeparator\n\t\t}\n\t}\n\n\t// structonly tag present don't tranverseFields\n\t// but must still check and run below struct level validation\n\t// if present\n\tif first || ct == nil || ct.typeof != typeStructOnly {\n\n\t\tfor _, f := range cs.fields {\n\n\t\t\tif partial {\n\n\t\t\t\t_, ok = includeExclude[errPrefix+f.Name]\n\n\t\t\t\tif (ok && exclude) || (!ok && !exclude) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tv.traverseField(topStruct, currentStruct, current.Field(f.Idx), errPrefix, nsPrefix, errs, partial, exclude, includeExclude, cs, f, f.cTags)\n\t\t}\n\t}\n\n\t// check if any struct level validations, after all field validations already checked.\n\tif cs.fn != nil {\n\t\tcs.fn(v, &StructLevel{v: v, TopStruct: topStruct, CurrentStruct: current, errPrefix: errPrefix, nsPrefix: nsPrefix, errs: errs})\n\t}\n}\n\n// traverseField validates any field, be it a struct or single field, ensures it's validity and passes it along to be validated via it's tag options\nfunc (v *Validate) traverseField(topStruct reflect.Value, currentStruct reflect.Value, current reflect.Value, errPrefix string, nsPrefix string, errs ValidationErrors, partial bool, exclude bool, includeExclude map[string]struct{}, cs *cStruct, cf *cField, ct *cTag) {\n\n\tcurrent, kind, nullable := v.extractTypeInternal(current, false)\n\tvar typ reflect.Type\n\n\tswitch kind {\n\tcase reflect.Ptr, reflect.Interface, reflect.Invalid:\n\n\t\tif ct == nil {\n\t\t\treturn\n\t\t}\n\n\t\tif ct.typeof == typeOmitEmpty {\n\t\t\treturn\n\t\t}\n\n\t\tif ct.hasTag {\n\n\t\t\tns := errPrefix + cf.Name\n\n\t\t\tif kind == reflect.Invalid {\n\t\t\t\terrs[ns] = &FieldError{\n\t\t\t\t\tFieldNamespace: ns,\n\t\t\t\t\tNameNamespace:  nsPrefix + cf.AltName,\n\t\t\t\t\tName:           cf.AltName,\n\t\t\t\t\tField:          cf.Name,\n\t\t\t\t\tTag:            ct.aliasTag,\n\t\t\t\t\tActualTag:      ct.tag,\n\t\t\t\t\tParam:          ct.param,\n\t\t\t\t\tKind:           kind,\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\terrs[ns] = &FieldError{\n\t\t\t\tFieldNamespace: ns,\n\t\t\t\tNameNamespace:  nsPrefix + cf.AltName,\n\t\t\t\tName:           cf.AltName,\n\t\t\t\tField:          cf.Name,\n\t\t\t\tTag:            ct.aliasTag,\n\t\t\t\tActualTag:      ct.tag,\n\t\t\t\tParam:          ct.param,\n\t\t\t\tValue:          current.Interface(),\n\t\t\t\tKind:           kind,\n\t\t\t\tType:           current.Type(),\n\t\t\t}\n\n\t\t\treturn\n\t\t}\n\n\tcase reflect.Struct:\n\t\ttyp = current.Type()\n\n\t\tif typ != timeType {\n\n\t\t\tif ct != nil {\n\t\t\t\tct = ct.next\n\t\t\t}\n\n\t\t\tif ct != nil && ct.typeof == typeNoStructLevel {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tv.tranverseStruct(topStruct, current, current, errPrefix+cf.Name+namespaceSeparator, nsPrefix+cf.AltName+namespaceSeparator, errs, false, partial, exclude, includeExclude, cs, ct)\n\t\t\treturn\n\t\t}\n\t}\n\n\tif !ct.hasTag {\n\t\treturn\n\t}\n\n\ttyp = current.Type()\n\nOUTER:\n\tfor {\n\t\tif ct == nil {\n\t\t\treturn\n\t\t}\n\n\t\tswitch ct.typeof {\n\n\t\tcase typeExists:\n\t\t\tct = ct.next\n\t\t\tcontinue\n\n\t\tcase typeOmitEmpty:\n\n\t\t\tif !nullable && !HasValue(v, topStruct, currentStruct, current, typ, kind, blank) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tct = ct.next\n\t\t\tcontinue\n\n\t\tcase typeDive:\n\n\t\t\tct = ct.next\n\n\t\t\t// traverse slice or map here\n\t\t\t// or panic ;)\n\t\t\tswitch kind {\n\t\t\tcase reflect.Slice, reflect.Array:\n\n\t\t\t\tfor i := 0; i < current.Len(); i++ {\n\t\t\t\t\tv.traverseField(topStruct, currentStruct, current.Index(i), errPrefix, nsPrefix, errs, partial, exclude, includeExclude, cs, &cField{Name: fmt.Sprintf(arrayIndexFieldName, cf.Name, i), AltName: fmt.Sprintf(arrayIndexFieldName, cf.AltName, i)}, ct)\n\t\t\t\t}\n\n\t\t\tcase reflect.Map:\n\t\t\t\tfor _, key := range current.MapKeys() {\n\t\t\t\t\tv.traverseField(topStruct, currentStruct, current.MapIndex(key), errPrefix, nsPrefix, errs, partial, exclude, includeExclude, cs, &cField{Name: fmt.Sprintf(mapIndexFieldName, cf.Name, key.Interface()), AltName: fmt.Sprintf(mapIndexFieldName, cf.AltName, key.Interface())}, ct)\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// throw error, if not a slice or map then should not have gotten here\n\t\t\t\t// bad dive tag\n\t\t\t\tpanic(\"dive error! can't dive on a non slice or map\")\n\t\t\t}\n\n\t\t\treturn\n\n\t\tcase typeOr:\n\n\t\t\terrTag := blank\n\n\t\t\tfor {\n\n\t\t\t\tif ct.fn(v, topStruct, currentStruct, current, typ, kind, ct.param) {\n\n\t\t\t\t\t// drain rest of the 'or' values, then continue or leave\n\t\t\t\t\tfor {\n\n\t\t\t\t\t\tct = ct.next\n\n\t\t\t\t\t\tif ct == nil {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ct.typeof != typeOr {\n\t\t\t\t\t\t\tcontinue OUTER\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\terrTag += orSeparator + ct.tag\n\n\t\t\t\tif ct.next == nil {\n\t\t\t\t\t// if we get here, no valid 'or' value and no more tags\n\n\t\t\t\t\tns := errPrefix + cf.Name\n\n\t\t\t\t\tif ct.hasAlias {\n\t\t\t\t\t\terrs[ns] = &FieldError{\n\t\t\t\t\t\t\tFieldNamespace: ns,\n\t\t\t\t\t\t\tNameNamespace:  nsPrefix + cf.AltName,\n\t\t\t\t\t\t\tName:           cf.AltName,\n\t\t\t\t\t\t\tField:          cf.Name,\n\t\t\t\t\t\t\tTag:            ct.aliasTag,\n\t\t\t\t\t\t\tActualTag:      ct.actualAliasTag,\n\t\t\t\t\t\t\tValue:          current.Interface(),\n\t\t\t\t\t\t\tType:           typ,\n\t\t\t\t\t\t\tKind:           kind,\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrs[errPrefix+cf.Name] = &FieldError{\n\t\t\t\t\t\t\tFieldNamespace: ns,\n\t\t\t\t\t\t\tNameNamespace:  nsPrefix + cf.AltName,\n\t\t\t\t\t\t\tName:           cf.AltName,\n\t\t\t\t\t\t\tField:          cf.Name,\n\t\t\t\t\t\t\tTag:            errTag[1:],\n\t\t\t\t\t\t\tActualTag:      errTag[1:],\n\t\t\t\t\t\t\tValue:          current.Interface(),\n\t\t\t\t\t\t\tType:           typ,\n\t\t\t\t\t\t\tKind:           kind,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tct = ct.next\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif !ct.fn(v, topStruct, currentStruct, current, typ, kind, ct.param) {\n\n\t\t\t\tns := errPrefix + cf.Name\n\n\t\t\t\terrs[ns] = &FieldError{\n\t\t\t\t\tFieldNamespace: ns,\n\t\t\t\t\tNameNamespace:  nsPrefix + cf.AltName,\n\t\t\t\t\tName:           cf.AltName,\n\t\t\t\t\tField:          cf.Name,\n\t\t\t\t\tTag:            ct.aliasTag,\n\t\t\t\t\tActualTag:      ct.tag,\n\t\t\t\t\tValue:          current.Interface(),\n\t\t\t\t\tParam:          ct.param,\n\t\t\t\t\tType:           typ,\n\t\t\t\t\tKind:           kind,\n\t\t\t\t}\n\n\t\t\t\treturn\n\n\t\t\t}\n\n\t\t\tct = ct.next\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/.travis.yml",
    "content": "language: go\n\ngo:\n    - 1.4\n    - 1.5\n    - 1.6\n    - 1.7\n    - 1.8\n    - 1.9\n    - tip\n\ngo_import_path: gopkg.in/yaml.v2\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/LICENSE.libyaml",
    "content": "The following files were ported to Go from C files of libyaml, and thus\nare still covered by their original copyright and license:\n\n    apic.go\n    emitterc.go\n    parserc.go\n    readerc.go\n    scannerc.go\n    writerc.go\n    yamlh.go\n    yamlprivateh.go\n\nCopyright (c) 2006 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.1 and 1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v2*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v2\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2)\n\nAPI stability\n-------------\n\nThe package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v2\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/apic.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n//// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n///*\n// * Create ALIAS.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t)\n//{\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    anchor_copy *yaml_char_t = NULL\n//\n//    assert(event) // Non-NULL event object is expected.\n//    assert(anchor) // Non-NULL anchor is expected.\n//\n//    if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0\n//\n//    anchor_copy = yaml_strdup(anchor)\n//    if (!anchor_copy)\n//        return 0\n//\n//    ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark)\n//\n//    return 1\n//}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/decode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tdocumentNode = 1 << iota\n\tmappingNode\n\tsequenceNode\n\tscalarNode\n\taliasNode\n)\n\ntype node struct {\n\tkind         int\n\tline, column int\n\ttag          string\n\t// For an alias node, alias holds the resolved alias.\n\talias    *node\n\tvalue    string\n\timplicit bool\n\tchildren []*node\n\tanchors  map[string]*node\n}\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *node\n\tdoneInit bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *node, anchor []byte) {\n\tif anchor != nil {\n\t\tp.doc.anchors[string(anchor)] = n\n\t}\n}\n\nfunc (p *parser) parse() *node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tdefault:\n\t\tpanic(\"attempted to parse unknown event: \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind int) *node {\n\treturn &node{\n\t\tkind:   kind,\n\t\tline:   p.event.start_mark.line,\n\t\tcolumn: p.event.start_mark.column,\n\t}\n}\n\nfunc (p *parser) document() *node {\n\tn := p.node(documentNode)\n\tn.anchors = make(map[string]*node)\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tn.children = append(n.children, p.parse())\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *node {\n\tn := p.node(aliasNode)\n\tn.value = string(p.event.anchor)\n\tn.alias = p.doc.anchors[n.value]\n\tif n.alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *node {\n\tn := p.node(scalarNode)\n\tn.value = string(p.event.value)\n\tn.tag = string(p.event.tag)\n\tn.implicit = p.event.implicit\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *node {\n\tn := p.node(sequenceNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tn.children = append(n.children, p.parse())\n\t}\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *node {\n\tn := p.node(mappingNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tn.children = append(n.children, p.parse(), p.parse())\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *node\n\taliases map[*node]bool\n\tmapType reflect.Type\n\tterrors []string\n\tstrict  bool\n}\n\nvar (\n\tmapItemType    = reflect.TypeOf(MapItem{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tdefaultMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = defaultMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder(strict bool) *decoder {\n\td := &decoder{mapType: defaultMapType, strict: strict}\n\td.aliases = make(map[*node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *node, tag string, out reflect.Value) {\n\tif n.tag != \"\" {\n\t\ttag = n.tag\n\t}\n\tvalue := n.value\n\tif tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.line+1, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == \"\" && (n.value == \"null\" || n.value == \"~\" || n.value == \"\" && n.implicit) {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\tif u, ok := out.Addr().Interface().(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nfunc (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {\n\tswitch n.kind {\n\tcase documentNode:\n\t\treturn d.document(n, out)\n\tcase aliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.kind {\n\tcase scalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase mappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase sequenceNode:\n\t\tgood = d.sequence(n, out)\n\tdefault:\n\t\tpanic(\"internal error: unknown node kind: \" + strconv.Itoa(n.kind))\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *node, out reflect.Value) (good bool) {\n\tif len(n.children) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.children[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.value)\n\t}\n\td.aliases[n] = true\n\tgood = d.unmarshal(n.alias, out)\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) scalar(n *node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.tag == \"\" && !n.implicit {\n\t\ttag = yaml_STR_TAG\n\t\tresolved = n.value\n\t} else {\n\t\ttag, resolved = resolve(n.tag, n.value)\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\tif out.Kind() == reflect.Map && !out.CanAddr() {\n\t\t\tresetMap(out)\n\t\t} else {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t}\n\t\treturn true\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == yaml_BINARY_TAG {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tif resolved != nil {\n\t\t\tout.SetString(n.value)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Interface:\n\t\tif resolved == nil {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t} else if tag == yaml_TIMESTAMP_TAG {\n\t\t\t// It looks like a timestamp but for backward compatibility\n\t\t\t// reasons we set it as a string, so that code that unmarshals\n\t\t\t// timestamp-like values into interface{} will continue to\n\t\t\t// see a string and not a time.Time.\n\t\t\t// TODO(v3) Drop this.\n\t\t\tout.Set(reflect.ValueOf(n.value))\n\t\t} else {\n\t\t\tout.Set(reflect.ValueOf(resolved))\n\t\t}\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tif out.Type().Elem() == reflect.TypeOf(resolved) {\n\t\t\t// TODO DOes this make sense? When is out a Ptr except when decoding a nil value?\n\t\t\telem := reflect.New(out.Type().Elem())\n\t\t\telem.Elem().Set(reflect.ValueOf(resolved))\n\t\t\tout.Set(elem)\n\t\t\treturn true\n\t\t}\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *node, out reflect.Value) (good bool) {\n\tl := len(n.children)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, yaml_SEQ_TAG, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.children[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *node, out reflect.Value) (good bool) {\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Slice:\n\t\treturn d.mappingSlice(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tif d.mapType.Kind() == reflect.Map {\n\t\t\tiface := out\n\t\t\tout = reflect.MakeMap(d.mapType)\n\t\t\tiface.Set(out)\n\t\t} else {\n\t\t\tslicev := reflect.New(d.mapType).Elem()\n\t\t\tif !d.mappingSlice(n, slicev) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tout.Set(slicev)\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tmapType := d.mapType\n\tif outt.Key() == ifaceType && outt.Elem() == ifaceType {\n\t\td.mapType = outt\n\t}\n\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t}\n\tl := len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], e) {\n\t\t\t\td.setMapIndex(n.children[i+1], out, k, e)\n\t\t\t}\n\t\t}\n\t}\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) {\n\tif d.strict && out.MapIndex(k) != zeroValue {\n\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: key %#v already set in map\", n.line+1, k.Interface()))\n\t\treturn\n\t}\n\tout.SetMapIndex(k, v)\n}\n\nfunc (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) {\n\toutt := out.Type()\n\tif outt.Elem() != mapItemType {\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\n\tmapType := d.mapType\n\td.mapType = outt\n\n\tvar slice []MapItem\n\tvar l = len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\titem := MapItem{}\n\t\tk := reflect.ValueOf(&item.Key).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tv := reflect.ValueOf(&item.Value).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], v) {\n\t\t\t\tslice = append(slice, item)\n\t\t\t}\n\t\t}\n\t}\n\tout.Set(reflect.ValueOf(slice))\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.children)\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\tinlineMap.Set(reflect.New(inlineMap.Type()).Elem())\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tvar doneFields []bool\n\tif d.strict {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.children[i]\n\t\tif isMerge(ni) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[name.String()]; ok {\n\t\t\tif d.strict {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = out.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.children[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.children[i+1], value)\n\t\t\td.setMapIndex(n.children[i+1], inlineMap, name, value)\n\t\t} else if d.strict {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t}\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(n *node, out reflect.Value) {\n\tswitch n.kind {\n\tcase mappingNode:\n\t\td.unmarshal(n, out)\n\tcase aliasNode:\n\t\tan, ok := d.doc.anchors[n.value]\n\t\tif ok && an.kind != mappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(n, out)\n\tcase sequenceNode:\n\t\t// Step backwards as earlier nodes take precedence.\n\t\tfor i := len(n.children) - 1; i >= 0; i-- {\n\t\t\tni := n.children[i]\n\t\t\tif ni.kind == aliasNode {\n\t\t\t\tan, ok := d.doc.anchors[ni.value]\n\t\t\t\tif ok && an.kind != mappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.kind != mappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n}\n\nfunc isMerge(n *node) bool {\n\treturn n.kind == scalarNode && n.value == \"<<\" && (n.implicit == true || n.tag == yaml_MERGE_TAG)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/emitterc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\temitter.column = 0\n\temitter.line++\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\temitter.indent += emitter.best_indent\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, true, false, false, false)\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\temitter.indention = true\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\temitter.whitespace = false\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/encode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// jsonNumber is the interface of the encoding/json.Number datatype.\n// Repeating the interface here avoids a dependency on encoding/json, and also\n// supports other libraries like jsoniter, which use a similar datatype with\n// the same interface. Detecting this interface is useful when dealing with\n// structures containing json.Number, which is a string under the hood. The\n// encoder should prefer the use of Int64(), Float64() and string(), in that\n// order, when encoding this type.\ntype jsonNumber interface {\n\tFloat64() (float64, error)\n\tInt64() (int64, error)\n\tString() string\n}\n\ntype encoder struct {\n\temitter yaml_emitter_t\n\tevent   yaml_event_t\n\tout     []byte\n\tflow    bool\n\t// doneInit holds whether the initial stream_start_event has been\n\t// emitted.\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\te.emit()\n\te.marshal(tag, in)\n\tyaml_document_end_event_initialize(&e.event, true)\n\te.emit()\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch m := iface.(type) {\n\tcase jsonNumber:\n\t\tinteger, err := m.Int64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid int64\n\t\t\tin = reflect.ValueOf(integer)\n\t\t\tbreak\n\t\t}\n\t\tfloat, err := m.Float64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid float64\n\t\t\tin = reflect.ValueOf(float)\n\t\t\tbreak\n\t\t}\n\t\t// fallback case - no number could be obtained\n\t\tin = reflect.ValueOf(m.String())\n\tcase time.Time, *time.Time:\n\t\t// Although time.Time implements TextMarshaler,\n\t\t// we don't want to treat it as a string for YAML\n\t\t// purposes because YAML has special support for\n\t\t// timestamps.\n\tcase Marshaler:\n\t\tv, err := m.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\tin = reflect.ValueOf(v)\n\tcase encoding.TextMarshaler:\n\t\ttext, err := m.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\tif in.Type() == ptrTimeType {\n\t\t\te.timev(tag, in.Elem())\n\t\t} else {\n\t\t\te.marshal(tag, in.Elem())\n\t\t}\n\tcase reflect.Struct:\n\t\tif in.Type() == timeType {\n\t\t\te.timev(tag, in)\n\t\t} else {\n\t\t\te.structv(tag, in)\n\t\t}\n\tcase reflect.Slice, reflect.Array:\n\t\tif in.Type().Elem() == mapItemType {\n\t\t\te.itemsv(tag, in)\n\t\t} else {\n\t\t\te.slicev(tag, in)\n\t\t}\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif in.Type() == durationType {\n\t\t\te.stringv(tag, reflect.ValueOf(iface.(time.Duration).String()))\n\t\t} else {\n\t\t\te.intv(tag, in)\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) itemsv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tslice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem)\n\t\tfor _, item := range slice {\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Key))\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Value))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = in.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"Can't have key %q in inlined map; conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = yaml_BINARY_TAG\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s)\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) {\n\timplicit := tag == \"\"\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.emit()\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/go.mod",
    "content": "module \"gopkg.in/yaml.v2\"\n\nrequire (\n\t\"gopkg.in/check.v1\" v0.0.0-20161208181325-20d25e280405\n)\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/parserc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\treturn &parser.tokens[parser.tokens_head]\n\t}\n\treturn nil\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/readerc.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests \n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/resolve.go",
    "content": "package yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, yaml_BOOL_TAG, []string{\"y\", \"Y\", \"yes\", \"Yes\", \"YES\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"on\", \"On\", \"ON\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"n\", \"N\", \"no\", \"No\", \"NO\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"off\", \"Off\", \"OFF\"}},\n\t\t{nil, yaml_NULL_TAG, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), yaml_FLOAT_TAG, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), yaml_FLOAT_TAG, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", yaml_MERGE_TAG, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\t// TODO This can easily be made faster and produce less garbage.\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?[0-9]*\\.?[0-9]+([eE][-+][0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, yaml_STR_TAG, yaml_BINARY_TAG:\n\t\t\treturn\n\t\tcase yaml_FLOAT_TAG:\n\t\t\tif rtag == yaml_INT_TAG {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == yaml_TIMESTAMP_TAG {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn yaml_TIMESTAMP_TAG, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\" + plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"resolveTable item not yet handled: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn yaml_STR_TAG, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/scannerc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\t// Check if we really need to fetch more tokens.\n\t\tneed_more_tokens := false\n\n\t\tif parser.tokens_head == len(parser.tokens) {\n\t\t\t// Queue is empty.\n\t\t\tneed_more_tokens = true\n\t\t} else {\n\t\t\t// Check if any potential simple key may occupy the head position.\n\t\t\tif !yaml_parser_stale_simple_keys(parser) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tfor i := range parser.simple_keys {\n\t\t\t\tsimple_key := &parser.simple_keys[i]\n\t\t\t\tif simple_key.possible && simple_key.token_number == parser.tokens_parsed {\n\t\t\t\t\tneed_more_tokens = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// We are finished.\n\t\tif !need_more_tokens {\n\t\t\tbreak\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// Remove obsolete potential simple keys.\n\tif !yaml_parser_stale_simple_keys(parser) {\n\t\treturn false\n\t}\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\n// Check the list of potential simple keys and remove the positions that\n// cannot contain simple keys anymore.\nfunc yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool {\n\t// Check for a potential simple key for each flow level.\n\tfor i := range parser.simple_keys {\n\t\tsimple_key := &parser.simple_keys[i]\n\n\t\t// The specification requires that a simple key\n\t\t//\n\t\t//  - is limited to a single line,\n\t\t//  - is shorter than 1024 characters.\n\t\tif simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) {\n\n\t\t\t// Check if the potential simple key to be removed is required.\n\t\t\tif simple_key.required {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\t\"could not find expected ':'\")\n\t\t\t}\n\t\t\tsimple_key.possible = false\n\t\t}\n\t}\n\treturn true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t}\n\t\tsimple_key.mark = parser.mark\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t}\n\t// Remove the key from the stack.\n\tparser.simple_keys[i].possible = false\n\treturn true\n}\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tparser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1]\n\t}\n\treturn true\n}\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: parser.mark,\n\t\t\tend_mark:   parser.mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif simple_key.possible {\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tskip(parser)\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/sorter.go",
    "content": "package yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\treturn bl\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/writerc.go",
    "content": "package yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/yaml.go",
    "content": "// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// MapSlice encodes and decodes as a YAML map.\n// The order of keys is preserved when encoding and decoding.\ntype MapSlice []MapItem\n\n// MapItem is an item in a MapSlice.\ntype MapItem struct {\n\tKey, Value interface{}\n}\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document. The UnmarshalYAML\n// method receives a function that may be called to unmarshal the original\n// YAML value into a field or variable. It is safe to call the unmarshal\n// function parameter more than once if necessary.\ntype Unmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// UnmarshalStrict is like Unmarshal except that any fields that are found\n// in the data that do not have corresponding struct members, or mapping\n// keys that are duplicates, will result in\n// an error.\nfunc UnmarshalStrict(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, true)\n}\n\n// A Decorder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tstrict bool\n\tparser *parser\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// SetStrict sets whether strict decoding behaviour is enabled when\n// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict.\nfunc (dec *Decoder) SetStrict(strict bool) {\n\tdec.strict = strict\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder(dec.strict)\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder(strict)\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be included if that method returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"Unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"Multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"Option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct:\n\t\t\t\tsinfo, err := getStructInfo(field.Type)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\tmsg := \"Duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t}\n\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t//return nil, errors.New(\"Option ,inline needs a struct value or map field\")\n\t\t\t\treturn nil, errors.New(\"Option ,inline needs a struct value field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"Duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:  fieldsMap,\n\t\tFieldsList: fieldsList,\n\t\tInlineMap:  inlineMap,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/yamlh.go",
    "content": "package yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota\n\n\tyaml_PLAIN_SCALAR_STYLE         // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v2/yamlprivateh.go",
    "content": "package yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (        // is_break:\n\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn ( // is_space:\n\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn ( // is_blank:\n\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/modules.txt",
    "content": "# github.com/360EntSecGroup-Skylar/excelize v1.3.1-0.20180527032555-9e463b461434\ngithub.com/360EntSecGroup-Skylar/excelize\n# github.com/PuerkitoBio/purell v1.1.1-0.20180310210909-975f53781597\ngithub.com/PuerkitoBio/purell\n# github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578\ngithub.com/PuerkitoBio/urlesc\n# github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751\ngithub.com/alecthomas/template\ngithub.com/alecthomas/template/parse\n# github.com/astaxie/beego v1.9.3-0.20171218111859-f16688817aa4\ngithub.com/astaxie/beego/validation\n# github.com/boombuler/barcode v1.0.1-0.20180315051053-3c06908149f7\ngithub.com/boombuler/barcode\ngithub.com/boombuler/barcode/qr\ngithub.com/boombuler/barcode/utils\n# github.com/dgrijalva/jwt-go v3.1.0+incompatible\ngithub.com/dgrijalva/jwt-go\n# github.com/gin-contrib/sse v0.1.0\ngithub.com/gin-contrib/sse\n# github.com/gin-gonic/gin v1.4.0\ngithub.com/gin-gonic/gin\ngithub.com/gin-gonic/gin/binding\ngithub.com/gin-gonic/gin/internal/json\ngithub.com/gin-gonic/gin/render\n# github.com/go-ini/ini v1.32.1-0.20180214101753-32e4be5f41bb\ngithub.com/go-ini/ini\n# github.com/go-openapi/jsonpointer v0.17.0\ngithub.com/go-openapi/jsonpointer\n# github.com/go-openapi/jsonreference v0.19.0\ngithub.com/go-openapi/jsonreference\n# github.com/go-openapi/spec v0.19.0\ngithub.com/go-openapi/spec\n# github.com/go-openapi/swag v0.17.0\ngithub.com/go-openapi/swag\n# github.com/go-sql-driver/mysql v1.4.1-0.20190510102335-877a9775f068\ngithub.com/go-sql-driver/mysql\n# github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0\ngithub.com/golang/freetype\ngithub.com/golang/freetype/raster\ngithub.com/golang/freetype/truetype\n# github.com/golang/protobuf v1.3.1\ngithub.com/golang/protobuf/proto\n# github.com/gomodule/redigo v2.0.1-0.20180401191855-9352ab68be13+incompatible\ngithub.com/gomodule/redigo/internal\ngithub.com/gomodule/redigo/redis\n# github.com/jinzhu/gorm v0.0.0-20180213101209-6e1387b44c64\ngithub.com/jinzhu/gorm\ngithub.com/jinzhu/gorm/dialects/mysql\n# github.com/jinzhu/inflection v0.0.0-20170102125226-1c35d901db3d\ngithub.com/jinzhu/inflection\n# github.com/json-iterator/go v1.1.7\ngithub.com/json-iterator/go\n# github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329\ngithub.com/mailru/easyjson/buffer\ngithub.com/mailru/easyjson/jlexer\ngithub.com/mailru/easyjson/jwriter\n# github.com/mattn/go-isatty v0.0.8\ngithub.com/mattn/go-isatty\n# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd\ngithub.com/modern-go/concurrent\n# github.com/modern-go/reflect2 v1.0.1\ngithub.com/modern-go/reflect2\n# github.com/pkg/errors v0.8.1\ngithub.com/pkg/errors\n# github.com/swaggo/gin-swagger v1.2.0\ngithub.com/swaggo/gin-swagger\ngithub.com/swaggo/gin-swagger/swaggerFiles\n# github.com/swaggo/swag v1.5.1\ngithub.com/swaggo/swag\n# github.com/tealeg/xlsx v1.0.4-0.20180419195153-f36fa3be8893\ngithub.com/tealeg/xlsx\n# github.com/ugorji/go/codec v1.1.5-pre\ngithub.com/ugorji/go/codec\n# github.com/unknwon/com v1.0.1\ngithub.com/unknwon/com\n# golang.org/x/image v0.0.0-20180628062038-cc896f830ced\ngolang.org/x/image/font\ngolang.org/x/image/math/fixed\n# golang.org/x/net v0.0.0-20190611141213-3f473d35a33a\ngolang.org/x/net/context\ngolang.org/x/net/idna\ngolang.org/x/net/webdav\ngolang.org/x/net/webdav/internal/xml\n# golang.org/x/sys v0.0.0-20190921204832-2dccfee4fd3e\ngolang.org/x/sys/unix\n# golang.org/x/text v0.3.2\ngolang.org/x/text/secure/bidirule\ngolang.org/x/text/transform\ngolang.org/x/text/unicode/bidi\ngolang.org/x/text/unicode/norm\ngolang.org/x/text/width\n# golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b\ngolang.org/x/tools/go/ast/astutil\ngolang.org/x/tools/go/buildutil\ngolang.org/x/tools/go/internal/cgo\ngolang.org/x/tools/go/loader\n# google.golang.org/appengine v1.6.3\ngoogle.golang.org/appengine/cloudsql\n# gopkg.in/go-playground/validator.v8 v8.18.2\ngopkg.in/go-playground/validator.v8\n# gopkg.in/yaml.v2 v2.2.2\ngopkg.in/yaml.v2\n"
  }
]